[
Lists Home |
Date Index |
Thread Index
]
- From: Ronald Bourret <rbourret@ito.tu-darmstadt.de>
- To: "xml-dev@ic.ac.uk" <xml-dev@ic.ac.uk>
- Date: Wed, 8 Sep 1999 17:35:58 +0200
Steven R. Newcomb wrote:
> I learned some interesting things from this article, for which I'm
> grateful. Recommended reading!
Thanks!
> I was disappointed that the grove paradigm
> (http://www.prescod.net/groves/shorttut/) was never mentioned, nor was
> GroveMinder (http://www.techno.com). The grove paradigm offers an
> ISO-defined meta-DOM to all notations, including XML.
I've read Paul's tutorial and the GroveMinder summary on the Web, so let's
see if I've got this straight. A grove is basically a property set, broken
down into classes, each of which has properties. There are probably
relationships between those classes. For example, a grove for XML could
have classes for elements, attributes, entities, and so on, where the
element class points to the attribute class. A grove for a relational
database would have classes for tables, columns, etc., where the table
class points to the column class.
(In this sense, the XML information set has much in common with groves, as
it is a property set. Similarly, the DOM could be viewed as an API for a
grove. The XML information set is not a grove because [why? The only
reason I can think of is that it is not been expressed in grove notation].
The DOM is not an API for a grove because it's a bit wishy-washy in places
-- for example, four characters of PCDATA could be one node or four, so
it's not built on a rigid enough data model.)
The nice thing about groves is that all groves, regardless of what they are
built on, have certain commonalities, such as addressability, so you can
perform certain common functions with them.
GroveMinder is generic grove middleware. It has plug-ins, called Minders (I
think of them as drivers), that can build groves over different property
sets. For example, there is one Minder for SGML/XML documents and a
different Minder for relational databases. (There can actually be different
property sets for a "type" of data. For example, one property set for XML
might include entities and another might not, specifying that each entity
is replaced by its value. A different Minder is needed for each property
set.)
One thing GroveMinder can do is store a grove in its own database. (Note
that this is separate from the database addressed by the relational
database Minder -- it has a structure designed to store groves.) Thus,
GroveMinder can store an XML document in a database as a grove and is what
I, in my article, called a content management systems. That is, it can
store and retrieve an XML document as a document.
Some questions:
1) Is it possible to combine groves of different types? For example, can I
take a grove representing a table in a relational database and stuff it
into a grove for an XML document, for example as the content of an element?
If so, does the table grove retain its table-ness, or is it converted to
one or more XML elements? Both cases seem reasonable, although the latter
would presumably require a special converter. If the latter case is true,
then GroveMinder might also fit what I call data transfer middleware,
depending on how the conversion is done.
2) Are groves themselves relevant at a high level in a discussion of XML
and databases? It strikes me that, like SAX and the DOM, they are a useful
tool in implementing software that stores/retrieves XML documents (or data
from those documents) in a database but are not directly relevant to the
discussion itself. Instead, they are most relevant to the user in that they
are likely to weigh heavily in the feature set exposed by a content
management system or (possibly) data transfer system.
3) This isn't directly related to XML/databases, but what other common
functionality do all groves have? For example, can I write an application
that navigates groves, regardless of their source (I think the answer is
yes)? Can I combine groves of different types or convert painlessly -- that
is, without writing any additional code -- from one type to another (I
think the answer is no -- additional code is needed)? Can I hyperlink from
one grove to another (I think the answer is yes)? And so on.
-- Ron
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|