Compact with all you need!
- About
- Why
- Important Warning: Always Check Twice
- Usage
- Limitations
- Mistakes
- Licensing and Copyright
- Acknowledgements
- Support
- My Call
This is a simple repo for having actual 'usable' bibles as json.
Want to have footnotes, titles and other important markers? Want the actual link of the files, writing direction, language information, copyright information?
Here you have it, in different languages and relatively free licensing too! Just clone this repo and start building your bible app without much headache.
I call this json unofficially "babij", because this json embeds html-like tags in text to mark words or text with approximately the semantics in usfm. Hence the name "Bad Bible JSON".
Now hold on! Titles, footnotes, tables, verses and else are not embeded as HTML-Tags, that would be insanity. The text of these elements contain tags.
Well you got to understand my journey of trying to make my own bible-website first:
- Me want bible app, but where bibles?
- Internet have many bibles.
- What are SWORD-Modules, USFM, USX etc. ?
- Have to use other or adapt software to use bibles.
- Does internet have bibles in json or xml?
- Yes, but very poor or bad bibles. No titles, no footnotes, no anything, but verses.
- Me become annoyed. Me want good bible app.
- Me want json or xm...? -> JSON!!!
- Me convert USFM to USJ
- USJ not well structured
- Spending months on badly written python program.
- Me convert many usfm bibles to usj to better-json (babij).
...
json bibles
- I wont be responsible for you to blindly copy the general information.
- You HAVE to check them always, as I can have made a mistake or the translations have important texts about trademarks, how to use their translation or different Creative-Commons than specified.
- Since I can only speak english and german, I had to ask AI or hit google to get the writing direction of a language. Create an issue regarding this, if the writing direction is different.
You are surely asking "why tags?". I could have made objects into json instead. Every developer knows html and many languags know it as well. But the main reasons are compactness and flexibility.
Consult the /docs to read about the tags, most of them are fairly simple.
Quick example
{
...,
"verses": [
{
"global_locator": "...",
"chapter": "1",
"verse_number": "1",
"text": "The bible is an <bold>awesome</bold> book. Truly the <dictionary>word</dictionary_word> of God in order to bring us <bold>guidance</bold> and <keyword>hope</keyword><insert_footnote />.",
"position": "...",
},
]
}I have seen one file, that had 5 MB of size. Babij reduced it to 1 MB. That is compact.
It contains everything needed with fewer lines and a more concise structure. If I really did full json, it would be all past USJ-files over again. No clear structure, long, tedious.
This is actually the biggest reason. You have direct access to the text with its markup.
If it were just json, you would have to have more involved traversing algorithms and basically write your own little thing over again.
With these tags, you have the flexibility. You, the developer, choose, if you really want to mark a text bold-italic or display footnotes as numbers or icons.
Thats the entire philosophy behind it after all. You should make bible apps the way you want to.
The sad reality is, it is impossible to recreate every information from the usfm-files, since some markers in their intended form have access to specific features of paratext, thus I had no other choice to discard them entirely, because it is impossible to recreate them.
I will list everything that was not possible.
Some translations have \fig-markers to include images. I could not find images in the files nor were there any linked.
Information of the crossreference itself is definitely there, but it is not possible to access the source it refers to.
This is, because there is no inherent standard of refering to passages. Translations use their native language to adress the reference, but I have hundreds of languages, so it is not possible for me to have access to it.
Mostly refers to a link where you can jump to. But this is not possible, because either the parser does not handle them correctly or they can only be used in the appropriate software (dont give a real URL).
I can not garuantee to have things right. There are multiple sources of mistakes, either the parser messed up, I was dumb or the translator(s) did mistakes. Create an issue if you think something got wrong
The parser did not work on every translation, so I had to modify these files. If tried my best to add remarks to a translations, when I had to do that. But there can always be a mistake either in format or content.
If had to change a file (excluding empty elements) or comment stuff out or similiar, it should be seen as Remarks. Their format are in /docs
My conversion scripts can also be filled with bugs and mistakes, making the babij incorrect as a result.
In usfm there are \lf and \lh headers, which are used within lists or enumerations in verses.
My usfm-files do not contain such markers anymore and the babij too. This parser can handle single-line markers, but not something like:
\lh
\v 2 ....
- It would just crash, but additionally my past self brushed it off and did not think about it too much, he replaced it with \p markers.
- Sadly there is no way to get this back, but it should not be that important, because lists are now marked differently in the verse-text and by making it into a paragraph, it provides a very similiar structure, but not as semantic as with included List-Header or List-Footer.
- The semantic structure is now lost, since the parser can not handle them and that i was very ignorant and incompetent.
- It will not be changed, since that is not possible anymore and it must be consistent and is not breaking the translation.
I can not garuantee, that the translations themselves are right in their spelling or message.
Words are marked as <dictionary_word />, but they dont have an explanation if they are not hebrew or greek entries.
Many translations didnt have explanations to begin with, but even worse was, that older translations marked every second if not every word as a dictionary word. I had to discard this particular thing, because 14 MB of every single english word is unbearable to use.
- Each Bible JSON file includes its own copyright notice, license, and attribution requirements (visible in the file metadata).
- Most translations are under Creative Commons (CC-BY, CC-BY-SA) or Public Domain.
- Derivatives of CC-BY-SA files must also be CC-BY-SA.
- Some files have full copyright—check per-file info before use.
- Users must verify and comply with each translation's license. I am not responsible for misuse.
I would like to thank open.bible and ebible.org for giving the world digitial bibles in usable formats and fore free. Without this foundation, this could have never happened. Please use their ressources or support them!
Also important were the the usfm-grammar package (python) and the usfm-documentation (2.4, 3.0) from United Bible Societies.
If you want to support this, please built on it or make your own json format for the bible. If you are a christian, pray for this project or its influences.
But if you really want to help. Please donate to any Aid Organization or the ones, that are listed below
I am not a professional. I am in education for about 1.5 years as of writing this. I want the bible to spread and be easily used by developers. Please build on this or clone it and make this better. Overshadow me in structure and usability! I will not care, if this repo becomes unneccessary, as longs as it benefits god and his word. If nobody cares, so be it. If somebody cares and takes this source as inspiration, I will be glad, that it was a foundation.