[osis-core] osisID proposal

Todd Tillinghast osis-core@bibletechnologieswg.org
Mon, 5 Aug 2002 14:58:22 -0600


> > Reasoning:
> >
> > The osisIDs are always what is expected from the standard reference
> > system identified by Work. That allows users to rely upon their
> > expectations on what will be matched by a standard query.
> >
> > Note that the second part of the portion would be found on a search
for
> > Matt.1.6 (since two elements now have that as a part of the osisID)
> > which is what should be returned without further processing.
> >
> > The semantics of segID (Todd's splitID) indicates that it is a
segment
> > of the portion that occurs prior to the @ sign.
> 
> I'm not sure I understand this proposal.  If I want to split a
> <div osisID="Matt.1"> into two pieces, would it look like this:
> 
> <div osisID="Matt.1" segID="Matt.1@a">...</div>
> <div osisID="Matt.1" segID="Matt.1@b">...</div>?
> 
> If that's the case, I don't see why the osisID is included in the
segID.
> That is, it seems to me that one of the following would suffice:
> 
> <div osisID="Matt.1@a">
> 
> -or-
> 
> <div osisID="Matt.1" segID="a">
> 
> -Harry

1) Not all elements that are segmented will have an osisID.  For the
elements that can have an osisID not all of them will.  By having a
segID attribute we will have a consistent strategy for segmented
elements.

2) When we try to use osisID for segmentation we get back into forcing
the osisID to be unique (and likely to having it be a single identifier
rather than a list) because the prev and next attributes should point to
only one element each.  
Ugly example with an osisID with MULTIPLE identifiers that I don't know
how to fill out if there is no segID.
<verse osisID="Matt.1.6 Matt.1.7 Matt.1.8 Matt.1.9 Matt.1.10 Matt.1.11"
next="what would we put here">...</verse>
<verse osisID="Matt.1.6 Matt.1.7 Matt.1.8 Matt.1.9 Matt.1.10 Matt.1.11"
prev="what would we put here">...</verse>

What I think works better. 
<verse osisID="Matt.1.6 Matt.1.7 Matt.1.8 Matt.1.9 Matt.1.10 Matt.1.11"
segID="MattChapter1Verse6Through11Part1" next="
MattChapter1Verse6Through11Part2">...</verse>
<verse osisID="Matt.1.6 Matt.1.7 Matt.1.8 Matt.1.9 Matt.1.10 Matt.1.11"
segID=" MattChapter1Verse6Through11Part2"
prev="MattChapter1Verse6Through11Part1">...</verse>

I intentionally used a string that does not look like a identifier to
make the point that it is not a reference or reference system style
identifier.  I think it would be nice in practices to follow a
convention similar to our reference style identifiers.
Here is a prettier version.
<verse osisID="Matt.1.6 Matt.1.7 Matt.1.8 Matt.1.9 Matt.1.10 Matt.1.11"
segID="Matt1.6-Matt.1.11:a" next=" Matt1.6-Matt.1.11:b">...</verse>
<verse osisID="Matt.1.6 Matt.1.7 Matt.1.8 Matt.1.9 Matt.1.10 Matt.1.11"
segID=" Matt1.6-Matt.1.11:b" prev=" Matt1.6-Matt.1.11:a">...</verse>
Remember the segID is SIMPLY a string identifier and is NOT a range and
is not intended to be parsed.

3) In your first example you are reintroducing grain into the osisID.
Troubled ground we have already walked through. (At least I thought we
had resolved that osisIDs would not have a grain.  But that may have
been coupled with not using osisIDs for segmentation identifiers.)

4) In your second example you are presuming that the segID is tied to
the osisID.  Although in many cases the segID will likely take the form
of a reference style identifier (I think this would be a good practice)
it should not be constrained to.  This is especially true of cases where
there is no osisID attribute in the segmented element or there is no
valid/reasonable osisID value to be assigned to the osisID attribute of
the segmented element.

If you were to define a reference system that creates a separate
identifier for the split chapter in this case you could avoid the formal
segmentation strategy as shown in examples 1 and 2 below.  (We would
have to be careful not to confuse which are sub-chapter identifiers and
which are verses, if we did such a thing.)  Example 3 demonstrate the
handling the situation with the segmentation strategy used for elements
that don't have an osisID.

Example 1
(Default reference system=Bible.KJV)
<div osisID="Matt">
	<div>
		<title>Special section 1</title>
		<div osisID="Matt.1 Bible.Todd:Matt.1.a">
		</div>
	<div>
	<div>
		<title>Special section 1</title>
		<div osisID="Matt.1 Bible.Todd:Matt.1.a">
		</div>
		<div osisID="Matt.2">
		</div>
	</div>
</div>

Example 2
(Default reference system=Bible.Todd)
<div osisID="Matt">
	<div>
		<title>Special section 1</title>
		<div osisID="Matt.1.a ">
		</div>
	<div>
	<div>
		<title>Special section 1</title>
		<div osisID="Matt.1.b ">
		</div>
		<div osisID="Matt.2">
		</div>
	</div>
</div>

Example 3
(Default reference system=Bible.KJV)
<div osisID="Matt">
	<div>
		<title>Special section 1</title>
		<div osisID="Matt.1" segID="Matt1a" next="Matt1b">
		</div>
	<div>
	<div>
		<title>Special section 1</title>
		<div osisID="Matt.1" segID="Matt1b" prev="Matt1a">
		</div>
		<div osisID="Matt.2">
		</div>
	</div>
</div>


Todd