[sword-devel] osis2mod warnings

DM Smith dmsmith at crosswire.org
Thu Oct 11 04:21:39 MST 2012

On Oct 10, 2012, at 1:02 AM, Greg Hellings <greg.hellings at gmail.com> wrote:

> There are two osis2mod warnings I'm getting that seem strange to me.
> The first is when it encounters post-verse material. It will issue a
> warning such as follows:
> INFO(V11N): Jude is not in the KJV versification. Appending content to
> 3John.1.14
> INFO(WRITE): Appending entry: 3John.1.14: *snipped content of 3John.1.14*
> Now the material in question is simply a few closing colophons and/or
> closing tags from the material in 3 John. Jude is, most definitely, a
> part of the KJV versification. But when I got this message the first
> time I ended up spinning in circles a few times looking for the issue
> before realizing it was just an oddly worded debug statement. Perhaps
> this should be altered to reflect what is actually happening?

Osis2mod splits the input into chunks and tries to figure out which slot in the index to put that chunk. W/o seeing your file, it is hard to tell what the problem actually is, so I'm going to guess.

Maybe the colophon is not contained within the last chapter/book of John? Anything between books may be taken to belong to the next book. There may be a problem in assigning that to Jude.0.0 (i.e. the book introduction).

That the osisID given is "Jude", this indicates that it did not find Jude.1.1 when it tried to add a chunk, therefore it attaches to the last seen verse in the av11n, which in this case is 3John.1.14.

OSIS requires a chapter of 1 for single chapter books. I don't think this is the problem.

If you can supply the end of 3John and the start of Jude, I can probably pinpoint the problem and perhaps improve the diagnostics, if it is not a code change.

> Secondly is the warning pair:
> WARNING(NESTING): verse Gen.10.2 is not well formed:(3,5)
> WARNING(NESTING): verse Gen.10.4 is not well formed:(5,3)
> The offending text reads:
> <verse osisID="Gen.10.2" sID="Gen.10.2"/><list><item
> type="x-indent-1">Ahima a Zhafeti yaali: Goomeri, Magogi, Madayi,
> Yavani, Tubali, Mexeki, ni Tirasi.</item>
> <item type="x-indent-1"><verse eID="Gen.10.2"/>
> <verse osisID="Gen.10.3" sID="Gen.10.3"/>Ahima a Goomeri yaali
> Axekenazi, Rifati ni Togaarima.</item>
> <item type="x-indent-1"><verse eID="Gen.10.3"/>
> <verse osisID="Gen.10.4" sID="Gen.10.4"/>Ahima a Yavani yaali: Elixa,
> Tarixixi, Kitiimi ni Rodanimu.</item></list>
> <p><verse eID="Gen.10.4"/>
> My assumption is that the "not well formed" warning is coming from the
> <list> ... </list> that is spanning across multiple verses. Yet
> strangely these spanning <item> tags (misplaced by usfm2osis.py or in
> the wrong place in the USFM files) are not generating a warning. What
> is the malformed issue here? xmllint seems to think the file validates
> against the official OSIS schema, so it's not an XML validation issue.

The issue is not an xml one, or one of syntax, but rather semantics and use.

First, the warning is just that: a warning. It is not an error. It is saying that the verse as a fragment is not well formed. Osis2mod transforms container elements to milestone form to handle this. Perhaps this is not transformed or is not available to be transformed. If transformed, then the verse is well-formed and the warning should not happen (IIRC).

Second, the problem with this is when the verse is shown in isolation. If the verse is shown in isolation, it may not render properly because it does not have the entire context. Also, JSword has a requirement that a verse be a well-formed fragment. Otherwise, it strips out all markup and leaves the content. (This gets confusing when notes are shown inline!) JSword needs to change.

I guess the message could be made to be clearer.

Also, this list construct is problematic. It has nothing to do with the warning.
First, why is <list> and <item> used? Is it really a list? I don't know how SWORD renders this, but JSword uses a bulleted list. If this is markup for poetry, it should be using OSIS poetry markup.
Second, having <verse><list> rather than <list><verse> will probably cause the verse number to be rendered on the line prior to the start of the list.
Third, having <verse><item> may have the same orphan verse number problem. The item element typically causes rendering to be done at the start tag.

A list should typically end after a verse. (Same with other container markup.) It certainly should not be immediately before a verse end.

The <p> is not placed well. It does not make sense that a paragraph starts within a verse, unless it splits the verse content. (same with other container markup.)

This may be more of a problem with usfm2osis.

> Any help would be appreciated.

Don't know if that helps.

> --Greg
> _______________________________________________
> 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