<html><head><meta http-equiv="Content-Type" content="text/html charset=koi8-r"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Thanks. It'll take me some time to wrap my head around this.<div><br></div><div>-- DM</div><div><br><div><div>On Mar 19, 2013, at 5:54 AM, Костя Маслюк &lt;<a href="mailto:kostyamaslyuk@gmail.com">kostyamaslyuk@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">There is code/tool/data set at<br>
<a href="https://crosswire.org/%7Ekalemas/work/v11nmapping" target="_blank">http://crosswire.org/~kalemas/work/v11nmapping</a><br>
That would be missed link to understand how it works. RefMap2cpp.py is<br>
used to convert v11n description in XML file to data table that you<br>
have been seen in the patch. XML files contain of two parts: full list<br>
of the verses and mapping data for transitions only.<br>
<br>
There is also testmappings.exe if you would like to test NRSV John 3,<br>
it probably would work (i remember that in nrsv there are two cases,<br>
but John would need no corrections). You can quickly move along the<br>
module with this, switch active modules with different versification. Source code is also available.<br>
<br><br>
I use KJVA versification as intermediate, with use of meta space. I did<br>
not encountered with complicated cases of meta space usage so I did not<br>
documented it anywhere.<br>
<br><br>
In NRSV Rev 12.18-19 is necessary for backward transition from KJVA to<br>
NRSV. Rev 12.19 means next chapter first verse.<br>
<br>
<br>
66, 13, 1, 1, 13, 1, 0,<br>
<br>
66 - Rev, 13 - chapter, 1, 1 and 1, 0 means mapping ranges. It is exact<br>
verse if range end is equal to zero or is below range start. In this<br>
case nrsv is range and kjv is exact verse... This is necessary when we<br>
transit from nrsv to vulg, because Rev 12.18-Rev 13.1 is the same, so i do ranges comparision in KJV to correctly bring NRSV.Rev.13.1 to VULG.Rev.13.1, because KJV.Rev.13.1 = VULG.Rev.12.18-Rev.13.1<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 66, &nbsp;12, &nbsp;18, &nbsp;19, &nbsp;13, &nbsp;1, &nbsp; 0,<br>

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 66, &nbsp;13, &nbsp;1, &nbsp; 1, &nbsp; 13, &nbsp;1, &nbsp; 0,<br>Note, there is also different parse order: to KJV we parse backwards from last to first, from KJV - forward data table parsing (or vice versa, i do not remember :^).<br><br>
<br><b>Absent Books</b><br>unsigned char mappings_nrsv[] = {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 66, &nbsp;12, &nbsp;18, &nbsp;19, &nbsp;13, &nbsp;1, &nbsp; 0,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 66, &nbsp;13, &nbsp;1, &nbsp; 1, &nbsp; 13, &nbsp;1, &nbsp; 0,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0<br>
&nbsp; &nbsp; &nbsp; &nbsp; };<br>This data contain of two parts, first in Book Names list, NULL terminated, second is Mapping Rulles List, also NULL terminated. Here Book names is empty, but for Vulg there is:<br><pre>unsigned char mappings_vulg[] = {
    'E', 'p', 'J', 'e', 'r', 0,
    'P', 'r', 'A', 'z', 'a', 'r', 0,
    'S', 'u', 's', 0,
    'B', 'e', 'l', 0,
    0,<br>...<br></pre>It is absent book names in KJV, necessary to correctly transit with non KJV v11ns. For example, KJV does not contain PrAzar, but we able to correctly transit from Synodal to Vulg, because Synodal have following:<br>
&lt;map from="Dan.3.24" to="PrAzar.1.1"/&gt;<br>&lt;map from="Dan.3.25" to="PrAzar.1.2"/&gt;<br>&lt;map from="Dan.3.26" to="PrAzar.1.3"/&gt;<br>...<br>In cpp data we use book numbers above versification book count: like refSys.getBookCount() + 1 = "Sus". In Synodal:<br>
<pre>unsigned char mappings_synodal[] = {
    'P', 'r', 'A', 'z', 'a', 'r', 0,
    'S', 'u', 's', 0,
    'B', 'e', 'l', 0,
    0,<br>...<br>&nbsp;   26,  7,   2,   0,   7,   1,   0,
    79,  3,   24,  0,   1,   1,   0,  35,</pre>We test if 79 is greater than getBookCount(), if so we take last number - 35 as current book and 79 as target book: 79 - getBookCount() = "PrAzar". Chapter and verse data is used as always.<br>
<br><br><b>Verse Shifting</b><br><pre>    21,  106, 0,   0,   107, 0,   0,
    21,  107, 1,   2,   108, 1,   0,</pre>First line - Vulg Ps.106 = KJV Ps.107, it should be clear.<br>Second Line: for whole chapter there is only one rule. I only need to declare expansion or contraction, the rest of the chapter will be shifted, including meta-versification space. Rules works on chapter level.<br>
<br><br>In conclusion two things i would add. Probably v11n xmls should be converted to OSIS format, i have no decision because i do not see advantages for now. I plan to change cpp rules format to have first number equal to binary size of the rule, this seem to me good tone and would bring backward compatibility for if we ever have module supplied versification with mappings included.<br>
<br>Blessings.<br><br><br><div class="gmail_quote">2013/3/19 DM Smith <span dir="ltr">&lt;<a href="mailto:dmsmith@crosswire.org" target="_blank">dmsmith@crosswire.org</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Konstantin,<br>
<br>
Thanks very much for the work you've done.<br>
<br>
I'm trying to understand the data structure. JSword is an independent implementation and doesn't use SWORD libraries. So to implement something like this, it'll be helpful to understand what the data structures and the data means.<br>

<br>
If I understand, you are using the KJVA as the common bridge between different versifications.<br>
<br>
For the NRSV you have the following:<br>
<br>
unsigned char mappings_nrsv[] = {<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 66, &nbsp;12, &nbsp;18, &nbsp;19, &nbsp;13, &nbsp;1, &nbsp; 0,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 66, &nbsp;13, &nbsp;1, &nbsp; 1, &nbsp; 13, &nbsp;1, &nbsp; 0,<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0<br>
&nbsp; &nbsp; &nbsp; &nbsp; };<br>
<br>
If I read this correctly, 66 refers to Revelation (with the books are numbered from 1 for Genesis to 66 for Rev as appears in the KJV, and all apocryphal books are numbered higher than the canonical ordered as in the KJVA).<br>

<br>
In the first non-zero row, the 66, 12, 18, 19 means Rev 12:18-19 from the NRSV.<br>
<br>
And the "13, 1, 0" means Rev 13:1 in the KJV.<br>
<br>
So basically, NRSV Rev 12:18-19 is the same as KJV Rev 13:1.<br>
<br>
When I look into the NRSV versification in SWORD, I'm seeing that Rev 12 goes to verse 18. Whereas the KJV goes to verse 17. Where does the 19 come in?<br>
<br>
The next line has 66, 13, 1, 1 (So NRSV 13:1) maps to 13, 1, 0 (to KJV 13:1).<br>
<br>
Putting all of this together, KJV 13:1 is NRSV 12:18-13:1.<br>
<br>
Curious why is it 66, 13, 1, 1 and not 66, 13, 1, 0?<br>
<br>
Am also wondering why there's no entry for John 3. In the NRSV, there are 15 verses but in the KJV there are 14. So shouldn't there be a line with:<br>
64, 1, 14, 15, 1, 14, 0<br>
<br>
I'm sure as I dig into Synodal, I'll have more questions. But I wait until I find out whether I'm missing something here.<br>
<br>
In Him,<br>
&nbsp; &nbsp; &nbsp; &nbsp; DM<br>
<div class="HOEnZb"><div class="h5"><br>
On Mar 18, 2013, at 3:24 PM, "Konstantin Maslyuk" &lt;<a href="mailto:kostyamaslyuk@gmail.com">kostyamaslyuk@gmail.com</a>&gt; wrote:<br>
<br>
&gt; Hello. There really is done work for av11n conversion support for sword. You even may get patch at<br>
&gt;<br>
&gt; <a href="https://gitorious.org/~kalemas/sword-svn-mirrors/kalemas_at_mail_ru-trunk/commit/35a3fc6bde1ccff945d51558d7e21ab1074a4152" target="_blank">https://gitorious.org/~kalemas/sword-svn-mirrors/kalemas_at_mail_ru-trunk/commit/35a3fc6bde1ccff945d51558d7e21ab1074a4152</a><br>

&gt;<br>
&gt; 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>

&gt;<br>
&gt; Blessings.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Chris Burrell &lt;<a href="mailto:chris@burrell.me.uk">chris@burrell.me.uk</a>&gt; писал(а) в своём письме Tue, 12 Mar 2013 23:44:36 +0400:<br>
&gt;<br>
&gt;&gt; Hi<br>
&gt;&gt;<br>
&gt;&gt; I was wondering if someone is working on being able to convert from 1<br>
&gt;&gt; versification system to another. This very important for being to line up<br>
&gt;&gt; verses and therefore very important to STEP for our interlinears.<br>
&gt;&gt;<br>
&gt;&gt; I'm told someone is doing the work for Sword first and then we will bring<br>
&gt;&gt; it across into JSword.<br>
&gt;&gt;<br>
&gt;&gt; Is someone working on this? Does anyone know what the status of this is? Is<br>
&gt;&gt; there a target date for when the design will be finalised such that we can<br>
&gt;&gt; implement this in JSword?<br>
&gt;&gt;<br>
&gt;&gt; Chris<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Написано в почтовом клиенте браузера Opera: <a href="http://www.opera.com/mail/" target="_blank">http://www.opera.com/mail/</a><br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; _______________________________________________<br>
&gt; sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
&gt; <a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
&gt; Instructions to unsubscribe/change your settings at above page<br>
<br>
<br>
_______________________________________________<br>
sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br>
<a href="http://www.crosswire.org/mailman/listinfo/sword-devel" target="_blank">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>
Instructions to unsubscribe/change your settings at above page</div></div></blockquote></div><br>
_______________________________________________<br>sword-devel mailing list: <a href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a><br><a href="http://www.crosswire.org/mailman/listinfo/sword-devel">http://www.crosswire.org/mailman/listinfo/sword-devel</a><br>Instructions to unsubscribe/change your settings at above page</blockquote></div><br></div></body></html>