package aima.core.logic.fol.inference; import java.util.List; import aima.core.logic.fol.inference.proof.Proof; /** * @author Ciaran O'Reilly * */ public interface InferenceResult { /** * * @return true, if the query is not entailed from the premises. This just * means the query is not entailed, the query itself may be true. */ boolean isPossiblyFalse(); /** * * @return true, if the query is entailed from the premises (Note: can get * partial results if the original query contains variables * indicating that there can possibly be more than 1 proof/bindings * for the query, see: isPartialResultDueToTimeout()). */ boolean isTrue(); /** * * @return true, if the inference procedure ran for a length of time and * found no proof one way or the other before it timed out. */ boolean isUnknownDueToTimeout(); /** * * @return true, if the inference procedure found a proof for a query * containing variables (i.e. possibly more than 1 proof can be * returned) and the inference procedure was still looking for other * possible answers before it timed out. */ boolean isPartialResultDueToTimeout(); /** * * @return a list of 0 or more proofs (multiple proofs can be returned if * the original query contains variables). */ List<Proof> getProofs(); }