W3C home > Mailing lists > Public > www-archive@w3.org > May 2003

RE: Resources and URIs

From: <Patrick.Stickler@nokia.com>
Date: Wed, 7 May 2003 11:05:24 +0300
Message-ID: <A03E60B17132A84F9B4BB5EEDE57957B5FBBB6@trebe006.europe.nokia.com>
To: <phayes@ai.uwf.edu>
Cc: <Graham.Klyne@MIMEsweeper.com>, <sandro@w3.org>

Firstly, it may be that you are reading more meaning into my use of the word 'bound' than I intend.

OK, maybe I am.  I would LOVE someone to tell me what they think that word means in this context. If you recall, that is where we came in, as it were. Ive been interpreting it to mean something that seems to go along with 'denotes' in MT semantics, but if it means something else then I'm all ears.

It is best to use that term according to MT semantics. However, that said, and admitting that I am probably
u sing it incorrectly insofar as MT semantics is concerned, I've myself been using it to mean "refer to", or "indicate",
or "place focus on", not as any kind of magical portal by which one can actually touch the thing.  
If the MT semantic meaning of 'denote' does not correspond to how I've been using it, please slap me now. 


Secondly, I don't believe that a SW agent can "get to" a resource via its URI (HTTP allows it to obtain a representation of the resource,

but that is as close as it can get).

I'm happy with that interpretation of what a URi is 'bound to', yes. BUt that isn't what you or Roy Fielding have been saying up to now.

I will concede that that is probably true, insofar as my use of language is concerned, but it has not been
intentional. I.e., if I have been saying things that conflict with the above, it was accidental and due to 
misuse of terms with regards to their MT semantic meaning.
So, how would you propose I say what a URI does, with regards to a resource, if it only "refers to", "indicates",
places focus on" that resource but does not either (a) provide access to all truth about that resource nor
(b) access to that resource itself?
Does the URI "denote" the resource? Does it "identify" the resource? Is it "bound to" the resource? What
terminology would you prefer to capture this? Tell me, and I'll use it.


Thirdly, even if a person can "get to" a resource via its URI, that does *not* mean that he/she can necessarily see all

its properties simply by examining it. You can "get to" me via my name.

NO, I canNOT 'get to' you via your name: that is the point. Names are not the same as dereference-able pointers.

Argh. Sorry. I actually meant to type "You *can't* get to me via my name"... 

This idea that you present, that "denotation" of a URI includes everything known/said about the indicated resource,

just seems unworkable in practice (and I'm a very practical nuts-n-bolts guy).

Of course it is unworkable in practice. It is unworkable, period. Which is why I would rather you didn't keep on asserting things that imply it.


Fair enough. At least it appears that we are in agreement about this particular point, even if I'm simply
mucking things up by using the wrong terms to express it.

Just because I can use a name to refer to something does *not* mean I know everything about that thing. Likewise,

just because two SW agents may use the same URI to refer to the same resource does *not* mean that either of

those SW agents know everything about that resource. They may know different, complimentary (or even contradictory)

things about that resource. But just because one can refer to something consistently does not entail every bit of

truth that can be known about that resource.


I certainly hope I am misunderstanding you on this point.

I think you are misunderstanding yourself. This is what it means to say that there is a unique binding of the name to a single referent in all interpretations.

 Well, I don't think I'm misunderstanding myself ;-)
 I  think perhaps that one  point of confusion is clarifying what "knowledge" and "truth" about the thing we are
t alking about.
If you are talking about what is expressed in a particular RDF graph about that thing, then yes, a URI denoting  that
t hing provides access to all of that knowledge and all truth that can be inferred from that knowledge. Fine.
But I am talking about the knowledge/truth about that thing in the *real* world. Thus, a URI denoting that thing
does *not* necessarily provide access to all knowledge and truth about that thing in the real world. 
Perhaps we're just talking past each other because we have different scopes of focus.

 It means you have access to *all* the information about it.  Its like a body delivered to a coroner: you can take it apart, find out all about it.


No. I'm thinking more along the lines of an agreed identifier for the thing. E.g. your employer, the police, the FBI, the tax bureau, etc.

