persNamer 1.2: ett VIAF-nummer, nio auktoritetsfiler

7 september 2026·
Clément Godbarge
Clément Godbarge
· 3 Min Läsning
post Digital humaniora

persNamer var från början bara en liten bekvämlighet: ett VIAF-nummer in, en TEI-post <person> ut, plus den <persName>-tagg man märker upp texten med. Mer än så gjorde det inte, och mycket stod det inte heller i posten: ett namn, två datum, en identifierare. Version 1.2, som släpps i dag, gör fortfarande bara det där enda – men posten den lämnar ifrån sig är nu en som man vill behålla.

Vad en personpost innehåller numera

Börja med namnet. I ett VIAF-kluster bidrar varje deltagande bibliotek med sin egen namnform, och gamla persNamer tog rätt och slätt den första etikett som råkade dyka upp. Frågade man efter Voltaire fick man ”فولتير،” – den arabiska formen, slutkomma och allt – och ett tomt xml:id på köpet. Nu räknar programmet formerna i hela klustret och behåller den som förekommer oftast bland källposterna; de övriga följer med som <persName type="variant">, den vanligaste först. Datum normaliseras (1572-08-00 blir 1572-08) och skrivs två gånger, dels som text, dels i ett @when-attribut – för det är dit varje bearbetning som bryr sig om datum faktiskt tittar. Kön och beskrivningar kommer med när VIAF lämnar ut dem.

Och så det jag längtat mest efter: varje identifierare som VIAF knyter till personen – via schema:sameAs eller via sina egna käll-ID:n – får ett eget <idno>: BnF, GND, Library of Congress, SUDOC, Wikidata, ISNI, BNE, LIBRIS, NDL. Ett nummer in, nio kataloger ut. För en personografi är det hela skillnaden mellan en namnlista och en nod i auktoritetsdatans väv.

<person xml:id="pers-teligny-c">
  <persName>Charles de Téligny</persName>
  <birth when="1535">1535</birth>
  <death when="1572-08-24">1572-08-24</death>
  <sex value="M">M</sex>
  <idno type="VIAF">314802260</idno>
  <idno type="BNF">16133360</idno>
  <idno type="Wikidata">Q1868249</idno>
  <idno type="ISNI">0000000071126808</idno>
</person>

Från lösa utdrag till personografi

För en enda person duger XML i terminalen gott. En utgåva har hundratals. Därför tar persNamer nu emot flera VIAF-nummer på en gång, unnar VIAF en artig andhämtning mellan anropen, sparar det som redan hämtats i en cache och stoppar – med --merge – de nya posterna rakt in i <listPerson> i en befintlig TEI-fil. Den som redan finns där känns igen på sitt VIAF-nummer och får behålla sitt xml:id; nya id:n stäms av mot filen och får ett suffix (-2, -3) om de annars skulle krocka; till sist indenteras filen om – sedan en .bak-kopia först lagts undan.

persnamer --merge edition.xml 314802260 36925746

En förändring värd att känna till: partikeln i efternamnet lämnas numera utanför id:t som standard, så Charles de Téligny blir pers-teligny-c och inte längre pers-deteligny-c. Har ditt projekt vant sig vid den gamla formen tar --keep-particle den tillbaka; vill du hellre slippa lita på namn över huvud taget ger --id-format viaf dig pers-viaf-314802260.

Städning

Skriptet har blivit ett riktigt paket, med kommandot persnamer: en rad räcker för att installera det (uv tool install eller pipx), eller för att prova det en gång med uvx utan att installera något alls. Tjugosex tester körs mot inspelade VIAF-svar – testsviten klarar sig alltså utan nätverk. CI kör dem på Python 3.9 till och med 3.13, och utmatningen valideras mot TEI P5. Licens: Apache 2.0, som förut.

Vad det fortfarande inte kan är att tala om var någon föddes eller vad hen levde av: VIAF:s kluster-RDF innehåller varken platser eller yrken. Det gör däremot de länkade posterna hos BnF och GND – och nu har du deras nummer.

Kod och dokumentation på GitHub.

Clément Godbarge
Authors
Lektor i digital humaniora
Clément Godbarge är lektor i digital humaniora vid University of St Andrews. Hans forskning rör vetenskap och statskonst i det tidigmoderna Europa. I sin kommande bok undersöker han hur läkare vid de franska och italienska hoven på 1500-talet framställde sig som politiska experter av ett nytt slag. Hans forskning har stötts av Andrew W. Mellon Foundation, Fulbrightkommissionen, Renaissance Society of America och Harvard University.