[osis-core] One more round on osisID/osisRef!
Patrick Durusau
osis-core@bibletechnologieswg.org
Fri, 05 Jul 2002 07:41:37 -0400
Troy,
Troy A. Griffitts wrote:
> 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?
>
You are right, most of the time it will not change for an entire work.
But, what if I want to do a parallel edition of bible texts? Each has
its own osisWork value, shouldn't I be able to indicate that as I switch
from one to the other?
Should be in this morning and late this afternoon. Tried to catch
several of you yesterday but with limited success. ;-) (I have to go out
in the early afternoon to get some clothes for my trip later this month
to Germany.)
Thanks!
Patrick
>
>
> 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
>>
>
>
--
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu