Lists Home |
Date Index |
Thanks for the links, this is very useful information.
I followed this thread with a lot of interest. Recently I had to work on new
data structures to store objects. After a lot of discussion with different
groups it appeared that what developers like about the relational model is
the capacity to merge or "blend" data from different sources (i.e. tables,
fields). What is appealing in object database is the capacity to link
objects or create associations between objects. The problem is that today
you only get one or the other.
It seems that the ideal storage would be one that allows creating new
objects by "blending" other objects and still allowing links or association
to other objects. Some people proposed using a subject based approach but
very few concrete proposals are on the table form the academic community.
In a nutshell the ideal storage system would be as versatile as relational
databases to "blend" or merge data and create new ones. In fact, a table can
be perceived as a frame (a method-less object). Hence, relational databases
allow creating new frames from existing ones. It would also allow creating
associations between objects and let us type the links, for instance to
allow the creation of standard associations like composition, aggregation,
inheritance and new non standard ones.
I personally find XML a very good representation language but not very
efficient as a permanent storage mechanism. Using XML I found XSLT or XQuery
very useful to blend new representations for existing ones. Xlink has been
quite good to provide an inheritance mechanism. The more I play with it, the
more I find Xlink inheritance mechanism of great value. For example, I can
write an Xlink processor able to process any king of documents having
elements inheriting the xlink characteristics. It is easier to create a
separation of concern when processing data representations. In fact, I was
able to re-create the composite pattern using xlink inheritance (or
architectural form for SGMLers). I used xlink:role to "type" the kind of
link, for example, an aggregate reference would be an
xlink:role="aggregator". It's unfortunate that the community wasn't able to
recognize the full potential of xlink and in general the inheritance
mechanism proposed by such tool.
Didier PH Martin