Barath,
Your mistake is treating NOT as a boolean operator instead of existential quantifier.
In other words: NOT is an EXISTENTIAL quantifier. It will be true only if there are no facts that satisfy your pattern. So, the rule engine will bind a fact to the first pattern and will try to match the existential quantifier NOT against all existing facts:
Case 1 : $a : Order($value : 1)
not Order( value > 1)
So match is false because there are Orders whose value are 2 and 3.
Case 2 : $a : Order($value : 2)
not Order( value > 2)
So match is false because there is an Order whose value is 3.
Case 3 : $a : Order($value : 3)
not Order( value > 3)
So match is TRUE because there are NO Orders whose value is greater than 3.
Rule will fire and retract Order( value : 3)
Case 4 : $a : Order($value : 2)
not Order( value > 2)
Now, this match is true, because there are no more Orders whose value is greater than 2, since Order( value : 3 ) was retracted in the previous step.
And so on...
Hope it helps,
Edson
2008/2/21, Barath <barathguna@gmail.com>:
Hi,
I apologize for my logic fault i made in previous post.
The correct logic as follows,
rule "Descending order"
when
$a : Order( $value : value )
not Order( value > $value)
then
System.out.println("value :"+$value);
retract($a);
end
1. Order value=1
2. Order value=2
3. Order value=3
Case 1 : $a : Order($value : 1)
not Order(2 > 1)
So rule is False.
Case 2 : $a : Order($value : 1)
not Order(3 > 1)
So rule is False.
Case 3 : $a : Order($value : 2)
not Order(1 > 2)
So rule is True.
Case 4 : $a : Order($value : 2)
not Order(3 > 2)
So rule is False.
Case 5 : $a : Order($value : 3)
not Order(1 > 3)
So rule is True.
Case 6 : $a : Order($value : 3)
not Order(2 > 3)
So rule is True.
This indicates the rule should fire for three times but its not the case.
I know i going wrong some where but i couldn't figure out.
Plz do help me.....
Barath.
--
View this message in context: http://www.nabble.com/Plz-reply-%3A-Descending-order-rule-tp15606103p15610848.html
Sent from the drools - user mailing list archive at Nabble.com.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
JBoss Drools Core Development
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @ www.jboss.com