Existentially Quantified Variables (bNodes) in RDF-like-languages

This is an old issue.  Pat Hayes explained very nicely a year ago [1] that
RDF M&S has always had existentially-quantified variables (in the subject
role), and to take them out would be a change.  Many others (including myself
at the time) supported this position, including the RDF Core WG.  Some
agreed that's what M&S said, others simply thought existentials would
be good to have.

But I want to revisit the question more fundamentally.  What good are
existentially quantified variables in a language like RDF? [2] Why would we
possibly want them?  I no longer know a good reason.

Here are four reasons I have heard for them, and my counter-arguments.

Reason 1:  Because people often express themselves without giving URIs for
           things.  Using pronouns like "something" feels like a very natural
           and comfortable way to communicate. 

	   Response: While we may not explicitely have names for things, the
	   ability of natural language to "go meta" means you can always talk
	   about "the thing you meant when you said '...'".   So we can still
	   identify the denotations of terms used in conversations, even if no
	   explicit identification was given at the time.   

	   Alternatively, who cares.  This is a formal system, and any appeals to
	   human qualities are likely to be misleading anyway.

Reason 2:  We were getting a lot of noisy URIs in our knowledge bases.

	   Response: This isn't really a model-theory issue.  A
	   best-practices approach might be to suggest that urn:uuid's be
	   used for any identifiers which are both not meant for humans and
	   not tied to any on-the-web knowledge base.  User interfaces
	   shouldn't be showing URIs anyway, but they could hide these even
	   more.

	   Another approach is to have meta-data, with triples saying that
	   the URI "urn:uuid:57c259ca-47ed-11d6-8002-0050ba4812a6" is not
	   meant for humans, or something.   (Note that such an assertion
	   must be about the above string, not the object denoted by that
	   string.   That object may be denoted by many URIs, some of which
	   are prettier than others.)

Reason 3:  Because we can use existential variables for querying RDF.
           (Pat suggests this in [1].  It was my reason a year ago.)

           Response: I've seen a lot of RDF query languages now, and this
           approach is not being used.  In my own query language designs,
           I've found them unsatisfactory.

Reason 4:  One should be able to commit to a statement like "Someone on E-Bay
           is selling a signed copy of 'Weaving the Web'."  That statement is
           different from "Someone on E-Bay is selling the signed copy of 'Weaving
           the Web' which has the URI http://example.com/copy7".  The second
           one entails the first, of course.

	   Response: Why do you want to make the first statement?  What bad
	   thing will happen if you call it
	   <urn:uuid:57c259ca-47ed-11d6-8002-0050ba4812a6> ?

	   Are you worried that someone else will say something about
	   <urn:uuid:57c259ca-47ed-11d6-8002-0050ba4812a6>?  Like "it's
	   missing page 7?"  But they could do that anyway (with existentials)
	   by using various more-expressive ontologies, perhaps talking about
	   all the books on E-Bay, or talking about the terms in your
	   original statement.

	   When you used a URI for E-Bay, were you committing to any
           facts?  Which ones?     I think that's the real issue here.  

	   I think a URI enables a client to learn more about a thing,
	   but the use of a URI in one document cannot be taken to
	   mean that someone asserting the document believes any facts
	   outside the document.   

	   ... but then how do you know what was meant?  If I write
	   you a check for $100, how do you know if I meant $US or
	   $Canadian?  The fuzzy vision of the Semantic Web involves
	   the meaning of URIs being established by some kind of
	   consensus reality, I think.  But how does one commit to a
	   statement in such fuzzy terms?   

	   Anyway, maybe existentials will be useful as being free
	   from consensus reality issues, but I don't see how.  I want
	   to see the argument you present to a judge when you're
	   suing someone for breech-of-RDF-assertion.  Maybe it comes
	   down to the natural-language comments in the ontology.  Do
	   you need to explicitely commit to an ontology, or just use
	   terms from it.  What if two ontologies exist with the same
	   URIs?  Which one are you committing to?  I think the only
	   solid ground is to explicitely import facts (including
	   natural-language documentation) from some URI, giving a
	   secure hash of the contents if you're worried it might
	   change.   (but that's not the way RDF is being used today...) 

The reason to leave them out is that they complicate things.   

Its worth noting, too, that if you really want to make an existential
statement, you can do it in some higher-layer logic language.  Of course, it
wont be understood by as wide an audience.  But that brings us back to
original question: why would you want someone to understand it?

    -- sandro


[1] http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Apr/0014.html
[2] I don't want to get too into what a language-like-RDF might mean, so
    let's just say RDF/XML without anonymous resources, or N-Triples without
    namedNodes, and hope that gets the point across.

Received on Thursday, 4 April 2002 12:53:39 UTC