Re: [PRD] Default conflict resolution strategy (ISSUE-64)

Christian de Sainte Marie wrote:
>
> Gary Hallmark wrote:
>> BTW, Oracle/Jess does not support all-at-once rule firing, other than 
>> by aggregation.  Nor do they support random firing. I think these are 
>> rare features, and do not merit standardization.
>
> I thought of "all-at-once" as a possible way to specify a "sequential" 
> mode: not sure it is very common, indeed.
That won't work.  You could have a sequence of rules A,B and you first 
fire A, then depending on A's actions you may or may not fire B.  I 
think I mentioned before that one way to model sequential is with 
priority and probably also with mutual exclusion.  Priority could be an 
integer or double property attached to a rule.  Mutual exclusion could 
be a boolean property attached to a group.  A sequential ruleset would 
map to a mutex group containing rules whose priority value reflects the 
sequential ordering.

Mutual exclusion is becoming more common in rule engines as a primitive 
to support conflict resolution.  For example, the notion of "overrides" 
is common in decision tables and can be implemented using mutual 
exclusion and priority.
>
> This being said: what does Oracle/Jess do when all the conflict 
> resolution strategies have been applied? Fire all the rules that 
> remain fireable or fire only one? The former would be what I had in 
> mind (but what I may not have described clearly enough) with 
> "all-at-once" and the latter correspond to the definition of "random".
One rule is chosen in a deterministic but unspecified way.  It is not 
random, nor is it all-at-once.

Received on Tuesday, 5 August 2008 18:02:50 UTC