Re: Resources always exist

Am Donnerstag den, 12. September 2002, um 21:51, schrieb Dan Brickley:

>
> On Thu, 12 Sep 2002, Paul Prescod wrote:
>
>>
>> Roy Fielding wrote:
>>>
>>> The mapping is the resource and the resource always exists, which is
>>> is why 404 Not Found does not imply that the resource does not exist,
>>> but rather says that no current representation of the resource exists
>>> at the time of the request.
>>
>> But the HTTP spec says:
>>
>>> The DELETE method requests that the origin server delete the resource
>>> identified by the Request-URI.
>>
>> What does "delete the resource" mean if resources always exist? Should
>> DELETE be understood to clear the mapping from resources to 
>> representations?
>
> This has always puzzled me. From an RDF perspective, where we say 
> little
> more than 'URIs are names' it is often easier (esp. for the 
> logicians) to
> take the perspective that there are no 'dangling URIs' that name 
> nothing;
> and that 404 and DELETE correspond to a lack of information about the
> named thing, rather than to the named thing not existing at all. If the
> consensus here is that there are some URIs that denote nothing, we 
> ought
> to take that message back to the RDF groups.

Can this puzzling perhaps be resolved by looking at how URIs are
used in the different aspects/layers in the architecture?

In one layer all URIs are regarded as "names" for
[insert your favorite term]s. A name always exists. A name cannot be
deleted. Formerly, those URIs were called URNs until it was discovered
that every URI can be used as name and, for example, http URIs are
good candidates for XML namespaces.

In another (sub-?) layer URIs are used for "retrieval" of 
representations.
Representations can be missing (404), they can be removed (DELETE)
or even replaced (PUT). Formerly those URIs were called URLs, until
it was discovered that every URI can potentially be used for
retrieval.

Now for the term "resource".

If, as Roy said, the mapping is the resource, then HTTP is not about
manipulation of resources but about manipulation of representations.
In this terminology one could reformulate, e.g. "302 Found"
(RFC 2616 10.3.3) from:

"The requested resource resides temporarily under a different URI..."

to
"The requested representation can be found temporarily under a 
different URI..."

or
"The requested representation is temporarily the same as for another
  URI and can be retrieved there..."

No, this is not a proposal to reformulate RFC 2616. ;)

//Stefan

Received on Friday, 13 September 2002 07:30:27 UTC