Skip to content

Module Bible

Rodolfo Goulart edited this page Jan 9, 2024 · 25 revisions

The Bible Module Schema

On Windows, the database path is

%AppData%\Roaming\com.i53\Aletheia Bible Study

and the file is dbAletheia-bible.sqlite

Table BibleVersion

Important

On database table is rename to bible_version

class BibleVersion {
  int id;
  String? language;
  String versionName;
  String versionAbrev;
  String? copyright;
  bool? hasStrong;
  String? hash;
}
CREATE TABLE "bible_version" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "language" TEXT NULL, "version_name" TEXT NULL, "version_abrev" TEXT NULL, "copyright" TEXT NULL, "has_strong" INTEGER NULL DEFAULT 0 CHECK ("has_strong" IN (0, 1)))
Column Type Required Description Default Value
id int yes
language String no if not informed, deafalt = "pr-br" pt-br
version_name String yes Version name of the bible
version_abrev String yes Version abreviation
copyright String no copyright informed of the bible
has_strong int as bool no inform if this version has Strong Reference associated, [0 = false, 1 = true] 0
hash string yes Hash of the version, this is generated by the fields version_abrev+language using md5. Used to generate a unique version, so can be sincronized with some thing else, like NLP Text Analysis that relly on different database.
insert into `bible_version` (`copyright`, `has_strong`, `hash`, `id`, `language`, `version_abrev`, `version_name`) values ('Dr. Jonathan Gallagher. Lançado sob licença Creative Commons Atribuição-CompartilhaIgual 4.0 Não Adaptada. Para correções envie email para [email protected]  Dr. Jonathan Gallagher. Released under Creative Commons Attribution-ShareAlike 4.0 Unported License. For corrections send email to [email protected]', '0', '7b77cde882a91090d867a1c46d3a031d', '4', 'pt-br', 'BLT', 'Biblia Livre Para Todos')

Note

Data from the SQL

id language version_name version_abrev copyright has_strong hash
4 pt-br Biblia Livre Para Todos BLT Dr. Jonathan Gallagher. Lançado sob licença Creative Commons Atribuição-CompartilhaIgual 4.0 Não Adaptada. Para correções envie email para [email protected] Dr. Jonathan Gallagher. Released under Creative Commons Attribution-ShareAlike 4.0 Unported License. For corrections send email to [email protected] 0 7b77cde882a91090d867a1c46d3a031d

Table BibleVersionBooks

Important

On database table is rename to bible_version_books

The table BibleVersionBooks is used to set the books that go to the version of bible. Some bible has only the New Testament, others has only the Old Testament and others bouth, other like Apocrypha can have other books not included on protestant cannon. If the version have another book not included on the list of books displayed on books doc, need to include on table book, and set the book on the version, and the sequence of display of this book.

class BibleVersionBooks {
  int? id;
  int idBook;
  int idBibleVersion;
  int? sequence;
  int? numberChapters;
  String? nameTranslation;
  String? abrevTranslation;
}
CREATE TABLE "bible_version_books" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "id_book" INTEGER NOT NULL REFERENCES book (id), "id_bible_version" INTEGER NOT NULL REFERENCES bible_version (id), "sequence" INTEGER NULL, "number_chapters" INTEGER NULL, "name_translation" TEXT NULL, "abrev_translation" TEXT NULL)
Column Type Required Description Default Value
id int yes
id_book int yes Id related to Book
id_bible_version int yes Id related to the Table BibleVersion
sequence int no sequence of the book, to order when show the books of this version
number_chapters int no number of chapter that the book contain
name_translation String no Name used on translation, if not set, will be used the name on the table book
abrev_translation String no Abreviation of the book, if not set, will be used the abreviation on the table book
insert into `bible_version_books` (`abrev_translation`, `id`, `id_bible_version`, `id_book`, `name_translation`, `number_chapters`, `sequence`) values ('Mt', '661', '4', '40', 'Mateus', '28', '40')

Table Book

Important

On database table is rename to book

