Multi-Saxon

28 مارس 2025 · 2 زمان خواندن
code

Multi-Saxon: پردازش موازی XSLT برای پیکره‌های بزرگ TEI

Multi-Saxon خلأ مهمی را در ابزارهای پردازش XML پر می‌کند: اجرای موازی تبدیل‌های XSLT 2.0 و 3.0 که LXML (کتابخانهٔ پرکاربرد XML در Python) از عهده‌شان برنمی‌آید. Multi-Saxon که به‌طور خاص برای مجموعه‌های بزرگ اسناد XML TEI طراحی شده، با اجرای موازیِ بهینه زمان پردازش را به‌طور چشمگیری کوتاه می‌کند.

ویژگی‌های کلیدی

  • پشتیبانی پیشرفتهٔ XSLT: تبدیل‌های XSLT 2.0 و 3.0 را فراتر از توانایی‌های LXML پردازش می‌کند
  • پردازش موازی: زمان تبدیل مجموعه‌های بزرگ اسناد را با موازی‌سازی به‌شدت کاهش می‌دهد
  • بهینه برای TEI: به‌طور خاص برای اسناد XML استاندارد Text Encoding Initiative (TEI) مهندسی شده است
  • کارایی مقیاس‌پذیر: پیکره‌هایی از صدها تا هزاران سند را به‌خوبی مدیریت می‌کند
  • چندسکویی: در سیستم‌عامل‌ها و محیط‌های گوناگون کار می‌کند

مشکلی که Multi-Saxon حل می‌کند

پژوهشگران علوم انسانی دیجیتال که با TEI کار می‌کنند اغلب با دو چالش جدی روبه‌رویند:

  1. LXML (کتابخانهٔ رایج پردازش XML در Python) تنها از XSLT 1.0 پشتیبانی می‌کند و استفاده از امکانات پیشرفته‌تر XSLT 2.0/3.0 را ناممکن می‌سازد
  2. پردازش ترتیبی پیکره‌های بزرگ اسناد TEI می‌تواند به‌طرزی بازدارنده زمان‌بر باشد

Multi-Saxon هر دو مشکل را حل می‌کند: از توانایی‌های پیشرفتهٔ XSLT در Saxon بهره می‌گیرد و پردازش را میان چند هسته توزیع می‌کند تا کارایی به‌طور چشمگیری بالا رود.

پیاده‌سازی

Multi-Saxon، Python را با پردازشگر Saxon جاوا ترکیب می‌کند تا خط لولهٔ تبدیلی پرکارایی بسازد:

  • از کتابخانهٔ Saxon جاوا برای پردازش استوار XSLT 2.0/3.0 استفاده می‌کند
  • با چندپردازشی، تبدیل‌ها را میان هسته‌های CPU در دسترس توزیع می‌کند
  • استخرهای پردازشگر را به‌طور بهینه مدیریت می‌کند تا توان عملیاتی به بیشینه برسد
  • رابطی ساده برای پردازش دسته‌ای اسناد TEI فراهم می‌کند

نمونهٔ کاربرد

from multi_saxon import MultiSaxon

# Initialize with your XSLT stylesheet
transformer = MultiSaxon("transform.xsl")

# Transform a single document
transformer.transform("input.xml", "output.xml")

# Transform an entire directory in parallel
transformer.transform_directory("input_dir", "output_dir")

اهمیت آن برای علوم انسانی دیجیتال

برای پروژه‌های علوم انسانی دیجیتال که با مجموعه‌های بزرگ اسناد TEI سروکار دارند، Multi-Saxon این‌ها را ممکن می‌کند:

  • تبدیل‌های پیچیده در سطح کل پیکره که با LXML ناممکن است
  • کاهش چشمگیر زمان پردازش (اغلب 5 تا 10 برابر روی سیستم‌های چندهسته‌ای)
  • تحلیل پیشرفته‌تر به کمک امکانات پیشرفتهٔ XSLT 2.0/3.0
  • گردش کار ساده‌تر برای پردازش کل مجموعه‌های اسناد

کد منبع و مستندات را در مخزن GitHub بیابید.

Clément Godbarge
Authors
مدرس علوم انسانی دیجیتال
کلمان گودبارژ مدرس علوم انسانی دیجیتال در دانشگاه سنت اندروز است. پژوهش‌های او بر پیوند علم و فن حکومت در اروپای اوایل دورهٔ مدرن متمرکز است. او در کتابی که به‌زودی منتشر می‌شود بررسی می‌کند که چگونه پزشکان وابسته به دربارهای فرانسه و ایتالیا در سدهٔ شانزدهم خود را به‌عنوان کارشناسان سیاسی از نوعی تازه مطرح کردند. پژوهش‌های او با حمایت بنیاد اندرو دبلیو. ملون، کمیسیون فولبرایت، انجمن رنسانس آمریکا و دانشگاه هاروارد انجام شده است.