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. |
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 |
alreadySeen
protected Hashtable alreadySeen
- Hashtable of all Literals that have been previously seen by this reasoner.
The Literals should be
DefaultLiteral
s that have been
holdified by HoldsReasoner.holdify(jtp.fol.Literal)
.
OptimizedRuleInstantiator
public OptimizedRuleInstantiator()
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)
:
- A reasoning step proving
(parent joe fred)
with variable assignment
?x=fred,
- 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.