001 package com.hammurapi.reasoning.spi;
002
003 /**
004 * Fact which supersedes another fact.
005 * The superseding fact contains all the information which the superseded
006 * fact contains and can be used in place of the superseded fact.
007 * e.g. Male("John", "Smith") supersedes Person("John", "Smith")
008 * Facts can implement this interface or be converted/adapted to the interface.
009 * @author Pavel Vlasov
010 *
011 */
012 public interface Superseder {
013
014 /**
015 * @param subFact
016 * @return true if this fact supersedes subFact and can replace the subFact
017 * in the knowledge base.
018 */
019 boolean supersedes(Object subFact);
020
021 }