<div dir="ltr">Hi All<div><br>Troy, thanks for the patch. Would you be able to send it as a text file or something? I&#39;m not sure what I can use to open your attachment? It looks base-64 encoded on my laptop.</div><div>

<br></div><div>Konstantin, I&#39;ve had a brief look and can see lots of numbers. Presumably the numbers are the versifications, and the mappings array is the mappings between two or three or four versifications? The mappings look like they are possibly verse numbers?</div>

<div><br></div><div>I was hoping for a versification patching system that might be a bit more supportable/maintainable if possible, i.e. using references to match up between versions. I&#39;ve copied below my suggestion of a system, originally posted on the JSword list, based on some of the posts I&#39;ve seen previously in the Sword mailing list.</div>

<div><br></div><div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial;font-size:small">=================</span><br>
</div><div style="font-family:arial,sans-serif;font-size:13px"><b>Key ideas</b></div><div style="font-family:arial,sans-serif;font-size:13px">- create a converter that goes through to a &quot;master&quot; versification as you suggested. We define the mappings for those OsisIDs that don&#39;t match. The master version is based on the KJV versification (for ease of being able to create new mappings) + the books that aren&#39;t in the KJV.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">- mappings include just the bits that don&#39;t match up.</div><div style="font-family:arial,sans-serif;font-size:13px">
- mappings can be define for sets of verses with offset, e.g. Psalm 51:1-5=Psalm 51:1+1 (where +1 indicates an offset of 1 to be applied to the source.</div><div style="font-family:arial,sans-serif;font-size:13px">- Have the concept of split verses (i.e. Rom 1:1a, Rom 1:1b, etc.)</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">- A tool to create a split in the master versification, which rewrites all the current versifications, such that when someone writes a mapping and needs to split a verse, they can introduce the split without adversely affecting every other mapping.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">- the lookup process takes an String (OSIS ID) with a source and target versification. (also overload that with Key/Verse). It then queries the master mapping, which returns 1 or more entries (an entry being a whole verse, or set of split verses). Then goes to reverse mappings for the target versification and does the same. For incomplete verses on one side or the other, we round up the closest verse.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">- The reason for basing the versification on KJV (or some other English versification), is that&#39;s it easy to work against. The alternative would be to go for the most split versification ever found, but that becomes painful in the future if someone decides to split another verse in 2 parts.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">- When introducing a split, we would want to record what the split actually refers to (i.e. what content). This wouldn&#39;t be used by the library, but instead be useful for people coming along and writing new mappings.</div>
</div><div><br></div><div>=================<br></div><div style><b>And here are some examples of how it would work in practice:</b></div><div style><br></div><div style><div style="font-family:arial,sans-serif;font-size:13px">
<b>2 verse in the original, 1 verse in the KJV-based master</b></div><div style="font-family:arial,sans-serif;font-size:13px">Gen.1.1=Gen.1.1</div><div style="font-family:arial,sans-serif;font-size:13px">Gen.1.2=Gen.1.1</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><b>1 verse in the original, 2 verses in the master</b></div><div style="font-family:arial,sans-serif;font-size:13px">
Gen.1.1=Gen.1.1-Gen.1.2</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><b>Using splits, so that 2 separate versifications can refer to the same parts of verses</b></div>
<div style="font-family:arial,sans-serif;font-size:13px">Gen.1.1=Gen.1.1a</div><div style="font-family:arial,sans-serif;font-size:13px">Gen.1.2=Gen.1.1b</div><div style="font-family:arial,sans-serif;font-size:13px">Gen.1.3=Gen.1.1.c</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Then another versification can also refer to the same parts. It would become necessary to keep track of what the parts are, such that they can be easily re-used when approrpriate. For example, a second versification might be mapped as follows:</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Gen.1.1=Gen.1.1a-Gen.1.1b</div><div style="font-family:arial,sans-serif;font-size:13px">Gen.1.2=Gen.1.c</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><b>No mapping</b></div><div style="font-family:arial,sans-serif;font-size:13px">Osis IDs mean the same thing.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I think the above covers, &quot;Split verse&quot;, &quot;Merged verse&quot;, Different verse boundaries.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><b>Chapter boundaries can be mapped equally the same:</b></div><div style="font-family:arial,sans-serif;font-size:13px">
Gen.1.1=Gen.1.1</div><div style="font-family:arial,sans-serif;font-size:13px">Gen.1.2=Gen.2.1</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
indicates that that Genesis 1:2 can be found in Gen 2:1 in the master.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><b>Extra verses</b></div>
<div style="font-family:arial,sans-serif;font-size:13px">We simply introduce some identified ids (osis ids, or other form of unique identifier) in the master to identify the content of these verses</div><div style="font-family:arial,sans-serif;font-size:13px">
<br></div><div style="font-family:arial,sans-serif;font-size:13px">Additional verses within a chapter can be represented using the above.</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"><br>
</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"><b>Psalm headings:</b></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">Ps.53.1=Ps.53.1 (not required, or required if map it to &#39;nothing&#39; or &#39;0&#39;)</div>
<div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">Ps.53.2=Ps.53.1</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">Ps.53.3=Ps.53.2</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
<br></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">We can reduce this to if we want to introduce a less verbose way of mapping things.</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
Ps.53.2-7-=Ps.53.1-+1 (where minus simply indicates that there is an offset of 1 compared to the master)</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"><br></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
<b>Absent verses</b></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">absent=Gen1.91,Gen.2.32</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"><br></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
<b>For new sections in the middle:</b></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">We &quot;invent&quot; some new ideas, for example in Daniel, we could have the mappings:</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">
Dan.3.24=songofchildren.1</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">Dan.3.25=songofchildren.2</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">...</div>
<div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"><br></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">I don&#39;t think we need to introduce splits on the left hand-side. The reason being, you can&#39;t do anything with an OSIS id of Gen.1.1a, since you&#39;re going to retrieve a whole verse anyway, so we can keep things with splits only-ever on the right hand side. Splits are only used to refer to the master system. They are not necessary but they add resolution to the mapping lookups. Here&#39;s the reason.  If a and b split verses in a similar way we would like to be able to go from a to b without ending up with a bigger chunk of text.</div>
</div><div><p dir="ltr" style="font-family:arial,sans-serif;font-size:13px">Gen.1.1=Gen.1.1a<br>Gen.1.2=Gen.1.1b</p><p dir="ltr" style="font-family:arial,sans-serif;font-size:13px">If both versifications define the above we can go from gen.1.1 in one versification to the equivalent in the target. Without the split, the intermediate master resolves to gen.1.1 which in turn resolves to Gen.1.1 and Gen.1.2</p>
</div><div><div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">For verse ranges, we can expand out to its list of verses contained in the source versification first. Then there needs to be a choice by the user/software of whether we&#39;re attempting to compare a contiguous section in the target versification, or verses of the same content..</div>
</div></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px"><br></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:13px">The good about this is that we don&#39;t need to create any record of the &quot;master&quot; versification, except to document how it is being used, what the splits are, etc.</div>
<div style>What do people think?</div><div><br></div><div>Chris</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 18 March 2013 19:24, Konstantin Maslyuk <span dir="ltr">&lt;<a href="mailto:kostyamaslyuk@gmail.com" target="_blank">kostyamaslyuk@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello. There really is done work for av11n conversion support for sword. You even may get patch at<br>
<br>
<a href="https://gitorious.org/~kalemas/sword-svn-mirrors/kalemas_at_mail_ru-trunk/commit/35a3fc6bde1ccff945d51558d7e21ab1074a4152" target="_blank">https://gitorious.org/~<u></u>kalemas/sword-svn-mirrors/<u></u>kalemas_at_mail_ru-trunk/<u></u>commit/<u></u>35a3fc6bde1ccff945d51558d7e21a<u></u>b1074a4152</a><br>

<br>
and use it if you compile libsword for your self. But you also should take into account that this feature is not supported officially and would be incompatible with future releases of Sword. And there is no known schedule for this as this work was not considered for two years.<br>

<br>
Blessings.<br>
<br>
<br>
<br>
Chris Burrell &lt;<a href="mailto:chris@burrell.me.uk" target="_blank">chris@burrell.me.uk</a>&gt; писал(а) в своём письме Tue, 12 Mar 2013 23:44:36 +0400:<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi<br>
<br>
I was wondering if someone is working on being able to convert from 1<br>
versification system to another. This very important for being to line up<br>
verses and therefore very important to STEP for our interlinears.<br>
<br>
I&#39;m told someone is doing the work for Sword first and then we will bring<br>
it across into JSword.<br>
<br>
Is someone working on this? Does anyone know what the status of this is? Is<br>
there a target date for when the design will be finalised such that we can<br>
implement this in JSword?<br>
<br>
Chris<br>
</blockquote>
<br>
<br></div></div><span class="HOEnZb"><font color="#888888">
-- <br>
Написано в почтовом клиенте браузера Opera: <a href="http://www.opera.com/mail/" target="_blank">http://www.opera.com/mail/</a><br>
</font></span></blockquote></div><br></div>