Difference between revisions of "Alternate Versification"

From CrossWire Bible Society
Jump to: navigation, search
(How to create Modules with alternative versifications)
(How to create Modules with alternative versifications)
Line 28: Line 28:
 
# if your module uses a versification or canon not yet present in SWORD you will need to create a canon header file.
 
# if your module uses a versification or canon not yet present in SWORD you will need to create a canon header file.
 
# The importers will work as usual. You'll specify a versification for the text to the import utility (imp2vs or osis2mod). It will pass the v11n value to the SWText constructor, which will instruct it to use the specified v11n. (Troy has even committed the code for imp2vs to take v11n as an argument already.)
 
# The importers will work as usual. You'll specify a versification for the text to the import utility (imp2vs or osis2mod). It will pass the v11n value to the SWText constructor, which will instruct it to use the specified v11n. (Troy has even committed the code for imp2vs to take v11n as an argument already.)
 
 
# Append will also work as usual. Append pertains to whether a text is overwritten or appended to, so its use can affect the stored order of verses, but won't affect where the engine thinks they belong for access/display purposes.
 
# Append will also work as usual. Append pertains to whether a text is overwritten or appended to, so its use can affect the stored order of verses, but won't affect where the engine thinks they belong for access/display purposes.
 
 
# Each v11n will specify a book order, so different traditions that vary with respect to book order would have to be represented by different v11n definitions.
 
# Each v11n will specify a book order, so different traditions that vary with respect to book order would have to be represented by different v11n definitions.
  

Revision as of 22:46, 16 March 2009

Introduction

Alternative versifications mean ultimately to allow Bible texts with arbitrary canon or versification schemes to coexist peacefully on the same SWORD installation and (ultimately) to map cleanly between each other via cross references or parallel display.

There are technically 2 routes to support this under development:

  1. ripping out the hardcoded KJV canon.h offsets and replacing them with VerseMgr, which allows registration of canon.h-like v11n systems.
  2. genbook Bibles

Both have been under development and 2 requires 1.

Overview

Up until 1.5.11 the canon and the versification was hard coded into the engine in form of the file canon.h which offered book names and chapter + verse offsets to the engine. The new approach is that

  1. Each Bible module will carry a conf entry about its versification (unless KJV) from an approved list of versifications
  2. the engine will have for each major canon and versification variety a new header file similar to the previous canon.h
  3. On system start the engine will load for each open KJV-divergent module the relevant data presented in the relevant canon_{Versification].h into a table held in memory.
  4. Subsequently the relevant module will be accessible via the usual methods - which have not changed from 1.5.11
  5. What does not work anymore is to assume that a book or chapter has a set (fixed) number of verses. Instead 1.5.12 introduces a new method maxverse and maxchapter method providing you for a given module with the relevant information.
  6. At a later stage (1.5.13) the engine will allow for genBook bibles to automagically create arbitrary versification tables on the fly.
  7. the final step will be to allow mappings between versification schemes to allow cross referencing and parallel display of identical passages.


How to create Modules with alternative versifications

  1. Set the relevant entries in the configuration file Configuration file
  2. if your module uses a versification or canon not yet present in SWORD you will need to create a canon header file.
  3. The importers will work as usual. You'll specify a versification for the text to the import utility (imp2vs or osis2mod). It will pass the v11n value to the SWText constructor, which will instruct it to use the specified v11n. (Troy has even committed the code for imp2vs to take v11n as an argument already.)
  4. Append will also work as usual. Append pertains to whether a text is overwritten or appended to, so its use can affect the stored order of verses, but won't affect where the engine thinks they belong for access/display purposes.
  5. Each v11n will specify a book order, so different traditions that vary with respect to book order would have to be represented by different v11n definitions.

Modules requiring alternate versification

  • Ohienko Ukrainian translation.
    The existing module had discarded the original Ukrainian verse numbers. ua4ever has recently made an OSIS file in the KJV order, but with the original Ukrainian verse references in parentheses. Download RAR file from [1]. For related discussions, see [2]. Registration and login is required.

Resources