[sword-devel] Parallel Display of Differing V11n Systems (was: Versifications and verse order)

Troy A. Griffitts scribe at crosswire.org
Thu Jul 4 08:02:23 MST 2013

Hi guys. The questions that need answers in this thread are logically 
complex and are one of the reasons we haven't finalized any additions to 
the core SWORD library to support this-- though I greatly appreciate the 
contributions made by Костя.

Take, for example our standard 4 Bible web display preset for "OT 
Scholar", at Daniel chapter 3, around veres 23:


How should this look?

The problem, for the uninitiated, is that The Prayer of Azariah and the 
Song of the Three Jews in the LXX is inserted between what we 
traditionally think of as verses 23 and 24. This makes verse 24 in the 
KJV very different content than what should be verse 24 in the LXX (our 
current LXX displayed from the link above does not include Apocryphal 
content)-- verse 24 in the LXX being the first part of the Apocryphal 
content, thus verse 91 in the LXX picking back up where verse 24, in say 
the NASB (without the apocryphal insertion), continues.

The web interface above always displays in windows of 1 chapter. Thus 
the user has asked for Chapter 3 of Daniel, centered on verse 23.

There are a few questions to answer.

What if they had asked for verse 24?

What content do we show?

Use case: The user is a protestant pastor, has chosen NASB as his 
primary Bible, and is interested in seeing the parallel verses to the 
NASB in the other texts. He is not interested in seeing apocryphal 
insertions. He primarily cares about the NASB and only glances at the 
content from the other modules when interested in seeing the parallel.

This is how the web frontend, and all current SWORD based frontends 
*should* currently work with no code changes, with the v11n translation 
facilities currently designed in the engine. It uses the first module as 
the "master" and iterated its key and pulls the equivalent verses from 
the other modules. The current facility in the engine allows for:


resulting in the LXX being positioned to the equivalent verse (e.g., v91 
from nasb v24)-- if translation tables (for example from Костя) were in 

But this use case, while likely the most dominant, is not the most 
scholarly. A scholar would likely wish to see a *superset* of all verses 
from all displayed parallel Bibles, inserting gaps where they should go 
in the other text which do not contain the verses.

Not too hard to imagine, but what is the programmer-friendly API 
interface for this? Harder to imagine. You can't simply choose one of 
the modules to iterate.

ListKey superset;
superset << kjv->getKey() << nasb->getKey() << lxx->getKey() << 

then one could iterate the superset listkey.

This would leave the work of figuring out where the gaps should go up to 
ListKey, or something in the translation system in VerseKey which backs 

It's a complex problem, but we haven't even talked about the issue of 
reordered content. Sometime Romans 16:25-27a (obviously excluding the 
subscriptio) is located after Romans 14:23. This is an example of 
reordering. It doesn't give problems from our "chapter window display" 
because the reordering is across different chapters and you could still 
pick your poison from the 2 choices above for display logic, but what 
about display windows which allow more than a single chapter, like 
BibleDesktop? Now the question arises. If you've chosen to build a 
superset, where do the gaps go? You could reasonably add them to either 
place (after Romans 14:23 in the modules which don't include the 
doxology here or after Romans 16:24 for modules which don't include the 
doxology here). How do you decide? How should the program decide?

Lot's of questions and input we all need to give and a working proof of 
concept for at least a single frontend before we commit to something for 
everyone to use in the engine.

Obviously not a 1.7.x issue, but feel free to continue to give input.


On 07/04/2013 03:26 PM, David Haslam wrote:
> And (for example) if you wish to query the whole of the JPS module using book
> names, it will not do to specify *Gen-Mal*.
> You'd need to remember that in the Tanakh, the last book is *II Chronicles*.
> --
> View this message in context: http://sword-dev.350566.n4.nabble.com/Versifications-and-verse-order-tp4652697p4652712.html
> Sent from the SWORD Dev mailing list archive at Nabble.com.
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page

More information about the sword-devel mailing list