<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content=text/html;charset=ISO-8859-1>
<META content="MSHTML 6.00.6000.16414" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV><FONT face=Arial size=2><STRONG>Mark,</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2><STRONG></STRONG></FONT> </DIV>
<DIV><FONT face=Arial size=2><STRONG>In yet another point of interest, I also
see the JBoss Rules "rules flow" as a very elegant form of backward chaining
implementation/modeling. For example, in the PDF file from <FONT
face="Times New Roman" size=3>Kris Verlaenen, the ultimate goal of
"Process Order" cannot be accomplished without the completion of "Check Order"
which may/may not (?) complete without "Update Order". As opposed to the engine
hunting through all of the conditions and actions to find an appropriate path
for the backward chaining, the model implies how it is to be done and the system
will guarantee the flow with its split and join nodes via forward chaining -
but, if and only if the backward chaining pre-conditions are
satisfied.</FONT></STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman"
size=3><STRONG></STRONG></FONT></FONT> </DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman" size=3><STRONG>I'm not
sure who will agree with what I have said, but this is the way that it appears
to me as a rules engineering person.</STRONG></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2><STRONG></STRONG></FONT> </DIV>
<DIV><FONT face=Arial size=2><STRONG>Thanks,</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2><STRONG></STRONG></FONT> </DIV>
<DIV><FONT face=Arial size=2><STRONG>Rich Halsey</STRONG></FONT></DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG>"GENIUS IS THE ULTIMATE WEAPON"</STRONG></DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG>....God grant me...<BR>The senility to forget the people I never
liked<BR>The good fortune to run into the ones that I do<BR>And the eyesight to
tell the difference."<BR></STRONG></DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial"><STRONG>----- Original Message -----
</STRONG></DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><STRONG>From:
</STRONG><A title=mproctor@codehaus.org
href="mailto:mproctor@codehaus.org"><STRONG>Mark Proctor</STRONG></A><STRONG>
</STRONG></DIV>
<DIV style="FONT: 10pt arial"><STRONG>To: </STRONG><A
title=rules-dev@lists.jboss.org
href="mailto:rules-dev@lists.jboss.org"><STRONG>Rules Dev
List</STRONG></A><STRONG> </STRONG></DIV>
<DIV style="FONT: 10pt arial"><STRONG>Cc: </STRONG><A
title=rich_halsey@bellsouth.net
href="mailto:rich_halsey@bellsouth.net"><STRONG>Rich
Halsey</STRONG></A><STRONG> ; </STRONG><A title=jco@kbsc.com
href="mailto:jco@kbsc.com"><STRONG>James C. Owen</STRONG></A><STRONG>
</STRONG></DIV>
<DIV style="FONT: 10pt arial"><STRONG>Sent: Monday, February 26, 2007 7:58
AM</STRONG></DIV>
<DIV style="FONT: 10pt arial"><STRONG>Subject: Re: [rules-dev] Re: RuleFlow
preview</STRONG></DIV>
<DIV><STRONG><BR></STRONG></DIV><STRONG>Our implementation is a light layer to
provide "wait states" for one or more rules, it uses a similar principle to
agenda-groups (Clips modules) to partition the execution. Activated rules are
placed in temporary buckets (rule-flow-groups), instead of onto the agenda,
when the rule-flow-group is activated the bucket empties onto the Agenda for
normal execution, when all the emptied rules are fired the next
rule-flow-groups are activated. <BR><BR>The system is still "parallel" in
nature, in that the agenda is still responsible for executing rules and the
agenda can have more than one rule on it at at time. In our implementation all
the rules in the rule-flow-group will be put onto the agenda for execution, at
the same time standard rules can also continue to be managed and executed by
the agenda, and agenda groups (clips modules) still continue to operate - all
in parallel.<BR><BR>A rule that is specified to execute as part of a
rule-flow-group can also be part of an agenda-group, but that use case is
discouraged because it can get quite hairy unless you really know what you are
doing :) As it means a rule-flow-group can be activated, the rules moved onto
their respective agenda-groups, where any rules not in agenda-groups that do
not have focus will not fire, the next rule-flow-group will not activate
untill all rules for the current rule-flow-group have fired, regardless of the
agenda-groups they are in.<BR><BR>The limitation at the moment is that the
temporary bucket has no ability to handle different start instances and
differentiate between the rules in it's bucket of the same rule-flow, but you
can have multiple different rule flows executing in parallel. We purposefuly
kept it simple for "version 1" to build up the functionality needed for rule
flow. The use cases for parallel execution of the same flow are not easy - as
one instance can catch up and over take another instance on the same flow.
Also if a rule in a rule-flow-group activates which of the two current
instances for the same rule flow are responsible for firing it? The same issue
arrises for when you have the same rule-flow-group in multiple rule-flows. We
are currently not sure how best to handle these types of situations; maybe you
could help us on those use cases? Or even provide a patch
:)<BR><BR>Mark<BR>Rich Halsey wrote: </STRONG>
<BLOCKQUOTE cite=mid:001101c759a3$0f0ba070$210110ac@BUBBA type="cite">
<META content="MSHTML 6.00.6000.16414" name=GENERATOR>
<STYLE></STYLE>
<DIV><STRONG></STRONG> </DIV>
<DIV><FONT face=Arial size=2><STRONG>Hi Mark,</STRONG></FONT></DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><FONT face=Arial size=2><STRONG>The part in the document where it says:
</STRONG><FONT face=TimesNewRomanPSMT>
<P align=left><STRONG>"At this point, ruleflow-groups should not be reused
in more than one ruleflow, and you should not</STRONG></P>
<P align=left><STRONG>start a new instance of a process before the previous
one has ended." </STRONG></P>
<P align=left><STRONG>will be the weak link in the chain, i.e. there should
not be any reason why rule-flow-groups should not be reused nor having
multiple instances since rules are implicitly parallel in operation. This
was what I found to be the problem with ILOG's JRules back in the v4.0
edition. It turned JRules into a clunky procedural processing engine (which
was not what we needed at that time).</STRONG></P>
<P align=left><STRONG>However, I am very proud to see that Jboss Rules
(JBRules) has successfully evolved to this point. You (and your team) are to
be commended for your efforts.</STRONG></P>
<P align=left><STRONG>Tally-ho !!</STRONG></P>
<P align=left><STRONG>Rich Halsey</STRONG></P>
<P align=left><STRONG></STRONG> </P>
<P align=left><STRONG></STRONG> </P>
<P align=left><STRONG></STRONG> </P></FONT></FONT></DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG>"GENIUS IS THE ULTIMATE WEAPON"</STRONG></DIV>
<DIV><STRONG></STRONG> </DIV>
<DIV><STRONG>....God grant me...<BR>The senility to forget the people I
never liked<BR>The good fortune to run into the ones that I do<BR>And the
eyesight to tell the difference."<BR></STRONG></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px">
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><STRONG>-----
Original Message ----- </STRONG></DIV>
<DIV
style="BACKGROUND: rgb(228,228,228) 0% 50%; FONT: 10pt arial; font-size-adjust: none; font-stretch: normal; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><STRONG>From:
</STRONG><A title=mproctor@redhat.com href="mailto:mproctor@redhat.com"
moz-do-not-send="true"><STRONG>Mark Proctor</STRONG></A><STRONG>
</STRONG></DIV>
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><STRONG>To:
</STRONG><A title=rules-dev@lists.jboss.org
href="mailto:rules-dev@lists.jboss.org"
moz-do-not-send="true"><STRONG>Rules Dev List</STRONG></A><STRONG>
</STRONG></DIV>
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><STRONG>Sent:
Monday, February 26, 2007 5:12 AM</STRONG></DIV>
<DIV
style="FONT: 10pt arial; font-size-adjust: none; font-stretch: normal"><STRONG>Subject:
RuleFlow preview</STRONG></DIV>
<DIV><STRONG><BR></STRONG></DIV><STRONG>I thought everyone on the dev list
would be interested in reviewing and providing feedback on Kris' excellent
work on RuleFlow - includes screenshots :)<BR><BR>Mark<BR>--------
Original Message -------- </STRONG>
<TABLE class=moz-email-headers-table cellSpacing=0 cellPadding=0
border=0><TBODY>
<TR>
<TH vAlign=baseline noWrap align=right>Date: </TH>
<TD><STRONG>Mon, 26 Feb 2007 01:51:29 +0100</STRONG></TD></TR>
<TR>
<TH vAlign=baseline noWrap align=right>From: </TH>
<TD><STRONG>Kris Verlaenen </STRONG><A class=moz-txt-link-rfc2396E
href="mailto:kris.verlaenen@gmail.com%3E"
moz-do-not-send="true"><STRONG><kris.verlaenen@gmail.com></STRONG></A></TD></TR>
<TR>
<TH vAlign=baseline noWrap align=right>Subject: </TH>
<TD><STRONG>Ruleflow</STRONG></TD></TR></TBODY></TABLE><BR><BR><PRE><STRONG>I've attached a document describing how ruleflow is implemented /
could be used in the future. If anyone has got any suggestions or
improvements (on the API I'm proposing, or things you would like to
see differently), just let me know asap.
I think I'll be able to commit a first working version on svn soon.
Still have to include conditional connections (where a connection is
only selected if its condition evaluates to true), and some smaller
stuff.
Kris
</STRONG></PRE></BLOCKQUOTE><PRE wrap=""><STRONG><HR width="90%" SIZE=4>
_______________________________________________
rules-dev mailing list
</STRONG><A class=moz-txt-link-abbreviated href="mailto:rules-dev@lists.jboss.org"><STRONG>rules-dev@lists.jboss.org</STRONG></A>
<A class=moz-txt-link-freetext href="https://lists.jboss.org/mailman/listinfo/rules-dev"><STRONG>https://lists.jboss.org/mailman/listinfo/rules-dev</STRONG></A>
<STRONG> </STRONG></PRE></BLOCKQUOTE><BR></BLOCKQUOTE></BODY></HTML>