Locating and retrieving passages of scripture or commentary on passages is a fundamental operation for the Christian Classics Ethereal Library. The problem is made more difficult in that when a book such as The Imitation of Christ references a scripture passage such as Psalm 9:22-39, it is referring to the Vulgate. The corresponding passage in modern English bibles is Ps 10:1-18.
In fact, there are several different versification schemes for bibles. Most English bibles are identical or similar, but there are some major variants, including the NAB and the NJB. Other schemes include those used by the Septuagint, the Vulgate, and Greek and Hebrew versions.
We plan to address this situation by using a reference scheme defined by OSIS -- Open Scripture Information Standard. We will use osisIDs to identify passages and osisRefs to refer to them.
An osisID has the form Bible:Ps.10.1 or Bible.Vul:Ps.9.22. The part before the colon is the name of the scheme and the part after the colon is an identifier in that scheme. Bible: is the reference scheme, defined to conform to the versification scheme used by the New Revised Standard Version (with Apocrypha).
Bible.Vul is a "child" of Bible. That implies that a mapping exists between Bible.Vul and Bible, that is, it is possible to convert Bible.Vul IDs, such as Bible.Vul:Ps.9.22, to the corresponding references in the Bible scheme, and vice versa. In order to convert a reference from Bible.NAB to Bible.Vul, one would first convert the Bible.NAB reference to the Bible scheme and then convert the Bible reference into the Bible.Vul scheme.
The mechanism for defining such schemes and converting between them is generic, so that it would be possible define reference systems for different versions of Augustine's Confessions, for example. But initially we will concentrate on different versifcation systems for the Bible.
<?xml version="1.0"?>
<refSys code="Bible.Vul" name="Vulgate">
<osisIDs>
<osisID code="Ps.9.21"/>
<osisID code="Ps.9.22"/>
<osisID code="Ps.9.23"/>
</osisIDs>
<refMap from="Bible.Vul" to="Bible">
<map from="Ps.9.21" to="Ps.9.20"/>
<map from="Ps.9.22" to="Ps.10.1"/>
<map from="Ps.9.23" to="Ps.10.2"/>
</refMap>
<refMap from="Bible" to="Bible.Vul">
<map from="Ps.9.20" to="Ps.9.21"/>
<map from="Ps.10.1" to="Ps.9.22"/>
<map from="Ps.10.2" to="Ps.9.23"/>
</refMap>
</refSys>
Note that the mappings are hierarchically defined, so one could say
<map from="Ps.11" to="Ps.10"/>
to map Ps.11.[anything] to Ps.10.[same]
<map from="4Kgdms" to="2Kgs"/>
to map 4Kgdms.[anything] to 2Kgs.[same]
Six reference systems have so far been defined. They are not tested and likely have errors. They are:
osisID="Bible:Ps.10.1"
attribute is used to say "I am Ps.10.1",
it is also necessary to be able to say something like "I am a commentary
on Ps.10.1-Ps.10.18". For this purpose the osisRef attribute
of the <scripCom> and <scripRef>
elements is used. It takes values as in these examples:
In a document such as a bible or commentary,
one can use reference systems with the osisID
attribute of the scripture element. For example, <scripture
osisID="Bible:Ps.10.1">.
Such documents should also declare the reference
system they implement, using
<DC.Identifier scheme="osisID">Bible.Vul</DC.Identifier>.
Note that the elements here are ThML-specific, not
related to OSIS.
The thml.html.xsl stylesheet understands an osisRef parameter. So, to retrieve Bible:Ps.10.1 in html, one could use the following URI:
/ccel/bible/asv.html?osisRef=Bible:Ps.10.1
/ccel/bible/asv.html?osisRef=Bible.Vul:Ps.9.22
A sample XML file with osisRefs and a sample XSLT stylesheet that does osisRef resolution are available. Together, they generated this output. A large file of mappings [13+ MB] suitable for importing into a database management system or other resolver is also available.