Dear All,

If I understand Arnaud correctly, I really like his ideas. The BEST part is 
that the next time a Bible is submitted for processing with yet another unique 
versification (after the changes are implemented), it doesn't have to be either 
force-fit into a versification that doesn't fit or wait for decades for someone 
to update the hard-coded versifications in the Sword engine, and for those to 
be incorporated into all of the front ends.

I regard the current minimalist versification system to be seriously in need of an upgrade. It is based on false assumptions (listed by Troy, no offense intended) that seemed good at the time they were made. However, with 1404 Bible translations (and counting) is that (1) 90% success is an over-estimate of how well it works, and (2) Sword versification is a complete failure for numerous projects because none of the existing versifications fit, the fall-back mechanisms fail and result in wrong outputs or crashes in osis2mod, and nobody is actively fixing the situation.

I have found the following to be true:

The number of versifications needed to represent all Bibles properly tomorrow 
is highly likely to be more than the number that works today. Hard-coding 
versifications into slowly-changing code that is only updated in fits and 
starts is doomed to fail (and already has, in my not-so-humble opinion).

Verse numbers in a chapter don't always proceed in numerical order. Several 
Bible translations move the statement about the motion of the shadow on 
Hezekaiah's steps to a more logical place in terms of discourse, without 
changing the verse numbers. Indeed, they split verses into segments and 
straddle other verses with them.

Chapter and verse "numbers" aren't always pure numbers. Letters get involved in 
the Deuterocanon/Apocrypha. Some Bible translators like to use verse segments (like 6a 
and 6b) heavily.

Verse bridges (like verse 1-3 with everything from verses 1 through 3 but 
possibly rearranged and with no other verse markings within them) are very 
common.

Mapping any arbitrary versification to any other is NICE, but NOT NECESSARY. 
Displaying the text as the translators intended is NECESSARY. If you can do 
both, do it. If you cannot, at least display the versification of the Bible 
translation as the translator intended.

I am fully aware of the changes in architecture and code adapting to the 
realities I perceive imply. At this point, I'm not sure if modifying the Sword 
engine or rewriting it would be easier. Either way, it is a lot of work.

It is my understanding that JSword is a bit better than Sword in this regard, 
in that it doesn't assume fixed versifications.

As far as volunteering for pumpkin holder for versifications, I nominate 
Arnaud. (I already bit off more than I can chew by myself. Sorry.)

On 2/19/24 14:23, Troy A. Griffitts wrote:

Dear all,

These comments are a mix of background, history, and thoughts:

1) VERSIFICATION (v11n):

Variation between reference systems sucks.  Until you get into the weeds of the 
details, it is normal to assume the problems are not complex.  SWORD tries to 
implement a simple 90% solution.

SWORD and JSword support defined abstract versification schemes with 3 simple 
dimensions: [bookid : chapterMax][chapterNumber : verseMax][verseNumber : 
verseEntry]

Conceptually we also operate on these assumptions (I've skimmed the proposal by 
Arnaud which differs here, but I haven't given it the thought it deserves to 
comment yet): that book order is defined in the v11n system; that chapter and 
verse numbers are numeric and begin at 1 and increase to verseMax.  We also 
allocate a special slot '0' for: Module Introduction; Testament Introduction; 
Book Introduction; and Chapter Introduction (e.g., Matt.0.0 can hold an 
introduction to Matthew).

Those who have been exposed to many Bibles will immediately think of places these 
assumption fall short.  But for >90% of our Bibles, these assumption hold true, 
and these assumption make many aspects of our work much simpler (abstract parsing 
of verse lists and ranges, bookmark ordering, etc.).

Historically, SWORD previously supported dynamic, per module, versification, 
with a 3 phase lookup:

index file .bks[book number] = book offset in next index;
index file .cps[book offset + chapter number] = chapter offset in next index;
index file .vss[chapter offset + verse number] = verse offset and entry size in 
data file.

