JTP API Documentation

jtp.frame.fc
Class OptimizedRuleInstantiator

java.lang.Object
  |
  +--java.beans.beancontext.BeanContextChildSupport
        |
        +--jtp.util.PropertyImporter
              |
              +--jtp.frame.fc.RuleInstantiator
                    |
                    +--jtp.frame.fc.OptimizedRuleInstantiator
All Implemented Interfaces:
BeanContextChild, BeanContextServiceRevokedListener, BeanContextServicesListener, EventListener, Reasoner, Serializable

public class OptimizedRuleInstantiator
extends RuleInstantiator

Overrides RuleInstantiator.acceptable(Object) to reduce the likelihood of process(java.lang.Object) getting invoked, thus (hopefully) optimizing it.

See Also:
Serialized Form

Field Summary
protected  Hashtable alreadySeen
          Hashtable of all Literals that have been previously seen by this reasoner.
 
Fields inherited from class jtp.frame.fc.RuleInstantiator
tm
 
Fields inherited from class java.beans.beancontext.BeanContextChildSupport
beanContext, beanContextChildPeer, pcSupport, rejectedSetBCOnce, vcSupport
 
Constructor Summary
OptimizedRuleInstantiator()
           
 
Method Summary
 boolean acceptable(Object goal)
          Returns false if the goal Literal's relation's package is jtp.frame.fc or if the holdified Literal is in the alreadySeen Hashtable.
 ReasoningStepIterator process(Object o)
          This method attempts to find proof for the goal.
 
Methods inherited from class jtp.frame.fc.RuleInstantiator
addTrigger, getAskingReasoner, getUndoManager, removeTrigger, setAskingReasoner, setUndoManager
 
Methods inherited from class jtp.util.PropertyImporter
getImportedProperties, initializeBeanContextResources, setImportedProperties
 
Methods inherited from class java.beans.beancontext.BeanContextChildSupport
addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireVetoableChange, getBeanContext, getBeanContextChildPeer, isDelegated, releaseBeanContextResources, removePropertyChangeListener, removeVetoableChangeListener, serviceAvailable, serviceRevoked, setBeanContext, validatePendingSetBeanContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

alreadySeen

protected Hashtable alreadySeen
Hashtable of all Literals that have been previously seen by this reasoner. The Literals should be DefaultLiterals that have been holdified by HoldsReasoner.holdify(jtp.fol.Literal).

Constructor Detail

OptimizedRuleInstantiator

public OptimizedRuleInstantiator()
Method Detail

acceptable

public boolean acceptable(Object goal)
Returns false if the goal Literal's relation's package is jtp.frame.fc or if the holdified Literal is in the alreadySeen Hashtable.

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

process

public ReasoningStepIterator process(Object o)
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.

Specified by:
process in interface Reasoner
Overrides:
process in class RuleInstantiator
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.

JTP API Documentation