persNamer
persNamer: TEI mit dem Virtual International Authority File verknüpfen
persNamer ist ein spezialisiertes Python-Werkzeug, das Personen-Normdaten aus VIAF (Virtual International Authority File) ohne Umwege in TEI-XML-Dokumente holt. Weil es VIAF-Identifikatoren in fertiges TEI-Markup übersetzt, erspart persNamer einen Großteil der Handarbeit, die strukturierte Personeneinträge in digitalen wissenschaftlichen Editionen sonst verlangen.
Die Mühen der Normdatenpflege in TEI
Digitale wissenschaftliche Editionen müssen historische Personen häufig exakt identifizieren, samt normiertem Namen und Lebensdaten. Wer die Normdaten über ein ganzes Projekt hinweg konsistent halten will, muss:
- Personen in historischen Texten erkennen
- verlässliche Normdaten zu ihnen finden
- korrekt formatierte TEI-Einträge anlegen
- dafür sorgen, dass die Verweise im ganzen Projekt einheitlich bleiben
All das geschieht in der Regel von Hand, kostet Zeit und lädt zu Inkonsistenzen ein.
Wie persNamer arbeitet
persNamer automatisiert diesen Ablauf, indem es:
- VIAF-Daten abruft: Zu einem gegebenen VIAF-Identifikator holt das Werkzeug per HTTP Content Negotiation die RDF-Daten
- die Kerninformationen ausliest: Aus dem RDF zieht es den bevorzugten Namen sowie Geburts- und Sterbedatum
- TEI-Markup erzeugt: Es liefert zwei unentbehrliche XML-Schnipsel:
- einen Eintrag für die Normdatei (
<person>-Element mit generierterxml:id,<persName>,<birth>,<death>und<idno type="VIAF">) - ein eigenes Annotations-Tag (
<persName>mit einemref-Attribut, das auf den Normdateneintrag verweist)
- einen Eintrag für die Normdatei (
Diese zweifache Ausgabe erlaubt es Editorinnen und Editoren, eine zentrale Normdatei zu führen und die Annotations-Tags zugleich bequem in ihre TEI-Texte einzusetzen.
Hauptmerkmale
- Einheitliche ID-Vergabe: Erzeugt konsistente XML-IDs nach dem Muster
pers-[familyname]-[givenname initial](z. B.pers-deteligny-c) - RDF-Parsing: Liest mit
rdflibInformationen aus verschiedenen RDF-Eigenschaften aus (z. B.rdfs:label,schema:name,viaf:mainHead) - Kommandozeile: Ein Aufruf mit der VIAF-Nummer als einzigem Pflichtargument genügt
- Ausführliche Ausgabe: Liefert neben dem fertigen XML detaillierte Angaben zur Verarbeitung
Anwendungsbeispiel
python persNamer.py 314802260
Dieser Befehl erzeugt:
<person xml:id="pers-deteligny-c">
<persName>Charles deTéligny</persName>
<birth>1535</birth>
<death>1572-08-24</death>
<idno type="VIAF">314802260</idno>
</person>
<persName ref="#pers-deteligny-c">Charles deTéligny</persName>
Einsatz in den Digital Humanities
persNamer ist besonders nützlich für:
- digitale wissenschaftliche Editionen, die Normdatenpflege verlangen
- TEI-Kodierungsprojekte, in denen historische Persönlichkeiten vorkommen
- Linked-Data-Vorhaben, die Dokumente mit Normdatensätzen verknüpfen
- die Wahrung der Konsistenz in großen TEI-Korpora
- die Vermittlung der Normdatenpflege in Lehrveranstaltungen der Digital Humanities
Implementierung
persNamer ist in Python geschrieben und stützt sich auf:
requestsfür HTTP-Anfragenrdflibfür das RDF-Parsinglxmlfür die XML-Verarbeitung
Quellcode und Dokumentation finden Sie im GitHub-Repository.
