<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>

<META content="MSHTML 6.00.2900.3132" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=730392514-15062007>I have a question 
about rule storage and referencing with the JBRMS. Mostly this is directed to 
Michael Neale (since I believe this is his baby), but since I cant catch him on 
IRC I'll post it to here to see if others have this similar concern. 
</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=730392514-15062007></SPAN></FONT>&nbsp;
</DIV>
<DIV><FONT face=Arial size=2><SPAN class=730392514-15062007>A little history 
before I get to the question. We have been using drools since 2.x (still on 2.x) 
and have developed much around the core engine. T</SPAN></FONT><FONT face=Arial 
size=2><SPAN class=730392514-15062007>he way we currently store rules is in a 
database, at runtime we pull them out and write an xml file. What this allows is 
rule referencing back to the authoring source. We translate from DB-&gt;XML so 
the "then" returns the ID. We also use it to create unique names for rules. In 
our editor we have notes, versions and the complete rule code,&nbsp;similar 
to&nbsp;the new JBRMS. When a rule fires in our system the purpose may be to 
show an error or change a price. Either way sometimes people ask why did this 
fire, or further, they dispute the rule all together. So in each message or 
price change we track the ID of the rule being fired/applied. 
</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=730392514-15062007></SPAN></FONT>&nbsp;
</DIV>
<DIV><FONT face=Arial size=2><SPAN class=730392514-15062007>From that we have 
developed 2 tools, one to lookup a rule and see a great deal of info about that 
rule (whats/whys), the other is an Override tool that allows you, given 
authority, to associate a rule ID to a transaction and have coded so when the 
engine fires this rule, it will be ignored by the system. Obviously how we 
override is not something I expect you to solve, but giving me the ability by 
having a unique ID would be.</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=730392514-15062007></SPAN></FONT>&nbsp;
</DIV>
<DIV><FONT face=Arial size=2><SPAN class=730392514-15062007>I would think the 
desire to "Track" and "Override" a rule is pretty high for most people using a 
rule system in an enterprise. What makes this possible is exposing a unique 
identifier in the storage of rules (think database and editor) as well as the 
execution of rules (as they fire). I setup the MR2 of the JBRMS and tried to 
look at the storage system to see if a rule had some unique identifier that we 
could use, and found none. Seems like a rulebase is a blob, though maybe I'm 
just looking at it wrong.</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=730392514-15062007></SPAN></FONT>&nbsp;
</DIV>
<DIV><FONT face=Arial size=2><SPAN class=730392514-15062007>So my question 
and/or request is there a way to have each rule have a unique identifier (by 
version is fine) in the JBRMS storage system. I think this is the first step, 
the second is harder but make the system associate the ID to a rule at execution 
("then"). Similar to the option of expiring a rule at X 
date.</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=730392514-15062007></SPAN></FONT>&nbsp;
</DIV>
<DIV><FONT face=Arial size=2><SPAN class=730392514-15062007>While this may not 
seem huge,&nbsp;and is definitely not as cool as&nbsp;changing semantics in 
MVEL, it is a huge barrier of adopting this new very feature rich 
JBRMS.</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=730392514-15062007></SPAN></FONT>&nbsp;
</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=730392514-15062007>Thanks,</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2><SPAN class=730392514-15062007>Michael 
Rhoden</SPAN></FONT>
</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;
</DIV></BODY></HTML>