Hi All
This post is to continue an interresting (to me) discussion started there :
https://issues.jboss.org/browse/JBRULES-46
This was about my remark about a backward-chaining mode that could be used to allow
sequential mode to handle some kind of RETE updates (first rules could then trigger
subsequent rules).
There are some number of answers after that, but I am not sure if I can answer them in the
JIRA, so this post ...
To Mark :
"Currently our sequential mode works as single pass, but it has no inference as rete
join memory is turned off. So it produces all the conflict set more efficiently, and then
it uses rule order for the execution order of the conflict set. However changes in the
current rule are not recognised by the later rules. That is planned though by
"partinioning" the sequential engine around the modify statements. The advantage
to this is we keep a single algorithm that is just configured slightly to provide
different behaviours. Rather than two competely different engines."
I think this is a very good solution, far much better (more efficient and far more clear
to predict how rules will fire) than handling propagation for each individual rule's
update. But I did not understand if it is already done in trunk in some way, or if it is
something planned for future. And if so, the question after that is do you have an idea of
when this could be done ? ... or if is quite affordable for someone not involved directly
in drools developement? (like me for instance, as you speak of " sligth configuration
").
To Michael :
You propose some new rules, by binding the "something" field in condition rather
than calling getSomething() in action (and you change the object to which is applied the
update, which is an error I think).
To me that changes nothing, the rule will loop as one of its binded value is changed
($value, and now $something..). And a no-loop property won't change this too ...
To summarize a bit, the use-case I present in the JIRA (create counters, fill them,
validate them) could really take advantage (perfs, simplicity in authoring/design) of a
sequential mode that could handle a partial inference (driven by a flow for instance,
which seems quite natural for everyone (dev or BA)).