[rules-users] Grouping rules

Jai Vasanth jaivasanth at gmail.com
Tue Feb 5 14:34:44 EST 2008


I had another question on these lines. Is there a way to preven even the LHS
from evaluating for certain cases ? A few of my LHS computation involve some
expensive service calls and I would like to avoid unless and until it is
asolutely necessary.

Thanks

Jai

On Feb 1, 2008 8:35 AM, Jai Vasanth <jaivasanth at gmail.com> wrote:

> Thanks.  That helped.
>
>
> On Feb 1, 2008 7:31 AM, Anstis, Michael (M.) <manstis1 at ford.com> wrote:
>
> >  Excuse me if you already understand but there is a difference between
> > rule patterns being evaluated and their consequence running.
> >
> > Rules LHS are evaluated when objects are inserted into working memory
> > whereas the consequence fires when you call fireAllRules();
> >
> > The rules whose activations are executed are those in the given Agenda
> > Group; thereafter those not in any agenda group execute. So if all rules are
> > in an Agenda Group you should be OK.
> >
> > Of course they don't prevent all rule patterns from being checked as
> > objects are inserted into WM (which has a performance impact) but this is
> > what the RETE network was designed to optimise.
> >
> > You could try another configuration (but I think Agenda Groups are
> > probably the preference by design). This gives complete isolation - but I
> > haven't tried it so it might not even be possible ;-)
> >
> > global WorkingMemory wm;
> > global RuleBase rbX;
> >  global RuleBase rbY;
> >
> > rule "Group X"
> >     when
> >         Fact( attribute == "condition1" )
> >     then
> >         wm = rbX.newStatefulSession();
> >         wm.fireAllRules();
> > end
> >
> >  rule "Group Y"
> >     when
> >         Fact( attribute == "condition2" )
> >     then
> >         wm = rbY.newStatefulSession();
> >         wm.fireAllRules();
> > end
> >
> > Good luck.
> >
> > Mike
> >
> >  ------------------------------
> > *From:* rules-users-bounces at lists.jboss.org [mailto:
> > rules-users-bounces at lists.jboss.org] *On Behalf Of *Jai Vasanth
> > *Sent:* 01 February 2008 15:07
> > *To:* Rules Users List
> > *Subject:* Re: [rules-users] Grouping rules
> >
> >
> > Thanks for responding
> > Yes,  I did consider agenda groups, but I thought agenda groups only
> > ordered execution in a particular fashion, so if Rule "pick group X" fires
> > then it would make sure that rules in Agenda Group X fire first before the
> > remaining but the remaining would fire eventually. Is my  understanding
> > correct ?
> > I am looking for a solution for completely isolating a rule set
> > conditioned on an object attribute.
> >
> > On Feb 1, 2008 12:46 AM, Anstis, Michael (M.) <manstis1 at ford.com> wrote:
> >
> > >  What about Agenda Groups?
> > >
> > > Rule "pick group X"
> > > when
> > >     Fact( attribute = "condition1" )
> > > then
> > >     drools.setFocus("Group X")
> > > end
> > >
> > > Rule "pick group Y"
> > > when
> > >     Fact( attribute = "condition2" )
> > > then
> > >     drools.setFocus("Group Y")
> > > end
> > >
> > > Rule "Group X1"
> > > Agenda Group "Group X"
> > > when
> > >     Smurf( )
> > > then
> > >     // Do something
> > > end
> > >
> > > Rule "Group X2"
> > > Agenda Group "Group X"
> > > when
> > >     Smurfette( )
> > > then
> > >     // Something else
> > > end
> > >
> > > etc
> > >
> > >  ------------------------------
> > > *From:* rules-users-bounces at lists.jboss.org [mailto:
> > > rules-users-bounces at lists.jboss.org] *On Behalf Of *Jai Vasanth
> > > *Sent:* 31 January 2008 19:45
> > > *To:* rules-users at lists.jboss.org
> > > *Subject:* [rules-users] Grouping rules
> > >
> > >   Hi,
> > >
> > >
> > >  I am building a system where I would need to fire different sets of
> > > rules based on some attribute in the fact object.
> > >
> > > Here are someways which I thought of, I was wondering if there was
> > > something better than that.
> > >
> > > 1) I could do this by creating different sessions based on the data
> > > attrbute (different sessions would have different rule packages based on the
> > > attribute)
> > >
> > > or
> > >
> > > 2) Have all the rules fire (all the different sets of rules)
> > > irrespective of the attribute and have them insert fact new objects into the
> > > working memory. In the second round of rules, collect the (newly made) fact
> > > objects  based on the attribute and take that action.
> > >
> > >
> > >
> > > Thanks
> > >
> > > Jai
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> > >
> >
> > _______________________________________________
> > 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/20080205/2dc6ae22/attachment.html 


More information about the rules-users mailing list