<div dir="ltr"><br><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le jeu. 23 janv. 2025 à 22:18, Fr Cyrille <<a href="mailto:fr.cyrille@tiberiade.be" target="_blank">fr.cyrille@tiberiade.be</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>

  
    
  
  <div>
    So I think that for versifications, catholic catholic2 and LXX there
    is no mapping (which would explain some of the problems I've had
    displaying in parallel?).<br>
    In the other v11n files I see an entry by instance in vulg:<br>
    unsigned char mappings_vulg[] = {<br>
    <br>
    If someone can explain or give me a documentation to understand how
    it works, and if this is where the mapping takes place, I'd like to
    work on it. Especially as it should be possible to use Arnaud's
    work?<br></div></blockquote></div></blockquote><div><br></div><div><div>You're correct Cyrille, the mapping data is in this char array defined with the versifications in the canon_*.h files.</div><div>This array is injected (for the versifications which have one) and decoded within versificationmgr.cpp.</div><div><br></div><div>The
 format of this char array is really obscure though, and it's completely
 different from the format of mappings used in jsword (which is a lot 
clearer and a lot easier to edit and maintain).<br></div><div>From what I
 understand in the code ("// parse mappings" section of the 
loadFromSBook method in versificationmgr.cpp) and the canon_vulg.h 
example :</div><div><br></div><div>1.<br></div><div>The array starts with a sequence of book names, which are the books present in this bible and absent from KJV.</div><div>Each such name is a sequence of letters followed by a null character serving as delimiter.<br></div><div>In canon_vulg, thoses are the <br>'E', 'p', 'J', 'e', 'r', 0,<br>'P', 'r', 'A', 'z', 'a', 'r', 0,<br>'S', 'u', 's', 0,<br>'B', 'e', 'l', 0,</div><div><br></div><div>2.
 Then, you have an additional null character indicating the end of that 
first section - the rest of the array is encoded completely differently.</div><div><br></div><div>3.
 The rest of the array is meant to be split in sequences of 7 numbers, 
each such 7-number sequence corresponding to a mapping rule.<br></div><div>For example, this is a mapping rule :</div><div>21,  4,   9,   10,  4,   8,   0,</div><div><br></div><div>First digit indicates the book (index in the sequence of books, starting at 1). In vulg, book 21 is Psalms.</div><div>The next 3 digits indicate the destination of the mapping. "4,9,10" corresponds to chapter 4, verses 9 to 10.<br></div><div>The final 3 digits are the source of the mapping. "4,8,0" corresponds to chapter 4, verse 8 alone.</div><div>So this rule I used as example denotes that verses Ps 4:9-10 of KJV are mapped to Ps 4:8 in Vulg.<br></div><div>Which corresponds indeed to one rule that is present in the jsword mapping file.</div><div><br></div><div><br></div><div>I
 guess I could try to build a converter to export the jsword mapping 
properties files into this format, so that we could indeed add the 
Catholic and Catholic2 mappings that I spent hours building for the 
AndBible jsword fork.</div><div><br></div><div>But going forward, for 
maintaining versifications, it would be a lot better to have a central 
way of defining all our versifications and all their mappings in an 
easily readable and editable format (maybe the one defined by the 
Copenhagen Alliance, cf <a href="https://github.com/Copenhagen-Alliance/versification-specification/blob/master/versification-mappings/json-schema/versification_schema.json" target="_blank">https://github.com/Copenhagen-Alliance/versification-specification/blob/master/versification-mappings/json-schema/versification_schema.json</a>
 ), serving as a source of truth for both sword and jsword. Because even
 just looking at this Vulg versifications, the mapping have vastly 
diverged between sword and jsword...</div><div><br></div><div>Even if we
 don't go as far as implementing the full modular versification system 
that I would like to build, if at the very least we could have a 
central, easy-to-maintain place to manage all our versifications, and 
then could easily export them to both sword and jsword, that would be a 
huge step forward.</div><div><br></div><div>Regards,</div><div><br></div><div>Arnaud</div></div><div> </div></div></div>