JTP API Documentation

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.


Constructor Summary
AncestorCycleCutReasoner(List goalStack)
           
 
Method Summary
 boolean acceptable(Object o)
          decides if the goal is suitable for being processed by this reasoner.
 DepthMonitor getDepthMonitor()
           
 ReasoningStepIterator process(Object goal)
          Attempts to find a goal on the goal stack that is identical to goal.
 void setDepthMonitor(DepthMonitor v)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AncestorCycleCutReasoner

public AncestorCycleCutReasoner(List goalStack)
Method Detail

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:

  1. Literals,
  2. have = as their relation predicate,
  3. have exactly two arguments.

Specified by:
acceptable in interface Reasoner
Returns:
true if the goal is suitable for this reasoner, false otherwise.

JTP API Documentation