<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TEI |</title><link>https://clementgodbarge.com/fa/tag/tei/</link><atom:link href="https://clementgodbarge.com/fa/tag/tei/index.xml" rel="self" type="application/rss+xml"/><description>TEI</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fa</language><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><image><url>https://clementgodbarge.com/media/icon_hu_64a6c3bec25b3d7b.png</url><title>TEI</title><link>https://clementgodbarge.com/fa/tag/tei/</link></image><item><title>tei-mcp v0.3: رمزگذاری TEI بدون بازنویسی متن مبدأ</title><link>https://clementgodbarge.com/fa/post/tei-mcp-span-locked/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/post/tei-mcp-span-locked/</guid><description>&lt;p&gt;وقتی
، هدف این بود که
دستیارهای هوش مصنوعی از توهم در نشانه‌گذاری TEI باز بمانند. پایه‌گذاری بر شِما
بخشی از مشکل را حل کرد: با دسترسی مستقیم و ابزارمحور به مشخصات P5،
مدل دیگر ناچار نیست حدس بزند یک عنصر چه معنایی دارد یا کدام صفت‌ها را
می‌پذیرد. خروجی از اعتبارسنجی می‌گذرد.&lt;/p&gt;
&lt;p&gt;اما توهم در رمزگذاری TEI دو چهره دارد و شِما تنها یکی از آن‌ها را
می‌گیرد. اعتبارسنجی در برابر مشخصات به شما می‌گوید که &lt;em&gt;نشانه‌گذاری&lt;/em&gt;
خوش‌ساخت است. دربارهٔ &lt;em&gt;متنی&lt;/em&gt; که نشانه‌گذاری آن را در بر گرفته چیزی نمی‌گوید. و
همان‌جا — در خودِ متن — است که توهم‌های زیان‌بارتر لانه می‌کنند.
ترکیب بازه‌قفل (span-locked composition)، ویژگی شاخص نسخهٔ 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‌ای
بسازد که متن بدنه‌اش با مبدأ فرق کند. این ناوردا مکانیکی است،
نه رفتاری. لازم نیست به مدل اعتماد کنید که توهم نزند؛ کافی است
به یک مقایسهٔ &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>tei-mcp</title><link>https://clementgodbarge.com/fa/code/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/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; هر عنصر، کلاس، ماکرو یا پیمانه با نام، بدون حساسیت به حروف بزرگ و کوچک و با پیشنهاد اصلاح غلط‌های تایپی&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: مدل‌های محتوا، صفت‌ها، فهرست‌های بستهٔ مقادیر، یکپارچگی ارجاع‌ها و هشدارهای منسوخ‌شدگی&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; در همهٔ انواع موجودیت‌ها با الگوهای regex&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/fa/post/tei-mcp/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/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 مشخصات ODD استاندارد TEI P5 را تجزیه می‌کند و 16 ابزار در اختیار می‌گذارد که
رایج‌ترین پرسش‌های یک مصحح یا رمزگذار را پوشش می‌دهند:&lt;/p&gt;
&lt;ul&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; تودرتویی والد–فرزند را بررسی کنید، یا
دسترس‌پذیری را در تمام سلسله‌مراتب عنصرها ردیابی کنید.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;آیا سند من معتبر است؟&lt;/strong&gt; یک فایل TEI XML را در برابر مشخصات اعتبارسنجی کنید: مدل‌های
محتوا، مقادیر صفت‌ها، فهرست‌های بستهٔ مقادیر، یکپارچگی ارجاع‌ها و
هشدارهای منسوخ‌شدگی.&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/fa/code/multi-saxon/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/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) از عهده‌شان برنمی‌آید. Multi-Saxon که به‌طور خاص برای مجموعه‌های بزرگ اسناد 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 استاندارد Text Encoding Initiative (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 هر دو مشکل را حل می‌کند: از توانایی‌های پیشرفتهٔ XSLT در Saxon بهره می‌گیرد و پردازش را میان چند هسته توزیع می‌کند تا کارایی به‌طور چشمگیری بالا رود.&lt;/p&gt;
&lt;h2 id="پیادهسازی"&gt;پیاده‌سازی&lt;/h2&gt;
&lt;p&gt;Multi-Saxon، Python را با پردازشگر Saxon جاوا ترکیب می‌کند تا خط لولهٔ تبدیلی پرکارایی بسازد:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;از کتابخانهٔ Saxon جاوا برای پردازش استوار XSLT 2.0/3.0 استفاده می‌کند&lt;/li&gt;
&lt;li&gt;با چندپردازشی، تبدیل‌ها را میان هسته‌های CPU در دسترس توزیع می‌کند&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;برای پروژه‌های علوم انسانی دیجیتال که با مجموعه‌های بزرگ اسناد TEI سروکار دارند، Multi-Saxon این‌ها را ممکن می‌کند:&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/fa/code/persnamer/</link><pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate><guid>https://clementgodbarge.com/fa/code/persnamer/</guid><description>&lt;h2 id="persnamer-پیوند-tei-به-virtual-international-authority-file"&gt;persNamer: پیوند TEI به Virtual International Authority File&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;persNamer ابزار تخصصی پایتونی است که وارد کردن داده‌های مستند اشخاص از VIAF (Virtual International Authority File) به اسناد TEI XML را ساده می‌کند. persNamer با تبدیل شناسه‌های 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></channel></rss>