Bible: Databáze

Z Wikiverzity

Tato část pojednává o databázi ve formátu prostého textového souboru, ve kterém každý řádek souboru reprezentuje jeden biblický verš. Problematikou relačních databází se zabývá následující článek Bible: MySQL.

Úvod[editovat]

Datum: 2008-01-26

Smyslem naší činnosti je vytváření a využívání databází, užitečných pro biblickou práci. Ve světě existuje množství různých takových databází a konkordancí; součástí naší práce tudíž bude vytvoření přehledu a recenze těchto strojů. Ale i když se ukáže rozumné některé z nich si vybrat a pracovat s nimi, případně je dále upravovat a zdokonalovat, začneme s tím, že si sami nějakou takovou jednoduchou databázi vytvoříme.

Biblické texty[editovat]

Většina dnes používaných přepisů a překladů vychází z tzv. originálních jazyků, kterými jsou hebrejština (pro Starý zákon) a řečtina (pro Nový zákon). (I když Nový zákon původně vznikal v jiném jazyce, pravděpodobně v aramejštině, dochovaly se pouze jeho transkripce do řečtiny, které jsou užívány jako východisko další biblické práce.)

Biblické texty, považované za Svatá písma, mají tu výhodu, že se s nimi nakládá velice přesně. Nelze libovolně zaměňovat věty, slova, ba ani písmena nebo interpunkci. Překlady do jiných jazyků jsou prováděny s maximální pečlivostí. Proto lze právě v biblické práci spatřovat evropský počátek nejen lingvistiky, ale exaktních věd vůbec.

Z hlediska autorských práv se jedná o texty velice staré, proto nebývají problémy z jejich šířením. Výjimku ovšem tvoří novodobé překlady, kde je nutno zjistit jejich licenci.

V českém jazykovém prostředí je v současné době nejvíce používaný tzv. Český ekumenický překlad (dále jen ČEP). Práci na tomto překladu započali teologové z českobratrské církve evangelické v roce 1961. Později se připojili zástupci dalších pěti církví: církve římskokatolické, československé husitské, pravoslavné, evangelické metodistické a církve bratrské. Tím dostala tato překladatelská biblická práce ekumenický cha\ rakter, v této míře ojedinělý i v celosvětovém měřítku. Autorská práva k tomuto překladu vlastní v současné době Česká biblická společnost, se kterou je nutno svolení k užití ČEP projednat.

Do té doby se v okruhu evangelických církví nejvíce používala tzv. Bible kralická ve vydání z roku 1613. Tento překlad je dosud stále používaný a citovaný a jeho zásadní výhodou je, že se jedná o překlad, ke kterému již autorská práva (dle dikce autorského zákona) dávno vypršela. Tato verse z roku 1613 je dobře fixována. Je proto vhodným kandidátem na naše první pokusy. Možnosti užití dalších textů budeme zvažovat později.


Textové databáze – icasi Bible[editovat]

Text Bible kralické můžeme najít k volnému stažení z Internetu na různých místech. Později můžeme tyto jeho výskyty podrobit bližšímu zkoumání, proto pro začátek zvolíme text, který je k disposici ve vhodném, jednoduchém formátu.

Jedním z projektů elektronické biblické konkordance je icasi. Vyhledáme Googlem frázi icasi a záhy najdeme odkazy na icasi Bible: http://www.icasi.cz/bible/ s podnázvem biblický software pro Linux. Autorem je Jiří Vičík a jedná se o svobodný software pod licencí GNU.

Verze programu 0.9.x (poslední 0.9.16) pracovala v prostředí Linuxové textové konsole (resp. v emulátoru textového terminálu) a databáze (v textovém formátu) v ní byly uloženy v kódování ISO-8599-x (české překlady tudíž v ISO-8599-2). Verze programu od 0.10.0 (současná verse) je již vyvíjena pro GUI (grafické uživatelské rozhraní) a dovede pracovat s překlady jak v kódování ISO, tak v kódování UTF-8.