20 years or so, we made the decision to begin the hard work to understand 
versification systems within Bibles so we could begin to map them 
appropriately.  This let us remove the .bks, and .cps index files and store 
that data in versification system definitions, leaving only the final .vss 
index file which gave the offsets and entry sizes into the data file.

Caring about versifications was a decision we made.  Our previous design let 
any Bible decide how many books, how many chapters, and how many verses each 
chapter contained.  This had its merits because any new versification could be 
defined in each module without anyone caring what it was.  But the drawback was 
the same: any Bible could decide how many books, how many chapters, and how 
many verses without anyone knowing why or what they were.

Some have pushed for dynamic definitions of v11n systems again, and I 
understand why.  I am in favor of moving forward with a hybrid approach: a set 
of defined versification systems, which a module will still need to choose 
from, to which it most closely adheres, + the ability for that module to 
specify its variation.

Toward 98%: We have tried to work around the cons of this simple design and 
approach 100% support by accounting for the most common types of problems, e.g.

  * The engine allows common verse suffixes (e.g. Matt.2.7b);
  * The engine skips verses in a Bible which are not present-- this allows us 
to create v11n schemes which are a superset of n number of closely related v11n 
schemes, knowing that the engine will skip over the verses that are not present 
in the module; We also have tools which print out missing verses which has 
proven a good QA check for our modules team.
  * When we run across a Bible which adds an odd verse here or there or an out 
of order verse, our workaround has been to append these to end of the verse 
just before where they should appear, so the text flows the same as the printed 
Bible, and we include for the reader an inline visual separator and marker 
showing the publisher's verse number.


These work arounds get us pretty close to being able to support 98% of our Bibles exactly as the publisher wishes, and the remaining 2% is supported "well enough" for no complaints by publishers.  Could we build a system which allowed out of order verses, or which allowed any scheme a Bible wished to follow? Sure, but the added complexity for various tasks increases quite a bit for some of these allowances-- e.g., think index math for book chapter verse when we cannot assume numeric sequence; think abstract ordering of bookmarks not tied to any specific Bible, search results across Bibles, etc.

Our vision with v11n definitions is that they will be a few as possible 
allowing us to map between them most easily; and as many as necessary to allow 
us to represent well enough a published work.

Chris Little previously was our versification pumpkin holder and did some 
amazing work researching all this material.  As a demonstration of his thorough 
work and an example of the difficulties with v11n, see his work on just the LXX 
tradition:

https://www.crosswire.org/svn/sword-tools/trunk/versification/lxx_v11ns/

Chris has left our community after many years of volunteering massive time and 
effort.

We haven't had anyone step up who is willing to commit the time and effort 
necessary and who holds our vision (as few as possible, as many as necessary).


2) MAPPINGS:

SWORD and JSword support v11n to v11n mappings. Graciously, Костя Маслюк worked 
with us for over a year to discuss the problems and implement a versification 
mapping system which has been included in the engine.  He also added v11n 
mappings for systems he was interested in supporting. If anyone is interesting 
in the discussions, they can see the archives, e.g.,

https://www.crosswire.org/pipermail/sword-devel/2013-July/040154.html

Historically, we called this topic alternate versification, so if you see 
"av11n" in the archives, you'll be aware.

Registering v11n systems and mappings in the engine is straightforward in our 
versification manager, and as you can see, loading these dynamically from a 
file would be simple to implement:

https://www.crosswire.org/svn/sword/trunk/src/mgr/versificationmgr.cpp

During the development of the mapping infrastructure, our proof of concept was 
to see if we could concisely build a parallel Bible HTML display across 
versification systems, letting a user specify any number of Bibles, the first 
Bible v11n being the primary ordering driver:

https://www.crosswire.org/svn/sword/trunk/examples/tasks/parallelBibles.cpp

____

So, now to the issue with adding another Catholic versification system.  I would love to continue to delegate ownership of v11n decisions!  I trusted Chris.  He said "no" all the time, and only allowed new versification definitions if we really couldn't support a set of Bibles using an existing system with our work arounds.  He spent the time necessary to understand the traditions, which published works would use the proposed versification, he had excellent skills clearly delineating systems-- generally he made well informed decisions from many hours of research.

