- From: Roy T. Fielding <fielding@kiwi.ICS.UCI.EDU>
- Date: Thu, 10 Feb 2000 21:36:03 -0800
- To: Jim Whitehead <ejw@ics.uci.edu>
- cc: fielding@ebuilt.com, w3c-dist-auth@w3.org
>> Actually, it is more like ({U,t} -R-> {V1, V2, ...}), where t is the >> current time, R is the resource, -R-> is a mapping function that has >> been implemented according to the semantics of resource R), and the range >> is a set of values representing that resource at time t. > >OK, so this notation makes it much more clear that a resource is a mapping >function. However, if we just call the mapping function "R", this allows us >to express that multiple URI can be associated with the same mapping >function. That is, the binding spec. is based on the mapping from URI to R >being many to one. From your post, I think you believe it is one to one. >If so, this is at the heart of our disagreement. No. I've said many times that a resource can have many identifiers. In other words, you can have two different URI that *mean* the same thing when used to access a server. But, you can also have two URI that result in the same mechanism being used upon access to the server, and yet those two URI point to two different resources because they don't mean the same thing. What the bindings spec gets wrong is that at no time whatsoever does the server or the client know the meaning of the URI, and therefore cannot know whether a new binding represents a new identifier for the resource or a new identifier for a *new* resource that just happens to share the same implementation mechanism at that time. That's because the resource is the concept, not the representation of that concept and not the URI-to-representation mapping mechanism on the server. There are no resources on the server; just mechanisms that supply answers across an abstract interface defined by resources. The reason the protocol talks about these things as resources is because the protocol is not allowed to define the mechanisms on either side of the abstract interface. It may seem odd, but this is the essence of what makes the Web work across so many different implementations. The reason I said that the bindings spec should just *treat* the interface as if the URI:R is one to one is because that way the issues of maintaining the semantic mapping are left to the author, while the interface, which is always manipulating resources, has the effect of manipulating URI mappings. In other words, if you just remove *everything* in the bindings spec that defines an implementation, including all of the attempts at defining bindings as being something other than resources, then what you will end up with is a very simple protocol for manipulating URI mappings on remote servers. ....Roy
Received on Friday, 11 February 2000 00:36:13 UTC