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

Changhai,

 

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’s why I think the conclusion should be ex:john[ex:status -> "normal" ex:discount -> "0"] "

 

That is semantically an atomic assert+retract transaction is like a modify.

 

-Adrian

 

Von: public-rif-wg-request@w3.org [mailto:public-rif-wg-request@w3.org] Im Auftrag von Changhai Ke
Gesendet: Dienstag, 21. Juli 2009 17:09
An: Christian De Sainte Marie
Cc: Adrian Paschke; 'RIF'; public-rif-wg-request@w3.org
Betreff: Re: AW: [PRD] Assert and AssertRetract test cases (ACTION-845)

 


Christian, 

Yes we should allow an retracted object to be re-asserted. 

Note: we should not consider a retracted object as "deleted", retraction removes all the references to be object from the rule system, but the target application can still keep the object. 

But back to Adrian's test case, the retract should remove all the attributes of the frame. When "Assert (?X[ex:discount -> "0"]) " is executed, the frame should have the only attribute: discount -> 0. 

Then how can we obtain the result: "ex:john[ex:status -> "normal" ex:discount -> "0"] "? What do you think? 

Changhai 




From: 

Christian De Sainte Marie/France/IBM@IBMFR 


To: 

"Adrian Paschke" <adrian.paschke@gmx.de> 


Cc: 

"'RIF'" <public-rif-wg@w3.org> 


Date: 

21/07/2009 16:07 


Subject: 

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


Sent by: 

public-rif-wg-request@w3.org

 

  _____  





"Adrian Paschke" <adrian.paschke@gmx.de> wrote on 21/07/2009 15:48:27:
> 
> That was exactly the intention, to demonstrate that you can simulate
> modify by a assert+retract combination. 

Then, the test case should be modified. The equivalent to: 

Forall ?X ( 
 If ?X[ex:status -> "normal" ex:discount -> "10"] 
 Then Do ( Modify(?X[ex:discount -> "0"]) 

would be (modulo the atomicity): 

Forall ?X ( 
 If ?X[ex:status -> "normal" ex:discount -> "10"] 
 Then Do ( Retract (?X[ex:discount -> "10"]) 
                 Assert (?X[ex:discount -> "0"]) 

But the questionraised by the original version of your test case remains: do we allow a frame about an object to be asserted after that object has been retracted? 

Cheers, 

Christian 

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




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 16:37:33 UTC