[rules-users] logical 'not' - is there such a construct?

Olenin, Vladimir (MOH) Vladimir.Olenin at moh.gov.on.ca
Wed Feb 21 11:10:13 EST 2007


Ok, great. Thanks, Edson.

Vlad
 

-----Original Message-----
From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Edson Tirelli
Sent: 21 February 2007 12:01
To: Rules Users List
Subject: Re: [rules-users] logical 'not' - is there such a construct?


   Vlad,

   It will result in exactly the same as removing the exists. So, you 
shall get not problem with that.
   In fact, we have a logic optimizer/transformer that does some 
transformations/optimizations and I will add that as a simple optimization.

   []s
   Edson

Olenin, Vladimir (MOH) wrote:

>In effect, is such construct is allowed now in 3.1M?
>
>	not (
>		exists MyObject2(field == 'value')
>	)
>
>I'm just not sure what 'not' element as an 'existential operation' will do
>in case it's passed 'boolean' result as an operand. Would it act as a
>logical negation? I understand that the above construct can be simply
>expressed by removing 'exists' altogether, but the problem is that the
above
>is the result of 'automatic template' generation (ie, there is a sequence
of
>columns with 'exists' and 'not' elements and in case there is only one such
>element the generation might result in the above construct).
>
>Thanks,
>
>Vlad
>
>
>-----Original Message-----
>From: rules-users-bounces at lists.jboss.org
>[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Edson Tirelli
>Sent: 20 February 2007 16:30
>To: Rules Users List
>Subject: Re: [rules-users] logical 'not' - is there such a construct?
>
>    No, the "not" conditional element is an existential operator, so the 
>meaning is what you expressed in your first example. I thought that was 
>what you were looking for, but apparently it is not.
>    I never heard about any construction capable of doing what you are 
>asking for in a rules engine... maybe someone else can throw some light 
>in...
>
>    []s
>    Edson
>
>Olenin, Vladimir (MOH) wrote:
>
>  
>
>>So, if used like that, 'not' does not have 'existential' meaning then, but
>>simple 'negation'? I mean, the expression
>>
>>  not MyObject(field == 'value')
>>
>>would still mean 'not exists', correct? Would the expression
>>
>>  not (MyObject(field == 'value'))
>>
>>mean 
>>
>>  MyObject(field != 'value')
>>
>>then. In other worlds, "all objects OTHER then those matching the
>>constraint"?
>>
>>Thanks.
>>
>>Vlad
>>
>>-----Original Message-----
>>From: rules-users-bounces at lists.jboss.org
>>[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Edson Tirelli
>>Sent: 20 February 2007 14:37
>>To: Rules Users List
>>Subject: Re: [rules-users] logical 'not' - is there such a construct?
>>
>> Vlad,
>>
>>In 3.1M1 you can write:
>>
>>rule X
>>when
>>not (
>>MyObject( aaa == "bbb" ) and
>>MyObject2( bbb == "aaa" )
>>)
>>then
>>// do something
>>end
>>
>>But remember that variables bound inside the "not" block are not avaible 
>>in the consequence for obvious reasons.
>>
>>[]s
>>Edson
>>
>>Olenin, Vladimir (MOH) wrote:
>>
>> 
>>
>>    
>>
>>>Hi,
>>>
>>>I wonder if there is logical 'not' operator (in the meaning of "!=" -> 
>>>'not equal') which can be applied to the whole rule? Eg:
>>>
>>>Rule x
>>>
>>>When
>>>
>>>! (
>>>
>>>MyObject(aaa == "bbb")
>>>
>>>MyObject2(bbb == "aaa")
>>>
>>>)
>>>
>>>Then
>>>
>>>// do smth
>>>
>>>End
>>>
>>>Basically I'm looking for an operator to reverse the evaluation result 
>>>of the expression in the brackets. The use case: in my system all 
>>>rules are defined from 'rule passes' prospective, while the 
>>>application should take some action in case the rule is NOT passed 
>>>(ie, 'else' case).
>>>
>>>Any way to do that except reformulating the constraints themselves?
>>>
>>>Thanks,
>>>
>>>Vlad
>>>
>>>------------------------------------------------------------------------
>>>
>>>_______________________________________________
>>>rules-users mailing list
>>>rules-users at lists.jboss.org
>>>https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>
>
>  
>


-- 
 Edson Tirelli
 Software Engineer - JBoss Rules Core Developer
 Office: +55 11 3124-6000
 Mobile: +55 11 9218-4151
 JBoss, a division of Red Hat @ www.jboss.com


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



More information about the rules-users mailing list