# [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>
```
All,

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
consequent.

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

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
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)...

Cheers,

Christian
```
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