[sword-devel] osis2mod problems

DM Smith dmsmith at crosswire.org
Tue May 19 05:32:24 MST 2009


I've verified that this is a bug and entered a bug report. I'm working  
on a fix.

I also added a feature request for handling comments.

In Him,
	DM

On May 18, 2009, at 6:55 PM, DM Smith wrote:

>
> On May 18, 2009, at 12:06 AM, Ben Morgan wrote:
>
>> osis2mod doesn't handle comments - is this known/cared about?
>
> So far it does not know about comments. It would be a nice addition.  
> I think the behavior should be to skip all content (i.e. exclude it  
> from the module)from an opening <!-- to a closing -->. While this  
> does not match the xml spec, it probably would be adequate. The xml  
> spec does not allow for nesting comments in comments. I suppose that  
> we could also look for a --> and if we are not in a comment that it  
> would be an error.
>
>> osis2mod currently assumes that a <div eID="..."> that appears  
>> outside a verse, but inside a chapter is a chapter-closing div  
>> (presumably because that is how commentaries close chapters).
>
> I don't think it should. Osis2mod has a stack that it uses to pair  
> start tags with end tags. Basically, it should, upon finding a </ 
> div>, consult the stack to see what the opening element is. If it is  
> a chapter div, then it closes the chapter.
>
>
>> This breaks the pre-verse logic when you have this type of thing  
>> (inside a chapter):
>> <div type="section">
>> <title>Genesis 1.1 title</title>
>> <verse osisID="Gen.1.1" osisRef="Gen.1.1">Verse 1 text</verse>
>> </div>
>
> This closing div should be matched, via the stack, with <div  
> type="section">.
>
>> <div type="section">
> The intended behavior of osis2mod upon seeing an opening tag between  
> two verses is to mark it as starting pre-verse material. This <div  
> type="section"> should be attached to the beginning of
>> <title>Genesis 1.2 title</title>
>> <verse osisID="Gen.1.2" osisRef="Gen.1.2">Verse 2 text</verse>
>> </div>
>>
>> This should put Genesis1.2 title in Genesis 1:2. However, it  
>> currently puts it at the end of Genesis 1:1 due to the closing div.
>
> So, if it doesn't do what it should do, the way it should, then it  
> is a bug and needs to be fixed.
>
>>
>> I have fixed two other problems today with osis2mod:
>> 1) due to typo, the default storage was LZSS compression
>> 2) pre-verse material which was handled was not matching the sID  
>> with the eID
>
> Thank you so much.
>
>>
>> I wonder if we need to release some of the important utilities at  
>> different times from the engine. (i.e. have a osis2mod release once  
>> problems are fixed with it)
>
> I can go both ways on this. It is important that osis2mod builds  
> modules that can be read by a particular version of the SWORD  
> engine. Even with SWORD 1.5.11, osis2mod built modules that would  
> work with 1.5.9 front-ends. The current osis2mod requires a 1.6.0  
> engine.
>
> As to bug fixes, my recommendation is almost always to use SVN head.  
> The only exception to this was during the development of av11n,  
> which broke osis2mod for a while. In that case, getting osis2mod  
> from head and building against 1.5.11 would have been great.
>
> I realize that this is generally beyond Windows users. And most  
> users of a distribution expect the code there to be current with the  
> latest release, even though that has not been true. Perhaps the old  
> days are gone, where recommending to Linux users to build something  
> is typical.
>
> I think we need to start a regression test case. Perhaps the  
> following would work. An OSIS xml input file, like above that does  
> not have real text, but gives a suitable placeholder. And a raw file  
> built from the input. I think we can stick with either NT or OT  
> references so that we only have one file.
>
> Running it with DEBUG compiled in and with the -d 2 flag to produce  
> verse milestones would help identify where the problems occur.
>
> Then as someone reports a problem, it can be added to the input  
> file, and the output file could be updated too. The regression test  
> case would not catch unrepresented, problematic constructs, but it  
> would prevent regression due to either improvements to osis2mod or  
> to the SWORD engine that it uses.
>
> I've got a start of such a file and we have a spot on the wiki for  
> it too. Now to meld them together.
>
> In Him,
> 	DM
>
>>
>> God Bless,
>> Ben
>> -------------------------------------------------------------------------------------------
>> Multitudes, multitudes,
>>   in the valley of decision!
>> For the day of the LORD is near
>>   in the valley of decision.
>>
>> Giôên 3:14 (ESV)
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page




More information about the sword-devel mailing list