jtp.modelim
Class AncestorCycleCutReasoner
java.lang.Object
|
+--jtp.modelim.AncestorCycleCutReasoner
- All Implemented Interfaces:
- Reasoner
- public class AncestorCycleCutReasoner
- extends Object
- implements Reasoner
An asking reasoner that improves search time by cutting off
search along a line of reasoning if the current goal is
identical to a ancestor goal on the goal stack. This is
essentially a circularity check.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AncestorCycleCutReasoner
public AncestorCycleCutReasoner(List goalStack)
getDepthMonitor
public DepthMonitor getDepthMonitor()
setDepthMonitor
public void setDepthMonitor(DepthMonitor v)
process
public ReasoningStepIterator process(Object goal)
- Attempts to find a goal on the goal stack that is identical
to
goal
.
- Specified by:
process
in interface Reasoner
- Parameters:
goal
- the goal: either a query or an assertion
- Returns:
- the iterator of reasoning steps - proofs for the query, or consequences of the assertion.
acceptable
public boolean acceptable(Object o)
- Description copied from interface:
Reasoner
- decides if the goal is suitable for being processed
by this reasoner. This method should be fast; if there are doubts as to whether a goal is
acceptable, and it looks like determining it might take some time, the method should
return true and let the process method figure it out.
Example. Many reasoners only process literals with certain predicates and arity.
These reasoners will use those criteria to determine acceptability, for example a reasoner
dealing with equality could accept goals that are:
- Literals,
- have = as their relation predicate,
- have exactly two arguments.
- Specified by:
acceptable
in interface Reasoner
- Returns:
- true if the goal is suitable for this reasoner, false otherwise.