W3C home > Mailing lists > Public > public-rif-wg@w3.org > February 2009

[PRD] Semantic Problems

From: Gary Hallmark <gary.hallmark@oracle.com>
Date: Mon, 09 Feb 2009 21:05:56 -0800
Message-ID: <49910B34.1070205@oracle.com>
To: RIF WG <public-rif-wg@w3.org>

I have 2 rulesets below that should be equivalent but are not, according 
to our semantics:

Ruleset1:
_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]))

Ruleset2:
_o[_p->1]
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]))

The rule in Ruleset1 will fire only once because its rule instance has 
no variables.  On the other hand, the rule in Ruleset2 will fire twice.

It also strikes me that Do( (?x _o[_p->?x]) is hard to define if _p is 
multi-valued.
Received on Tuesday, 10 February 2009 05:06:54 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:07:53 UTC