Basically the function is all there. Where it fails it might either need some love (adding/improving the tables) or  is impossible to translate things properly (deuterocanonicals)<br><br><br><br>Sent from my mobile. Please forgive shortness, typos and weird autocorrects.<div class="quote" style="line-height: 1.5"><br><br>-------- Original Message --------<br>Subject: Re: [sword-devel] Versification Mapping<br>From: Tobias Klein <contact@tklein.info><br>To: sword-devel@crosswire.org<br>CC: <br><br><br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Ok, thanks.<br>
      <br>
      I think before other options I'll look into the built-in SWORD
      versification functions. But anyway, thanks for sharing this
      resource!</p>
    <p>Tobias<br>
    </p>
    <div class="moz-cite-prefix">On 5/6/20 6:40 PM, Jamie wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:000701d623c5$15a5b880$40f12980$@critos.co.uk">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:870528926;
        mso-list-template-ids:-907514250;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Not
            really, I’m afraid – I have written code myself to handle
            it, but it’s very tightly bound into the STEP system, and
            it’s not really in a form where it would be easy to use it
            for other purposes.  I agree that the data looks very
            complicated at first sight, but it may not be quite as bad
            as you think: the file actually contains the same data
            twice, once in a compact form and once in a less compact
            form.  I struggled with it when I first used it, but the
            less compact form isn’t too bad once you get used to it.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">If
            there is any possibility that the data might be useful to
            you, I’d be happy to try to explain it – let me know.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US">Jamie<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0cm 0cm 0cm">
            <p class="MsoNormal"><b><span
                  style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"
                  lang="EN-US">From:</span></b><span
                style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"
                lang="EN-US"> Tobias Klein [<a class="moz-txt-link-freetext" href="mailto:contact@tklein.info">mailto:contact@tklein.info</a>]
                <br>
                <b>Sent:</b> 06 May 2020 17:05<br>
                <b>To:</b> SWORD Developers' Collaboration Forum
                <a class="moz-txt-link-rfc2396E" href="mailto:sword-devel@crosswire.org">&lt;sword-devel@crosswire.org&gt;</a><br>
                <b>Subject:</b> Re: [sword-devel] Versification Mapping<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Hi Jamie,<o:p></o:p></p>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">Thanks. I had a look at the data, that’s
            quite complex! Even a bit intimidating ...<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">I suppose STEPBible has some library
            functions that parse this data?<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal">Can you point me to any APIs?<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">Best regards,<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal">Tobias<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <div>
            <p class="MsoNormal"><br>
              <br>
              <o:p></o:p></p>
            <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
              <div>
                <p class="MsoNormal">Am 06.05.2020 um 15:04 schrieb
                  Jamie &lt;<a href="mailto:araj@critos.co.uk"
                    moz-do-not-send="true">araj@critos.co.uk</a>&gt;:<o:p></o:p></p>
              </div>
              <p class="MsoNormal"><o:p> </o:p></p>
              <div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Hi
                      Tobias,</span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Not
                      sure that this exactly answers your question, but
                      just in case it’s relevant, Tyndale House have
                      various public domain information available,
                      including material on alternative versification
                      schemes.  The reversification material gives
                      details of how to map LXX, MT and Vulgate schemes
                      on to NRSVA (and also addresses some other schemes
                      which are perhaps less frequently encountered). 
                      It also caters for common variants which basically
                      follow one of these schemes, but which have
                      certain verses split up into subverses.  You can
                      find the data at :-</span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><a
href="https://github.com/tyndale/STEPBible-Data/blob/master/TVTMS%20-%20Tyndale%20Versification%20Traditions%20with%20Methodology%20for%20Standardisation%20for%20Eng%2BHeb%2BLat%2BGrk%2BOthers%20-%20TyndaleHouse.com%20STEPBible.org%20CC%20BY-NC.txt"
                      moz-do-not-send="true"><span style="color:purple">https://github.com/tyndale/STEPBible-Data/blob/master/TVTMS%20-%20Tyndale%20Versification%20Traditions%20with%20Methodology%20for%20Standardisation%20for%20Eng%2BHeb%2BLat%2BGrk%2BOthers%20-%20TyndaleHouse.com%20STEPBible.org%20CC%20BY-NC.txt</span></a><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D">If
                      you do want to make use of it, I’d be very happy
                      to try to answer any questions.</span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D">Regards,</span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D">ARA
                      “Jamie” Jamieson</span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif;color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <div style="border:none;border-top:solid #E1E1E1
                    1.0pt;padding:3.0pt 0cm 0cm 0cm">
                    <div>
                      <p class="MsoNormal"><b><span
                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"
                            lang="EN-US">From:</span></b><span
                          class="apple-converted-space"><span
                            style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"
                            lang="EN-US"> </span></span><span
                          style="font-size:11.0pt;font-family:&quot;Calibri&quot;,sans-serif"
                          lang="EN-US">Tobias Klein [<a
                            href="mailto:contact@tklein.info"
                            moz-do-not-send="true">mailto:contact@tklein.info</a>]<span
                            class="apple-converted-space"> </span><br>
                          <b>Sent:</b><span
                            class="apple-converted-space"> </span>05 May
                          2020 21:19<br>
                          <b>To:</b><span class="apple-converted-space"> </span>SWORD
                          Developers' Collaboration Forum &lt;<a
                            href="mailto:sword-devel@crosswire.org"
                            moz-do-not-send="true">sword-devel@crosswire.org</a>&gt;<br>
                          <b>Subject:</b><span
                            class="apple-converted-space"> </span>[sword-devel]
                          Versification Mapping</span><o:p></o:p></p>
                    </div>
                  </div>
                </div>
                <div>
                  <p class="MsoNormal"> <o:p></o:p></p>
                </div>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hi,<o:p></o:p></p>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">I
                  would like to ask a question that I was planning to
                  ask for a while already ...<span
                    class="apple-converted-space"> </span><br>
                  What's the recommended solution of mapping different
                  versification systems?<o:p></o:p></p>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">And
                  what working implementations for this are already out
                  there?<br>
                  <br>
                  I realize that my understanding of versifications has
                  been a bit limited and that's visible in Ezra
                  Project's implementation of the mapping. I am
                  currently only differentiating between two
                  versification systems, namely the English
                  versification (used in most/all (?) English
                  translations) and the Hebrew versification (used in
                  most modern German translations).<o:p></o:p></p>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">It's
                  been a few years since I looked into this and I think
                  this has been my source (SBL Handbook of Style)<br>
                  <a
