- From: Adrian Paschke <adrian.paschke@gmx.de>
- Date: Tue, 21 Jul 2009 18:36:51 +0200
- To: "'Changhai Ke'" <changhai.ke@fr.ibm.com>, "'Christian De Sainte Marie'" <csma@fr.ibm.com>
- Cc: "'RIF'" <public-rif-wg@w3.org>, <public-rif-wg-request@w3.org>
- Message-ID: <004201ca0a21$737cd5c0$5a768140$@paschke@gmx.de>
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