[sword-devel] How do I encode osisRefs to lexicons?

Chris Little chrislit at crosswire.org
Thu Jun 9 15:57:54 MST 2005

Joachim Ansorg wrote:
> Hi,
> thank you (and Chris) for your replies.
>>The osisRef can have an optional prefix followed by a colon. In your
>>example it is MyLexName. If it is not present the OSIS manual says that
>>it refers to the same work. So <reference osisRef="Eve">See
>>Eve</reference> is proper.
>>I understand that this also means that if we have references to
>>something outside of the work that it needs to have the prefix as in
>><reference osisRef="Bible:Gen.1.1">See Genesis 1:1</reference>
> Shouldn't the prefix refer to an OSISWork? Or is Bible defined for that. I 
> don't remember I read that in the OSIS manual. But I don't know that too 
> well.

The prefix should be an OSISWork, but can be omitted for the one work 
that is designated as default. If you use "Bible" as a prefix, you need 
to declare a Bible work in the header. But that's for valid OSIS, not 
necessarily Sword, since Sword importers discard the header anyway.

We should try to figure out what we want to do about this. Some options:

- Always require that the default be the current work.
- Require that this: (or something similar) precede references to the 
current work.

- Always require that Bible references use "Bible:" as the prefix. (This 
is an incomplete solution since Bibles have difference reference schemes 
and therefore should have a few different prefixes, at least.)
- Always require that Bible references be the default (prefixless) work.

- Define works for every single book we offer and create a database. 
(Easy to create in the first place, but will eventually be a pain to 
maintain, I think.) We already have a few works that we use, like 
Strong:, Robinson:, etc., in word attributes.

> If it refers to a work we probably need to define some Sword standard works 
> like Bible, Commentary to refer to the standard Bible or commentary. Or am I 
> wrong here?

> Which raises the following question for me: How do I link from a Bible into a 
> lexicon? Or into a (default) commentary?

BibleCS currently has no facility for this since we've never marked up a 
lexicon with internal links or any other book with links to lexicons. 
Essentially we need a facility to do lookups with an OSISWork ID to 
yield a Sword book. We could create a lookup table and distribute that 
or require that OSISWork IDs be identical to Sword book names. So, for 
example, if you want to look up "SIN" in the "Nave" module, we would 
force the reference (within the Bible module) to be "Nave:SIN". I don't 
see any problem with this, and it certainly simplifies the task 

We might also want to define a few meta-work IDs like "Dictionary:", 
"Commentary:", "grcLexicon:", "heLexicon:", etc. that would lookup an 
entry in the user's favorite dictionary, commentary, etc.

> I'm confused, please help me :)
>>Also, I am under the impression that in a proper OSIS document that
>>every osisRef refers to something that is marked up with an osisID. In
>>the case of new OSIS Bible modules the <verse> tag is present, but older
>>ones it is implicit.
> The 1.5.8 utils don't include verse tags but I think Troy gave his ok for 
> changes after 1.5.8.
> I'd be glad to some Sword guidelines so frontend developers know what do do or 
> what to expect.
> That brings up the question of start and end marker handling which are in 
> different verses. 

We can also force all osisRefs to refer to Sword keys (not just anything 
with an ID). So you could refer to any level marked with <chapter>, 
<verse>, or <div> (since those are what we index).

Or we could take the perspective that everything before the ! in an 
osisRef must be a Sword key but everything after it can be a reference 
within the entry for the key. This would be kind of like the way # works 
in URLs.


More information about the sword-devel mailing list