W3C home > Mailing lists > Public > public-rif-wg@w3.org > January 2008

Re: model theory of error

From: Michael Kifer <kifer@cs.sunysb.edu>
Date: Mon, 07 Jan 2008 12:22:03 -0500
To: Dave Reynolds <der@hplb.hpl.hp.com>
Cc: RIF WG <public-rif-wg@w3.org>
Message-ID: <17665.1199726523@cs.sunysb.edu>


> Michael Kifer wrote:
> 
> > 5. For predicates, we have two options.
> >    a. The simplest option is to say that a predicate, p(a,b,c,...), is false if
> >       any of its arguments evaluates to _|_ in the interpretation.
> > 
> >    b. This option introduces a new truth value, called E (error) such that 
> >       ~E = E, E/\F=F, E/\T=E, E\/F=E, E\/T=T. Then we can say that
> >       p(a,b,c,...) has truth value E if at least of of the args is _|_.
> > 
> >   The advantage of option (b) over option (a) is that we have an explicit
> >   representation for errors. 
> >   The disadvantage is that it is much more complicated. Many results need
> >   to be ported to account for this new truth value, and I did not check
> >   this carefully. Quite possible that this idea breaks somewhere.
> > 
> >   I think option (b) is too much work for very little gain.
> > 
> > 
> > Comments? (esp. if anyone can see whether option (a) breaks somewhere)
> 
> As Axel has already pointed out (b) seems to be the same as the SPARQL 
> approach. So adopting this would simplify the life of implementers who 
> want to support both (like us) and hence is preferable.

As I pointed out in response to Axel, SPARQL has no model theory, and in
any case, it is a very limited language. For us to go for (a) means that we
have to check a lot of things and verify that the major results for a
number of dialects (WFS, SMS, etc.) still hold. Does anybody have time/is
able to do this carefully?

On the other hand, (b) makes the treatment compatible with SWRL, which
also does not have weird stuff like E.

> How would (a) behave in a future dialect extension with negation?
> Using (b) then it is clear that both p(a,...) and not p(a, ...) yield E 
> if any of the argument evaluates to _|_.

If p(_|_) is false then, of course, not p(_|_) is true.


	--michael  


> Dave
> -- 
> Hewlett-Packard Limited
> Registered Office: Cain Road, Bracknell, Berks RG12 1HN
> Registered No: 690597 England
> 
Received on Monday, 7 January 2008 17:26:01 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:33:44 GMT