<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>XML |</title><link>https://clementgodbarge.com/pl/tag/xml/</link><atom:link href="https://clementgodbarge.com/pl/tag/xml/index.xml" rel="self" type="application/rss+xml"/><description>XML</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>pl-pl</language><lastBuildDate>Sun, 15 Mar 2026 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>XML</title><link>https://clementgodbarge.com/pl/tag/xml/</link></image><item><title>tei-mcp</title><link>https://clementgodbarge.com/pl/code/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/pl/code/tei-mcp/</guid><description>&lt;h2 id="tei-mcp-tei-p5-dla-agentów-ai"&gt;tei-mcp: TEI P5 dla agentów AI&lt;/h2&gt;
&lt;p&gt;tei-mcp to serwer
open source, który daje asystentom AI do kodowania bezpośredni dostęp do specyfikacji
. Zamiast polegać na zapamiętanych danych treningowych – co często daje znakowanie wiarygodne z pozoru, lecz błędne – AI może odpytywać specyfikację w czasie rzeczywistym.&lt;/p&gt;
&lt;h2 id="funkcje"&gt;Funkcje&lt;/h2&gt;
&lt;p&gt;Serwer parsuje ODD TEI P5 i udostępnia 16 narzędzi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wyszukiwanie&lt;/strong&gt; dowolnego elementu, klasy, makra lub modułu po nazwie, bez rozróżniania wielkości liter i z podpowiedziami przy literówkach&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rozwiązywanie atrybutów&lt;/strong&gt; w całej hierarchii klas TEI (lokalne + dziedziczone)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rozwijanie modeli zawartości&lt;/strong&gt; w ustrukturyzowane drzewa, z rozwiązywaniem klas i makr&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sprawdzanie zagnieżdżeń&lt;/strong&gt; – bezpośrednia relacja rodzic–dziecko lub rekurencyjna osiągalność ze śledzeniem ścieżki&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Walidacja dokumentów&lt;/strong&gt; względem TEI P5: modele zawartości, atrybuty, zamknięte listy wartości, spójność odwołań i ostrzeżenia o elementach przestarzałych&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Walidacja pojedynczych elementów&lt;/strong&gt; na potrzeby przyrostowej edycji&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wczytywanie dostosowań ODD&lt;/strong&gt;, by zawęzić schemat do podzbioru właściwego dla projektu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Przeszukiwanie&lt;/strong&gt; wszystkich typów encji wyrażeniami regularnymi&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="instalacja"&gt;Instalacja&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;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Albo uruchom bezpośrednio:&lt;/p&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;uvx tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="użycie"&gt;Użycie&lt;/h2&gt;
&lt;p&gt;Dodaj do dowolnego klienta zgodnego z MCP (Claude, Cursor, Windsurf itd.):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&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;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&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;#34;tei&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&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;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;uvx&amp;#34;&lt;/span&gt;&lt;span class="p"&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;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;tei-mcp&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Kod źródłowy i dokumentację znajdziesz w
.&lt;/p&gt;</description></item><item><title>Multi-Saxon</title><link>https://clementgodbarge.com/pl/code/multi-saxon/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/pl/code/multi-saxon/</guid><description>&lt;h2 id="multi-saxon-równoległe-przetwarzanie-xslt-dla-dużych-korpusów-tei"&gt;Multi-Saxon: równoległe przetwarzanie XSLT dla dużych korpusów TEI&lt;/h2&gt;
&lt;p&gt;Multi-Saxon wypełnia istotną lukę w narzędziach do przetwarzania XML: umożliwia równoległe wykonywanie transformacji XSLT 2.0 i 3.0, z którymi LXML (popularna pythonowa biblioteka XML) sobie nie radzi. Zaprojektowany z myślą o dużych kolekcjach dokumentów XML TEI, Multi-Saxon znacząco skraca czas przetwarzania dzięki sprawnemu wykonywaniu równoległemu.&lt;/p&gt;
&lt;h2 id="główne-funkcje"&gt;Główne funkcje&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zaawansowana obsługa XSLT&lt;/strong&gt;: przetwarza transformacje XSLT 2.0 i 3.0, wykraczające poza możliwości LXML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Przetwarzanie równoległe&lt;/strong&gt;: radykalnie skraca czas transformacji dużych kolekcji dokumentów dzięki zrównolegleniu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zoptymalizowany pod TEI&lt;/strong&gt;: zaprojektowany specjalnie dla dokumentów XML Text Encoding Initiative (TEI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skalowalna wydajność&lt;/strong&gt;: sprawnie obsługuje korpusy liczące od setek do tysięcy dokumentów&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wieloplatformowość&lt;/strong&gt;: działa w różnych systemach operacyjnych i środowiskach&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="problem-który-rozwiązuje-multi-saxon"&gt;Problem, który rozwiązuje Multi-Saxon&lt;/h2&gt;
&lt;p&gt;Badacze humanistyki cyfrowej pracujący z TEI często napotykają dwie poważne trudności:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LXML (powszechnie używana pythonowa biblioteka do przetwarzania XML) obsługuje tylko XSLT 1.0, co uniemożliwia korzystanie z bardziej zaawansowanych funkcji XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;Sekwencyjne przetwarzanie dużych korpusów dokumentów TEI bywa zaporowo czasochłonne&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Multi-Saxon rozwiązuje oba problemy: wykorzystuje zaawansowane możliwości XSLT procesora Saxon i rozdziela przetwarzanie między wiele rdzeni, co daje znaczny zysk wydajności.&lt;/p&gt;
&lt;h2 id="implementacja"&gt;Implementacja&lt;/h2&gt;
&lt;p&gt;Multi-Saxon łączy Pythona z javowym procesorem Saxon, tworząc wydajny potok transformacji:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;korzysta z javowej biblioteki Saxon do niezawodnego przetwarzania XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;implementuje wieloprocesowość, by rozdzielić transformacje między dostępne rdzenie CPU&lt;/li&gt;
&lt;li&gt;sprawnie zarządza pulami procesów, by zmaksymalizować przepustowość&lt;/li&gt;
&lt;li&gt;oferuje prosty interfejs do wsadowego przetwarzania dokumentów TEI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="przykład-użycia"&gt;Przykład użycia&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;multi_saxon&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MultiSaxon&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="c1"&gt;# Initialize with your XSLT stylesheet&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;MultiSaxon&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;transform.xsl&amp;#34;&lt;/span&gt;&lt;span class="p"&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="c1"&gt;# Transform a single document&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;input.xml&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;output.xml&amp;#34;&lt;/span&gt;&lt;span class="p"&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="c1"&gt;# Transform an entire directory in parallel&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;transformer&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transform_directory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;input_dir&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;output_dir&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="znaczenie-dla-humanistyki-cyfrowej"&gt;Znaczenie dla humanistyki cyfrowej&lt;/h2&gt;
&lt;p&gt;Projektom humanistyki cyfrowej pracującym z dużymi kolekcjami dokumentów TEI Multi-Saxon umożliwia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;złożone transformacje całych korpusów, niewykonalne w LXML&lt;/li&gt;
&lt;li&gt;radykalnie krótszy czas przetwarzania (często 5–10-krotnie na systemach wielordzeniowych)&lt;/li&gt;
&lt;li&gt;bardziej wyrafinowaną analizę dzięki zaawansowanym funkcjom XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;prostszy przepływ pracy przy przetwarzaniu całych kolekcji dokumentów&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kod źródłowy i dokumentację znajdziesz w
.&lt;/p&gt;</description></item><item><title>persNamer</title><link>https://clementgodbarge.com/pl/code/persnamer/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/pl/code/persnamer/</guid><description>&lt;h2 id="persnamer-łącznik-między-tei-a-virtual-international-authority-file"&gt;persNamer: łącznik między TEI a Virtual International Authority File&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;persNamer to wyspecjalizowane narzędzie w Pythonie, które usprawnia włączanie wzorcowych danych osobowych z VIAF (Virtual International Authority File) do dokumentów TEI XML. Zamieniając identyfikatory VIAF w gotowe do użycia znakowanie TEI, persNamer znacząco ogranicza ręczną pracę przy tworzeniu ustrukturyzowanych wpisów osobowych w cyfrowych edycjach naukowych.&lt;/p&gt;
&lt;h2 id="kontrola-haseł-wzorcowych-w-tei--w-czym-trudność"&gt;Kontrola haseł wzorcowych w TEI – w czym trudność&lt;/h2&gt;
&lt;p&gt;Cyfrowe edycje naukowe często wymagają precyzyjnej identyfikacji postaci historycznych, wraz z ich znormalizowanymi nazwami i datami życia. Utrzymanie spójnej kontroli haseł wzorcowych w całym projekcie wymaga:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;zidentyfikowania osób w tekstach historycznych&lt;/li&gt;
&lt;li&gt;odnalezienia miarodajnych danych na ich temat&lt;/li&gt;
&lt;li&gt;utworzenia poprawnie sformatowanych wpisów TEI&lt;/li&gt;
&lt;li&gt;zapewnienia spójnych odwołań w całym projekcie&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Kroki te wykonuje się zazwyczaj ręcznie; są czasochłonne i podatne na niespójności.&lt;/p&gt;
&lt;h2 id="jak-działa-persnamer"&gt;Jak działa persNamer&lt;/h2&gt;
&lt;p&gt;persNamer automatyzuje ten przepływ pracy:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pobiera dane z VIAF&lt;/strong&gt;: dla podanego identyfikatora VIAF narzędzie pobiera dane RDF, korzystając z negocjacji treści HTTP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wydobywa kluczowe informacje&lt;/strong&gt;: parsuje RDF, by wyodrębnić preferowaną formę nazwy, datę urodzenia i datę śmierci&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generuje znakowanie TEI&lt;/strong&gt;: tworzy dwa niezbędne fragmenty XML:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;wpis do kartoteki haseł wzorcowych&lt;/strong&gt; (element &lt;code&gt;&amp;lt;person&amp;gt;&lt;/code&gt; z wygenerowanym &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; oraz &lt;code&gt;&amp;lt;idno type=&amp;quot;VIAF&amp;quot;&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;osobny &lt;strong&gt;znacznik adnotacji&lt;/strong&gt; (&lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; z atrybutem &lt;code&gt;ref&lt;/code&gt; wskazującym na wpis wzorcowy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ten podwójny wynik pozwala edytorom utrzymywać scentralizowaną kartotekę haseł wzorcowych, a zarazem bez trudu wstawiać znaczniki adnotacji do tekstów TEI.&lt;/p&gt;
&lt;h2 id="główne-funkcje"&gt;Główne funkcje&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Znormalizowane generowanie identyfikatorów&lt;/strong&gt;: tworzy spójne identyfikatory XML w formacie &lt;code&gt;pers-[familyname]-[givenname initial]&lt;/code&gt; (np. &lt;code&gt;pers-deteligny-c&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parsowanie RDF&lt;/strong&gt;: używa &lt;code&gt;rdflib&lt;/code&gt;, by wydobywać informacje z różnych właściwości RDF (np. &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;Interfejs wiersza poleceń&lt;/strong&gt;: proste uruchomienie z numerem VIAF jako jedynym wymaganym argumentem&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tryb szczegółowy&lt;/strong&gt;: wyświetla szczegółowe informacje o przetwarzaniu obok końcowego wyniku XML&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="przykład-użycia"&gt;Przykład użycia&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;Polecenie to zwraca:&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="zastosowania-w-humanistyce-cyfrowej"&gt;Zastosowania w humanistyce cyfrowej&lt;/h2&gt;
&lt;p&gt;persNamer przydaje się szczególnie w:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cyfrowych edycjach naukowych wymagających kontroli haseł wzorcowych&lt;/li&gt;
&lt;li&gt;projektach kodowania TEI dotyczących postaci historycznych&lt;/li&gt;
&lt;li&gt;inicjatywach danych powiązanych, łączących dokumenty z rekordami wzorcowymi&lt;/li&gt;
&lt;li&gt;zapewnianiu spójności w dużych korpusach TEI&lt;/li&gt;
&lt;li&gt;nauczaniu kontroli haseł wzorcowych na kursach humanistyki cyfrowej&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="implementacja"&gt;Implementacja&lt;/h2&gt;
&lt;p&gt;persNamer napisano w Pythonie; zależy od bibliotek:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt; do żądań HTTP&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rdflib&lt;/code&gt; do parsowania RDF&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lxml&lt;/code&gt; do obsługi XML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Kod źródłowy i dokumentację znajdziesz w
.&lt;/p&gt;</description></item></channel></rss>