Re: Thoughts on RIF core, dialects, conformance

Dave Reynolds wrote:
> 
> o There will be many different forms of tools working with RIF - 
> editors, pretty printers, rule engines etc. Here we're only going to 
> talk about RIF rule engines by which we mean a combination of a rule 
> engine for some existing language plus a translator which translates 
> between a fragment of that language and a RIF dialect.

I agree except for the restriction to rule engines: not that I object, 
but why the restirction?

> o We have at least two notions of how a given RIF rule engine might 
> conform to a RIF dialect. I think Michael calls these "conforms" and 
> "implements"; I'll use "complies" and "implements" to avoid prejudging 
> the definition of "conformance".
> 
> o A RIF rule engine complies with RIF dialect D if there is a 1-1 
> semantics-preserving mapping from the engine's language (L) into (not 
> necessarily onto) D. Where "semantic-preserving" might mean preserving 
> the set of atomic consequences of all translated rulesets.

Not sure about 1-1, and not sure what "onto" means (just a question of 
translation from english to french, for the latter).

> o A RIF rule engine implements a RIF dialect D if there is a reverse 
> mapping from D into L which preserves semantics. So the engine 
> implements all of D, correctly.

ok.

> o Some people expect RIF conformance to mean both "complies" and 
> "implements". So if A and B both claim full conformance with D then any 
> rule set in LA can be correctly translated into D and then into LB and 
> vice versa. Let's call this "strong interoperation". Though note that LA 
> is just the fragment of A's native language implemented by the RIF 
> translator for dialect D, both A and B's native languages may still have 
> "proprietary" features which are outside of D.

Agree. But I fear that using the same terms (rule language and engine) 
for both the "original" rule language and engine, and the restriction 
that is "visible" through the translator is misleading and confusing.

This is why I prefer talking of a conformant application than a 
conformant RL or engine.

Notice that there is even stronger than strong interoperation: if system 
A conforms in the strong sense with dialect D that extends dialect D', 
we may require that any rule of A that is covered by D' be indeed 
translated in D' (even if it could be translated in D-D' as well, for 
instance). This could be required for backward compatibility.

> o Some people expect RIF conformance to mean "complies". For any engine 
> A which complies with D you also need to know the subset of D which it 
> covers. Two implementations can interoperate in the strong sense above 
> only over the intersection of the features of D they cover. An engine 
> which compiles with D but does not implement D may raise an exception 
> when given a ruleset which uses a feature it doesn't handle.

Then, there is the possibility to have only a limited number of features 
that a compliant application can opt out to implement; or profiles.

[snip] (meeting time!)

Christian

Received on Tuesday, 16 January 2007 15:54:30 UTC