V levém menu hlavní stránky icasi Bible přejdeme do sekce stáhnout, kde se poučíme o číslování verzí:

  • " 20040831 " - je číslo verze překladu podle data update nebo po opravě chyb (rok měsíc den)...
  • " (0.8.10) " - znamená, že překlad NELZE použít se starší verzí programu, než s verzí uvedenou...
  • " ... rev. 98 " - použití povoleno za předpokladu, že bude uživatel obeznámen s tím, že toto není aktuální revize překladu...
  • " revize 2001 " - rok revize textu překladu...
  • " zatím nepovoleno " - znamená, že modul s překladem čeká na povolení k šíření...

Bible kralická[editovat]

U bible kralické je uvedeno:

Bible Kralická                 20040831                (0.8.10)

Dejme tomu, že si pro naše pokusy založíme v našem domácím adresáři podadresář bible

cd
mkdir bible
cd bible

v něm podadresář pro umístění stažených textů

mkdir downloads
cd downloads

a do něj si pro naše potřeby stáhneme a rozzipujeme text Bible kralické z http://www.volny.cz/icasi/download/cs_kra.bz2:

wget -m http://www.volny.cz/icasi/download/cs_kra.bz2
cd www.volny.cz/icasi/download/
bunzip2 cs_kra.bz2
ls -lh

Rozbalený text zabírá cca 3,7MB. Základní statistika:

 wc cs_kra
 31181  638919 3854865 cs_kra

Soubor má 31181 řádků, 638919 slov, 3854865 znaků.

Podíváme se na začátek souboru:

less cs_kra
# icasi Bible translation module (Assembled by icasi):

TransName="Bible Kralická"
Copyright=""
TypTransl="full"
MinReqVer="0.8.10"
TranslCod="iso8859-2"
VerTransl="20040831"

1/1:1   Na počátku stvořil Bůh nebe a zemi.
1/1:2   Země pak byla nesličná a pustá, a tma byla nad propastí, a Duch Boží vznášel se nad vodami.
1/1:3   I řekl Bůh: Buď světlo! I bylo světlo.

a na jeho konec:

9/9:26  Potom vstali velmi ráno. I stalo se, když záře vzcházela, že zavolal Samuel Saule na hůru, řka: Vstaň, a propustím tě. Vstal tedy Saul, a vyšli oba ven, on i Samuel.
9/9:27  A když přicházeli na konec města, řekl Samuel Saulovi: Rci služebníku, ať jde napřed, (i šel); ty pak pozastav se málo, ažť oznámím řeč Boží.

Z toho můžeme usoudit:

  • Kódování souboru je osmibitové ISO-8859-2.
  • Jedná se o databázi v textovém formátu, řádkově orientovanou.
  • Každý řádek souboru odpovídá jednomu biblickému verši.
  • Každý řádek začíná identifikátorem verše, za ním následuje několik bílých mezer a hned po nich následuje text biblického verše.
  • Identifikátor verše sestává z čísla (zřejmě čísla biblické knihy), následovaném lomítkem, číslem kapitoly, dvojtečkou a číslem verše.
  • Pořadí veršů na první pohled neodpovídá jeho pořadí v bibli, ale je lexikálně setříděno podle identifikátoru, takže na konci souboru je řádek z 9.knihy a 9.kapitoly