may all be able to say various things about you using your SSN to refer to you, and in each case, it is presumed that a given SSN

always refers to the same person, so that when one syndicates what those various agencies know about you, you likely get a

larger body of knowledge than any one agency has independently -- but that does *not* mean that you suddenly know everything

that can possibly be known about you.

This way of talking begs the question. What those various sources are agreeing about involves my SS number. They are agreeing, in fact, to use my SS number in a consistent way.  Everything they do depends only on my SS number. If there were two of me, then as long as we Pats replied consistently to all communications addressed to either of us, then everything would work smoothly right up to the point where they needed to actually clap one of me in jail for tax evasion, say. The only place where one needs to assume uniqueness of denotation is when you actually need to perform some operations on the (single) thing denoted: and even then, if you want to get strict about it, it can STILL be ambiguous exactly which of several possible ways of interpreting what a 'person' is, is being used to perform the operations. (Sounds silly, but there are all kinds of legal distinctions that one gets into in borderline cases.)

Right. Exactly. And here is the crux of my arguments.
It's about use of the SW by humans, not by SW agents. I agree that SW agents themselves cannot tell
if such overloading occurs. Perhaps it is as you say, that it is vacuous to say that SW agents must presume
no overloading occurs since they wouldn't be able to tell if it did anyway. Fair enough.
But *if* overloading occurs, inferences made by SW agents are immediately suspect -- insofar as they are
taken to reflect the *real world*. They are completely valid insofar as the RDF graph is concerned. But if
a given URI in fact refers to two different things, because humans have used it to refer to two different things
in the real world, then all hell breaks loose.
When Peter and you and others say that on the SW URIs need not be required to refer to the same thing
consistently, globally, by everyone using that URI, it simply seems silly to me from the viewpoint of 
practicality. If different folks use the same URI to refer to different things in the real world (such as using
the same URI to refer both to an organization and a web page) then the value of all statements including
those URIs is greatly if not completely diminished, since one will not be able to reliably determine what
thoes statements, or inferences based on those and other statements, say about the real world!
That's my point.
It may be true that the RDF MT itself allows for (or even requires) that it be possible for a given URI to
refer to different things in the real world, in different interpretations, but for the SW to succeed, IMO,
it must reflect as close as we can possible get to an idealized single global RDF graph where usage
of URIs to refer to things in the real world is consistent. Otherwise, the SW cannot be an effective
vehicle for the global interchange of knowledge between arbitrary systems.
Yes, such a idealized goal is impossible to achieve, and there will be noise and error and such in
the SW, but that goal as such should IMO be clearly expressed in the definition of the SW architecture. 


I'll make up a SS number: 567-88-9910  . Im sure this is someone's SS number, and you and I can have a meaningful conversation about the person with that SS number. But you can take all the information in both our heads and it will have interpretations in which that number denotes almost anyone: that's another way of saying that we don't know who it denotes. We DONT need to bind it to anything in order to communicate using it. In fact, every time you say "I don't know who that is", you are *advertising* your inability to pin down a unique referent for that name.

If you are saying that we are using that SSN to talk about a particular person, but we don't actually know if
that SSN actually belongs to that person, then I would consider that a pretty stupid thing to do -- in the context
of the SW. Again, and this seems to be a point you are missing, I'm talking about saying things about things
that can be distributed globally and syndicated by arbitrary systems yet maintain (ideally, presumably, and
hopefully) a consistent reflection of the real world.
If I start making statements about <ssn:567-88-9910> to describe someone whom I know (or suspect) is not
identified by that SSN, and publish those statements on the SW, then I am behaving *very* badly and may
very well be guilty of liebel against the actual person having that SSN.
If I'm just using that SSN in my own little system that is closed off from the world, then who the hell cares.
We're talking about a solution for the global interchange of knowlege between arbitrary systems and for
that to happen reliably and usefully, everyone has to (at least try to and presume to) use the same
logical constants, having consistent bindings to things in the real world (where the knowledge/truth
about those things on the SW will likely be a subset of (and even in conflict with) the complete
knowledge/truth of that thing in the real world.

 Claiming uniqueness of reference is a very strong claim to make.  




Surely there is a difference.


Noone can *claim* that every time a given URI is used by anyone else on the SW that it will refer to

the very same thing. That's silly.


BUT, it must be at least *presumed* that every time a given URI is used by anyone on the SW that

it refers to the same thing

I fail to see what the difference amounts to.  If you and I are presuming that something is true, aren't we implicitly claiming that it is? (Unless of course we are indulging in hypothetical reasoning, or telling a story known to be a fiction, or something like that, but the SW isn't that advanced yet.) Seems to me that a presumption is just an unspoken claim. Claiming or presuming, you are treating it as being true, right?

