[osis-core] milestone_Start/End/SE

Patrick Durusau osis-core@bibletechnologieswg.org
Wed, 30 Oct 2002 08:31:28 -0500


Troy,

Troy A. Griffitts wrote:

> The case of milestone_SE is defined differently in Start and End
>
>
> Could we do something about these inconsistently long and underscored 
> element names and attributes with regard to the milestone elements.

Such as?

>
> Also, I really don't like doing milestones this way.  I lose all my 
> attributes and have to *hack* them into subType.
>
> I really think we need to allow _attribute declared_ milestones (same 
> old song I've been singing for 6 months now) with attributes mStart 
> and mEnd.
>
> 2 major benefits:
>
> Get all of a tag's attributes.
>
> Tags still get processed in the right place because they really are 
> <q> or whatever.
>
>
> I've not heard any voiced detriments in a while and I can't remember 
> any that are specifically aimed at why the hideous:
>
>
> <milestone_Start Milestone_SE="yoyo" type="q" 
> subType="speaker:Joe|type:blockquote" />
> Hi, I'm Joe.
> <milestone_End milestone_SE="yoyo" />
>
>
> is better than the elegant and understandable:
>
>
> <q type="blockquote" speaker="Joe" mStart="yoyo" />
> Hi, I'm Joe.
> <q mEnd="yoyo />
>
While yours is certainly prettier, ;-), I am not sure it does not cause 
more problems than it solves.

This is off the cuff but here goes:

The issue is when can an element be a milestone and when can it be a 
container? If it has required content (only a few of our elements do) 
then it cannot ever be a milestone, unless, its parent element can 
contain all the things you want to place between the milestones as if it 
were a container. Perhaps an example would help:

Content model: <div> can contain <p>, <list>, PCDATA, but not <q> and we 
allow <p> to be written as a milestone.

Content model: <p> can contain <list> and <q>

<div><p type="hereP" />some text <list>with list items</list><p 
type="hereEndsP"/></div>

works.

but,

<div><p type="hereP"/>some text <list>with list items</list><q>Gotta 
ya!</q><p type="hereEndsP"/></div>

does NOT, because <div> cannot contain <q>

In other words, the content model of the parent would have to match the 
content model for the child, plus allowing the child as a milestone.

Note that:

<div><p>some text <list>with list items</list><q>Gotta ya!</q></p></div>

does work, because the <q> is now properly a child of <p> (all the 
processor of <div> sees is the <p> and that is properly a child of 
<div>. The proper child elements of <p> is specified separately for <p>.

I am not necessarily defending the syntax of milestones and if we can 
agree on a better one, let's fix it before we release a lot of texts 
using it. I don't think the solution is to allow arbitrary elements to 
become milestones, particularly since the average user will not be 
competent to judge when a content model problem is likely to occur.

Patrick




>
>  :)
>
> I can't see any good reason to keep things the way they are and I 
> guess I'm asking officially that it be changed.
>
>     -Troy.


-- 
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu