- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Thu, 8 Nov 2007 17:31:14 +0000
- To: "Boris Motik" <boris.motik@comlab.ox.ac.uk>
- Cc: <conrad.bock@nist.gov>, "'Jim Hendler'" <hendler@cs.rpi.edu>, "'OWL Working Group WG'" <public-owl-wg@w3.org>
On 8 Nov 2007, at 17:02, Boris Motik wrote: > Hello, > > Anonymous individuals really are existentials, not just "unknown > names". In fact, the anonymous individuals are exactly like bnodes > in RDF. [snip] Conrad Bock wrote: [snip] > So anonymous individuals translate to existentials? I thought > anonymnous just meant "has no name". Then O2 would only follow > from O1 > if sameAs(Mary, _:1). [snip] It's a surprise, isn't it? I find it to be a surprise for lots and lots of people. I sometimes I feel I spend half my time explaining this point and the various (usually undesirable) consequences. See the recent threads: http://lists.w3.org/Archives/Public/public-owl-dev/2007OctDec/0001.html http://www.w3.org/mid/470201B6.6030809@talis.com (I think Reto is a bit confused about the "existential" part, i.e., does a Bnode require (at least one) denotation in an interpration and the "variable", i.e., *plural* part of existential variables. Existentially quantified variables can, loosely speaking, get multiple bindings in any interpretation. So, loosely speaking, they are more work! ;)) I gave some equivalences in: http://lists.w3.org/Archives/Public/public-owl-dev/2007OctDec/0010.html For example, under the RDF semantics document reading: (1) s p _:x. Is syntactic sugar for: (2) s rdf:type [a owl:Restriction; owl:onProperty p; owl:someValuesFrom owl:Thing] If we can skolemize them, not only do I think the semantics would accord with most people's expectations, but it will make, e.g., SPARQL/OWL much much easier to be compatible with SPARQL/RDF. In fact, it is my intent that the SPARQL/OWL spec I write will treat BNodes as skolem constants so that I can sensibly (and practically) return them in answers: http://code.google.com/p/owl1-1/wiki/SparqlOwl People might find my SPARQL tutorial slides helpful: http://www.cs.man.ac.uk/~bparsia/2006/row-tutorial/ particularly around slide 32 or so. So, BNodes as variables introduce, IMHO, serious user issues as well as decidability and implementation issues. Perhaps it's time to start a wiki page on this issue? And test cases? Do we have test case infrastructure? So, for example, if we read BNodes as variables, thent (1) is equivalent to (2) (assuming no other uses of _:x in the graph). If we read them as "anonymous" or "local" constants, then (1) still entails (2), but not the reverse. Cheers, Bijan.
Received on Thursday, 8 November 2007 17:30:03 UTC