See also: IRC log
http://lists.w3.org/Archives/Public/public-rif-wg/2009Feb/0054.html
Do( (?x _o[_p->?x])
Do( (?x _o[_p=?x] ) Assert(_o[_p=(?x * 10)]))
<PVincent> Qu: can we have multi-dimension values for slot values eg (index, value) ?
Do( (?x _o[_p=?x] ) Modify(_o[_p->(?x * 10)]))
_o[_p->1]
if _o[_p->1] or _o[_p->2] then Do( (?x _o[_p->?x]) Retract(_o[_p->?x]) Assert(_o[_p->?x+1]))
<cke> we need a resolution on modify
if _o[_p->?y] and (?y = 1 or ?y = 2) then Do( (?x _o[_p->?x])
Retract(_o[_p->?x]) Assert(_o[_p->?x+1]))
<cke> repeatability controls if rule2 will fired once.
forall ?y, if _o[_p->?y] and (?y = 1 or ?y = 2) then Do( (?x _o[_p->?x]) Retract(_o[_p->?x]) Assert(_o[_p->?x+1]))
_o[_p->1]
_o[_p->2]
<PVincent> Rule will fire a 2nd time as o.p has changed, surely, and a condition now becomes valid?
<PVincent> PS: Always best to consider "or"s as separate rules IMHO...
<Gary> we have to check if these rules are Core-Safe
@Gary: yes, they are, because of _o[_p->?y] in th econdition
<Gary> yes but there are some funny conditions about disjunctions
if _o[_p->1] or _o[_p->2] then Do( (?x _o[_p->?x]) Assert(_o[_p->?x+1]))
forall ?y, if _o[_p->?y] and (?y = 1 or ?y = 2) then Do( (?x _o[_p->?x]) Assert(_o[_p->?x+1]))
_o[_p->1]
<PVincent> if _o[_p->1] or _o[_p->2] then Do( (?x _o[_p->?x]) Retract(_o[_p->?x]) Assert(_o[_p->?x+1])) --> isnt the action here doing the match (ie for all...) ?
_o[_p->1] _o[_p->2]
<PVincent> Isn't this a boundary case anyway, covering Core --> PRD mappings, vs the usual case of vendorPR --> PRD --> vendorPR ?
<PVincent> Garys proposal: use metadata to mark a rulevariable?
<cke> if we had to use metadata, I would put them in rules (not in variables)
_o[_x->1]
if ?o[_x->1] then Do(Retract(?o[_x->1]) Assert(?o[_x->1]))
<PVincent> for o.x if o.x=1 then o.x=1 ? Another boundary case?
<PVincent> ... so this is a problem for non-modify cases...
From Feb3: <Gary> if Modify(obj[slot->value]) means the same as Do(Retract(obj[slot->*]) Assert(obj[slot->value])) then I am in favor of Modify
<cke> this looks good
<PVincent> +1
<cke> +1
<Gary> +1
PROPOSED: add a Modify(frame), with the sematics that Modify(obj[slot->value]) means the same as Do(Retract(obj[slot->*]) Assert(obj[slot->value]))
<cke> +1
RESOLUTION: add a Modify(frame), with the sematics that Modify(obj[slot->value]) means the same as Do(Retract(obj[slot->*]) Assert(obj[slot->value]))
<PVincent> +1
<Gary> +1
This is scribe.perl Revision: 1.133 of Date: 2008/01/18 18:48:51 Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/ Guessing input format: RRSAgent_Text_Format (score 1.00) No ScribeNick specified. Guessing ScribeNick: csma Inferring Scribes: csma WARNING: No "Topic:" lines found. Default Present: Gary, csma, cke, [IPcaller] Present: Gary csma cke [IPcaller] WARNING: No meeting title found! You should specify the meeting title like this: <dbooth> Meeting: Weekly Baking Club Meeting WARNING: No meeting chair found! You should specify the meeting chair like this: <dbooth> Chair: dbooth Got date from IRC log name: 10 Feb 2009 Guessing minutes URL: http://www.w3.org/2009/02/10-rif-prd-minutes.html People with action items: WARNING: Input appears to use implicit continuation lines. You may need the "-implicitContinuations" option. WARNING: No "Topic: ..." lines found! Resulting HTML may have an empty (invalid) <ol>...</ol>. Explanation: "Topic: ..." lines are used to indicate the start of new discussion topics or agenda items, such as: <dbooth> Topic: Review of Amy's report[End of scribe.perl diagnostic output]