- From: Jonathan Rees <jar@creativecommons.org>
- Date: Wed, 16 Apr 2008 14:41:30 -0400
- To: "Williams, Stuart (HP Labs, Bristol)" <skw@hp.com>
- Cc: "public-awwsw@w3.org" <public-awwsw@w3.org>
- Message-Id: <FF3B16EF-0BA3-496F-898D-BD01D28A83D6@creativecommons.org>
On Apr 16, 2008, at 12:29 PM, Williams, Stuart (HP Labs, Bristol) wrote: > Hello Jonathan, > > I think that what the URI dereferences is also the information > resource ie. it dereferences what it denotes. Much as in C the > dereference on a pointer, eg (*p) can appear either side of an > assignment operation. Although GET is often spoken of as > 'dereference' I would say that all of GET, PUT, POST, DELETE > involve dereference which (though operationalised by the HTTP > protocol in the case of HTTP) is conceptually moving to the other > end of the pointer (finding the fielding/taylor mapping function > that models the resource). I think you are pointing to a way in which my usage, which follows AWWW, is wrong. There are two operations here: you figure out what the URI denotes (the server "dereferences" or "dedenotes" the URI to obtain an IR), and then given the the IR, you select a representation of the IR's state to deliver to the client. It is the composition of denotes and is-representable-by that should label the arc from the URI to the Value. Something like "would have as a correct GET response" might be closer. AWWW says: Dereference a URI Access a representation of the resource identified by the URI. -- Perhaps I could say "awww:dereferences" instead of "dereferences"... (just kidding) > I think that's important because as it's currently drawn, what > appears to be dereferenced is one of the representations available > at the given instant that the HTTP operation occurs - which leads > us back into "the URI identifies" the representation given the > confusion around word senses of "identify". Not what I meant - if you put the source of the arrow, the arrow label, and the label destination in a row then the diagram says that a URI dereferences (at time t) to a Value. If the diagram commutes then that Value will be a representation of the state of the IR denoted by the URI. As for "identify" I would say that a server can use a URI to identify which IR, among the ones it knows about, should be the one to have one of its current state's representations returned. The URI both denotes and identifies the IR. I agree with Pat, I think. > The taylor/fielding value cloud is just a way of modeling an > information resource over all time - it's a way of flattening it > into an invariant construct (it becomes meaningless to talk about > the resource changing over time (though its state may) - if it > changes then it is a different resource - because such change would > entail a different future or a different past). Wait, let's be careful. The value cloud is not a model of the IR, but rather a model of the way it's served. To call it a 'model' of the IR would be inaccurate in the mathematical sense since there will be true statements about the IR that can't be mapped to true statements about the value cloud. The IR knows things that a faithful value cloud might not; for example, you could have an IR that's a 2000 dpi image (or perhaps even a continuous-space image), while all the values in the value cloud are only 400 dpi. Conversely, the IR doesn't specify the value cloud; there could be many value clouds faithful to the same IR (as we agreed on the call). So neither makes a good model of the other. The Taylor/Fielding paper defines 'resource' in several different ways, and the definitions are mutually inconsistent. The formal definition coincides with what I've called the value cloud. The informal definitions (e.g. "Any information that can be named can be a resource") are closer to awww:information-resource. > It is not the intention to say that the information resource is > actually organised that way as an implementation - just that it > will be in states over time and that those states are projected of > a moment as sets of awww:representations, one of which is provided > in response to a GET operation using the relevant URI. I agree. The paper is about a software architecture, and I think he's saying that if your systems are designed and implemented consistently with the formal model (as elaborated in the paper), you'll be RESTful and reap the benefits. To equate the formal model and the informal notion is just a bit of sloppiness that will not throw off people who are more clever than I am. The value cloud, even though it's not an IR, is still a thing (as is the network endpoint) and we might want to write about it in RDF, e.g. if we were trying to reason about how well a system implements the REST model. All of these things, including IR, representation, information-resource, and network endpoint, are abstract models of various real world phenomena. To get clarity we have to figure out the relationships among these models and between the models and reality. The value-cloud is not an essential part of the picture. I only put it there because I wanted to understand Fielding & Taylor, to make sure my understanding of F&T matched that of others, and to articulate an example of something that IRs are *not*. Jonathan
Received on Wednesday, 16 April 2008 18:48:31 UTC