W3C home > Mailing lists > Public > public-rif-wg@w3.org > August 2008

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

From: Gary Hallmark <gary.hallmark@oracle.com>
Date: Tue, 05 Aug 2008 10:59:33 -0700
Message-ID: <48989505.8090901@oracle.com>
To: Christian de Sainte Marie <csma@ilog.fr>
CC: RIF WG <public-rif-wg@w3.org>

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

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:47:52 UTC