- From: Roy T. Fielding <fielding@apache.org>
- Date: Thu, 1 Aug 2002 13:41:26 -0700
- To: Miles Sabin <miles@milessabin.com>
- Cc: "www-tag" <www-tag@w3.org>
On Thursday, August 1, 2002, at 03:09 AM, Miles Sabin wrote: > Roy T. Fielding wrote, >> An http URI, when it is dereferenced, activates a mechanism whereby >> the string of characters in the URI is used to select a bag of bits >> that is supposed to represent the state of the abstract thing >> identified as a resource via the http naming authority. > > I think this very clear statement points to the crux of my disagreement > with Roy's position. I would agree to the following, > > An http URI, when it is dereferenced in the way characteristic of the > HTTP protocol, activates a mechanism whereby the string of characters > in the URI is used to select a bag of bits that is supposed to > represent the state of the abstract thing identified as a resource via > the http naming authority. Yes, that's what I meant for an http URI. A reasonable definition of dereference can be found at <http://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?dereference> Note that when you dereference a pointer you get back a copy of the stored value at the pointed location, not the location itself. > In fact, I'd go further and say that this looks very promising as a > _definition_ of "dereference" within a framework which incorporates the > HTTP protocol, http URIs and a particular conception of resource ... I > guess that framework is REST. No more private definitions, please -- dereference is a known concept. > Where I differ is that I don't accept that this conception of resource > and dereferencing is the only one ... I'm not even sure that it's the > one most commonly associated with http URIs. It isn't the only one. It is the one that I needed to create in order to consistently define a model for HTTP/1.1 and all of the Web technology that I have influenced. > Some examples of alternatives, > > * (One Roy gave elsewhere in his post) Auto manufacturers might agree to > stamp every vehicle with a unique http URI. We might "dereference" > such a URI by physically pointing at the vehicle, or a car park > attendant might drive it somewhere accessible to its owner. I don't know what you mean by accessible, but the dereference occurs if someone takes the reference (any identifier) and uses it to gain access to the current value of the identified thing. A car park could do that with a VIN to parking space mapping, but they don't because VIN are too long to be an efficient identifier in those situations. So instead the parking attendant gives the owner one-half of a shared identifier and places the other half on a layout board that marks the parking space. He later uses the owner's tag as a lookup key to find a pointer, which he then dereferences to find the car and deliver it to the owner. Cute example of a chained dereference in the real world. > * XML namespaces are abstract, stateless, pointlike entities, which have > no defining characteristics other than being numerically distinct from > one another. The http URIs used to identify them are "dereferenced" in > the course of namespace processing in an XML processor, merely by > being used to demarcate the scope of XML names. No, they are only referenced during XML processing, not dereferenced. > * It's common practice to treat cannonical "entry point" URIs (eg. > http://www.w3.org/) as identifiers of complete web-sites. These http > URIs might be "dereferenced" by REST-dereferencing one or more URIs > (not necessarily including the entry-point URI itself) identifying > REST-resources which are parts of that web-site, or informally (eg. > "Where's the RDF spec? It's on http://www.w3.org/.") No, again you are mixing referencing with dereferencing. They are not the same thing. People also use URI like "http://proxy.example.com/" to identify proxies for other identifier schemes. The identifier is only dereferenced when it is replaced by the value of what is identified, not when it is simply used as a reference. Placing a URI in an anchor href does not automatically result in a dereference; a dereference only happens when the technology does a "follow this link" operation, either by user request or configured automation. > * It's common for http URIs to be subject to multiple informal > interpretations (eg. http://www.w3.org/ might, in appropriate > contexts, be used to refer to a bag'o'bits, an HTML document, the > W3C's website, the W3C, the best example of accessible web page > design, Joe Blogg's favourite web site, my favourite example when > waffling about URIs etc. etc.). Exactly what constitutes > "dereferencing" in these contexts is liable to be as variable as the > contexts themselves. Those are all examples of referencing. ....Roy
Received on Thursday, 1 August 2002 17:12:04 UTC