W3C home > Mailing lists > Public > www-rdf-logic@w3.org > October 2000

Re: names, URIs and ontologies

From: pat hayes <phayes@ai.uwf.edu>
Date: Tue, 31 Oct 2000 12:06:45 -0600
Message-Id: <v0421010cb623ac3ff5ea@[]>
To: Lynn Andrea Stein <las@ai.mit.edu>
Cc: www-rdf-logic@w3.org


>I must be missing something here.  I understand your concern to be:
>PJH> Allowing public names seems to me to be a no-brainer.
>Agreed, and I also understand
>Pierre-Antoine CHAMPIN writes:
>PAC> URIs are actually intended to be public names :
>I don't see the problem.

The problem is that (with my understanding of the intended logic of 
URI's, which may be a faulty understanding: if so I welcome 
correction) names prefixed by URI's are *not* public in the sense I 
was trying to explain. Perhaps 'public' was a poor choice of 
terminology: of course URIs are public in the sense that everyone is 
supposed to know and use them, I understand that. Perhaps 'shared 
name' or 'common name' would be a better term. I will use the 
familiar but loaded term 'proper name' from now on.

When you or I use a proper name like 'Boston' in everyday life, we 
rely on the form of the name itself to provide the necessary 
identification between one usage and another. The 'scope' (speaking 
loosely, but with the intention of making it tighter) of the name 
extends over a community, so that whenever anyone uses the name 
everyone understands it to mean the same thing without further 
explanation. Of course there may be misunderstandings, but the 
default assumption is that different tokens of the same name denote 
the same thing. That is what proper names are for; without that 
assumption, they play no real logical role in a language, and in fact 
can be eliminated without changing the expressive power of the 
language. Logic, right now, does not use proper names, but I think 
that a web logic must (and can) face up to the need to do so.

>In fact, the stuff on the left side of the # is the "public" portion
>of the name (perhaps better called global, though this means something
>slightly different) and the stuff on the right hand side of the # is

Precisely. But (to make my point once again) what is the intended 
logical role of that stuff on the left hand side? If it is merely a 
locator, then I have no problem with it.  In that case it is the part 
on the right hand side which constitutes the actual name: the stuff 
on the left hand side tells you where that particular token of that 
name was found.  But if it is (logically) *part of the name itself* 
(as was my impression from the discussion at the DAML kick-off), then 
it acts as a kind of universal forcing function which gurantees that 
it is logically impossible to use the same name on two different web 
locations. With this understanding of the logical force of the URI 
prefix, it is literally impossible for you and I (for example) to use 
the same name for something. You may call it "Boston" and I may also 
call it "Boston", but unless we place our names on the same webpage, 
we might as well be calling it respectively "foo" and "mickey mouse"; 
our mutual usage is rendered logically invisible by the distinctness 
of our URIs.

>Now, at any one point in time there is at most one resolution to a
>global name (i.e., at most one value returned by a get on that URI).
>In addition, the resource addressed by that URI (if it exists) is
>responsible for providing (at most one) value for any local names
>using that global name as a prefix.

Notice you are talking here about 'value', as though these things 
were identifiers in a programming language. Tim Berners-Lee makes a 
similar analogy in http://www.w3.org/DesignIssues/Webize.html, and 
even quotes Dijsktra. But names in a logic are NOT like identifiers 
in a programming language, and the reason why they are not bears 
exactly on this issue. Identifiers are names of things *in the 
computer*; the process of evaluating them is supposed to take one to 
the place in memory where they thing they denote is stored (I know 
this is an oversimplification, but it works if one is sufficiently 
blurry about "place in memory".) URIs and namespaces are a great idea 
for extending this notion to the web: they are a webized kind of 
identifier, a route map to the very place where you can *find* the 
thing. But names in an ontology often - usually - do not denote 
things inside computers. Boston is not stored somewhere on a disc 
drive, and neither is Ghengis Kahn or my grandmother's pet cat or the 
element sodium. Ontologies are about THINGS, and most things in 
heaven and earth are not found on the web and never will be. They may 
be mentioned on the web, to be sure; but they are mentioned in many 
places on the web, and if we are logically forced to choose one of 
the many tokens as the unique one we are using to denote that thing, 
and if our logic insists that every distinct token is a logically 
distinct name, then we have made more trouble for ourselves than we 
really needed to.

