[rules-users] logical 'not' - is there such a construct?
Edson Tirelli
tirelli at post.com
Wed Feb 21 12:00:48 EST 2007
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
More information about the rules-users
mailing list