[rules-users] Plz reply : Descending order rule
Edson Tirelli
tirelli at post.com
Thu Feb 21 09:41:21 EST 2008
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 at 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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080221/ad14e30c/attachment.html
More information about the rules-users
mailing list