class Book {
  int id;
  //overwrite on [BibleVersionBooks]
  String name;
  //overwrite on [BibleVersionBooks]
  String abrev;
  Division division;
  String literaryGenre;
  String? cannon;
}
CREATE TABLE "book" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "name" TEXT NOT NULL, "abrev" TEXT NOT NULL, "division" TEXT NOT NULL, "literary_genre" TEXT NULL, "cannon" TEXT NULL)
Column Type Required Description Default Value
id int yes
name String yes Name of the book (English). This field is overrided in Table BibleVersionBook by the field nameTranslation
abrev String yes Abreviation of the book name. This field is overrided in Table BibleVersionBook by the field abrevTranslation
division String yes Division of the book [0 -> Old Testament, 1 -> new Testament, 2 -> Apocryphal, 3 -> Other]
literary_genre String yes Litetary Genre of the book empty value
cannon String no Cannon of the book "Protestant"

Book Division

id division
0 Old Testament
1 New Testament
2 Apocryphal
3 Other

The App consider the books that has on Protestant cannon as his main core, but another books can be set without the range of book on this list. **One important consideration is that in some parts of the app you can use the Reference passing the id of the book, so if id has not correlation with the Id set on book, the Reference will not be displayed.

Note

You can use the table described on MyBible.zone Doc and add +100 to the number if the book is a Apocryphal.

id name abrev division
1 Gênesis Gn 0
2 Êxodo Êx 0
3 Levítico Lv 0
4 Números Nm 0
5 Deuteronômio Dt 0
6 Josué Js 0
7 Juízes Jz 0
8 Rute Rt 0
9 1 Samuel 1 Sm 0
10 2 Samuel 2 Sm 0
11 1 Reis 1 Rs 0
12 2 Reis 2 Rs 0
13 1 Crônicas 1 Cr 0
14 2 Crônicas 2 Cr 0
15 Esdras Ed 0
16 Neemias Ne 0
17 Ester Et 0
18 0
19 Salmos Sl 0
20 Provérbios Pv 0
21 Eclesiastes Ec 0
22 Cânticos Ct 0
23 Isaías Is 0
24 Jeremias Jr 0
25 Lamentações Lm 0
26 Ezequiel Ez 0
27 Daniel Dn 0
28 Oséias Os 0
29 Joel Jl 0
30 Amós Am 0
31 Obadias Ob 0
32 Jonas Jn 0
33 Miquéias Mq 0
34 Naum Na 0
35 Habacuque Hc 0
36 Sofonias Sf 0
37 Ageu Ag 0
38 Zacarias Zc 0
39 Malaquias Ml 0
40 Mateus Mt 1
41 Marcos Mc 1
42 Lucas Lc 1
43 João Jo 1
44 Atos At 1
45 Romanos Rm 1
46 1 Coríntios 1 Co, 1
47 2 Coríntios 2 Co 1
48 Gálatas Gl 1
49 Efésios Ef 1
50 Filipenses Fp 1
51 Colossenses Cl 1
52 1 Tessalonicenses 1 Ts 1
53 2 Tessalonicenses 2 Ts 1
54 1 Timóteo 1 Tm 1
55 2 Timóteo 2 Tm 1
56 Tito Tt 1
57 Filemom Fm 1
58 Hebreus Hb 1
59 Tiago Tg 1
60 1 Pedro 1 Pe 1
61 2 Pedro 2 Pe 1
62 1 João 1 Jo 1
63 2 João 2 Jo 1
64 3 João 3 Jo 1
65 Judas Jd 1
66 Apocalipse Ap 1
insert into `book` (`abrev`, `cannon`, `division`, `id`, `literary_genre`, `name`) values ('Mt', 'Protestante', '1', '40', , 'Mateus')

Table Verse

Important

On database table is rename to verse

abstract class VerseCore {
  int id;
  int idBibleVersion;
  int idBook;
  int numberChapter;
  int numberVerse;
  ///for some type of bible version that has verses jointed
  int? numberVerseEnd;
  List<Content> content;
  String contentWithOutFormat;
}
CREATE TABLE "verse" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "id_bible_version" INTEGER NOT NULL REFERENCES bible_version (id), "id_book" INTEGER NOT NULL REFERENCES book (id), "number_chapter" INTEGER NOT NULL, "number_verse" INTEGER NOT NULL, "content_with_out_format" TEXT NOT NULL, "number_verse_end" INTEGER NULL, "content" TEXT NULL)
Column Type Required Description Default Value
id int yes
id_bible_version int yes id of bible version
id_book int yes book id, see Table Book
number_chapter int yes number of the chapter
number_verse int yes number of the verse
number_verse_end int yes if version contain joined verses, use this to set the number of the verse with is joined
content List of Json Content yes the content of the verse in his style (bold, break line, italic, Jesus words, ...), see Content
content_with_out_format String yes the all verse without format, this include if verse is joined

