Beiträge vom 7. April 2008

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: