[sword-devel] [bt-devel] Judges: Judg or Jud? and the handling of invalid references
Chris Little
chrislit at crosswire.org
Fri Mar 27 23:34:51 MST 2009
Jonathan Morgan wrote:
> On Sat, Mar 28, 2009 at 3:34 PM, Jonathan Marsden <jmarsden at fastmail.fm> wrote:
>> I think I've found an interesting bug... or maybe more than one?
>
> This is a module problem, so I have CC'ed sword-devel.
There's no mention of which version of ISBE was tested here, but I'll
address this as if it were the latest edition that is being discussed
since the problem does exist there. (But it's my suspicion that this
report is actually based on the previous version.)
The problem, in any event, is in the module (at least for now).
>> Bugs:
>>
>> (a) References to books of the Bible should use some standard form for
>> the names of books. MHC uses Judg for Judges, which works fine in BT.
>> ISBE uses Jud for Judges, which does not work correctly in BT. Where is
>> the standard defined, and which one is correct (I'd guess ISBE is
>> correct) according to that standard?
>
> I believe Jud for Jude and Judg for Judges is considered correct.
> From memory, the TSK also shares the same problem, which is why the
> BPBible locale uses Jud for Judges rather than Jude. I don't think it
> is possible to tell easily which one the user might "expect" (though
> Jud 19:2 is a pretty fair giveaway), but the modules should be made
> unambiguous (if it were using OSIS, as it probably will in the future,
> then I think it would use OSIS refs, which are (or should be)
> unambiguous).
The standard forms will appear within osisRefs and they will be Jude for
Jude and Judg for Judges. References still go through the verse list
parser, though, so Jud gets mapped to Jude--and there's plenty of good
logic to that, so I wouldn't suggest we change that.
The current TEI module uses osisRefs, but since they were generated by
parsing the verse references through the Sword engine, the osisRefs are
incorrect wherever Jud should indicate Judges.
When using the TEI module, once I get it updated to take this into
account, if you still have a problem, it's because your front end is not
using the osisRef attribute, but is parsing the CDATA within the
reference element itself. Then it would be a front end bug.
>> (b) References to "Jud X:Y" should *never* link into Revelation. Either
>> Jud is an invalid book abbrevation, in which case BT should probably say
>> that in the mag window, or else it is a valid book abbreviation for
>> either Judges (so link there) or Jude (so link there, if the chapter and
>> verse exist, and display a warning if they don't). But linking into
>> Revelation in these circumstances is just plain wrong... surely?
>
> In Sword, Jude X:Y, is Revelation X - 1: Y when X > 1. I don't think
> that behaviour desirable, but some people seem to like it.
Verse normalization can be disabled.
>> (c) I'd expect that a quick fix would be to change all the references
>> that start with "Jud " in the ISBE into "Judg " and then compile the
>> resulting text back into a module again. That's theoretically a simple
>> one liner:
>>
>> mod2imp ISBE |sed -e 's/>Jud />Judg /g' |imp2ld ISBE ISBE
>>
>> On my system that takes up 100% of one CPU core... for a long time...!
>> I'm not sure if I did something wrong in the command above, am just too
>> impatient to wait for it to run, or if imp2ld is buggy on my system in
>> some way?
I believe the old ISBE has a key sorting error that will result in an
infinite loop.
--Chris
More information about the sword-devel
mailing list