In your example you don't need "e:" as you arne't using it. Also that would be better written
EventWM(field != "f1", field != "f2")

Eval is not indexed, and thus slow - where as the first relies on field constraints and is thus indexed and fast.

Mark

Demichelis Matteo wrote:
I solved writing a rule in this way:

rule "AND"
        when
                e : EventWM(field : field)
                eval(field !="f1" && field !="f2")
        then
                System.out.println("RULE AND");
end


(similar to CLIPS "test conditional element").

Thanks.
matteo.


-----Messaggio originale-----
Da: Mark Proctor [mailto:[EMAIL PROTECTED] Inviato: martedì 2 maggio 2006 17.36
A: [email protected]
Oggetto: Re: [drools-user] R: [drools-user] and with binding

think about it for a second:
a : Fact()
binds a variable to a Fact. How can you have a variable bound to two facts? With 'or' its allowed, as it can bind to one Fact in the first logic outcome and then to the other fact in the second logic outcome.

Mark
Demichelis Matteo wrote:
I tried, it compiles but the behaviour is not correct
because this LHS:
e : TestFact( field1 !="f1") && TestFact( field1 != "f2")

and this:
e : TestFact( field1 !="f1")

strangely match the same facts.

It seems the problem is the compiler not supporting the binding with a '(' that 
follows.
The same with a "or with binding", the 3.15 example seems not supported.




-----Messaggio originale-----
Da: Christopher G. Stach II [mailto:[EMAIL PROTECTED] Inviato: martedì 2 maggio 2006 17.05
A: [email protected]
Oggetto: Re: [drools-user] and with binding

Demichelis Matteo wrote:
Hello,

following the example 3.15 in JBoss Rules, "or with binding":

pensioner: ( Person(....) or Person(...) )

I wrote this rule using "and with binding":

rule "ClearUnknownDevice"

      when

            e : ( TestFact( field1 !="f1") && TestFact( field1 != "f2")
)

      then

            retract( e );

end

I got 2 compilation error:

unknown:8:6 mismatched token: [EMAIL PROTECTED],133:133='(',<21>,8:6]; 
expecting type
ID

unknown:8:76 Unexpected token ')'

perhaps "and with binding" is not supported yet?

thanks.

matteo,.

Try this:

rule "ClearUnknownDevice"

      when

            e : TestFact( field1 !="f1") && TestFact( field1 != "f2")

      then

            retract( e );

end


--------------------------------------------------------------------

CONFIDENTIALITY NOTICE

This message and its attachments are addressed solely to the persons above and 
may contain confidential information. If you have received the message in 
error, be informed that any use of the content hereof is prohibited. Please 
return it immediately to the sender and delete the message. Should you have any 
questions, please contact us by replying to [EMAIL PROTECTED]

        Thank you

                                        www.telecomitalia.it

--------------------------------------------------------------------

Reply via email to