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

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


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