<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Dear Tobias,</p>
    <p>I would recommend KJVA, so you can get the Apocrypha.  I believe
      this is the common base Костя uses to convert between systems. 
      Костя has done a great job at optimization.  I've updated the
      verseconvert.cpp example to allow ranges.  Here is a timing for
      the entire book of Psalms:</p>
    <p>[scribe@localhost classes]$ time ./verseconvert Ps Wycliffe
      FreGeneve1669 &gt; /dev/null<br>
      <br>
      real    0m0.195s<br>
      user    0m0.162s<br>
      sys    0m0.033s<br>
    </p>
    <p>My guess is that most of that time is simply with SWORD engine
      initialization, discovering and opening my library.</p>
    <p>Converting all verses in both Old and New Testament:</p>
    <p>[scribe@localhost classes]$ time ./verseconvert Gen-Rev Wycliffe
      FreGeneve1669 &gt; /dev/null<br>
      <br>
      real    0m0.645s<br>
      user    0m0.601s<br>
      sys    0m0.042s<br>
    </p>
    <p>Hope this is helpful.  Looking forward to your work.  We've had
      discussions over the many years of our project about sharing
      bookmarking and similar data between apps, but we all had
      different ideas of what we'd like.  BibleCS (our Windows classic
      app) concentrates on allowing verse groups and trees of groups so
      users can create trees of topic.  Other apps extend this to allow
      comments and notes at each reference, including a specific module
      name with the reference.  We've all had different data formats for
      our bookmarking materials.  Since your app centers on tagging
      (which I would place in the same category as bookmarking), I would
      love to hear what you come up with and if it encompasses
      everything which all of our frontends desire to provide their
      users.  Maybe we can make another go at a shared "bookmarking" or
      "tagging" concept and push that concept back into the engine so
      all app can share and take advantage of your functionality, if
      you'd be willing.</p>
    <p>Troy</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 5/7/20 9:07 AM, Tobias Klein wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:BC1096DE-9EA2-447A-96D5-FB4832ED3AA2@tklein.info">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Thanks Troy!
      <div class=""><br class="">
      </div>
      <div class="">Besides comparing verses in different translations
        my primary use case is the following:</div>
      <div class="">Establish „unique verse reference“ objects that I
        can use to assign tags independent of the specific translation.</div>
      <div class=""><br class="">
      </div>
      <div class="">Currently I’m doing this by determining the
        „absolute verse number“ for the respective verse I’m tagging.</div>
      <div class="">Then at the point when the „verse reference object“
        (a database entry) is created, the absolute verse number both
        for English and Hebrew versification are determined based on my
        mapping tables.</div>
      <div class=""><br class="">
      </div>
      <div class="">Then, when looking up tags for the currently
        selected verses I can map the correct „verse reference object“
        to each verse in the currently selected translation (based on
        the respective absolute verse number).</div>
      <div class=""><br class="">
      </div>
      <div class="">If I migrate to the Sword VerseKey approach I would
        change my concept in the following way:</div>
      <div class=""><br class="">
      </div>
      <div class="">1) Use KJV verse references (chapter + verse) as
        unique identifiers for all „abstract verse reference“ objects.
        (Does KJV make sense as a „ reference versification“)</div>
      <div class="">2) When opening a translation that does not follow
        the KJV theme - map all verse references to the KJV variants and
        use the KJV verse references (chapter + verse) as a key to find
        the correct „verse reference“ objects in my database.</div>
      <div class=""><br class="">
      </div>
      <div class="">What’s the performance of the SWORD VerseKey based
        mapping function you described below?</div>
      <div class=""><br class="">
      </div>
      <div class="">How would this work if I need to perform a mapping
        operation on all verses of a large book like Psalms? (2461
        verses).</div>
      <div class="">Would this operation come back in less than a
        second?</div>
      <div class=""><br class="">
      </div>
      <div class="">If not I would have to think about some caching
        mechanism in my verse reference objects. Currently I’m caching
        the absolute verse numbers for English and Hebrew for all tagged
        verse references.</div>
      <div class="">With the new concept I could cache the actual
        chapter/verse references for all known versification systems.</div>
      <div class=""><br class="">
      </div>
      <div class="">Thanks for your help on this!</div>
      <div class=""><br class="">
      </div>
      <div class="">Best regards,</div>
      <div class="">Tobias</div>
      <div class="">
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">Am 06.05.2020 um 18:47 schrieb Troy A.
              Griffitts &lt;<a href="mailto:scribe@crosswire.org"
                class="" moz-do-not-send="true">scribe@crosswire.org</a>&gt;:</div>
            <br class="Apple-interchange-newline">
            <div class=""><span style="caret-color: rgb(0, 0, 0);
                font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">Yes, as Peter has pointed out,
                SWORD includes a facility for mapping, graciously
                contributed by Костя Маслюк<span
                  class="Apple-converted-space"> </span></span><a
                class="moz-txt-link-rfc2396E"
                href="mailto:kostyamaslyuk@gmail.com" style="color:
                purple; text-decoration: underline; font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; orphans: auto; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; widows: auto; word-spacing: 0px;
                -webkit-text-size-adjust: auto;
                -webkit-text-stroke-width: 0px;" moz-do-not-send="true">&lt;kostyamaslyuk@gmail.com&gt;</a><span
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class=""><span
                  class="Apple-converted-space"> </span>and should "just
                work" when setting a key from one module to another,
                e.g, kjv-&gt;setKey(wycliffe-&gt;getKey()).  It's not
                quite that simple, because there isn't always a 1:1
                mapping, so if you want full support, you'll have to see
                if a bound is set on the receiving module's key.</span><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">The mapping data, as with
                everything, is not exhaustive, but we'd certainly like
                to extend it to meet cases which you run into which
                aren't yet supported.</span><br style="caret-color:
                rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;"
                class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">You can see it taken advantage of
                in example sword/examples/tasks/parallelbibles.cpp, but
                I've just added a concise example which shows how to use
                it:</span><br style="caret-color: rgb(0, 0, 0);
                font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <a
