- From: Jonathan Rees <jar@creativecommons.org>
- Date: Sun, 8 Mar 2009 11:01:34 -0400
- To: "Booth, David (HP Software - Boston)" <dbooth@hp.com>
- Cc: AWWSW TF <public-awwsw@w3.org>, "Henry S. Thompson" <ht@inf.ed.ac.uk>
By the way - I forgot to credit Larry Masinter - he has also helped me with this puzzle. On Mar 7, 2009, at 6:42 PM, Booth, David (HP Software - Boston) wrote: >> From: Jonathan Rees >> >> Inspired by some comments Henry made about conneg at the recent TAG >> meeting I've made a third diagram to attempt to fit the conflicting >> theories together; see [1]. > > Thanks for doing this work and creating this diagram. I'm trying to > digest it, but one thing I'm running into is that a couple of the > arrows are not labeled: > > - from 'Boothian "ftrr"' to 'Encoding of information thing'; This would be something like "has, in its image" (i.e. the encoding is in the image of the ftrr) > - from 'network service (a la 2616)' to 'Response from service' This would be a provenance relation like "generated" or "said" (i.e. relation between the response and the service is that the service generates the response; HTTP is just one possible transmission path). Sorry, I thought these were obvious. > > What relationships were these intended to be? > > I liked the attempts in Michael Hausenblas's diagram[7] to indicate > subclass relationships between the classes, as I thought they added > a lot toward understanding the classes. Might subclassing be added > to yours? Yes, that's a good thing to do, and earlier I've done that with open- arrowhead arrows (a la UML). But a priori I see no need for any subclassing in this diagram. The only candidates I spot are "not time varying" a subclass of "[potentially] time varying" and "encoding" a subclass of "not time varying". I could go either way on this but would assume no subclassing until the need is demonstrated (e.g. via a need for common or generic properties). ("Time varying" really should be "potentially time varying", since there is in general no way to know whether something varies over time. Sometimes you know, and that's good, and sometimes you don't, and that's not terrible.) The subclassing in Michael's diagram is either trivial (everything is a subclass of Resource) or not well supported (there's no consensus on what an "information resource" is). If you added new boxes to my chart, e.g. if you placed your favorite "information resource" definition in it, you might find new subclass relationships. >> This is a bit more focused than diagram #2 [2], and it no >> longer talks >> about URIs, just the things that might or might not be named. >> >> The boxes are classes and the arrows are properties that might hold >> between members of the classes. 3D boxes are for things that have a >> time dimension of any kind. >> >> The theories to be reconciled are: >> 1. TimBL "generic resources" [3] >> 2. REST [4] >> 3. David Booth ftrr [5] >> 4. HTTP [6] >> >> I think the overall diagram makes a plausible story. >> - a single GR doesn't "know" (commit to, model) what >> representations are associated with its states > > One thing I notice about the GR description in [3] is that in > comparing GR to ftrr[5], GR does not seem to describe any way for > representations to depend on request inputs other than those that > might select different languages or content types. I agree. Fielding&Taylor has the same property. This is why I didn't equate (or make isomorphic) ftrr and REST resource. There would be a projection from ftrr down to REST based on each fixed choice of headers not accounted for by REST. >> - REST is very similar to David's ftrr - difference lies in >> treatment of request headers (e.g. User-agent) > > What difference do you mean? AFAIK ftrr corresponds very closely to > REST. I assume that user-agent is not a property of a REST (F&T) representation. Obviously it could be. Relative to the other issues we are dealing with this seems a minor modeling quibble. > >> - a REST resource, or ftrr, commits at each time to some >> particular set of representations > > Yes. As I pointed out in [8]: 'If you take Roy's definition to be > essentially "a function from time to representation sets", then the > ftrr:IR definition is pretty much equivalent to Roy's definition. > The function in Roy's definition is pretty much a curried[9] version > of the function in the ftrr:IR definition.' I'd have to look at the details. I thought the F&T membership function used the headers as a key to select among the set of available representations. If the representations cover all possible combinations of header values (an infinite set) then this works, but I doubt that this is the intent. The way I read it was that things like User-agent: and Link: would simply be unable to influence the choice of representation in F&T - that is, this aspect of real-world servers would go unmodeled in this model. If we get to the point where we have to settle this kind of detail, we'll certainly have succeeded! Our important issues all lie at a much coarser level of analysis. > >> - thus there many REST resources that are all "faithful" to a >> single GR in the sense of delivering valid representations of >> the GR's >> states. Different granularity or identity criteria for the >> two classes. > > Not sure what you mean here. Are you pointing out that some REST > resources may be more coarse grained versions of a single GR? No, the opposite > But that would also be said of GRs in relation to other GRs -- > different granularity of "genericity" -- so I don't know what point > you're trying to convey here. You know, I might be confusing "generic resource" with "abstract document". I'll have to reread Tim's document... although note that I say "akin to", not "same as". By "time invariant information thing" I'm thinking of something like a single resource "Moby Dick" for which there may be many ftrrs (or HTTP response sources), each one different from the other, distinguishable by which particular representations they encompass (or deliver). By "time varying information thing" I'm thinking of something like the Oaxaca weather report. >> - GRs and REST resources are not inherently physically embodied >> - REST and ftrr are Platonic ideals (models) of hypothetical or >> real response sources >> - HTTP response sources are physically embodied, thus very >> different from both GRs and REST >> - but an HTTP response source can be "faithful" to a GR or a REST >> resource by implementing it correctly > > Hmm. I see the difference between a hypothetical response source > and an actual response source -- essentially the difference between > saying "there *might* be one" and "there *is* one" -- but I'm not > entirely convinced that an HTTP response source should not also be > viewed as a Platonic ideal, since the protocol definition doesn't > care at all about real things, it describes a model also. Even the > notion of "server" in RFC2616 seems to me like a Platonic ideal. This is a modeling issue. I'm defining an HTTP response source to be something that's physically embodied. Otherwise is would be a source of responses. The diagram already has places for models (idealizations) of response sources - that's what ftrr, REST, GR, etc. are about. We know that web servers are real things - if I go to my basement and power mine off, it turns off, and so on. When I talk about it there is some amount of modeling going on in our heads, but that's just what happens in *any* communication and so doesn't deserve attention. > > Why do you see this notion of Platonic ideal as being an important > differentiator? Three is different from three particular oranges. The distinction is just part of the way people think, talk, and reason. The things you say about physical things are different from the things you say about mathematical or "Platonic" things. Physical things are contingent - any statement you make about their future is hypothetical because you can't predict the future. But nothing can alter 5+3=8, or historical fact. Those things are not hypotheses. Yes, truth is unknowable, knowledge doesn't exist, etc. etc. You don't need to get into that quagmire in order to do logical models. I don't want to get into the philosophy of language. I think it is probably not possible for us to agree on it. If you don't like what I've just said, then instead of getting philosophical we should take this to be *my* model of the system we're studying and then we can develop it together and ask whether it is a useful one (helpful for expressing what we know, teasing apart paradoxes, and making inferences that can be tested). Clearly one may define one or more relations between response sources and ftrrs. Maybe you could think of an ftrr as being the "trace" of some particular response source, much as a recording hygrometer produces a record of what the humidity has been, or rather the way a climate modeler speaks of rainfall over time (both past and future). That would be an interesting exercise. (Clearly I am being vague about exactly how an "HTTP response source" should be modeled, but I want to stay away from pinning it down for now and look more generally at the rest of the diagram and how the "spokes" relate to one another.) > >> - an HTTP response source can do all sorts of things that are not >> modeled by GR or REST, such as deliver 3xx, 4xx, 5xx responses > > Yes, it clearly is a different beast. It has broader functionality > than ftrr, GR or REST, and is used to *implement* them. yes. as in the way a calculator implements addition. Or one might say that the calculator is a model of addition, or even that addition is a model of the calculator. > >> - RFC 2616 permits resources that are "network services" - it is >> not natural to talk about these having 'states' or >> 'representations' - >> not clear whether such services a REST resources at all - I don't >> think they should be considered so (service: random number >> generator, >> webcam, database query?) > > I don't find the term "network services" when I search RFC2616. To > what section are you referring? 1.3 "network data object or service" and 9.3 "data-producing process"
Received on Sunday, 8 March 2009 15:02:18 UTC