[osis-core] references and self-ids Part 3 - Proposal

Patrick Durusau osis-core@bibletechnologieswg.org
Tue, 09 Jul 2002 13:23:15 -0400


Todd,

Responses below, but one general question:

Generally, how do you view mapping a system id to your 
"Bible.NRSV(Bible.TEV)" so that in attributes (if necessary, say a 
non-default reference) I could just say:
 bible.tev? In other words, map a system identifer to the longer string 
just for convenience purposes?

Second, how do you view allowing the rest of the bibliographic 
information that is now in work to accompany the entry you propose for 
<referenceSystem> (either proposal) so that researchers have traditional 
bibliographic information for that entry? (More information, particular 
of a bibliographic kind, seems like a good idea to me but then I have an 
academic bent towards that sort of solution.)

Todd Tillinghast wrote:

>The follow are a list of proposed ideas related to references:
>(Each item is largely independent from the others.)
>
>1) I think declaring in the header the reference systems or reference
>system/work pairs used in a document is a great idea.  (This is not
>really a proposal.)
>
OK. ;-)

>
>
>2) I would like to propose that when creating a reference or a self-id
>that work ALWAYS be a part of the attribute that is contains the
>reference itself if not defaulted.  Since we are relying on techniques
>other than valuators for validating the rest of the reference why not
>make the work and the reference itself a single attribute.  This will
>leave room for validation based on "derived" schema, since a regular
>expression can be written for a single data type but can not be written
>to act contingently based on the values of two (or more) attributes.  
>
>Although having the work as a separate attribute provides to opportunity
>to match occurrences with matching definitions in the header, the
>validation is weak and the opportunity for richer validation for the
>entire reference out weights the value of simple work validation.    
>
Provisionally OK.

>
>3) I would like to propose that grain exist as an option for all
>references AND self-ids.
>
Yeah, I think you are right. How else to have self-ids within a 
reference system that point to smaller parts than are allowed by the 
traditional reference system.

>
>4) I would like to propose that all references AND self-ids be allowed
>to optionally be ranges.  This is needed to self-id verses that are not
>broken into distinct verses in the translation being encoded and a
>single <verse> element represents several logical verses in the defined
>reference system.  (If we do not adopt this concept for self-ids then we
>will be forced to create a reference system for each minor variation
>that individual translations take on the basic reference systems.)
>
>This could allows for self-ids for higher level containers like <p> and
><div>.  (I am "Matt.13.10-Matt.13.17" as seen in the Matt.13 encoding I
>send out Sunday.)
>
Yes, same reasoning as above. (noting that we are not addessing 
discontinuous ranges in this release)


>
>5) I would like to propose that we adopt one of the two following
>options for ALL references and self-ids:
>
Question: in 5b can I have a shorthand to refer to the referenceSystem 
as specified in the header?

Such that I have

<reference ref="Bible.French"> refers back to 
"Bible.FrenchReferenceSystem(Bible.TEV):Ps.55.22" in the header

<referenceSystem
referenceSystem=Bible.FrenchReferenceSystem(Bible.TEV)"/>

instead of:

<reference ref=Bible.FrenchReferenceSystem(Bible.TEV):Ps.55.22">a
reference expressed using the French reference system AND specifying the
TEV version.</reference>

Question: Generally I take it that "osisID" and "ref" are making an 
implied distinction between "who I am" and "where do I point"?

The reason I ask is that if I have your:

<reference ref=Bible.FrenchReferenceSystem(Bible.TEV):Ps.55.22">a
reference expressed using the French reference system AND specifying the
TEV version.</reference>

Between the <reference></reference> tags, is that a reference to 
"Bible.FrenchReferenceSystem(Bible.TEV):Ps.55.22" and if the actual text 
of the Psalm appears from that version, what is its "who I am" id? Does 
the ref do double duty in such a case? Or should I include <verse 
osisID> within the <reference> to carry that information? (I assume the 
latter but wanted to make sure I understood the proposal.)

Depending upon the answer to the shorter reference to the fuller 
identifier and on whether I get a bibliographic entry or not, I tend 
towards 5b. Primarily because of the richer syntax for references. (We 
have only discussed fairly simple references so far and they tend to get 
more complicated fairly quickly. So a richer system, provided it is not 
too burdensome for the simple cases seems to me to be preferred.)

