[osis-core] osisRef (finally)

Steve DeRose osis-core@bibletechnologieswg.org
Tue, 2 Jul 2002 14:13:39 -0400


At 04:50 PM -0400 06/30/02, Patrick Durusau wrote:
>Greetings,
>
>Wanted to save this one as I read through all the various posts 
>today to make sure I have some awareness (incomplete no doubt) about 
>where we are and perhaps where we need to go.
>
>First, I think it is clear that osisRef, just as a concept, is like 
>Steve said in one of his posts, very much like IDREF in SGML/XML. In 
>other words it identifies something that is being referenced. Note 
>that within a document instance, an IDREF without a corresponding ID 
>is a syntax error. (Not relevant to the present discussion other 
>than to give you an idea of how I think about IDREF.)
>
>The osisRef is a reference (pointer?) to a particular 
>text/edition/work and usually to a particular place within that 
>work. This does not mean that the osisRef provides a means of 
>getting there, but like map directions, if you have a car, you can 
>get there from here by following the directions.
>
>The osisRef presently is a data type that is used by both "work", 
>"cite",  "outWork", "outCite" and has the following declaration in 
>the schema:
>
><xs:simpleType name="osisRef">
>	<xs:restriction base="xs:string">
>		<xs:pattern 
>value="(([^\s]*\.){0,6}([^\s]*))(@((cp:(\d*)(\+(\d*))?\((.*)\))|((x-(\c*):)(.*)\((.*)\))))?((-(([^\s]*\.){0,6}([^\s]*)))?|(-(([^\s]*\.){0,6}([^\s]*)))(@((char:(\d*)\+(\d*)\((.*)\))|((x-(\c*):)(.*)\((.*)\))))?)?"/>
>	</xs:restriction>
></xs:simpleType>
>
>As modified per Steve's last post on its syntax (char changed to cp, 
>made range optional (warning, on-the-fly editing).
>
>Note that the attributes that use osisRef are not links but 
>pointers. Some other mechanism has to resolve the pointers to make 
>the actual links to other documents.
>
>We also have osisWork
>
><xs:simpleType name="osisWork">
>	       <xs:restriction base="xs:string">
>		   <xs:pattern value="(([^\s]*\.){0,6}([^\s]*))"/>
>	       </xs:restriction>
></xs:simpleType>
>
>Proposal:
>
>References in a document instance (The "who am I" case): use osisID 
>and it is of type osisRef. Document that I need not include 
>Bible.RSV. if that has been declared as an attribute on osisText. I 
>can use "short-ref" (in the non-SGML sense) such as Matt.1.2, etc.

of type osisRef? Does that mean we've lost the distinction of osisID 
vs. osisRef types? I thought we needed to keep that because only the 
latter has grain and range syntax?

>
>References to other document instances: Recommend that such 
>references not use the short form but that is not something I think 
>we can validate. Not certain about current practice of allowing work 
>to be separated from the cite. (shouldn't these be together?)
>
>Why not reduce cite/outCite, work/outWork to simply cite?

That seems fine, but we need different punctuation to separate out 
the work, so we can tell where the break is. That's in part because 
low-order fields of work can be omitted. Also, remember we need to 
settle on a way to find the various bits of a work: auth, title, 
lang, edition,..... Hey! I just had a thought! What if we had a 
formal works-referenced sections (in front or back matter, I don't 
care), which assigned a local name to every work cited. And for each 
such work, what it does is encode a Dublin Core record! That's got 
all the right stuff in it. For generic references, you encode a 
specially-named Dublin Core record that leaves out the irrelevant 
bits (like edition, language, or date).

That would give us a standardized and relatively complete way of 
identifying works, and also a short way of referring to them down in 
the refs; and we wouldn't need any syntax within 'work' since it 
would be just a name (still would have to delimite with other than 
'.' if it's optional.

Then all we have to do is define a nice library of predefined names 
(and make rules about how to extend -- like, un-osis-registered work 
names have to start with x-).

I think that cleans up a whole mess of stuff. Thoughts?



-- 

Steve DeRose -- http://www.stg.brown.edu/~sjd
Chair, Bible Technologies Group -- http://www.bibletechnologies.net
Email: sderose@speakeasy.net
Backup email: sderose@mac.com, sjd@stg.brown.edu