persNamer

persNamer: TEI kopplat till Virtual International Authority File
persNamer är ett specialiserat Python-verktyg som förenklar integrationen av auktoriserade persondata från VIAF (Virtual International Authority File) i TEI-XML-dokument. Genom att omvandla VIAF-identifierare till färdig TEI-uppmärkning minskar persNamer avsevärt det manuella arbetet med att skapa strukturerade personposter för digitala vetenskapliga utgåvor.
Auktoritetskontrollens utmaning i TEI
Digitala vetenskapliga utgåvor kräver ofta exakt identifiering av historiska personer, med standardiserade namnformer och levnadsår. Att upprätthålla en konsekvent auktoritetskontroll genom ett helt projekt kräver att man:
- identifierar personerna i de historiska texterna
- hittar auktoritetsdata om dem
- skapar korrekt formaterade TEI-poster
- ser till att hänvisningarna är konsekventa genom hela projektet
Dessa steg är i regel manuella, tidskrävande och känsliga för inkonsekvenser.
Så fungerar persNamer
persNamer automatiserar arbetsflödet genom att:
- hämta VIAF-data: utifrån en VIAF-identifierare hämtar verktyget RDF-data via HTTP-innehållsförhandling
- extrahera nyckeluppgifter: tolkar RDF-data och plockar ut det föredragna namnet, födelsedatum och dödsdatum
- generera TEI-uppmärkning: skapar två centrala XML-utdrag:
- en post för auktoritetsfilen (ett
<person>-element med genereratxml:id,<persName>,<birth>,<death>och<idno type="VIAF">) - en separat annotationstagg (
<persName>med ettref-attribut som pekar på auktoritetsposten)
- en post för auktoritetsfilen (ett
Den dubbla utmatningen låter utgivaren underhålla en central auktoritetsfil och samtidigt enkelt infoga annotationstaggar i sina TEI-texter.
Huvudfunktioner
- Standardiserad ID-generering: skapar konsekventa XML-ID:n i formatet
pers-[familyname]-[givenname initial](t.ex.pers-deteligny-c) - RDF-tolkning: använder
rdflibför att hämta uppgifter ur olika RDF-egenskaper (t.ex.rdfs:label,schema:name,viaf:mainHead) - Kommandoradsgränssnitt: körs enkelt med ett VIAF-nummer som enda obligatoriska argument
- Utförlig utmatning: ger detaljerad information om bearbetningen vid sidan av den färdiga XML-koden
Exempel
python persNamer.py 314802260
Kommandot ger:
<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>
Användning inom digital humaniora
persNamer är särskilt värdefullt för:
- digitala vetenskapliga utgåvor som kräver auktoritetskontroll
- TEI-kodningsprojekt som arbetar med historiska personer
- initiativ kring länkade data som kopplar dokument till auktoritetsposter
- att säkra konsekvens i stora TEI-korpusar
- undervisning i auktoritetskontroll på kurser i digital humaniora
Implementering
persNamer är skrivet i Python och bygger på:
requestsför HTTP-anroprdflibför RDF-tolkninglxmlför XML-hantering
Källkod och dokumentation finns i GitHub-repot.
