W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > January to March 2006

Re: bnodeification (rdfSemantics)

From: Pat Hayes <phayes@ihmc.us>
Date: Fri, 13 Jan 2006 13:55:22 -0600
Message-Id: <p06230902bfed9b7bca59@[10.100.0.23]>
To: Dan Connolly <connolly@w3.org>, Souripriya Das <souripriya.das@oracle.com>
Cc: Sergio Tessaris <tessaris@inf.unibz.it>, Enrico Franconi <franconi@inf.unibz.it>, Pat Hayes <phayes@ihmc.us>, Bijan Parsia <bparsia@isr.umd.edu>, public-rdf-dawg@w3.org

>On Thu, 2006-01-12 at 11:07 -0500, Souripriya Das wrote:
>>  Enrico, Sergio,
>>
>>  I have two basic questions. If you could explain very clearly (in a
>>  tutorial kind of manner), if possible, it will be very helpful.
>
>I think I'll give it a try, though
>these questions are about terminology that is somewhat ad-hoc,
>so I can't be sure my answers are correct...

Tiny quibble and comment added below.

>
>>   Also,
>>  any specific pointers relevant to these questions.
>>
>>  1) What are 'implicit existentials' and how OWL-Lite has it, but RDFS
>>  does not? [Ref: Enrico's e-mail:
>>  http://lists.w3.org/Archives/Public/public-rdf-dawg/2006JanMar/0080.html]
>
>Consider "every person has 2 arms":
>
>   :Person
>     rdfs:subClassOf [ owl:onProperty :arm; owl:cardinality 2 ].
>   :bob a :Person.
>
>the semantics of OWL allow us to conclude that bob has 2 arms,
>even though we never mentioned them before:
>
>   :bob :arm _:arm1, _:arm2.
>   _:arm1 owl:differentFrom _:arm2.
>
>_:arm1 and _:arm2 are 'implicit existentials', if I understand
>correctly.

That is my understanding also.

>
>There are no constructs like that in RDFS. You never get bnodes
>in the conclusion that weren't in the premise.

Quibble. Not exactly. You can get bnodes in conclusions that don't 
occur in the premis, for example {:a :p :b} entails {_:x :p :b}. But 
what you never get in RDFS is a case where a bnode in a conclusion 
has no corresponding term at all in the premis. Up to RDFS, 
existentials in a conclusion can always be seen as weakenings of some 
term - a bnode, IRI or literal - actually occurring in the premis. 
Not in OWL, though.

This behavior is peculiar to description-logic-style formalisms like 
OWL. If you go all the way to full first-order logic, you get the 
RDFS style back again. The "implicitness" of the OWL existentials 
arises from OWL's having built-in existential assumptions, but at the 
same time not requiring ontologies to state explicit existential 
axioms.

>
>>  2) You are using SPARQL blank nodes to specify existential variables. a)
>>  What are the conceptual similarities (and any differences) between
>>  SPARQL blank nodes (existential variables) and RDF blank nodes?
>
>Existential variables are pretty much the same in both cases, but
>in SPARQL, you can put them in the "if" part of a formula,
>which basically turns them into a universal variable; RDF has
>no "if" construct.
>
>Consider "if anybody has a wife, then they're married".
>
>That's the same as "everyone who has a wife is married".
>
>In SPARQL:
>
>CONSTRUCT { ?who a :Married }
>   WHERE { ?who wife _:somebody }.
>
>is the same as:
>
>CONSTRUCT { ?who a :Married }
>   WHERE { ?who wife ?anybody }.
>
>
>
>>   b) What
>>  are the differences between distinguished variables and existential
>>  variables? [Ref. Sergio's e-mail:
>>  http://lists.w3.org/Archives/Public/public-rdf-dawg/2006JanMar/0081.html]
>
>Distinguished variables are the ones that are, or can be,
>bound in the results of queries.
>
>You can't do
>
>  SELECT _:somebody WHERE { _:somebody a :Married }.
>
>you have to do
>
>  SELECT ?who WHERE { ?who a :Married }.
>
>There isn't any deep semantic reason for this; it's just not necessary
>to allow bnodes to be SELECTed, so we don't.
>
>The more deep semantic issue in Sergio's message is, I think, that
>SPARQL, unlike most KR query languages before it, allows bnodes
>for answer value/expressions.
>
>There's a sense in which this is not very helpful, even though
>it's correct:
>   Q: Who's the president of the U.S.?
>   A: somebody.
>Many KR systems just don't do that.

Well, but there can be KBs that have information about unidentified 
things. Suppose an intelligence Kbase has information about some bad 
guys, that Alfonso sent a message to someone in Tunisia on Tuesday, 
but we don't know who. Then surely it makes more sense to have:

Q: Who sent a message to whom on Tuesday?
A: Alfonso sent one to somebody

than to have the question produce 'no answer' just because we don't 
have an actual name for the guy in Tunisia; particularly as the 
language gives us the ability to say things like 'somebody' (i.e. to 
use bnodes as answer bindings.) At any rate, the case isn't as black 
vs. white as this simple President example might suggest.

>Considering bob and his two arms as above, if you ask:
>
>  SELECT ?arm WHERE { :bob :arm ?arm }
>
>and you include the inferred triples in the input data set,
>the answer given by some SPARQL services has two results,
>each of which binds ?arm to a bnode:
>
>   ?arm = _:arm1
>   ?arm = _:arm2
>
>This rdfSemantics issue is largely about whether those
>services are doing The Right Thing.

And there is also a sub-issue about how to ensure that answers don't 
include silly gratuitous redundancies, such as

Q: Who's the president of the US?
A: George W. Bush, and Somebody.

Pat

>
>
>>  Thanks,
>>  - Souri.
>
>--
>Dan Connolly, W3C http://www.w3.org/People/Connolly/
>D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E


-- 
---------------------------------------------------------------------
IHMC		(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32502			(850)291 0667    cell
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
Received on Friday, 13 January 2006 19:55:42 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:25 GMT