[sword-devel] USFM -> OSIS -> Sword

Daniel Owens dhowens at pmbx.net
Wed Mar 7 18:15:51 MST 2012

On 03/07/2012 02:46 PM, Kahunapule Michael Johnson wrote:
> On 03/06/2012 04:12 PM, Jonathan Morgan wrote:
>> On Wed, Mar 7, 2012 at 6:17 AM, Kahunapule Michael Johnson 
>> <kahunapule at mpj.cx <mailto:kahunapule at mpj.cx>> wrote:
>>     On 03/06/2012 12:47 AM, Jonathan Morgan wrote:
>>>          1. You accurately preserve all of the original text and
>>>             punctuation (including quotation punctuation) exactly as
>>>             it was in the original USFM. This involves the complete
>>>             process from module creation to display in all front
>>>             ends. This is an absolute requirement with respect to
>>>             the canonical text. If this condition isn't met, then I
>>>             don't have permission to convert these Scriptures to
>>>             Sword format, nor do you have such permission.
>>>     I'm afraid I do not understand how either you or CrossWire can
>>>     ensure that *all* front ends display all text correctly.  I have
>>>     no idea from your descriptions whether BPBible or any other
>>>     frontends would meet the requirements currently.  However, even
>>>     if they did it is conceivable that a new front end is created
>>>     which does not meet the requirements.  Does this mean that
>>>     CrossWire immediately loses permission to distribute the text
>>>     for use in any of the front ends? (including all the front ends
>>>     that are compliant, of course).
>>     That is a very good question-- one that I really don't want to
>>     have to raise with the copyright owners!
>>     At a minimum, noncompliant front ends may not use the texts if
>>     they cannot do so without corrupting them.
>> A couple of things:
>> 1. Non-compliant frontends do not use the text: users do.
>> 2. Non-compliant frontends do not distribute modules: CrossWire (or 
>> some other organisation) does.
> Blame-shifting is not productive. Quality control at all stages in the 
> complete system from Bible translator to user is productive.
>>     I'm not talking about getting all of the formatting correct. I'm
>>     just talking about exactly preserving all text and punctuation of
>>     the canonical text. If a front end cannot do that, it should be
>>     withdrawn from public distribution, as it is clearly a threat to
>>     our ability to distribute Scriptures. Actually, there is a
>>     greater threat that copyrights: the fear of God. I wouldn't want
>>     to be caught dead or alive corrupting the Holy Bible. I would
>>     think that you wouldn't, either. It is a fearsome thing to fall
>>     into the hands of God when He is angry.
>> All of this assumes knowledge of errors.  Unless you manually test 
>> every verse of every Bible in every frontend, some could display a 
>> result different from what you expected.  I know that at different 
>> times I have seen some unusual bugs.
>> A few (real world) cases:
>> 1. A bug in BPBible meant that when Strong's Numbers were displayed, 
>> some verses in the Chinese would not display.
>> 2. A bug in encoding meant opening a Bible to a particular chapter 
>> would raise an error message.
>> 3. Incorrect font usage meant that the text displayed completely wrongly.
>> When these bugs are encountered and reported, we will fix them, but I 
>> cannot write (consistently) bug-free code and I don't think I've ever 
>> met a developer who can.  Certainly a fairly high percentage of the 
>> module rendering errors that are reported to me in BPBible are caused 
>> by modules I had never used (often in languages I did not know), and 
>> where for whatever reason my assumptions were wrong.
> I understand the limitations of imperfect human programmers. What I 
> expect is that:
>   * Each part of the whole Bible study software system from
>     translation to module creation to back end development to front
>     end display is carefully designed to correctly handle Bible texts
>     without corruption.
>   * Reasonable care is taken by everyone involved to ensure that the
>     implementations are correct.
>   * Reasonable testing is done.
>   * High priority is given to correcting any problems that result in
>     corruption of the text.
> This is not unreasonable, is it?
Responding as a module creator...

I understand and share your desire to have Bible translations rendered 
faithfully (not corrupted - we're not talking about SWORD corrupting 
your data but rather failing to render it faithfully). And I think your 
expectations above are reasonable. The developers work hard to make sure 
the software works correctly. I think the conversation about headings in 
the past few days has shown this. However, at the end of the day, the 
module creator is responsible to ensure that these expectations are met.

You are responsible to make sure that your markup produces the desired 
result and that adequate testing is done. I suggest testing as broadly 
as you can, at a minimum testing in BibleTime, Xiphos, BibleDesktop, and 
BibleCS. I think that should cover the main rendering methods.

If something essential is not yet supported, you can lobby for it and 
refrain from submitting a module until your desired markup is supported. 
After you submit a module, if you notice a bug, you can lobby to have it 
fixed or offer a fix yourself. If the bug is serious enough, you can ask 
for the module to be taken off the server until there is a fix.

But consider this—where else can you publish your translations? I had a 
conversation with a leading for-profit Bible software company executive 
about getting Vietnamese Bibles into their software. Now, Vietnamese is 
among the top 20 most-spoken languages in the world (i.e., a real 
market), but they were not very interested, even if I volunteered to 
help. Crosswire does an amazing service to minority languages by making 
them available through a free distribution network.


More information about the sword-devel mailing list