Roy's proposed text (WAS: Resources and URIs)

Roy T. Fielding wrote,
> http://www.apache.org/~fielding/uri/rev-2002/
> rfc2396bis.html#rfc.section.1.1
>
> If anyone has comments on that text, please be specific.  Otherwise,
> this issue is closed.

Modulo some terminology/wordsmithing issues, I think this looks pretty 
good, and I _think_ it gives everyone more or less what they want.

Some specific comments,

> A resource is a source of supply or support within the context of a
> given system.

I think I get your drift here, but "a source of supply or support" is 
slightly peculiar terminology. I'd suggest something along the lines 
of,

  Within the context of a given system, a resource grounds the
  characteristic operations of that system.

The idea here being that, eg.,

* In RESTful HTTP the characteristic operation is network interaction
  via GET, POST etc., and a resource is the ultimate source of 
  representations.

* In RDF the characteristic operation is denotation relative to an
  interpretation, and a resource is whatever is denoted according to
  that interpretation (ie. an element drawn from the domain of the
  interpretation).

* In XML namespace processing the characteristic operation is name
  scoping, and a resource is an abstract scope for a name.

I sincerely hope that my reading of your first sentence is reasonably 
true to your intent, because if it is it looks like we might be close 
to consensus.

Given the above, I read the bulk of the definition of resource as 
relating primarily to systems which have network interaction as their 
characteristic operation, but *not* as excluding other systems (eg. 
RDF, XML namespace processing) which have non-network characteristic 
operations. This is an IETF spec, so I think that's a reasonable 
explanatory bias.

> An identifier is an object that carries identifying data. It is not
> necessary for the identifier to define what is being identified; it is
> only necessary for the identifier to provide sufficient data to
> distinguish what is being identified from all other things within the
> scope of its use.

Like Dan, I'm a bit worried about "carries identifying data" ... it's 
not so much that the identifier _carries_ identifying data, it _is_ the 
identifying data. I also think that the system context needs to be 
mentioned to match the definition of resource. I'd suggest something 
like,

  Within the context of a given system and its characteristic
  operations, an identifier embodies the information required to
  distinguish what is being identified from all other things within the
  scope of its use.

[nb. I'm not particularly committed to this switch from "data" to 
"information" ... if anyone objects that information is a richer 
concept than data and carries a load of unwanted baggage with it, then 
I'd be happy to revert to "data"]

I think this works for the three preceeding cases,

* In RESTful HTTP and a network interaction via GET, POST etc., an http:
  URI embodies the information required to distinguish one ultimate
  source of representations from all others.

* In RDF and denotation relative to an interpretation, a URI is a name
  in the object language, and as an argument to the denotation function
  of the interpretation embodies the information required to distinguish
  one element drawn from the domain of the interpretation from all other
  elements drawn from that domain.

* In XML namespace processing and a name scoping operation, a URI is a
  string which embodies the information required to distinguish one name
  scope from all other name scopes.

Cheers,


Miles

Received on Tuesday, 29 April 2003 03:45:13 UTC