schierlm / BibleMultiConverter

Converter written in Java to convert between different Bible program formats
Other
124 stars 33 forks source link

Help with versification #77

Closed WJSwan1945 closed 1 year ago

WJSwan1945 commented 1 year ago

Good day, I need some help with how to convert a USFM bible to theWord. The versification of the Bible is different to the KJV. I have a file Afr20.bmcv With records in format: book c:v/book c:v. Eg. Ps 3:4/Ps 3:3, meaning that in the Bible I am converting Ps3:4 corresponds to Ps 3:3 in the KJV. I attach it as Afr20.txt.

My USFM Bible resides in directory C:\Afr20\Raw

What are the steps I need and what would my commands for BibleMultiConverter.jar look like?

I apologize for my naivety! Afr20.txt

schierlm commented 1 year ago

Hello,

No need to apologize at all, the versification support in BibleMultiConverter is not the best and I also first had to think for a while how to get your text file easiest into a supported versification format. (It is not a .bmcv file, so probably best name it .txt not to get confused).

The format I'd use is CCEL, as it is the most similar to your text file and is the only supported format which will automatically fill the bible with "identity mappings" for all verses that exist in both versifications and do not have a mapping defined. However, it is XML, and verse references (including book names) follow OSIS conventions, so you will need to edit your file slightly that it looks like this:

  <refMap from="Afr20" to="KJV">
     <map from="Exod.5.24" to="Exod.6.1" />
     <map from="Exod.6.1" to="Exod.6.2" />
     <map from="Exod.6.2" to="Exod.6.3" />
     [...]
  </refMap>

I would then convert the USFM Bible to Diffable format, as this is an intermediary format which can be parsed quickly and does not lose any information (at least in your case where the destination format is not a Paratext format):

java -jar BibleMultiConverter.jar USFM c:\Afr20\Raw Diffable Afr20.bbl

Then, create a verse list from that bible and store into db1.bmcv file, to then export as CCEL into Afr20.ccel.xml:

java -jar BibleMultiConverter.jar Versification db1.bmcv import Bible Diffable Afr20.bbl Afr20 VERSES
java -jar BibleMultiConverter.jar Versification db1.bmcv export CCEL afr20.ccel.xml Afr20

Now open afr20.ccel.xml in a text editor, and before the final line </refSys> add your RefMap. db1.bmcv is no longer needed.

Create the final afr20.bmcv file by first importing the KJV versification (built into BibleMultiConverter) and then importing the Afr20 versification and mapping from the CCEL file.

java -jar BibleMultiConverter.jar Versification afr20.bmcv import KJV
java -jar BibleMultiConverter.jar Versification afr20.bmcv import CCEL afr20.ccel.xml

You can now list the contents of your bmcv file and verify if your versification indeed covers all the verses in your input versification:

java -jar BibleMultiConverter.jar Versification afr20.bmcv list

Next I'd have a look at the options of VersificationMappedDiffable format and decide which suit you best:

java -jar BibleMultiConverter.jar help VersificationMappedDiffable

A possible way to proceed now would be:

java -jar BibleMultiConverter.jar Diffable Afr20.bbl VersificationMappedDiffable Afr.KJV.bbl afr20.bmcv Afr20/KJV ShowNumbers
java -jar BibleMultiConverter.jar Diffable Afr20.KJV.bbl TheWord Afr20.ont

Hope this helps. If anything is unclear, feel free to ask.

(May I ask if your versification .txt file has some particular source and more files of that format exist? In that case, it might make sense to add an importer of that format to BibleMultiConverter so that you just need to import both versifications into the db file (so the program knows which verses exist that need to be unmapped) and then import that text file into the db file, skipping the ccel export and re-import.)

WJSwan1945 commented 1 year ago

Good day Michael,

Thank you for the advice. I will give it a go.

Unfortunately this is essentially a once-off I am doing. It is the latest Afrikaans translation I am trying to convert.

Warm regards,

Willem

