Gents,
this is a really interesting discussion and I wish I had more time to
participate.. I agree with Stephen that some constraints are really
worthy monitoring,
while others are simply "filters".. Wolfgang's mention of "near
misses"
is potentially a hot topic, I have been experimenting with "imperfect"
rules which
are more robust in that sense and provide better traceability, but that
is not yet implemented in the core engine.
I would also point out that one thing is monitor constraints for
"logging" or "auditing" purposes, another is the ability to specify
different behaviours
(i.e. consequences) according to the success vs failure of an evaluation.
To this end, and following on the "extending" rule thread, it has
actually been planned and partially implemented.. it's only an
experimental feature
(@Mario, any update/clarification?), so it's probably not well
documented. But I would point you to these links:
http://blog.athico.com/2012/09/conditional-branches-with-sub-blocks.html
https://community.jboss.org/wiki/BranchCEs
with the warning that it's still experimental and, while adopting
"familiar" keywords (if, then, else, switch), their semantics is
different from the
usual imperative language one, and in fact could enable some of the
"extend" capabilities that have been invoked in the last couple of posts.
Best
Davide
On 01/30/2013 02:25 PM, Cotton, Ben wrote:
Øautomatically rename each rule "part" (being a single-condition rule
derived from the original) to some derivation of the original rule
name, and need the consequence only in the fully-extended rule,
thereby giving the same effect, but with rule "parts" that would
reflect failure at the individual condition level
This is **exactly** the ambition we are hoping that some Drools .DRL
enrichment tool (or other Drools capability) can provide.
Wish I had sufficient competency to comment on the merits of your
different suggested approaches. Hopeful that the Drools gurus will
comment explicitly on all these approaches (and/or the approach
suggested by another of using Working Memory listeners).