I don't understand the complex details nor have the time to do the research for each individual 
request.  My first thought is, where is Chris?!  Next, my uninformed mind thinks: we have v11n 
definitions "Catholic" and "Catholic2"! Why do we need an additional Catholic 
versification system?  Did we do a bad job with the first two?  Can we not follow our principles 
and create a superset between 2 or more of these?  And of course, these are not proper responses.

So, if anyone is prayfully willing to take up this pumpkin-- to put in the time 
necessary to research Bible traditions and published works, to truly 
understands both the pros and cons of the decisions we've made to go down the 
path we are on, along with our workarounds for the cons, and is willing to live 
wholeheartedly with where we are now, but certainly always open to improve, I 
would love for that person to take ownership of versification.

I appreciate the pointers to the Paratext v11ns and mappings, maybe we compare 
where we are now with what they have.

Thank you all for being zealous to improve things.  Looking forward the 
conversation to follow,

Troy



On 1/26/24 06:10, Arnaud Vié wrote:

Hello everyone,

I'm the person Cyrille mentioned, and I just joined the mailing list as I 
thought I could maybe explain a bit more what I'm trying to do with this new 
versification.

*1. Problem statement*

Simply put, my objective is to be able to align verse-by-verse the contents of 
two bibles that use different versifications.
For example :
- I open Daniel 3 in a Catholic bible, it has 100 verses because the Prayer of 
Azariah is included.
- I want to compare the translation verse by verse with, for example, the KJVA. 
This means I want to see the Daniel 3 from KJVA, with all verses from PrAzar 
included in the corresponding place.

