- From: Tim Bray <tbray@textuality.com>
- Date: Thu, 01 Jan 1970 00:23:36 -0800
- To: Tim Berners-Lee <timbl@w3.org>
- Cc: "Roy T. Fielding" <fielding@apache.org>, Sandro Hawke <sandro@w3.org>, www-tag@w3.org
Tim Berners-Lee wrote: > A model in which URIs identify web pages is a REST model, > and a rather better one than one where they don't. I would > really like you to work through the model and see that it doesn't > break anywhere. You may have to introduce another term. > But you;ll end up with something much more useful IMHO. Anybody who isn't, by this point, bleeding from the brain over this thread is a much stronger person than I. I have made a resolution that I will go back and read all the messages once or twice more and think about it some more, but in the interim here are some more data points. I've always been really sympathetic to what you might call the Fielding position ("web architecture doesn't know/care what a resource *is*, it just compares URIs and interchanges representations"). The corollary is that since people obviously care what a resource is, we need to establish some policy to keep things manageable ("Cool URLs don't change") and some mechanisms to talk about what resources are (RDF & the rest of the semweb stuff). While TimBL's world-view seems consistent, I just have real trouble with the notion that http: URIs necessarily identify web pages, because it seems to me that there are lots of them that just don't. Let me give a couple of examples. 1. Antarctica's Visual Net This is the application that my company sells, of which I wrote a large part. It is implemented as an Apache module, and presents maps of information spaces. For a large information space with millions of objects, clearly an effectively infinite number of useful maps can be drawn. Each of those maps is URI-addressable (with a certain amount of "?arg=value&arg=value" in the URI, but that's fair), and each dereference request provokes a really complex flurry of computation against a bunch of volatile in-memory data structures, some really aggressive user-agent sniffing, and the emission of pure HTML with bitmaps, pure HTML with a bunch of vector graphics code, or pure XML with no graphics code at all, in two different possible XML dialects, and in the future likely something completely different. When we generate XML, the representation is of almost no direct use and needs further processing on the client side (in XSL or the Flash MX engine or a 3d renderer) to be useful. We violate REST in that we use cookies, but we try really hard to pack as much of the map identification into the URI as possible. We *hope* that the Web's caching machinery will keep clients from stupidly re-dereferencing a map in the interests of keeping our server loads manageable. In some deployments, when you drill way down into the maps at a high level of detail, the next drill-down URI into the map space might well decide to branch into the underlying data store (ERP systemk, library catalog, whatever) use its output as the representation. We reserve the right in future to invent new kinds of representations that we can't begin to imagine now. Anyhow, no matter how far I turn my head sideways and squint, it just doesn't feel correct to say that the URIs pointing into one of our map deployments represent, in any meaningful sense, a "web page". That is to say, the representation returned by any one dereference is not fundamental; it is ephemeral and neither the users nor the programmers would for a second consider it to "be" the resource. It feels perfectly comfortable to say that each of these URIs identifies a resource and that our software emits representations. It feels perfectly natural to make RDF assertions about particular URIs in the space without worrying about what representation you might see next. I'm sorry, I don't think these URIs identify web pages; they identify resources. 2. XML Namespace Names Namespace names are URIs, and they were chosen this way back in 1999 largely (in the XML community) because of their useful syntactic uniqueness properties and (in the nascent RDF community) because of the emerging grander ambitions for URIs. For some years, I steadfastly argued that these URIs were just names and don't you worry your pretty little head about what they point at. This position turned out to be untenable; the user population really wanted to dereference these and get something back. So now we're arguing about what representations to return and the various flavors of RDDL. Well, if you consider that an XML Namespace is a Resource, there's no inconsistency or angst here. The resource previously was typically without representations and still worked OK; and now it turns out that a RDDL document will likely be a very useful representation of that resource. Dan argues hotly that an XML Schema is a useful representation of a namespace-name resource and despite the fact that <snicker> he's clearly wrong about it being useful, it is undeniably some kind of a representation. Once again, no matter how hard I try, it's easy to believe that XML Namespaces are resources, but really hard to believe that they're web pages. Concluding notes: (a) In both of my examples, the resources identified by the URI map fairly nicely onto the actual meaning of the English word "resource" - one of Antarctica's maps is a resource in human-speak (that's why people pay for the software), and if an XML Namespace (typically a pre-coooked XML vocabulary with pre-cooked semantics) isn't a resource as the word is normally used, I don't know what is. My point is not only is the Fielding formalism useful to programmers and self-consistent, the terminology is useful to ordinary people. (b) In my vision of the semantic web, it makes all sorts of sense to package up RDF assertions about Antarctica's maps or XML namespaces and these could be really useful without pretending, against the evidence, that either kind of URI actually points at a "web page". -Tim
Received on Saturday, 25 January 2003 11:34:10 UTC