href="http://crosswire.org/svn/sword/trunk/examples/classes/verseconvert.cpp"
                style="color: purple; text-decoration: underline;
                font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; orphans: auto; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; widows: auto; word-spacing: 0px;
                -webkit-text-size-adjust: auto;
                -webkit-text-stroke-width: 0px;" class=""
                moz-do-not-send="true">http://crosswire.org/svn/sword/trunk/examples/classes/verseconvert.cpp</a><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">Which outputs, e.g.<span
                  class="Apple-converted-space"> </span></span><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">./verseconvert Ps.43.22 Wycliffe
                FreGeneve1669</span><br style="caret-color: rgb(0, 0,
                0); font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">Psalms 43:22 (Wycliffe) =&gt;
                Psalms 44:21-Psalms 44:22 (FreGeneve1669)</span><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">Hope this helps,</span><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">Troy</span><br style="caret-color:
                rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; word-spacing: 0px;
                -webkit-text-stroke-width: 0px; text-decoration: none;"
                class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <br style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <div class="moz-cite-prefix" style="caret-color: rgb(0, 0,
                0); font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;">On 5/6/20 7:07 AM,<span
                  class="Apple-converted-space"> </span><a
                  class="moz-txt-link-abbreviated"
                  href="mailto:refdoc@gmx.net" style="color: purple;
                  text-decoration: underline;" moz-do-not-send="true">refdoc@gmx.net</a><span
                  class="Apple-converted-space"> </span>wrote:<br
                  class="">
              </div>
              <blockquote type="cite"
