[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
>