From: Michael Schierl @.> Sent: Wednesday, 18 January 2023 23:44 To: schierlm/BibleMultiConverter @.> Cc: WJSwan1945 @.>; Author @.> Subject: Re: [schierlm/BibleMultiConverter] Help with versification (Issue #77)

Hello,

No need to apologize at all, the versification support in BibleMultiConverter is not the best and I also first had to think for a while how to get your text file easiest into a supported versification format. (It is not a .bmcv file, so probably best name it .txt not to get confused).

The format I'd use is CCEL, as it is the most similar to your text file and is the only supported format which will automatically fill the bible with "identity mappings" for all verses that exist in both versifications and do not have a mapping defined. However, it is XML, and verse references (including book names) follow OSIS conventions, so you will need to edit your file slightly that it looks like this:

[...]

I would then convert the USFM Bible to Diffable format, as this is an intermediary format which can be parsed quickly and does not lose any information (at least in your case where the destination format is not a Paratext format):

java -jar BibleMultiConverter.jar USFM c:\Afr20\Raw Diffable Afr20.bbl

Then, create a verse list from that bible and store into db1.bmcv file, to then export as CCEL into Afr20.ccel.xml:

java -jar BibleMultiConverter.jar Versification db1.bmcv import Bible Diffable Afr20.bbl Afr20 VERSES java -jar BibleMultiConverter.jar Versification db1.bmcv export CCEL afr20.ccel.xml Afr20

Now open afr20.ccel.xml in a text editor, and before the final line add your RefMap. db1.bmcv is no longer needed.

Create the final afr20.bmcv file by first importing the KJV versification (built into BibleMultiConverter) and then importing the Afr20 versification and mapping from the CCEL file.

java -jar BibleMultiConverter.jar Versification afr20.bmcv import KJV java -jar BibleMultiConverter.jar Versification afr20.bmcv import CCEL 1.ccel

You can now list the contents of your bmcv file and verify if your versification indeed covers all the verses in your input versification:

java -jar BibleMultiConverter.jar Versification afr20.bmcv list

Next I'd have a look at the options of VersificationMappedDiffable format and decide which suit you best:

java -jar BibleMultiConverter.jar help VersificationMappedDiffable

A possible way to proceed now would be:

java -jar BibleMultiConverter.jar Diffable Afr20.bbl VersificationMappedDiffable Afr.KJV.bbl afr20.bmcv Afr20/KJV ShowNumbers java -jar BibleMultiConverter.jar Diffable Afr20.KJV.bbl TheWord Afr20.ont

Hope this helps. If anything is unclear, feel free to ask.

(May I ask if your versification .txt file has some particular source and more files of that format exist? In that case, it might make sense to add an importer of that format to BibleMultiConverter so that you just need to import both versifications into the db file (so the program knows which verses exist that need to be unmapped) and then import that text file into the db file, skipping the ccel export and re-import.)

— Reply to this email directly, view it on GitHub https://github.com/schierlm/BibleMultiConverter/issues/77#issuecomment-1396127542 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AO4JEDSPW4U4T57IXEUG5UTWTBP3PANCNFSM6AAAAAAT62HU7E . You are receiving this because you authored the thread. https://github.com/notifications/beacon/AO4JEDSQODB5JQWC3BL2VNLWTBP3PA5CNFSM6AAAAAAT62HU7GWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSTG43TM.gif Message ID: @. @.> >

WJSwan1945 commented 1 year ago

Good day Michael,

I am trying to convert a Bible in TheWord format to Accordance and the following happens:

java -jar BibleMultiConverter.jar TheWord Afr2020.ont Accordance

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag In die begin

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag In die begin

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag Die aarde wa

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag Die aarde wa

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag en God het g

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag en God het g

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag .

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag .

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag God het gesê

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag God het gesê

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag God het gesê

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag God het gesê

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag God het gesê

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag God het gesê

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag . ?Vaste tye? ve

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; Feeste. en

WARNING: Skipping unknown tag <a href=?tw://bible.

WARNING: Skipping unknown tag ; <a href=?tw://

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

    at

biblemulticonverter.format.Accordance.doExport(Accordance.java:389)

    at biblemulticonverter.Main.main(Main.java:67)

Am I doing something wrong or is this conversion not possible. I can understand that it cannot convert the footnotes.

Regards,

Willem Swanepoel

schierlm commented 1 year ago

Your command line is missing at least an output file name.

See also java -jar BibleMultiConverter.jar help Accordance and https://github.com/schierlm/BibleMultiConverter#accordance-export for some more Accordance export options. For example, you can convert footnotes to italic or colored text in parentheses (you won't get real footnotes), or convert footnote marks to superscript numbers and put the actual footnote text at the end of the verse..