[rules-users] Not and forall operator behaviour

Davide Sottara dsotty at gmail.com
Thu May 29 16:46:07 EDT 2014


Both should fire when there is no message.

This said, the two are not equivalent.
The negation of
Message( sent == true, status != INITIALIZED )
is:
Message( sent == false *||* status == INITIALIZED )
That is, by deMorgan's laws, you need to negate
the operators AND flip the and/or connectives.

In case something still seems weird, could you
please specify the drools version you're using,
as well as which facts you are inserting exactly?

Thanks
Davide


On 05/29/2014 09:33 PM, rogerL wrote:
> Are the two following statements not equivalent?
>
>     forall($msg:Message()
>             Message(this==$msg, sent==true, status!=State._INITIALIZED)
>     )
>
>
>     not( Message(sent==false, status==State._INITIALIZED) )
>
> My understanding is that they both ensure that there are no Message objects
> in WM with property 'sent' set to false and property 'status' set to
> State._INITIALIZED.
>
> In my situation, the 'forall' approach is working as expected, the 'not'
> approach fires once (when there are no Message objects in WM) and never
> again.
>
> Appreciate if anyone could shed light on this.
>
>
>
> --
> View this message in context: http://drools.46999.n3.nabble.com/Not-and-forall-operator-behaviour-tp4029761.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> 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/20140529/4b837578/attachment.html 


More information about the rules-users mailing list