RawGenBook can hold out-of-order IDs without issue. So if a Bible puts Daniel 3:4 before 3:3--or even Daniel 4 before Daniel 3--that's no issue. The module maintains its own data ordering, unlike VerseKey modules, which use a static ordering.
But it definitely can't handle multiple instances of the same ID like you describe. I can't necessarily even think of a good solution in which such a beast might be managed. But I don't believe we're talking about two instances of Daniel 3:24, rather one of Daniel 3:24 and another of Azariah 24 One solution is simply to extract Azariah from Daniel 3 and put it in its own book. Perhaps a nicer solution would be to embed Azariah within Daniel 3 in the tree structure like this: Dan |-1 |-2 |-3 | |-1 | |-... | |-23 | |-PrAzar | | |-1 | | |-1 | | |-... | | |-90 | | | |-24 | |-... | |-33 So the two identified identical IDs would be /Dan/3/24 and /Dan/3/PrAzar/1/24. 'Dan 3:24' points at the former and 'PrAzar 24' points at the latter. Front-ends, when they get either reference and want to display a full chapter at a time, should travel up the tree until they find the second level (/Dan/3) and then travel through all of that node's descendants to compose the output--maybe with a little "Prayer of Azariah" title where it crosses into the embedded book. (Basically the same behavior as they already do for GenBooks with a DisplayLevel set.) Now that I look at it, maybe that is a fairly elegant solution and not overly difficult to implement. --Chris Jeremy Brown wrote: > One thing I thought of regarding the indexing for a RawGenBook that is > being talked about, and using a book/chapter/verse keying scheme. I don't > know if this is a problem, but I have seen at least one version that used > the some verse numbers twice in the same chapter. In a Croatian > translation of Daniel 3, which includes the Prayer of Azariah, the text is > numbered from 1 to 90, and then (after the Prayer of Azariah is over) > starts numbering again from 24 to 33. So there are two different verses > called Daniel 3:24, and they are separated from each other by 66 verses. > The same for Daniel 3:25, 3:26, ... 3:33. > > In Unbound Bible I've "solved" this by chopping Prayer of Azariah out of > Daniel and putting it in its own "book". But it seems if you want to > really make the text and the verse system the same as it originally was, > putting two of the same book:chapter:verse indexes in the text could be > problematic. > > Maybe this is too esoteric or fringe-case to consider though, or maybe the > indexes that are being used don't have to be unique, but since I thought > of it I thought I'd share. > > Jeremy > > sword-devel@crosswire.org on Monday, March 12, 2007 at 3:04 PM -0800 wrote: >> There's some skeletal code in the VerseTreeKey class. >> >> We have VerseKey, which represents the key type of verse-based modules >> (Bibles & commentaries). And we have TreeKey, which represents the key >> type of hierarchical tree-based modules (RawGenBook). RawGenBook modules >> can contain anything, as long as it is organized as a hierarchical tree. >> >> Since Bibles are arranged as hierarchical trees of verses within >> chapters within books, we can use the RawGenBook storage format to hold >> Bibles and TreeKeys to access their contents, giving us much more >> flexibility in terms of versification. >> >> Now we want to use VerseTreeKey to interface RawGenBook-type Bible >> modules the same way we do RawVerse-type Bibles. >> >> >>> When I hear and think of this project I come up with thoughts such as: >>> >>> --There should be no restriction on the names of books, the numbers of >>> chapters and/or verses, or even the need to have discretized verses. >>> These should be taken directly from the input OSIS file itself when >>> the work is imported under the new scheme. >>> >>> --Since there is no restriction on the names of books, non-standard >>> books (as-in, those not in the standard Protestant or Catholic >>> scriptures), books like 3rd and 4th Maccabees, The Gospel of Thomas, >>> the various books in the Book of Mormon, etc, would need to have >>> allowable abbreviations specified in a configuration file distributed >>> with the module >> More or less. 3 & 4 Maccabees are part of the Bible. Thomas and the Book >> of Mormon are not. If we want to change the goals at a later date, we >> can, but the immediate objective is just to support books of the Bible. >> Furthermore, since we need to use standard abbreviations, we shouldn't >> be attempting to cram books into these modules for which abbreviations >> are not defined. > > > _______________________________________________ > 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 _______________________________________________ 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