Transkriptionen aus der Datenbank holen
Montag, 7. April 2008 1:36
So nützlich es auch ist, die Transkriptionen in einer relationalen Datenbank zu haben, so sehr wünscht man sich doch manchmal, dass diese als gewöhnlicher Text vorliegen. Um ein bequemes Extrahieren von Transkriptionen aus der Datenbank zu ermöglichen, habe ich noch ein kleines Python-Skript geschrieben. Dieses Skript steht hier zum freien Download, und wer sich immer mit diesem Manuskript plagt, der darf es gern benutzen oder für seine speziellen Bedürfnisse anpassen.
Download-Link: Ein Python-Skript zum Extrahieren von Transkriptionen aus der Datenbank
Wer das Skript benutzen will, muss die Zugangsdaten für seine Datenbank im Quelltext angeben. Dieser Teil des Quelltextes dürfte sich auch für jene selbst erklären, die sich mit Python sonst schwer tun. Deshalb habe ich keine andere Methode zur Konfiguration vorgesehen.
Die Verwendung ist relativ einfach. Es handelt sich um ein Skript für die Kommandozeile, mit Optionen kann gesteuert werden, welcher Anteil aus welcher Transkription extrahiert werden soll.
Übersicht über die Optionen
Bei allen Optionen muss die korrekte Groß-/Kleinschreibung beachtet werden.
-h
Ausgabe einer kurzen Hilfe zu den Optionen, die eine gute Gedächtnisstütze sein kann.
-O DATEINAME
Umleitung der Ausgabe in eine Datei. Das können allerdings auch fast alle Betriebssysteme.
-t TRANSCODE
Auswahl der gewünschten Transkription durch den ihr zugeordneten Code, der aus einem Buchstaben besteht. Wenn diese Angabe nicht gemacht wird, wird die Transkription von Takeshi Takahashi verwendet.
-H HANDCODE
Auswahl der Handschrift nach dem Schema von Currier. Definierte Codes sind 1
, 2
, 3
, 4
, 5
, X
und Y
. Es können mehrere Codes angegeben werden, etwa 345
. Wenn diese Angabe nicht gemacht wird, werden Seiten unabhängig von dieser Information extrahiert.
-l LANGCODE
Auswahl der Currier-Sprache. Definierte Codes sind A
und B
. Es kann auch AB
angegeben werden, um nur jene Bereiche zu extrahieren, denen sich eine Currier-Sprache zuordnen lässt. Wenn diese Angabe nicht gemacht wird, werden Seiten unabhängig von dieser Information extrahiert.
-i ILLUCODE
Auswahl von Seiten nach ihrer Illustration. Definierte Codes sind T
für reinen Text, H
für Pflanzenkunde, A
für astronomische Seiten, Z
für den Tierkreis, B
für biologische Seiten, C
für Kosmologie, P
für pharmazeutische Seiten und S
für den abschließenden Teil. Auch hier können mehrere Codes angegeben werden. Wenn diese Angabe nicht gemacht wird, werden alle Seiten unabhängig von ihrer Illustration extrahiert.
-r BEREICH
Auswahl von Seiten nach ihrer Seitennummer. Die Bereiche können sehr flexibel angegeben werden, weitere Informationen weiter unten. Wenn diese Angabe nicht gemacht wird, dann wird aus dem gesamten Manuskript extrahiert.
-a ALPHABET
Auswahl eines Transkriptions-Alphabetes für die Ausgabe. Definiert sind EVA, Frogguy, FSG, Currier und Bennett. Wenn diese Angabe nicht gemacht wird, findet EVA Verwendung.
-T
Ausgabe aller definierten Transkriptionscodes mit Angaben zum Umfang der Transkription.
-v
Anzeige der Programmversion.
Zur Angabe von Seitenbereichen
In den Angaben der Seitenbereiche mit -r sind keine Leerzeichen gestattet.
Ein Seitenbereich kann eine Einzelseite sein, etwa f10r
. Diese wird direkt angegeben.
Es kann sich um Seiten im Bereich von einer Startseite bis zu einer Endseite handeln. Dann werden die beiden Seiten durch einen Doppelpunkt getrennt. Um die Seiten von f20v
bis f22r
zu extrahieren, muss der Bereich f20v:f22r
angegeben werden.
Es kann sich um Seiten vom Anfang bis zu einer bestimmten Seite handeln. Dann wird der Endseite ein Doppelpunkt vorangestellt. Um die Seiten bis f10r
zu erhalten, muss der Bereich :f10r
angegeben werden. Von von einer Seite beginned bis zum Ende des Manuskriptes zu extrahieren, wird der Doppelpunkt nachgestellt.
Das f zum Beginn der Seitennummer kann weggelassen werden. Statt f2r:f4r
kann auch einfach 2r:4r
geschrieben werden. Es ist im Kontext dieser Option immer klar, was gemeint ist, das »f
« für »Folio« ist semantisch überflüssig.
Verschiedene Seitenbereiche können mit + kombiniert werden. Wer die Seiten von 1r
bis 5v
und von 30r
bis 45v
erhalten möchte, kann die Angabe 1r:5v+30r:45v
machen. Überlappungen sind dabei kein Problem, es wird stets der größtmögliche Seitenbereich ausgewählt. Dieser kann durch die weiteren Optionen gefiltert werden.
Beispiele
Zunächst ein ganz einfaches Beispiel. Um die pflanzenkundlichen Seiten in der Currier-Sprache B zu erhalten, wird das folgende Kommando benutzt:
python voynich.py -i H -l B
Dieses Kommando kann etwas abgekürzt werden, indem die Leerzeichen zwischen den Optionen und ihren Parametern weggelassen werden.
python voynich.py -iH -lB
Mit der Angabe eines zusätzlichen Seitenbereiches können etwa nur die Seiten ab f48r erhalten werden.
python voynich.py -iH -lB -r48r:
Installation für die bequeme Anwendung
Wenn man dieses Skript häufiger verwendet, wird man es wohl über seinen normalen Suchpfad für Kommandos zugänglich machen. In Unix-artigen Systemen kann es direkt ausführbar gemacht werden und sollte auf Anhieb laufen, die beim Tippen etwas lästige Dateinamenserweiterung ».py
« kann einfach entfernt werden.
Kurzlizenz
Jeder Mensch, der am Voynich-Manuskript forscht, darf mit diesem Skript machen, was er will. Wenn jemand nützliche Erweiterungen programmiert, wäre es nett, wenn diese erweiterte Version ebenso frei zur Verfügung gestellt würde.
Thema: Hacking, Hilfsmittel | Kommentare (0) | Autor: elias