Not quite. Claiming something is true reflects the expectation that no additional knowledge will ever
arise to disprove it. Presuming something is true reflects the allowance that additional knowledge
*might* arise to disprove it, but until/unless it does, we'll treat it as true and valid.
It's a subtle difference, but I think an important one, and in fact I think is at the heart of the distinction
between scientific theory and regious faith. Religious faith *claims* something is true and may
continue to claim it is true even in the face of evidence to the contrary. Adherence to a scientific
theory *presumes* something is true so long as all the evidence to date agrees with it, but if new evidence
surfaces that contradicts the theory, then that theory must be revised or replaced.
Human users of the SW should presume that everyone is using URIs consistently to refer to the
same things in the real world (though using them to express different subsets of truth or even different
beliefs about those things) and that the value of the SW is that *arbitrary* parties can interchange
knowledge to expand their knowledge (or at least view) of the real world according to the syndication of 
other persons knowledge and beliefs. In order for that to be possible, the logical constants that all
parties present on the SW use, the URIs, must be used consistently.
Thus, users of the SW have a presumption about consistency of the claims made via the SW ;-)
Here's the central theme of all my recent posts regarding these issues:
     The value of the SW will be directly proportional to the consistent use of URIs by its participants.
    The normative specifications of the SW architecture and definitions of best practices should identify
    as central and strongly promote a concerted effort by all users of the SW to achive the most consistent 
    use of URIs as possible. To exchange knowledge on the SW is to participate in the consistent use of 
    a global vocabulary of logical constants, expressed as URIs.
     "Consistent use" meaning that the URI refers to the same thing for all parties using it, even if
    different parties possess differing subsets of knowledge or differing beliefs about that thing,
    and even if different parties possess conflicting subsets of knowledge or conflicting beliefs
    about that thing. The existence of a consistent point of reference is paramount to even
    the definitions of agreement and disagreement, and the foundation of any useful communication.  

 -- or else there is no point in the SW as a *global* medium for knowledge

interchange between *arbitrary* parties.


Note the stress on the words "global" and "arbitrary". They are key to the need for this fundamental

presumption about a global, consistent URI to resource mapping.

Really, you are completely mixed up about this. There is no fundamental presumption, and there doesn't need to be one.

I'm not convinced.
I suspect you are speaking from a technical perspective and I from a practical one.
Technically, there may be no need for globally consistent use of URIs, insofar as RDF is concerned,
but practically, there is such a need, insofar as the SW is concerned (the SW as a solution for
global interchange of knowledge between arbitrary systems -- not the SW as a set of technologies
enabling the interchange of knowledge).

If you have less than global scope, and less than arbitrary participants, then you need not have

such a presumption. Though, for any sub-global scope, that presumption must still hold for all participants

within that scope.


Let's take this from a different perspective. Given a single RDF graph, a URI is a logical constant. If

many RDF graphs are merged, then it would not be wise nor productive to merge graphs which

did not share the same vocabulary of URIs such that those logical constants were used in

incompatible ways. Thus, one presumes that for a graph merge to be semantically valid,

the two graphs must have compatible uses of their logical constants. Right?

Right. You used that word 'compatible', note.

Good. This looks like progress...

Now, if we posit as an abstraction, a maximal graph that is the syndication of all RDF expressed

knowledge within the scope of the SW, then we can treat each graph employed by each SW

agent as an instance

Subgraph, but OK 

OK. Thanks. I wasn't 100% sure whether it was an instance or just a subgraph.
Hmmm.... OK, I think I see why now. Don't know why I missed it before. An instance is more
explicit than the graph it is an instance of, and one would presume that the idealized world-wide
graph of the SW would constitute a more explicit source of knowledge than any of its subgraphs.

 of that abstract, maximal graph. Thus, given that maximal graph, each
 URIref has the same meaning wherever it occurs.

Right, nice way to put it.

More progress. Excellent.

The interpretation of any given graph instance by any given SW agent will be less constraining

on the world than that maximal graph, but nevertheless, consistent with it. And since no single

SW agent will actually possess that idealized maximal graph, it will seek to obtain what

knowledge it can from other SW agents in order to achieve an interpretation that is more

constrained and closer to that of that idealized maximal graph.


This idealized, maximal, global graph of all RDF expressed knowledge possessed by all

SW agents *is* the SW.


Wonderful. Light at the end of the tunnel in sight...

 Now, let me put the key point. This world-wide graph is an RDF graph. It has interpretations. How many satisfying interpretations might it have? Answer: any number at all.  It might have infinitely many distinct satisfying interpretations.  (In fact, it probably will.) Nothing depends on its having only a single interpretation. NOTHING.

Let me make sure I understand this...
The interpretation of an RDF graph is simply a possible world. Or perhaps rather, the set
of possible worlds that fit within the constraints of that interpretation. Right?
So, for each distinct subgraph of that world-wide RDF graph that is the SW, it can reflect a different 
possible world. Right?
If so, then thus far, OK.
But must not every interpretation of every subgraph be consistent with the interpretation of the world-wide graph?
Thus, one agent may know less about the world than another, because it has a smaller subgraph of the SW
than the other, but what it does knows will be consistent with what is known by the other agent and some
idealized agent that possesses the entire world-wide graph. Right?
If so, then I am in complete agreement.
If not, then please just shoot me ;-)


Now, it may be that there are RDF graphs that are not considered nor intended to be subgraphs of

this idealized, maximal graph that is the SW, so it's not reasonable to define any notion of

such a maximal, global graph in the RDF specs itself, but rather, it should be defined as

a foundational part of the SW architecture, which simply employs RDF as its vehicle of



Thus, given the presumption of that idealized, maximal, global graph that is the SW, any

SW agent that is interchanging RDF graphs may treat those graphs as instances of

that maximal global graph and hence may presume that every occurrence of a URIref

has a consistent meaning.


Can one *garuntee* or *prove* that such an idealized, maximal, global graph actually

*does* exist without any semantically invalid overloading of URIs? No. But if the SW

is to have any value as a vehicle for the global interchange of knowledge between

arbitrary agents, one must *presume* that such is the case.

All of that is about a single global GRAPH, not a single global INTERPRETATION.  I agree with all of this. This is not what you have been saying until now, however. This is all about sharing beliefs - RDF graphs, representations - not about global presumptions of uniqueness of REFERENCE. 

OK. (I think ;-)

 And as I said, in RDF we use URIs to refer to everything, including the properties, classes, etc., so this uniqueness, if it applies to all URIs,  has to apply even to the abstractions we are using to describe the world.

You seem to be using the term 'denote' to encompass the entire "truth" about the resource,

regardless of what different folks know or think about it -- that to agree on the denotation of

a URI is to agree on the entire reality of that thing, whether one knows everthing about it or not.

Look, we are talking about knowledge here. If a name singles out a unique thing, then it has in a sense singled out all the knowledge that is inherent in the thing.  


Here is where you must be loosing me because I consider that statement to be absolutely false.


Employing a name does not bring one into contact with the thing named, nor does it provide some kind

of magical crystal ball that can divine all truth about that thing.

I know that. That is my point. Using a name does NOT presuppose some kind of global agreement on a single interpretation; for if it did, then using a name WOULD have this insane implication. 

OK. So using the same name does not constitute an agreement on a single interpretation, since that
would constrain the possible worlds. But, it does constitute an agreement about (a) the use of that
name as a logical constant, and (b) the thing that the name refers to, indicates, draws focus to, etc.

