<HTML>
<HEAD><!-- Template generated by Exclaimer Template Editor on 04:25:40 Wednesday, 30 January 2013 -->
<STYLE type=text/css>P.2ee1cc27-72fd-41ad-a721-72d082ea8444 {
        MARGIN: 0cm 0cm 0pt
}
LI.2ee1cc27-72fd-41ad-a721-72d082ea8444 {
        MARGIN: 0cm 0cm 0pt
}
DIV.2ee1cc27-72fd-41ad-a721-72d082ea8444 {
        MARGIN: 0cm 0cm 0pt
}
TABLE.2ee1cc27-72fd-41ad-a721-72d082ea8444Table {
        MARGIN: 0cm 0cm 0pt
}
DIV.Section1 {
        page: Section1
}
</STYLE>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Generator" content="Microsoft Word 12 (filtered medium)" />
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"Lucida Console";
        panose-1:2 11 6 9 4 5 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1447770610;
        mso-list-type:hybrid;
        mso-list-template-ids:1210846478 1670531890 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:16;
        mso-level-number-format:bullet;
        mso-level-text:\F0D8;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</HEAD>

<BODY lang="EN-US" link="blue" vlink="purple">
<P>
<div class="WordSection1">
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style=font-size:14.0pt;font-family:Wingdings;color:#1F497D><span style=mso-list:Ignore>Ø<span style="font:7.0pt &quot;Times New Roman&quot;">
</span></span></span><![endif]><span style="font-family:&quot;Lucida Console&quot;">automatically rename each rule &quot;part&quot; (being a single-condition rule derived from the original) to some derivation of the original rule name, and need the consequence only in the fully-extended
 rule, thereby giving the same effect, but with rule &quot;parts&quot; that would reflect failure at the individual condition level</span><span style="font-size:14.0pt;font-family:&quot;Lucida Console&quot;;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>This is *<b>exactly</b>* the ambition we are hoping that some Drools .DRL enrichment tool (or other Drools capability) can provide.&nbsp;
<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Wish I had sufficient competency to comment on the merits of your different suggested approaches.&nbsp; Hopeful that the Drools gurus will comment explicitly on
 all these approaches (and/or the approach suggested by another of using Working Memory listeners).<o:p></o:p></span></p>
<p class="MsoNormal"><span style=font-size:14.0pt><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;>From:</span></b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;> rules-users-bounces@lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org]
<b>On Behalf Of </b>Jeremy Ary<br />
<b>Sent:</b> Wednesday, January 30, 2013 4:01 PM<br />
<b>To:</b> Rules Users List<br />
<b>Subject:</b> Re: [rules-users] Non short circuit ANDing<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">Have had this in the back of my mind most of the day...the more I think on it, the more I suspect that you could abuse extends on the multiple conditions, automatically rename each rule &quot;part&quot; (being a single-condition rule derived from
 the original) to some derivation of the original rule name, and need the consequence only in the fully-extended rule, thereby giving the same effect, but with rule &quot;parts&quot; that would reflect failure at the individual condition level. I've been mucking with
 a migraine since lunch, so it's possible that I'm off with my thought process, but I might run with this on the weekend if it passes group litmus...any thoughts?<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">rule &quot;foo is bar&quot;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">when<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;TypeA ( &nbsp;)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;TypeB ( &nbsp;)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">then<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;<a href="http://log.info">log.info</a>(&quot;foo indeed bar'd&quot;);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">translate to:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">rule &quot;foo is bar_1&quot;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">when<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;TypeA ( &nbsp;)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">then<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">rule &quot;foo is bar_2&quot; extends &quot;foo is bar_1&quot;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">when<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;TypeB ( &nbsp;)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">then<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;<a href="http://log.info">log.info</a>(&quot;foo indeed bar'd&quot;);&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">or, to better reflect the agenda rule name of the original rule set:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">rule &quot;foo is bar_1&quot;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">when<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;TypeA ( &nbsp;)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">then<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">rule &quot;foo is bar_2&quot; extends &quot;foo is bar_1&quot;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">when<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;TypeB ( &nbsp;)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">then<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">rule &quot;foo is bar&quot; extends &quot;foo is bar_2&quot;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">when<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">then<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">&nbsp; &nbsp;<a href="http://log.info">log.info</a>(&quot;foo indeed bar'd&quot;);&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">end<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style=margin-bottom:12.0pt><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">On Wed, Jan 30, 2013 at 12:48 PM, Cotton, Ben &lt;<a href="mailto:Ben.Cotton@morganstanley.com" target="_blank">Ben.Cotton@morganstanley.com</a>&gt; wrote:<o:p></o:p></p>
<div>
<div>
<p style=margin-left:31.5pt><span style=font-family:Wingdings>Ø</span><span style=font-size:7.0pt>&nbsp;
</span><span style="font-family:&quot;Lucida Console&quot;">It's usually worth going back to basics and challenging the 'users' to define exactly what they're looking for
</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>It is challenging!&nbsp;&nbsp; And we greatly appreciate that this forum is a place for us to express our challenges
 and learn of all the best ways that we can find remedy.</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>The main thing our very-newbie team of Drools end-users want to share with the Drools providers is
 that based on <i>our understanding</i> of this specific reality =</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=color:#1F497D>&nbsp;</span><o:p></o:p></p>
<p style=margin-left:31.5pt><span style=font-family:Wingdings>Ø</span><span style=font-size:7.0pt>&nbsp;
</span><span style="font-family:&quot;Lucida Console&quot;">If you need to know all the reasons why a rule doesn't fire you'll have to evaluate all relevant conditions individually and keep track of the positives.</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style="font-family:&quot;Lucida Console&quot;">&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>We feel that we
<i>may</i> be enduring a &#8220;burden&#8221; of having to physically re-factor and keystroke lots of .DRL code to get what we want (i.e. account for the answer &#8220;why do rules fail to fire?&#8221;) within that reality.</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt>&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Our newbie (naïve?) suggestion to &#8220;enrich .DRL (with add&#8217;l code that evaluates all relevant conditions
 individually and keep track of the positives) via a tool&#8221; was just our &#8220;Thinking out loud&#8221;.&nbsp; Thanks for the recommendation to consider working memory listeners &#8211; doing our homework on this right now</span><span style=font-size:14.0pt>.</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt>&nbsp;</span><o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;>From:</span></b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;>
<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>Stephen Masters<br />
<b>Sent:</b> Wednesday, January 30, 2013 1:28 PM</span><o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><br />
<b>To:</b> Rules Users List<br />
<b>Subject:</b> Re: [rules-users] Non short circuit ANDing<o:p></o:p></p>
</div>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>The requirement does seem to come up from business users who don't understand what's going on inside a rules engine. For instance, if I create a trade request for account 15, then
 should I be logging that the &quot;Account 188 is permitted to trade USD&quot; rule (and 100 other similar rules) didn't fire and that it was because the request wasn't for account 188? Once the knowledge base reaches any kind of realistic size, this kind of auditing
 becomes meaningless.&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>To be honest, I rather thought that this was the role of working memory event listeners. Just create a listener to the facts your rule is interested in and you can log the values
 of the properties your rule looks at over time, and you can log which rules fired. If a rule does't fire, then you can see the state of all the facts in the working memory at that time.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>It's usually worth going back to basics and challenging the 'users' to define exactly what they're looking for in an audit, and work out the most appropriate way to achieve that.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>On 30 Jan 2013, at 15:22, &quot;Cotton, Ben&quot; &lt;<a href="mailto:Ben.Cotton@morganstanley.com" target="_blank">Ben.Cotton@morganstanley.com</a>&gt; wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;margin-bottom:12.0pt><o:p>&nbsp;</o:p></p>
<div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div style=margin-left:.5in>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:Wingdings;color:#1F497D>Ø</span><span style=font-size:7.0pt;color:#1F497D>&nbsp;</span>I can't think of a way to accomplish this without
 severely impacting performance as I think you'd essentially end up evaluating all of your rules with a secondary algorithm<o:p></o:p></p>
</div>
<div style=margin-left:.5in>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Agreed.&nbsp; Such a&nbsp;&#8220;when do rules fail to fire?&#8221; accounting capability should not be a burden to the
 Drools runtime. &nbsp;&nbsp;&nbsp;But what about a .DRL &#8220;enrichment &#8220; tool that generates explicit accounting .DRL code? &nbsp;Leaving the run-time unburdened, but liberating the .DRL author from all the key-stroke labor?</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
</div>
<div style=margin-left:.5in>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:Wingdings;color:#1F497D>Ø</span><span style=font-size:7.0pt;color:#1F497D>&nbsp;</span>However,&nbsp;I only claim to know that I know very little,
 so grain of salt<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>I don&#8217;t even claim to know very little!&nbsp; (But do claim to be excited to &#8220;do the work&#8221; necessary to
 learn).</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:14.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;>From:</span></b><span style=font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;>&nbsp;<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank"><span style=color:purple>rules-users-bounces@lists.jboss.org</span></a>&nbsp;[mailto:<a href="mailto:rules-" target="_blank">rules-</a><a href="mailto:users-bounces@lists.jboss.org" target="_blank"><span style=color:purple>users-bounces@lists.jboss.org</span></a>]&nbsp;<b>On
 Behalf Of&nbsp;</b>Jeremy Ary<br />
<b>Sent:</b>&nbsp;Wednesday, January 30, 2013 9:57 AM<br />
<b>To:</b>&nbsp;Rules Users List<br />
<b>Subject:</b>&nbsp;Re: [rules-users] Non short circuit ANDing</span><o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>This request turns up a lot. If you dig deeper into the Rete algorithm and examine how it works, you'll find that the node relations and redundancy elimination greatly abstracts
 away from what we think of as the LHS of a rule. In the node network, it's no longer a set of conditions grouped together for each rule that are checked for true/false collectively. I can't think of a way to accomplish this without severely impacting performance
 as I think you'd essentially end up evaluating all of your rules with a secondary algorithm. However,&nbsp;I only claim to know that I know very little, so grain of salt.<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;margin-bottom:12.0pt>&nbsp;<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>On Wed, Jan 30, 2013 at 8:35 AM, Cotton, Ben &lt;<a href="mailto:Ben.Cotton@morganstanley.com" target="_blank"><span style=color:purple>Ben.Cotton@morganstanley.com</span></a>&gt; wrote:<o:p></o:p></p>
</div>
<div>
<div>
<p>&gt; you'll have to evaluate all relevant conditions individually and keep track of the positives<o:p></o:p></p>
<p>&nbsp;<o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Would it be reasonable to suggest that the Drools team provide the user community with some tool, API, or other framework construct that might assist us when we are faced with this exact task?</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>I mean, yes, what you suggest here works (and it works perfectly).&nbsp; But, for such an important and common user concern, we currently face a lot of &quot;Drools .DRL keystroke labor&quot; to get us completely
 where we need to be wrt to coding this tactic completely.</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Does your Intellifest white paper (today is the day?&nbsp; HOORAY!)&nbsp; comment at all on strategies to achieve this pattern in .DRL code?&nbsp; It would be way cool if the framework itself liberated us with
 a &#8220;just add water and out comes the .DRL code you want&#8221; capability.&nbsp; Such a capability would deliver to users a full answer wrt to our &#8220;when do rules fail to fire?&#8221; accounting needs.</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>Admittedly, I don&#8217;t know of a best way to proceed wrt to potentially providing that capability.&nbsp; But I do know it would be nice.</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>&nbsp;</span><o:p></o:p></p>
<p><span style=font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D>As always, thank you very much for this forum&#8217;s superb support.</span><o:p></o:p></p>
<p>&nbsp;<o:p></o:p></p>
<p>-----Original Message-----<br />
From:&nbsp;<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank"><span style=color:purple>rules-users-bounces@lists.jboss.org</span></a>&nbsp;[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank"><span style=color:purple>rules-users-bounces@lists.jboss.org</span></a>]
 On Behalf Of Wolfgang Laun<br />
Sent: Tuesday, January 29, 2013 2:07 PM<br />
To: Rules Users List<br />
Subject: Re: [rules-users] Non short circuit ANDing<o:p></o:p></p>
<p>&nbsp;<o:p></o:p></p>
<p>[Groundhog Day]<o:p></o:p></p>
<p>&nbsp;<o:p></o:p></p>
<p>If you need to know all the reasons why a rule doesn't fire you'll have to evaluate all relevant conditions individually and keep track of the positives. (See a very recent thread on this list.)<o:p></o:p></p>
<p>&nbsp;<o:p></o:p></p>
<p>-W<o:p></o:p></p>
<p>&nbsp;<o:p></o:p></p>
<p>&nbsp;<o:p></o:p></p>
<p>On 29/01/2013, mp &lt;<a href="mailto:meitreyi.panchmia@morganstanley.com" target="_blank"><span style=color:windowtext;text-decoration:none>meitreyi.panchmia@morganstanley.com</span></a>&gt; wrote:<o:p></o:p></p>
<p>&gt; I need to record the results of each of the conditions as a side<o:p></o:p></p>
<p>&gt; effect in a list. But in case condition1 is false, condition2 would<o:p></o:p></p>
<p>&gt; not be evaluated.<o:p></o:p></p>
<p>&gt; This would prevent me from knowing whether or not condition2 was<o:p></o:p></p>
<p>&gt; true/false.<o:p></o:p></p>
<p>&gt;&nbsp;<o:p></o:p></p>
<p>&gt; 5.8.3.3.12. Operator precedence at<o:p></o:p></p>
<p>&gt;&nbsp;<a href="http://docs.jboss.org/drools/release/5.2.0.Final/drools-expert-docs/ht" target="_blank"><span style=color:windowtext;text-decoration:none>http://docs.jboss.org/drools/release/5.2.0.Final/drools-expert-docs/ht</span></a><o:p></o:p></p>
<p>&gt; ml/ch05.html#d0e3962 lists &amp; as an operator. But it somehow doesn't<o:p></o:p></p>
<p>&gt; work.<o:p></o:p></p>
<p>&gt;&nbsp;<o:p></o:p></p>
<p>&gt;&nbsp;<o:p></o:p></p>
<p>&gt;&nbsp;<o:p></o:p></p>
<p>&gt; --<o:p></o:p></p>
<p>&gt; View this message in context:<o:p></o:p></p>
<p>&gt;&nbsp;<a href="http://drools.46999.n3.nabble.com/Non-short-circuit-ANDing-tp4021928p4" target="_blank"><span style=color:windowtext;text-decoration:none>http://drools.46999.n3.nabble.com/Non-short-circuit-ANDing-tp4021928p4</span></a><o:p></o:p></p>
<p>&gt; 021931.html Sent from the Drools: User forum mailing list archive at<o:p></o:p></p>
<p>&gt; <a href="http://Nabble.com" target="_blank">Nabble.com</a>.<o:p></o:p></p>
<p>&gt; _______________________________________________<o:p></o:p></p>
<p>&gt; rules-users mailing list<o:p></o:p></p>
<p>&gt;&nbsp;<a href="mailto:rules-users@lists.jboss.org" target="_blank"><span style=color:windowtext;text-decoration:none>rules-users@lists.jboss.org</span></a><o:p></o:p></p>
<p>&gt;&nbsp;<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank"><span style=color:windowtext;text-decoration:none>https://lists.jboss.org/mailman/listinfo/rules-users</span></a><o:p></o:p></p>
<p>&gt;&nbsp;<o:p></o:p></p>
<p>_______________________________________________<o:p></o:p></p>
<p>rules-users mailing list<o:p></o:p></p>
<p><a href="mailto:rules-users@lists.jboss.org" target="_blank"><span style=color:windowtext;text-decoration:none>rules-users@lists.jboss.org</span></a><o:p></o:p></p>
<p><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank"><span style=color:windowtext;text-decoration:none>https://lists.jboss.org/mailman/listinfo/rules-users</span></a><o:p></o:p></p>
</div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;margin-bottom:12.0pt>&nbsp;<o:p></o:p></p>
<div class="MsoNormal" align="center" style=text-align:center>
<hr size="2" width="100%" align="center" />
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><br />
<span style=font-size:7.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:gray>NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or views contained herein are not intended to be, and do not constitute, advice within the meaning of Section
 975 of the Dodd-Frank Wall Street Reform and Consumer Protection Act. If you have received this communication in error, please destroy all electronic and paper copies and notify the sender immediately. Mistransmission is not intended to waive confidentiality
 or privilege. Morgan Stanley reserves the right, to the extent permitted under applicable law, to monitor electronic communications. This message is subject to terms available at the following link:&nbsp;<a href="http://www.morganstanley.com/disclaimers" target="_blank"><span style=color:gray>http://www.morganstanley.com/disclaimers</span></a>&nbsp;If
 you cannot access these links, please notify us by reply message and we will send the contents to you. By messaging with Morgan Stanley you consent to the foregoing.</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;margin-bottom:12.0pt><br />
_______________________________________________<br />
rules-users mailing list<br />
<a href="mailto:rules-users@lists.jboss.org" target="_blank"><span style=color:purple>rules-users@lists.jboss.org</span></a><br />
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank"><span style=color:purple>https://lists.jboss.org/mailman/listinfo/rules-users</span></a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;margin-bottom:13.5pt><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;>&nbsp;</span><o:p></o:p></p>
<div class="MsoNormal" align="center" style=text-align:center><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;>
<hr size="2" width="100%" align="center" />
</span></div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;><br />
</span><span style=font-size:7.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:gray>NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or views contained herein are not intended to be, and do not constitute, advice within the meaning
 of Section 975 of the Dodd-Frank Wall Street Reform and Consumer Protection Act. If you have received this communication in error, please destroy all electronic and paper copies and notify the sender immediately. Mistransmission is not intended to waive confidentiality
 or privilege. Morgan Stanley reserves the right, to the extent permitted under applicable law, to monitor electronic communications. This message is subject to terms available at the following link:&nbsp;<a href="http://www.morganstanley.com/disclaimers" target="_blank"><span style=color:gray>http://www.morganstanley.com/disclaimers</span></a>&nbsp;If
 you cannot access these links, please notify us by reply message and we will send the contents to you. By messaging with Morgan Stanley you consent to the foregoing.</span><o:p></o:p></p>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto><span style=font-size:13.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;>_______________________________________________<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></span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style=mso-margin-top-alt:auto;mso-margin-bottom-alt:auto>&nbsp;<o:p></o:p></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal" style=margin-bottom:12.0pt><o:p>&nbsp;</o:p></p>
<div class="MsoNormal" align="center" style=text-align:center>
<hr size="2" width="100%" align="center" />
</div>
<p class="MsoNormal"><br />
<span style=font-size:7.5pt;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;color:gray>NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or views contained herein are not intended to be, and do not constitute, advice within the meaning of Section
 975 of the Dodd-Frank Wall Street Reform and Consumer Protection Act. If you have received this communication in error, please destroy all electronic and paper copies and notify the sender immediately. Mistransmission is not intended to waive confidentiality
 or privilege. Morgan Stanley reserves the right, to the extent permitted under applicable law, to monitor electronic communications. This message is subject to terms available at the following link:
<a href="http://www.morganstanley.com/disclaimers" target="_blank"><span style=color:gray>http://www.morganstanley.com/disclaimers</span></a> If you cannot access these links, please notify us by reply message and we will send the contents to you. By messaging
 with Morgan Stanley you consent to the foregoing.</span><o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal" style=margin-bottom:12.0pt><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><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
<BR /><BR />
<HR id=HR1 />
<BR /><SPAN style="FONT-FAMILY: Arial; COLOR: #808080; FONT-SIZE: 7.5pt">NOTICE: 
Morgan Stanley is not acting as a municipal advisor and the opinions or views 
contained herein are not intended to be, and do not constitute, advice within 
the meaning of Section 975 of the Dodd-Frank Wall Street Reform and Consumer 
Protection Act. If you have received this communication in error, please destroy 
all electronic and paper copies and notify the sender immediately. 
Mistransmission is not intended to waive confidentiality or privilege. Morgan 
Stanley reserves the right, to the extent permitted under applicable law, to 
monitor electronic communications. This message is subject to terms available at 
the following link: <A style="FONT-FAMILY: Arial; COLOR: #808080; FONT-SIZE: 7.5pt" href="http://www.morganstanley.com/disclaimers">http://www.morganstanley.com/disclaimers</A> 
If you cannot access these links, please notify us by reply message and we will 
send the contents to you. By messaging with Morgan Stanley you consent to the 
foregoing.</SPAN><BR />
<P></P>
<P></P></P></BODY>
</HTML>