<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VIAF |</title><link>https://clementgodbarge.com/sv/tag/viaf/</link><atom:link href="https://clementgodbarge.com/sv/tag/viaf/index.xml" rel="self" type="application/rss+xml"/><description>VIAF</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>sv-se</language><lastBuildDate>Fri, 28 Mar 2025 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>VIAF</title><link>https://clementgodbarge.com/sv/tag/viaf/</link></image><item><title>persNamer</title><link>https://clementgodbarge.com/sv/code/persnamer/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/sv/code/persnamer/</guid><description>&lt;h2 id="persnamer-tei-kopplat-till-virtual-international-authority-file"&gt;persNamer: TEI kopplat till Virtual International Authority File&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h2 id="auktoritetskontrollens-utmaning-i-tei"&gt;Auktoritetskontrollens utmaning i TEI&lt;/h2&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;identifierar personerna i de historiska texterna&lt;/li&gt;
&lt;li&gt;hittar auktoritetsdata om dem&lt;/li&gt;
&lt;li&gt;skapar korrekt formaterade TEI-poster&lt;/li&gt;
&lt;li&gt;ser till att hänvisningarna är konsekventa genom hela projektet&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Dessa steg är i regel manuella, tidskrävande och känsliga för inkonsekvenser.&lt;/p&gt;
&lt;h2 id="så-fungerar-persnamer"&gt;Så fungerar persNamer&lt;/h2&gt;
&lt;p&gt;persNamer automatiserar arbetsflödet genom att:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;hämta VIAF-data&lt;/strong&gt;: utifrån en VIAF-identifierare hämtar verktyget RDF-data via HTTP-innehållsförhandling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;extrahera nyckeluppgifter&lt;/strong&gt;: tolkar RDF-data och plockar ut det föredragna namnet, födelsedatum och dödsdatum&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;generera TEI-uppmärkning&lt;/strong&gt;: skapar två centrala XML-utdrag:
&lt;ul&gt;
&lt;li&gt;en &lt;strong&gt;post för auktoritetsfilen&lt;/strong&gt; (ett &lt;code&gt;&amp;lt;person&amp;gt;&lt;/code&gt;-element med genererat &lt;code&gt;xml:id&lt;/code&gt;, &lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;birth&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;death&amp;gt;&lt;/code&gt; och &lt;code&gt;&amp;lt;idno type=&amp;quot;VIAF&amp;quot;&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;en separat &lt;strong&gt;annotationstagg&lt;/strong&gt; (&lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; med ett &lt;code&gt;ref&lt;/code&gt;-attribut som pekar på auktoritetsposten)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Den dubbla utmatningen låter utgivaren underhålla en central auktoritetsfil och samtidigt enkelt infoga annotationstaggar i sina TEI-texter.&lt;/p&gt;
&lt;h2 id="huvudfunktioner"&gt;Huvudfunktioner&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standardiserad ID-generering&lt;/strong&gt;: skapar konsekventa XML-ID:n i formatet &lt;code&gt;pers-[familyname]-[givenname initial]&lt;/code&gt; (t.ex. &lt;code&gt;pers-deteligny-c&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RDF-tolkning&lt;/strong&gt;: använder &lt;code&gt;rdflib&lt;/code&gt; för att hämta uppgifter ur olika RDF-egenskaper (t.ex. &lt;code&gt;rdfs:label&lt;/code&gt;, &lt;code&gt;schema:name&lt;/code&gt;, &lt;code&gt;viaf:mainHead&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kommandoradsgränssnitt&lt;/strong&gt;: körs enkelt med ett VIAF-nummer som enda obligatoriska argument&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Utförlig utmatning&lt;/strong&gt;: ger detaljerad information om bearbetningen vid sidan av den färdiga XML-koden&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exempel"&gt;Exempel&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python persNamer.py &lt;span class="m"&gt;314802260&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Kommandot ger:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;person&lt;/span&gt; &lt;span class="na"&gt;xml:id=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;pers-deteligny-c&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;persName&amp;gt;&lt;/span&gt;Charles deTéligny&lt;span class="nt"&gt;&amp;lt;/persName&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;birth&amp;gt;&lt;/span&gt;1535&lt;span class="nt"&gt;&amp;lt;/birth&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;death&amp;gt;&lt;/span&gt;1572-08-24&lt;span class="nt"&gt;&amp;lt;/death&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;idno&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;VIAF&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;314802260&lt;span class="nt"&gt;&amp;lt;/idno&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/person&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;persName&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;#pers-deteligny-c&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Charles deTéligny&lt;span class="nt"&gt;&amp;lt;/persName&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="användning-inom-digital-humaniora"&gt;Användning inom digital humaniora&lt;/h2&gt;
&lt;p&gt;persNamer är särskilt värdefullt för:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;digitala vetenskapliga utgåvor som kräver auktoritetskontroll&lt;/li&gt;
&lt;li&gt;TEI-kodningsprojekt som arbetar med historiska personer&lt;/li&gt;
&lt;li&gt;initiativ kring länkade data som kopplar dokument till auktoritetsposter&lt;/li&gt;
&lt;li&gt;att säkra konsekvens i stora TEI-korpusar&lt;/li&gt;
&lt;li&gt;undervisning i auktoritetskontroll på kurser i digital humaniora&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="implementering"&gt;Implementering&lt;/h2&gt;
&lt;p&gt;persNamer är skrivet i Python och bygger på:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt; för HTTP-anrop&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rdflib&lt;/code&gt; för RDF-tolkning&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lxml&lt;/code&gt; för XML-hantering&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Källkod och dokumentation finns i
.&lt;/p&gt;</description></item></channel></rss>