First, on the topic of OSIS book abbreviations:
Almost everything you should ever need for Bibles is at http://www.crosswire.org/~chrislit/osis/BibleBookNames.html

There are also the following, less up-to-date xml files, which add more non-canonical materials. These were the the source materials for the above, but I haven't maintained them since creating the above list of Bible books.
Bible: http://www.crosswire.org/~chrislit/osis/bible.xml
OT Pseudepigrapha: http://www.crosswire.org/~chrislit/osis/otp.xml
NT Apocrypha: http://www.crosswire.org/~chrislit/osis/nta.xml
Nag Hammadi codices: http://www.crosswire.org/~chrislit/osis/naghammadi.xml
(named) Dead Sea Scrolls: http://www.crosswire.org/~chrislit/osis/qumran.xml
Mormon texts: http://www.crosswire.org/~chrislit/osis/lds.xml
Classical sources (but actually just Josephus, currently): http://www.crosswire.org/~chrislit/osis/classical.xml

Now, looking at the list of files at the LXXM source site (http://ccat.sas.upenn.edu/gopher/text/religion/biblical/lxxmorph/), there are four categories of problems with mapping files onto OSIS IDs:

1) Books with <number>.<abbrev>.<number>.mlxx style filenames, e.g. 01.Gen.1.mlxx & 02.Gen.2.mlxx. These are just single books divided into two files and should be concatenated.

2) Apocryphal books. These should all be listed in the file listed at the top. E.g. Judith = Jdt, Tobit = Tob, Odes = Odes, Psalms of Solomon = PssSol.

3) Ezras. The Ezras are just absurdly icky. For the LXX, I recommend NOT just mapping 1Esdras to Ezra and 2Esdras to Nehemiah. The don't actually line up correctly like this. Whole volumes could and probably have been written about the Ezras, and I would strongly recommend just tagging them 1Esd and 2Esd, respectively.

[Specifically:
Hebrew Ezra = Vulgate 1Esd = KJV Ezra
Hebrew Neh = Vulgate 2Esd = KJV Neh
LXX 1Esd = Vulgate 3Esd = KJV 1Esd = 2Chr 35-36 paraphrased + Ezra + Neh 7:38-8:12 + other material
LXX 2Esd = Hebrew Ezra+Neh = Vulgate 1Esd+2Esd = KJV Ezra+Neh
And 4Esd(=4Ezra+5Ezra+6Ezra) makes things even more complicated--but luckily isn't of import since it isn't in the LXX.]

4) Variant books, namely (Josh|Judges)(B|A), Tobit(BA|S), (Daniel|Bel|Sus)(OG|Th)--6 books with 2 variants each. I would strongly recommend treating each of these 12 books as individual books. Give them unique osisIDs, present them to the user as unique books, etc. This is how Logos does it. This is how BibleWorks does it. And I believe STEP even incorporated a separate book ID to account for the 6 additional books in Rahlfs. Rahlfs is a sufficient important source text that you really ought to do whatever you need to do to accommodate it in its native form. You should wedge it into another versification system (e.g. one with only one book each of Joshua, Judges, Tobit, Daniel, Bel & the Dragon, and Susanna).

I don't have my Rahlfs with me, but I really don't think presenting it in a tabular view with both traditions on a single screen is the right way to go. If we're working within the KJV versification, that's a suitable compromise. But if we're permitted to make changes to the underlying versification system in Sword and present Rahlfs in its OWN versification system, the books should be separated.

Towards that end, I would recommend adding 6 books to the BibleBookNames.html file cited at the top, to accomodate the 6 variant books in Rahlfs: JoshA, JudgA, TobS, DanTh, BelTh, & SusTh. Under this system, JoshB = osisID Josh, JudgesA = osisID Judg, TobBA = osisID Tob, and the OG Daniel texts = osisIDs Dan, Bel, and Sus. Does that seem agreeable?