You're starting to worry me, Pat ;-)

Maybe you can begin to see why you have been worrying me for some time :-)

; -)

 If what you know about it has only one interpretation, then you had better hope that you do know all about it, because for sure you are never going to find out any MORE about it. What else does it mean to say that you know a thing *uniquely* ?

I'm just using the term 'denote' as meaning 'refer to', 'indicate', 'point to', without any inclusion

of any knowledge or assertions about the thing denoted.

Well, good luck making that idea clear. It seems incoherent to me: how can I know what is referred to, without knowing quite a lot about it? (For humans there is an answer, which is that you can see the damn thing or hear it, feel it or whatever; but even that can be viewed as a kind of knowing-about. As I think I said in an earlier post, if SW agents had perceptual abilities then the whole picture gets more complicated, admittedly. But our SW agents don't have perceptual abilities (yet). 


Bingo. I'm not talking about how SW agents can know what is referred to. They can't. They just have this string that

refers to some thing in the real world, and they have various statements made about that thing, and from that they

can perhaps infer additional statements about the thing and relations between that thing and other things. But they

can't actually know what the thing is that is referred to!

And in many cases, neither can we. OK, for SS numbers and the like, what we really know is that there is some global scheme in place that we could use, given enough trouble and expense, to actually locate the person named by the SS number. Or that someone could, in any case. (But knowing even that is still not actually knowing what the denotation IS, or knowing enough so that one's knowledge binds the SS number to anything.) But for things like class and property names, its not even remotely plausible to claim that anyone or anything could possibly know enough to pin down a single referent.  

 What single thing is 'bound' to rdfs:Class? It would have to be the single thing with the class extension which just IS the single set of all RDF classes. OK, now what IS that exactly? (Would you recognize it if it walked into the room?) The question doesn't even make sense; and the claim or presumption that there must be a single thing bound to that name in all interpretations is crazy. Its probably provably self-contradictory in any formalized mathematical framework, in fact.   OK, OK, Im talking about mathematics: but like it or not, with RDF and OWL, we are SAYING that some URIs denote abstractions. And in any case, its just as implausible to say that dc:author denotes a single thing in all possible interpretations: choose your own favorite property or class name. 

Let's say that the thing that is bound to rdfs:Class is whatever the interpretation of rdfs:Class is for that
world-wide RDF graph that is the SW. 
Thus, no matter what interpretations any particular subgraph has for rdfs:Class, they must be consistent
with the interpretation of that world-wide graph that is the SW, and thus, all subgraphs possessed by
all SW agents will have a consistent interpretation of rdfs:Class insofar as the global SW is concerned.

That mapping is done by humans (at present at least)

evaluating the knowledge expressed in RDF and relating it to the real world.


Yet, if SW agents are going to reliably syndicate and utilize arbitrary statements from arbitrary sources in order

to do their reasoning, they must presume that whatever the thing is that is referred to by a given URI, every time

it encounters that URI, it refers to that same thing. It can't know what the thing is.

If you don't know what the thing is, then there are interpretations of what you know in which it denotes different things.

 Fair enough. I think I understand this now. I am satisfied if the interpretations of all subgraphs of the idealized SW
are presumed consistent with the interpretation of the complete SW graph.
In practice, I want to see the use of a given URI to refer to both an organization and a web page to be considered
an error and bad practice that is detrimental to the utility of the SW.

It can't know how that mapping

comes to be. It can't presume that there are no other URIs that map to the same thing. But it *must* presume

that the URI always refers to the very same thing, globally, consistently, always.

No, it need not presume that. That is just WRONG. In fact it cannot rationally do that, in most cases.

Hmmm.... perhaps the tunnel is longer than I thought ...  ;-)

Well, it isn't the first time that we've had a complete disconnect because I am speaking using the

more general English meaning of some term and you are reading based on a more precise Mathematical

meaning of that term ;-)

Well, Im talking semantics. I don't think English 'folk semantics' is much use here, any more than English talk about physics or psychology. Almost all English meanings are predicated on false underlying theories. The English meaning isn't more general, its just more confused.

