Lists Home |
Date Index |
- From: "W. Eliot Kimber" <email@example.com>
- To: "firstname.lastname@example.org" <"Len Bullard"@mail.HiWAAY.net>
- Date: Tue, 08 Feb 2000 09:44:34 -0600
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.
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.
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).