Re: The Power of Groves
Len Bullard wrote: > >W. Eliot Kimber wrote: > > > > XML *appears* to be a universal data abstraction, but it's not quite, > > because it is already specialized from nodes with properties to > > elements, attributes, and data characters. > > It has an abstract model: roughly, the InfoSet. Yes, it has an abstract model, but what is the abstract model that underlies the XML abstract model? Within the infoset (or the SGML property set), "element" is a specialization of "node". It is "node" that is the base underlying abstract data model from which the specialized types "element", "attribute", "data character", etc. are defined. Without this completely generic, universal, base, there is no way to meaningfully compare different data models to define, for example, how to map from one to other, because they are not defined in terms of a common definitional framework. > If you had replied, "groves could be used to make that abstraction > more useful" I would have thought groves more interesting for the > problem: a meta contract for multiple encodings, perhaps more > descriptive, perhaps as an adjunct to the abstract IDL. I thought that's what I said. Let me say it explicitly: groves could be used to make that abstraction more useful. > > It's too bad that we didn't appreciate the existence > > or applicability of EXPRESS at the time, because if we had we very well > > might have used it. > > That strikes me as odd. We certainly did know about it. *I* didn't know about it. James didn't know about it (or if he did, didn't mention it). The original "STEP and SGML" work was about storing SGML strings in as values of EXPRESS entity attributes, not about using EXPRESS to model SGML. With Yuri Rubinksi's untimely death, the original driving force behind the effort died. It wasn't until 1998 that Daniel Rivers-Moore resurrected the effort and convinced me to participate. > Is a grove a means to standardize? Is it better and why? For what? > In 50 words or less. <fifty-words> Groves, by providing a generic, basic, universal abstract data model provide a formal basis for defining data models for specific data types, e.g., XML, VRML, relational tables, etc. This provides a basis for standardizing abstract data models and enables the application of generic processing to data in a provable, testable, way. </fifty-words> UML, for example, provides a good data modeling language and a good implementation specification language, but it doesn't provide a *data instance representation* abstraction, which is what groves are. But, for example, it would be possible to define a generic mapping between UML models and the grove representation of data instances for the model. Note that this approach is different from the typical approach of using UML to go straight to implementations from the abstract model. Putting the additional layer of groves between the abstract data model and implementation gives you additional leverage and flexibility and enables the development of generic data management layers like GroveMinder (imagine a DOM-type application environment that is not limited to the processing of XML-based data). Cheers, E.
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format