<font size="2"><font face="verdana,sans-serif">Hi there,<br></font></font><div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Thanks for replying. I will try to explain my current challenge a bit further:</font></div>

<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">I have a ruleset which is sent by an external application in XML format. I load it to a new knowledge package and then into a knowlegde base. It is made of smaller subsets of 3 rules each (a &quot;set&quot; rule, a &quot;reset&quot; rule and a &quot;clear&quot; rule) that control my application&#39;s internal logic, which must be stateful and kept on disk (basically, there are 2 important hashmaps).</font></div>

<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Whenever the rules change, a new XML ruleset is sent and my application restarts and loads the new file the exact same way. However, I need to resume the application state (as it was before the restart). I also have to do this selectively, because I only care about the application state on a per-rule basis:</font></div>

<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">- If a rule keeps the same LHS, I need to resume the application state before restart regarding that rule;</font></div>

<div><font class="Apple-style-span" face="verdana, sans-serif">- If a rule has been modified, I may discard the state regarding that rule (do not need to load it);</font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br>

</font></div><div><font class="Apple-style-span" face="verdana, sans-serif">I don&#39;t think I can refactor this problem into smaller ones, the application internal logic is indeed complex I&#39;m afraid. The rules are analyzed in a stateless way BUT they control a set of critical information which must be stateful (beyond restarts). There is a (not-so-direct) correspondence between each (fire, reset, clear) rule subset and the information that keeps track of the internal state, so that&#39;s why I need to verify rule-by-rule what has changed between restarts.</font></div>

<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">I hope this helps to describe the problem.</font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Thanks again for reading. Any help is greatly appreciated.</font></div>

<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">_ miguel, PT</font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br>

</font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br>

</font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br></font><div class="gmail_quote">2011/8/26 Swindells, Thomas <span dir="ltr">&lt;<a href="mailto:TSwindells@nds.com">TSwindells@nds.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Can you share what you actual requirement is and why you need to do it?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Can you perhaps change the problem into one that is simpler to solve?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Ie rather than comparing knowledge bases can you get the input to these knowledgebases?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Can you control what that input is, if it is a DSL or a spreadsheet then your comparision job will probably become a lot simpler.<u></u><u></u></span></p>


<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D">Thomas<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:#1F497D"><u></u> <u></u></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <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>miguel machado<br>
<b>Sent:</b> 26 August 2011 13:01<br>
<b>To:</b> Rules Users List<br>
<b>Subject:</b> Re: [rules-users] Rule one-by-one comparison<u></u><u></u></span></p>
</div>
</div><div><div></div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:10.0pt">Esteban,</span><u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span>Thank you very much for that. I will look into it.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span>Any other ideas, anyone?</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span>_ miguel</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">2011/8/26 Esteban Aliverti &lt;<a href="mailto:esteban.aliverti@gmail.com" target="_blank">esteban.aliverti@gmail.com</a>&gt;<u></u><u></u></p>
<p class="MsoNormal">You can try to use drools-verifier. This project basically lets you define rules about your rules. <u></u><u></u></p>
<div>
<p class="MsoNormal">You can have a look at its tests to see how it works.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">You can get more info about drools-verifier here: <a href="http://community.jboss.org/wiki/DroolsVerifier" target="_blank">
http://community.jboss.org/wiki/DroolsVerifier</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">And here you can see how are we using drools-verifier inside Guvnor: <a href="http://ilesteban.wordpress.com/2010/04/05/guvnors-field-constraints/" target="_blank">http://ilesteban.wordpress.com/2010/04/05/guvnors-field-constraints/</a> <u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Best Regards,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br>
<br>
Esteban Aliverti<br>
- Developer @ <a href="http://www.plugtree.com" target="_blank">http://www.plugtree.com
</a><br>
- Blog @ <a href="http://ilesteban.wordpress.com" target="_blank">http://ilesteban.wordpress.com</a><br>
<br>
<u></u><u></u></p>
<div>
<div>
<div>
<p class="MsoNormal">2011/8/26 miguel machado &lt;<a href="mailto:mls.machado@gmail.com" target="_blank">mls.machado@gmail.com</a>&gt;<u></u><u></u></p>
</div>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">Hi there everybody,<br clear="all">
</span><u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span>I need to perform rule comparison on a project I&#39;m working on using drools expert 5.0. For a specific feature implementation, I have two different knowledge bases with several rules which
 I need to compare, one by one. By comparing, I mean &quot;inspect&quot; certain conditions within the LHS.</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span>Currently, I&#39;m able to obtain several attributes from rules (org.drools.rule.Rule), such as the agenda-group and the rule name and a few others, but I haven&#39;t been able to do it all. Going
 deeper, there is LiteralConstraint (for simple conditions) which I can parse and obtain data. However, I don&#39;t know how to do it for OR-conditions, which I guess represents a MultiRestrictionFieldConstraint. Perhaps there is another way?</span><u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span>I know this may seem like a very unorthodox thing to do, but I don&#39;t think there is a better way of comparing knowledge packages (except for full text comparison). Is there?</span><u></u><u></u></p>


</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span>Thanks in advance,</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><span>_ miguel, PT</span><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888"><u></u> <u></u></span></p>
</div>
<p class="MsoNormal"><span style="color:#888888">-- <u></u><u></u></span></p>
<div>
<p class="MsoNormal"><span style="color:#888888">&quot;To understand what is recursion you must first understand recursion&quot;<u></u><u></u></span></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">_______________________________________________<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><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<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><u></u><u></u></p>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">-- <u></u><u></u></p>
<div>
<p class="MsoNormal">&quot;To understand what is recursion you must first understand recursion&quot;<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div></div>
</div>
<br>
<hr>
<font face="Arial" color="Gray" size="1"><br>
**************************************************************************************<br>
This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the <a href="mailto:postmaster@nds.com" target="_blank">postmaster@nds.com</a> and delete it from your system as well as any copies. The content of e-mails as well as traffic data
 may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary.<br>
<br>
NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00<br>
**************************************************************************************<br>
</font>
</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><br clear="all"><div><br></div>-- <br><div>&quot;To understand what is recursion you must first understand recursion&quot;</div><br>
</div>