I have one introductory comment: at present, our OSIS support targets a hodgepodge of OSIS 1.1, 1.5, 2.0, and proprietary extensions. This is what the OSIS filters target when you specify SourceType=OSIS in your .conf file. As an initial recommendation, I would suggest that we break away from this and create new, strictly-conformant, OSIS 2.0 filters, which we would signal with either SourceType=OSIS2.0 or (preferably) OSISVersion=2.0. This would, for example, eliminate the need to handle deprecated elements/types (like <div type="chapter"> as a Bible chapter container). It also permits us to adopt other changes to the way we interpret OSIS (which I discuss below). This does NOT mean that we necessarily drop proprietary extensions that conform to OSIS (e.g. x-types), though proprietary tags would have to be translated to appropriate <seg>/<milestone>-type tags.
I've brought this up before, but it seems like it might be a good time to discuss it more fully. Going forth, I would like to encode the full (or nearly full) content of an OSIS document within a Sword module, when it is imported.
Towards that end, I would like osis2mod to copy <verse> tags (both open and close, whether container or milestone). I would like this to be used as a means for indicating what verse number should be rendered as well as where it should be rendered. Verse numbers are not necessarily a single digit and do not necessarily flow in numerical order. Encoding <verse> elements (along with their n attributes, when present) permits us to render lettered verses and range verses easily. It affords us the possibility of rendering out-of-order verses (though this will require some additional thinking/work). And until multiple versifications are actually supported, it allows us to fake them.
Since it will also mark the starting position of a verse, this also permits us to know when to render material preceding a verse before the verse number itself (including titles, notes, & introductory material).
I also recommend copying <chapter> and <div> tags (open and close, container or milestone) to modules. This also permits access to non-numeric chapter numbers (e.g. chapters A-F of Esther, once we support them through multiple versification).
We also have the option of normalizing OSIS to a form of our choosing. Towards that end, we CAN require that all book/chapter/verse tags be milestones. I know Joachim has some reservations with copying the </div> tag for a book since you can't easily tell whether it is the closing tag of a book (and thus not rendered by them) or some other </div>. If we require all book/chapter/verse tags to be milestones, we can put a type on it (e.g. <div type="book" eID="Gen"/>)--this isn't a normal thing to do, but I think it's valid (correct me if I'm wrong).
I also think we should cease support of OSISqToTick. Quotation marks should be encoded as <q> elements. There aren't even many modules that uses OSISqToTick, and I don't encode new modules with them. We should include some style-sheet-type information in the .conf files (with syntax to be determined) to indicate how to render <q> tags.
Comments encouraged.
--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