Thanks.&nbsp; That helped.<br><br><div class="gmail_quote">On Feb 1, 2008 7:31 AM, Anstis, Michael (M.) &lt;<a href="mailto:manstis1@ford.com">manstis1@ford.com</a>&gt; 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&nbsp;evaluated and their consequence 
running.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span>&nbsp;</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>&nbsp;</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>&nbsp;</div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Of course they don&#39;t prevent all rule patterns&nbsp;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.&nbsp;</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">You could try another&nbsp;configuration (but I think 
Agenda Groups are probably the preference by design). This gives complete 
isolation - but I haven&#39;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>&nbsp;</div>
  <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">rule &quot;Group X&quot;</font></span></div><div class="Ih2E3d">
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">when</font></font></span></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">Fact( attribute == &quot;condition1&quot; 
  )</font></font></span></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">then</font></font></span></div></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">wm = rbX.newStatefulSession();</font></font></span></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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>&nbsp;</div>
  <div dir="ltr" align="left"><span>
  <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">rule &quot;Group Y&quot;</font></span></div><div class="Ih2E3d">
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">when</font></font></span></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">Fact( attribute == &quot;condition2&quot; 
  )</font></font></span></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">then</font></font></span></div></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#0000ff" size="2">wm = rbY.newStatefulSession();</font></font></span></div>
  <div dir="ltr" align="left"><span><font face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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>&nbsp;</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,&nbsp; I did consider agenda 
  groups, but I thought agenda groups only ordered execution in a particular 
  fashion, so if Rule &quot;pick group X&quot; 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&nbsp; understanding correct ?<br>I am looking for a solution 
  for completely isolating a rule set&nbsp; conditioned on an object 
  attribute.<br><br>
  <div class="gmail_quote">On Feb 1, 2008 12:46 AM, Anstis, Michael (M.) &lt;<a href="mailto:manstis1@ford.com" target="_blank">manstis1@ford.com</a>&gt; 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>&nbsp;</div>
    <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule &quot;pick group X&quot;</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">&nbsp;&nbsp;&nbsp; <font color="#0000ff">Fact( attribute = &quot;condition1&quot; 
    )</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">&nbsp;&nbsp;&nbsp; <font color="#0000ff">drools.setFocus(&quot;Group 
    X&quot;)</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>&nbsp;</div>
    <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule &quot;pick group Y&quot;</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">&nbsp;&nbsp;&nbsp; <font color="#0000ff">Fact( attribute = &quot;condition2&quot; 
    )</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">&nbsp;&nbsp;&nbsp; <font color="#0000ff">drools.setFocus(&quot;Group 
    Y&quot;)</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>&nbsp;</div>
    <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule &quot;Group X1&quot;</font></span></div>
    <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Agenda Group &quot;Group X&quot;</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">&nbsp;&nbsp;&nbsp; <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">&nbsp;&nbsp;&nbsp; <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>&nbsp;</div>
    <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Rule &quot;Group X2&quot;</font></span></div>
    <div dir="ltr" align="left"><span><font color="#0000ff" face="Courier New" size="2">Agenda Group &quot;Group X&quot;</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">&nbsp;&nbsp;&nbsp; <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">&nbsp;&nbsp;&nbsp; <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>&nbsp;</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>&nbsp;I am building a system where I would need 
      to fire different sets of rules based on some attribute in the fact 
      object.&nbsp; <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&nbsp; 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>