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

RE: [Core][PRD] Definition of safeness

From: Paul Vincent <pvincent@tibco.com>
Date: Tue, 16 Jun 2009 07:50:49 -0700
Message-ID: <A92210407BA7004199621BE5F0AC5D8B011A4E9F@NA-PA-VBE04.na.tibco.com>
To: "Sandro Hawke" <sandro@w3.org>, "Christian De Sainte Marie" <csma@fr.ibm.com>
Cc: "RIF" <public-rif-wg@w3.org>
Hi Sandro: 
Generally*, a ruleVariable can bind to:

- zero entities:
-- the rule is invalid for firing**

- one entity: 
-- this is the case where a rule variable is really treated as a simple
(singleton) variable that can only have one value; for example from a
parameter to the rule service; 
-- also the case when there is only 1 member of the class specifying the
ruleVariable in memory

- two or more entities:
-- this is the case where there are >1 members of the Class specifying
the ruleVariable in memory

In the case where there is a singleton value, but the value is defined
as "null", then this is normally considered to be a "value".

>From the above, the statement 
> "Intuitively, safeness of rules guarantees that when performing
> reasoning in a forward-chaining manner, it is possible to find
bindings
> for all the variables in the rule so that the condition can be
> evaluated. "
...seems to be reasonable, as it covers cases of zero, 1 or more
bindings. 

Your alternative
> "A rule is safe if it is possible to find bindings for all the
> variables in the rule such that the condition can be evaluated." 
...seems cleaner as I can't think how the safeness would be affected for
backward chaining rather than forward chaining: it might be that this
constraint is "just in case"...

Notes:
* as in "I don't know nor conceive of any counterexamples"
** excluding the case of disjunction / "or" in the rule condition:
disjunct parts of a rule should really be viewed as separate rules

PS: its not a naive question IMHO.

Paul Vincent 
+1 650 206 2493 / mobile +44 781 493 7229 

> -----Original Message-----
> From: public-rif-wg-request@w3.org
[mailto:public-rif-wg-request@w3.org]
> On Behalf Of Sandro Hawke
> Sent: 16 June 2009 14:44
> To: Christian De Sainte Marie
> Cc: RIF
> Subject: Re: [Core][PRD] Definition of safeness
> 
> 
> I have an naive question about our effort to define of safeness.
> 
> We say, "Intuitively, safeness of rules guarantees that when
performing
> reasoning in a forward-chaining manner, it is possible to find
bindings
> for all the variables in the rule so that the condition can be
> evaluated. "
> 
> Is there any variation among PR systems, where there are rules for
> which
> some systems can find such bindings and others cannot?  If not, is it
> likely PR systems will emerge which will differ from the crowd about
> which rules are safe?  Since I haven't heard anyone argue about our
> definition of safeness in these terms (eg "this is safe for clips but
> not jess"), I'm guessing the answer to both is No.
> 
> In that case, can't our single, normative definition one sentence,
like:
> "A rule is safe if it is possible to find bindings for all the
> variables
> in the rule such that the condition can be evaluated."  That should
> probably be expanded a little (including explaining binding patterns
> for
> externals), but I'm not seeing why we need to standardize what amount
> to
> an algorithm for determining this case.  By all means, we could
provide
> one or more helpful, non-normative guides to how to determine if
> bindings are findable, but if there's no actual disagreement likely
> among implementors, I don't see why we're trying to standardize it.
> 
>    -- Sandro
Received on Tuesday, 16 June 2009 14:51:34 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 16 June 2009 14:51:35 GMT