RE: [Core][PRD] Definition of safeness

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 UTC