[osis-core] osisRef (finally)

Harry Plantinga osis-core@bibletechnologieswg.org
Mon, 1 Jul 2002 14:52:02 -0400


> <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>
>

You probably don't want to use [\s]* for a token.  That would allow
characters like @, (, . in tokens.

> As modified per Steve's last post on its syntax (char changed to cp,
> made range optional (warning, on-the-fly editing).

Also, I think Steve said he like the idea of searching forward from
the cp location to the start of the string match.

> 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.

For a given osisRef, e.g. foo.bar.3.4, how will software be able to tell
whether to add the document's prefix, i.e. Bible.KJV.foo.bar.3.4? My guess
is that this was the purpose of the outCite and inCite or whatever.

Maybe we could use some other way of identifying "relative osisRefs".
E.g. maybe we could require that they start with a ".", e.g.
".Matt.1.2" rather than "Matt.1.2". (The latter would look for a work called
"Matt" and try to find section 1.2.)

Come to think of it, we were going to identify referenced works in the
header,
right?  So we'd never use Bible.KJV.Matt.1.2 -- instead we'd have
<work id="KJV" ...> in the header, and we'd use

KJV.Matt.1.2.

Is that correct?

> Why not reduce cite/outCite, work/outWork to simply cite?

Need to be able to tell whether "Matt.1.3" is a cite or an outCite,
as described above.

>