- From: Roy T. Fielding <fielding@gbiv.com>
- Date: Tue, 16 Jun 2009 16:05:06 -0700
- To: Jamie Lokier <jamie@shareable.org>
- Cc: HTTP Working Group <ietf-http-wg@w3.org>
On Jun 16, 2009, at 11:09 AM, Jamie Lokier wrote: > Roy T. Fielding wrote: >> On Jun 16, 2009, at 7:45 AM, Jamie Lokier wrote: >>> Ok, but what about a resource that accepts POSTed information _and_ >>> information in the URL? For example a hypothetical POSTable >>> http://example.com/post-news/author-is/Jamie/subject-is/Good% >>> 20morning >>> >>> Then the URL doesn't point to the conceptual resource any more. >>> Part >>> of the URL does (http://example.com/post-news/); the rest of the URL >>> does not identify a resource, but is input to it. >> >> No, (http://example.com/post-news/) is not *the* resource. >> It may be a resource, but it is not the resource to which >> the URI above identifies, and therefore your assumption about >> the meaning of "resource" in Web architecture is wrong. > > No, because I'm not describing the meaning of "resource" in Web > architecture here, I'm describing the sensible use of the English > concept of a resource. Which definition would that be? > Web architecture says the resource accessed through > > http://example.com/post-news/author-is/Jamie/subject-is/Good%20morning > > is different from the resource accessed through > > http://example.com/post-news/author-is/Roy/subject-is/Bzzt Hard to tell from your example. The resource is either a form containing that subject pre-filled (e.g., like a GET on any mailto URI) or accessing that URI actually does post that news (which is still a resource and might even be standards-compliant with HTTP if it does not allow GET). The latter is not a very useful resource, but it is still a resource because I can use it to Bzzt many times. > Which doesn't fit very well the English concept of "the resource" > which is being accessed when you actually do those things. Again, which English concept of "the resource"? There are five definitions in Webster and more in OED. Or do you have some other authoritative definition in mind, such as one found in a peer-reviewed journal or academic work? In Webster, the 1a definition (a source of supply or support) and 1e (a source of information or expertise) are both about *doing* something. That's what a resource is -- something that you can go back to in the *future* as a source to supply something, whether that something is inbound in nature (e.g., storage space) or outbound in nature (e.g., a home page). Web architecture says (by definition) that a URI is a resource identifier, and thus anything identifiable with a URI must fit within our model of "resource". It is not possible to define a model that we say "describes the Web", like the REST model that is the basis of URI and HTTP standards, and at the same time say that we are only interested in describing things that look like a response to a file-like request. The standard protocols must support the entire scope of the Web. The terminology must be sufficiently expressive to encompass the entire scope without preventing that which already appears on the Web. > (If those URLs didn't just post news, say if you could read filtered > news through them too, _then_ the concept would fit better. It has > nothing to do with implementation; it is about conceptual models). > > So you have to *define* the Web architecture meaning of resource, and > that will always be a little dissonant with what the conjures up for > people who aren't familiar with Web architecture. I did define that meaning and it is *also* consistent with the English term. Honestly, I think you need to do a little more research on the subject before you can seriously suggest that the Web architecture definition in use for the past 14 or so years, peer-reviewed five times in the IETF, twice in IEEE, and by my own dissertation committee is somehow less accurate or useful in standards than ... what? >> Your mistake is assuming that "resource" has something to do with >> the implementation behind the server interface. > > No, I'm not talking about the implementation at all. I'm talking > about concepts, models and common language meanings. That's what I am talking about. I can't solve the case where your opinion of "common" does not match my opinion of "common" other than to point to established peer-reviewed writing, which is the very thing you are arguing against. >> Ian's mistake is assuming that what people >> refer to is the bag of bits they get back, as opposed to the function >> being exploited by the request method on the server-provided resource >> at the time of the request (e.g., if the link is to today's weather >> report then the resource is today's weather report, not some former >> weather report's bag of bits). > > I agree with that. > >> In any case, the word "resource" is far more commonly used the way >> I use it than the way that Ian described. As indicated, it comes >> direct from the English language. > > Your usage comes from the meaning as used in Web architecture, and > seems to my mind dissonant with the meaning used in English in these > cases. No, it doesn't. My research is based on the entire Web and how it has been/is/will be used everywhere. That research fed into most of the Web architecture and my dissertation, which has been reviewed by a ridiculously large number of academics (both inside and outside computer sciences) and industry professionals. If I had screwed up the definition of resource or somehow brutalized the "common" use of the term, then there would have be a long trail of comments and articles telling the whole world how I got it wrong. Maybe someone will do that this year, and after being adequately peer reviewed and found to be more expressive or understandable than the current terminology set, then the associated standards will be rephrased in that new terminology. However, that sure as heck isn't going to come out of an email thread based on individual opinions about what is "common". Common is always a function of context. If your context is a management school, then your definition of "resource" is a person employed or contracted to do work. In any case, the purpose of our specifications is to *define* Web architecture, so it is kind of pointless suggesting that our audience would not be familiar with the terms. > I'm quite familiar with the Web architecture meaning. I just don't > think it fits very well the conceptual models that are actually being > used on some web sites, and I think that is the root of Ian's idea > that it confuses some developers. Though I don't agree with Ian's > suggestion. Obviously the Web architecture meaning fits some sites' > conceptual models quite well. I have yet to see a site that it doesn't fit well. The fact that a typical browser page consists of representations of many different resources rendered according to a particular media type processing algorithm does not change the fact that each of those resources can also be accessed and manipulated individually. Thus, we can and do say that "google reader" is a resource even though the content it displays is unique to each user's cookie set and request time, and that does not take away from the individual elements being composed dynamically from other resource representations via AJAX. ....Roy
Received on Tuesday, 16 June 2009 23:05:41 UTC