[jboss-svn-commits] JBL Code SVN: r26751 - in labs/jbossrules/branches/DroolsChance: drools-examples/drools-examples-drl/src/main/java/org/drools/chance and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed May 27 12:31:57 EDT 2009
Author: dsotty
Date: 2009-05-27 12:31:56 -0400 (Wed, 27 May 2009)
New Revision: 26751
Modified:
labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ComplexFormulaTest.log
labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/FuzzyTest0.log
labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/AbstractChanceTest.java
labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/impliesTest/ImpliesTest1.java
labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/chance/fuzzy/FuzzyTest0.drl
labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/ComplexFormulaTest.ruleml.xml
labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/FuzzyTest0.ruleml.xml
labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt
Log:
Meta-Evaluator
Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ComplexFormulaTest.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ComplexFormulaTest.log 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ComplexFormulaTest.log 2009-05-27 16:31:56 UTC (rev 26751)
@@ -1,27 +1,27 @@
Degrees test Eval Record info(1.0) for args L : Message 1
AND{
-(1 at 25) : 0.08620529 dotAnd(maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))),-dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5))) [EVAL 0.08620529,]
+(1 at 25) : 0.048865642 dotAnd(maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))),-dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5))) [EVAL 0.048865642,]
(1 at 26) : 1.0 TestOpDegs [EVAL 0.0,PRIOR 1.0,]
}
-(1 at 27) : 0.08620529 minAnd(dotAnd(maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))),-dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5))),TestOpDegs) [EVAL 0.08620529,]
- (1 at 25) : 0.08620529 dotAnd(maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))),-dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5))) [EVAL 0.08620529,]
- (1 at 11) : 0.56920236 maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))) [EVAL 0.56920236,]
+(1 at 27) : 0.048865642 minAnd(dotAnd(maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))),-dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5))),TestOpDegs) [EVAL 0.048865642,]
+ (1 at 25) : 0.048865642 dotAnd(maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))),-dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5))) [EVAL 0.048865642,]
+ (1 at 11) : 0.2999273 maxOr(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2))) [EVAL 0.2999273,]
(1 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0),Integer ==(org.drools.chance.Message.status,1)) [EVAL 0.0,]
(1 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
(1 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 1.0,]
(1 at 5) : 0.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 0.0,]
- (1 at 1) : 0.56920236 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2)) [EVAL 0.56920236,]
+ (1 at 1) : 0.2999273 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,2)) [EVAL 0.2999273,]
(1 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
- (1 at 9) : 0.56920236 random(org.drools.chance.Message.status,2) [EVAL 0.56920236,]
- (1 at 20) : 0.9093653 -dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))) [EVAL 0.9093653,]
- (1 at 1) : 0.33255377 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)) [EVAL 0.33255377,]
+ (1 at 9) : 0.2999273 random(org.drools.chance.Message.status,2) [EVAL 0.2999273,]
+ (1 at 20) : 0.21129096 -dotAnd(dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4))) [EVAL 0.21129096,]
+ (1 at 1) : 0.9881322 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,3)) [EVAL 0.9881322,]
(1 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
- (1 at 14) : 0.33255377 random(org.drools.chance.Message.status,3) [EVAL 0.33255377,]
- (1 at 1) : 0.27254146 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4)) [EVAL 0.27254146,]
+ (1 at 14) : 0.9881322 random(org.drools.chance.Message.status,3) [EVAL 0.9881322,]
+ (1 at 1) : 0.7981817 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,4)) [EVAL 0.7981817,]
(1 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
- (1 at 18) : 0.27254146 random(org.drools.chance.Message.status,4) [EVAL 0.27254146,]
- (1 at 1) : 0.16654395 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5)) [EVAL 0.16654395,]
+ (1 at 18) : 0.7981817 random(org.drools.chance.Message.status,4) [EVAL 0.7981817,]
+ (1 at 1) : 0.7710929 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,5)) [EVAL 0.7710929,]
(1 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
- (1 at 23) : 0.16654395 random(org.drools.chance.Message.status,5) [EVAL 0.16654395,]
+ (1 at 23) : 0.7710929 random(org.drools.chance.Message.status,5) [EVAL 0.7710929,]
(1 at 26) : 1.0 TestOpDegs [EVAL 0.0,PRIOR 1.0,]
Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/FuzzyTest0.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/FuzzyTest0.log 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/FuzzyTest0.log 2009-05-27 16:31:56 UTC (rev 26751)
@@ -10,3 +10,7 @@
Room is warm in degree 0.25
Evaluator from temp domain, runtime call (no method in room)
+
+
+Room is hot in degree 0.75
+Room returns Evaluator via getHot(), which is dynamically called on temp.
\ No newline at end of file
Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/AbstractChanceTest.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/AbstractChanceTest.java 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/AbstractChanceTest.java 2009-05-27 16:31:56 UTC (rev 26751)
@@ -130,6 +130,7 @@
getKBuilderConf().setProperty("drools.evaluator.stop", "org.drools.chance.fuzzyTest.SpeedDomain");
getKBuilderConf().setProperty("drools.evaluator.seems", "org.drools.fuzzy.evaluators.SeemsEvaluatorDefinition");
+ getKBuilderConf().setProperty("drools.evaluator.evaluates", "org.drools.fuzzy.evaluators.EvalEvaluatorDefinition");
getKBuilderConf().setProperty("drools.evaluator.random", "org.drools.fuzzy.evaluators.RandomEvaluatorDefinition");
Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/impliesTest/ImpliesTest1.java
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/impliesTest/ImpliesTest1.java 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/java/org/drools/chance/impliesTest/ImpliesTest1.java 2009-05-27 16:31:56 UTC (rev 26751)
@@ -143,7 +143,7 @@
private Evaluator flyEvaluator = new BaseImperfectEvaluator(ValueType.BOOLEAN_TYPE, FLIES, "") {
@Override
- protected IDegree eval(Object left, Object right, IDegreeFactory factory) {
+ public IDegree eval(Object left, Object right, IDegreeFactory factory) {
if (left instanceof Bird) {
Boolean b = ((Bird) left).getIsFlier();
if (b == null)
Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/chance/fuzzy/FuzzyTest0.drl
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/chance/fuzzy/FuzzyTest0.drl 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/src/main/rules/org/drools/chance/fuzzy/FuzzyTest0.drl 2009-05-27 16:31:56 UTC (rev 26751)
@@ -28,7 +28,7 @@
writer.write("Evaluator from temp domain, requires a method in Room\n");
end
-rule "Hot v3"
+rule "Hot v3 (Warm)"
when
$r : Room( temperature ~seems "warm" )
then
@@ -37,3 +37,16 @@
writer.write("Room is warm in degree "+drools.getConsequenceDegree()+"\n");
writer.write("Evaluator from temp domain, runtime call (no method in room)\n");
end
+
+rule "Hot v4"
+ when
+ $r : Room( hot ~evaluates temperature )
+ then
+
+ writer.write("\n\n");
+ writer.write("Room is hot in degree "+drools.getConsequenceDegree()+"\n");
+ writer.write("Room returns Evaluator via getHot(), which is dynamically called on temp.");
+end
+
+
+
Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/ComplexFormulaTest.ruleml.xml
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/ComplexFormulaTest.ruleml.xml 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/ComplexFormulaTest.ruleml.xml 2009-05-27 16:31:56 UTC (rev 26751)
@@ -1,35 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<RuleML xmlns="http://www.ruleml.org/0.91/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ruleml.org/0.91/xsd http://www.ruleml.org/0.91/xsd/naffologeq.xsd">
+ <oid>
+ <Data>org.drools.DRL</Data>
+ </oid>
<Assert>
<Rulebase>
<oid>
<Data>org.drools.chance</Data>
</oid>
- <Implies direction="forward">
- <oid>
- <Data>TestOpDegs</Data>
- </oid>
- <body>
- <And>
- <Or>
- <Atom>
- <Rel>Message</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>TestOpDegs.Message</Var>
- </lhs>
- <rhs>
+ <Forall>
+ <declare>
+ <Var type="org.drools.chance.Message">TestOpDegs.Message_1</Var>
+ </declare>
+ <declare>
+ <Var type="org.drools.chance.Message">TestOpDegs.Message_3</Var>
+ </declare>
+ <declare>
+ <Var type="org.drools.chance.Message">TestOpDegs.Message_2</Var>
+ </declare>
+ <declare>
+ <Var type="org.drools.chance.Message">TestOpDegs.Message_4</Var>
+ </declare>
+ <declare>
+ <Var type="org.drools.chance.Message">TestOpDegs.Message</Var>
+ </declare>
+ <formula>
+ <Implies direction="forward">
+ <oid>
+ <Data>TestOpDegs</Data>
+ </oid>
+ <body>
+ <And>
+ <Or>
+ <Atom>
+ <oid>
+ <Var>TestOpDegs.Message</Var>
+ </oid>
+ <Rel>Message</Rel>
<Reify>
<And>
<Atom>
<op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.Message</Ind>
+ </Atom>
+ <Atom>
+ <op>
<Rel>==</Rel>
</op>
<slot>
<Ind>status</Ind>
- <Var>TestOpDegs.Message</Var>
+ <Var/>
</slot>
- <Data xsi:type="xs:decimal">0</Data>
+ <Ind type="java.lang.Number">0</Ind>
</Atom>
<Atom>
<op>
@@ -37,24 +65,30 @@
</op>
<slot>
<Ind>status</Ind>
- <Var>TestOpDegs.Message</Var>
+ <Var/>
</slot>
- <Data xsi:type="xs:decimal">1</Data>
+ <Ind type="java.lang.Number">1</Ind>
</Atom>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- <Atom>
- <Rel>Message</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>TestOpDegs.Message</Var>
- </lhs>
- <rhs>
+ </Atom>
+ <Atom>
+ <oid>
+ <Var>TestOpDegs.Message_1</Var>
+ </oid>
+ <Rel>Message</Rel>
<Reify>
<And>
+ <Atom>
+ <op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.Message</Ind>
+ </Atom>
<Neg>
<Atom>
<op>
@@ -62,108 +96,124 @@
</op>
<slot>
<Ind>status</Ind>
- <Var>TestOpDegs.Message</Var>
+ <Var/>
</slot>
- <Data xsi:type="xs:decimal">2</Data>
+ <Ind type="java.lang.Number">2</Ind>
</Atom>
</Neg>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- </Or>
- <Neg>
- <And>
- <Atom>
- <Rel>Message</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>TestOpDegs.Message</Var>
- </lhs>
- <rhs>
+ </Atom>
+ </Or>
+ <Neg>
+ <And>
+ <Atom>
+ <oid>
+ <Var>TestOpDegs.Message_2</Var>
+ </oid>
+ <Rel>Message</Rel>
<Reify>
<And>
<Atom>
<op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.Message</Ind>
+ </Atom>
+ <Atom>
+ <op>
<Rel>random</Rel>
</op>
<slot>
<Ind>status</Ind>
- <Var>TestOpDegs.Message</Var>
+ <Var/>
</slot>
- <Data xsi:type="xs:decimal">3</Data>
+ <Ind type="java.lang.Number">3</Ind>
</Atom>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- <Atom>
- <Rel>Message</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>TestOpDegs.Message</Var>
- </lhs>
- <rhs>
+ </Atom>
+ <Atom>
+ <oid>
+ <Var>TestOpDegs.Message_3</Var>
+ </oid>
+ <Rel>Message</Rel>
<Reify>
<And>
<Atom>
<op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.Message</Ind>
+ </Atom>
+ <Atom>
+ <op>
<Rel>random</Rel>
</op>
<slot>
<Ind>status</Ind>
- <Var>TestOpDegs.Message</Var>
+ <Var/>
</slot>
- <Data xsi:type="xs:decimal">4</Data>
+ <Ind type="java.lang.Number">4</Ind>
</Atom>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- </And>
- </Neg>
- <Atom>
- <Rel>Message</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>TestOpDegs.Message</Var>
- </lhs>
- <rhs>
+ </Atom>
+ </And>
+ </Neg>
+ <Atom>
+ <oid>
+ <Var>TestOpDegs.Message_4</Var>
+ </oid>
+ <Rel>Message</Rel>
<Reify>
<And>
<Atom>
<op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.Message</Ind>
+ </Atom>
+ <Atom>
+ <op>
<Rel>random</Rel>
</op>
<slot>
<Ind>status</Ind>
- <Var>TestOpDegs.Message</Var>
+ <Var/>
</slot>
- <Data xsi:type="xs:decimal">5</Data>
+ <Ind type="java.lang.Number">5</Ind>
</Atom>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- </And>
- </body>
- <head>
- <Atom>
- <Rel/>
- <Data>
- System.out.println("Degrees test " + drools.getEvaluation().expand());
+ </Atom>
+ </And>
+ </body>
+ <head>
+ <Atom>
+ <Rel/>
+ <Data>System.out.println("Degrees test " + drools.getEvaluation().expand());
writer.write("Degrees test " + drools.getEvaluation().expand());
- System.out.println("Final output " + drools.getConsequenceDegree());
-</Data>
- </Atom>
- </head>
- </Implies>
+ System.out.println("Final output " + drools.getConsequenceDegree());</Data>
+ </Atom>
+ </head>
+ </Implies>
+ </formula>
+ </Forall>
</Rulebase>
</Assert>
</RuleML>
Modified: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/FuzzyTest0.ruleml.xml
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/FuzzyTest0.ruleml.xml 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/FuzzyTest0.ruleml.xml 2009-05-27 16:31:56 UTC (rev 26751)
@@ -1,65 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
-<RuleML xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.ruleml.org/0.91/xsd/naffologeq.xsd" xsi:schemaLocation="http://www.ruleml.org/0.91/xsd http://www.ruleml.org/0.91/xsd/naffologeq.xsd">
+<RuleML xmlns="http://www.ruleml.org/0.91/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ruleml.org/0.91/xsd http://www.ruleml.org/0.91/xsd/naffologeq.xsd">
+ <oid>
+ <Data>org.drools.DRL</Data>
+ </oid>
<Assert>
- <RuleBase>
+ <Rulebase>
<oid>
- <Data xs:type="xsi:string">org.drools.examples.chance.fuzzyTest</Data>
+ <Data>org.drools.examples.chance.fuzzyTest</Data>
</oid>
- <Implies direction="forward">
- <oid>
- <Data>Hot v1</Data>
- </oid>
- <body>
- <And>
- <Atom>
- <Rel>Room</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>Hot v1.$r</Var>
- </lhs>
- <rhs>
+ <Forall>
+ <declare>
+ <Var type="org.drools.chance.fuzzyTest.Room">Hot v1.$r</Var>
+ </declare>
+ <formula>
+ <Implies direction="forward">
+ <oid>
+ <Data>Hot v1</Data>
+ </oid>
+ <body>
+ <And>
+ <Atom>
+ <oid>
+ <Var>Hot v1.$r</Var>
+ </oid>
+ <Rel>Room</Rel>
<Reify>
<And>
<Atom>
<op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.fuzzyTest.Room</Ind>
+ </Atom>
+ <Atom>
+ <op>
<Rel>hot</Rel>
</op>
<slot>
<Ind>temperature</Ind>
- <Var>Hot v1.$r</Var>
+ <Var/>
</slot>
</Atom>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- </And>
- </body>
- <head/>
- </Implies>
- <Implies direction="forward">
- <oid>
- <Data>Hot v2</Data>
- </oid>
- <body>
- <And>
- <Atom>
- <Rel>Room</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>Hot v2.$r</Var>
- </lhs>
- <rhs>
+ </Atom>
+ </And>
+ </body>
+ <head>
+ <Atom>
+ <Rel/>
+ <Data>writer.write("\n\n");
+ writer.write("Room is hot in degree "+drools.getConsequenceDegree()+"\n");
+ writer.write("Evaluator is called directly\n");</Data>
+ </Atom>
+ </head>
+ </Implies>
+ </formula>
+ </Forall>
+ <Forall>
+ <declare>
+ <Var type="org.drools.chance.fuzzyTest.Room">Hot v2.$r</Var>
+ </declare>
+ <formula>
+ <Implies direction="forward">
+ <oid>
+ <Data>Hot v2</Data>
+ </oid>
+ <body>
+ <And>
+ <Atom>
+ <oid>
+ <Var>Hot v2.$r</Var>
+ </oid>
+ <Rel>Room</Rel>
<Reify>
<And>
<Atom>
<op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.fuzzyTest.Room</Ind>
+ </Atom>
+ <Atom>
+ <op>
<Rel>seems</Rel>
</op>
<slot>
<Ind>temperature</Ind>
- <Var>Hot v2.$r</Var>
+ <Var/>
</slot>
<Expr>
<Fun>getHot</Fun>
@@ -68,47 +104,131 @@
</Atom>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- </And>
- </body>
- <head/>
- </Implies>
- <Implies direction="forward">
- <oid>
- <Data>Hot v3</Data>
- </oid>
- <body>
- <And>
- <Atom>
- <Rel>Room</Rel>
- <Equals oriented="yes">
- <lhs>
- <Var>Hot v3.$r</Var>
- </lhs>
- <rhs>
+ </Atom>
+ </And>
+ </body>
+ <head>
+ <Atom>
+ <Rel/>
+ <Data>writer.write("\n\n");
+ writer.write("Room is hot in degree "+drools.getConsequenceDegree()+"\n");
+ writer.write("Evaluator from temp domain, requires a method in Room\n");</Data>
+ </Atom>
+ </head>
+ </Implies>
+ </formula>
+ </Forall>
+ <Forall>
+ <declare>
+ <Var type="org.drools.chance.fuzzyTest.Room">Hot v3 (Warm).$r</Var>
+ </declare>
+ <formula>
+ <Implies direction="forward">
+ <oid>
+ <Data>Hot v3 (Warm)</Data>
+ </oid>
+ <body>
+ <And>
+ <Atom>
+ <oid>
+ <Var>Hot v3 (Warm).$r</Var>
+ </oid>
+ <Rel>Room</Rel>
<Reify>
<And>
<Atom>
<op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.fuzzyTest.Room</Ind>
+ </Atom>
+ <Atom>
+ <op>
<Rel>seems</Rel>
</op>
<slot>
<Ind>temperature</Ind>
- <Var>Hot v3.$r</Var>
+ <Var/>
</slot>
- <Data xsi:type="xs:string">warm</Data>
+ <Ind type="java.lang.String">warm</Ind>
</Atom>
</And>
</Reify>
- </rhs>
- </Equals>
- </Atom>
- </And>
- </body>
- <head/>
- </Implies>
- </RuleBase>
+ </Atom>
+ </And>
+ </body>
+ <head>
+ <Atom>
+ <Rel/>
+ <Data>writer.write("\n\n");
+ writer.write("Room is warm in degree "+drools.getConsequenceDegree()+"\n");
+ writer.write("Evaluator from temp domain, runtime call (no method in room)\n");</Data>
+ </Atom>
+ </head>
+ </Implies>
+ </formula>
+ </Forall>
+ <Forall>
+ <declare>
+ <Var type="org.drools.chance.fuzzyTest.Room">Hot v4.$r</Var>
+ </declare>
+ <formula>
+ <Implies direction="forward">
+ <oid>
+ <Data>Hot v4</Data>
+ </oid>
+ <body>
+ <And>
+ <Atom>
+ <oid>
+ <Var>Hot v4.$r</Var>
+ </oid>
+ <Rel>Room</Rel>
+ <Reify>
+ <And>
+ <Atom>
+ <op>
+ <Rel>isA</Rel>
+ </op>
+ <slot>
+ <Ind>class</Ind>
+ <Var/>
+ </slot>
+ <Ind type="java.lang.Class">org.drools.chance.fuzzyTest.Room</Ind>
+ </Atom>
+ <Atom>
+ <op>
+ <Rel>evaluates</Rel>
+ </op>
+ <slot>
+ <Ind>hot</Ind>
+ <Var/>
+ </slot>
+ <Expr>
+ <Fun>getTemperature</Fun>
+ <Var>Hot v4.$r</Var>
+ </Expr>
+ </Atom>
+ </And>
+ </Reify>
+ </Atom>
+ </And>
+ </body>
+ <head>
+ <Atom>
+ <Rel/>
+ <Data>writer.write("\n\n");
+ writer.write("Room is hot in degree "+drools.getConsequenceDegree()+"\n");
+ writer.write("Room returns Evaluator via getHot(), which is dynamically called on temp.");</Data>
+ </Atom>
+ </head>
+ </Implies>
+ </formula>
+ </Forall>
+ </Rulebase>
</Assert>
</RuleML>
Modified: labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt 2009-05-27 15:38:21 UTC (rev 26750)
+++ labs/jbossrules/branches/DroolsChance/drools-guvnor/src/main/java/org/drools/guvnor/public/version.txt 2009-05-27 16:31:56 UTC (rev 26751)
@@ -1 +1 @@
-5.0.0.SNAPSHOT 26142:26190M
\ No newline at end of file
+5.0.0.SNAPSHOT 26686M
\ No newline at end of file
More information about the jboss-svn-commits
mailing list