[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