Well, I guess then I should just shut up and write code  ;-)


The only things which are within the scope of the SW machinery are things that can be computed using URI-containing representations which are sent across the Web using transfer protocols. Nothing in this requires uniqueness of reference. SW agents agree/disagree about URIs, not about the referents of URIs. They have no access to such referents, in any case, so their uniqueness or otherwise would not be relevant to any agreements they make.



 T his is actually part of the crux of what I've been saying all along.


But from a practical viewpoint, if those URIs don't refer to the same thing, then such agreements/disagreements

are useless -- and may in fact be vacuous, as my examples have shown. 

They havn't shown anything of the kind. Your examples show that we  need to assume that your use of a URI agrees with my use. Agreed: I've never denied that. What Im trying to explain to you is that this is NOT the same as saying that there is a single thing that we agree, or presume, that our shared URI must always denote.

OK. Let's take that further, and when adding an arbitrary number of participants interacting in 
arbitrary exchanges, then the use of a URI by every participant should agree with the use by
every other participant. 
The practical goals of the SW thus include the presumption that there is consistent global
use of URIs.
Is that a better way to put it?


I thought that 'denotation' was the term to use. If not, then please tell me the correct term so we can

avoid future miscommunication.


Well, denotation is the word to use, but the point is that its only meaningful when used relative to an interpretation.  If you want to use a term which is closer to folk semantics and avoids the smell of Mathematics, I'd suggest using 'names' as a verb. We often do talk as though names were uniquely bound to the things they name, and as though this binding were real. Its a handy simplification for everyday use, even though it does often go wrong (there are far too many Pat Hayes's in the world for me to be able to claim that my name is bound to me particularly, for example.) But its only folk-lore: it really can't be used as the basis for technology or theory.



But one of the points of URIs is to avoid such ambiguity of reference.

That isn't one of the points of URIs. At least, I havn't seen anything to support the view that it is (apart from argument by reiteration.) Nobody has said why such ambiguity needs to be avoided, for a start. We humans all seem to manage without avoiding it most of the time.

Argh. Come on Pat. *Humans* do, but SW agents (for now) do *not*.
If I syndicate RDF statements from various sources and infer some new statements from
the syndicated graph, if I am going to trust that those inferences are in any way valid
and useful with regards to the real world, I must presume that all uses of all URIs are
consistent. If not, then those results are possibly misleading and worthless.

That's also why we have

SSNs, ISBNs, ISSNs, UUIDs, etc. etc.


I keep talking about formal languages and automated systems and you keep bringing up examples
from natural language and human social interaction.


I'd bet money that there are not more than one Pat Hayes that has your SSN.

That is quite likely, indeed. But that's a special property of SSNs, and it takes a lot of work  (and laws, regularly enforced) to keep it that way. For example, I can't just invent a new SS number and assign it to something. If I try to do with SS numbers what I do with URIs, then I will rapidly have the FBI on my tail. There is no similar machinery set up for URIs, and for good reason: it would cost a lot of money, it would slow everything down, and there wouldn't be any point.

Again, not that one can guaruntee that all use of a given URI is consistent, but that the
global interchange of knowledge on the SW between arbitrary systems *presumes*
that the use of a given URI is consistent by all parties.
To the degree that the use of URIs on the SW is inconsistent, the value and utility
of the SW is impacted.

The value of URIs to the SW is that they can serve as global, logical constants.

Sure, but global logical constants need not have globally unique denotations.  

 Many logical constants in regular daily use wouldn't have unique denotations even if you could assemble an INFINITE amount of information.

If you mean, they need not have the same interpretation for all SW agents, then I believe I now agree.
But if you mean that global logical constants not refer to, indicate, draw focus to the same thing
in all subgraphs of the SW, then I disagree (or continue to be completely confused about the
MT semantic meaning of the terms).

Patrick Stickler, Nokia/Finland, (+358 40) 801 9690, patrick.stickler@nokia.com
Received on Wednesday, 7 May 2003 04:05:37 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 7 November 2012 14:17:30 GMT