<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java |</title><link>https://clementgodbarge.com/sv/tag/java/</link><atom:link href="https://clementgodbarge.com/sv/tag/java/index.xml" rel="self" type="application/rss+xml"/><description>Java</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>Java</title><link>https://clementgodbarge.com/sv/tag/java/</link></image><item><title>Multi-Saxon</title><link>https://clementgodbarge.com/sv/code/multi-saxon/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/sv/code/multi-saxon/</guid><description>&lt;h2 id="multi-saxon-parallell-xslt-bearbetning-av-stora-tei-korpusar"&gt;Multi-Saxon: parallell XSLT-bearbetning av stora TEI-korpusar&lt;/h2&gt;
&lt;p&gt;Multi-Saxon fyller en kännbar lucka bland XML-verktygen genom att möjliggöra parallell körning av XSLT 2.0- och 3.0-transformationer som LXML (ett populärt XML-bibliotek för Python) inte klarar. Multi-Saxon är utformat särskilt för stora samlingar av XML-TEI-dokument och kortar bearbetningstiden avsevärt genom effektiv parallellkörning.&lt;/p&gt;
&lt;h2 id="huvudfunktioner"&gt;Huvudfunktioner&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Avancerat XSLT-stöd&lt;/strong&gt;: bearbetar XSLT 2.0- och 3.0-transformationer bortom LXML:s förmåga&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parallell bearbetning&lt;/strong&gt;: kortar transformationstiden dramatiskt för stora dokumentsamlingar genom parallellisering&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TEI-optimerat&lt;/strong&gt;: särskilt konstruerat för XML-dokument enligt Text Encoding Initiative (TEI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Skalbar prestanda&lt;/strong&gt;: hanterar effektivt korpusar från hundratals till tusentals dokument&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plattformsoberoende&lt;/strong&gt;: fungerar i olika operativsystem och miljöer&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="problemet-multi-saxon-löser"&gt;Problemet Multi-Saxon löser&lt;/h2&gt;
&lt;p&gt;Forskare inom digital humaniora som arbetar med TEI ställs ofta inför två stora svårigheter:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LXML (ett vanligt XML-bibliotek för Python) stöder bara XSLT 1.0, vilket gör det omöjligt att använda de mer avancerade funktionerna i XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;Att bearbeta stora TEI-korpusar sekventiellt kan ta oöverkomligt lång tid&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Multi-Saxon löser båda problemen genom att utnyttja Saxons avancerade XSLT-funktioner och samtidigt fördela bearbetningen över flera processorkärnor, med betydande prestandavinster som följd.&lt;/p&gt;
&lt;h2 id="implementering"&gt;Implementering&lt;/h2&gt;
&lt;p&gt;Multi-Saxon kombinerar Python med Javas Saxon-processor i en högpresterande transformationskedja:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;använder Javas Saxon-bibliotek för robust XSLT 2.0/3.0-bearbetning&lt;/li&gt;
&lt;li&gt;använder multiprocessing för att fördela transformationerna över tillgängliga processorkärnor&lt;/li&gt;
&lt;li&gt;hanterar processorpooler effektivt för maximal genomströmning&lt;/li&gt;
&lt;li&gt;erbjuder ett enkelt gränssnitt för batchbearbetning av TEI-dokument&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="användningsexempel"&gt;Användningsexempel&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="betydelse-för-digital-humaniora"&gt;Betydelse för digital humaniora&lt;/h2&gt;
&lt;p&gt;För projekt inom digital humaniora med stora TEI-samlingar möjliggör Multi-Saxon:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;komplexa transformationer av hela korpusar som vore omöjliga med LXML&lt;/li&gt;
&lt;li&gt;dramatiskt kortare bearbetningstider (ofta 5–10 gånger snabbare på flerkärniga system)&lt;/li&gt;
&lt;li&gt;mer avancerad analys tack vare funktionerna i XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;ett enklare arbetsflöde för bearbetning av hela dokumentsamlingar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Källkod och dokumentation finns i
.&lt;/p&gt;</description></item></channel></rss>