- From: Sandro Hawke <sandro@w3.org>
- Date: Thu, 01 May 2003 18:25:15 -0400
- To: uri@w3.org
- cc: Patrick.Stickler@nokia.com, GK@ninebynine.org, pat hayes <phayes@ai.uwf.edu>
I'm trying to see the difference between a name "not denoting" and a
name "having many interpretations" (as in Pat's recent mail [1]).
I've made up a new strawman URI scheme for this. I'm going to skip
the detailed definition of this URI scheme and just discuss some
examples. I think it'll make sense as we go.
[A] something-which-has:color='Red';def(color,http://example.com/color)
This is a lousy URI. Let's see why.
Like all URIs it denotes something, and we don't have to know
exactly what. Humans and software can do useful things using it as
an opaque logical constant, an opaque name.
Like most URI schemes, the something-which-has URI scheme lets us
do more than treat the URI as an opaque name. It lets us see that the
thing is red. Or, more formally, that the following RDF triple
(using "[A]" to stand for the big URI above) is true:
[A] <http://example.com/color> "Red".
But this isn't very useful for a URI. The information encoded in a
URI should, among other things, help people reach a consensus of
meaning about the URI. With this (lousy) URI, it's quite likely
people would form different ideas (if any) of what the thing was.
It's not much more informative than a UUID or tag: URI, and yet it
looks confusingly like it ought to be.
[B] <something-which-has:foaf_nick='DanC';defpre(foaf_,http://xmlns.com/foaf/0.1/)>
This is somewhat better. A person or computer which sees this URI
knows it denotes something which has a foaf:nick of 'DanC'. Many
humans will either know that means Dan Connolly or know that they
don't know who it is.
It's a better URI than it might first appear. It's far better than
one using foaf_firstName='Dan' because so many FOAF aficianados use
the freenode.net IRC network where Dan Connolly is registered as
DanC. But of course it's still kind of lousy; there may well be
parts of the world that know FOAF and think of someone else as the
thing nicknamed DanC.
[C] <something-which-has:foaf_mbox='connolly@w3.org';defpre(foaf_,http://xmlns.com/foaf/0.1/)>
This is good. FOAF defines mbox so that "there is (across time and
change) at most one individual that ever has any particular value
for foaf:mbox." Here there is little chance of confusion, AND we
have some useful additional information: the e-mail address of the
denoted thing. The FOAF comment text also makes it clear that the
thing must be the kind of thing which can have a mailbox, but it
doesn't name that class of things.
(I was hoping the FOAF ontology would give the owl:range of mbox as
foaf:Person so that a machine could infer from this URI that it
denoted a foaf:Person, but I guess FOAFers want to allow for other
things with mailboxes. That's reasonable enough.)
[D] <something-which-has:foaf_mbox='connolly@w3.org';foaf_nick='DanC';defpre(foaf_,http://xmlns.com/foaf/0.1/)>
Now this is getting interesting.
[C] was already constrained by a foaf_mbox, an
owl:InverseFunctionalProperty, on a literal string. And [D] has
the same property/value pair, so now a reasoner versed in RDF, OWL,
FOAF, and something-which-has can conclude that [C] and [D] denote
the same thing.
But the use of [D] instead of [C] tells us that the thing also has
foaf:nick "DanC". Sometimes it doesn't matter. To a
something-which-has reasoner, these two RDF graphs are logically
equivalent (they entail each other):
# graph1
<a> <b> [C].
[C] foaf:mbox "DanC".
# graph2
<a> <b> [D].
So why might you want to use [D] instead of [C]? Because sometimes
you want the extra information encoded in the URI. Some protocols
and formats have a space for a URI but not for an additional RDF
Graph of information about that thing denoted by the URI. I think
there is also a trust/security issue, as in the recent thread on
secure URIs.
I think there are some interesting directions to go next with this,
but I've made my basic point: we can have URIs that look quite
ambiguous and they still work with the RDF MT. They denote one thing,
but you can't tell by looking at them what that thing is. To go to
the extreme, you can perhaps never *really* know what thing is denoted
by a name, but this scheme makes it clear exactly which knowledge you
can glean from inspecting the name and which you need to learn from
elsewhere.
-- sandro
[1] http://lists.w3.org/Archives/Public/uri/2003Apr/0147.html
Received on Thursday, 1 May 2003 18:25:36 UTC