[sword-devel] Versification

DM Smith dmsmith555 at yahoo.com
Mon Jan 28 06:57:36 MST 2008

On Jan 28, 2008, at 6:36 AM, peter wrote:

> Barry Drake wrote:
>> Hi Peter ...........
>> peter wrote:
>>> So could I - once that number mystery is understood - create a  
>>> different
>>> canon.h file for e.g RC versification and recompile Sword ?
>> I'm sure you could - but you'd break it as far as all existing  
>> modules
>> are concerned!
> I appreciate that. Obviously.
> But if the code as such works without further reference to whichever
> versification scheme is used, but simply assumes the correct one is in
> place, then I think this file being at the root of the implementation
> should be made flexible rather than a whole new way of encoding  
> Bibles +
> new GUI. Old modules would use teh KJV and newly added ones would be
> able to bring their own scheme along.
> There was a thread on that matter about 3-4 months agao and IIRC  
> Troy +
> Dm seemed to think loosing it up by loading the versification would be
> the right way forward.

Just as a summary of this and many other threads.

As Chris mentioned, canon.h will not be changed. The idea is to create  
a GenBook with a standard way of naming the keys, in the form  
OSISBookAbbr/ChapterNum/VerseNum. Replacing the / with . would result  
in an OSIS id.

The advantage of this scheme is that it is perfectly adaptable. If the  
NASB wants to add 1 John 3:15 (as do many non KJV Bibles) it will work  

Today's mechanism basically numbers the verses in the Bible from 1,  
but also numbers introductions to Bible, Testament, Book and Chapter.  
Each verse reference, say "Genesis 1:1" is converted into that number  
and that number is used to lookup the verse in the module.

I'm not familiar with how Sword does things internally, but JSword  
uses these numbers internally to also represent the results of a  
search as a BitSet (where a 0 or 1 at the n-th position represents the  
n-th verse).

In BibleDesktop, one can search one Bible and then show the verses in  
another (perhaps this is the Parallel view). Because they have the  
same versification, everything works as expected.

There are several fundamental problems that need to be solved.

1) Most, perhaps all, of the front-ends have a quick picker and/or  
tree view of the Book, Chapters and perhaps verses in the Bible. This  
will need to be adapted on a per versification scheme. I'm going to  
guess that we will add an entry to the conf called Versification with  
a default value of KJV.
2) The mechanism to do lookups by reference. The current mechanism is  
very fast as it does not hit disk. For JSword, this means that the  
BitSet will have to be replaced/modified for non-KJV versifications.
3) The mechanism to map one versification scheme to another, or at  
least to provide a user experience that makes sense. Without a mapping  
of one versification to another, this may simply be a warning.

What Troy and I discussed on IRC was the handling of the NASB  
versification (i.e. it has 1 verse that is not in the KJV  
versification) with a minor modification of the KJV versification,  
using an exception table. We also talked about extending the KJV  
versification with it's versification of the Apocrypha.

The challenge is to find developers who are committed to doing the  
work. First for Sword and then as that implementation unfolds for  

This is not a complete discussion of the issue but hopefully it hits  
the high points.

In Him,

More information about the sword-devel mailing list