- From: Gary Hallmark <gary.hallmark@oracle.com>
- Date: Tue, 05 Aug 2008 10:59:33 -0700
- 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