Verse der einzelnen Bibelbücher herausfinden
Um letztlich auch einen prozentualen Anteil der in der Heiligen Messe gelesenen Bibeltexte berechnen zu können, brauchte ich als erstes eine Übersicht, wie viel Verse die jeweiligen Kapitel in den jeweiligen Büchern der Bibel haben.
Fündig bin ich nach einiger Suche beim amerikanischen Jesuiten Felix Just geworden:
- https://catholic-resources.org/Bible/OT-Statistics-NAB.htm
- https://catholic-resources.org/Bible/NT-Statistics-Greek.htm
Diese Daten habe ich zunächst in ein einheitliches Tabellenformat gebracht und mit den deutschen Bibelbuchabkürzungen ergänzt. Die Daten findet ihr in folgender OpenDocument-Tabelle, bzw. in der Tab-getrennten CSV-Datei (jedoch ohne die Spaltentitel; die ersten Spalten sind Buch-ID, englischer Buch-Name, Buch-Name in deutscher Kurzform, Kapitelanzahl des Buches und Gesamt-Versanzahl des Buches).
Das folgende Awk-Script erstellt dann daraus eine CSV-Tabelle, die später weiterverwendet wird. Sie beinhaltet einfach jeden einzelnen Vers der Bibel in einer Zeile – verbunden mit dem jeweiligen Buch und dem entsprechenden Kapitel.
# Jonathan Berschauer, GNU GPL v3
# Tabelle mit allen Bibelversen erstellen
# Am Begin ausführen
BEGIN {
FS = "\t"
OFS = "\t"
print "Buch-kurz\tKapitel\tVers"
}
# Durchgang für jede Zeile
{
id=$1
buch=$2
kurz=$3
kapitelanzahl=$4
Versanzahl=$5
#print "ID " id " Buch " buch " Kurz " kurz
for(spalte=6; spalte<=155; spalte++) #alle Spalten der Zeile durchgehen, bei der 5. Spalte anfangen
{
if ($spalte != "") { #nur durchgehen, solange noch etwas in der Spalte steht
versanzahl=$spalte
kapitel=spalte-5
#print "Buch " buch ", Kapitel " kapitel " hat " versanzahl " Verse."
for(i=1;i<=versanzahl;i++) { #Einzelverse pro Zeile ausgeben
print kurz "\t" kapitel "\t" i
}
}
}
}
# Am Ende ausführen
END {
}
Aufgerufen wird das Script in der Shell mit folgender Syntax:awk -f Programmdatei Datei
Hier also beispielsweise:awk -f Bibelverse.awk Bibel-Statistik-Anzahl-Verse-Kapitel.csv > Bibel-Versliste.csv
Heraus kommt die Ausgangsdatei: Bibel-Versliste.csv (Tab-getrennt)
Verse aus dem liturgischen Online-Kalender extrahieren
Nachdem wir nun also zunächst die Versanzahl der einzelnen Kapitel der Bücher in der Bibel haben, brauchen wir die die Textstellen, die in der Liturgie vorgelesen werden. Als erstes beschäftigen wir uns mit den Texten in der Heiligen Messe. In der römischen Liturgie gibt es hierzu unterschiedliche Lesejahre. An Sonntagen gibt es die drei Lesejahre A, B und C. An Wochentagen gibt es nur zwei Lesejahre – I und II.
Eine sehr große Hilfe sind hierbei die bereits vom Salesianer Hatto von Hatzfeld zusammengetragenen Daten unter http://www.eucharistiefeier.de/lk/ .
Richtig toll ist, dass Hatto von Hatzfeld sogar eine API programmiert hat, um die verschiedenen Daten abfragen zu können.
Unter folgendem Link lässt sich so das komplette liturgische Jahr 2019 im CSV-Format abfragen:
www.eucharistiefeier.de/lk/api.php?format=csv&jahr=2019&info=wdtrgflux&dup=e&bahn=n
Heraus kommen Ausgangsdateien wie: liturkal_wdtrgflu2019.csv
Ich habe – um alle mögliche Lesungskonstellationen abzudecken – einfach mal die Jahre 2016–2021 exportiert und als CSV gespeichert. In der Bash lassen sich die Daten nun alls CSV-Dateien einfach zusammenkopieren:cat *.csv > Liturgischer-Kalender-2016-2021.csv
Ausgangsdatei ist somit: Liturgischer-Kalender-2016–2021.csv
Daten zur Leseordnung ergänzen
Mit LibreOffice oder einem anderen Programm müssen jetzt nur noch die Titelzeilen mit „Index …“ herausgelöscht werden.
Für die Daten zum Lesejahr habe ich noch die Spalten „LesejahrSonntage“ und „LesejahrWochentage“ hinten in der Tabelle angefügt.
Dort die Lesejahre gemäß Leseordnung (immer Beginn mit dem 1. Adventssonntag, vgl. https://de.wikipedia.org/wiki/Leseordnung) angeben, also bspw. „A“ „2“.
Am einfachsten geht das vielleicht mit LibreOffice. Ggf. die Daten nach unten kopieren mit der Tastenkombination „Strg+D“.
Ausgangsdatei ist eine überarbeitete Liturgischer-Kalender-2016–2021.csv
Datenkorrektur mit regulären Ausdrücken
Leider passen die jetzt vorhandenen Daten noch nicht für die Weiterverarbeitung. Manchmal gibt es Tippfehler, zu viel Leerzeichen oder anders. Das Weiter-Verarbeitungs-Programm braucht zur das Format „Buch Kapitelnummer, Vers-Vers.Vers-Vers“ (also zwischen Kapitel und Vers ein Leerzeichen, was nicht unbedingt manchen Zitierrichtlinien entspricht).
Jetzt könnte man mehrere Tausend Einträge durchgehen und die entsprechenden Fehler korrigieren. Etwas einfach gestaltet dies sich mit einem Texteditor (ich verwende den bei Linux/KDE mitgelieferten Editor „Kate“), der reguläre Ausdrücke (engl.: regular expressions, oder kurz: RegExp oder Regex) verarbeiten kann.
Wenn ich also ein Komma zwischen zwei Zahlen ohne ein Leerzeichen suchen möchte und dort immer ein Leerzeichen nach dem Komma einfügen möchte, wäre mein Suchmuster (immer alles ohne Anführungszeichen): (\d),(\d)
. Das Ersetzmuster wäre in diesem Fall: \1, \2
. Die Klammern im Suchausdruck definieren die Unter-Suchmuster, welche dann beim Ersetzen angesprochen werden können. Das erste Ergebnis wird so bspw. mit \1
und das zweite mit \2
angesprochen.
Folgend findet ihr ein paar Beispiele:
- “ u. “ (=und) durch „.“ ersetzen:
Suchen: „(\d) u. (\d)
„
Ersetzen: „\1.\2
″
Suchen: „(\d)u. (\d)
“
Ersetzen: „\1.\2
″
Suchen: „(\d) u (\d)
“
Ersetzen: „\1.\2
„
Suchen: “u.(\d)
“
Ersetzen: „.\1
″ - Die fehlenden Leerzeichen nach mehreren Psalmen hinzfügen (bspw. bei „Ps 126 (125),1–2b.2c‑3.4–5.6 (R: 5)“):
Suchen: “),(\d)-(\d)
“
Ersetzen: “), \1-\2
″ - Die fehlenden Leerzeichen nach Kapitelangaben ergänzen (bspw. bei „1 Kor 1,18–25“; „Joh 18,1–19,42“; „Joh 20, 19–23 oder Joh 15,26–27; 16,12–15“):
Suchen: „(\d),(\d)-(\d)
“
Ersetzen: „\1, \2-\3
″
Ausgangsdatei ist eine überarbeitete Liturgischer-Kalender-2016–2021.csv (folgend enthalten in der ZIP zum Python-Programm).
Diese Datei brauchen wir nun für den nächsten Schritt, die Verarbeitung in einem Pythonprogramm.
Weitere Teile der Reihe zur statistischen Bibelvisualisierung:
Teil 0: Übersicht
Teil 1: Beschaffung der Daten
Teil 2: Datenaufbereitung mit einem Python-Programm (liturgischer Kalender / Heilige Messe)
Teil 3: Beschaffung der Daten zum Stundenbuch und Datenaufbereitung
Teil 4: Verarbeitung der Daten mit der Statistik-Programmiersprache R
Teil 5: Visualisierung der Daten mit RAW Graphs und Inkscape
Teil 6a: Endergebnisse
Teil 6b: Datentabellen
Pingback: Bibelvisualisierung — Teil 4: Verarbeitung der Daten in R - Jonathan Berschauer