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

Todd Tillinghast osis-core@bibletechnologieswg.org
Tue, 9 Jul 2002 12:19:08 -0600


The intent with both options for #5 was to have the complete information
regarding reference systems or reference system/work pairs continue to
be detailed in the header.  I see that you want to have an alias for the
full reference system/work pair based on the entries in the header.  The
trouble with using a shortened version of the "full name" is that it can
be ambiguous.  The first way is if there are more than one entries in
the header that would match the shortened reference system/work
identifier and second if we were to MIX aliases with fully formed
values.  The best of both worlds would be if we allowed the fully formed
identifiers AND were able to also allow aliases by some syntactical
switch.  

The first option is all alias the second option below is all fully
formed.  

".french:Ps.55.22" (the leading period to indicate that this is an
aliased reference system defined in the header that defines what the
expanded form of the alias namespace "french" means.  There could be
other leading characters this just seemed to make since to me.)
and 
"Bible.FrenchReferenceSystem(Bible.TEV):Ps.55.22"
would be equivalent.

I would suggest that in both cases that the full detail be described in
the header.


I think we are agreeing on #6.  I may have chose the incorrect words to
express the idea.  I THINK you have correctly restated what I was trying
to express.

On #8 if we are to do any of the format validation suggested in #6 we
will need to no use xs:string.  This will not preclude us from extending
it in the future.  In fact it makes it easier in the future.  As it sits
we should at least define a data type that is exactly xs:string and use
it for osisID.  That way we have something easy to grab onto for derived
schema.  This is true of many other places we have xs:string.

On #9 what does it mean to point to another work from a <p>?  It seems
that we should use a <reference> element with the appropiate "type"
attribute rather than providing an ambiguous mechanism to point.
Further what if you need to point to more than one reference?  I would
say the same thing for annotateWork and annotateType.  These are simply
references to other works and the <reference> element should be used
with the type attribute set to "annotation" and the subtype attribute
set to what ever is appropiate.

Todd

Todd

Todd
> -----Original Message-----
> From: owner-osis-core@bibletechnologieswg.org [mailto:owner-osis-
> core@bibletechnologieswg.org] On Behalf Of Patrick Durusau
> Sent: Tuesday, July 09, 2002 11:23 AM
> To: osis-core@bibletechnologieswg.org
> Subject: Re: [osis-core] references and self-ids Part 3 - Proposal
> 
> 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.SequentiallyIDedSortedByTextValueOfVersesOf
T
> >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.SequentiallyIDedSortedByTextValueOfVersesOf
T
> >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.TE
V
> >):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
> 
>