You're right, if you want to do this with 2 facts, you'll need to do :

  $test : Test( $y : y )
  Test(
this == $test,
x == ($y + 1) )

Chris

2008/5/2 Raffi Khatchadourian <khatchad@cse.ohio-state.edu>:
On Fri  2.May'08 at 10:05:20 +0100, Anstis, Michael (M.) wrote:
The "when" section matches fact (object) patterns, so your requirement
could be written as:-

when there is a Test Fact 'A' and another Test Fact 'B' where "the 'x'
property of 'A'" equals "the 'y' property of fact 'B' plus 1" then.....

This would become:-

rule "Rule 1"
when
  Test( $y : y )
  Test( x == ($y + 1) )

Actually, please correct me if I am mistaken, but is this condition
correct? I believe that the original question is that for a single
instance of class Test t, fire the rule when t.x == t.y + 1 (where 't'
refers to the *same* instance of class Test). I believe the rule above
would match any instance of class Test whose x value is equal to the
value of the instance field y from *any* instance of class Test plus 1.
Does that make sense?
_______________________________________________
rules-users mailing list