Here is the actual reason why I wanted to know the difference between those 2.


rule "Remove smaller or non-overriden"
    dialect "java"
    when
        L : Response( $r : value && status != "override" )
        (Response(  value > $r ) or Response( status == "override"))
    then
        retract( L );   
end

The above rule performs what I intended. It retains the Response with the largest value or it the one that has an override status (if one exists)

But I am getting a different behaviour for this one

rule "Remove smaller or non-overriden"
    dialect "java"
    when
        L : Response( $r : value && status != "override" )
        Response(  value > $r ||  status == "override" )
    then
        retract( L );   
end

This rule seems to retain both the objects, the overriden and the largest value

Could you explain to me how they are diffrent.

Thanks

Jai


On Feb 6, 2008 4:30 PM, Mark Proctor <mproctor@codehaus.org> wrote:
One is a field constraint disjointed connected the other is a Conditional Element 'or'. Details of both are covered in the manual. Suffice to say the first is like writting if ( stmt1.attrib1 == "X" || smt1.attrib1 == "Y" ) whil the ohte results in two separate rules, one checking "X" and the other checking "Y", both rules can match and fire.

Mark

Jai Vasanth wrote:
Hi,

 What is the difference between the following 2 statements


stmt1 : FactA( attrib1 == "X" ||  attrib1 =="Y")   


stmt2: FactA( attrib1 =="X") or FactA(attrib1 =="Y")



Thanks

Jai

_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users


_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users