[osis-core] One more round on osisID/osisRef!

Troy A. Griffitts osis-core@bibletechnologieswg.org
Thu, 04 Jul 2002 12:59:10 -0700


Do we really want to allow osisID (who am I) the ability to change the 
work they are claiming to be at a per tag level?  Maybe better as an 
attribute of osisText?



Patrick Durusau wrote:
> Greetings,
> 
> One more round on osisID and osisRef, please read and comment:
> 
> For osisText, attribute as follows:
> 
> <xs:attribute name="osisWork" type="osisWorkType" default="bible.nrsva" 
> use="required"/>
> 
> This specifies for all following elements that the reference system is 
> bible.nrsva, unless overridden by another declaration.
> 
> <xs:simpleType name="osisWorkType">
>     <xs:union memberTypes="osisWorkBase attributeExtension"/>
> </xs:simpleType>
> 
> <xs:simpleType name="osisWorkBase">
> <xs:restriction base="xs:string">
> <xs:enumeration>bible.nrsva.niv</xs:enumeration>
> <xs:enumeration>bible.nrsva.nkjv</xs:enumeration>
> <xs:enumeration>bible.nrsva.nasv</xs:enumeration>
> </xs:enumeration>
> 
> The osisWork value can be extended by adding tokens for date and 
> language, in that order. Should a value be omitted,  the missing value 
> should be represented by a full stop ".".
> 
> So the osisWork value consists of five (5) tokens that represent:
> 
> 1. work (class)
> 2. reference system (here nrsva)
> 3. edition
> 4. date
> 5. language
> 
> Note that Harry can construct an osisWork for 
> augustine_confessions.pusey as x-augustine_confession.pusey and use it 
> with an osisID as x-augustine_confession.pusey:(whatever the reference 
> system is).
> 
> Note I don't think the datatype reaches the level of binding that Harry 
> wanted but would it be satisfied if the xs:documentation for the 
> datatype specified additional information for each entry?
> 
> osisIDs:
> 
> 
> osisIDs are constructed by either assuming the osisWork by default or 
> overriding that default by specifying the osisWork in full on an osisID.
> 
> For example:
> 
> <verse osisID="bible.nrsva.nasv:Matt.1.1"> could be written (assuming 
> the correct osisWork attribute above:
> 
> <verse osisID="Matt.1.1"
> Note that the syntax of the identifier after osisWork is determined by 
> the reference system. Thus if the CEV says: Matt.1.2-6a, that is a valid 
> identifier in that system. It is just a string and matching in that 
> system is just a string match.
> The problem arises in trying to make it possible to map silently from 
> that system (which has an implied range) to systems that do not. I would 
> suggest that the osisRef, which has a range mechanism, be used for that 
> purpose (see below).
> 
> 
> osisRef:
> 
> For ease of use internal to a document, I am suggesting that we document 
> in prose that osisRef also inherits the osisWork specified in the 
> osisText element. Recall that internally, these are pointers that can be 
> used by software to implement linking that is not inherent in the 
> present OSIS syntax. It would be the software's use of an OSIS map 
> (separate document) or other means to resolve how to link from 
> bible.nrsva.nasv:Matt.1.1 and it what language if none were specified.
> 
> A full osisRef for the CEV passage that I keep using as an example would 
> appear as follows:
> 
> <p><reference osisID="bible.cev:Matt.1.2-6a"  
> osisRef="bible.nrsva:Matt.1.2-Matt.1.6">Matt.1.2-6a</reference>
> 
> Note that I have dropped the "a" qualfier on the second token of the 
> reference range since it does not exist outslde of the CEV reference 
> system.
> 
> For systems that do not resolve ranges, it would be entirely permissible 
> to encode the passage as:
> 
> <p><reference osisID="bible.cev:Matt.1.2-6a"  
> osisRef="bible.nrsva:Matt.1.2-Matt.1.6">Matt.1.2-6a</reference>
> <milestone type="verse" osisID="bible.cev:Matt.1.2 
> osisRef="bible.nrsva:Matt.1.2"/>
> <milestone type="verse" osisID="bible.cev:Matt.1.3 
> osisRef="bible.nrsva:Matt.1.3"/>
> <milestone type="verse" osisID="bible.cev:Matt.1.4 
> osisRef="bible.nrsva:Matt.1.4"/>
> <milestone type="verse" osisID="bible.cev:Matt.1.5 
> osisRef="bible.nrsva:Matt.1.5"/>
> <milestone type="verse" osisID="bible.cev:Matt.1.6a 
> osisRef="bible.nrsva:Matt.1.6"/>
> 
> Note that I am covertly suggesting that we simply drop validation of 
> syntax and content of the osisID, osisRef and osisWork and simply 
> specify in prose how to construct a valid value.
> 
> Patrick
>