Re: Resources and URIs

On Mon, 2003-04-28 at 16:32, pat hayes wrote:
> >This message does not contribute directly to the RFC2396bis wording debate.
> >
> >I'm trying to explore, in response to Pat's comments, reconciliation 
> >of formal notions of denotation with the commonly understood idea of 
> >URIs as identifiers.
> 
> In brief: One cannot simultaneously maintain BOTH that URIs denote 
> things in the world (not just inside computers), AND that the 
> relationship between URIs and what they denote is similar to the 
> relationship between identifiers in programming languages and what 
> they conventionally identify.  Because the second 'identifier' idea 
> relies on a basic property of computable domains which is not true in 
> the wider world, viz. that any set of equations over such a domain 
> has a unique minimal solution which is computably enumerable.  Most 
> of the universe is not like this.  So if this is really 'commonly 
> understood', then there is a serious mismatch between this common 
> understanding and the RFC 2396 notion of the meaning of a URI. 
> Either the Web is only about (semi-)computable things, or Web 
> reference is not (semi-)computable.  Someone decide, but don't try to 
> pretend that you can have it both ways at once.

It was never meant to be 'computable' and if someone told you the entire
thing is supposed to be then they're wrong. You can make it computable
by putting a set of constraints on it. RDF and the SW are one such set.
LDAPv3 is another set. If you don't identify your set of constraints
very explicitly then you're back to a non-computable world....