>So local names are, as you say, existentially quantified within a
>page.  Specifically, they are existentially quantified within the page
>named by the local name's global URI prefix.  The are not, in general,
>existentially quantified within the REFERRING page.  (Of course, a
>local reference within a page may omit any global URI prefix, but then
>it is a local reference within the containing and hence also scoping

Quite. So, since local names are essentially only quantified 
variables, they may be locally replaced by any other symbol without 
change of meaning (with the usual caveats about accidentally using a 
name twice, etc.). So the fact the Boston Globe website refers to 
"Boston" has literally no meaning at all, in this way of 
understanding web logic. That name "Boston" is just a gensym: it 
could be replaced by, say, G234098267, and the Boston Globe website 
would have literally the same meaning as it has now. Is that even 
remotely plausible? Because that is a *logical consequence* of the 
assumption that local occurrences of names are locally quantified.

The tragedy of taking this route is that it misses a wonderful 
opportunity which we have here of codifying a genuinely new idea. 
Think what happens in ordinary life when you use a name and I 
understand what you are saying. That kind of communication amounts to 
an agreement to put an existential claim in what is often called the 
'common ground' of shared belief which underlies all natural 
conversation and dialog. You say that Joe is tall; I have no idea who 
Joe is (yet), but I believe you: in effect I have accepted a mutual 
belief that something exists called "Joe" (and he is tall) .  What is 
the scope of this quantifier? The only reasonable answer is that it 
has a *social* scope: it encompasses both our systems of belief. We 
have agreed to use a shared namespace, one might say. These mutually 
accepted systems of names amount to a kind of social web of 
quantifications whose scopes intersect and bind our beliefs together, 
and when this 'existential web' (if I can coin another phrase) gets 
large and richly  enough connected, it can be the defining 
characteristic of an entire community.  The W3eb is surely the 
vehicle through which this kind of process can be taken in new ways, 
creating new kinds of community. But if our logic cannot sanction any 
kind of shared namespace, then it will forever be unable to take part 
in this kind of activity, and forever unable to understand it.

URIs have a scope which is the entire Web, as global as it can 
possibly be. Local names are restricted in scope to a single 
location. (Tim is thinking about even smaller 'scopes' where one 
dives deeper into structured web pages.) Neither of these extremes is 
a proper basis for analysing a 'common ground'.

>Global names are not existentially quantified at all; multiple
>references (on multiple pages) to the same global URI refer to the
>same resource.

Actually I think it is more useful to say that they are quantified 
but the scope of the quantifier is the entire web. If we allow social 
quantifiers, then all names can be thought of (logically) as Skolem 
constants, and the differences between them arise from the various 
social scopes of their existential quantifiers.

>Public is, as noted above, somewhat different from global.  Your use
>of the phrase public indicates concern for the social conventions
>surrounding usage of names.  But the same holds true for URIs.  For
>example, there's a name that is socially constrained to be the URI for
>the RDF M&S document.  Now, I haven't lately done an http GET on that
>URI to determine that M&S is still there, but there's one heck of a
>social community that's build around the presumption that that URI
>will continue to be a reasonable public name for M&S.  So I'd say
>URIs are doing just what you want Boston and other public names to
>do.  Of course, there's the minor issue of who gets to decide how to
>spell the public names :0)

That is a minor issue, but one that is less minor is, who decides 
which of the millions of tokens of each name on the web is the One 
True Name?
I think that what I am urging can be phrased as the idea that 
namespaces should be allowed to extend across a larger region of the 
web than that indicated by a single URL (all the URI's I have seen 
are in fact URLs, though I am assured that there could be other 
kinds.). In http://www.w3.org/DesignIssues/Webize.html, Tim seems to 
be  focussing on the issue of 'webizing' in the sense of making sure 
that when c uses "foo" (in a purely private sense) and d also happens 
to use "foo" in a similarly private way, that everyone else doesnt 
get these two private uses confused with each other. Of course this 
needs to be done; but (my point is) we should also allow for the 
possibility that  both c and d were using "foo" not in purely private 
ways, but were in fact intending the name to have a public meaning 
which could be read and understood by anyone (or anyone in a certain 
community, or sharing certain assumptions), and our logic should also 
admit this possibility (since this is in fact the most usual case, 
and one without which human discourse would in practice be 

Maybe the 'namespace' idea is already general-purpose enough to allow 
for this kind of wider usage of names; if so, my concerns have 
already been addressed (I welcome any corrections or pointers to 
where this issue is discussed). Certainly some of the responses to my 
earlier message:

from  Pierre-Antoine CHAMPIN <champin@bat710.univ-lyon1.fr>
>The ideal URI for boston would be
>  city:/USA/Massachusets/Boston
>It assumes that the "city:" scheme is commonly agreed on,
>but any kind of public name has to do that agreement assumption.
>....The problem you raise doesn't come, IMO, from URIs themselves -- 
>it is easy to imagine new kinds of URIs -- but from the fact that 
>URI schemes do not exist yet to describe cities or persons, and that 
>web logics need them already.
>Why not just declare city as a namespaceprefix? You can have as many
>as you want (commonly agreed on or not) and scoped just as you want.)

seem to indicate this. If so, then I am sorry to have made so much 
fuss over nothing; but in this case (1)  DAML needs to worry a bit 
more about the logical role of namespaces  and (2) we have to provide 
a mechanism which allows namespaces to emerge from shared use, rather 
than be legislated. For example, maybe someone could 'publish' a 
namespace and others 'join' it (?? I am making this up and really 
have no idea what this would mean in practice... comments welcome.)

Pat Hayes

PS. Let me sketch a scenario to illustrate the thing I have in mind. 
Suppose a content-scraper uses a simple NL parser to try to get as 
much out of the plaintext paragraphs it finds in an HTML page at 
http://www.bostonishstuff.com. It manages to discover that something 
called "Boston" has a thing called "Boston Common" which has five 
sides. What is the best way for this to be represented in DAML? 
Should it say that the thing called 
http://www.bostonishstuff.com#BostonCommon has five sides? Or should 
it assume that there is a thing *widely known* (in some community) by 
the name "Boston Common" which has five sides? And now suppose that 
the proprietors of http://www.bostonishstuff.com decide to mark 
themselves up in DAML, and want to tell the world that they are using 
the name "Boston" not in a private sense, but in the sense most 
everyone else uses it; how can they do that? How can they project 
their existential quantifier into some common ground?

IHMC					(850)434 8903   home
40 South Alcaniz St.			(850)202 4416   office
Pensacola,  FL 32501			(850)202 4440   fax
Received on Tuesday, 31 October 2000 13:03:55 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:37 GMT