<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linked Data |</title><link>https://clementgodbarge.com/nl/tag/linked-data/</link><atom:link href="https://clementgodbarge.com/nl/tag/linked-data/index.xml" rel="self" type="application/rss+xml"/><description>Linked Data</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>nl-nl</language><lastBuildDate>Fri, 28 Mar 2025 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>Linked Data</title><link>https://clementgodbarge.com/nl/tag/linked-data/</link></image><item><title>persNamer</title><link>https://clementgodbarge.com/nl/code/persnamer/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/nl/code/persnamer/</guid><description>&lt;h2 id="persnamer-tei-koppelen-aan-het-virtual-international-authority-file"&gt;persNamer: TEI koppelen aan het Virtual International Authority File&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;persNamer is een gespecialiseerde Python-tool die de integratie van gezaghebbende persoonsgegevens uit VIAF (Virtual International Authority File) in TEI-XML-documenten stroomlijnt. Door VIAF-identificatoren om te zetten in kant-en-klare TEI-markup vermindert persNamer aanzienlijk het handwerk dat komt kijken bij het aanmaken van gestructureerde persoonsvermeldingen voor digitale wetenschappelijke edities.&lt;/p&gt;
&lt;h2 id="de-uitdaging-van-autoriteitscontrole-in-tei"&gt;De uitdaging van autoriteitscontrole in TEI&lt;/h2&gt;
&lt;p&gt;Digitale wetenschappelijke edities vereisen vaak een precieze identificatie van historische personen, met hun gestandaardiseerde namen en levensdata. Wie in een project consequent autoriteitsdata wil bijhouden, moet:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;personen in historische teksten identificeren&lt;/li&gt;
&lt;li&gt;gezaghebbende gegevens over hen opzoeken&lt;/li&gt;
&lt;li&gt;correct opgemaakte TEI-vermeldingen aanmaken&lt;/li&gt;
&lt;li&gt;zorgen voor consistente verwijzingen in het hele project&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Deze stappen gebeuren doorgaans handmatig, kosten veel tijd en leiden gemakkelijk tot inconsistenties.&lt;/p&gt;
&lt;h2 id="hoe-persnamer-werkt"&gt;Hoe persNamer werkt&lt;/h2&gt;
&lt;p&gt;persNamer automatiseert deze workflow door:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;VIAF-gegevens op te halen&lt;/strong&gt;: op basis van een VIAF-identificator haalt de tool RDF-gegevens op via HTTP content negotiation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;De kerninformatie te extraheren&lt;/strong&gt;: de RDF wordt geparseerd om de voorkeursnaam, de geboortedatum en de sterfdatum eruit te halen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TEI-markup te genereren&lt;/strong&gt;: er worden twee essentiële XML-fragmenten aangemaakt:
&lt;ul&gt;
&lt;li&gt;een &lt;strong&gt;vermelding voor het autoriteitsbestand&lt;/strong&gt; (een &lt;code&gt;&amp;lt;person&amp;gt;&lt;/code&gt;-element met een gegenereerd &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; en &lt;code&gt;&amp;lt;idno type=&amp;quot;VIAF&amp;quot;&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;een afzonderlijke &lt;strong&gt;annotatietag&lt;/strong&gt; (een &lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; met een &lt;code&gt;ref&lt;/code&gt;-attribuut dat naar de autoriteitsvermelding verwijst)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Dankzij deze dubbele uitvoer kunnen editeurs een centraal autoriteitsbestand bijhouden en tegelijk moeiteloos annotatietags in hun TEI-teksten invoegen.&lt;/p&gt;
&lt;h2 id="belangrijkste-functies"&gt;Belangrijkste functies&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gestandaardiseerde ID-generatie&lt;/strong&gt;: maakt consistente XML-ID&amp;rsquo;s aan in het formaat &lt;code&gt;pers-[familyname]-[givenname initial]&lt;/code&gt; (bv. &lt;code&gt;pers-deteligny-c&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RDF-parsing&lt;/strong&gt;: gebruikt &lt;code&gt;rdflib&lt;/code&gt; om informatie uit uiteenlopende RDF-eigenschappen te halen (bv. &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;Opdrachtregelinterface&lt;/strong&gt;: eenvoudig uit te voeren met een VIAF-nummer als enige verplichte argument&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uitgebreide uitvoer&lt;/strong&gt;: geeft gedetailleerde informatie over de verwerking naast de uiteindelijke XML-uitvoer&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="voorbeeld-van-gebruik"&gt;Voorbeeld van gebruik&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;Deze opdracht levert het volgende op:&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="toepassing-in-de-digital-humanities"&gt;Toepassing in de digital humanities&lt;/h2&gt;
&lt;p&gt;persNamer is vooral waardevol voor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;digitale wetenschappelijke edities die autoriteitscontrole vereisen&lt;/li&gt;
&lt;li&gt;TEI-codeerprojecten rond historische figuren&lt;/li&gt;
&lt;li&gt;linked-data-initiatieven die documenten aan autoriteitsrecords koppelen&lt;/li&gt;
&lt;li&gt;het bewaken van de consistentie in grote TEI-corpora&lt;/li&gt;
&lt;li&gt;het onderwijzen van autoriteitscontrole in cursussen digital humanities&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="implementatie"&gt;Implementatie&lt;/h2&gt;
&lt;p&gt;persNamer is geschreven in Python en steunt op:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt; voor HTTP-verzoeken&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rdflib&lt;/code&gt; voor het parseren van RDF&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lxml&lt;/code&gt; voor de verwerking van XML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;De broncode en documentatie vind je in de
.&lt;/p&gt;</description></item></channel></rss>