[rules-users] Limiting rule evaluation--not firing
Vincent Legendre
vincent.legendre at eurodecision.com
Mon Mar 21 09:33:38 EDT 2011
And what about ruleflow-group ?
There is no network filtering for that too ? The ruleflow-group behaves
like an agenda filter, but still evaluate all nodes ?
Could we imagine setting "tags" to nodes, and stop propagation for node
that does not declare the current task tag ?
Le 21/03/2011 14:20, Edson Tirelli a écrit :
>
> The algorithm as is does eager evaluation, as for the general case
> that is still better than doing selective evaluation.
>
> If, in your case, the decision of which rules to fire is an
> arbitrary application decision, and not based on the actual
> constraints of the rules themselves, then the only way would be by
> creating a control fact:
>
> rule 1
> when
> ControlFact( phase == Phase.ONE )
> ...
>
> rule 2
> when
> ControlFact( phase == Phase.TWO )
> ...
>
> This way, if the control fact is the first pattern in each rule it
> effectively disables all the beta evaluations for rules of phases
> other than the current one. Just be aware that by blocking the eager
> evaluation this way, phase switches are heavier than without the
> control fact, where most constraints were already previously
> evaluated. Obvious, but worth saying out loud... :)
>
> There is also a feature that Leonardo is working on that makes the
> engine automatically unlink and relink parts of the network, based on
> the existence and possibility of matching the other required facts in
> a rule LHS. It might achieve similar results to what you are looking
> for in some cases, but that is totally based on the constraints in
> there and not on any arbitrary application decision.
>
> Edson
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110321/5bc407fe/attachment.html
More information about the rules-users
mailing list