Thanks. That helped.<br><br><div class="gmail_quote">On Feb 1, 2008 7:31 AM, Anstis, Michael (M.) <<a href="mailto:manstis1@ford.com">manstis1@ford.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Excuse me if you already understand but there is a
difference between rule patterns being evaluated and their consequence
running.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Rules LHS are evaluated when objects are inserted into
working memory whereas the consequence fires when you call
fireAllRules();</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">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.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">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. </font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">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
;-)</font></span></div>
<blockquote dir="ltr" style="margin-right: 0px;">
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">global WorkingMemory
wm;</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">global RuleBase
rbX;</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2">
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">global RuleBase
rbY;</font></span></div></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">rule "Group X"</font></span></div><div class="Ih2E3d">
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">when</font></font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">Fact( attribute == "condition1"
)</font></font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">then</font></font></span></div></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">wm = rbX.newStatefulSession();</font></font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">wm.fireAllRules();</font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">end</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2"></font></span> </div>
<div dir="ltr" align="left"><span>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">rule "Group Y"</font></span></div><div class="Ih2E3d">
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">when</font></font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">Fact( attribute == "condition2"
)</font></font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">then</font></font></span></div></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">wm = rbY.newStatefulSession();</font></font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"> <font color="#0000ff" size="2">wm.fireAllRules();</font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">end</font></span></div></span></div></blockquote>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Good luck.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Mike</font></span></div><br>
<blockquote style="margin-right: 0px;">
<div dir="ltr" align="left" lang="en-us">
<hr>
<font face="Tahoma" size="2"><div class="Ih2E3d"><b>From:</b> <a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of </b>Jai
Vasanth<br></div><b>Sent:</b> 01 February 2008 15:07<br><b>To:</b> Rules Users
List<br><b>Subject:</b> Re: [rules-users] Grouping rules<br></font><br></div><div><div></div><div class="Wj3C7c">
<div></div><br>Thanks for responding <br>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 ?<br>I am looking for a solution
for completely isolating a rule set conditioned on an object
attribute.<br><br>
<div class="gmail_quote">On Feb 1, 2008 12:46 AM, Anstis, Michael (M.) <<a href="mailto:manstis1@ford.com" target="_blank">manstis1@ford.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">What
about Agenda Groups?</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule "pick group X"</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">when</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">Fact( attribute = "condition1"
)</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">then</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">drools.setFocus("Group
X")</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">end</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule "pick group Y"</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">when</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">Fact( attribute = "condition2"
)</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">then</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">drools.setFocus("Group
Y")</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">end</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule "Group X1"</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Agenda Group "Group X"</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">when</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">Smurf(
)</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">then</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">// Do
something</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">end</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule "Group X2"</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Agenda Group "Group X"</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">when</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">Smurfette(
)</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">then</font></span></div>
<div dir="ltr" align="left"><span><font face="Courier New"><font size="2"> <font color="#0000ff">// Something
else</font></font></font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">end</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">etc</font></span></div><br>
<blockquote style="margin-right: 0px;">
<div dir="ltr" align="left" lang="en-us">
<hr>
<font face="Tahoma" size="2"><b>From:</b> <a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a> [mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>] <b>On Behalf Of
</b>Jai Vasanth<br><b>Sent:</b> 31 January 2008 19:45<br><b>To:</b> <a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br><b>Subject:</b>
[rules-users] Grouping rules<br></font><br></div>
<div>
<div></div>
<div>
<div></div>Hi,<br><br><br> I am building a system where I would need
to fire different sets of rules based on some attribute in the fact
object. <br><br>Here are someways which I thought of, I was
wondering if there was something better than that.<br><br>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)<br><br>or <br><br>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.<br><br><br><br>Thanks <br><br>Jai
<br><br><br><br><br></div></div></blockquote></div><br>_______________________________________________<br>rules-users
mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank">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></blockquote></div><br></div></div></blockquote></div>
<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></blockquote></div><br>