JTP API Documentation

jtp.disp
Class RelationBasedBCDispatcher

java.lang.Object
  |
  +--jtp.disp.RelationBasedDispatcher
        |
        +--jtp.disp.RelationBasedBCDispatcher
All Implemented Interfaces:
Dispatcher, Reasoner

public class RelationBasedBCDispatcher
extends RelationBasedDispatcher

This dispatcher handles reasoners implementing RelationBasedBCReasoner.


Constructor Summary
RelationBasedBCDispatcher()
           
 
Method Summary
 boolean acceptable(Object o)
          decides if the goal is suitable for being processed by this reasoner.
 boolean addReasoner(Reasoner r)
          Add a reasoner directly to this dispatcher.
 Class getReasonerClass()
          Returns the class of reasoners this dispatcher works with.
 ReasoningStepIterator process(Object o)
          This method attempts to find proof for the goal.
 boolean removeReasoner(Reasoner r)
          Removes a reasoner directly from this dispatcher.
 
Methods inherited from class jtp.disp.RelationBasedDispatcher
addRelationBasedReasoner, getReasoners, process, removeRelationBasedReasoner
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RelationBasedBCDispatcher

public RelationBasedBCDispatcher()
Method Detail

process

public ReasoningStepIterator process(Object o)
                              throws ReasoningException
Description copied from interface: Reasoner
This method attempts to find proof for the goal. It returns an enumeration of reasoning steps that correspond to alternative proofs for the goal. Consequently, the items of the enumeration can actually belong to different models of the goal sentence, and have incompatible variable assignments.

Example. A reasoner that performs unification of the goal with facts in a knowledge base can return the following enumeration for the goal (parent joe ?x):

  1. A reasoning step proving (parent joe fred) with variable assignment ?x=fred,
  2. A reasoning step proving (parent joe mary) with variable assignment ?x=mary.

Parameters:
o - the goal: either a query or an assertion
Returns:
the iterator of reasoning steps - proofs for the query, or consequences of the assertion.
ReasoningException

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.

Returns:
true if the goal is suitable for this reasoner, false otherwise.

addReasoner

public boolean addReasoner(Reasoner r)
Description copied from interface: Dispatcher
Add a reasoner directly to this dispatcher. This function should not attempt to route the reasoner to any possible child dispatchers it may have, that is the job of the function DispatcherUtils.addToDispatcher(jtp.Reasoner, jtp.Dispatcher).

Parameters:
r - the reasoner to add
Returns:
true if the reasoner has been added (i.e., the state has changed).

removeReasoner

public boolean removeReasoner(Reasoner r)
Description copied from interface: Dispatcher
Removes a reasoner directly from this dispatcher. This function should not attempt to find the reasoner at any possible child dispatchers it may have, that is the job of the function DispatcherUtils.removeFromDispatcher(jtp.Reasoner, jtp.Dispatcher).

Parameters:
r - the reasoner to remove
Returns:
true if the reasoner has been removed (i.e., the state has changed).

getReasonerClass

public Class getReasonerClass()
Description copied from interface: Dispatcher
Returns the class of reasoners this dispatcher works with. Every reasoner you add to this dispatcher must be an instance of this class.

Returns:
the class of reasoners this dispatcher works with.

JTP API Documentation