[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