[rules-users] Pattern matching

Mark Proctor mproctor at codehaus.org
Thu Feb 7 16:45:27 EST 2008


Better still why don't you say why you think it's different. Remember 
'or' results in two rules being generate, so write out those two rules 
separately and it might help you understand. The second one is just 
standard logic. And don't forget you'll get standard cross products 
here, i.e. A x B and B x A.

Mark
Jai Vasanth wrote:
> 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 at codehaus.org 
> <mailto:mproctor at 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 at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>>     https://lists.jboss.org/mailman/listinfo/rules-users
>>       
>
>
>     _______________________________________________
>     rules-users mailing list
>     rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080207/751ea5d1/attachment.html 


More information about the rules-users mailing list