- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Sun, 30 Nov 2008 00:05:03 -0500
- To: Chris Welty <cawelty@gmail.com>
- Cc: Jos de Bruijn <debruijn@inf.unibz.it>, RIF WG <public-rif-wg@w3.org>
On Sat, 29 Nov 2008 22:39:24 -0500 Chris Welty <cawelty@gmail.com> wrote: > > > Thanks, Jos. > > This gets me wondering. Clearly the converse of Jos' test case also holds, > e.g. that: > > Document( > Prefix(ex http://example.com/example#) > Prefix(pred http://www.w3.org/2007/rif-builtin-predicate#) > Group( > ex:p(ex:a) > Forall ?x (q(?x) :- And (ex:p(?x) External(pred:isInteger(ex:a)))))) > > |= (or q(ex:a) External(pred:isNotInteger(ex:a))) Why is this outside the language? The problem here is that without any kind of closed-world assumption or a unique name assumption the above leads to a disjunction, which cannot be taken apart, unlike in logic programming. So, with negative guards we are introducing negation through the back door, but do not inject the standard antidotes to keep disjunction away. michael
Received on Sunday, 30 November 2008 05:05:51 UTC