- From: Christian De Sainte Marie <csma@fr.ibm.com>
- Date: Tue, 21 Jul 2009 19:34:51 +0200
- To: "Adrian Paschke" <adrian.paschke@gmx.de>
- Cc: Changhai Ke <changhai.ke@fr.ibm.com>, "'RIF'" <public-rif-wg@w3.org>
- Message-ID: <OF081D9CAC.DA135517-ONC12575FA.005F9780-C12575FA.00609369@fr.ibm.com>
Adrian,
Changhai is right, I think.
"Adrian Paschke" <adrian.paschke@gmx.de> wrote on 21/07/2009 18:36:51:
>
> I would assume that the frame which is bound to variable ?X within
> the atomic transaction of assert + retract is still bound to the
> variable after the retraction, so it contains all previous
> attributes of the frame and only the ex:discount attribute is changed.
That is the case if you retract a frame, not if you retract the object.
The semantics of retracting the object is that you retract all the known
facts about it [1].
In the end, only the facts that you asserted *after* the retract are
known, that is, in your example
ex:john[ex:discount -> "0"] "
> That is semantically an atomic assert+retract transaction is like a
modify.
Again, Retract(frame)+Assert(frame_with_new_value) is equivalent to
Modify(frame_with_new_value), not
Retract(object)+Assert(frame_about_object_with_new_value)
Christian
[1] [w-alpha->w' if] ? is Retract(o), where o is a constant, and
w' = w \ {o[s->v] | for all the values of terms s and v} - {o#c | for all
the values of term c}; (from
http://www.w3.org/TR/rif-prd/#Operational_semantics_of_atomic_actions)
ILOG, an IBM Company
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
Siège Social : Tour Descartes, 2, avenue Gambetta, La Défense 5, 92400
Courbevoie
RCS Nanterre 552 118 465
Forme Sociale : S.A.S.
Capital Social : 609.751.783,30 ?
SIREN/SIRET : 552 118 465 02430
Received on Tuesday, 21 July 2009 17:35:33 UTC