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(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev