[rules-users] newbie question on "when" condition syntax

Anstis, Michael (M.) manstis1 at ford.com
Fri May 2 06:49:47 EDT 2008


Hi Richard,
 
Glad I can be of help (this forum as a whole is actually very helpful).
 
Reading your email you understand me correctly (you even picked up on the
implicit AND between pattern matches).
 
With a bit of imagination complex problems can be solved with Drools; just
like programming you need to adjust your mindset sometimes and try a
different tact.
 
Personally, if your rules are not user-facing, I wouldn't worry about DSL -
even if they do don't worry for the time being!
 
Make sure to read the excellent manual, many people have put a lot of work
into this and it is invaluable.
 
Read about "dialect" to answer your question about rule language, to save me
copy and pasting.
 
Good luck,
 
Mike

  _____  

From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Richard Bremner
Sent: 02 May 2008 11:38
To: Rules Users List
Subject: Re: [rules-users] newbie question on "when" condition syntax


Hi Mike,

Thanks very much, after a few minutes of staring I think I have understood
your very well put answer!

If I understand you right, what is happening is:

Test( $y : y )

This means, WHEN there is an instance of Test, assign the value of its "y"
property to $y

AND

WHEN there is an instance of Test where it's "x" property is equal to $y + 1

THEN fire.


I think I understand that. I am going to need to do this with some pretty
complicated formulae, containing up to 8 different variables. I have a fixed
data set and need to find certain patterns in them based on the formulae. I
have most of the program figured out, my only trouble is expressing my
formulae in the correct syntax. I will try to extend this principle you have
explained to me and hope it can cope with the extra complication... unless
there would be a better way to achieve this?

I am really sorry but I am totally new to drools - but am committed to using
it on a project so I guess I'm going to get to know it pretty well :-)

I read briefly that one can define a DSL, I might look at this eventually to
build an easier mechanism for expressing my formulae - if that can be
achieved using a DSL.

Can the whole rule be defined in Groovy/Java - if so I might be easier doing
that. I have so much work to do!


many thanks

Richard




2008/5/2 Anstis, Michael (M.) <manstis1 at ford.com>:


Hi Richard,
 
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) )
then
    System.out.println("Rule 1 matches");
end
      
By default both patterns can match the same object, so test data:-
 
A : x = 1, y = 1
B : x = 2, y = 1
 
Will cause the rule to activate twice:-
 
A and B
B and B
 
With kind regards,
 
Mike



  _____  

From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Richard Bremner
Sent: 02 May 2008 08:53
To: rules-users at lists.jboss.org
Subject: [rules-users] newbie question on "when" condition syntax


Hi, 

say I have a class with two fields, x and y: 

public class Test { 
    int x = 1; 
    int y = 2; 

    getters/setters... 
} 


I would like a rule which fires when y = x + 1 

my initial thought would be something like: 

rule "Rule 1" 
        
        when 
                test : Test (y == x + 1) 
        then 
                System.out.println("Rule 1 matches."); 
                
end 


but this is invalid syntax and I can not find any examples of such a rule.
I'm doing my best but reading the manual etc. I'm struggling with the syntax
here and can't figure it out.

any help really appreciated! 


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




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080502/47c82e06/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 7206 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20080502/47c82e06/attachment.bin 


More information about the rules-users mailing list