Bible: Databáze
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
editovatDatum: 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
editovatVě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
editovatText 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á
editovatU 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
editovatZbý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ů
editovatPř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
editovatHledaný 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í
editovatVě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
editovatV 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- Bible
- Následující článek: Bible: MySQL