> >At 15:32 25/04/2003 -0500, pat hayes wrote:
> >As for the uniqueness of denotation... I think I begin to see the 
> >problem here.  .....
> >
> >>In the case in question, the server knows that there is a thing 
> >>that satisfies the query; but that is ALL it knows.  It can't 
> >>'identify' a particular thing, it can't access it, it has no 
> >>representation of it (other than the assertion in the query pattern 
> >>itself), there is no web-accessible thing that can be said to be 
> >>'about' it:  none of that at all, nothing that fits into the REST 
> >>model. It just knows that something exists. Now, is that enough to 
> >>say that it has 'identified' that thing (about which it knows 
> >>diddly-squat other than that it exists) ?? Or not?? I just want a 
> >>clear answer one way or the other, is all.  I want to know what 
> >>this word "identifies" is supposed to mean.
> >>
> >>Note, it would be wrong to say that there is a single unique thing 
> >>and the server can 'identify' that thing in the sense of single it 
> >>out from all other things. It can't. That is a *much* stronger 
> >>claim than it's knowing that there is only one such thing, eg 
> >>consider the difference between 'Someone in this room murdered the 
> >>Count' and (pointing at someone) 'That person murdered the Count'.
> >>
> >>>  Isn't this why we introduced bnodes distinct from URIs?
> >>
> >>For use in reasoning, yes, but there is no way to pass a bnode 
> >>outside its scope as an answer binding (and it would be meaningless 
> >>to do so); and the only kinds of bindings we have are URIrefs.
> >
> >In logic, I think one uses expressions like (exists x . f(x)) to express such.
> 
> No. This is an aside, but that expresses a *proposition*, not an 
> anonymous identification. There isn't anything in conventional logic 
> to do this any better than using a 'new logical name' already does 
> it, in fact. In English you might say "something" or use tricks like 
> "John Doe" to indicate that you aren't meaning to identify anyone in 
> particular. We thought of allowing a special DQL bnode-ish construct 
> to indicate an unknown thing 
> (http://www.daml.org/listarchive/joint-committee/0897.html), but in 
> fact I think that Skolemized URIs work just fine. The existing Web 
> protocols and conventions are perfectly adequate, in fact, to handle 
> this. They are BETTER than the current RFC 2396 prose says they are.

That's because, as I said above, 'web protocols and conventions' are
just one set of constraints. If they work for you then great, but
remember, the HTTP Protocol and the 'http:' scheme are not the entire
URI space. If the SW needs to say it can only use URIs of particular
flavors and resources of a particular type, then that's the exact
correct thing to do.

> >    Is a query answer is an RDF graph with bnodes, I interpret that 
> >as meaning much the same thing -- I'm not asking to export the 
> >binding, just express the query result.  My concern is that URIs are 
> >not the right form to denote some elements of query results, because 
> >some parts of query results are not "resources" in the intended 
> >sense.
> 
> Well, that is what bothers me, to get back to the point. ARE they, in 
> the intended sense? What IS the intended sense? I can read the prose 
> either way as it stands.

I'd have to disagree with Graham here. If there is a need to identify it
then it can be a 'Resource' in the RFC 2396 sense. Anything means
anything. But that's not something that RFC2396bis can care about.
That's for RDF to figure out and create a constraint for.


> >Implicitly, there is a single interpretation that defines the 
> >denotation of the URI.
> 
> People keep SAYING that, but I havn't seen a single ARGUMENT for it. 
> For most URIs, trying to insist that there is one thing they denote, 
> and then to argue about what exactly it is, has just given rise to 
> long, energetic and irreconcilable debates.  Meanwhile, 'ol man Web 
> keeps rolling along, and these debates are irrelevant to it.  How 
> does it DO that, I wonder? Does it know something that we don't know? 
> Or maybe it doesn't care? If so, why are WE arguing about it?

It works because most of the developers realized that the thing being
identified by the URI is so mutable that they should try and think of it
as some value, instead they simply use the URI as the handle by which
everything is picked up with. I'm starting to think that this discussion
is just one of those that needs to be done face to face....

> >For most practical purposes, I really don't want to be concerned 
> >with interpretations other than the one I "know" I'm concerned with. 
> >On this basis, people have constructed a functioning Internet.
> 
> The fact that the Internet functions is an indication that even 
> though one person may be using a URI with one thing in mind, and 
> another person using it with another thing in mind, the variations in 
> these interpretations somehow do not matter. 

I don't think its that they don't matter. Its more that there is an
authority statement involved in the URI. So that the person who _isn't_
the authority comes to the table with no expectation that they are
correct, just that they might be able to get away with making a
temporary assumption.

> The same thing happens in normal language. This is a very interesting fact that deserves to 
> be analysed carefully.  But just DECLARING that 'URIs have a unique 
> denotation, and that is why it all works' isn't a theory.  In order 
> for this to explain why the Web works, you would have to explain why 
> it is that *even though the interpretation you had in mind* wasn't 
> what the URI *actually* denoted, that it still managed to work. Or 
> else you have to explain how it comes about that the interpretation 
> you have in mind just IS the right one, which sounds like magic to 
> me, or maybe e-telepathy.

There is one HUGE difference between URIs and 'normal language'. In
normal language you don't qualify every single word with the owner of
the definition for that word. But you do with URIs. And unless you have
some definitive statements from the authority over a given URI (i.e.
what RDF and the SW are/were supposed to do) you know that you shouldn't
assume things about that URI that you don't know for certain.

> >So how can we deal in terms of this "fiction" of a single 
> >interpretation in which URIs Identify (denote a single 
> >thing/concept) -- which I believe we must do if the specification is 
> >to have any traction with real developers
> 
> I don't believe this for a second.  In fact, I think that most 
> developers would say that it is a fantasy (or irrelevant), if the 
> notion of denotation were explained to them. Its a fantasy for any 
> program which claims to manipulate denoting expressions. Its like 
> saying that you can't wrote DB code unless you believe that all the 
> table entries are somehow magically bound to the things they are 
> being used to say things about.

but you can't write DB code unless you belive that all the table
locations are bound to the things inside them. If it weren't then the
table would be just some mess where any entry could just change to some
other column willy nilly. You're assuming some connections to objects
when you weren't given any statements from the authority that this was
so. 


> What does need to be explained is that denotation doesn't work 
> everywhere the same way that it does in programming languages, 
> because the entire world isn't like the inside of a computer: even a 
> jobbing programmer needs to bear that in mind from time to time.

What needs to be explained is that 'denotation' is bounded by the
authority (or the scheme if the scheme has no authority section).
And unless a) the authority tells you something, b) the scheme tells you
something or c) some external, authoritative service/systems tells you
something then you can't know anything more than "the URI identifies one
and only one thing".

-MM

Received on Monday, 28 April 2003 17:04:20 UTC