<?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%D9%86%D8%B3%D8%A7%D9%86%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B1%D9%82%D9%85%D9%8A%D8%A9/</link><atom:link href="https://clementgodbarge.com/ar/tag/%D8%A7%D9%84%D8%A7%D9%86%D8%B3%D8%A7%D9%86%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B1%D9%82%D9%85%D9%8A%D8%A9/index.xml" rel="self" type="application/rss+xml"/><description>الإنسانيات الرقمية</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>ar</language><lastBuildDate>Tue, 05 May 2026 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%D9%86%D8%B3%D8%A7%D9%86%D9%8A%D8%A7%D8%AA-%D8%A7%D9%84%D8%B1%D9%82%D9%85%D9%8A%D8%A9/</link></image><item><title>tei-mcp v0.3: ترميز TEI من غير أن يُمَسّ المصدر</title><link>https://clementgodbarge.com/ar/post/tei-mcp-span-locked/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/tei-mcp-span-locked/</guid><description>&lt;p&gt;حين
، كان المراد أن نكفّ مساعدي الذكاء الاصطناعي عن هلوسة ترميز TEI. وقد حلّ التأسيس على المخطط (schema grounding) شطرًا من المشكلة: فمع الوصول المباشر، عبر الأدوات، إلى مواصفة P5، لم يعد النموذج مضطرًّا إلى تخمين معنى عنصر أو السمات التي يقبلها، وصارت مخرجاته تجتاز التحقق.&lt;/p&gt;
&lt;p&gt;على أن للهلوسة في ترميز TEI وجهين، والمخطط لا يمسك إلا بأحدهما. فالتحقق وفق المواصفة يخبركم بأن &lt;em&gt;الترميز&lt;/em&gt; حسن التكوين، ولا يقول حرفًا عن &lt;em&gt;النص&lt;/em&gt; الذي يغلّفه ذلك الترميز. وفي النص نفسه تكمن الهلوسات الأشد ضررًا. والتركيب المقفل بالمدى، وهو أبرز ما في الإصدار v0.3، مصمم خصيصًا لدرئها.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;فهرس المحتويات&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#الهلوسة-التي-يعجز-المخطط-عن-التقاطها"&gt;الهلوسة التي يعجز المخطط عن التقاطها&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#التركيب-المقفل-بالمدى"&gt;التركيب المقفل بالمدى&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ما-هو-وما-ليس-هو"&gt;ما هو، وما ليس هو&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#لماذا-يهم-الأمر-خارج-tei-أيضا"&gt;لماذا يهم الأمر خارج TEI أيضًا&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#الحصول-على-التحديث"&gt;الحصول على التحديث&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="الهلوسة-التي-يعجز-المخطط-عن-التقاطها"&gt;الهلوسة التي يعجز المخطط عن التقاطها&lt;/h2&gt;
&lt;p&gt;اطلبوا من نموذج أن يرمّز رسالة فرنسية من القرن السادس عشر، فسيعود إليكم في الغالب بوثيقة TEI لا غبار عليها في الظاهر: الترويسة معبّأة، ووسوم &lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; في مواضعها الصحيحة، و&lt;code&gt;&amp;lt;dateline&amp;gt;&lt;/code&gt; حسن التكوين. مرّروها على &lt;code&gt;validate_document&lt;/code&gt; فتجتاز الاختبار.&lt;/p&gt;
&lt;p&gt;ثم قابلوا المتن بالمصدر.&lt;/p&gt;
&lt;p&gt;فإذا &lt;code&gt;mesme&lt;/code&gt; قد صارت &lt;code&gt;même&lt;/code&gt;، وفاصلة قد انتقلت من موضعها، و&lt;code&gt;luy&lt;/code&gt; قد حُدِّثت في صمت إلى &lt;code&gt;lui&lt;/code&gt;، وجملة عسُرت قراءتها في المخطوطة قد «صُحِّحت» إلى شيء أنظف. لم يُطلب شيء من هذه التغييرات، ولم يُنبَّه إلى شيء منها؛ فالوثيقة صحيحة وفق المخطط، وخاطئة في صمت.&lt;/p&gt;
&lt;p&gt;وفي سير العمل الأرشيفي — حيث يصير النص المرمَّز السجل الدائم الذي يعوّل عليه القراء اللاحقون وفهارس البحث والاستشهادات — هذا هو نمط الإخفاق الذي يُحسب له حساب. فالوسم المشوّه مزعج لا أكثر؛ أما الرسم المحدَّث الذي لا يفطن إليه أحد خمس سنين فتحريف.&lt;/p&gt;
&lt;h2 id="التركيب-المقفل-بالمدى"&gt;التركيب المقفل بالمدى&lt;/h2&gt;
&lt;p&gt;يأتي الإصدار الجديد (v0.3) بآلية لمنع الهلوسة تستهدف نمط الإخفاق هذا بعينه. والغاية من التصميم أن تصير هلوسة نص المتن مستحيلة بحكم البناء، لا مستبعدة فحسب.&lt;/p&gt;
&lt;p&gt;والفكرة بسيطة: &lt;strong&gt;النموذج لا يكتب نص المتن قط&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;وإنما يجري العمل على النحو الآتي:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;يستدعي النموذج &lt;code&gt;get_source(&amp;quot;letter_001&amp;quot;)&lt;/code&gt; فيتلقى النص المصدري الخام سلسلةً نصية غير قابلة للتغيير.&lt;/li&gt;
&lt;li&gt;يستدعي لكل وسم يريد تطبيقه &lt;code&gt;tag_span(&amp;quot;letter_001&amp;quot;, start, end, element_path, attrs)&lt;/code&gt; — فيسجّل عنصر TEI على مدى من المحارف فوق المصدر.&lt;/li&gt;
&lt;li&gt;فإذا فرغ استدعى &lt;code&gt;compose(&amp;quot;letter_001&amp;quot;)&lt;/code&gt;، فيُدرج الخادم الوسوم المسجّلة في تضاعيف النص الخام الأصلي، ويصيّر الـTEI النهائي، ثم يتحقق &lt;em&gt;بايتًا بايتًا&lt;/em&gt; من أن المحتوى النصي المسطّح للوثيقة المصيَّرة يساوي المصدر.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;فإن تطابقت البايتات عادت الوثيقة؛ وإن لم تتطابق — إن اقتضت وسوم النموذج على نحو ما متنًا يخالف المصدر ولو بمحرف واحد — رفع &lt;code&gt;compose()&lt;/code&gt; استثناءً بدل أن يعيد وثيقة فاسدة.&lt;/p&gt;
&lt;p&gt;ليس في سير العمل هذا مسار واحد يُخرج فيه النموذج وثيقة TEI يخالف متنها المصدر. فالثابت (invariant) ميكانيكي لا سلوكي: لستم مطالبين بأن تثقوا في أن النموذج لن يهلوس، بل بأن تثقوا في فحص &lt;code&gt;==&lt;/code&gt; بين سلسلتي بايتات.&lt;/p&gt;
&lt;h2 id="ما-هو-وما-ليس-هو"&gt;ما هو، وما ليس هو&lt;/h2&gt;
&lt;p&gt;التركيب المقفل بالمدى &lt;strong&gt;مكمّل&lt;/strong&gt; للتأسيس على المخطط، لا بديل منه. فأدوات التأسيس على المخطط (&lt;code&gt;validate_document&lt;/code&gt; و&lt;code&gt;lookup_element&lt;/code&gt; و&lt;code&gt;valid_children&lt;/code&gt; وسائر الأدوات الست عشرة الأصلية) تعين النموذج على إخراج TEI &lt;em&gt;صحيح&lt;/em&gt;؛ أما التركيب المقفل بالمدى فيضمن أن نص المتن داخل ذلك الـTEI &lt;em&gt;أمين&lt;/em&gt; للمصدر. وسير عمل الترميز الصالح للنشر لا بد أن يستوفي المحورين معًا، وقد صار كلاهما اليوم في عهدة خادم واحد.&lt;/p&gt;
&lt;p&gt;ثم إنه ليس عصًا سحرية تحل كل شيء. فـ&lt;code&gt;compose()&lt;/code&gt; لا يتحقق بعدُ من أن الوسوم المسجّلة جائزة وفق تخصيص ODD المحمَّل — وذلك عمل لاحق. والوسوم المسجّلة تقيم في ذاكرة العملية ولا تصمد بعد إعادة التشغيل. ولا بد أن تكون الملفات المصدرية مقروءة من حيث يعمل الخادم. وكل ذلك قابل للمعالجة، وليس فيه ما يقوّض الثابت الجوهري.&lt;/p&gt;
&lt;h2 id="لماذا-يهم-الأمر-خارج-tei-أيضا"&gt;لماذا يهم الأمر خارج TEI أيضًا&lt;/h2&gt;
&lt;p&gt;هذا النمط قابل للتعميم. فكلما طُلب من نموذج أن يعلّق على نص أو يحوّله أو يغلّفه — وكانت سلامة النص الأصلي أهم من براعة النموذج في «تحسينه» — صلح الحل نفسه: لا تسألوا النموذج أن يعيد كتابة النص، بل سلوه تعليمات فوق النص، ودعوا مركّبًا حتميًّا يطبّقها في ظل ثابت المساواة.&lt;/p&gt;
&lt;p&gt;وفي الطبعات الرقمية على وجه الخصوص، يغيّر هذا حدود ما يمكن أن يُعهد به إلى نموذج بضمير مرتاح. فيغدو الترميز بغتةً مهمة تُفوَّض من غير أن تضطروا إلى مقابلة كل مخرج بالمصدر بأيديكم: تسلك الآلة الطريق الممل، ويراجع المحقّق الترميز لا الرسم.&lt;/p&gt;
&lt;h2 id="الحصول-على-التحديث"&gt;الحصول على التحديث&lt;/h2&gt;
&lt;p&gt;إن كان tei-mcp مثبتًا لديكم من قبل:&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@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;أو تثبيتًا من جديد:&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;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ولاستعمال التركيب المقفل بالمدى، وجّهوا الخادم إلى مجلد يضم ملفات النصوص المصدرية الخام:&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;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;TEI_MCP_SPAN_SOURCE_ROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/path/to/sources
&lt;/span&gt;&lt;/span&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;p&gt;ويصير جذع اسم كل ملف معرّفًا لوثيقته (&lt;code&gt;letter_001.txt&lt;/code&gt; → &lt;code&gt;letter_001&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;الشيفرة المصدرية والتوثيق الكامل وملاحظات التصميم الخاصة بالثابت:
&lt;/p&gt;</description></item><item><title>طبعة رقمية من طراز آخر</title><link>https://clementgodbarge.com/ar/post/cavriana-edition/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/cavriana-edition/</guid><description>&lt;p&gt;أكثر المصادر الأولية لا يرى النور أبدًا. والنموذج الذي نعوّل عليه لتدارك هذا النقص، أعني الطبعات الرقمية الممولة بالمنح، أغلى وأشد مركزيةً وأوهى من أن يصلح على نطاق واسع. وقد نشرت لتوّي
أبيّن فيها لماذا أبني الطبعة النقدية لرسائل كافريانا (Cavriana) على نحو مختلف: مصادر أولية مرقمنة تنمو نموًّا عضويًّا، ببنية تحتية لا تكاد تُذكر، وصيانة مؤتمتة، وباب مفتوح للتعاون، وكلفة من الزهد بحيث تستغني عن المنح كليًّا. إنها مرافعة عن إنسانيات رقمية تمضي في طريقها سواء أساندتها المؤسسات أم خذلتها.&lt;/p&gt;</description></item><item><title>tei-mcp</title><link>https://clementgodbarge.com/ar/code/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/code/tei-mcp/</guid><description>&lt;h2 id="tei-mcp-مواصفة-tei-p5-في-متناول-وكلاء-الذكاء-الاصطناعي"&gt;tei-mcp: مواصفة TEI P5 في متناول وكلاء الذكاء الاصطناعي&lt;/h2&gt;
&lt;p&gt;tei-mcp خادم
مفتوح المصدر يفتح لمساعدي البرمجة بالذكاء الاصطناعي بابًا مباشرًا إلى مواصفة
. فبدل أن يتكل النموذج على ما حفظه من بيانات التدريب — وكثيرًا ما يُخرج ترميزًا معقول المظهر باطل الجوهر — يستطيع أن يستفتي المواصفة نفسها في الحين.&lt;/p&gt;
&lt;h2 id="الميزات"&gt;الميزات&lt;/h2&gt;
&lt;p&gt;يحلّل الخادم ملف ODD الخاص بـTEI P5 ويتيح 16 أداة:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;البحث&lt;/strong&gt; عن أي عنصر أو صنف أو ماكرو أو وحدة (module) بالاسم، مع مطابقة لا تفرّق بين حالتي الأحرف واقتراحات لتصويب الأخطاء الإملائية&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;حل السمات&lt;/strong&gt; عبر التسلسل الهرمي الكامل لأصناف 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;li&gt;&lt;strong&gt;التحقق من صحة الوثائق&lt;/strong&gt; وفق TEI P5: نماذج المحتوى، والسمات، وقوائم القيم المغلقة، وسلامة الإحالات، وتحذيرات الإهمال (deprecation)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;التحقق من صحة عنصر مفرد&lt;/strong&gt; لمن يحرّر خطوةً خطوة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تحميل تخصيصات ODD&lt;/strong&gt; لحصر المخطط في مجموعة فرعية خاصة بمشروع بعينه&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;البحث&lt;/strong&gt; في أنواع الكيانات كافة بالتعابير النمطية&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-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;أو شغّلوه مباشرةً بـ:&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="الاستخدام"&gt;الاستخدام&lt;/h2&gt;
&lt;p&gt;أضيفوه إلى أي عميل متوافق مع MCP (Claude وCursor وWindsurf وغيرها):&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;تجدون الشيفرة المصدرية والتوثيق في
.&lt;/p&gt;</description></item><item><title>tei-mcp: مواصفة TEI P5 في متناول وكلاء الذكاء الاصطناعي</title><link>https://clementgodbarge.com/ar/post/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/tei-mcp/</guid><description>&lt;p&gt;من جرّب يومًا أن يكتب TEI XML بمساعد برمجة يعمل بالذكاء الاصطناعي، فلا بد أنه لاحظ كثرة عثراته: عناصر تظهر في غير موضعها، وسمات تُخترع اختراعًا، وقواعد تداخل تُطرح جانبًا. فللنموذج فكرة تقريبية عن هيئة TEI، أما معرفةٌ يُعتدّ بها بالمواصفة فلا.&lt;/p&gt;
&lt;p&gt;وهذا ما يعالجه tei-mcp: يفتح لوكلاء الذكاء الاصطناعي بابًا مباشرًا، عبر الأدوات، إلى إرشادات TEI P5.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;فهرس المحتويات&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#ما-mcp"&gt;ما MCP؟&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ما-الذي-يصنعه-tei-mcp"&gt;ما الذي يصنعه tei-mcp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#لماذا-يهم-هذا-الأمر"&gt;لماذا يهم هذا الأمر&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#للبدء"&gt;للبدء&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h2 id="ما-mcp"&gt;ما MCP؟&lt;/h2&gt;
&lt;p&gt;
، أو MCP اختصارًا، معيار مفتوح يتيح لتطبيقات الذكاء الاصطناعي أن تتصل بمصادر بيانات وأدوات خارجية. تصوّروه منفذ USB للذكاء الاصطناعي: بروتوكول واحد يوصل أي عميل متوافق — Claude وCursor وWindsurf وسواها — بخدمات متخصصة.&lt;/p&gt;
&lt;p&gt;ويتيح خادم MCP &lt;em&gt;أدوات&lt;/em&gt; يستدعيها الذكاء الاصطناعي في أثناء المحادثة؛ فبدل أن يتكل النموذج على ما حفظه من بيانات التدريب، يستفتي مصدرًا حيًّا موثوقًا.&lt;/p&gt;
&lt;h2 id="ما-الذي-يصنعه-tei-mcp"&gt;ما الذي يصنعه tei-mcp&lt;/h2&gt;
&lt;p&gt;يحلّل tei-mcp مواصفة TEI P5 بصيغة ODD ويتيح 16 أداة تجيب عن أكثر ما يطرحه المحقّق أو المرمّز من أسئلة:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ما هذا العنصر؟&lt;/strong&gt; ابحثوا عن أي عنصر أو صنف أو ماكرو أو وحدة (module) بالاسم، بمطابقة لا تفرّق بين حالتي الأحرف، مع اقتراحات لتصويب الأخطاء الإملائية.&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;li&gt;&lt;strong&gt;أيجوز وضع هذا العنصر هنا؟&lt;/strong&gt; تحققوا من تداخل الأصل والفرع، أو تتبّعوا إمكانية البلوغ عبر التسلسل الهرمي الكامل للعناصر.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;هل وثيقتي صحيحة؟&lt;/strong&gt; تحققوا من ملف TEI XML وفق المواصفة: نماذج المحتوى، وقيم السمات، وقوائم القيم المغلقة، وسلامة الإحالات، وتحذيرات الإهمال (deprecation).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;وماذا عن مخطط مشروعي؟&lt;/strong&gt; حمّلوا ملف تخصيص ODD ليُحصر كل ما سبق في المجموعة الفرعية من TEI الخاصة بمشروعكم.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="لماذا-يهم-هذا-الأمر"&gt;لماذا يهم هذا الأمر&lt;/h2&gt;
&lt;p&gt;الترميز بـTEI لا يستغني عن الرجوع الدائم إلى الإرشادات. فالمرمّز المتمرس يستبطن الأنماط الأكثر شيوعًا، لكنه يظل محتاجًا إلى مراجعة المواصفة عند العناصر الأقل ألفة أو نماذج المحتوى المعقدة. أما مساعدو الذكاء الاصطناعي، وليس لديهم شيء من هذه المعرفة المستبطنة، فالداء عندهم أشد: يهلوسون ترميزًا معقول المظهر باطل الجوهر.&lt;/p&gt;
&lt;p&gt;مع tei-mcp لا يعود النموذج بحاجة إلى التخمين؛ إذ يستطيع أن يلتمس الجواب في المواصفة قبل أن يخطّ قوسًا زاويًّا واحدًا. والحصيلة ترميز مطابق لـTEI P5 — أو لتخصيص ODD الخاص بمشروعكم.&lt;/p&gt;
&lt;h2 id="للبدء"&gt;للبدء&lt;/h2&gt;
&lt;p&gt;ثبّتوه من PyPI:&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;pip install tei-mcp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ثم أضيفوه إلى إعدادات عميل MCP لديكم:&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;ينزّل الخادم مواصفة TEI عند أول تشغيل، ويعمل مع أي عميل متوافق مع MCP.&lt;/p&gt;
&lt;p&gt;الشيفرة المصدرية والتوثيق الكامل:
&lt;/p&gt;</description></item><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><item><title>persNamer</title><link>https://clementgodbarge.com/ar/code/persnamer/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/code/persnamer/</guid><description>&lt;h2 id="persnamer-وصل-tei-بالملف-الاستنادي-الدولي-الافتراضي"&gt;persNamer: وصل TEI بالملف الاستنادي الدولي الافتراضي&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;persNamer أداة متخصصة بلغة Python تيسّر إدماج بيانات الأشخاص الاستنادية من VIAF (الملف الاستنادي الدولي الافتراضي) في وثائق TEI XML. فهي تحوّل معرّفات VIAF إلى ترميز TEI جاهز للاستعمال، وتوفّر بذلك على المحقّق قسطًا كبيرًا من العمل اليدوي الذي يقتضيه إنشاء مداخل أشخاص مهيكلة في الطبعات العلمية الرقمية.&lt;/p&gt;
&lt;h2 id="معضلة-ضبط-الاستناد-في-tei"&gt;معضلة ضبط الاستناد في TEI&lt;/h2&gt;
&lt;p&gt;كثيرًا ما تقتضي الطبعات العلمية الرقمية تعيين الشخصيات التاريخية تعيينًا دقيقًا، بأسمائها المعيارية وتواريخ حياتها. والمحافظة على ضبط استنادي متسق في مشروع بأكمله تستلزم:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;تعيين الأشخاص في النصوص التاريخية&lt;/li&gt;
&lt;li&gt;العثور على بيانات استنادية عنهم&lt;/li&gt;
&lt;li&gt;إنشاء مداخل TEI منسّقة تنسيقًا صحيحًا&lt;/li&gt;
&lt;li&gt;ضمان اتساق الإحالات في المشروع كله&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;وهي خطوات تُنجز عادةً باليد، فتلتهم الوقت وتعرّض العمل للتضارب.&lt;/p&gt;
&lt;h2 id="كيف-يعمل-persnamer"&gt;كيف يعمل persNamer&lt;/h2&gt;
&lt;p&gt;يؤتمت persNamer سير العمل هذا على النحو الآتي:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;جلب بيانات VIAF&lt;/strong&gt;: انطلاقًا من معرّف VIAF، تسترجع الأداة بيانات RDF عبر تفاوض المحتوى في HTTP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;استخلاص المعلومات الأساسية&lt;/strong&gt;: تحلّل RDF لتستخرج الاسم المفضّل وتاريخ الميلاد وتاريخ الوفاة&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;توليد ترميز TEI&lt;/strong&gt;: تنشئ مقطعي XML أساسيين:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;مدخلًا في الملف الاستنادي&lt;/strong&gt; (عنصر &lt;code&gt;&amp;lt;person&amp;gt;&lt;/code&gt; مع &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;، و&lt;code&gt;&amp;lt;idno type=&amp;quot;VIAF&amp;quot;&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;وسم تعليق&lt;/strong&gt; منفصلًا (&lt;code&gt;&amp;lt;persName&amp;gt;&lt;/code&gt; مع سمة &lt;code&gt;ref&lt;/code&gt; تحيل إلى المدخل الاستنادي)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;وبهذا المخرج المزدوج يحتفظ المحقّق بملف استنادي مركزي، ويدرج وسوم التعليق في نصوص TEI بلا عناء.&lt;/p&gt;
&lt;h2 id="أبرز-الميزات"&gt;أبرز الميزات&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;توليد معرّفات معيارية&lt;/strong&gt;: ينشئ معرّفات XML متسقة على الصيغة &lt;code&gt;pers-[familyname]-[givenname initial]&lt;/code&gt; (مثل &lt;code&gt;pers-deteligny-c&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;تحليل RDF&lt;/strong&gt;: يستخدم &lt;code&gt;rdflib&lt;/code&gt; لاستخراج المعلومات من خصائص RDF المختلفة (مثل &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;واجهة سطر الأوامر&lt;/strong&gt;: يُشغَّل ببساطة برقم VIAF معاملًا وحيدًا لازمًا&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;مخرجات مفصّلة&lt;/strong&gt;: يعرض تفاصيل المعالجة إلى جانب مخرج XML النهائي&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-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;فيُخرج هذا الأمر:&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="التطبيق-في-الإنسانيات-الرقمية"&gt;التطبيق في الإنسانيات الرقمية&lt;/h2&gt;
&lt;p&gt;يجدي persNamer بوجه خاص في:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;الطبعات العلمية الرقمية التي تحتاج إلى ضبط استنادي&lt;/li&gt;
&lt;li&gt;مشاريع الترميز بـTEI التي تتناول شخصيات تاريخية&lt;/li&gt;
&lt;li&gt;مبادرات البيانات المترابطة التي تصل الوثائق بالتسجيلات الاستنادية&lt;/li&gt;
&lt;li&gt;ضمان الاتساق في مدونات TEI الكبيرة&lt;/li&gt;
&lt;li&gt;تدريس مفاهيم ضبط الاستناد في مقررات الإنسانيات الرقمية&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="التنفيذ"&gt;التنفيذ&lt;/h2&gt;
&lt;p&gt;persNamer مكتوب بلغة Python ويعتمد على:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;requests&lt;/code&gt; لطلبات HTTP&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rdflib&lt;/code&gt; لتحليل RDF&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lxml&lt;/code&gt; للتعامل مع XML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;تجدون الشيفرة المصدرية والتوثيق في
.&lt;/p&gt;</description></item><item><title>تحليل الببليوغرافيا على نطاق واسع بالنماذج اللغوية المدرَّبة مسبقًا</title><link>https://clementgodbarge.com/ar/post/bibliography/</link><pubDate>Thu, 07 Jul 2022 19:04:14 +0200</pubDate><guid>https://clementgodbarge.com/ar/post/bibliography/</guid><description>&lt;p&gt;الأتمتة مفتاح خفض الكلفة في مشاريع الإنسانيات الرقمية. فإلى يومنا هذا، ما زالت المهام المتكررة المضنية التي يقتضيها العمل التحريري في الأوساط الأكاديمية إما تُنجز بكلفة باهظة على أيدي باحثين مثقلين بالأعباء، وإما «تُوكل» إلى الطلاب. وأذهب في هذه
إلى أن أكثر هذه المهام التي لا يُشكر عليها أحد لا &lt;em&gt;يمكن&lt;/em&gt; أتمتتها فحسب، بل &lt;em&gt;ينبغي&lt;/em&gt; أن تُؤتمت. فأتمتة مهام التحقيق تخفض الكلفة الإجمالية لمشاريع الإنسانيات الرقمية، والأهم أنها تمكّن الباحثين في المناطق المحدودة الدخل من نشر وثائق نفيسة في وقت قصير وبثمن في المتناول.&lt;/p&gt;
&lt;p&gt;وقد بيّنت في
، على سبيل المثال، كيف تستطيع النماذج اللغوية المدرَّبة مسبقًا أن تنهض بمعظم عمل الترميز بلغة XML في طبعة رقمية.&lt;/p&gt;
&lt;p&gt;وأعرض في هذه التدوينة مثالًا ثانيًا، من الببليوغرافيا هذه المرة.&lt;/p&gt;
&lt;h2 id="المشكلة"&gt;المشكلة&lt;/h2&gt;
&lt;p&gt;إنشاء قاعدة بيانات ببليوغرافية من المراجع الواردة في مقال علمي أمر يسير في ذاته: يكفي بحث سريع في فهرس كـ
وتنزيل المرجع بصيغة معينة، أو استيراده تلقائيًّا من قاعدة بيانات محلية. وهذا يجدي مع مقال أو مقالين.
فإذا تجاوزت المراجع عددًا معينًا، انقلبت المهمة عملًا منفّرًا يلتهم الوقت. وللتغلب على ذلك يمكن اللجوء إلى خوارزميات التحليل من قبيل
؛ غير أن هذه الخوارزميات يعسر تشغيلها على نطاق واسع.
فحين استعنت بـanystyle لتحويل ما يزيد على 150 دراسة علمية مضمومة إلى
، تراكمت الأخطاء إلى حد لا يُضبط. فقد أخفق في التعرف على كثير من مصادرنا، فحسب العناوين المطوّلة لكتب مطلع العصر الحديث شيئًا آخر، وعجز عن التعرف على الوثائق الأقل شيوعًا، من صفحات ويب بعينها ومقاطع فيديو على الشبكة وما إليها. فالمحلّلات تؤدي عملها ما دام المؤلف يتقيد تقيّدًا حرفيًّا بقواعد أسلوب معروف كشيكاغو أو تورابيان أو MLA؛ فإذا حاد عن المعيار قيد أنملة تناسلت الأخطاء.&lt;/p&gt;
&lt;h2 id="الحل"&gt;الحل&lt;/h2&gt;
&lt;p&gt;وهنا تأتي
&lt;mark&gt;النماذج اللغوية المدرَّبة مسبقًا&lt;/mark&gt;
بالعون، إذ
&lt;mark&gt;تستوعب في لمح البصر أنماط أي أسلوب ببليوغرافي&lt;/mark&gt;
، حتى ما ابتدعتموه بأنفسكم، ولا تحتاج إلا إلى بضعة أمثلة لتحوّل كميات كبيرة من الببليوغرافيا المنسّقة تحويلًا سليمًا إلى
.&lt;/p&gt;
&lt;p&gt;كان من حسن حظي في مطلع 2021 أن أُتيح لي الوصول المبكر إلى
من OpenAI. وCodex نموذج يترجم اللغة الطبيعية إلى شيفرة، والشيفرة إلى لغة طبيعية. وتزعم OpenAI أنه يتقن ما يزيد على اثنتي عشرة لغة برمجة؛ ومع أن واجهته البرمجية لا تزال، وأنا أكتب هذه السطور، في طور تجريبي، فهي تشغّل من الآن تطبيقات ذائعة مثل
من GitHub.&lt;/p&gt;
&lt;p&gt;وبعد أن جرّبت هذه الواجهة حينًا، تبيّن لي أنها تصلح أيضًا لشيفرة أبسط مثل &lt;code&gt;BibTeX&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;والحق أن أربعة أمثلة في موجّه الإدخال كفتني لتعمل الطريقة عملًا يُعوَّل عليه.&lt;/p&gt;
&lt;h3 id="موجه-الإدخال"&gt;موجّه الإدخال&lt;/h3&gt;
&lt;p&gt;References:
Bayle, Ariane. “Patients exemplaires: la correspondance médicale de Fioravanti.” In &lt;em&gt;Vulgariser la médecine. Du style médical en France et en Italie&lt;/em&gt;, edited by Andrea Carlino and Michel Jeanneret, 181–212. Geneva: Droz, 2009.&lt;/p&gt;
&lt;p&gt;Berns, Andrew D. &lt;em&gt;The Bible and Natural Philosophy in Renaissance Italy: Jewish and Christian Physicians in Search of Truth&lt;/em&gt;. Cambridge: Cambridge University Press, 2015.&lt;/p&gt;
&lt;p&gt;Gabler, Hans Walter. “Theorizing the Digital Scholarly Edition.” &lt;em&gt;Literature Compass&lt;/em&gt; 7, no. 2 (2010): 43–56.
.&lt;/p&gt;
&lt;p&gt;Findlen, Paula. &lt;em&gt;Possessing Nature: Museums, Collecting, and Scientific Culture in Early Modern Italy&lt;/em&gt;. Berkeley: University of California Press, 1994.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-BibTeX" data-lang="BibTeX"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@incollection&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;bayle2009&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="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Bayle, Ariane}&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="na"&gt;booktitle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Vulgariser la médecine. Du style médical en France et en Italie}&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="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Patients exemplaires: la correspondance médicale de Fioravanti}&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="na"&gt;editor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Carlino, Andrea and Michel Jeanneret}&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="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2009}&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="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Geneva}&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="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Droz}&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="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{french}&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="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;berns2015&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="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{The Bible and Natural Philosophy in Renaissance Italy: Jewish and Christian Physicians in Search of Truth}&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="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Berns, Andrew D.}&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="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Cambridge}&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="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Cambridge University Press}&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="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&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="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2015}&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="nc"&gt;@article&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;gabler2010&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="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Gabler, Hans Walter}&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="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Theorizing the Digital Scholarly Edition}&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="na"&gt;journal&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Literature Compass}&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="na"&gt;volume&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{7}&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="na"&gt;number&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2}&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="na"&gt;pages&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{43-56}&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="na"&gt;doi&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{10.1111/j.1741-4113.2009.00675.x}&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="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&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="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2010}&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="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;findlen1994&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="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Possessing Nature: Museums, Collecting, and Scientific Culture in Early Modern Italy}&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="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Findlen, Paula}&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="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Berkeley}&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="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{University of California Press}&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="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&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="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{1994}&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;h3 id="النتائج"&gt;النتائج&lt;/h3&gt;
&lt;p&gt;
&lt;mark&gt;مذهلة: ما يزيد على 2000 مرجع ببليوغرافي حُوّلت في غضون أيام.&lt;/mark&gt;
ولم تقتصر هذه المقاربة على إعادة إنتاج النمط المعروض في موجّه الإدخال بدقة، بل أضافت على الوجه الصحيح أنواعًا من المداخل والحقول لم ترد في الموجّه أصلًا. وبعبارة أخرى: &lt;code&gt;GPT-3&lt;/code&gt; يتكلم &lt;code&gt;BibTeX&lt;/code&gt; بطلاقة تامة. ولعل الأدعى إلى العجب، من نموذج دُرّب في الأساس على الإنجليزية، أنه تعرّف على اللغات كلها (الروسية والفرنسية والإيطالية واللاتينية واليونانية والألمانية والإسبانية وغيرها) وأضاف في كل مرة حقل &lt;code&gt;langid&lt;/code&gt; الصحيح.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;ملاحظة&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;ما زال حجم الإدخال والإخراج في GPT-3 محدودًا، إذ لا يعالج أكثر من 2048 وحدة لغوية (token). فمتى رُفع هذا القيد، لن تستغرق المهمة نفسها على الأرجح أكثر من ساعة.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;ومما لم يكن في الحسبان أن GPT-3 أضاف معلومات لم ترد في المراجع الأصلية.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Baillot, Anne, and Anna Busch. “Editing for Man and Machine.” In &lt;em&gt;Users of Scholarly Editions: Editorial Anticipations of Reading, Studying and Consulting&lt;/em&gt;, Vol. 13. Variants (Journal of the European Society for Textual Scholarship). Leicester, 2015.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ففي هذا المرجع، مثلًا، أضاف GPT-3 الرابط الدائم إلى المستودع المفتوح (
) الذي تُقرأ فيه الورقة، مع الحقلين المخصوصين &lt;code&gt;HAL_ID&lt;/code&gt; و&lt;code&gt;HAL_VERSION&lt;/code&gt; اللذين استحدثهما مستودع HAL:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-BibTeX" data-lang="BibTeX"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@inproceedings&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;baillot2015&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="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Editing for Man and Machine}&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="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Baillot, Anne and Busch, Anna}&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="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;2015&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="na"&gt;booktitle&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Users of Scholarly Editions: Editorial Anticipations of Reading, Studying and Consulting}&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="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Leicester}&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="na"&gt;series&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Variants (Journal of the European Society for Textual Scholarship)}&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="na"&gt;volume&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;13&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="na"&gt;editor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Bruhn, Siglinde and Schreiber, Manfred}&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="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{english}&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="na"&gt;hal_id&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{halshs-01233380}&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="na"&gt;hal_version&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{v1}&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;وتدل هذه الإضافات على أن
&lt;mark&gt;GPT-3 لا يكتفي بتحليل المرجع الببليوغرافي، بل يتمّمه بما تعلّمه من قبل.&lt;/mark&gt;
ولذلك يجدر أن نرى هل يسلك المسلك نفسه مع مراجع تالية لتاريخ تدريبه&amp;hellip;&lt;/p&gt;
&lt;h2 id="الحدود"&gt;الحدود&lt;/h2&gt;
&lt;p&gt;على أن GPT-3 ليس منزّهًا عن الخطأ، ولا غنى له عن إشراف بشري. فمن عيوبه المعروفة
: يخترع أحيانًا ما لا وجود له، ويبني افتراضات بعيدة عن الاحتمال.&lt;/p&gt;
&lt;p&gt;وقد تجلّت نوبات الاضطراب عند GPT-3 في تجربتي حين غيّر من تلقاء نفسه اسم عائلة أحد المؤلفين من «Ruscelli» إلى «Ruscello». وليس هذا خطأ بالمعنى الدقيق، فأسماء العائلات الإيطالية في مطلع العصر الحديث كانت تُستعمل بالجمع أو بالمفرد على السواء. غير أن العرف اليوم أن يُترك الاسم على حاله، جمعًا كان أم مفردًا: فلا أحد يسمّي ماكيافيلي «ماكيافيلو»، كما يُنتظر منا أن نكتب Rossello لا Rosselli. فهل تجاهل GPT-3 هذا العرف لقصور في وعيه الزمني؟ أم قاس على الأسماء المجاورة، وقد تصادف أنها كلها في هذا الجزء من الببليوغرافيا بصيغة المفرد (Bariletto, Cesano, Rossello)؟
من يدري.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-Bibtex" data-lang="Bibtex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;rossello1565&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="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Della summa de’ secreti universali}&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="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Rossello, Timoteo}&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="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Venice}&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="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Giovanni Bariletto}&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="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{italian}&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="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{1565}&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="nc"&gt;@book&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;ruscello1559&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="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{La seconda parte de’ secreti del Reverendo Donno Alessio Piemontese}&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="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Ruscello, Girolamo}&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="na"&gt;address&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Pesaro}&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="na"&gt;publisher&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Bartolomeo Cesano}&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="na"&gt;langid&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{italian}&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="na"&gt;date&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{1559}&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;h2 id="خاتمة"&gt;خاتمة&lt;/h2&gt;
&lt;p&gt;الدراسات التي يزيد عددها على 150
، وقد كُتبت على مدى أربع سنوات من التعاون الحثيث، لا تقدّم معلومات جوهرية عن المخطوطة التي حققناها وترجمناها فحسب، بل تحمل في طياتها أيضًا مادة ببليوغرافية نفيسة.&lt;/p&gt;
&lt;p&gt;وجمع هذه المراجع في قاعدة بيانات يمكّن المحققين من تبديل التنسيق الببليوغرافي في غمضة عين، فيمنحهم حرية أوسع في عرض هذه المعلومات كما يشاؤون. كما تُطلعنا هذه القاعدة على جوانب قيّمة من الطبعة ومن المشروع الذي أتاحها، فتفتح أمام الباحثين آفاقًا تحليلية جديدة. وقاعدة كهذه تُنجز بدقة عالية وفي مدة قياسية.&lt;/p&gt;
&lt;p&gt;وقد تتسرب بعض الأخطاء، لا شك، ولا سيما بسبب نزوع GPT-3 إلى الهلوسة؛ غير أن الأجيال المقبلة من النماذج اللغوية المدرَّبة مسبقًا ستخفف من وطأة هذا الداء.&lt;/p&gt;</description></item><item><title>Avviso | نشر الأخبار التي صنعت حداثتنا (1537—1743)</title><link>https://clementgodbarge.com/ar/project/map/</link><pubDate>Sun, 12 Dec 2021 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/project/map/</guid><description>&lt;p&gt;يرمي مشروع &lt;em&gt;Avviso&lt;/em&gt; في المقام الأول إلى رقمنة النشرات الإخبارية المخطوطة من مطلع العصر الحديث، المعروفة باسم &lt;em&gt;avvisi&lt;/em&gt;، وحفظها وفهرستها وتحقيقها ووضعها في سياقها التاريخي وإتاحتها للجمهور؛ وهي خمسة وثلاثون ألف نشرة (35000) كانت من مقتنيات آل ميديتشي، وتُحفظ اليوم في أرشيف الدولة بفلورنسا.
فهرسة نحو 35000 &lt;em&gt;avviso&lt;/em&gt;، أي نشرة إخبارية مخطوطة من مطلع العصر الحديث، ورقمنتها وإتاحتها عبر منصة الأرشيف التفاعلي لآل ميديتشي (Medici Interactive Archive) التابعة لمشروع أرشيف آل ميديتشي.&lt;/p&gt;</description></item><item><title>التحقيق الفعّال</title><link>https://clementgodbarge.com/ar/project/dce/</link><pubDate>Sun, 12 Dec 2021 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/project/dce/</guid><description>&lt;p&gt;الطبعات النقدية الرقمية باهظة الثمن. فالنسخ والترجمة والتعليق أعمال لا ينهض بها إلا فريق عالي التأهيل، وتستغرق آلاف الساعات، وتستلزم تمويلًا ضخمًا يضاف إليه دعم مؤسسي طويل النفس.&lt;/p&gt;
&lt;p&gt;ولا شك أن ظفر المشاريع البارزة في الإنسانيات الرقمية بما تحتاج إليه من أموال طائلة نعمة من وجه ما.&lt;/p&gt;
&lt;p&gt;بيد أن التعويل على سخاء المؤسسات الثرية والجامعات والهيئات الحكومية، والحاجة الممتدة إلى موارد بشرية كبيرة، ليسا نموذجًا اقتصاديًّا يُبنى عليه المستقبل. وإذا كان عدد الباحثين القادرين على إخراج طبعات رقمية طموحة للمصادر الأولية في ازدياد، فإن هذه الممارسة تبقى امتيازًا لحفنة من البلدان الغنية، يزيدها رسوخًا في هيمنتها الثقافية.&lt;/p&gt;
&lt;p&gt;ولكي تصبح الوثائق التاريخية من أرجاء العالم كافة في متناول جمهور أوسع،
&lt;mark&gt;لا بد أن تهبط كلفة الطبعات النقدية الرقمية بمراتب عدة&lt;/mark&gt;
.&lt;/p&gt;
&lt;p&gt;أقيّم في هذه السلسلة من التدوينات المقاربات واللبنات التقنية التي يستطيع الباحثون في أي بقعة من العالم أن يستعينوا بها لنشر المصادر الأولية في وقت أقصر وبأدنى النفقات.&lt;/p&gt;
&lt;p&gt;وسأتوقف بوجه خاص عند تقنيات من قبيل التعلم الآلي وسلسلة الكتل (blockchain) والتخزين اللامركزي.&lt;/p&gt;</description></item><item><title>أتمتة الترميز في الطبعات العلمية الرقمية</title><link>https://clementgodbarge.com/ar/post/gpt3/</link><pubDate>Mon, 22 Nov 2021 18:15:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/gpt3/</guid><description>&lt;h1 id="مقدمة"&gt;مقدمة&lt;/h1&gt;
&lt;p&gt;كيف نُخرج طبعات علمية رقمية من غير أن نستنزف الخزائن؟ هذه التدوينة أولى سلسلةٍ أفردها للتحقيق الفعّال، وأتناول فيها الدور الذي قد تضطلع به النماذج اللغوية المدرَّبة مسبقًا في أتمتة مهامّ التحقيق، ومنها الترميز الدلالي.&lt;/p&gt;
&lt;details class="print:hidden xl:hidden" &gt;
&lt;summary&gt;فهرس المحتويات&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#عمل-بدافع-الحب"&gt;عمل بدافع الحب&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#عتبة-عالية"&gt;عتبة عالية&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#المحولات-transformers-أقصر-الطرق-إلى-الأتمتة"&gt;المحوّلات (Transformers): أقصر الطرق إلى الأتمتة؟&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#codex"&gt;Codex&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#ما-وراء-openai"&gt;ما وراء OpenAI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#التجربة-1--تصنيف-النصوص"&gt;التجربة 1 &amp;ndash; تصنيف النصوص.&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#هندسة-الموجه"&gt;هندسة الموجّه&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#الاختبار"&gt;الاختبار&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#النتيجة"&gt;النتيجة&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#التجربة-2--الترميز-الدلالي"&gt;التجربة 2 &amp;ndash; الترميز الدلالي&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#هندسة-الموجه-1"&gt;هندسة الموجّه&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#الاختبار-1"&gt;الاختبار&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h1 id="المشكلة"&gt;المشكلة&lt;/h1&gt;
&lt;h2 id="عمل-بدافع-الحب"&gt;عمل بدافع الحب&lt;/h2&gt;
&lt;p&gt;في الحب لا يُحسب الثمن&amp;hellip; أو هكذا يقول المثل. ولا أصدق منه على الطبعات العلمية الرقمية، فما تقتضيه من نسخ وترجمة وتعليق يستغرق آلاف الساعات، ينهض بها، كما في
، مئات المتعاونين من ذوي الكفاءة العالية.&lt;/p&gt;
&lt;p&gt;ولا شك أن ظفر المشاريع البارزة في الإنسانيات الرقمية بما تحتاج إليه من أموال طائلة نعمة من وجه ما. بيد أن التعويل على سخاء المؤسسات الثرية والجامعات والهيئات الحكومية، والحاجة الممتدة إلى موارد بشرية كبيرة، ليسا نموذجًا اقتصاديًّا يُبنى عليه المستقبل.&lt;/p&gt;
&lt;p&gt;والحق أننا إن أردنا أن نشجع الباحثين في أرجاء العالم على وضع الوثائق التاريخية في متناول جمهور أوسع، فلا بد أن
&lt;mark&gt;تهبط كلفة الطبعات النقدية الرقمية بمراتب عدة&lt;/mark&gt;
.&lt;/p&gt;
&lt;h2 id="عتبة-عالية"&gt;عتبة عالية&lt;/h2&gt;
&lt;p&gt;ومن مفارقات الأمر أن
&lt;mark&gt;الحل قد يأتي من المشاريع كثيفة العمل نفسها، مثل
، لأنها تشكّل مجموعة تدريب نفيسة&lt;/mark&gt;
لأتمتة بعض أشد مهام التحقيق الرقمي نفورًا وتكرارًا، ومنها الترميز.&lt;/p&gt;
&lt;p&gt;وليس هذا انتقاصًا من شأن الترميز؛ بل الواقع أن
&lt;mark&gt;الترميز غدا الركن الذي لا يقوم بدونه أي مشروع علمي رقمي جاد.&lt;/mark&gt;
فمنذ أن قعّدته
، صار يتيح لنا تسجيل ما نشاء من جوانب الوثيقة والنص الذي تحمله: البنية، والحواشي الهامشية، والشطب، والفروق، ونوع الورق، والبقع، والخط&amp;hellip; وما شئتم بعد ذلك.&lt;/p&gt;
&lt;p&gt;ويُظهر المثال الآتي، المأخوذ من
، كيف يُغني الترميز النص بمعلومات إضافية (الفئة، والبنية، والحقول الدلالية، والشطب، وغيرها)، فيمنح الطبعات الرقمية في نهاية المطاف أفضلية بيّنة على أسلافها الورقية.&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt; نص عادي &lt;/th&gt;
&lt;th&gt; ترميز XML&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Pour rompre grenades et donner
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;violence aux artifices de foeu
&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;Mects parmy la pouldre et la sixiesme
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;partye dicelle de vif argent
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td&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;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;p008r_2&amp;#34;&lt;/span&gt; &lt;span class="na"&gt;categories=&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;arms and armor&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;head&amp;gt;&lt;/span&gt;Pour rompre &lt;span class="nt"&gt;&amp;lt;wp&amp;gt;&lt;/span&gt;grenades&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt; et donner&lt;span class="nt"&gt;&amp;lt;lb/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;violence aux &lt;span class="nt"&gt;&amp;lt;wp&amp;gt;&lt;/span&gt;artifices de foeu&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&amp;lt;/head&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;ab&amp;gt;&lt;/span&gt;Mects parmy la &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;pouldre&lt;span class="nt"&gt;&amp;lt;/m&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;del&amp;gt;&amp;lt;ms&amp;gt;&lt;/span&gt;six fois autant&lt;span class="nt"&gt;&amp;lt;/ms&amp;gt;&lt;/span&gt; de
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;vif argent&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&amp;lt;/del&amp;gt;&amp;lt;lb/&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;del&amp;gt;&lt;/span&gt;et&lt;span class="nt"&gt;&amp;lt;/del&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;ms&amp;gt;&lt;/span&gt;la sixiesme partye&lt;span class="nt"&gt;&amp;lt;/ms&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; dicelle de &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;vif argent&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&amp;lt;/ab&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;/div&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;وليست هذه المعلومات نفيسة لأغراض الحفظ الأرشيفي وحدها، بل للتركيب والتحليل أيضًا، كما بيّنت في مناسبات سابقة. غير أن هذا الضرب من التعليق قد يلتهم من الوقت الشيء الكثير، لأن النص الواحد كثيرًا ما يلزم إتاحته بصيغ متعددة: ترجمةً، ونسخًا، وتحديثًا للرسم، وما إلى ذلك.&lt;/p&gt;
&lt;h1 id="الحل"&gt;الحل&lt;/h1&gt;
&lt;h2 id="المحولات-transformers-أقصر-الطرق-إلى-الأتمتة"&gt;المحوّلات (Transformers): أقصر الطرق إلى الأتمتة؟&lt;/h2&gt;
&lt;p&gt;في عام 2020 أطلقت
، بضجة كبيرة، أحدث أسرة من نماذجها اللغوية الكبيرة ذات الأغراض العامة، وسمّتها GPT-3، اختصارًا لـ«Generative Pre-trained Transformer 3». والمحوّلات فتحٌ حديث العهد نسبيًّا في الذكاء الاصطناعي: تتعلم المهام الجديدة بسرعة مذهلة بمجرد قراءة موجّه (prompt) والنظر في عدد قليل جدًّا من الأمثلة، وتقبل كذلك تدريبًا إضافيًّا على مجموعة بيانات مخصوصة (الضبط الدقيق) يحسّن زمن استجابتها ودقتها. ولهذا نقول إن GPT-3 وأشباهه من المحوّلات
.&lt;/p&gt;
&lt;p&gt;وتزعم OpenAI أن GPT-3 يضم عددًا قياسيًّا من المعاملات يبلغ 175 مليارًا، وأنه دُرّب على ما يزيد على 570 غيغابايت من النصوص، جُلّها وثائق إنجليزية مأخوذة على الأرجح من
. وبفضل حجمه الهائل وحده أرسى GPT-3 معيارًا جديدًا في هذا الميدان، فهو ينجز من فوره مهامّ متنوعة بواقعية تبعث على القلق: يكتب
مقبولة، و
في غرف الدردشة، و
، و
، ويترجم الوثائق، ويفسّر المصطلحات، وغير ذلك.&lt;/p&gt;
&lt;p&gt;وقد أتاح لي الوصول المبكر إلى واجهة OpenAI البرمجية منذ مايو 2021 أن أختبر قدرة النموذج على مهامّ يُشهد لها بالصعوبة، كترجمة الشعر الفرنسي والنصوص اللاتينية الحديثة إلى الإنجليزية، وشرح المماثلات (analogies)، بل تبسيط الكتاب الرابع من &lt;em&gt;تأسيس ميتافيزيقا الأخلاق&lt;/em&gt; لكانط لطفل في السابعة (وإن جاء التبسيط غير مقنع).&lt;/p&gt;
&lt;h3 id="codex"&gt;Codex&lt;/h3&gt;
&lt;p&gt;ومن أحدث ما تفرّع عن GPT-3 نموذج يُعنى بلغات الحاسوب، اسمه &lt;em&gt;Codex&lt;/em&gt;، يترجم اللغة الطبيعية إلى لغة حاسوبية والعكس. فإن كنت أبحث مثلًا عن تعبير نمطي «يعثر على الكلمات التي تبدأ بحرف كبير دون سواها»، ترجم GPT-3 ذلك في الحال إلى تعبير نمطي صالح للعمل: &lt;code&gt;[A-Z]+\w+&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;وتزعم OpenAI أن &lt;em&gt;Codex&lt;/em&gt; يتعامل مع نحو اثنتي عشرة لغة حاسوبية، منها Python وJavaScript وGo وPerl وPHP وRuby وSwift. وإذ يحوّل الشيفرة الزائفة إلى شيفرة حقيقية بسلاسة، فإنه يعفي الناس من التدقيق في نحو اللغة الحاسوبية المضني ليصرفوا همّهم إلى الخطوات المنطقية والاستراتيجيات التي تمكّن التطبيقات من حل المشكلات.&lt;/p&gt;
&lt;h3 id="ما-وراء-openai"&gt;ما وراء OpenAI&lt;/h3&gt;
&lt;p&gt;وليست OpenAI، بطبيعة الحال، اللاعب الوحيد في الميدان. فكما أسلفت، أعلنت أكاديمية بكين للذكاء الاصطناعي عام 2021 عن نموذج أكبر وأقدر يُعرف باسم &lt;em&gt;Wu Dao 2&lt;/em&gt;. وتضافرت Nvidia وMicrosoft على إنتاج نموذج &lt;em&gt;Megatron-Turing NLG 530B&lt;/em&gt; الذي جاء اسمه على مسمّاه. وتعرض شركات ناشئة أصغر، مثل
و
، واجهات برمجية للجمهور. وتجدر الإشارة كذلك إلى مبادرات مفتوحة المصدر مثل
. ولما كان مشهد الذكاء الاصطناعي يتبدل بسرعة، فلمتابعة جديد الميدان راجعوا
.&lt;/p&gt;
&lt;h1 id="التجارب"&gt;التجارب&lt;/h1&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;ملاحظة&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;الغاية من هذه التجارب أن نهتدي إلى أقل الطرق كلفةً نحو أتمتة موثوقة لمهام التحقيق. وقد يقال إن بعض هذه المهام يمكن أتمتته أيضًا بخوارزميات التعلم الخاضع للإشراف؛ وسنتحقق من هذه الفرضية في تدوينة مقبلة.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;فهل يستطيع محوّل مثل GPT-3 أن يتعلم التعليق على مخطوطة تقنية علمية من القرن السادس عشر، مثلًا؟&lt;/p&gt;
&lt;h2 id="التجربة-1--تصنيف-النصوص"&gt;التجربة 1 &amp;ndash; تصنيف النصوص.&lt;/h2&gt;
&lt;p&gt;لنبدأ بما هو أيسر نسبيًّا. فما دام GPT-3 «يتعلم من أمثلة قليلة»، فالمنتظر أن يدرك بسرعة كيف صنّف فريقنا التحريري مداخل المخطوطة Ms Fr 640.&lt;/p&gt;
&lt;h3 id="هندسة-الموجه"&gt;هندسة الموجّه&lt;/h3&gt;
&lt;p&gt;لتدريبه استعملت موجّهًا في غاية الإيجاز، واخترت للتمثيل أربعة مداخل نصية قصيرة بلا ترميز، منها مدخل في «الطب»، وآخر في «الأسلحة والدروع»، وثالث في «الرسم».&lt;/p&gt;
&lt;h3 id="الاختبار"&gt;الاختبار&lt;/h3&gt;
&lt;p&gt;ثم نسخت مقطعًا آخر لم يكن في السلسلة الأولى:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Working neatly
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Never put down, if you can, two colors one on top of the other.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;But next, having made your design carefully, keep the place of shadows for them alone,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;amp; also separately that of lights &amp;amp; highlights, without layering one color all over &amp;amp; then highlighting or else shading on it.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;And in this way, you further your work, economize your colors &amp;amp; work neatly.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which is the reason that, the colors not being muddled nor mixed together, they do not die &amp;amp; you soften the colors better, since they are not so thick.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;فجاء المخرج مطابقًا للمحتوى تمام المطابقة:&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;categories&lt;/span&gt;&lt;span class="err"&gt;=&amp;#34;painting&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;فإذا جرّبنا مدخلًا من فئة لم تكن أصلًا بين النصوص المختارة لتدريب GPT-3، كانت النتيجة مدعاة للدهشة.&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;categories&lt;/span&gt;&lt;span class="err"&gt;=&amp;#34;jewelry&amp;#34;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="النتيجة"&gt;النتيجة&lt;/h3&gt;
&lt;p&gt;لا وجود لفئة «المجوهرات» (jewelry) في طبعتنا للمخطوطة Ms. Fr. 640، فالفريق التحريري
عليها فئة «الأحجار» (Stones) الأوسع. على أن حدس GPT-3 سديد، وهو يدل على أنه بقليل من التدريب الإضافي يستطيع أن يتعلم تصنيف أي مدخل في المخطوطة Ms. Fr. 640، بل ربما مداخل النصوص التقنية المماثلة من القرن السادس عشر.&lt;/p&gt;
&lt;h2 id="التجربة-2--الترميز-الدلالي"&gt;التجربة 2 &amp;ndash; الترميز الدلالي&lt;/h2&gt;
&lt;p&gt;فلنرفع السقف قليلًا. إذا كانت المحوّلات من قبيل GPT-3 تتعلم تصنيف النصوص وفق معايير تحريرية بعينها، فهل تستطيع أيضًا أن تتعرف على بعض عناصر ترميز النص؟&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;ملاحظة&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;تجمع &lt;em&gt;Secrets of Craft and Nature&lt;/em&gt; بين
. وللأسف لا يعالج GPT-3 الصور، بخلاف مشاريع أخرى مثل
. ويُرجَّح أن تشمل الأجيال المقبلة من GPT هذه القدرة، ولا غنى عنها للتعرف على معظم الجوانب البنيوية والمادية للوثيقة. سنتجاوز هذه الوسوم بالذات، ونركّز على الترميز الذي لا يستلزم التعرف على الصور.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="هندسة-الموجه-1"&gt;هندسة الموجّه&lt;/h3&gt;
&lt;p&gt;تشمل الوسوم الدلالية الإحالات إلى الحيوانات والنباتات وأسماء الأماكن والمدركات الحسية وغيرها. وقد انتقيت لموجّه التدريب بضعة أمثلة من الطبعة:&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="c"&gt;&amp;lt;!--Input prompt--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;The following is a list of words and their corresponding semantic tags
&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;cannons: &lt;span class="nt"&gt;&amp;lt;wp&amp;gt;&lt;/span&gt;cannons&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;powder: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;powder&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;flasks: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&lt;/span&gt;flasks&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wooden: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;wooden&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iron: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;iron&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;parchment: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;parchment&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;goats: &lt;span class="nt"&gt;&amp;lt;al&amp;gt;&lt;/span&gt;goats&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;lambs: &lt;span class="nt"&gt;&amp;lt;al&amp;gt;&lt;/span&gt;lambs&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;leather: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;leather&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;earth: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;earth&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fine fatty earth: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;fine fatty earth&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Venice: &lt;span class="nt"&gt;&amp;lt;pl&amp;gt;&lt;/span&gt;Venice&lt;span class="nt"&gt;&amp;lt;/pl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Flemish: &lt;span class="nt"&gt;&amp;lt;pl&amp;gt;&lt;/span&gt;Flemish&lt;span class="nt"&gt;&amp;lt;/pl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;almond: &lt;span class="nt"&gt;&amp;lt;pa&amp;gt;&lt;/span&gt;almond&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;almond oil: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;pa&amp;gt;&lt;/span&gt;almond&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt; oil&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;walnuts skin: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;pa&amp;gt;&lt;/span&gt;walnuts&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt; skin&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;molten lead: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;molten lead&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;today: &lt;span class="nt"&gt;&amp;lt;tmp&amp;gt;&lt;/span&gt;today&lt;span class="nt"&gt;&amp;lt;/tmp&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;In the past: &lt;span class="nt"&gt;&amp;lt;tmp&amp;gt;&lt;/span&gt;In the past&lt;span class="nt"&gt;&amp;lt;/tmp&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Clockmakers: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;Clockmakers&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;red copper: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;red copper&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;crucible: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&lt;/span&gt;crucible&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bellows: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&lt;/span&gt;bellows&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;charcoal: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;charcoal&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;founders: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;founders&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="الاختبار-1"&gt;الاختبار&lt;/h3&gt;
&lt;p&gt;لنجرّب مع نموذج &lt;code&gt;Davinci-codex&lt;/code&gt; بضع كلمات سهلة: &lt;em&gt;Apothecary&lt;/em&gt; (صيدلاني)، و&lt;em&gt;smoke&lt;/em&gt; (دخان)، و&lt;em&gt;glassmakers&lt;/em&gt; (صانعو الزجاج)، و&lt;em&gt;latten&lt;/em&gt; (صفيح نحاسي)، و&lt;em&gt;snake&lt;/em&gt; (ثعبان). فتأتي النتائج فورية لا تشوبها شائبة:&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="c"&gt;&amp;lt;!--Output--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Apothecary: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;Apothecary&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;smoke: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;smoke&lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;glassmakers: &lt;span class="nt"&gt;&amp;lt;pro&amp;gt;&lt;/span&gt;glassmakers&lt;span class="nt"&gt;&amp;lt;/pro&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;latten: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;latten&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;snake: &lt;span class="nt"&gt;&amp;lt;al&amp;gt;&lt;/span&gt;snake&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;والاختبار الأصعب يقتضي كلمات مركبة، من قبيل &lt;em&gt;copper plates&lt;/em&gt; (صفائح نحاسية)، و&lt;em&gt;walnut oil&lt;/em&gt; (زيت الجوز)، و&lt;em&gt;wood block&lt;/em&gt; (قالب خشبي)؛ والغرض منه أن نرى هل يحسن GPT-3 التعامل مع الوسوم المتداخلة.&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="c"&gt;&amp;lt;!--Output--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;copper plates: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;copper plates&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;walnut oil: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;pa&amp;gt;&lt;/span&gt;walnut&lt;span class="nt"&gt;&amp;lt;/pa&amp;gt;&lt;/span&gt; oil&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wood block: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&lt;/span&gt;wood block&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;وهنا تتفاوت النتائج: فلم يصب &lt;code&gt;Davinci-codex&lt;/code&gt; إلا في &lt;em&gt;walnut oil&lt;/em&gt;، وفاته الوسمان المتداخلان &lt;code&gt;tl&lt;/code&gt; و&lt;code&gt;m&lt;/code&gt; في &lt;em&gt;copper plates&lt;/em&gt; و&lt;em&gt;wood block&lt;/em&gt;. غير أن هذه الأخطاء تخف، كما يُظهر الاختبار التالي، بموجّه تدريب أحسن. فبعد أن أضفت خمسة أمثلة أخرى على الوسوم المتداخلة، عاد &lt;code&gt;Davinci-codex&lt;/code&gt; بنتيجة تكاد تكون كاملة، لم يخطئ فيها إلا مرة واحدة (&lt;em&gt;oil paintbrushes&lt;/em&gt;):&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="c"&gt;&amp;lt;!--Output--&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cannon powder: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;wp&amp;gt;&lt;/span&gt;cannon&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt; powder&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;arquebus powder: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;wp&amp;gt;&lt;/span&gt;arquebus&lt;span class="nt"&gt;&amp;lt;/wp&amp;gt;&lt;/span&gt; powder&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;oil paintbrushes: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;al&amp;gt;&lt;/span&gt;oil&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt; paintbrushes&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sheep footbones: &lt;span class="nt"&gt;&amp;lt;m&amp;gt;&amp;lt;al&amp;gt;&lt;/span&gt;sheep&lt;span class="nt"&gt;&amp;lt;/al&amp;gt;&lt;/span&gt; footbones&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;bronze mortar: &lt;span class="nt"&gt;&amp;lt;tl&amp;gt;&amp;lt;m&amp;gt;&lt;/span&gt;bronze&lt;span class="nt"&gt;&amp;lt;/m&amp;gt;&lt;/span&gt; mortar&lt;span class="nt"&gt;&amp;lt;/tl&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="خاتمة"&gt;خاتمة&lt;/h1&gt;
&lt;p&gt;ينبغي ألا يغيب عن البال أن هذه الاختبارات أُجريت على شذرات نصية قصيرة. وأحسب أن إغناء الأمثلة والموجّه بمزيد من السياق سيخرج من نماذج GPT-3 نتائج أفضل، وأن الضبط الدقيق للنموذج على مجموعات تدريب مخصوصة سيرفع دقة الوسم أكثر فأكثر.&lt;br&gt;
ولئن كانت هذه التجارب لا تزال بحاجة إلى أن تُجرى على نطاق أوسع لإثبات موثوقية النماذج اللغوية المدرَّبة مسبقًا، فإنه يسعنا أن نخلص إلى أن
&lt;mark&gt;هذه المقاربة تمكّن المحققين من أتمتة عدة مهام من مهام التعليق في خطوات يسيرة، وقد توفر عليهم في ذلك قدرًا هائلًا من الوقت والمال.&lt;/mark&gt;
&lt;/p&gt;</description></item><item><title>تصوّر المخطوطات 2 (تحديث)</title><link>https://clementgodbarge.com/ar/post/treemap2/</link><pubDate>Sat, 20 Nov 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/treemap2/</guid><description>&lt;p&gt;وفاءً بما وعدت، هذه نسخة جديدة من الخريطة الشجرية التفاعلية التي عرضتها في
، وقد صارت هذه المرة بوضعَي عرض.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;ملاحظة&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;تحسن المشاهدة إذا ضبطتم الصفحة على الوضع الفاتح (انقروا أيقونة القمر في أعلى اليمين).&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;head&gt;
&lt;meta charset="UTF-8" /&gt;
&lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;link rel="preconnect" href="https://fonts.gstatic.com" /&gt;
&lt;link
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&amp;display=swap"
rel="stylesheet"
/&gt;
&lt;link rel="stylesheet" href="css/index.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-treemap.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-tooltip.css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class="stacked"&gt;
&lt;div class="switch"&gt;
&lt;input
type="checkbox"
name="group-by-category-switch"
id="group-by-category-switch"
checked
/&gt;
&lt;label for="group-by-category-switch"&gt; Group folios by category &lt;/label&gt;
&lt;/div&gt;
&lt;div id="treemap"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;script src="https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js" integrity="sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i" crossorigin="anonymous" referrerpolicy="no-referrer"&gt;&lt;/script&gt;
&lt;script src="js/vis-treemap.js"&gt;&lt;/script&gt;
&lt;script src="js/vis-tooltip.js"&gt;&lt;/script&gt;
&lt;script src="js/index.js"&gt;&lt;/script&gt;
&lt;/body&gt;</description></item><item><title>متصفّح بصري للأرشيف</title><link>https://clementgodbarge.com/ar/post/treemap/</link><pubDate>Sun, 20 Jun 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/treemap/</guid><description>&lt;h1 id="المشكلة"&gt;المشكلة&lt;/h1&gt;
&lt;p&gt;في الطبعات الرقمية مفارقة: فهي تضع وثائق عسيرة المنال في متناول جمهور أوسع، غير أن تجريدها من مادّتها يحرم القارئ مدخله الحسي، فيتيه ويكاد ينصرف عن محتواها. ومن ثمّ يغدو التنقل في مستودعات الوثائق الضخمة عملًا شاقًّا يهاب المرء الإقدام عليه، لا عند قليلي الخبرة بالبحث الأرشيفي وحدهم، بل عند القراء ذوي الإعاقات الإدراكية أيضًا.&lt;/p&gt;
&lt;h1 id="الحل"&gt;الحل&lt;/h1&gt;
&lt;p&gt;هنا تأتي البيانات الوصفية الأرشيفية بالعون. فهي تمكّننا من بناء تجريدات بصرية تفاعلية تمنح القارئ مدخلًا حسيًّا بديلًا، فترتقي بسهولة الاستعمال وإمكانية الوصول معًا. ولجعل الأرشيف قابلًا للتصفح بالعين، تفي بالغرض خريطة شجرية (treemap)، أو أي مخطط يفكك البيانات الهرمية تفكيكًا ناجعًا.&lt;/p&gt;
&lt;h1 id="التجربة"&gt;التجربة&lt;/h1&gt;
&lt;p&gt;في تجربتي الأولى طوّعت
المكتوبة بـ&lt;code&gt;D3.js&lt;/code&gt;، وأضفت إليها روابط تشعبية. وهي تمثّل المخطوطة BnF Ms Fr 640 وأوراقها والمداخل التي تضمها كل ورقة، وتدل الألوان على الفئة الغالبة. ومن مرّر المؤشر فوق أي مدخل ظهر له مزيد من البيانات، ومنها الرابط التشعبي إلى المخطوطة.&lt;br&gt;
وبهذا تصير الخريطة الشجرية فهرسًا بصريًّا تفاعليًّا يعرض على القارئ، في لمحة سريعة متجاوبة، محتويات المخطوطة وأبعاد كل ورقة وكل مدخل فيها.&lt;br&gt;
&lt;del&gt;سأمضي في الأشهر المقبلة في التجريب على هذه الفكرة بمخططات أخرى وتسلسلات هرمية أخرى&amp;hellip; فترقّبوا!&lt;/del&gt; للاطلاع على نسخة جديدة من الخريطة الشجرية، انقروا
.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;ملاحظة&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;تحسن المشاهدة إذا ضبطتم الصفحة على الوضع الفاتح (انقروا أيقونة القمر في أعلى اليمين).&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;head&gt;
&lt;meta charset="UTF-8" /&gt;
&lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;link rel="preconnect" href="https://fonts.gstatic.com" /&gt;
&lt;link
href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&amp;display=swap"
rel="stylesheet" /&gt;
&lt;link rel="stylesheet" href="css/index.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-treemap.css" /&gt;
&lt;link rel="stylesheet" href="css/vis-tooltip.css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;Click any cell to zoom in, or the top to zoom out.&lt;/p&gt;
&lt;div id="treemap"&gt;&lt;/div&gt;
&lt;script src="https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js" integrity="sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i" crossorigin="anonymous" referrerpolicy="no-referrer"&gt;&lt;/script&gt;
&lt;script src="js/vis-treemap.js"&gt;&lt;/script&gt;
&lt;script src="js/vis-tooltip.js"&gt;&lt;/script&gt;
&lt;script src="js/index.js"&gt;&lt;/script&gt;
&lt;/body&gt;</description></item><item><title>الأرشيف في لمحة</title><link>https://clementgodbarge.com/ar/post/dashboard/</link><pubDate>Mon, 24 May 2021 16:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/dashboard/</guid><description>&lt;h1 id="المشكلة"&gt;المشكلة&lt;/h1&gt;
&lt;p&gt;قد تبلغ الفوضى في الأرشيفات التاريخية حدًّا يبعث على اليأس، ورصيد &lt;em&gt;Mediceo del Principato&lt;/em&gt; في
خير شاهد. فلم يُجرد منه إلا نزر يسير، وتناثر كثير من وثائقه في ما يزيد على 6500 مجلد من غير سبب ظاهر. ويزيد الطين بلّة أن الأرشيف لا يتيح لكم الاطلاع إلا على عدد محدود من المجلدات (أو الـ&lt;em&gt;filze&lt;/em&gt; كما يسمونها): أربع &lt;em&gt;filze&lt;/em&gt; في اليوم في الأحوال العادية، هبطت في زمن الجائحة إلى أربع كل أسبوعين. وإذ تغيب الجرود المفصّلة، فإن ضخامة الأرشيف تُلجئ الباحث إلى ابتداع الحيل كي يهتدي سريعًا إلى ما ينشده من وثائق.&lt;/p&gt;
&lt;h1 id="الحل"&gt;الحل&lt;/h1&gt;
&lt;p&gt;فمن الباحثين من يعوّل على الصدفة، ومنهم من يضيف إليها تخمينات مدروسة يبنيها على التسلسل الزمني، والمرسَل إليهم، والمؤلفين، ومنشأ الرصيد الأرشيفي، واللغة، وما إلى ذلك. غير أن &lt;em&gt;النظر&lt;/em&gt; إلى هذه المتغيرات كلها دفعةً واحدة قد يكشف في بنية الأرشيف عن أنماط لم تخطر ببال، فيصقل حدسنا. وقد علّمتني التجربة أن البيانات الوصفية التي يجمعها الباحث عادةً في جدول بيانات تصير، متى رُسمت بيانيًّا، عونًا كبيرًا على إدراك ما حوله في الأرشيف.&lt;/p&gt;
&lt;h1 id="التجربة"&gt;التجربة&lt;/h1&gt;
&lt;p&gt;تدور بحوثي الجارية حول مراسلات جاسوس من القرن السادس عشر، تفرّقت رسائله في مئات الـ&lt;em&gt;filze&lt;/em&gt;: كُتبت بهويات شتى، إلى مرسَل إليهم مختلفين لا يُتوقع بعضهم، ومن أماكن متباعدة، وهلم جرًّا. ولكي أهتدي إلى الـ&lt;em&gt;filze&lt;/em&gt; الأرجح احتواءً على الرسائل المنشودة، أعددت لوحة متابعة، وهي تطبيق ويب لتصوّر البيانات تفاعليًّا (
) يربط بين شتى البيانات، ومنها المعلومات الجغرافية والزمنية، وبين مخطط هرمي (
) للرصيد الأرشيفي. تطلعني اللوحة في لمحة على ما عُثر عليه حتى الآن، وعلى مقداره، وتعطيني فكرة تقريبية عن المواضع التي قد أجد فيها رسائل جديدة؛ فإذا نقرت على متغير بعينه، تجدّدت المخططات كلها لتُظهر ارتباطات محددة.&lt;/p&gt;
&lt;h1 id="الخطوات-التالية"&gt;الخطوات التالية&lt;/h1&gt;
&lt;p&gt;ولعل الأهم من ذلك أن هذه اللوحة تصلح فهرسًا بصريًّا. فحين تُنشر الطبعة النقدية لهذه الرسائل على الشبكة، ستغدو اللوحة مدخلًا بديلًا يتصفح القراء منه البيانات. ولا يسعني في الوقت الراهن، لدواعي السرية، إلا أن أعرض لقطة شاشة محجوبة الأجزاء، على أن أطلق اللوحة كاملةً في العام المقبل؛ وفي انتظار ذلك سيتاح نموذج أولي عمّا قريب. فترقّبوا!&lt;/p&gt;</description></item><item><title>Making &amp; Knowing Project</title><link>https://clementgodbarge.com/ar/project/mk/</link><pubDate>Sun, 27 Dec 2020 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/project/mk/</guid><description>&lt;p&gt;أسّست باميلا ه. سميث (Pamela H. Smith)
عام 2014، وهو مبادرة بحثية وتعليمية تنضوي تحت
بجامعة كولومبيا، ويشارك فيها مئات المتعاونين.&lt;/p&gt;
&lt;p&gt;شاركت في المشروع باحثًا في مرحلة ما بعد الدكتوراه، وكان من بين ما عملت عليه
للمخطوطة BnF Ms. Fr. 640؛ وهي مخطوطة فرنسية فريدة من القرن السادس عشر تطلعنا من الداخل على الصناعة والمواد في زمن كان الفنان فيه عالِمًا.&lt;/p&gt;
&lt;p&gt;وتتيح الطبعة الرقمية وفرةً من البيانات مجانًا في
. وأعتزم في العام المقبل نشر سلسلة تدوينات عن الطبعة وبياناتها، أبيّن فيها ما أيسر تنزيل النص وتحليله بلغة Python أو R. فترقّبوا!&lt;/p&gt;</description></item><item><title>تصوّر الترميز الدلالي في المخطوطة BnF Ms. Fr. 640</title><link>https://clementgodbarge.com/ar/post/visualization/</link><pubDate>Sun, 20 Dec 2020 18:15:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/post/visualization/</guid><description>&lt;h1 id="نظرة-عامة"&gt;نظرة عامة&lt;/h1&gt;
&lt;p&gt;تزخر الطبعات العلمية الغنية بالبيانات بتعليقات تحريرية نفيسة يمكن استخراجها وتحليلها وتصوّرها لشتى الأغراض العلمية. وتلك حال
، الصادرة عام 2020، التي تتيح تنزيل ملف بياناتها الوصفية من مستودعها على GitHub. أبيّن في هذه التدوينة كيف نجمع هذه المتغيرات كلها في مصفوفة ارتباط، ثم نصوّرها على أنحاء شتى.&lt;/p&gt;
&lt;h1 id="البيانات"&gt;البيانات&lt;/h1&gt;
&lt;p&gt;يولّد مشروع Making and Knowing جدول بيانات يحمل أحدث المعلومات عن محتويات المخطوطة: &lt;code&gt;entry_metadata.csv&lt;/code&gt;. ويُستحضر الملف من
الخاص بـMaking &amp;amp; Knowing. ويمكن بدل ذلك توليد ملفات .csv على المقاس، مع إضافة مزيد من الترميز، بفضل
، الأداة الممتازة التي أعدّها ماثيو كومار (Matthew Kumar)، وهي نسخة من المخطوطة BnF Ms. Fr. 640 بلغة Python.&lt;/p&gt;
&lt;h2 id="إعداد-python"&gt;إعداد Python&lt;/h2&gt;
&lt;p&gt;سنستعين بـPandas لمعالجة البيانات، وبـMatplotlib وseaborn للخرائط الحرارية، ثم بـNetworkX لبناء شبكات قائمة على الارتباط.&lt;br&gt;
ولن نلجأ مع هذا الصنف من المتغيرات إلى طريقة بيرسون، بل إلى طريقة 𝜙𝐾. فاحرصوا على
على طريقة الارتباط هذه وعلى مكتبتها &lt;code&gt;PhiK&lt;/code&gt;.&lt;/p&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="c1"&gt;#install packages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;pip&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;phik&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;# import modules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;pd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;plt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;seaborn&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;sns&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;networkx&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;nx&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;لننزّل أولًا أحدث ملف للبيانات الوصفية للطبعة من مجلد metadata في
.
ثم ننتقي الأعمدة التي نحتاج إليها دون سواها. اخترت لهذا العرض جميع الوسوم الدلالية من الترجمة الإنجليزية &lt;code&gt;tl&lt;/code&gt;، ولكم أن تختاروا وسوم النسخ الفرنسي &lt;code&gt;tc&lt;/code&gt; أو النسخة المعيَّرة &lt;code&gt;tcn&lt;/code&gt;.
وتأتي البيانات قيمًا مفصولة بفواصل منقوطة، ونريد من Python أن يعدّها لنا؛ فنلجأ إلى طريقة stack-unstack مع التعبير النمطي &lt;code&gt;[^;\s][^\;]*[^;\s]*&lt;/code&gt;.
ولتغدو المصفوفة أيسر قراءة، نعيد تسمية الأعمدة. ولمن كان على عجلة أن يتخطى هذه الخطوة، على أن يتذكر أن إطار بياناتنا يحمل في هذه المرحلة اسم &lt;code&gt;tagsrn&lt;/code&gt;.&lt;/p&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="c1"&gt;# load the edition&amp;#39;s metadata&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;entry_metadata.csv&amp;#39;&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;# select the tags you want to correlate&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dftags&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;al_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;bp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;cn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;df_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;env_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;m_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;md_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;ms_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;mu_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pa_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pro_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tmp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;de_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;el_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;it_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;la_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;oc_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;po_tl&amp;#39;&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;# count comma separated values&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tagcount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dftags&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dropna&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;str&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;[^;\s][^\;]*[^;\s]*&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;unstack&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;# rename columns&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;tagsrn&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tagcount&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rename&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;al_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;animals&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;bp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;body parts&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;cn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;currency&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;df_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;definitions&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;env_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;environment&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;m_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;material&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;md_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;medical&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;ms_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;measurement&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;mu_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;music&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pa_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;plant&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;toponym&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;person&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pro_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;profession&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sn_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;sensory&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tl_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tool&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tmp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;temporal&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;wp_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;weapons&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;de_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;German&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;el_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Greek&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;it_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Italian&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;la_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Italian&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;oc_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Occitan&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;po_tl&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Poitevin&amp;#39;&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;h1 id="حساب-الارتباط"&gt;حساب الارتباط&lt;/h1&gt;
&lt;p&gt;متى نظُف إطار البيانات، انتقلنا إلى حساب معاملات الارتباط بين كل متغيرين. والمهم في هذه المرحلة أن تفهموا بياناتكم وتتحققوا من أنكم تستعملون أنسب طرق الارتباط لها، وحزمة &lt;code&gt;pandas-profiling&lt;/code&gt; نِعم العون على ذلك.&lt;/p&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="c1"&gt;# calculate correlation coefficient with the phi k method&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;cortag&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tagsrn&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;phik_matrix&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;p&gt;&lt;code&gt;cortag&lt;/code&gt; هي مصفوفة الارتباط عندنا، وبوسعنا الآن أن نجرّب عليها ضروبًا شتى من التصوّر.&lt;/p&gt;
&lt;h1 id="التصور"&gt;التصوّر&lt;/h1&gt;
&lt;p&gt;أول ما نجرّبه تصويرها مصفوفةً مرمّزة بالألوان، بـ
من &lt;code&gt;seaborn&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="الخريطة-الحرارية-للارتباط"&gt;الخريطة الحرارية للارتباط&lt;/h3&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="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;subplots&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;figsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;14&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="n"&gt;ax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sns&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;heatmap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cortag&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;linewidths&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;.03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;vmin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cmap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Oranges&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;square&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&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;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="الخريطة الحرارية للارتباط في المخطوطة BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/heatmap_hu_943abdd98e24b0a3.webp 320w, https://clementgodbarge.com/post/visualization/heatmap_hu_eca41311a0e0ac17.webp 480w, https://clementgodbarge.com/post/visualization/heatmap_hu_1650defb643c0285.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/heatmap_hu_943abdd98e24b0a3.webp"
width="760"
height="665"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;من كان على معرفة وثيقة بالنص أدرك للوهلة الأولى أن الخريطة الحرارية تنطق بالمعقول. فأسماء الأعلام، مثلًا، ترتبط ارتباطًا وثيقًا باللاتينية، إذ جرت العادة، لا سيما عند إنسانيّي القرن السادس عشر، على تلتينها.&lt;/p&gt;
&lt;p&gt;وقد يقول قائل إن هذه الخريطة لا تزيد على تقرير البديهيات. وليس مثل هذا القائل مخطئًا كل الخطأ؛ فالوسوم الطبية تبدو للوهلة الأولى شاهدًا على قوله، إذ ترتبط كما هو متوقع بأعضاء الجسم والمقاييس والنباتات.&lt;/p&gt;
&lt;p&gt;لكن من قرأ الخريطة بإمعان، سطرًا سطرًا، وقع على ارتباطات طريفة لم تكن في الحسبان. فارتباط الوسوم الطبية بالألفاظ الإيطالية واللاتينية، مثلًا، يلقي ضوءًا على منشأ الوصفات الطبية في المخطوطة Ms. Fr. 640. وكذلك يكشف الارتباط بين المهن والتعريفات والمقاييس عن مبلغ ما تشكّل به الهوية المهنية الخطاب التقني في القرن السادس عشر.&lt;/p&gt;
&lt;h3 id="خريطة-التجميع-العنقودي-للارتباط"&gt;خريطة التجميع العنقودي للارتباط&lt;/h3&gt;
&lt;p&gt;الخرائط الحرارية نافعة في مقام «الاستكشاف»، لكنها قد تبدو لجمهوركم مشوّشة بعض الشيء، ولا سيما إن كنتم تناقشون — أو ما زلتم تبحثون عن — عناقيد دلالية بعينها في المخطوطة. وهنا قد تأتي وحدة &lt;code&gt;clustermap&lt;/code&gt; في Seaborn بنتائج مثيرة.&lt;/p&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="n"&gt;clustermap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sns&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;clustermap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cortag&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;figsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;13&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;dendrogram_ratio&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;vmin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cmap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Oranges&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cbar_pos&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;.06&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;.68&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;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="خريطة التجميع العنقودي للارتباط في المخطوطة BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/clustermap_hu_677e6e5028f9d902.webp 320w, https://clementgodbarge.com/post/visualization/clustermap_hu_2dac945fa40a8ac6.webp 480w, https://clementgodbarge.com/post/visualization/clustermap_hu_3abaf7b36a53572.webp 753w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/clustermap_hu_677e6e5028f9d902.webp"
width="753"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;فضلًا عن شبهها بحشرة «مُبكسَلة» (نعم، الكلمة مثبتة في قاموس أكسفورد)، تفصل خريطة التجميع العنقودي فصلًا بيّنًا بين الوسوم المعزولة (في الأعلى وعلى اليسار) والوسوم الأوثق ترابطًا. ونميّز فيها كذلك عناقيد منعزلة، كالموسيقى واللهجة البواتفينية (من كان يظن!)، من عناقيد أدنى إلى المركز كالمقاييس والمواد والتعريفات والأسلحة. أما المهن فأشد ترابطًا، لكنها لا تنتمي، في مصفوفة الارتباط هذه على الأقل، إلى عنقود بعينه.&lt;/p&gt;
&lt;h3 id="شبكة-الارتباط"&gt;شبكة الارتباط&lt;/h3&gt;
&lt;p&gt;وإن أردنا اختزال ما في مصفوفتنا من ارتباطات اختزالًا أبلغ، فالرسوم الشبكية حل أنيق، ولا سيما حين يكون المقصود أن نعرّف الناس بمحتويات المخطوطة.&lt;br&gt;
ولذلك لا بد أن نحوّل مصفوفتنا إلى قائمة من الحواف والعقد، وأن نضع عتبة تُقصي الارتباطات الأضعف عن الرسم.&lt;/p&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="c1"&gt;# transform the data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;links&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cortag&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stack&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;reset_index&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="n"&gt;links&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;columns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&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;# threshold &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;links_filtered&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt;&lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;.6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&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="n"&gt;links_filtered&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;# create edges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;G&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_pandas_edgelist&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;links_filtered&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&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;# draw network using Kamada &amp;amp; Kawai&amp;#39;s algorithm &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;figsize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;12&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="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;draw_kamada_kawai&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;with_labels&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;node_color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;red&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;node_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edge_color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;black&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;linewidths&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;font_size&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;14&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;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="رسم الارتباط الشبكي للمخطوطة BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/graph_hu_396032c00cb7f7f3.webp 320w, https://clementgodbarge.com/post/visualization/graph_hu_85295e5fba6293bc.webp 480w, https://clementgodbarge.com/post/visualization/graph_hu_4190dbca7e86ffc1.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/graph_hu_396032c00cb7f7f3.webp"
width="760"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;فإن كثرت الحواف والعقد فوق الحد، فبوسعكم تعديل العتبة لتحصلوا على نتيجة أنقى. وإلا فصدّروا الرسم لتعبثوا به في &lt;code&gt;Gephi&lt;/code&gt; بالدالة &lt;code&gt;.write_gexf()&lt;/code&gt;.&lt;/p&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="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write_gexf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;G&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;graph.gexf&amp;#39;&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;p&gt;وترون الحصيلة في مستهل هذه التدوينة.&lt;/p&gt;
&lt;h3 id="تحديث-شبكة-موزونة-دائرية"&gt;تحديث: شبكة موزونة دائرية&lt;/h3&gt;
&lt;p&gt;كنت أبحث عن سبل لعرض مصفوفات الارتباط شبكاتٍ موزونة، فوقعت على هذه المقاربة الطريفة التي
، وأطوّعها هنا لمجموعة بياناتنا.&lt;/p&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="c1"&gt;# create graph weighted by correlation coefficients (unfiltered)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Gx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from_pandas_edgelist&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;links&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;var2&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;edge_attr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&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;# determine a threshold to remove some edges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;threshold&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.4&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;# list to store edges to remove&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;remove&lt;/span&gt; &lt;span class="o"&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# loop through edges in Gx and find correlations which are below the threshold&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;var1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var2&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;edges&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="n"&gt;corr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;var1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="n"&gt;var2&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;value&amp;#39;&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="c1"&gt;#add to remove node list if abs(corr) &amp;lt; threshold&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;corr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;threshold&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="n"&gt;remove&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;var1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;var2&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;# remove edges contained in the remove list&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;remove_edges_from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;remove&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="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39; edges removed&amp;#39;&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;p&gt;وبعد أن نحذف بضع حواف، نحدد لون الباقي منها وسمكه.&lt;/p&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="c1"&gt;# determine the colors of edges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;assign_colour&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;correlation&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="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;correlation&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mf"&gt;0.8&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="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;#ff872c&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# orange&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&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="k"&gt;return&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;#f11d28&amp;#39;&lt;/span&gt; &lt;span class="c1"&gt;# red&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;assign_thickness&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;correlation&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;benchmark_thickness&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scaling_factor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&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="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;benchmark_thickness&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;correlation&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;scaling_factor&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;assign_node_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;degree&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scaling_factor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&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="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;degree&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;scaling_factor&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ونمنح العقد كذلك حجمًا يتناسب مع عدد صلاتها.&lt;/p&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="c1"&gt;# assign node size depending on number of connections (degree)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;node_size&lt;/span&gt; &lt;span class="o"&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="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Gx&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;degree&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&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="n"&gt;node_size&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;assign_node_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&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;p&gt;والحصيلة رسم موزون يتسع لعقد أكثر وحواف أكثر بكثير، ويظل مع ذلك مقروءًا غنيًّا بالدلالة.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="رسم الارتباط الشبكي الموزون للمخطوطة BnF Ms. Fr. 640"
srcset="https://clementgodbarge.com/post/visualization/weightedgraph_hu_7b75f2e5fc7edb1b.webp 320w, https://clementgodbarge.com/post/visualization/weightedgraph_hu_9f0550eb49c17f11.webp 480w, https://clementgodbarge.com/post/visualization/weightedgraph_hu_a9106989817361fb.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://clementgodbarge.com/post/visualization/weightedgraph_hu_7b75f2e5fc7edb1b.webp"
width="760"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>المراسلات السرية لفيليبو كافريانا، 1568—1589.</title><link>https://clementgodbarge.com/ar/project/cavrianas-correspondence/</link><pubDate>Fri, 27 Dec 2019 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/ar/project/cavrianas-correspondence/</guid><description>&lt;p&gt;رسائل فيليبو كافريانا (Filippo Cavriana) السرية شهادةٌ لا نظير لها على الحروب الدينية الفرنسية؛ فهي تتابع، على امتداد ما يزيد على 20 عامًا، الدسائس والمعارك والمفاوضات والمؤامرات التي كانت تضبط إيقاع الحياة في البلاط الفرنسي وما وراءه.&lt;/p&gt;
&lt;p&gt;وتُحفظ هذه الرسائل في
، مبعثرةً في أغلبها بين مئات الحزم التي لم تُجرد بعد، أو الـ&lt;em&gt;filze&lt;/em&gt; كما يسمونها هناك. ولئن وُفّقت في السنوات الأخيرة إلى الكشف عن عشرات الرسائل الجديدة، فإن هذا الضرب من البحث الأرشيفي يزداد عسرًا يومًا بعد يوم: فبُعد المسافة عن فلورنسا، وتردّي بعض المرافق العامة في إيطاليا، وجائحة كوفيد-19، كلها تجعل من مشاريع النشر هذه مسارًا طويلًا لا يُؤمن عاقبته.&lt;/p&gt;
&lt;p&gt;على أن نشر المصادر الأولية ينبغي أن يبقى، مهما تعاظمت الصعاب، من صميم عمل المؤرخ. غير أن الصورة التي يتخذها هذا النشر لا بد أن تتغير على الأرجح: فليس المطلوب أن يتلاءم مع الوضع الذي وصفته آنفًا فحسب، بل أن يعبّر تعبيرًا أصدق عن الطابع التراكمي لهذا البحث، وأن يتيح لغيري أن يكمل المسيرة من حيث توقفت.&lt;/p&gt;
&lt;p&gt;ومن هنا نشأت فكرة استحداث ضرب جديد من مشاريع النشر الرقمي يكون &lt;strong&gt;قابلًا للتوسع&lt;/strong&gt;، و&lt;strong&gt;مستدامًا&lt;/strong&gt;، و&lt;strong&gt;موثوقًا&lt;/strong&gt;، و&lt;strong&gt;مستقلًّا عن المنصة&lt;/strong&gt;، وربما &lt;strong&gt;تعاونيًّا&lt;/strong&gt; أيضًا.&lt;/p&gt;
&lt;p&gt;وها هي الطبعة على الشبكة اليوم: &lt;strong&gt;
&lt;/strong&gt;. تجمع ما نُسخ من الرسائل حتى الآن، من أرشيفَي الدولة في فلورنسا ومانتوفا ومن المكتبة الوطنية الفرنسية (BnF)، وتكبر كلما طفت رسائل جديدة على السطح. وقد بسطت الحجج التي أملت تصميمها في
.&lt;/p&gt;</description></item></channel></rss>