[sword-devel] 1.7.2 release

Chris Little chrislit at crosswire.org
Wed Jan 15 08:12:00 MST 2014

On 1/15/2014 12:31 AM, Peter von Kaehne wrote:
> On Tue, 2014-01-14 at 19:07 -0800, Chris Little wrote:
>> I haven't looked at the code, but the idea of mapping between
>> versification systems (not versifications of particular translations but
>> versification systems, as we define them) is completely ridiculous.
> Teus has already given a use case. The fact that most of our frontends
> have parallel displays which do not work well with av11n is the other
> compelling one.
> The need for mapping has been discussed for many years on this mailing
> list and has also been agreed. To call it 'completely ridiculous' is
> neither reflecting what has been agreed upon nor the actual facts -
> approximate mapping via an intermediate super-v11n system in a way as
> Teus describes is a lot better than no mapping.

As the person who collated all of the data and created all of the 
versification systems used in Sword (with the exception of 
SynodalP(rot)), I'm perhaps in the unique position of being able to 
state categorically that it is, in fact, completely ridiculous to map 
between versification systems that cover more than a single edition (or 
strict translations of that edition, or translations that strictly 
follow another edition's versification).

You can safely map between the KJV(A), NRSV(A), MT, Leningrad, and 
Luther systems. Those are all based on a single text. They are 
effectively per-module versification systems where we included the 
versification system in the library because the precise system is used 
broadly or the text itself is of great significance. (SynodalP(rot) 
probably belongs in this list too.)

You cannot map between Vulg, Catholic(2), LXX, German, Synodal, and 
Orthodox and any other system because these aren't versification 
standards, they are best-fit maximal coverage systems. They're more like 
collections of vaguely similar (or sometimes rather dissimilar, but 
similarly named) versification systems. They can be a bit like dialect 
continua: Similar translations with similar source material may have 
very similar versification systems, but other pairs of translations 
using the same Versification value in Sword can have widely differing 
internal versification systems.

I've contemplated 'intermediate super-v11n's, as you term them, and 
they're an intractable solution if they are any help at all. Among the 
problems are that you can't simply map back to a Hebrew OT based on the 
MT versification system and a Greek NT based on the GNT/NRSV 
versification system. Even allowing for split verse mappings (which 
would have the further complication of introducing irreversible verse 
folding in one direction), there are quite a few other sources that 
people have used over the years with unique verses (the LXX & Vulgate 
being the most significant).

> Kostya's patch for v11n mapping is well known on this list, it has been
> tentatively discussed several times, Troy has acknowledged its presence
> on his list of things to look through - though that is a long time ago.
> Troy also has highlighted various border cases which need a solution or
> suggestions for solutions. Problems with module variability has been
> acknowledged as a problem, but also by all who asked for mapping
> described as an acceptable error - i.e. better than no mapping.
> JSWORD has now initial working code.
> Further, quite unlike v11n systems there is probably no need to get it
> right first time but improvements could happen in an iterative way. In
> fact, i see no reason not to allow per-module user modification of
> mapping in frontends, which would lay to rest all of your reservations
> of mapping via v11n systems.

A per-module versification mapping system would work fine. It requires a 
lot of data, but it is what commercial Bible software does. It's also 
explicitly not the topic at hand. In principle, I have no objection to 
or criticism of per-module mapping.

> Bible1 (v11n-1) -> v11n-1 generic mapping +/- bible-1 user-modifications
> -> super v11n -> v11n-2 generic mapping +/- bible-2 user-modifications
> -> Bible 2 (v11n-2)

That's four mappings. Four opportunities to introduce error. Four 
opportunities to fold verses together than can't effectively be split 
again. And that brings me to the real problem with error, the real 
reason for which 'something' is distinctly worse than 'nothing':

With our current system (nothing), if two translations are viewed in 
parallel and have the same versification system, they will be correctly 
displayed in parallel. If their versification systems do not match, they 
may have some offset, but the versification systems at least reflect the 
native versifications and textual order/context of the texts.

If we start mapping on the basis of versification system "standard", as 
they're defined in Sword, then when the versification systems of two 
texts do not match and texts themselves don't closely reflect the 
"standard", we end up shifting verses around to positions that reflect 
neither a parallel verse nor the text's native versification. There 
would be a further complication, since the idiosyncratic variation among 
individual texts' versifications tends to be additive, in that mapping 
may lead to widespread stranding of verses outside their textual context.

Versification systems aren't random, but they can be so extremely 
idiosyncratic that it sometimes seems like they might be. Per-module 
mapping will work fine, but is difficult to implement (in terms of data 
collection). Per-system mapping will work fine for about a dozen texts 
(I would guess). Any sort of reliance on per-system mappings that 
involve one of the best-fit maximal coverage versification systems 
(Vulg, Catholic(2), LXX, German, Synodal, & Orthodox) will fail 


More information about the sword-devel mailing list