<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>الأداء |</title><link>https://clementgodbarge.com/ar/tag/%D8%A7%D9%84%D8%A7%D8%AF%D8%A7%D8%A1/</link><atom:link href="https://clementgodbarge.com/ar/tag/%D8%A7%D9%84%D8%A7%D8%AF%D8%A7%D8%A1/index.xml" rel="self" type="application/rss+xml"/><description>الأداء</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>ar</language><lastBuildDate>Fri, 28 Mar 2025 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>الأداء</title><link>https://clementgodbarge.com/ar/tag/%D8%A7%D9%84%D8%A7%D8%AF%D8%A7%D8%A1/</link></image><item><title>Multi-Saxon</title><link>https://clementgodbarge.com/ar/code/multi-saxon/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/code/multi-saxon/</guid><description>&lt;h2 id="multi-saxon-معالجة-xslt-على-التوازي-لمدونات-tei-الكبيرة"&gt;Multi-Saxon: معالجة XSLT على التوازي لمدونات TEI الكبيرة&lt;/h2&gt;
&lt;p&gt;يسدّ Multi-Saxon ثغرة حرجة في عدّة معالجة XML: فهو يُجري على التوازي تحويلات XSLT 2.0 و3.0 التي لا تطيقها LXML (مكتبة XML الشائعة في Python). وقد صُمّم خصيصًا للمجموعات الكبيرة من وثائق XML TEI، فيختصر زمن المعالجة اختصارًا كبيرًا بفضل تنفيذ متوازٍ ناجع.&lt;/p&gt;
&lt;h2 id="أبرز-الميزات"&gt;أبرز الميزات&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;دعم XSLT المتقدم&lt;/strong&gt;: يعالج تحويلات XSLT 2.0 و3.0 التي تفوق طاقة LXML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;المعالجة المتوازية&lt;/strong&gt;: يقلّص زمن التحويل تقليصًا هائلًا في مجموعات الوثائق الكبيرة بفضل التوازي&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;مطوَّع لـTEI&lt;/strong&gt;: مبنيٌّ خصيصًا لوثائق XML الصادرة عن مبادرة ترميز النصوص (TEI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;أداء قابل للتوسع&lt;/strong&gt;: يعالج بكفاءة مدونات تتراوح بين مئات الوثائق وآلافها&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;متعدد المنصات&lt;/strong&gt;: يعمل على مختلف أنظمة التشغيل والبيئات&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="المشكلة-التي-يحلها-multi-saxon"&gt;المشكلة التي يحلّها Multi-Saxon&lt;/h2&gt;
&lt;p&gt;يصطدم باحثو الإنسانيات الرقمية العاملون بـTEI في الغالب بعقبتين كبيرتين:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;لا تدعم LXML (المكتبة الشائعة لمعالجة XML في Python) سوى XSLT 1.0، فيتعذر الإفادة من الميزات الأرقى في XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;قد تستغرق معالجة مدونات TEI الكبيرة معالجةً تسلسلية من الوقت ما لا يُحتمل&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ويعالج Multi-Saxon العقبتين معًا: إذ يستثمر قدرات Saxon المتقدمة في XSLT، ويوزّع المعالجة على أنوية عدة، فيكسب في الأداء كسبًا كبيرًا.&lt;/p&gt;
&lt;h2 id="التنفيذ"&gt;التنفيذ&lt;/h2&gt;
&lt;p&gt;يزاوج Multi-Saxon بين Python ومعالج Saxon المكتوب بلغة Java ليبني خط تحويل عالي الأداء:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;يستخدم مكتبة Saxon الخاصة بـJava لمعالجة XSLT 2.0/3.0 معالجة متينة&lt;/li&gt;
&lt;li&gt;يعتمد المعالجة المتعددة (multiprocessing) لتوزيع التحويلات على ما يتاح من أنوية المعالج&lt;/li&gt;
&lt;li&gt;يدير مجمّعات المعالجات بكفاءة تعظّم الإنتاجية&lt;/li&gt;
&lt;li&gt;يقدّم واجهة بسيطة لمعالجة وثائق TEI دفعةً واحدة&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="مثال-على-الاستخدام"&gt;مثال على الاستخدام&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="ما-يعنيه-ذلك-للإنسانيات-الرقمية"&gt;ما يعنيه ذلك للإنسانيات الرقمية&lt;/h2&gt;
&lt;p&gt;يتيح Multi-Saxon لمشاريع الإنسانيات الرقمية التي تعالج مجموعات كبيرة من وثائق TEI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;تحويلات معقدة على نطاق المدونة كلها ما كانت لتتأتى مع LXML&lt;/li&gt;
&lt;li&gt;أزمنة معالجة أقصر بكثير (غالبًا بمعامل 5 إلى 10 أضعاف على الأنظمة متعددة الأنوية)&lt;/li&gt;
&lt;li&gt;تحليلًا أرقى بفضل الميزات المتقدمة في XSLT 2.0/3.0&lt;/li&gt;
&lt;li&gt;سير عمل أبسط لمعالجة مجموعات الوثائق بأكملها&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;تجدون الشيفرة المصدرية والتوثيق في
.&lt;/p&gt;</description></item></channel></rss>