[jboss-svn-commits] JBL Code SVN: r26758 - in labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl: xml and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu May 28 04:48:23 EDT 2009


Author: dsotty
Date: 2009-05-28 04:48:22 -0400 (Thu, 28 May 2009)
New Revision: 26758

Added:
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/CutTest.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists2Test.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists3Test.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists4Test.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ExistsTest.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Forall2Test.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ForallTest.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest1.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest2.log
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest.ruleml.xml
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest1.ruleml.xml
   labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest2.ruleml.xml
Log:
Tests

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/CutTest.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/CutTest.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/CutTest.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,86 @@
+Rule without cut fires 
+Eval Record info(1.0) for args L : Message 31	 
+AND{
+(31 at 20) : 0.07029788 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.07029788,]
+(31 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(31 at 22) : 0.07029788 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))),TestCut 2) [EVAL 0.07029788,]
+	(31 at 20) : 0.07029788 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.07029788,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(31 at 1) : 0.07029788 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m)) [EVAL 0.07029788,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(31 at 8) : 0.07029788 random(org.drools.chance.Message.status,null) [EVAL 0.07029788,]
+			(31 at 19) : 1.0 Object ==(org.drools.chance.Message.this,$m) [EVAL 1.0,]
+	(31 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+
+Rule with cut fires 
+Eval Record info(1.0) for args L : Message 32	 
+AND{
+(32 at 10) : 0.91325086 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.91325086,]
+(32 at 11) : 1.0 TestCut 1 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(32 at 12) : 0.91325086 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))),TestCut 1) [EVAL 0.91325086,]
+	(32 at 10) : 0.91325086 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.91325086,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,0)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 4) : 1.0 Integer >(org.drools.chance.Message.status,0) [EVAL 1.0,]
+		(32 at 1) : 0.91325086 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m)) [EVAL 0.91325086,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 8) : 0.91325086 random(org.drools.chance.Message.status,null) [EVAL 0.91325086,]
+			(32 at 9) : 1.0 Object ==(org.drools.chance.Message.this,$m) [EVAL 1.0,]
+	(32 at 11) : 1.0 TestCut 1 [EVAL 0.0,PRIOR 1.0,]
+
+Rule without cut fires 
+Eval Record info(1.0) for args L : Message 31	Message 32	 
+AND{
+(63 at 20) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.0,]
+(63 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(63 at 22) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))),TestCut 2) [EVAL 0.0,]
+	(63 at 20) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(63 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m)) [EVAL 0.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 8) : 0.91325086 random(org.drools.chance.Message.status,null) [EVAL 0.91325086,]
+			(63 at 19) : 0.0 Object ==(org.drools.chance.Message.this,$m) [EVAL 0.0,]
+	(63 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+
+Rule without cut fires 
+Eval Record info(1.0) for args L : Message 32	 
+AND{
+(32 at 20) : 0.91325086 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.91325086,]
+(32 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(32 at 22) : 0.91325086 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))),TestCut 2) [EVAL 0.91325086,]
+	(32 at 20) : 0.91325086 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.91325086,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(32 at 1) : 0.91325086 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m)) [EVAL 0.91325086,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 8) : 0.91325086 random(org.drools.chance.Message.status,null) [EVAL 0.91325086,]
+			(32 at 19) : 1.0 Object ==(org.drools.chance.Message.this,$m) [EVAL 1.0,]
+	(32 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+
+Rule without cut fires 
+Eval Record info(1.0) for args L : Message 32	Message 31	 
+AND{
+(63 at 20) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.0,]
+(63 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(63 at 22) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))),TestCut 2) [EVAL 0.0,]
+	(63 at 20) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m))) [EVAL 0.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(63 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null),Object ==(org.drools.chance.Message.this,$m)) [EVAL 0.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(31 at 8) : 0.07029788 random(org.drools.chance.Message.status,null) [EVAL 0.07029788,]
+			(63 at 19) : 0.0 Object ==(org.drools.chance.Message.this,$m) [EVAL 0.0,]
+	(63 at 21) : 1.0 TestCut 2 [EVAL 0.0,PRIOR 1.0,]
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists2Test.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists2Test.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists2Test.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,58 @@
+Existential check 0.0
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 16) : 0.0 dotAnd(exists()) [EVAL 0.0,]
+(0 at 17) : 1.0 Test Exist 4 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 18) : 0.0 minAnd(dotAnd(exists())Test Exist 4) [EVAL 0.0,]
+	(0 at 16) : 0.0 dotAnd(exists()) [EVAL 0.0,]
+		(0 at 15) : 0.0 exists() [EVAL 0.0,]
+	(0 at 17) : 1.0 Test Exist 4 [EVAL 0.0,PRIOR 1.0,]
+
+
+Existential check 1.0
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 16) : 1.0 dotAnd(exists()) [EVAL 1.0,]
+(0 at 17) : 1.0 Test Exist 4 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 18) : 1.0 minAnd(dotAnd(exists())Test Exist 4) [EVAL 1.0,]
+	(0 at 16) : 1.0 dotAnd(exists()) [EVAL 1.0,]
+		(63 at 15) : 1.0 exists() [EVAL 1.0,]
+			(31 at -1) : 0.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)))) [EVAL 0.0,]
+				(31 at 13) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1))) [EVAL 0.0,]
+					(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)) [EVAL 1.0,]
+						(31 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 7) : 1.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 1.0,]
+					(31 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 0.0,]
+						(31 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 0.0,]
+			(63 at -1) : 0.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)))) [EVAL 0.0,]
+				(63 at 13) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1))) [EVAL 0.0,]
+					(32 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)) [EVAL 0.0,]
+						(32 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(32 at 7) : 0.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 0.0,]
+					(31 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 0.0,]
+						(31 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 0.0,]
+			(32 at -1) : 0.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)))) [EVAL 0.0,]
+				(32 at 13) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1))) [EVAL 0.0,]
+					(32 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)) [EVAL 0.0,]
+						(32 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(32 at 7) : 0.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 0.0,]
+					(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+						(32 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(32 at 11) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+			(63 at -1) : 1.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)))) [EVAL 1.0,]
+				(63 at 13) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1))) [EVAL 1.0,]
+					(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)) [EVAL 1.0,]
+						(31 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 7) : 1.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 1.0,]
+					(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+						(32 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(32 at 11) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+	(0 at 17) : 1.0 Test Exist 4 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists3Test.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists3Test.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists3Test.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,81 @@
+
+
+ Conditional join with existence
+	 Rule triggered for M1
+Existential check 0.0
+Eval Record info(1.0) for args L : Message 32	Message 31	 
+AND{
+(63 at 9) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists()) [EVAL 0.0,]
+(32 at 10) : 1.0 Test Exist 5 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(63 at 11) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists())Test Exist 5) [EVAL 0.0,]
+	(63 at 9) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists()) [EVAL 0.0,]
+		(32 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)) [EVAL 0.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 4) : 0.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 0.0,]
+		(63 at 8) : 0.0 exists() [EVAL 0.0,]
+			(63 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+				(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(63 at 8) : 0.0 Integer >(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+			(32 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+				(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(32 at 8) : 0.0 Integer >(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(32 at 10) : 1.0 Test Exist 5 [EVAL 0.0,PRIOR 1.0,]
+
+
+
+
+ Conditional join with existence
+	 Rule triggered for M0
+Existential check 1.0
+Eval Record info(1.0) for args L : Message 31	 
+AND{
+(31 at 9) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists()) [EVAL 1.0,]
+(31 at 10) : 1.0 Test Exist 5 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(31 at 11) : 1.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists())Test Exist 5) [EVAL 1.0,]
+	(31 at 9) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists()) [EVAL 1.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(31 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 1.0,]
+		(63 at 8) : 1.0 exists() [EVAL 1.0,]
+			(31 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+				(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(31 at 8) : 0.0 Integer >(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+			(63 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,$s)) [EVAL 1.0,]
+				(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(63 at 8) : 1.0 Integer >(org.drools.chance.Message.status,$s) [EVAL 1.0,]
+	(31 at 10) : 1.0 Test Exist 5 [EVAL 0.0,PRIOR 1.0,]
+
+
+
+
+ Conditional join with existence
+	 Rule triggered for M2
+Existential check 0.0
+Eval Record info(1.0) for args L : Message 33	Message 32	Message 31	 
+AND{
+(30 at 9) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists()) [EVAL 0.0,]
+(33 at 10) : 1.0 Test Exist 5 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(30 at 11) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists())Test Exist 5) [EVAL 0.0,]
+	(30 at 9) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)),exists()) [EVAL 0.0,]
+		(33 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,0)) [EVAL 0.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(33 at 4) : 0.0 Integer ==(org.drools.chance.Message.status,0) [EVAL 0.0,]
+		(30 at 8) : 0.0 exists() [EVAL 0.0,]
+			(1 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+				(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(1 at 8) : 0.0 Integer >(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+			(62 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+				(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(62 at 8) : 0.0 Integer >(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+			(33 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+				(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(33 at 8) : 0.0 Integer >(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(33 at 10) : 1.0 Test Exist 5 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists4Test.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists4Test.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Exists4Test.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,32 @@
+Existential check 1.0
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 10) : 1.0 dotAnd(-exists()) [EVAL 1.0,]
+(0 at 11) : 1.0 Test Exist 6 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 12) : 1.0 minAnd(dotAnd(-exists())Test Exist 6) [EVAL 1.0,]
+	(0 at 10) : 1.0 dotAnd(-exists()) [EVAL 1.0,]
+		(0 at 9) : 1.0 -exists() [EVAL 1.0,]
+	(0 at 11) : 1.0 Test Exist 6 [EVAL 0.0,PRIOR 1.0,]
+
+
+Existential check 0.24914593
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 10) : 0.24914593 dotAnd(-exists()) [EVAL 0.24914593,]
+(0 at 11) : 1.0 Test Exist 6 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 12) : 0.24914593 minAnd(dotAnd(-exists())Test Exist 6) [EVAL 0.24914593,]
+	(0 at 10) : 0.24914593 dotAnd(-exists()) [EVAL 0.24914593,]
+		(63 at 9) : 0.24914593 -exists() [EVAL 0.24914593,]
+			(31 at 1) : 0.664691 -dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null)) [EVAL 0.664691,]
+				(31 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(31 at 7) : 0.33530906 random(org.drools.chance.Message.status,null) [EVAL 0.33530906,]
+			(32 at 1) : 0.7508541 -dotAnd(==(class,org.drools.chance.Message),random(org.drools.chance.Message.status,null)) [EVAL 0.7508541,]
+				(32 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(32 at 7) : 0.24914593 random(org.drools.chance.Message.status,null) [EVAL 0.24914593,]
+	(0 at 11) : 1.0 Test Exist 6 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ExistsTest.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ExistsTest.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ExistsTest.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,35 @@
+Existential check 0.0
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 9) : 0.0 dotAnd(exists()) [EVAL 0.0,]
+(0 at 10) : 1.0 Test Exist 3 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 11) : 0.0 minAnd(dotAnd(exists())Test Exist 3) [EVAL 0.0,]
+	(0 at 9) : 0.0 dotAnd(exists()) [EVAL 0.0,]
+		(0 at 8) : 0.0 exists() [EVAL 0.0,]
+	(0 at 10) : 1.0 Test Exist 3 [EVAL 0.0,PRIOR 1.0,]
+
+
+Existential check 1.0
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 9) : 1.0 dotAnd(exists()) [EVAL 1.0,]
+(0 at 10) : 1.0 Test Exist 3 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 11) : 1.0 minAnd(dotAnd(exists())Test Exist 3) [EVAL 1.0,]
+	(0 at 9) : 1.0 dotAnd(exists()) [EVAL 1.0,]
+		(30 at 8) : 1.0 exists() [EVAL 1.0,]
+			(31 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,2)) [EVAL 0.0,]
+				(31 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(31 at 7) : 0.0 Integer ==(org.drools.chance.Message.status,2) [EVAL 0.0,]
+			(32 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,2)) [EVAL 0.0,]
+				(32 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(32 at 7) : 0.0 Integer ==(org.drools.chance.Message.status,2) [EVAL 0.0,]
+			(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,2)) [EVAL 1.0,]
+				(33 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(33 at 7) : 1.0 Integer ==(org.drools.chance.Message.status,2) [EVAL 1.0,]
+	(0 at 10) : 1.0 Test Exist 3 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Forall2Test.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Forall2Test.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/Forall2Test.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,92 @@
+Existential check 1.0
+Eval Record info(1.0) for args L : Message 32	Message 31	 
+AND{
+(63 at 20) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-exists()) [EVAL 1.0,]
+(32 at 21) : 1.0 Test Forall 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(63 at 22) : 1.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-exists())Test Forall 2) [EVAL 1.0,]
+	(63 at 20) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-exists()) [EVAL 1.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+		(63 at 19) : 1.0 -exists() [EVAL 1.0,]
+			(63 at -1) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 0.0,]
+				(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+					(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+				(63 at 17) : 0.0 -dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m))) [EVAL 0.0,]
+					(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(63 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 11) : 1.0 Integer <=(org.drools.chance.Message.status,1) [EVAL 1.0,]
+						(63 at 12) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+					(63 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 15) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+						(63 at 12) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+	(32 at 21) : 1.0 Test Forall 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+Existential check 0.0
+Eval Record info(1.0) for args L : Message 32	Message 31	 
+AND{
+(63 at 20) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-exists()) [EVAL 0.0,]
+(32 at 21) : 1.0 Test Forall 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(63 at 22) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-exists())Test Forall 2) [EVAL 0.0,]
+	(63 at 20) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-exists()) [EVAL 0.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+		(30 at 19) : 0.0 -exists() [EVAL 0.0,]
+			(63 at -1) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 0.0,]
+				(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+					(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+				(63 at 17) : 0.0 -dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m))) [EVAL 0.0,]
+					(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(63 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 11) : 1.0 Integer <=(org.drools.chance.Message.status,1) [EVAL 1.0,]
+						(63 at 12) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+					(63 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 15) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+						(63 at 12) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+			(1 at -1) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 1.0,]
+				(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+					(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+				(1 at 17) : 1.0 -dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m))) [EVAL 1.0,]
+					(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+						(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(1 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)) [EVAL 0.0,]
+						(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(33 at 11) : 0.0 Integer <=(org.drools.chance.Message.status,1) [EVAL 0.0,]
+						(1 at 12) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+					(1 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+						(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(32 at 15) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+						(1 at 12) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+			(30 at -1) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),-dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 1.0,]
+				(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+					(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+				(30 at 17) : 1.0 -dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m))) [EVAL 1.0,]
+					(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+					(30 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer <=(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)) [EVAL 0.0,]
+						(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(33 at 11) : 0.0 Integer <=(org.drools.chance.Message.status,1) [EVAL 0.0,]
+						(30 at 12) : 0.0 Object ==(org.drools.chance.Message.this,m) [EVAL 0.0,]
+					(30 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+						(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+						(31 at 15) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+						(30 at 12) : 0.0 Object ==(org.drools.chance.Message.this,m) [EVAL 0.0,]
+	(32 at 21) : 1.0 Test Forall 2 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ForallTest.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ForallTest.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/ForallTest.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,35 @@
+Existential check 1.0
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 10) : 1.0 dotAnd(-exists()) [EVAL 1.0,]
+(0 at 11) : 1.0 Test Forall 1 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 12) : 1.0 minAnd(dotAnd(-exists())Test Forall 1) [EVAL 1.0,]
+	(0 at 10) : 1.0 dotAnd(-exists()) [EVAL 1.0,]
+		(0 at 9) : 1.0 -exists() [EVAL 1.0,]
+	(0 at 11) : 1.0 Test Forall 1 [EVAL 0.0,PRIOR 1.0,]
+
+
+Existential check 0.0
+Eval Record info(1.0) for args L :  
+AND{
+(0 at 10) : 0.0 dotAnd(-exists()) [EVAL 0.0,]
+(0 at 11) : 1.0 Test Forall 1 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(0 at 12) : 0.0 minAnd(dotAnd(-exists())Test Forall 1) [EVAL 0.0,]
+	(0 at 10) : 0.0 dotAnd(-exists()) [EVAL 0.0,]
+		(30 at 9) : 0.0 -exists() [EVAL 0.0,]
+			(31 at 1) : 0.0 -dotAnd(==(class,org.drools.chance.Message),Integer <(org.drools.chance.Message.status,2)) [EVAL 0.0,]
+				(31 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(31 at 7) : 1.0 Integer <(org.drools.chance.Message.status,2) [EVAL 1.0,]
+			(32 at 1) : 0.0 -dotAnd(==(class,org.drools.chance.Message),Integer <(org.drools.chance.Message.status,2)) [EVAL 0.0,]
+				(32 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(32 at 7) : 1.0 Integer <(org.drools.chance.Message.status,2) [EVAL 1.0,]
+			(33 at 1) : 1.0 -dotAnd(==(class,org.drools.chance.Message),Integer <(org.drools.chance.Message.status,2)) [EVAL 1.0,]
+				(33 at 6) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(33 at 7) : 0.0 Integer <(org.drools.chance.Message.status,2) [EVAL 0.0,]
+	(0 at 11) : 1.0 Test Forall 1 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,36 @@
+
+
+ Tested couple M0 M0
+Simple Join check 0.0
+
+
+ Tested couple M1 M0
+Simple Join check 0.0
+
+
+ Tested couple M1 M1
+Simple Join check 0.0
+
+
+ Tested couple M0 M1
+Simple Join check 1.0
+
+
+ Tested couple M2 M1
+Simple Join check 0.0
+
+
+ Tested couple M2 M0
+Simple Join check 0.0
+
+
+ Tested couple M2 M2
+Simple Join check 0.0
+
+
+ Tested couple M1 M2
+Simple Join check 0.0
+
+
+ Tested couple M0 M2
+Simple Join check 0.0

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest1.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest1.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest1.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,60 @@
+M0  M0Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 31	 
+AND{
+(31 at 10) : 0.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 0.0,]
+(31 at 11) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(31 at 12) : 0.0 minAnd(dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))),Test Join 2) [EVAL 0.0,]
+	(31 at 10) : 0.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 0.0,]
+		(31 at 9) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m))) [EVAL 0.0,]
+			(31 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 0.0,]
+				(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(31 at 4) : 0.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 0.0,]
+			(31 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)) [EVAL 0.0,]
+				(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(31 at 4) : 0.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 0.0,]
+				(31 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+	(31 at 11) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M1  M1Self-Join check 1.0
+Eval Record info(1.0) for args L : Message 32	 
+AND{
+(32 at 10) : 1.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 1.0,]
+(32 at 11) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(32 at 12) : 1.0 minAnd(dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))),Test Join 2) [EVAL 1.0,]
+	(32 at 10) : 1.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 1.0,]
+		(32 at 9) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m))) [EVAL 1.0,]
+			(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 1.0,]
+				(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+			(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+				(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(32 at 4) : 1.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 1.0,]
+				(32 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+	(32 at 11) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M2  M2Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 33	 
+AND{
+(33 at 10) : 0.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 0.0,]
+(33 at 11) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(33 at 12) : 0.0 minAnd(dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))),Test Join 2) [EVAL 0.0,]
+	(33 at 10) : 0.0 dotAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)))) [EVAL 0.0,]
+		(33 at 9) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m))) [EVAL 0.0,]
+			(33 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1)) [EVAL 0.0,]
+				(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(33 at 4) : 0.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 0.0,]
+			(33 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,1),Object ==(org.drools.chance.Message.this,m)) [EVAL 0.0,]
+				(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+				(33 at 4) : 0.0 Integer ==(org.drools.chance.Message.status,1) [EVAL 0.0,]
+				(33 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+	(33 at 11) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest2.log
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest2.log	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/log/JoinTest2.log	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,198 @@
+M0  M0M0
+Self-Join check 1.0
+Eval Record info(1.0) for args L : Message 31	 
+AND{
+(31 at 12) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 1.0,]
+(31 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(31 at 14) : 1.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 1.0,]
+	(31 at 12) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 1.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(31 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(31 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(31 at 11) : 1.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 1.0,]
+	(31 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M1  M1M0
+Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 32	Message 31	 
+AND{
+(63 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+(63 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(63 at 14) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 0.0,]
+	(63 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(32 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(63 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(63 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(63 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M1  M1M1
+Self-Join check 1.0
+Eval Record info(1.0) for args L : Message 32	 
+AND{
+(32 at 12) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 1.0,]
+(32 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(32 at 14) : 1.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 1.0,]
+	(32 at 12) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 1.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(32 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 11) : 1.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 1.0,]
+	(32 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M0  M0M1
+Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 31	Message 32	 
+AND{
+(63 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+(63 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(63 at 14) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 0.0,]
+	(63 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(31 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(31 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(63 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(63 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(63 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M2  M2M1
+Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 33	Message 32	 
+AND{
+(1 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+(1 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(1 at 14) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 0.0,]
+	(1 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+		(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(33 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(33 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(1 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(1 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(1 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M2  M2M0
+Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 33	Message 31	 
+AND{
+(62 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+(62 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(62 at 14) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 0.0,]
+	(62 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+		(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(33 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(33 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(62 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(62 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(62 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M2  M2M2
+Self-Join check 1.0
+Eval Record info(1.0) for args L : Message 33	 
+AND{
+(33 at 12) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 1.0,]
+(33 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(33 at 14) : 1.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 1.0,]
+	(33 at 12) : 1.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 1.0,]
+		(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(33 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(33 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(33 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 1.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(33 at 11) : 1.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 1.0,]
+	(33 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M1  M1M2
+Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 32	Message 33	 
+AND{
+(1 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+(1 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(1 at 14) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 0.0,]
+	(1 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(32 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(32 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(32 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(32 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(1 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(1 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(1 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+
+M0  M0M2
+Self-Join check 0.0
+Eval Record info(1.0) for args L : Message 31	Message 33	 
+AND{
+(62 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+(62 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+}
+
+(62 at 14) : 0.0 minAnd(dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))),Test Join 2) [EVAL 0.0,]
+	(62 at 12) : 0.0 dotAnd(dotAnd(==(class,org.drools.chance.Message)),dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)),dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s))) [EVAL 0.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+		(31 at 1) : 1.0 dotAnd(==(class,org.drools.chance.Message),Integer >(org.drools.chance.Message.status,-1),Object ==(org.drools.chance.Message.this,m)) [EVAL 1.0,]
+			(31 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(31 at 7) : 1.0 Integer >(org.drools.chance.Message.status,-1) [EVAL 1.0,]
+			(31 at 8) : 1.0 Object ==(org.drools.chance.Message.this,m) [EVAL 1.0,]
+		(62 at 1) : 0.0 dotAnd(==(class,org.drools.chance.Message),Integer ==(org.drools.chance.Message.status,$s)) [EVAL 0.0,]
+			(33 at 3) : 1.0 ==(class,org.drools.chance.Message) [EVAL 1.0,]
+			(62 at 11) : 0.0 Integer ==(org.drools.chance.Message.status,$s) [EVAL 0.0,]
+	(62 at 13) : 1.0 Test Join 2 [EVAL 0.0,PRIOR 1.0,]
+
+

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest.ruleml.xml
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest.ruleml.xml	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest.ruleml.xml	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,100 @@
+<?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>
+            <Forall>
+                <declare>
+                    <Var type="org.drools.chance.Message">Test Join.n</Var>
+                </declare>
+                <declare>
+                    <Var type="org.drools.chance.Message">Test Join.m</Var>
+                </declare>
+                <formula>
+                    <Implies direction="forward">
+                        <oid>
+                            <Data>Test Join</Data>
+                        </oid>
+                        <body>
+                            <And>
+                                <Atom>
+                                    <oid>
+                                        <Var>Test Join.m</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/>
+                                                </slot>
+                                                <Ind type="java.lang.Number">0</Ind>
+                                            </Atom>
+                                        </And>
+                                    </Reify>
+                                </Atom>
+                                <Atom>
+                                    <oid>
+                                        <Var>Test Join.n</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/>
+                                                </slot>
+                                                <Ind type="java.lang.Number">1</Ind>
+                                            </Atom>
+                                        </And>
+                                    </Reify>
+                                </Atom>
+                            </And>
+                        </body>
+                        <head>
+                            <Atom>
+                                <Rel/>
+                                <Data>writer.write("\n\n Tested couple "+m.getMessage() + " " + n.getMessage() +"\n");
+		writer.write("Simple Join check "+drools.getConsequenceDegree()+"\n");
+		System.out.println("Existential check "+drools.getConsequenceDegree()+"\n");</Data>
+                            </Atom>
+                        </head>
+                    </Implies>
+                </formula>
+            </Forall>
+        </Rulebase>
+    </Assert>
+</RuleML>

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest1.ruleml.xml
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest1.ruleml.xml	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest1.ruleml.xml	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,116 @@
+<?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>
+            <Forall>
+                <declare>
+                    <Var type="org.drools.chance.Message">Test Join 2.p</Var>
+                </declare>
+                <declare>
+                    <Var type="org.drools.chance.Message">Test Join 2.m</Var>
+                </declare>
+                <formula>
+                    <Implies direction="forward">
+                        <oid>
+                            <Data>Test Join 2</Data>
+                        </oid>
+                        <body>
+                            <And>
+                                <And>
+                                    <Atom>
+                                        <oid>
+                                            <Var>Test Join 2.m</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/>
+                                                    </slot>
+                                                    <Ind type="java.lang.Number">1</Ind>
+                                                </Atom>
+                                            </And>
+                                        </Reify>
+                                    </Atom>
+                                    <Atom>
+                                        <oid>
+                                            <Var>Test Join 2.p</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>
+                                                    <!--unsupported attribute - 
+<cut/>
+-->
+                                                    <op>
+                                                        <Rel>==</Rel>
+                                                    </op>
+                                                    <slot>
+                                                        <Ind>this</Ind>
+                                                        <Var/>
+                                                    </slot>
+                                                    <Var>Test Join 2.m</Var>
+                                                </Atom>
+                                                <Atom>
+                                                    <op>
+                                                        <Rel>==</Rel>
+                                                    </op>
+                                                    <slot>
+                                                        <Ind>status</Ind>
+                                                        <Var/>
+                                                    </slot>
+                                                    <Ind type="java.lang.Number">1</Ind>
+                                                </Atom>
+                                            </And>
+                                        </Reify>
+                                    </Atom>
+                                </And>
+                            </And>
+                        </body>
+                        <head>
+                            <Atom>
+                                <Rel/>
+                                <Data>writer.write(m.getMessage() + "  " + p.getMessage());
+		writer.write("Self-Join check "+drools.getConsequenceDegree()+"\n"+drools.getEvaluation().expand()+"\n\n");
+		System.out.println("Existential check "+drools.getConsequenceDegree());
+		System.out.println(m.getMessage() + "  " + p.getMessage());</Data>
+                            </Atom>
+                        </head>
+                    </Implies>
+                </formula>
+            </Forall>
+        </Rulebase>
+    </Assert>
+</RuleML>

Added: labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest2.ruleml.xml
===================================================================
--- labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest2.ruleml.xml	                        (rev 0)
+++ labs/jbossrules/branches/DroolsChance/drools-examples/drools-examples-drl/xml/JoinTest2.ruleml.xml	2009-05-28 08:48:22 UTC (rev 26758)
@@ -0,0 +1,140 @@
+<?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>
+            <Forall>
+                <declare>
+                    <Var type="org.drools.chance.Message">Test Join 2.q</Var>
+                </declare>
+                <declare>
+                    <Var type="org.drools.chance.Message">Test Join 2.p</Var>
+                </declare>
+                <declare>
+                    <Var type="int">Test Join 2.p.$s</Var>
+                </declare>
+                <declare>
+                    <Var type="org.drools.chance.Message">Test Join 2.m</Var>
+                </declare>
+                <formula>
+                    <Implies direction="forward">
+                        <oid>
+                            <Data>Test Join 2</Data>
+                        </oid>
+                        <body>
+                            <And>
+                                <Atom>
+                                    <oid>
+                                        <Var>Test Join 2.m</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>
+                                        </And>
+                                    </Reify>
+                                </Atom>
+                                <Atom>
+                                    <oid>
+                                        <Var>Test Join 2.p</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>
+                                                <!--unsupported attribute - 
+<cut/>
+-->
+                                                <op>
+                                                    <Rel>==</Rel>
+                                                </op>
+                                                <slot>
+                                                    <Ind>this</Ind>
+                                                    <Var/>
+                                                </slot>
+                                                <Var>Test Join 2.m</Var>
+                                            </Atom>
+                                            <Atom>
+                                                <op>
+                                                    <Rel>&gt;</Rel>
+                                                </op>
+                                                <slot>
+                                                    <Ind>status</Ind>
+                                                    <Var>Test Join 2.p.$s</Var>
+                                                </slot>
+                                                <Ind type="java.lang.Number">-1</Ind>
+                                            </Atom>
+                                        </And>
+                                    </Reify>
+                                </Atom>
+                                <Atom>
+                                    <oid>
+                                        <Var>Test Join 2.q</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/>
+                                                </slot>
+                                                <Var>Test Join 2.p.$s</Var>
+                                            </Atom>
+                                        </And>
+                                    </Reify>
+                                </Atom>
+                            </And>
+                        </body>
+                        <head>
+                            <Atom>
+                                <Rel/>
+                                <Data>writer.write(m.getMessage() + "  " + p.getMessage() + q.getMessage() + "\n");
+		writer.write("Self-Join check "+drools.getConsequenceDegree()+"\n"+drools.getEvaluation().expand()+"\n\n");
+		System.out.println("Existential check "+drools.getConsequenceDegree());
+		System.out.println(m.getMessage() + "  " + p.getMessage());</Data>
+                            </Atom>
+                        </head>
+                    </Implies>
+                </formula>
+            </Forall>
+        </Rulebase>
+    </Assert>
+</RuleML>




More information about the jboss-svn-commits mailing list