[rules-dev] Debugging, Tracing and Visualization of rule execution
Mark Proctor
mproctor at codehaus.org
Tue Jun 16 18:29:15 EDT 2009
Daniel Gebler wrote:
>
> For our integration of Drools 5.0 we want to provide end users with
> limited technical skills the possibility to debug, trace and visualize
> the rule execution as well as the fact base.
>
>
>
> Questions that are frequently asked by users as well as by the
> development/qa team:
>
> - Did my rule r1 fire for this query?
>
> - Why did rule r1 not fire (i.e. which constraint doesn't match)?
>
> - Which kind of rule dependencies (chaining) do I have in my
> rule base? Rule r1 and r2 are dependent iff action of r1 (e.g. publish
> a fact) makes constraint of r2 true.
>
> - Which rules need to fire in order to generate the
> additional fact f1 in the fact base?
>
> - What is the smallest change in the fact base (additional
> facts etc.) in order to make rule r1 to fire (abduction)?
>
>
>
> Problems:
>
> - Eclipse plugin doesn't provide information of what didn't
> happen and why it didn't happen ( 'Audit' view allows just tracking of
> positive cases, i.e. what happened). Furthermore the stability of the
> eclipse plugin seems to be limited.
>
> - Integrating over SPI doesn't allow to show the Rete network
> because Rete view works only with drl files
>
> - How to provide feedback to a normal end user of the search
> server (limited tech skills) about rule-related information?
>
>
>
> Solution ideas/approaches + our assessment:
>
> 1. Use a run time monitor providing on-demand log trace
> information when facts are being published. The log trace provides
> the information about which and why a particular constraint is or is
> not satisfied. Our initial implementation uses an aspect oriented
> approach (JBoss AOP) to gather relevant information. In detail: Our
> initial implementation uses an aspect oriented approach (JBoss AOP) to
> gather the information by intercepting EntryPointNode.assertObject(),
> and traversing the rete network to collect the constraint information
> for every unique alpha/join node. This will allow to visualize the log
> trace (GUI) and interpret the trace in the context of our product. We
> discussed this approached in #drools with Edson Tirelli and he was
> very interested.
>
> 2. Use drools AgendaEventListener. Listener does not gets enough
> debug info exposed, esp. we cannot extract the cause to reject a rule.
> Not enough information available therefore this one is not an option.
>
>
>
> Additionally, it would be nice for our development to also visualize
> the Rete-OO network, but that seems to be impossible when integrating
> drools directly via the SPI classes. Is there a way to connect the
> viewer to a network inside a running VM?
>
Constructing against the SPI instead of using DRL, you are scaring me now?
Mark
>
>
>
> We would like to hear whether you know any other opinions, or have
> points how to implement those features. Please share your experience
> how to bridge the gap between end-users with limited technical
> backgrounds expressing and investigating the rule inference.
>
>
>
> Thanks,
>
> Daniel
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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/20090616/36578de6/attachment.html
More information about the rules-dev
mailing list