Content Schema

(Json Only)

Content is used on table Verse as List of Json. This is the core to view the verse text with all information and style, please see the Attributes that is supported in Aletheia Bible, the App make the conversion of this attributes in style for the Text that is presented in every sequence. If the text has no attribute, normaly will be passed a List with one Content 1, if the text has style, the words that has style need to be in one sequence[2](#example of-content-with-jesus-words-in-highlight).

Important

Aletheia bible don't use HTML format on verse, some part of the app accept some text in HTML format like (Commentary, Dictionary, Lexico), but not in Verse. The Verse Style is build using the Content Schema described here.

class Content {
  int seq; //sq
  ///to the text have breakline need to have \n with the text
  String text; //T
  TypeContent typeContent; //tC
  Map<String, dynamic>? attributes; //at
  List<String>? refLexicos; //rS
  @Deprecated
  List<SubText>? subText; //sT
  String? anottation; //an
  String? comment; // cm
  //can be a list of references
  List<Reference>? reference; //rf
  String? footnote; //fn
  ///tag that represents the beginning of a paragraph
  ///
  ///the first letter will be bold
  bool? paragraph; //pr
}
key Name Type Required Description Values Description Implemented?
sq int yes sequence of the data [✅]
T String yes the text. if the text has break line, need to have \n
tC String yes type of content, see example [verse, title] [✅]
at Json Attribute yes the Attributes related to this text [bold, italic, underline, color (int value), backgroundColor (int value), jesuswords (true or false), fontSize (add to font), highlight (used with the user data, do not include on bible database)] [✅]
rS String no list of lexico references, flag BibleVersion hasStrong = true See example [✅]
an String no anottation of this text [❌]
cm String no commentary of this text [❌]
rf List Reference no List of references of this text, see Reference [❌]
fn String no footnotes of this text ***Not implemented yet [❌]
pr bool no use this if is new line and need to Capitalize the first word [✅]

Example of Content with title

[
  {
    "sq": 0,
    "T": "A criação dos céus e da terra",
    "tC": "title"
  },
  {
    "sq": 1,
    "T": "     No princípio, Deus criou os céus e a terra.",
    "tC": "verse"
  }
]

Insert example

insert into `verse` (`content`, `content_with_out_format`, `id`, `id_bible_version`, `id_book`, `number_chapter`, `number_verse`, `number_verse_end`) values ('[{"sq":0,"T":"A criação dos céus e da terra","tC":"title"},{"sq":1,"T":"     No princípio, Deus criou os céus e a terra.","tC":"verse"}]', 'No princípio, Deus criou os céus e a terra.', '1', '1', '1', '1', '1', NULL)

Example of Content with Lexico reference

[
  {
    "sq": 0,
    "T": "No ",
    "tC": "verse",
    "rS": [],
    "pr": true
  },
  {
    "sq": 1,
    "T": "princípio",
    "tC": "verse",
    "rS": [
      "H7225"
    ]
  },
  {
    "sq": 2,
    "T": ", ",
    "tC": "verse"
  },
  {
    "sq": 3,
    "T": "criou ",
    "tC": "verse",
    "rS": [
      "H1254",
      "8804",
      "H853"
    ]
  },
  {
    "sq": 4,
    "T": "Deus ",
    "tC": "verse",
    "rS": [
      "H430"
    ]
  },
  {
    "sq": 5,
    "T": "os ",
    "tC": "verse",
    "rS": []
  },
  {
    "sq": 6,
    "T": "céus ",
    "tC": "verse",
    "rS": [
      "H8064"
    ]
  },
  {
    "sq": 7,
    "T": "e ",
    "tC": "verse",
    "rS": [
      "H853"
    ]
  },
  {
    "sq": 8,
    "T": "a ",
    "tC": "verse",
    "rS": []
  },
  {
    "sq": 9,
    "T": "terra",
    "tC": "verse",
    "rS": [
      "H776"
    ]
  },
  {
    "sq": 10,
    "T": ". ",
    "tC": "verse"
  }
]

Insert example

insert into `verse` (`content`, `content_with_out_format`, `id`, `id_bible_version`, `id_book`, `number_chapter`, `number_verse`, `number_verse_end`) values ('[{"sq":0,"T":"No ","tC":"verse","rS":[],"pr":true},{"sq":1,"T":"princípio","tC":"verse","rS":["H7225"]},{"sq":2,"T":", ","tC":"verse"},{"sq":3,"T":"criou ","tC":"verse","rS":["H1254","8804","H853"]},{"sq":4,"T":"Deus ","tC":"verse","rS":["H430"]},{"sq":5,"T":"os ","tC":"verse","rS":[]},{"sq":6,"T":"céus ","tC":"verse","rS":["H8064"]},{"sq":7,"T":"e ","tC":"verse","rS":["H853"]},{"sq":8,"T":"a ","tC":"verse","rS":[]},{"sq":9,"T":"terra","tC":"verse","rS":["H776"]},{"sq":10,"T":". ","tC":"verse"}]', 'No princípio, criou Deus os céus e a terra. ', '613204', '15', '1', '1', '1', NULL)

Example of Content with Jesus Words in highlight

[
  {
    "sq": 0,
    "T": "Em seguida, disse-lhe Jesus: ",
    "tC": "verse",
    "at": {},
    "rS": [],
    "pr": false
  },
  {
    "sq": 1,
    "T": "“Veja que não digas isto a ninguém, mas segue, mostra teu corpo ao sacerdote, e faze a oferta que Moisés ordenou, para que sirva de testemunho.” ",
    "tC": "verse",
    "at": {
      "jesuswords": true
    },
    "rS": [],
    "pr": false
  },
  {
    "sq": 2,
    "T": " Um comandante romano crente",
    "tC": "verse",
    "at": {},
    "rS": [],
    "pr": false
  }
]

Insert example

insert into `verse` (`content`, `content_with_out_format`, `id`, `id_bible_version`, `id_book`, `number_chapter`, `number_verse`, `number_verse_end`) values ('[{"sq":0,"T":"Em seguida, disse-lhe Jesus: ","tC":"verse","at":{},"rS":[],"pr":false},{"sq":1,"T":"“Veja que não digas isto a ninguém, mas segue, mostra teu corpo ao sacerdote, e faze a oferta que Moisés ordenou, para que sirva de testemunho.” ","tC":"verse","at":{"jesuswords":true},"rS":[],"pr":false},{"sq":2,"T":" Um comandante romano crente","tC":"verse","at":{},"rS":[],"pr":false}]', 'Em seguida, disse-lhe Jesus: “Veja que não digas isto a ninguém, mas segue, mostra teu corpo ao sacerdote, e faze a oferta que Moisés ordenou, para que sirva de testemunho.”  Um comandante romano crente', '353338', '14', '40', '8', '4', NULL)

Attributes object

(Json only)

enum Attributes {bold,
  italic,
  underline,
  color,
  backgroundColor,
  jesuswords,
  fontSize,}
key Type Obs
bold bool
italic bool
underline bool
color int int value of the color
backgroundColor int int value of the backgound color
jesuswords bool if true, words will be red
fontSize int plus to font size

key "at" can be passed to the content to set the style to the text

"at": {
      "jesuswords": true,
      "bold": true,
      "italic":true,
      "underline": true
    },

Reference object

Important

(Json only) Not implemented yet to display on verse. Current version 1.0.0.8 This Schema is used on another part of the app to build reference, like when user add some notes. Not implemented yet on current version 1.0.0.8

class Reference {
  int bookNumber;
  int chapterNumber;
  int? verseNumber;
  int? endChapterNumber;
  int? endVerseNumber;
  List<int>? verseNumbers;
}
key Type Required Description
bookNumber int yes id of book
chapterNumber int yes numberof chapter
verseNumber int no number of verse
endChapterNumber int no number of chapter reference end
endVerseNumber int no number of verse reference end
verseNumbers List of int no ***Not implemented yet
Clone this wiki locally