[osis-core] reference systems: my thoughts - issues

Todd Tillinghast osis-core@bibletechnologieswg.org
Fri, 30 Aug 2002 11:18:13 -0600


Harry,

To make sure I understand your proposal I  would like to create a few
examples and have you confirm them.
Can you confirm that the following statements are accurate and
consistent with your proposed strategy?

1) Work names (namespaces) are hierarchal in nature.

2) The top level identifier defines a reference system.  "Bible"
represents a generic reference system.  "Bible.NIV" represents a work of
sub-class of works that complies with its parent "Bible" reference
system.  "Bible.NIV.1992.en" represents the 1992 English printing of the
NIV sub-class of works that all conform to the Bible reference system.

3) The authors name would no longer be the top level identifier unless
we have defined a reference system based on the author's name, which
seems unlikely.


Can you confirm that the following examples are consistent with your
proposed strategy?

EXAMPLE 1:
<osisText> <!-- default the osisWork="Bible" -->
	<header>
		<work workID="LSV">
			<identifier
type="OSIS">Bible.French.LSV</identifier>
			<refSystem type="OSIS">Bible.French</refSystem>
		</work>
		<work workID="theMessage">
			<identifier
type="OSIS">Bible.TheMessage.1993</identifier>
			<refSystem type="OSIS">Bible</refSystem>
		</work>	
		<work workID="conf">
			<identifier type="OSIS">confessions_augustine.
spck1912</identifier> <!-- reference system not specified and implied to
be the same as the work -->
		</work>	
	</header>
	<div osisID="Ps">
		<div osisID="Ps.45">
			<verse osisID="Ps.45.3">...</verse>
			<note>This same text reads interestingly in
<reference osisRef="theMessasge:Ps.45.3"/>.
			</note> <!-- referring to the 1993 printing of
"The Message" translated by Eugene H. Peterson -->
			<note>The French translation of <reference
osisRef="LSV:Ps.44.3"/>however provides a special flavor given the rich
French language </note> <!-- referring to the French Louis Segond
Vesion.  See notes below. -->

			<note>Interesting discussion of this passage
exists in <reference osisRef="conf:X.3"/>.</note> <!-- referring the
Confessions of Augustine.  (Don't go looking for a real tie between X.3
and Ps.45.3) -->
		</div>		
	</div>
</osisText>


EXAMPLE 2:
Generic scriptural reference Matthew 1:1 would be 
<osisText osisWork="LSV"> <!-- would we use the valud of <work>->workID
here or the value of <work>-><identifier>? Is this the equivalent of an
alias? -->
	<header>
		<work workID="LSV">
			<identifier
type="OSIS">Bible.French.LSV</identifier>
			<refSystem>Bible.French</refSystem>
		</work>
		<work workID="NIV">
			<identifier type="OSIS">Bible.NIV</identifier>
			<refSystem>Bible.NIV</refSystem>
		</work>	
	</header>
	
	<div osisID="Ps">
		<div osisID="Ps.44">
			<verse osisID="Ps.44.3">...</verse>
			<note>The English NIV translates this text as
<reference osisRef="NIV:Ps.45.3"/>.
			<note>Harry could we also say: <reference
osisRef="Bible.NIV:Ps.45.3"/> and would the Bible.NIV mean the work or
reference system or are the equavelent?</note>
		</div>		
	</div>
</osisText>

QUESTION:
1) Is the workID attribute in <work> supposed to act as an alias when
forming a reference?

ISSUES:
1) In the above examples I used Bible.French to imply that a French
reference system is in use.  I did not use FrenchBible without a "."
because I was trying to imply that they are works from the same type
(Bibles).  To me this means that there must be a mapping between the
Bible.French general reference system and the Bible general reference
system.  The trouble I am having is that when I see
Bible.NIV.1993.en:Ps.45.3 I assume that I can "fall back" to Bible and
still use the Ps.45.3 without having to worry about mapping.  However,
Bible.French:Ps.44.3 is equivalent to Bible:Ps.45.3.  In some cases we
seem to mean that the identifier to the right of the ":" could be used
with any level of "granularity" of the identifier to the left of the
":".  (When we say Bible.NIV.1993.en:Ps.45.3 we could fall back to
Bible.NIV:Ps.45.3 or Bible:Ps.45.3 or Bible.NIV.1993:Ps.45.3.)

It also seems that Bible.NIV.1993.en:Ps.45.3 and
Bible.NIV.1993.fr:Ps.45.3 could both fall back to Bible.NIV.1993:45.3
and mean the same thing.

This seems like the biggest problem that is not yet solved with this
strategy.

Summary of problem: We don't know when we can fall back based on the
"namespace" identifier and still use the identifier to the left of the
":" and when mapping is required because we have moved between reference
systems.

The only way I see to solve this problem is to define that the
identifier to the left of the ":" is valid WITHOUT mapping for all "fall
back" levels for the "namespace".  AND force a DIFFERENT top level
identifier for cases where such fall back is not possible.  This would
force to editions (even in the same language) that have different
reference systems to have a different top level "namespace" identifier.
Bible.NIV.1993.en:Ps.45.3 and BibleFrench.NIV.1993.en:Ps.44.3 would be
references two different editions  of the same translation that differ
only by the reference system.

Solutions?

2) In the second example above, I referenced Bible.NIV:Ps.45.3 from
within the Bible.French.LSV.  I don't see a way to create a reference to
a specific work from using a different reference system.  With the other
stategy we could say Bible.French[Bible.NIV]:Ps.44.3.

A solution for this problem would be that we use work definition and
specify the reference system "Bible.French" in <refSystem> when we
declare the work Bible.NIV in the <work> element in the <header>.

3) It seems unfortunate that the default reference system becomes the
work when something other than the work is declared in <osisText>
attribute osisWork.  For example if we declare osisWork to be Bible.TEV
then the full form of all references becomes Bible.TEV:Matt.1.1 rather
than Bible:Matt.1.1, when a reference to the general reference system is
likely intended rather than to the specific work.  Is there a way we can
separate the "default namespace" from osisWork? 

4) Since we can specify a <refSystem> for a <work> that differs from the
identifiers in the works "name", what form does the "fully formed"
reference take if used externally.  
Example:
(work is "Bible.NIV" and refSystem is Bible.French or (FrenchBible)) and
the fully formed reference using the previous reference strategy is
Bible.French[Bible.NIV]:Ps.44.3.  With the new strategy we can say
neither Bible.French:Ps.44.3 nor Bible.NIV:Ps.44.3 nor
Bible.NIV:Ps.45.3.
The issue being that we need a way to express a reference as a single
string that includes BOTH the namespace of the work and the namespace of
the identifier when the differ.  

Solutions?


If we can find satisfactory solutions for these three issues I am in.

Todd