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