Re: AW: AW: [PRD] Assert and AssertRetract test cases (ACTION-845)

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