|
ABLE 2.0.0 07/02/2003 10:25:01 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--com.ibm.able.rules.AbleInferenceEngine | +--com.ibm.able.rules.AbleBackwardChainInferenceEngine
This class provides the inferencing algorithm for processing conditional rules in a ruleblock using goal-driven or backward chaining.
The AbleBackwardChainInferenceEngine processes AbleAssertionRules and AbleConditionalRules and ignores all others. The control property ARL.Goal must be set to point to a global variable referenced in the consequent of one or more conditional rules in the ruleblock.
The major processing method is infer() which is called by the AbleRuleSet bean as part of the normal bean process() method.
Instances of this class are not directly constructed by the user but are dynamically created by the AbleRuleBlock init() method.
AbleRuleSet
,
AbleRuleBlock
,
AbleAssertionRule
,
AbleConditionalRule
, Serialized FormField Summary | |
---|---|
protected java.util.Stack |
myGoalClauseStack
For goals (consequent clauses) and subgoals. |
protected AbleVariable |
myGoalVariable
|
Fields inherited from class com.ibm.able.rules.AbleInferenceEngine |
---|
myDebugLevel, myRuleBlock, myRuleSet, myRulesFiredCount, myTracer, myWorkingMemory |
Constructor Summary | |
---|---|
AbleBackwardChainInferenceEngine(AbleRuleSet theRuleSet,
AbleLogger theTracer,
AbleRuleBlock theRuleBlock)
Create a new Backward chain inference engine. |
Method Summary | |
---|---|
static java.lang.String |
Copyright()
Determine the copyright of this class. |
java.lang.Object |
getControlParameter(java.lang.String theControlParameter)
Returns the specified control parameter on the associated inference engine. |
AbleVariable |
getGoalVariable()
|
void |
infer(AbleRuleBlock theRuleBlock)
Fire the rules in the ruleblock using boolean rules of backward chaining inferencing: given a goal variable, apply inverse moves and work toward the intial state. |
boolean |
isRuleBlockValid(AbleRuleBlock theRuleBlock)
Make sure the current ruleblock is "executable" by examining the rule types and rule object configurations. |
protected void |
reevaluateClausesWithChangedVariable(AbleClauseReferences theClauseReferences)
Re-evaluate, if necessary, the specified clauses that contain a reference to a variable whose current value has just changed. |
void |
setControlParameter(java.lang.String theControlParameter,
java.lang.Object theValue)
Set the specified control parameter on the associated inference engine. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected java.util.Stack myGoalClauseStack
protected AbleVariable myGoalVariable
Constructor Detail |
public AbleBackwardChainInferenceEngine(AbleRuleSet theRuleSet, AbleLogger theTracer, AbleRuleBlock theRuleBlock)
theRuleSet
- A ruleset whose context is used for inferencing
by this inference engine.
theTracer
- A tracer object to which this inference engine can log
information. This may be null, in which case no
information is logged.
theRuleBlock
- A ruleblock whose rules are to be used for inferencing
by this inference engine.
Method Detail |
public boolean isRuleBlockValid(AbleRuleBlock theRuleBlock)
The ruleblock is invalid if any of the following are present:
isRuleBlockValid
in class AbleInferenceEngine
theRuleBlock
- The set of rules to validatepublic void infer(AbleRuleBlock theRuleBlock) throws AbleDataException
The infer() method is called by the AbleRuleSet process() method as part of the overall ruleset bean processing sequence.
The order of processing is as follows:
infer
in class AbleInferenceEngine
theRuleBlock
- The ruleblock containing the rules to be processed.
AbleDataException
- When any error occurs.AbleRuleBlock
protected void reevaluateClausesWithChangedVariable(AbleClauseReferences theClauseReferences) throws AbleDataException
theClauseReferences
- A collection of clauses that reference some variable
whose current value has just changed.
public void setControlParameter(java.lang.String theControlParameter, java.lang.Object theValue) throws AbleDataException
setControlParameter
in class AbleInferenceEngine
public java.lang.Object getControlParameter(java.lang.String theControlParameter) throws AbleDataException
getControlParameter
in class AbleInferenceEngine
public AbleVariable getGoalVariable()
public static java.lang.String Copyright()
|
ABLE 2.0.0 07/02/2003 10:25:01 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |