<!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.3059" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>Shahad,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>In addition to using salience, you would also need to use a
semaphore. I am not sure JBoss (Mark P., et. al.) have implemented a
"sequential mode" which is a feature that is provided by both JRules and Blaze
Advisor (among others); however, that would be a nice feature to add to the
rules engine. It seems that without massive changes to the product, they
could allow a rule-base to be loaded with a "sequential-mode" property in which
case, the RETE engine would be disabled.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>I'm not really up to speed on the LEAPS feature and whether
it is being obsoleted... </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>However, I just read Mark's response and I respectfully
disagree... I believe that you can simulate sequential processing with salience
and a semaphore. Basically, if the rules in question have a salience order
and the working memory is changed using a semaphore construct, then any
subsequent rules beyond the first rule that fires would not execute.
</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>So, if I understand the issue that you have, say that there
are many thousands of rules, but you want them evaluated in a specific
order. Once the first rule fires, you can mark the data as processed and
preclude the execution of any additional rules.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>There may be other issues from a performance perspective,
but ultimately, I think that this workaround is very doable.
</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>On the other hand, I applaud Mark's suggestion to have a
member of the JRules community take the lead on a sequential-mode algorithm for
JRules 4.0... I have been a fan of the Drools/JRules project since
the 1.x days and I have witness this project evolve from an
intriguing tool-kit to a impressive product and I think that your
suggestion is fantastic. Providing this additional feature will further
position JRules as a leading contender in the Business Rules
space.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>Regards,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=132204115-11052007><FONT face=Arial
color=#0000ff size=2>Dave</FONT></SPAN></DIV><BR>
<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>Shahad
Ahmed<BR><B>Sent:</B> Friday, May 11, 2007 8:34 AM<BR><B>To:</B>
rules-users@lists.jboss.org<BR><B>Subject:</B> [rules-users] Sequential rules
algorithm<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>Does anyone know if there's an efficient way of replicating
the Ilog JRules sequential algorithm in Drools?</DIV>
<DIV> </DIV>
<DIV>From a (over simplified) users perspective, the <FONT
style="BACKGROUND-COLOR: #ffff00">JRules </FONT>sequential algorithm takes an
ordered list of rules and fires the first rule in the sequence with a valid IF
condition. You can also specify a maximum number of rules in a sequence that
may fire. If you have a large number of simple rules to be fired in
sequence (often precondition validating rules in a complex ruleflow), then
the sequential algorithm gives a significant performance gain over the RETE
algorithm in JRules. </DIV>
<DIV> </DIV>
<DIV>I can see how you might order a set of rules by salience and give then the
same agenda group. Then I assume you will get the equivalent "behaviour" to the
Ilog sequential algorithm described above. However, before I try this out, I
thought I'd ask if anyone has a view on the performance of this
approach; and whether there would be anything to be gained by adding a similar
sequential algorithm to Drools. </DIV>
<DIV> </DIV>
<DIV>I've seen a few Blog posts in the past that suggest that the Ilog
sequential algorithm is similar to LEAPS, but I don't know if that's accurate -
also LEAPS will no longer be supported on Drools 4.0 development path.
</DIV>
<DIV> </DIV>
<DIV>Thanks</DIV>
<DIV>Shahad</DIV>
<DIV> </DIV>
<DIV> </DIV></BODY></HTML>