Ještě nás může zajímat formát konce řádků a rovněž je třeba se přesvědčit, jaké znaky tvoří bílé mezery. Můžeme si soubor prohlédnout např. v md (Midnight commander, klávesy F3=prohlížení, F4=Hex, anebo utilitou od (octal dump, umož_nuje ale i hexadecimální zobrazení):

  • Konce řádků jsou tvořeny řídícím znakem LineFeed = 0x0A, před kterým je běžná ASCII mezera = 0x20 (někdy i dvě mezery). Jedná se tedy o Unixový formát textového souboru.
  • Mezi identifikátorem a vlastním textem jsou jako oddělovač použity tři bílé mezery, a sice posloupnost znaků 0x20, 0xA0, 0x20. Na krajních posicích oddělovací sekvence jsou obyčejné ASCII mezery 0x20 a mezi nimi je znak 0xA0.

Neznáme-li kódovací tabulku ISO-8859-2, vyvoláme si ji příkazem:

man iso_8859-2

kde hned na začátku tabulky vidíme:

      Oct   Dec   Hex   Char   Description
      ------------------------------------------------------------------
      240   160   A0           NO-BREAK SPACE

Jedná se tedy o znak nezalomitelné mezery. Tyto informace budeme potřebovat, až budeme konstruovat regulární výrazy pro zpracování textového souboru.

Pomocné tabulky[editovat]

Zbývá objastnit použité číslování biblických knih. Protože jej v žádné dokumentaci nenacházíme, nezbyde než si prohlédnout zdrojové texty programu. Vzhledem k tomu, že se jedná o text verse 0.8.10, měl by být zpracovatelný jak programem v. icb_0.9.16, tak i icb_0.10.0. Může být tedy lhostejné, do jaké verse se podíváme. Zvolíme novější icb_0.10.0 a stáhneme a rozbalíme zdrojový balík, který najdeme na http://icasi.cz/bible/download.php

cd ~/bible/downloads/
wget -m http://www.volny.cz/icasi/download/icb_0.10.0.tar.bz2
cd www.volny.cz/icasi/download/
tar xjf icb_0.10.0.tar.bz2

Formát biblických souborů[editovat]

Přejdeme do vytvořeného adresáře icb_0.10.0 a budeme nejdřív hledat dokumentaci v adresáři doc/cs: V souboru rozsireni si přečteme nějaké informace o formátu biblických souborů (které jsme už víceméně tušili):

Soubor s překladem musí být seřazen podle naprosto přesných
 pravidel.

 Na prvním řádku je docela nepodstatná informace o souboru,
 sestavíš-li nějaký překlad, použij tento řádek také k podpisu.
 Dále zde jsou umístěny důležité údaje, které program
 pro práci s překladem může potřebovat. Trochu podrobněji:

 TransName - Plný název překladu v konkrétním jazyce.
 Copyright - Pokud je překlad chráněn autorskými právy, musí
             z právního hlediska být jimi označen. Například:
             "(c) 1900 - Jarda Biblista", pokud práva nejsou
             specifikována, musí mít proměnná prázdnou hodnotu "".
             Pokud má být v hlavičce překladu zaznamenáno "použito
             s povolením.....", odsaď hodnotu metodou pokus-omyl
             o příslušný počet mezer a na konec hodnoty přidej
             sekvenci \n$Permission_1 (viz příklad).
 TypTransl - Tato proměnná určuje rozsah překladu. Může nabývat
             hodnot 'full', 'new' a 'old'.
 MinReqVer - Která verze programu je minimálně potřebná pro
             použití tohoto překladu. (Zde je popsaná 0.8.10)
 TranslCod - Zatím nemá smysl, ale v budoucnosti znaková sada
             překladu.
 VerTransl - Číslo verze překladu podle data modifikace ve formátu
             rok měsíc den (např. 20040831)

 Je-li k šíření překladu potřeba povolení, následují řádky
 začínající znaky '#§'. Tyto řádky obsahují informace, které se
 mají zobrazit v okně po výběru překladu. Zde je obvykle info-
 rmace o autorských právech a podmínkách použití, případně pokud
 majitel práv vyžaduje, i jiné údaje. Text v této části naformátuj
 na šířku stránky 70 znaků. Pokud překlad povolení nepotřebuje,
 tyto řádky nezařazuj. Program detekuje přítomnost právě sekvence
 '#§' a je-li tato zjištěna, zobrazí "okno navíc".

 Potom následuje samotný text daného překladu Bible. Ten musí být
 řazen následovně:

   - Každý verš MUSÍ být umístěn na jednom řádku.
   - Každý řádek s veršem musí začít jeho přesnou adresou
     ve tvaru 'PořadovéČísloKnihy/Kapitola:Verš'.
   - Mezi první cifrou verše a začátkem samotného textu
     musí být přesně TŘI znaky. To znamená, že je-li číslo
     verše jednociferné, následují tři mezery a až potom
     text. Je-li číslo verše dvouciferné, následují dvě
     mezery a potom text. A konečně je-li číslo verše
     trojciferné, následuje jen jedna mezera a potom text.
   - Příliš nezáleží na tom, v jaké postoupnosti jsou knihy
     a verše v souboru umístěny. Důležité je jen aby tam
     byly a aby byly správně opatřeny adresou.

Informace, která je pro nás nová, se týká oddělovače mezi identifikátorem a textem: Nemusí to být posloupnost znaků 0x20, 0xA0, 0x20, ale jedná se vždy o nějaké mezery (lhostejno, zda 0x20 nebo 0xA0) v počtu, závislém na počtu civer čísla verše. Způsob číslování biblických knih se zatím nedozvídáme, proto dále pátráme v adresáři lib. V souboru lib/references se dočítáme:

# icasi Bible - databaze odkazu na biblicke verse:
# tato databaze obsahuje zatim jen cast 'Noveho Zakona'.
# Cislovani odpovida 'cs_eku', v jinych prekladech se u nekterych versu
# nemusi zobrazit pozadovaný obsah (viz navod/#3.12) (pozn. aut.).

40/1/1: 42/3/23-38
40/1/2: 42/3/23-38 13/1/34 13/2/1-15
40/1/3: 42/3/23-38 13/1/34 13/2/1-15 8/4/18-22

...atd.

Z toho usuzujeme, že v projektu icasi je za základ číslování zavzato číslování podle ČEP (číslování jiných překladů se totiž mírně liší).

Číslování biblických knih a zkratky[editovat]

Hledaný soubor číslování biblických knih nakonec nacházíme jako lib/lang/bnames.cs :

# icasi Bible - czech book names
# encoding='iso8859-2'

#
# VE ZKRATKACH NESMI BYT POUZITY MEZERY !!!
#

bname_1="1. Mojžíšova"
short_1a="1M"
short_1b="Gn"
short_1c=""

bname_2="2. Mojžíšova"
short_2a="2M"
short_2b="Ex"
short_2c=""

... atd. až nakonec:

bname_66="Zjevení"
short_66a="Zj"
short_66b=""
short_66c=""

Porovnáním seznamu bnames s tištěným vydáním Českého ekumenického překladu (11.vydání z r. 2005) zjišťujeme, že tento seznam 66 knih :

  • pod pořadovými čísly 1..39 obsahuje všech 39 kanonických knih Starého zákona (První Mojžíšova - Malachiáš)
  • neobsahuje žádnou z devíti deuterokanonických (apokryfních) knih Starého zákona (Tóbit - Druhá Makabejská)
  • pod pořadovými čísly 40..66 obsahuje všech 27 knih Nového zákona (Matouš - Zjevení Janovo)
  • porovnáním názvů biblických knih s obsahem Starého zákona na str. 9 zjišťujeme, že:
    • Názvy biblických knih se liší v tom, že obsah ČEP vypisuje pořadové číslovky slovem (První Mojžíšova) a v závorce někdy uvádí alternativní název
    • V ostatním se názvy shodují přesně.
  • Názvy zkratek biblických knih Starého zákona:
    • V případě, že řetězec short_1b není prázdný, tak jeho obsah odpovídá zkratce biblické kniky v ČEP
    • V případě, že řetězec short_1b je prázdný, pak zkratce biblické knihy ČEP odpovídá obsah řetězce short_1a
    • Zatímco mezi číslem a písmennou zkratkou v seznamu bnames nejsou mezery, v ČEP je jedna mezera.
  • porovnáním názvů biblických knih s obsahem Nový zákona na str. 4 zjišťujeme, že:
    • Zkráceně (tj. číslovkou) jsou uváděna čísla listů, např. "1. Korintským" namísto "První list Korintským" a i dalších názvů listů se vypouští slovo "list", tj. např. "List Jakubův" je název zkrácen na "Jakubův".
    • Název knihy "Skutky apoštolské" je zkrácen na "Skutky" a "Zjevení Janovo" na "Zjevení"
    • V ostatním se názvy shodují přesně.
  • Názvy zkratek biblických knih Nového zákona mají obrácený algoritmus:
    • Obsah řetězec short_1a odpovídá zkratce biblické kniky v ČEP bez ohledu na řetězec short_1b
    • Řetězec short_1b pouze ve třech případech uvádí alternativy zkratek, uvedených v ČEP: Fp, 1Pt, 2Pt
    • O mezerách platí to samé, jako v případě Starého zákona

Úpravy v označování biblických knih a jejich zkratek oproti ČEP lze považovat za pochopitelné a lze je akceptovat i pro naše potřeby. Je potřeba ale dbát na nepravidelnost významu řetězců "short_1a" a "short_1b" vzhledem k ČEP u Starého a Nového zákona.

Alternativní názvy zkratek "short_1a" a "short_1b" zřejmě historicky souvisí se zkratkami, které používá Bible kralická (i když v této podobě jim přesně neodpovídají).

Seznam referencí[editovat]

Většina biblických textů je vybavena odkazy neboli referencemi. Odpovídá to reformační zásadě "vykládat Písmo Písmem", že u většiny veršů jsou uvedeny odkazy na další verše, které hovoří o podobných tématech nebo souvislostech.

Zpravidla každý text bible obsahue svoje vlastní reference. Platá zásada, že každý překlad je zároveň i určitým výkladem, a k určitému výkladu patří i uvádění určitých referencí. Naproti tomu program icasi Bible mená svůj seznam referencí uložen u každého biblického překladu zvlášť, ale namísto toho používá tabulku referencí společnou všem překladům. Již jsme si prohlédli její začátek v souboru lib/references. Z toho, že seznam začíná až knihou č. 40, lze usoudit, že zde jsou dostupné pouze reference knih Nového zákona. Formát tohoto textového souboru je jednoduchý:

  • každý řádek souboru začíná identifikátorem verše. Na rozdíl od identifikátoru verše v souboru biblických veršů jsou zde všechna čísla (číslo knihy, kapitoly a verše) oddělena lomítky a dvojtečka je uvedena až na konci identifikátoru
  • za identifikátorem následuje seznam identifikátorů veršů, na které je odkazováno, ve stejném formátu. Kromě jednotlivých veršů je možno odkazovat na interval veršů od-do, vyznačený pomlčkou
  • seznam identifikátorů je oddělen (i od prvního identifikátoru) mezerami

Konverze číslování[editovat]

Číslování veršů veršů v různých překladech si ne vždy odpovídá. Někdy jsou i nějaké verše zavzaty do předcházející nebo následující kapitoly. Výjimky, ve kterých si číslování neodpovídá, jsou uvedeny v souboru lib/conv.tab: icasi Bible conversion chart:

cs_kra          cs_eku
-----------------------
1/31/55         1/32/1
1/32/1          1/32/2
1/32/2          1/32/3
1/32/3          1/32/4
1/32/4          1/32/5

... atd.

Knize první (tedy Genesis), 31. kapitole, 55. verši v kralickém překladu odpovídá již 1. verš 32. kapitoly a tento posun se pak táhne dál. Atp. Tabulka ovsahuje pouze dva sloupce, kralický a ekumenický překlad. Odchylky mezi ostatními překlady uvedeny nejsou.

Počty veršů v kapitolách[editovat]

V důsledku odlišného číslování se liší i počty veršů v kapitolách. Tyto počty zaznamenává tabulka v souboru lib/cref.tab

icasi Bible conversion referential chart:

Book/Chapter    verses in cs_eku        verses in cs_kra        (note)
----------------------------------------------------------------------
1/31    54      55      
1/32    33      32
2/7     29      25
2/8     28      32
2/21    37      36

... atd.

Související články[editovat]