Print

Print


I'm going to try to answer Lew Barth's question about mapping a Paradox
database into TEI Lite at a rather general level. This may be irritating
for him and anyone else who just wants a quick plug n play solution, but
I think it's an important enough question to consider seriously. My
answer is as follows:
 
A relational table is an abstraction from reality. In making the
abstraction, you identify certain pieces of information and ways of
organizing them which can conveniently be manipulated as relational
data. You make a mapping between entities, attributes and relationships
in the real world, and rows, columns, and joins in the database world.
(Well, OK, databases do exist in the real world too, but you know what I
mean). Because you make that mapping in a principled and well defined
way, inferences which you can draw from the database world are likely to
be applicable to the real world too.
 
An SGML document is also an abstraction from reality. In making that
abstraction you identify certain features and their attributes which you
wish to treat as primary objects, and you also identify ways in which
instances of those objects can meaningfully coexist. This is a different
kind of mapping.  There's no reason in principle why it should look
anything like the mapping that produced the relational tables.
 
Now, it's true that you can treat a table *as a table* and map it on to
the SGML representation of a table. Tables, as I said, exist in the real
world! But isn't that putting the cart before the horse? The only reason
we created these tables in the first place was so that we could say
something intelligent about the real world objects which they model. So
why not model those objects directly in SGML?
 
If you have rows containing information about Geniza fragments, then you
might create an SGML object called <genizaFrag> with its own
substructure/ attributes etc. Then the question of how you display and
manipulate it comes down to the question of how you manipulate and
display SGML objects in general.  You can do some things that relational
DBMS don't do very well (like handle text strings, follow hyperlinks
etc) and can't do some things that they do do very well (like perform
relational algebra) unless you write special purpose software. But why
do relational algebra if you don't have to?
 
Or you might just decide to handle this information as a list of
bibliographic citations (that's what it sounds like to me)....
 
You'll note that I haven't said anything about feature structures in
this response, nor have I mentioned dsssl. This is because I am
confidently expecting someone else reading this list to do so, not
because I think they are irrelevant.
 
Lou