- From: Babich, Alan <ABabich@filenet.com>
- Date: Fri, 28 Aug 1998 16:47:13 -0700
- To: "'Jim Davis'" <jdavis@parc.xerox.com>, www-webdav-dasl@w3.org
> The purpose of this message is to make (or reopen) the case for > defining a structure criteria (also called "structured query") in > DASL. A while ago, I sent an e-mail describing what we should be doing as a standards body. The gist of it is, that what we do should be more like "codifying what everyone is already doing" and less like "inventing and standardizing non existent practice". Up to and including SQL 92, it is not possible to even declare a column that is not a basic data type (i.e., string, integer, floating point, datetime, or datetime interval), let alone have a query condition involving such a column. In other words, it is not possible to declare or query an array or a table or anything like a C structure as the value of a column. Said another way, tables are flat, i.e., normalized. This fact all by itself makes an attempt by DASL to standardize querying non base datatypes a dubious proposition. However, it's even more clear than that. The world is not static. Technology inevitably advances. Whether from customer demand, or because RDBMS developers sit around and think up new things to do to keep themselves busy, or some combination of both, >> denormalized RDBMS's are coming. << The reason(s) why don't matter. What matters it that it is happening. This is as inevitable as the sun coming up tomorrow, although it may take longer. Furthermore, due to competitive pressure, once any major vendor has a feature, it becomes a checklist item, and all major vendors end up having the feature eventually. Then, there is a pressure for standardization of the feature, so it eventually tends to become standardized. I happen to be a little bit aware of Oracle 8.0, which has been shipping for a while now. In Oracle 8.0, they have added object valued columns, arrays, table valued columns (nested tables), and abstract datatypes (these even have methods you can invoke), among other things. They extended SQL to declare these things. They also have added some features to SQL to aid in querying, e.g.: name resolution to support abstract datatype attributes, implicit joins via object references, and abstract datatype comparisons via a new MAP method, implemented in the type definition. So, Oracle 8.0 provides some concrete evidence that what I said above is in progress. But, I believe the Oracle 8.0 extensions are proprietary. It would not be appropriate for DASL to just pay attention to one proprietary extension to the usual query mechanisms and ignore the others. In a perfect world, standards would be complimentary, and would interoperate. In a bad world, standards would compete and be incompatible with each other. I strive to make the real world a little bit more like the perfect world. Therefore, I would like to see whatever design the RDBMS vendors and others end up with for querying structured data be compatible with DASL and vice versa. Should DASL try to drive the standardization of querying structured data and the RBDMS industry conform to what DASL does, or should the RDBMS industry drive it and let DASL accommodate the basic part of it? (1) The RDBMS industry has to do much more than DASL 1.0 has to do as far as providing query functionality. (2) The RBDMS market is billions of dollars. The WebDAV market is nascent, i.e., currently zero dollars. (3) Right now, DASL accommodates a basic subset of what SQL 92 does, and a basic subset of what DMA does: It is reasonable to map DASL into SQL and into DMA, and map the results back out to DASL again. It is also reasonable to just implement DASL query functionality from scratch on some sort of basic property store. (4) For most companies, it is usually the right decision to leverage other companies' RDBMS technology and/or content based retrieval engines as opposed to building the same technology into their products. Therefore, many WebDAV systems will be built using them as components. Therefore, it is important for WebDAV to accommodate these technologies. Putting (1)-(4) together, I conclude that DASL 1.0 should let the RDBMS industry drive querying structures, and accommodate what they end up doing on a later release. For DASL to try to drive the standardization of querying structures would be like the tail trying to wag the dog. >>> This is the real reason I don't think DASL 1.0 should try to define querying XML structures. <<< All the other reasons are less important. Note that once you step off the beaten path (and querying structures is off the beaten path), you have to watch out for land mines. It seems that WebDAV has already shown the truth of this statement: Consider -- DAV. Distributed Authoring and Versioning. Authoring and versioning have been around for decades. The only thing a little different is the Distributed aspects of the internet. So, WebDAV, appropriately, it seems, attempted to define shared and exclusive locks. Locking has been around for decades. Sounds like it should have been easy. Guess what? It seems WebDAV specified a locking bug, i.e., WebDAV stepped on a land mine, having only stepped off the beaten path with one little toe. This wasn't apparent until an implementation was attempted. Well, querying structures is a much bigger step off the beaten path, and so the danger of stepping on a land mine is greater. All the other discussion we have already started having and will continue to have about terminology is beside the point. Hopefully, the terminology discussion won't act as a smoke screen and obscure the big picture I have presented here. Fortunately, I don't see the need to define querying XML structures in DASL 1.0. I think the need to try to work on some content based retrieval operators is much greater, and would be a much better use of the limited amount of time we have left. There will be plenty of extensions added in later releases of DASL. Alan Babich
Received on Friday, 28 August 1998 21:45:55 UTC