<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3132" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff 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 class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff 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 class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff 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 class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2>Of course they don'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 class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff 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'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 class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2>global WorkingMemory 
  wm;</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2>global RuleBase 
  rbX;</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT color=#0000ff 
  size=2>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2>global RuleBase 
  rbY;</FONT></SPAN></DIV></FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2>rule "Group X"</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New">&nbsp;&nbsp;&nbsp; <FONT color=#0000ff 
  size=2>when</FONT></FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT 
  color=#0000ff size=2>Fact( attribute == "condition1" 
  )</FONT></FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New">&nbsp;&nbsp;&nbsp; <FONT color=#0000ff 
  size=2>then</FONT></FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><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 class=969152015-01022008><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 class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2>end</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff size=2>rule "Group Y"</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New">&nbsp;&nbsp;&nbsp; <FONT color=#0000ff 
  size=2>when</FONT></FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT 
  color=#0000ff size=2>Fact( attribute == "condition2" 
  )</FONT></FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT 
  face="Courier New">&nbsp;&nbsp;&nbsp; <FONT color=#0000ff 
  size=2>then</FONT></FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=969152015-01022008><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 class=969152015-01022008><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 class=969152015-01022008><FONT 
  face="Courier New" color=#0000ff 
size=2>end</FONT></SPAN></DIV></SPAN></DIV></BLOCKQUOTE>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2>Good luck.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=969152015-01022008><FONT face=Arial 
color=#0000ff size=2>Mike</FONT></SPAN></DIV><BR>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> rules-users-bounces@lists.jboss.org 
  [mailto:rules-users-bounces@lists.jboss.org] <B>On Behalf Of </B>Jai 
  Vasanth<BR><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><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 "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&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">manstis1@ford.com</A>&gt; wrote:<BR>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
    <DIV>
    <DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff size=2>What 
    about Agenda Groups?</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff 
    size=2></FONT></SPAN>&nbsp;</DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>Rule "pick group X"</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    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 = "condition1" 
    )</FONT></FONT></FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    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("Group 
    X")</FONT></FONT></FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>end</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2></FONT></SPAN>&nbsp;</DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>Rule "pick group Y"</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    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 = "condition2" 
    )</FONT></FONT></FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    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("Group 
    Y")</FONT></FONT></FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>end</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2></FONT></SPAN>&nbsp;</DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>Rule "Group X1"</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>Agenda Group "Group X"</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    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 face="Courier New" color=#0000ff 
    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 face="Courier New" color=#0000ff 
    size=2>end</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2></FONT></SPAN>&nbsp;</DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>Rule "Group X2"</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    size=2>Agenda Group "Group X"</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face="Courier New" color=#0000ff 
    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 face="Courier New" color=#0000ff 
    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 face="Courier New" color=#0000ff 
    size=2>end</FONT></SPAN></DIV>
    <DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff 
    size=2></FONT></SPAN>&nbsp;</DIV>
    <DIV dir=ltr align=left><SPAN><FONT face=Arial color=#0000ff 
    size=2>etc</FONT></SPAN></DIV><BR>
    <BLOCKQUOTE style="MARGIN-RIGHT: 0px">
      <DIV lang=en-us dir=ltr align=left>
      <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 class=Wj3C7c>
      <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">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></BLOCKQUOTE></BODY></HTML>