The only other way to deal with them is to call them part of a separate work and use the standard book IDs for both, but put the variants in the second work. I don't like that idea since they're part of the same print volume, a volume which is generally considered a single work.

A few more comments below...

Troy A. Griffitts wrote:
Obviously, my goal was to save everyone as much modification as possible, but there just doesn't seem like there is a good fit for modules like these.

I think DM, Martin, and I agree on this point: make it work correctly, regardless of how badly it breaks existing frontends. We can make modules requiring a new driver invisible to existing frontends and future frontends can support new features when they are ready to do so.

The next thing I began to realize is that this module uses a,b,c type suffixes on verses (click on the first link in this email again and scroll to the bottom of the page). This does not fit nicely into our integer concept for verses. I considered adding a 5th level: Testament/Book/Chapter/Verse/Sub. But this really breaks the whole paradigm anyway, as sub will mostly be blank except when there might be a letter tacked to the end. It really doesn't solve any problems, e.g. key.Verse(key.Verse()+1) still will break. key++ would work, I guess, but you'd have to always check if Sub was set to anything. And who knows what Sub really means. Is it a replacement? Is it really a subdivision of the verse? It just doesn't seem like it solves any problems nicely. It seems like the LXX really is sequentially 31, 31a, 32, 33, 33a, 33b. When I know that other Bibles and commentaries mean the first part of 33 when they say 33a. So adding Sub doesn't seem like it gives us much except keeping Verse an integer.

We need to deal with non-integers for chapters in Greek Esther as in the NRSV also. In addition, those chapters aren't in sequential numerical or alpha-numeric order. So we'll have to deal with out-of-order chapters and, probably, verses. GenBooks handle that fine. Translation to VerseKeys is going to be a challenge.

The 'reference' is display like:

/JoshB/24/1

We could add a flag which says to display using a BK CH:VS format. I was thinking about adding a pattern, like letting the modules.conf file specify something like:
KeyDisplay=%1 %2:%3
but I think this is more work for everyone than it benefits. Besides, other languages probably prefer other formats (BK CH.VS). So I think we'd like to just say something like KeyFormat=BCV

That looks like a great idea. Other LANGUAGES shouldn't be allowed to modify the formatting of a text. On the other hand, giving other TEXTS the ability to have customized presentation would be a great benefit, and this accommodates that very well. For example, the print NRSV Oxford Study Bible that I have uses BK CH.VS.

The other problem is parsing...
Currently VerseKey provides all the nice parsing functionality that figures out:

Ijn2-3:12

It can do this because it has a set of books that it know about, along with all kinds of abbreviations and translated into a number of languages. Our current parser also drops suffixed letters.

I think part of the solution is to make the parser more generalized and to force the module to give it some parameters for parsing. Each module needs to tell the parser something like 1) the format and 2) valid books. The format might be something like a PERL regular expression: "($book) ([0-9]+):([0-9]+)([a-c])", where the parser then picks out the book, chapter, verse, and sub-verse. I have no recommendations for implementation and don't even know whether it is feasible.

The list of valid books is simpler. Every modules should simply provide an ordered list of its contents (in osisID form, naturally). The parser then constructs a list of possible book abbreviations to use in parsing, excluding those books not present. For example, the LXXM is going to include Judith, but not Jude. So the parser would include all the abbreviations for Judith, but not those for Jude, and a reference to "Ju 1:1" should parse as Jdt.1.1.

Finally, if we solve these problems, and place an entry in LXXM: Category=Biblical Texts, it will probably break most frontends which expect all Biblical Texts to use a VerseKey. I don't know how to solve this problem.

I would just give it a different Category.

I also considered a major change to VerseKey which would make all levels strings and not integers. I realize many frontends use integer spin controls to increase/decrease chapter and verse. There may also be linear logic regarding these things.

Unfortunately I can't think of a better solution to handling the array of versification systems that exist. I think that's why we went with strings in OSIS.

--Chris

_______________________________________________
sword-devel mailing list: sword-devel@crosswire.org
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to