There was already logic to perform such mapping in jsword, and I recently 
included it to support deuterocanonical contents (on the AndBible fork, since 
that's the only one where I got answers from the maintainer) : 
https://github.com/AndBible/jsword/pull/13

Now, the problem is to be able to do the same with the deuterocanonical additions to the 
book of Esther, because there are many different "strategies" adopted by 
different bibles.
- Protestant bibles, when they have it, usually have it a separate books 
(AddEsth in KJVA).
- Some catholic bibles have it as additional chapters at the end of Esther, making Esther 
16 chapters long : that's the existing "Catholic2" versification, which maps to 
KJVA easily : 
https://github.com/AndBible/jsword/blob/develop/src/main/resources/org/crosswire/jsword/versification/Catholic2.properties#L392
- Most catholic bibles actually have the additions integrated directly within 
the original text, using lettered verse numbers (13A, 13B, etc., see here for 
example : https://www.aelf.org/bible/Est/3 )

Currently, these catholic bible with the text integrated use the "Catholic" 
versification, and ignore all the lettered verses (or include the letters as raw text) : 
basically, Esther 3.13 with these additions becomes one single very long verse. This 
makes it impossible to map properly with the AddEsth of KJVA.

*2. Proposed solution (Catholic3 versification)*

With the proposed Catholic3 versification (except it needs a few adjustments 
compared to the file proposed by Cyrille), what I'd like to achieve is to give 
a unique verse number to each of those.
For example, Esther 3 goes from 15 to 22 verses, with the OSIS IDs becoming :
- Esth.3.13 for verse 13
- Esth.3.14 for verse 13A...
- Esth.3.20 for verse 13G
- Esth.3.21 for verse 14
(Basically, the OSIS ID identifies the position of the verse; the actual numbering from the bible 
can be preserved separately with the OSIS "n" attribute or the "\vp" USFM 
keyword.)

    would your use-case be served if canon_catholic.h was
    modified to increase the verse counts in Esther to 39, 23, 22, 47, 29,
    14, 10, 41, 32, 14?

Since my objective is to allow mapping verse by verse, you'll understand that I need the 
verse counts to be aligned with the actual usage. Having the "versification" 
allow more verses than what's actually used defeats the purpose.
In addition, I believe it's a very bad idea to make big changes to already 
published versifications : the point of versifications is to give a unique ID 
to a verse. Updating a versification will change all IDs for the verses of 
already existing bibles that use this versification.
I really believe the best solution for the time being is to create a new 
Catholic3 versification, as originally suggested.
I can provide the full definition very soon (though since I'm working with 
JSword it will be in Java format first), and it should in theory be aligned 
with Catholic and Catholic2 except for these differences in Esther. (I'll check 
if there are more differences I missed).

*3. Modular versifications*

    I think at some point it would be nice to have per-book versifications
    or some other way to deal with bibles that don't follow a "standard"
    versification

Agreed.
If everyone is open to the idea, I'd like to work in the next few months on an extension 
of the OSIS standard to define "modular" versifications, ie. versifications 
that can be built by composing other versifications and applying a diff.
Then each bible could, in its document header, not only reference a standard 
versification with refSystem, but include its own specific changes and how they 
map to the standard.

Before I spend time on the topic though, is there anyone in particular I should 
ask to approve the general idea, and who would be interested in reviewing 
proposals on the topic ?

Thanks all and best regards,

Arnaud

Le jeu. 25 janv. 2024 à 16:35, pinoaffe <pinoa...@gmail.com> a écrit :


    Hello,

    I don't know much about catholic bibles or sword, but just out of
    curiosity: would your use-case be served if canon_catholic.h was
    modified to increase the verse counts in Esther to 39, 23, 22, 47, 29,
    14, 10, 41, 32, 14?  Or would the decreases in verse counts in other
    chapters of other books also be necessary?

    And would such a change be acceptable to others?

    The catholic bibles I've encountered "in the wild" are the dutch
    Willibrordvertaling of 1975 and the neovulgate.  Both of these appear to
    follow canon_catholic3.h everywhere except in Esther, where they have 16
    chapters

    I think at some point it would be nice to have per-book versifications
    or some other way to deal with bibles that don't follow a "standard"
    versification, but for now we'll have to make do with what we got

    Kind regards,
    pinoaffe

    Fr Cyrille <fr.cyri...@tiberiade.be> writes:
    > Hello,
    > Recently a person interested in the Catholic bible in French told me
    > about the mapping problems between Catholic versification and the kjva
    > concerning Esther. So I'm bringing up the question of a new Catholic
    > versification that could better deal with this kind of problem and at
    > the same time incorporate some of the errors in current Catholic
    > versifications. I should mention that two versifications for French
    > Bibles have been added since my proposal for a new Catholic
    > versification, which was made long before these versifications were
    > added, and which was not favorably received at the time. In our case,
    > the number of Bibles that follow this versification is simply
    > enormous, since the majority of Catholic Bibles do. I would also add
    > that the LXX versification is not entirely correct. There are no LXX
    > today that put 16 chapters to Esther. Ralph's already uses letters to
    > integrate Greek passages into the text.
    > In fact, Catholic versification simply follows Ralph's. So I suggest
    > that we seriously reopen this question with concrete suggestions.
    > For my part, the suggestion is simple: convert the numbers in the
    > Greek passages into verses and offset the numbered verses in the same
    > chapters. I'll copy you on what that might look like.
    >
    > Br Cyrille
    >
    > [2. text/x-chdr; canon_catholic3.h]...
    >
    > _______________________________________________
    > sword-devel mailing list: sword-devel@crosswire.org
    > http://crosswire.org/mailman/listinfo/sword-devel
    > Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list:sword-devel@crosswire.org
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

_______________________________________________
sword-devel mailing list:sword-devel@crosswire.org
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


--
signature

Aloha,
*/Michael Johnson/**
26 HIWALANI LOOP • MAKAWAO HI 96768-8747*• USA
mljohnson.org <https://mljohnson.org/> • eBible.org <https://eBible.org> • 
WorldEnglish.Bible <https://WorldEnglish.Bible> • PNG.Bible <https://PNG.Bible>
Signal/Telegram/WhatsApp/Telephone: +1 808-333-6921
Skype: kahunapule • Telegram/Twitter: @kahunapule • Facebook: fb.me/kahunapule 
<https://www.facebook.com/kahunapule>
_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to