Re: ISSUE-3: REPORTED: Lack of anonymous individuals

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