[rules-dev] Rule Dependency Generator

Siddharth Angrish sidangrish at gmail.com
Mon Oct 6 01:55:48 EDT 2008


Hi Mark

     I went through the RuleAnalytics Module document. It looks like there
is a good compatibility between your visions of Rule Analysis and our rule
dependency generation work. I'll be excited to further develop and integrate
my work with drools-verifier module code.

Just a short summary of how I had approached the problem:

We have long ruleflow which consists of other ruleflows, ruleflow groups,
split conditions. Using drools API I was
able to traverse through the main ruleflow including (recursively)
constituent nodes. So at any node I knew which rules
are relevant. Now, to find out dependency between rules I required very
intricate information about any given rule. I could not
find sufficient drools APIs to get this information. There are methods to
get LHS and RHS of a rule but they do not give information about individual
attributes. For RHS its more worse. No textual information was availabe
about it. (I am using 4.0.7 and I had even posted my questions on Drools
user mailing list)

  As a result, I wrote my own .drl file parser using javacc (which was very
interesting to do) and got whatever information I required.
Now I knew which rule modifies which attribute (and of which class) and
which rule uses what atrributes in its conditional part. Its much easier to
get dependecy sequence now. I know a few cases where this approach might
produce a false dependency sequence but using other rule-flow(salience,
agenda) information can help us avoid that.

Now, how shall we go about it?  I have installed irc on my system and I
think I require some url to be able to connect to you guys.

Siddharth

On Sun, Oct 5, 2008 at 7:40 PM, Mark Proctor <mproctor at codehaus.org> wrote:

> Drools 5.0 has the drools-verifier. This does a variety of verifications
> and analysis, like where class fields are used, gap analysis etc. The Guvnor
> BRMS can produce HTML reports for this information. Subsumption isn't done
> yet, we needed to analys the consequences for update/modify to try and
> detect potential impacted rules - this is also needed to detect which rules
> depend on other rules.
> http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/drools-verifier/
> http://wiki.jboss.org/wiki/RuleAnalyticsModule
>
> So we would love to have your work as additions to this,  but it will need
> to be integrated with the existing drools-verifier module code and the HTML
> reporting - can you make that happen? It would be ideal, as it then means
> your code is part of the main project and will be maintained and improved by
> the community.
>
> Maybe you could pop onto irc, and chat to us about it more?
> http://www.jboss.org/drools/irc.html
>
> Do you have any visualisation plans? If on the web GWT-Diagram is turning
> out to be a great tool
> http://code.google.com/p/gwt-diagrams/
>
> Mark
>
>
>
> Sangrish wrote:
>
>> Hi
>>
>>      I have been using Drools Rules Engine in our application for past
>> couple of weeks.
>> One of the requirements in our project was to let a user (anyone who is
>> writing/analysing the rules) find out
>> what other rules a given rule depends upon. There were a few kinds of
>> dependencies:
>> 1) Object Attribute dependency: The attributes of an object being used in
>> the conditional part of a rule
>>   might be getting modified in the consequence part of another rule. We
>> wanted all such rules with each rule having its own dependency list.
>> 2) Rule Salience based dependency. A rule having lower salience should be
>> executed only after a higher (if any) salience rule has already been
>> executed.
>> 3) Dependency caused by a specific Rule flow. Rules in a ruleflow group
>> should be executed only if (if any) Split condition gets satisfied.
>> 4) Agenda flow dependency (i.e., one agenda following another)
>>   We could not find much support for this in the Drools API. Hence we
>> decided to write our own dependency generator.  The tool we are writing
>> caters to first 3 dependencies. We might even handle the 4th one.    Since
>> Drools is open source, we thought of contributing our bit towards
>> its development. If the drools team wants I can happily work with them on
>> getting this functionality plugged in the Drools system.
>>
>>
>> Thanks
>> Siddharth
>>
>>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20081006/eeea8cfc/attachment.html 


More information about the rules-dev mailing list