- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Sun, 30 Nov 2008 23:40:25 -0500
- To: Chris Welty <cawelty@gmail.com>
- Cc: Jos de Bruijn <debruijn@inf.unibz.it>, RIF WG <public-rif-wg@w3.org>
On Sun, 30 Nov 2008 22:23:57 -0500 Chris Welty <cawelty@gmail.com> wrote: > > Michael Kifer wrote: > > > > 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? > > By outside the language I mean that you cannot say (or q(ex:a) > External(pred:isNotInteger(ex:a))) in BLD, it is syntactically invalid. The > whole point of Jos' test cases was being able to entail something that can't be > expressed in the language (in this case disjunction in the conclusion). This is not outside of the language. It is a condition formula and a completely kosher goal. Such goals are normal not only in 1-order logic, but also in logic programming. > > 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. > > The problem I'm talking about is that the language has entailments that fall > outside its expressivity. It is outside of the expressivity only if we add negation as we did (through the back door). > > So, with negative guards we are introducing negation through the back door, but > > do not inject the standard antidotes to keep disjunction away. > > I'm suggesting negative guards don't create a new problem here. We already know > implication is negation + disjunction, so even without negative guards you can > write rules whose entailments are outside the language, including disjunction in > the conclusion. No you cannot! If you have pure Horn clauses then disjunctive goals are NOT outside of the expressivity of the language. > So, why not just take the usual route in such cases and say that anything > outside the expressiveness of the language is not entailed (or not > necessarily entailed, I guess). See above. michael
Received on Monday, 1 December 2008 04:41:06 UTC