[osis-core] empty tag / milestone proposal

Harry Plantinga osis-core@bibletechnologieswg.org
Wed, 19 Jun 2002 17:23:15 -0400


I think Troy makes a good point. If some people use segmented
containers (only) and others use milestones (only), they won't
be able to share documents or processing software. If we are going
to treat start/end milestones as defining containers, we at least
have to put that in the documentation.  And any software that is
supposed to deal with all OSIS docs would have to handle it.

Using start and end milestones for containers is non-standard XML,
and normal XML processing software may not work with it correctly.
DOM parsers will give trees that don't represent the true structure
of the document (of necessity, since the structure is not a tree).
Software would pretty much be limited to a SAX-style, event-driven parse
of the document and custom software if those start/end milestones
_really_ need to be treated as containers and not just as jump
targets.  You could make a case that it's no longer compliant with
XML standards, since you can't use a DOM parser in the normal
manner, etc.

On the other hand, all those overlapping hierarchies will get
nasty if segmented. Imagine 10 overlapping hierarchies. Each
time you need to split an element in one hierarchy, you may have
to split all the other hierarchies at that point as well, meaning
up to 10 end tags before the split followed by 10 start tags. Give
each tag its mStart and mEnd attributes and you've got a mess.

I think this is an unrealistically extreme example. Wasn't
the case made in Rome that the amount of overlap between paragraphs
and verses would actually be fairly small?  And some hierachies
layered on top, such as commentaries, would presumably be handled
as external documents with pointers.

Of course, segmented containers would also result in extra messing
around. To assign an attribute to a container in the segmented container
approach, would I have to assign it to all of the segments? Or,
if I assume that an attribute of any segment is an attribute of
the whole container, what would I do if two different segments have two
different values for the same attribute? Would I need special tools
for splitting and combining segments? Would XSLT work correctly
on segmented containers, i.e. how would XSLT know to process
starting segements and continuation segments differently?

XML is just not good for heavily overlapping hierarchies. But if
you gotta do it, depending on the situation you may want to use
the segmented container approach (so you can process with XML
tools) and you may need to use the milestone approach (custom
software, heavily overlapping hierarchy). But if you support
milestones you have to use SAX-style parsing and may not be
able to use all XML tools...

I'm torn. I've been agonizing over this for too long. I have
to go home. Good night!

-Harry

-----Original Message-----
From: owner-osis-core@bibletechnologieswg.org
[mailto:owner-osis-core@bibletechnologieswg.org]On Behalf Of Troy A.
Griffitts
Sent: Wednesday, June 19, 2002 4:08 PM
To: osis-core@bibletechnologieswg.org
Subject: Re: [osis-core] empty tag / milestone proposal


In my opinion it is not enough
to say: just use empty elements and treat them as milestones.

I would say that we need to either include this construct or not include it.

Saying XML allows it is not sufficient, if WE add it to the OSIS spec,
there will be work that needs doing to process text with this construct.