aima.core.logic.fol.inference.InferenceResult Maven / Gradle / Ivy
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 getProofs();
}