[rules-users] RE: Re-using rules in overlapping "groups"

Richard Evans richard.evans at thoughtbreak.com
Fri Feb 13 10:35:45 EST 2009


Hello folk. 

I am trying to work out the best way to use drools for an application where
I have :

-          A domain of @30 fairly complex policy rules each of which has a
Boolean outcome (Fired or Not)

-          A domain of @100 "audiences" who apply different subsets of the
policy rules and make their own "Decision" based on the policies that have
fired.

 

I am very keen:

a)      NOT to duplicate the Policy rules themselves

b)      To make mapping of audience & policy to decision as simple as
possible - ideally through a table

c)       To keep all decision data in the same repository for uniform
version control

 

 

My thinking is that I'd have a flow, first execute the policy rules as one
group and save results in working memory and then use these results in an
audience-specific way.


I get stuck at this second step as I cannot find a compact way to handle the
mapping of Audience/Policy to Decision. Logically what I need to achieve is
as follows. E.g. for audience 1, if policy 1 fires, we decide to refer. (If
more than one has fired, decline trumps refer).

 

Audience        policy1    policy2    policy3    policy4    ...

audience1       refer      refer      decline    (n/a)           

audience2       (n/a)      decline    decline    (n/a)           

...

 

Clearly I could do this outside Guvnor but then the UI would be outside
Guvnor & the data would be separated from the drools jcr repo.

 

I hoped to achieve a rule table as follows (fairly compact) but this would
require DISJUNCTION between cols

 

Audience        policy1    policy2    policy3    policy4   Action

audience1      true       true                            refer

audience1                             true                 decline

audience2                  true       true                 decline

 

If I broke out a rule for every combination of audience and policy this
would get very long.

 

Any smart ideas? Thanks in advance to anyone who spares the time to think on
this one!

 

Rich

 

PS. I attempted to post this about 3 hours ago but believe I made a mistake.
Sorry if it comes through as a duplicate

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090213/785f3370/attachment.html 


More information about the rules-users mailing list