>
>5a) OPTION 1:
>reference or self-ID: [referencePrefix:]ref[@grain][-ref[@grain]] 
>where referencePrefix is defined in the header and behaves like a
>namespace prefix that defines a reference system or a reference system
>and a specific work.
>
>
>
>Example:
><references>
>	<referencePrefixDefault referenceSystem="Bible.NRSV"
>work="Bible.TEV"/>
>	<referencePrefix refID="KJV" referenceSystem="Bible.KJV.1612"/>
>	<referencePrefix refID="NRSV" referenceSystem="Bible.NRSV"/>
>	<referencePrefix refID="FrTEV"
>referenceSystem=Bible.FrenchReferenceSystem" work="Bible.TEV"/>
>	<referencePrefix refID="TEV" referenceSystem=Bible.NRSV"
>work=Bible.TEV"/>
>	<referencePrefix refID="sorted"
>referenceSystem="Bible.Todd.SequentiallyIDedSortedByTextValueOfVersesOfT
>EV" work="Bible.TEV"/>
></references>
>...
><verse osisID="Gen.1.1">...</verse> <!--implies
>"Bible.NRSV(Bible.TEV):Gen.1.1" -->
>
><reference ref="KJV:Gen.1.1">Gen 1:1 using the KJV 1612 reference system
>but not specifying any work.</reference>
>
><reference ref="Gen.1.1">a reference to the default reference system and
>work if specified.</reference>
>
><reference ref="sorted:16">a reference to the sixteenth verse from the
>TEV when the verses are sorted based on the text value of the
>verses.</reference>
>
><reference ref=Bible.FrenchReferenceSystem(Bible.TEV):Ps.55.22">a
>reference expressed using the French reference system AND specifying the
>TEV version.</reference>
>
>5b) OPTION 2:
>reference or self-ID:
>[referenceSystem[(work)]:]ref[@grain][-ref[@grain]]
>
>Provide a richer syntax for "references" and require the full reference
>system or reference system and work if not the default.
>
>Example:
><references>
>	<referenceSystemDefault
>referenceSystem="Bible.NRSV(Bible.TEV)"/>
>	<referenceSystem referenceSystem="Bible.KJV.1612"/>
>	<referenceSystem referenceSystem="Bible.NRSV"/>
>	<referenceSystem referenceSystem=Bible.NRSV(Bible.TEV)"/>
>	<referenceSystem
>referenceSystem=Bible.FrenchReferenceSystem(Bible.TEV)"/>
>	<referenceSystem
>referenceSystem="Bible.Todd.SequentiallyIDedSortedByTextValueOfVersesOfT
>EV(Bible.TEV)"/>
></references>
>...
><verse osisID="Gen.1.1">...</verse> <!--implies
>"Bible.NRSV(Bible.TEV):Gen.1.1" -->
>
><reference ref="Bible.KJV.1612:Gen.1.1">Gen 1:1 using the KJV 1612
>reference system but not specifying any work.</reference>
>
><reference ref="Gen.1.1">a reference to the default reference system and
>work if specified.</reference>
>
><reference
>ref="Bible.Todd.SequentiallyIDedSortedByTextValueOfVersesOfTEV(Bible.TEV
>):16">a reference to the sixteenth verse from the TEV when the verses
>are sorted based on the text value of the verses.</reference>
>
><reference ref=Bible.FrenchReferenceSystem(Bible.TEV):Ps.55.22">a
>reference expressed using the French reference system AND specifying the
>TEV version.</reference>
>
>
>6) I would like to propose that the FORM but NOT the VALUES within a
>reference AND self-id be validated in the core.
>
>Example:
>number: any integer
>XMLName: a valid XML name
>basicOSISIDStructure: one or more XML name separated by periods
>referenceSystem: basicOSISIDStructure
>work: basicOSISIDStructure
>ref: basicOSISIDStructure
>grain: char.number | enum.XMLName | word.number 
>referenceStructure: [referenceSystem[(work)]:]ref[@grain][-ref[@grain]]
>self-id: referenceStructure
>reference: referenceStructure
>
Well, ref -> basicOSISIDStructure -> one or more XML names separated by 
periods -> XMLName -> a valid XML name, means that you could not have 
1John for example.

Relying upon:

XML 1.0 http://www.w3.org/TR/2000/REC-xml-20001006

[5]    |Name|    ::=    |( Letter 
<http://www.w3.org/TR/2000/REC-xml-20001006#NT-Letter> | '_' | ':') ( 
NameChar <http://www.w3.org/TR/2000/REC-xml-20001006#NT-NameChar> )*|



NameChar?

[4]    |NameChar|    ::=    | Letter 
<http://www.w3.org/TR/2000/REC-xml-20001006#NT-Letter> | Digit 
<http://www.w3.org/TR/2000/REC-xml-20001006#NT-Digit> | '.' | '-' | '_' 
| ':' | CombiningChar 
<http://www.w3.org/TR/2000/REC-xml-20001006#NT-CombiningChar> | Extender 
<http://www.w3.org/TR/2000/REC-xml-20001006#NT-Extender> |



But with an exclusion for period and colon from the tokens?

ref -> basisOSISIDStructure -> one or more OSIS tokens separated by 
periods -> OSIS tokens -> NameChar less '.' and ':'

>
>7) remove osisWork, cite, and outCite from globalAttributes (leaving
>osisID to be self-id as described in #6)
>
OK.

>
>8) Make osisID of some type other than xs:string.
>
Suggestions on type? xs:string allow easy extension for further validation.

>
>9) Use the reference element for all other pointing needs.  (using the
>reference structure described in #6)
>
Not sure what you mean by all pointing needs? What if I want an element, 
say a <p> to have an osisID but also point to another work, perhaps 
Harry's illustration that this <p> is a comment about some other work? 
Shouldn't elements be allowed to have pointers aside from <reference> 
elements?

Good show Todd!

Much to think about!

Comments?

Patrick



>
>Todd
>
>
>

-- 
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu