# [RIF-PRD] Clarification reaction variable binding (Was: Fw: Apparent incompleteness of semantics for firing rules in RIF-PRD)

From: Christian De Sainte Marie <csma@fr.ibm.com>
Date: Mon, 9 Jul 2012 17:15:09 +0200

Message-ID: <OF9D42C43B.5506C3ED-ONC1257A36.0029A08B-C1257A36.0053CC4C@fr.ibm.com>
All (and PRD folk in particular),

The RIF PRD specification does not say anything about the case described
in the email forwarded below: when there is no match in the working memory
for an action variable binding frame.

That is, the case where a rule's action block contains an action variable
binding:
(?v object[attribute -> ?v])
and object has no value for attribute (notice that object and attribute
have to be ground or bound, or the rule would not be safe).

I know that we had discussed it (and the case where there are mutliple
matches as well), but I do not find a resolution.

My understanding is that the consensus was that not to specify semantics
for the case where there is no binding value (like DTB specifies no
semantics for the case when the arguments of a builtin are out of the
domain): although the rule is perfectly valid from an interchange
viewpoint, applying it in a context where object has no value for
attribute is just applying it outside the domain where it is meaningful.

Therefore, I propose to add a clarification to that effect, in section
4.2.3.

Re the case where object has multiple values for attribute, my
understanding is that the consensus was to leave it ambiguous, because of
the unresolved relation between frame/object-multiple values/collection of
values.

What do you think?

Cheers,

Christian

IBM
9 rue de Verdun
94253 - Gentilly cedex - FRANCE
Tel./Fax: +33 1 49 08 29 81

----- Forwarded by Christian De Sainte Marie/France/IBM on 09/07/2012
09:34 -----

Jesse Weaver <weavej3@rpi.edu> wrote on 05/07/2012 22:05:51:

> From: Jesse Weaver <weavej3@rpi.edu>
> To: team-rif-chairs@w3.org
> Cc: cawelty@gmail.com, Christian De Sainte Marie/France/IBM@IBMFR,
> sandro@w3.org, Ankesh <ankesh@cs.rpi.edu>, public-rif-wg@w3.org,
> Date: 05/07/2012 22:07
> Subject: Apparent incompleteness of semantics for firing rules in
RIF-PRD
>
> RIF Chairs.
>
> It appears that the operational semantics of RIF-PRD are
> incompleteness wrt firing rules.  Consider a set of facts \Phi = {
> a#c , b#c } which represents a state of the fact base.  Consider the
> following rule:
>
> Forall ?x ?y (
> If And( ?x#c ?y#c )
> Then Do( (?v ?x[p->?v]) ?y[p->?v] ) )
>
> The substitution \sigma = { <?x, a> , <?y, b> } matches condition
> formula And( ?x#c ?y#c ) to \Phi.  Therefore, by definition of
> matching rule instance (section 4.2.3), the following is a matching
> rule instance of the previous rule:
>
> If And( a#c b#c )
> Then Do( (?v a[p->?v]) b[p->?v] ) )
>
> Suppose that the conflict resolution strategy selects only this rule
> instance for firing.  Then by definition of RIF-PRD production rule
> system (section 4.2.4), the ground atomic actions derived from the
> rule instance's action block are executed in sequence to transit to
> the next state.  From definition of action instance (section 4.2.3),
> the action instance is derived by extending \sigma to another ground
> substitution \sigma* = { <?x, a> , <?y, b> , <?v, d> } where d is a
> constant such that a[p->d] \in \Phi.  However, there exists no
> constant d such that a[p->d] \in \Phi.  Therefore, it is impossible
> to derive an action instance for the given rule instance, and it
> appears that such a case has an undefined operational semantics.
>
> What I wish to know is: have I correctly determined an
> incompleteness in the semantics, and if so, what should the
> operational semantics be in this case?

Sauf indication contraire ci-dessus:/ Unless stated otherwise above:
Compagnie IBM France
Siège Social : 17 avenue de l'Europe, 92275 Bois-Colombes Cedex
RCS Nanterre 552 118 465
Forme Sociale : S.A.S.
Capital Social : 645.605.931,30 ?
SIREN/SIRET : 552 118 465 03644 - Code NAF 6202A

Received on Monday, 9 July 2012 15:16:14 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:48:00 UTC