persNamer 1.2: رقم VIAF واحد، تسعة ملفات استنادية

7 سبتمبر 2026·
Clément Godbarge
Clément Godbarge
· 3 دقيقة قراءة
post الإنسانيات الرقمية

لم يكن persNamer في أوله أكثر من أداة تقضي حاجة صغيرة: رقم VIAF يدخل، ومدخل <person> بصيغة TEI يخرج، ومعه وسم <persName> تعلّمون به أسماء الأعلام في نصّكم. شيء واحد لا غير، والمدخل الذي يخرجه هزيل لا يكاد يُغني: اسم وتاريخان ومعرّف. الإصدار 1.2، وقد صدر اليوم، لا يزال يفعل ذلك الشيء الواحد، إنما صار المدخل الذي يخرجه جديرًا بأن يُحتفظ به.

ما يحويه مدخل الشخص اليوم

لنبدأ بالاسم. في عنقود VIAF (cluster) لكل مكتبة مشاركة صورةٌ للاسم من عندها، وكان persNamer القديم يقنع بأول صورة تقع في يده. سلوه عن فولتير (Voltaire) فيردّ عليكم: « فولتير، » — بالحروف العربية لا اللاتينية، والفاصلة عالقة في ذيل الاسم — ثم يزيدكم من الشعر بيتًا بـxml:id فارغ. أما اليوم فالأداة تعدّ الصور في العنقود كله فتستبقي ما أجمعت عليه السجلات المصدرية، وتُلحق ما بقي في <persName type="variant"> مرتّبًا من الأشيع إلى الأندر. والتواريخ تُعيَّر، فيغدو 1572-08-00 هو 1572-08، وتُكتب مرتين: نصًّا يقرؤه الإنسان، وسمةَ @when هي وحدها ما ستلتفت إليه أي معالجة للملف تفهم التواريخ. وأما الجنس والأوصاف فيحضران متى أتاحهما VIAF.

وأما ما كنت أنتظره أكثر من أي شيء آخر فهو المعرّفات: كل معرّف يربطه VIAF بالشخص، سواء عبر schema:sameAs أو عبر معرّفات مصادره هو، يُدوَّن في عنصر <idno> مستقل — BnF، وGND، ومكتبة الكونغرس، وSUDOC، وWikidata، وISNI، وBNE، وLIBRIS، وNDL. رقم واحد يدخل فتخرج تسعة فهارس. وفي سجلّ أعلام (personography) ذلك هو الفرق كله بين قائمة أسماء صمّاء وعقدة في شبكة البيانات الاستنادية.

<person xml:id="pers-teligny-c">
  <persName>Charles de Téligny</persName>
  <birth when="1535">1535</birth>
  <death when="1572-08-24">1572-08-24</death>
  <sex value="M">M</sex>
  <idno type="VIAF">314802260</idno>
  <idno type="BNF">16133360</idno>
  <idno type="Wikidata">Q1868249</idno>
  <idno type="ISNI">0000000071126808</idno>
</person>

من المقتطفات إلى سجلّ الأعلام

أن تطبع XML في الطرفية فذلك يكفي لشخص واحد؛ غير أن الطبعة المحقَّقة فيها مئات الأشخاص. لذلك صار persNamer يقبل أرقام VIAF جملةً، ويتريّث بين الطلب والطلب مراعاةً لخادم VIAF، ويحتفظ بما جلبه في ذاكرة مؤقتة كي لا يعود إليه، ثم — إذا أعطيتموه --merge — يغرس المداخل الجديدة في <listPerson> من ملف TEI قائم من غير وسيط. ومن كان في الملف من قبل عرفته الأداة برقم VIAF وأبقت له xml:id الذي يحمله؛ والمعرّفات الجديدة تُقابَل بما في الملف، فإن نازعها معرّف قائم أُلحق بها ذيل (-2 أو -3)؛ وفي الختام يُعاد ترتيب مسافات الملف كله، على ألّا يُمسّ قبل أن تُحفظ منه نسخة .bak.

persnamer --merge edition.xml 314802260 36925746

وثمة تغيير واحد يحسن أن تعلموه: أداة النسب التي تسبق اسم العائلة (de) لم تعد تدخل في المعرّف افتراضيًا، فشارل دو تيليني (Charles de Téligny) يصير pers-teligny-c بعد أن كان pers-deteligny-c. فمن استقرّ مشروعه على الصيغة القديمة ردّها إليه --keep-particle، ومن آثر أن يستغني عن الأسماء كلّيةً أعطاه --id-format viaf المعرّف pers-viaf-314802260.

أعمال صيانة

لم يعد السكربت سكربتًا، بل حزمة كاملة لها أمرها persnamer: سطر واحد يثبّتها عبر uv tool install أو pipx، وإن شئتم تجربتها من غير تثبيت فـuvx يشغّلها مرة واحدة ويمضي. وتحرسها ستة وعشرون اختبارًا تعمل على ردود مسجّلة من VIAF، فلا تحتاج المجموعة إلى شبكة أصلًا؛ ويعيد التكامل المستمر (CI) تشغيلها على Python من 3.9 إلى 3.13، ويُتحقق من صحة المخرجات وفق TEI P5. والرخصة Apache 2.0 كما كانت.

يبقى ما لا تستطيعه الأداة بعدُ: أن تخبركم أين وُلد فلان وما كانت حرفته، فـRDF العناقيد في VIAF خالٍ من الأماكن والمهن جميعًا. لكن تسجيلات BnF وGND المرتبطة بها تحوي ذلك كله، وقد صارت أرقامها الآن في أيديكم.

الشيفرة والتوثيق على GitHub.

Clément Godbarge
Authors
محاضر في الإنسانيات الرقمية
كليمان غودبارج محاضر في الإنسانيات الرقمية بجامعة سانت أندروز. تتناول أبحاثه العلاقة بين العلم وفن الحكم في أوروبا في مطلع العصر الحديث. وفي كتابه الذي سيصدر قريبًا، يدرس كيف قدّم الأطباء الملحقون ببلاطات فرنسا وإيطاليا في القرن السادس عشر أنفسهم بوصفهم خبراء سياسيين من نوع جديد. وقد حظيت أبحاثه بدعم مؤسسة أندرو و. ميلون، ولجنة فولبرايت، وجمعية عصر النهضة الأمريكية، وجامعة هارفارد.