|
ABLE 2.3.0 07/13/2005 14:21:00 | |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||
java.lang.Objectcom.ibm.able.rules.AbleInferenceEngine
com.ibm.able.rules.AbleDecisionTreeEngine
This class provides the algorithm for processing a decision tree or table represented by a single tree rule or by a set of if-then rules.
The AbleDecisionTreeEngine processes AbleAssertionRules and either a single AbleTreeRule, a single AbleIfThenElseRule or a set of AbleConditionalRules and ignores all others.
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 Form| Field Summary |
|---|
| Fields inherited from class com.ibm.able.rules.AbleInferenceEngine |
|---|
myDebugLevel, myRuleBlock, myRuleSet, myRulesFiredCount, myTracer, myWorkingMemory |
| Constructor Summary | |
|---|---|
AbleDecisionTreeEngine(AbleRuleSet theRuleSet,
AbleLogger theTracer)
Create a new inference engine. |
|
AbleDecisionTreeEngine(AbleRuleSet theRuleSet,
AbleLogger theTracer,
AbleRuleBlock theRuleBlock)
Create a new inference engine. |
|
| Method Summary | |
|---|---|
boolean |
evalTree(AbleTreeNode theRootNode)
Evaluate the decision tree structure directly via depth-first search of the tree When a leaf node is reached, perform all of the actions in the action node. |
java.lang.Object |
getControlParameter(java.lang.String theControlParameter)
Returns the specified control parameter on the associated inference engine. |
void |
infer(AbleRuleBlock theRuleBlock)
Fires the rules in the ruleset as if they were a decision tree. |
boolean |
isRuleBlockValid(AbleRuleBlock theRuleBlock)
Make sure the current ruleblock is "executable" by examining the rule types and rule object configurations. |
void |
reset()
Reset the rule block so that rules can be fired again: all rules are set to their original state. |
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 |
| Constructor Detail |
public AbleDecisionTreeEngine(AbleRuleSet theRuleSet,
AbleLogger theTracer)
theRuleSet - A ruleset whose rules are to be 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.
public AbleDecisionTreeEngine(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 in the ruleblock:
All reasons for validation failures are appended to the AbleRuleSet's myIsExReason variable. If validation fails, the inference engine must call myRuleSet.addIsExReason(java.lang.String) to append the reason.
isRuleBlockValid in class AbleInferenceEngine
public 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 AbleInferenceEnginetheRuleBlock - The ruleblock to be processed.
AbleDataException - When any error occurs.
public boolean evalTree(AbleTreeNode theRootNode)
throws AbleDataException
AbleDataException
public void setControlParameter(java.lang.String theControlParameter,
java.lang.Object theValue)
throws AbleDataException
setControlParameter in class AbleInferenceEngineAbleDataException
public java.lang.Object getControlParameter(java.lang.String theControlParameter)
throws AbleDataException
getControlParameter in class AbleInferenceEngineAbleDataExceptionpublic void reset()
This is a no-op in this engine.
reset in class AbleInferenceEngine
|
ABLE 2.3.0 07/13/2005 14:21:00 | |||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||||