cite="mid:-h3p992-gkdbam-bjh0wx-95pxwrjy7n3m-sp0nf8nl5z3nk0oq1ufzun0e-13v7av4gayas7d8y8p-ry1jow7t0xm2-tsuf5daihkpb-qncc4ecbtjirm0ghld-58ng9u7bdi7s-oee1qrds3nydhxreri.1588774058910@email.android.com"
                style="font-family: Helvetica; font-size: 12px;
                font-style: normal; font-variant-caps: normal;
                font-weight: normal; letter-spacing: normal; orphans:
                auto; text-align: start; text-indent: 0px;
                text-transform: none; white-space: normal; widows: auto;
                word-spacing: 0px; -webkit-text-size-adjust: auto;
                -webkit-text-stroke-width: 0px; text-decoration: none;"
                class="">I think transparent mapping has been for a
                while now included in the library. I am not sure how to
                make it work, but I do think it is there and
                functioning.<span class="Apple-converted-space"> </span><br
                  class="">
                <br class="">
                Peter<br class="">
                <br class="">
                Sent from my mobile. Please forgive shortness, typos and
                weird autocorrects.
                <div class="quote" style="line-height: 1.5;"><br
                    class="">
                  <br class="">
                  -------- Original Message --------<br class="">
                  Subject: Re: [sword-devel] Versification Mapping<br
                    class="">
                  From: Jamie<span class="Apple-converted-space"> </span><araj@critos.co.uk
                    class=""><br class="">
                    To: 'SWORD Developers' Collaboration Forum'<span
                      class="Apple-converted-space"> </span><sword-devel@crosswire.org
                      class=""><br class="">
                      CC:<span class="Apple-converted-space"> </span><br
                        class="">
                      <br class="">
                      <br type="attribution" class="">
                      <blockquote class="quote" style="margin: 0px 0px
                        0px 0.8ex; border-left-width: 1px;
                        border-left-style: solid; border-left-color:
                        rgb(204, 204, 204); padding-left: 1ex;">
                        <div class="WordSection1" style="page:
                          WordSection1;">
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class="">Hi Tobias,<o:p class=""></o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class="">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 :-<o:p class=""></o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><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" style="color:
                              purple; text-decoration: underline;"
                              class="">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</a><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""></o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class="">If you do want to make use
                              of it, I’d be very happy to try to answer
                              any questions.<o:p class=""></o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class="">Regards,<o:p class=""></o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class="">ARA “Jamie” Jamieson<o:p
                                class=""></o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><span
                              style="font-size: 11pt; font-family:
                              Calibri, sans-serif; color: rgb(31, 73,
                              125);" class=""><o:p class=""> </o:p></span></div>
                          <div class="">
                            <div style="border-style: solid none none;
                              border-top-width: 1pt; border-top-color:
                              rgb(225, 225, 225); padding: 3pt 0cm 0cm;"
                              class="">
                              <div style="margin: 0cm 0cm 0.0001pt;
                                font-size: 12pt; font-family:
                                &quot;Times New Roman&quot;, serif;"
                                class=""><b class=""><span
                                    style="font-size: 11pt; font-family:
                                    Calibri, sans-serif;" class=""
                                    lang="EN-US">From:</span></b><span
                                  style="font-size: 11pt; font-family:
                                  Calibri, sans-serif;" class=""
                                  lang="EN-US"><span
                                    class="Apple-converted-space"> </span>Tobias
                                  Klein [<a
                                    class="moz-txt-link-freetext"
                                    href="mailto:contact@tklein.info"
                                    style="color: purple;
                                    text-decoration: underline;"
                                    moz-do-not-send="true">mailto:contact@tklein.info</a>]<span
                                    class="Apple-converted-space"> </span><br
                                    class="">
                                  <b class="">Sent:</b><span
                                    class="Apple-converted-space"> </span>05
                                  May 2020 21:19<br class="">
                                  <b class="">To:</b><span
                                    class="Apple-converted-space"> </span>SWORD
                                  Developers' Collaboration Forum<span
                                    class="Apple-converted-space"> </span><a
                                    class="moz-txt-link-rfc2396E"
                                    href="mailto:sword-devel@crosswire.org"
                                    style="color: purple;
                                    text-decoration: underline;"
                                    moz-do-not-send="true">&lt;sword-devel@crosswire.org&gt;</a><br
                                    class="">
                                  <b class="">Subject:</b><span
                                    class="Apple-converted-space"> </span>[sword-devel]
                                  Versification Mapping<o:p class=""></o:p></span></div>
                            </div>
                          </div>
                          <div style="margin: 0cm 0cm 0.0001pt;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class=""><o:p
                              class=""> </o:p></div>
                          <p style="margin-right: 0cm; margin-left: 0cm;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class="">Hi,<o:p
                              class=""></o:p></p>
                          <p style="margin-right: 0cm; margin-left: 0cm;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class="">I would
                            like to ask a question that I was planning
                            to ask for a while already ...<span
                              class="Apple-converted-space"> </span><br
                              class="">
                            What's the recommended solution of mapping
                            different versification systems?<o:p
                              class=""></o:p></p>
                          <p style="margin-right: 0cm; margin-left: 0cm;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class="">And what
                            working implementations for this are already
                            out there?<br class="">
                            <br class="">
                            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
                              class=""></o:p></p>
                          <p style="margin-right: 0cm; margin-left: 0cm;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class="">It's been
                            a few years since I looked into this and I
                            think this has been my source (SBL Handbook
                            of Style)<br class="">
                            <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" style="color:
                              purple; text-decoration: underline;"
                              class="">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</a><o:p
                              class=""></o:p></p>
                          <p style="margin-right: 0cm; margin-left: 0cm;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class="">My current
                            approach in Ezra Project to map between
                            English and Hebrew versification is the
                            following:<o:p class=""></o:p></p>
                          <ul style="margin-bottom: 0cm;" class=""
                            type="disc">
                            <li class="MsoNormal" style="margin: 0cm 0cm
                              0.0001pt; font-size: 12pt; font-family:
                              &quot;Times New Roman&quot;, serif;">I use
                              "absolute verse numbers" in each book.<o:p
                                class=""></o:p></li>
                            <li class="MsoNormal" style="margin: 0cm 0cm
                              0.0001pt; font-size: 12pt; font-family:
                              &quot;Times New Roman&quot;, serif;">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" style="color:
                                purple; text-decoration: underline;"
                                class="">here</a>).<o:p class=""></o:p></li>
                            <li class="MsoNormal" style="margin: 0cm 0cm
                              0.0001pt; font-size: 12pt; font-family:
                              &quot;Times New Roman&quot;, serif;">The
                              versification (currently only English or
                              Hebrew) of the respective translation is
                              detected based on some simple dynamic
                              tests when opening it.<o:p class=""></o:p></li>
                            <li class="MsoNormal" style="margin: 0cm 0cm
                              0.0001pt; font-size: 12pt; font-family:
                              &quot;Times New Roman&quot;, serif;">I
                              have functions to convert between one and
                              the other "absolute verse numbers" based
                              on the mapping.<o:p class=""></o:p></li>
                            <li class="MsoNormal" style="margin: 0cm 0cm
                              0.0001pt; font-size: 12pt; font-family:
                              &quot;Times New Roman&quot;, serif;">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 class=""></o:p></li>
                          </ul>
                          <p style="margin-right: 0cm; margin-left: 0cm;
                            font-size: 12pt; font-family: &quot;Times
                            New Roman&quot;, serif;" class="">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 class="">
                            <br class="">
                            How flawed is my current approach described
                            above?<br class="">
                            How do other frontends do it?<br class="">
                            Have there been plans to somehow integrate
                            some sort of mapping functionality into the
                            SWORD engine?<br class="">
                            <br class="">
                            Best regards,<br class="">
                            Tobias<o:p class=""></o:p></p>
                        </div>
                      </blockquote>
                    </sword-devel@crosswire.org></araj@critos.co.uk></div>
                <br class="">
                <fieldset class="mimeAttachmentHeader"></fieldset>
                _______________________________________________
                sword-devel mailing list:<span
                  class="Apple-converted-space"> </span><a
                  class="moz-txt-link-abbreviated"
                  href="mailto:sword-devel@crosswire.org" style="color:
                  purple; text-decoration: underline;"
                  moz-do-not-send="true">sword-devel@crosswire.org</a><span
                  class="Apple-converted-space"> </span><a
                  class="moz-txt-link-freetext"
                  href="http://www.crosswire.org/mailman/listinfo/sword-devel"
                  style="color: purple; text-decoration: underline;"
                  moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a><span
                  class="Apple-converted-space"> </span>Instructions to
                unsubscribe/change your settings at above page<br
                  class="">
              </blockquote>
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">_______________________________________________</span><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">sword-devel mailing list:<span
                  class="Apple-converted-space"> </span></span><a
                href="mailto:sword-devel@crosswire.org" style="color:
                purple; text-decoration: underline; font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; orphans: auto; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; widows: auto; word-spacing: 0px;
                -webkit-text-size-adjust: auto;
                -webkit-text-stroke-width: 0px;" class=""
                moz-do-not-send="true">sword-devel@crosswire.org</a><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <a
                href="http://www.crosswire.org/mailman/listinfo/sword-devel"
                style="color: purple; text-decoration: underline;
                font-family: Helvetica; font-size: 12px; font-style:
                normal; font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; orphans: auto; text-align:
                start; text-indent: 0px; text-transform: none;
                white-space: normal; widows: auto; word-spacing: 0px;
                -webkit-text-size-adjust: auto;
                -webkit-text-stroke-width: 0px;" class=""
                moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br
                style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none;" class="">
              <span style="caret-color: rgb(0, 0, 0); font-family:
                Helvetica; font-size: 12px; font-style: normal;
                font-variant-caps: normal; font-weight: normal;
                letter-spacing: normal; text-align: start; text-indent:
                0px; text-transform: none; white-space: normal;
                word-spacing: 0px; -webkit-text-stroke-width: 0px;
                text-decoration: none; float: none; display: inline
                !important;" class="">Instructions to unsubscribe/change
                your settings at above page</span></div>
          </blockquote>
        </div>
        <br class="">
      </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" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
  </body>
</html>