[rules-users] How to traverse a hierarchy?
Edson Tirelli
tirelli at post.com
Tue Apr 14 15:52:05 EDT 2009
In Drools 4 I would use ruleflow to design a flow of groups of rules.
It sounds like you are implementing a decision tree?!
[]s
Edson
2009/4/14 Charles Binford <Charles.Binford at sun.com>
> Edson, Thanks for your reply. Unfortunately I failed to say I need
> drools 4.0.7 because of its GA status.
> Any suggestions for an approach with drools 4?
>
> Charles Binford
>
> Edson Tirelli wrote:
> >
> > If I understood correctly, all you need to do (in Drools 5) is to
> > use rule inheritance. Also, in case your "non-leaf" rules have nothing
> > to do in their consequences, you can mark them with attribute "enabled
> > false".
> >
> >
> https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/extend_rule_test.drl
> >
> > So, have rule 1.2 extend rule 1. Have rule 1.2.1 extend rule 1.2
> > and so on. Mark the ones that don't have consequence actions with
> > enabled false just to avoiding creating useless activations. You still
> > need to prioritize rules with salience or whatever you are using for
> that.
> >
> > That should do the trick. Report back your findings please, as this
> > is a new feature in Drools 5.
> >
> > Hope it helps,
> > Edson
> >
> > 2009/4/13 Charles Binford <Charles.Binford at sun.com
> > <mailto:Charles.Binford at sun.com>>
> >
> > All, I'm trying to figure out a better way to solve this problem. I
> > have a batch of objects that I want matched against a hierarchy of
> > rules. I check the rules in order, and as soon as I find a match I'm
> > done for that level of the hierarchy. In other words, If the object
> > matches a rule, we'll check the rules children, but not the siblings.
> > Example:
> >
> > rule 1
> > rule 1.1
> > rule 1.2
> > rule 1.2.1
> > rule 1.2.2
> > rule 1.3
> > rule 2
> >
> > If an object matches rule 1, check for a match at level "1.*", but
> > rule
> > 2 will never be checked. If an object matches 1, 1.2, and 1.2.1,
> > we're
> > done as 1.2.1 has no children.
> >
> > My current implementation with drools works, but is very
> > inefficient. I
> > have a "level" string in the objects and whenever I find a match I
> > update the level of the object and force an object update. Each rule
> > tests that the level string is correct, e.g. rule 1.2.1 works as
> > follows:
> > rule "1.2.1"
> > when
> > obj(level matches "1.2.*",.....)
> > ...
> > then
> > objSetLevel("1.2.1.*");
> > ....
> > end
> >
> > I'm also using saliance to keep the evaluation order like I want it.
> >
> > Changing the contents of the object and doing the update is not
> > good for
> > drools performance as I understand it so I'm looking for a better
> way.
> > The hierarchy and the order of the matching is key to my
> > application so
> > I'm not wanting to redesign that part of things.
> >
> > I tried using activation-groups. That worked great as long as I only
> > had a single object to run through the hierarchy, but given the
> > way the
> > rest of the system is design I need to load up 10-100 objects before
> > each call to fireallrules() for performance purposes.
> >
> > Any suggestions are appreciated.
> >
> > Charles Binford
> >
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org <mailto:rules-users at lists.jboss.org>
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
> >
> >
> > --
> > Edson Tirelli
> > JBoss Drools Core Development
> > JBoss, a division of Red Hat @ www.jboss.com <http://www.jboss.com>
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > 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
>
--
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090414/19b9c97a/attachment.html
More information about the rules-users
mailing list