Subject: RE: Qualities of URLs and resources

From: "Clemm, Geoff" <[email-masked]>
Date: Thu, 24 Feb 2000 17:38:20 -0500

There are some concepts that explicitly are not resources,
e.g. the concept of a "URI" or the concept of a "property".
Like URI's and properties, a binding is not
something that is identified by a URI, and is not something
to which you can apply requests.  Instead, a binding
is just a term we use to talk about how a collection 
resource behaves, e.g. if at time T, a collection resource has a
binding named "foo" to a resource with DAV:resourceid "xxx", then
this is just a shorthand for saying that a
depth:1 PROPFIND at time T on any URL that is mapped to that collection
will return a DAV:response with a DAV:href whose value is 
"<that URL>/foo" and with a DAV:resourceid whose value is "xxx".

In other words, all URI's that are mapped to that collection at time
T will have a member named foo, and the DAV:resourceid of that member
will be "xxx".

Cheers,
Geoff

-----Original Message-----
From: Roy T. Fielding [mailto:[email-masked]]
Sent: Thursday, February 24, 2000 4:51 PM
To: Slein, Judith A
Cc: [email-masked]
Subject: Re: Qualities of URLs and resources 

>In response to your comments about the nature of resources, we plan to
>remove from the binding spec all language that suggests that resources are
>storage entities.  We think that otherwise, the spec is consistent with the
>view that a resource is a mapping function.
>
>We will change the definition of binding to state explicitly that it is not
>a resource, but is rather part of the state of a collection resource.
>Although I think this conflicts with your position, it at least makes our
>position clearer.

Almost.  Anything that is identifiable by a URI is a resource, which
pretty much covers everything that can be identified as a concept.
So, you are better off not explicitly saying that a binding is not
a resource.  What you want to say is simply that the target of the
bind requests is the collection resource, and the bindings are considered
to be part of the state of that collection for the purposes of those
requests.  Whether or not those bindings identify a resource, or are
resources in themselves, is not relevent during the scope of the
client/server conversation.

....Roy

---

From: "Roy T. Fielding" <[email-masked]>
Date: Thu, 24 Feb 2000 21:17:09 -0800

>e.g. the concept of a "URI" or the concept of a "property".

Nope.  If the concept is referenceable, it is a resource.  If you ask
me for the URL that I was using to represent my home page in 1994,
you are referring to a URI as a resource in itself.  All properties
are resources -- DAV just defines a different way of accessing them
than the old HTTP interface.  The only reason it did so is because
some people felt that adding direct access to properties was better
than paying for one round trip.

>T will have a member named foo, and the DAV:resourceid of that member

For any concept X, it is possible to create an identifier namespace
obeying the requirements of RFC 2396 such that concept X is unambiguously
identified within the scope of the namespace's usage.  It is therefore
possible to identify any concept with a URI, which makes it a resource.

BTW, DAV:resourceid is an abomination.  It breaks the implementation
abstraction that is at the core of the Web interface.  Telling server
implementors to reveal that information is wrong and is completely
unnecessary to define the protocol.

....Roy

---

From: Jim Davis <[email-masked]>
Date: Thu, 24 Feb 2000 22:59:58 -0800

At 09:17 PM 2/24/00 -0800, Roy T. Fielding wrote:
> If [a] concept is referenceable, it is a resource.  If you ask
>than the old HTTP interface.  

Hmm, do you mean referenceable by humans in daily discourse, or
referenceable via the HTTP protocol?  

Humans are able to talk about many things, including "the current President
of the United States", "the first human to walk on Mars", and "unicorns",
but none of these "references" are references that HTTP could use.  I don't
think any of them count as URLs, and thus none of those referenda are
resources, in the technical sense of HTTP.

I apologize for my poor understanding of your ideas, since I have so often
benefited from them in the past

---

From: "Roy T. Fielding" <[email-masked]>
Date: Fri, 25 Feb 2000 16:09:55 -0800

>referenceable via the HTTP protocol?  

I mean anything that can be represented.  Mostly nouns (is a color
a noun or an adjective, or both -- I can't remember, but I do know
it can be represented as a resource).

>resources, in the technical sense of HTTP.

What makes you think that those can't be identified as URLs and used
by HTTP?  Keep in mind that HTTP is a gateway protocol that is
capable of infinite redirections.

If I define

   whoswho:/people/leaders/USA/federal/President/now

to mean the current President of the United States, then I can define
an HTTP service that accepts requests for that namespace and responds
with a representation of the current President.

Remember:

   1) HTTP transfers representations, not resources;

   2) The resource defines the semantic mapping between requests
      and representations;

   3) The implementation of this mapping has nothing whatsoever
      to do with the semantics of the resource UNLESS the specific
      URI in question identifies an implementation itself as a resource;

   4) Many resources can only be manipulated by a subset of HTTP methods.

....Roy