- From: Pat Hayes <phayes@ihmc.us>
- Date: Sat, 18 Jul 2009 12:55:04 -0500
- To: Henrik Nordstrom <henrik@henriknordstrom.net>
- Cc: "www-tag@w3.org WG" <www-tag@w3.org>, Mark Nottingham <mnot@mnot.net>, "Ray Denenberg, Library of Congress" <rden@loc.gov>, Richard Cyganiak <richard@cyganiak.de>, Xiaoshu Wang <xiao@renci.org>, Jonathan Rees <jar@creativecommons.org>, HTTP Working Group <ietf-http-wg@w3.org>
On Jul 16, 2009, at 8:26 PM, Henrik Nordstrom wrote:
> tor 2009-07-16 klockan 06:42 -0500 skrev Pat Hayes:
>
>> Alternatively, it may be (cf my recent message to Richard) that the
>> phrase "the requested resource" is **always** understood to refer to
>> the resource that the URI denotes, or is intended to denote, even
>> when
>> this is not the resource that the URI resolves to.
>
> It is.
>
> HTTP does not care how servers resolve URIs and should not. Nor does
> HTTP care about any meaning of URIs, just the existence of URIs and
> that
> the indicated servers map these to resources.
Unfortunately, this use of 'map' terminology only confuses things even
further. Many cases of the denotation relationship between URIs and
resources cannot be mapped by any server, if 'map' refers to any kind
of computable operation. I am using some words in these emails very
exactly. In particular. "denote" (syn: "refers to") means that the
symbol is a name for the entity denoted. This is the relationship
between "Julius Caesar" and Julius Caesar, between "Patrick J, Hayes"
and me, between "27" and the number twenty-seven. It has *absolutely
nothing* to do with *anything* to do with network transport
architecture,. It does not imply that any agent, natural or
artificial, can do anything with the name to achieve any useful
effect. It is not a computable relationship, and it is not one that
can be used to gain any kind of access to the denotation starting with
the name. There is no transport protocol for denotation. It simply
refers to the semantic relationship between a name of something and
the thing it is a name of. Nevertheless, HTTP URIs are used in this
way to denote things. All this http-range-14 business comes up only
because there is a need to make sense of these relationships between
names, what they denote, and what HTTP responses they give rise to
when servers are handed them. But the thing named need have no
relationship, indeed no *possible* relationship, to any server or
anything that can map anything to anything else.
> My reading of what you say above is that the URI resolves into a
> resource on the server even if the URI isn't meant to resolve into
> that
> resource,
No, that is not what I said, and your misunderstanding of what I said
is typical of the communication problems we find in these discussions.
The relationship of denoting (referring to, naming, being a name of)
is, prima facia at least, completely unrelated to issues of resolving
on servers. Servers and networks and transport protocols simply have
nothing to do with naming, unless and until we say that they do in
some authoritative way. Any connection between these two notions can
arise only by fiat: it does not follow from the definitions of the
technical terminology being used. So when I refer to "the resource the
URI denotes", I am not saying anything about resolution. I am simply
talking about *denotation*. If a URI denotes me, then whatever happens
to it when it gets to a server, whatever it gets mapped to, has
nothing directly to do with me, and certainly does not involve me in
any causal way: I do not take part in the transaction. I might be
asleep, or in the future I might not even exist, and still the URI
will be denoting me, and a server will need to do something
appropriate with the URI.
The picture given by Richard, and to which I was reacting in the above
quote, was this. URIs denote things. The HTTP GET takes a URI and
resolves it to a server (not a resource) which responds with a
**representation of the denoted resource** attached to a 200 code, if
it has a suitable such representation. ("Suitable representation" here
has to be given further gloss, as it is a nonstandard usage.) That
makes sense, given that we further specify that some resources just
don't have representations, so the server must issue a 303 code in
those cases. Note that the represented, requested resource itself
plays no part in this picture: it is all about servers and
representations of resources.
> which at least to me doesn't make much sense. If this happens
> then either the wrong URI was used, or the server-side resource
> mapping
> is wrong (broken). Or perhaps you use a different meaning for resource
> than intended by the HTTP protocol.
Well, part of the passion in these exchanges arose from Richard C's
insistence that HTTP said *absolutely nothing* about meanings of URIs,
so I am surprised to hear that the HTTP protocol intends any notion of
meaning at all. But more to the point, it is now simply a fact that
URIs are used as denoting names on the Web. Published W3C specs
require them to play this role. Seems to me that http has two choices:
it can completely ignore this fact, in which case it cannot intend any
kind of meaning, or it can address the denotational meanings that URIs
actually have. What is should not do is make rulings on these meanings
which violate existing assumptions by the TAG, or which have
consequences which do that.
>
> HTTP does intentionally not define any URI naming scheme or resolution
> model on servers, just the syntax of how valid HTTP-URIs may be built.
>
> The wording is meant to be read "for this specific Requested-URI",
> as is
> any other property related to HTTP responses in general.
OK, that is good. It would help if that were stated explicitly, since
the same server and the same resource can be located/identified by a
different URI also. The wording which I was objecting to refers only
to resources, so this point is not clear, as the same resource might
be identified by several URIs.
> Not in a global
> sense, and bears no relation to any possibly related resources the
> server may have available privately or published at other URI
> locations.
> 303 means that the server knows about the meaning of the requested URI
> but DO NOT have a representation suitable to be sent in response to
> requests for that specific URI,
The suggested wording refers to the 'requested resource'. You here are
talking about the 'requested URI'. These are not the same. Which is
correct? Ive been assuming that it is the resource that gets
requested, and the URI is part of the request.
> which includes matching the intended
> meaning of that URI by whatever name scheme the server implements
No, it cannot possibly do that, in many cases. No implementation of
anything is ever going to match anything to Julius Caesar, who has not
existed for around 2000 years.
> even
> if the servers internal URI naming scheme resolver happens to find one
> or more possibly related resources but of which none which actually
> matches the servers intended meaning of the requested URI..
>
> What makes a resource suitable to be sent or not in response to
> requests
Resources aren't sent in response, representations are. Did you mean
representation?
Pat
> for a given URI is outside of HTTP specifications and nothing HTTP
> cares
> about. That's purely a server side implementation decision.
>
> Regards
> Henrik
>
>
>
------------------------------------------------------------
IHMC (850)434 8903 or (650)494 3973
40 South Alcaniz St. (850)202 4416 office
Pensacola (850)202 4440 fax
FL 32502 (850)291 0667 mobile
phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes
Received on Saturday, 18 July 2009 17:56:27 UTC