- From: Christian de Sainte Marie <csma@ilog.fr>
- Date: Tue, 25 Apr 2006 16:12:24 +0200
- To: Bijan Parsia <bparsia@isr.umd.edu>
- CC: "Vincent, Paul D" <PaulVincent@fairisaac.com>, RIF WG <public-rif-wg@w3.org>, Gerd Wagner <wagnerg@tu-cottbus.de>
Bijan Parsia wrote:
>
> On Apr 23, 2006, at 2:25 PM, Vincent, Paul D wrote:
>
>> Gerd - I don't think comparing the state of standardization in current
>> PR systems with HTML is very useful.
>
> I disagree.
I mostly agree with Paul (esp. given later clarifications), but I also
think that HTML is an interesting reference for RIF (not particularly
wrt production rules, though).
> And companies added tags left right and center from the start. It also
> had a very liberal (vauge even) semantics. Browsers added tags to be
> competitive and distinguish themselves.
Indeed. And most existing rule engines add features to the basics of the
kind of technology they implement.
Browsers added tags after HTML was specified to compete and rule engines
added features to their languages to compete before RIF was specified,
but the analogy still works: (i) users who want to be vendor (in the
broader sense of technology provider) neutral must be able to do what
they need to do using only standard RIF; (ii) but vendors/usage
communities/whoever must be able to add their own proprietary features
(e.g. if vendors switch to RIF to persist rulesets in XML, they will
have to define their own dialect on top of RIF to accomodate the legacy
rulesets of their customers). But (iii) retrieving a non-standard RIF
document must not cause a a consumer application to fail, not anymore
than retrieving a standard RIF document containing features that it
cannot process (which is bound to happen if RIF is rich enough to make
(i) possible).
(i) means that RIF standard must cover enough features to be useful;
(ii) means that RIF must provide a standard way to extend it easily, and
a way that do not prejudge of the kind of extensions;
(iii) means that RIF must provide either a standard behaviour for the
case when a consumer finds, in a RIF document, a feature that its
application cannot process, or a standard way to describe the expected
behaviour, or both.
I proposed a requirement to that effect [1] (actually, (ii) extends that
requirement). I also outlined a possible solution, but I made the
mistake of sending out a whole, however sketchy, XML schema (attached to
[2]: here below is the fragment of interested to that discussion.
[1]
http://www.w3.org/2005/rules/wg/wiki/RIF_must_define_for_all_RIF_elements_a_default_behaviour_for_compliant_applications_that_do_not_know_how_to_process_it
[2] http://lists.w3.org/Archives/Public/public-rif-wg/2006Apr/0035.html
Christian
An simple solution would be for elements in a RIF document to have one
or several attributes related to the expected behaviour in the case the
consumer application does not know the said element, possibly with a
default behaviour. E.g.
<xsd:element name="DontUnderstandBehaviour">
<xsd:simpleType>
<xsd:restriction base="xs:string">
<xsd:enumeration value="IGNORE RULESET"/>
<xsd:enumeration value="IGNORE RULE"/>
<xsd:enumeration value="IGNORE ELEMENT"/>
<xsd:enumeration value="whatever (e.g. replace with default
value, etc)"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
The default "DontUnderstandBehaviour" associated to the "Function"
element could be to ignore the rule, whereas the default behaviour
associated to a certainty value or a priority could be to ignore the
element only. There should probably be a way to over-rule the defautlt
behaviour for an element or a group of element at the rule, ruleset and
RIF document level, as well.
Received on Tuesday, 25 April 2006 14:11:28 UTC