W3C home > Mailing lists > Public > public-rif-comments@w3.org > April 2010

Re: comment on RIF-PRD

From: Christian De Sainte Marie <csma@fr.ibm.com>
Date: Wed, 21 Apr 2010 19:13:45 +0200
To: Wolfgang Laun <wolfgang.laun@gmail.com>
Cc: public-rif-comments@w3.org
Message-ID: <OFB7F8C014.99DC0A64-ONC125770C.005B2B0D-C125770C.005EA3C7@fr.ibm.com>
Dear Wolfgang,

Wolfgang Laun <wolfgang.laun@gmail.com> wrote on 10/12/2009 13:38:00:
> thank you very much for your reply. to summarize:
>  - your argument against "no-loop" is not well substantiated;

It is, indeed, interesting that Jess and Drools agree that "no-loop" 
should be defined as "inhibit the creation of an activation 
A:<R,F1,F2,...> during the execution of R's consequence". (Note that the 
Jess/Drools definition does not prevent looping should R activate R' and 
then R' activate R.)

However, JRules and other major engines do not agree, and we could not 
find a suitable definition that was shared by all the production rule 
systems we looked at. As a consequence, we made two changes in the 
* Modify is now a compound action, that can always be replaced by one or 
more Retract followed by an Assert;
* The default conflict resolution strategy rif:forwardChaining takes now 
into account the intermediate states of the fact base after each atomic 
action (rather than only after the complete execution of each rule 

As a consequence, to answer to your initial question (in [1]), the 
rif:forwardChaining strategy, that is defined as the minimal conflict 
resolution strategy that any RIF-PRD implementation must support, does not 
support the no-loop feature.

However, the RIF dialects are meant to be extended, and we expect that 
more elaborate conflict resolution strategies will be specified. 
Discussions regarding proposed extensions are welcome on the RIF 
developers mailing list (mailto:public-rif-dev@w3.org).


>  - I'm still not convinced that "forall" is a well-chosen keyword;

We certainly agree, regarding RIF-PRD alone.

However, there is a non-trivial intersection of production rules and logic 
rules - called RIF Core - where the syntax and semantics of the two kinds 
of rules coincide.

Clearly for Core (and for the dialects that extend it on the logic side, 
like RIF-BLD), use of "forall" makes logical sense. We chose not to 
introduce a different keyword for the non-Core production rules, even if 
"forall" makes less intuitive sense in some cases.

>  - we seem to agree on the importance of being able to define "class
> [relationship] assertions".

The working group has published a first public working draft of a document 
that specifies how RIF can be combined with XML (data and or schema) [2]. 
We would welcome your comments on that draft.

[2] http://www.w3.org/TR/rif-xml-data/

Please acknowledge receipt of this email to <mailto:
public-rif-comments@w3.org>. In your acknowledgment please let us know 
whether or not you are satisfied with the working group's response to your 


Christian de Sainte Marie

9 rue de Verdun
94253 - Gentilly cedex - FRANCE
Tel. +33 1 49 08 35 00
Fax +33 1 49 08 35 10

Sauf indication contraire ci-dessus:/ Unless stated otherwise above:
Compagnie IBM France
Siege Social : 17 avenue de l'Europe, 92275 Bois-Colombes Cedex
RCS Nanterre 552 118 465
Forme Sociale : S.A.S.
Capital Social : 611.451.766,20 ?
SIREN/SIRET : 552 118 465 03644
Received on Wednesday, 21 April 2010 17:14:23 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:07:00 UTC