href="https://books.google.de/books?id=M_upBwAAQBAJ&amp;pg=PA265&amp;lpg=PA265&amp;dq=appendix+english/hebrew/greek+versification&amp;source=bl&amp;ots=CXVR0J6YrI&amp;sig=ACfU3U3hEIPgNxmmUQW1kZJaRAtHl78L-g&amp;hl=de&amp;sa=X&amp;ved=2ahUKEwilyoPUwp3pAhUrzqYKHVk4BtIQ6AEwAXoECAYQAQ#v=onepage&amp;q=appendix%20english%2Fhebrew%2Fgreek%20versification&amp;f=false"
                    moz-do-not-send="true"><span style="color:purple">https://books.google.de/books?id=M_upBwAAQBAJ&amp;pg=PA265&amp;lpg=PA265&amp;dq=appendix+english/hebrew/greek+versification&amp;source=bl&amp;ots=CXVR0J6YrI&amp;sig=ACfU3U3hEIPgNxmmUQW1kZJaRAtHl78L-g&amp;hl=de&amp;sa=X&amp;ved=2ahUKEwilyoPUwp3pAhUrzqYKHVk4BtIQ6AEwAXoECAYQAQ#v=onepage&amp;q=appendix%20english%2Fhebrew%2Fgreek%20versification&amp;f=false</span></a><o:p></o:p></p>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">My
                  current approach in Ezra Project to map between
                  English and Hebrew versification is the following:<o:p></o:p></p>
                <ul style="margin-top:0cm" type="disc">
                  <li class="MsoNormal" style="mso-list:l0 level1 lfo1">I
                    use "absolute verse numbers" in each book.<o:p></o:p></li>
                  <li class="MsoNormal" style="mso-list:l0 level1 lfo1">I
                    have mapping tables that basically define offsets
                    for the "absolute verse numbers" (see implementation<span
                      class="apple-converted-space"> </span><a
href="https://github.com/tobias-klein/ezra-project/blob/master/models/versereference.js#L177"
                      moz-do-not-send="true"><span style="color:purple">here</span></a>).<o:p></o:p></li>
                  <li class="MsoNormal" style="mso-list:l0 level1 lfo1">The
                    versification (currently only English or Hebrew) of
                    the respective translation is detected based on some
                    simple dynamic tests when opening it.<o:p></o:p></li>
                  <li class="MsoNormal" style="mso-list:l0 level1 lfo1">I
                    have functions to convert between one and the other
                    "absolute verse numbers" based on the mapping.<o:p></o:p></li>
                  <li class="MsoNormal" style="mso-list:l0 level1 lfo1">Verse
                    Reference objects are stored both with the English
                    and Hebrew absolute verse numbers and these objects
                    are used for assigning tags, notes, etc.<o:p></o:p></li>
                </ul>
                <p class="MsoNormal"
                  style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">This
                  works fairly well when using English translations and
                  German translations. The result is for example that
                  tags that were assigned to verses of an English
                  translation still show up correctly for the verses in
                  a German translation. This is particularly visible in
                  Psalms.<br>
                  <br>
                  How flawed is my current approach described above?<br>
                  How do other frontends do it?<br>
                  Have there been plans to somehow integrate some sort
                  of mapping functionality into the SWORD engine?<br>
                  <br>
                  Best regards,<br>
                  Tobias<o:p></o:p></p>
                <p class="MsoNormal"><span
                    style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif">_______________________________________________<br>
                    sword-devel mailing list:<span
                      class="apple-converted-space"> </span></span><a
                    href="mailto:sword-devel@crosswire.org"
                    moz-do-not-send="true"><span
style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif;color:purple">sword-devel@crosswire.org</span></a><span
style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif"><br>
                  </span><a
                    href="http://www.crosswire.org/mailman/listinfo/sword-devel"
                    moz-do-not-send="true"><span
style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif;color:purple">http://www.crosswire.org/mailman/listinfo/sword-devel</span></a><span
style="font-size:9.0pt;font-family:&quot;Helvetica&quot;,sans-serif"><br>
                    Instructions to unsubscribe/change your settings at
                    above page</span><o:p></o:p></p>
              </div>
            </blockquote>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
  </body>
</html>
</blockquote></div>