W3C home > Mailing lists > Public > public-rif-wg@w3.org > July 2006

[RIF][RAF] Rules meta-model and a few proposed discriminators for RAF

From: Christian de Sainte Marie <csma@ilog.fr>
Date: Mon, 31 Jul 2006 23:51:02 +0200
Message-ID: <44CE7B46.5050002@ilog.fr>
To: RIF WG <public-rif-wg@w3.org>


Gary's remarks last Tuesday (about heads as applied to production rules) 
made we think that it might be the right time to come back with a 
proposal to discuss and agree on the bases for a general rule meta-model.

Based on common sense, Gerd's and REWERSE work on the subject, the PRR 
proposal, etc, a strawman general meta-model could be that a rule is 
associated to an antecedent expression, a consequent expression and, 
possibly, a set of logical variables definitions, where:
- a logical variables is an named entity that is associated with a range 
specification (not sure about the term: I mean the set of values that it 
can take);
- the antecedent expression is a boolean expression;
- the semantics defines the relation between the antecedent and the 

Rules belong to rulesets.

Logical variables can be scoped to a ruleset, a rule (the variable is 
used in the antecedent and consequent expression), the antecedent and/or 
the consequent of a rule. At first sight, logical variables that are 
scoped to rulesets or rules seems to be always quantified universally. 
The consequent is evaluated for the tuples of values of rule-scoped 
variables for which the antecedent is satisfied (and I wont say more 
about semantics :-).

I do not think that we can say much more at this stage.

Now, the model can be specialised: in the case of production rules, the 
antecedent is called the condition or left-hand side and the consequent 
is the action right hand side; and logical variables are usually scoped 
to the rule or occasionally, to the antecedent. In the case of logic 
programmes, the anetcedents are called bodies, and consequents: heads, 
and logical variables are scoped to the ruleset (programme). Components 
can be added to speciale the model: e.g. a production rule with a 
trigger expression is an ECA. Etc...

A reason why it seemed interesting to discuss this at this point is 
that, thinking about this model made me think of a number of potentially 
interesting discriminators for the RIFRAF (some may already exist, other 
may have been proposed by Paula etc: I do not have the references at 
hand. It may be interesting to relate them to the meta-model anyway):
- scope of the logical variables: what is the allowable scope for 
logical variables (ruleset and/or rule and/or antecedent and/or consequent)?
- quantification associated to scope: what quantification is allowed 
associated with each allowable scope (universal and/or existential)?
- specification of range: is the range of variable specified explicitely 
or implicitely (the case of implicitely I have in mind is logic 
programmes)? If explicit: type or query/filter expression?
- sublanguages: are the (variable range specification), antecedent and 
consequent in the same language. That is: are allowable consequent 
expression a subset of allowable antecedent expression, a superset, a 
disjoint set, ...? (My guess is that might be a good discriminator for 
deductive rue: if the expression language for conseuqnts if a subset of 
the expression language for antecedents)
- side effects: are side-effectfull functions allowed in (variable range 
specifications), antecedents, conseuqents (my guess is that no rule 
language allows side-effects in the variable definitions nor antecedents)?
- datasources: What are the allowable data sources for variable range 
specification queries? For antecendent satisfactio, chacking (boolean 
queries)? Are they explicitely (how? URI?) or implicitely (what: local 
data/fact base. Workin gmemory?...) specified? Is only one datasource 
allowed or multiple ones?

And probably many more (I am pretty sure I had more in mind. But I have 
on vacations for 3 days now, and my brain already started to melt)...


Received on Monday, 31 July 2006 21:50:47 UTC

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