2025-11-23T02:07:17.015845

Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML

García-González
Nowadays, software is one of the cornerstones when conducting research in several scientific fields which employ computer-based methodologies to answer new research questions. However, for these experiments to be completely reproducible, research software should comply with the FAIR principles, yet its metadata can be represented following different data models and spread across different locations. In order to bring some cohesion to the field, CodeMeta was proposed as a vocabulary to represent research software metadata in a unified and standardised manner. While existing tools can help users to generate CodeMeta files for some specific use cases, they fall short on flexibility and adaptability. Hence, in this work, I propose the use of declarative mapping rules to generate CodeMeta files, illustrated through the implementation of three crosswalks in ShExML which are then expanded and merged to cover the generation of CodeMeta files for two existing research software artefacts. Moreover, the outputs are validated using SHACL and ShEx and the whole generation workflow is automated requiring minimal user intervention upon a new version release. This work can, therefore, be used as an example upon which other developers can include a CodeMeta generation workflow in their repositories, facilitating the adoption of CodeMeta and, ultimately, increasing research software FAIRness.
academic

توليد CodeMeta باستخدام قواعد التعيين التصريحية: نهج مفتوح النهاية باستخدام ShExML

المعلومات الأساسية

  • معرّف الورقة: 2510.09172
  • العنوان: Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML
  • المؤلف: Herminio García-González (Kazerne Dossin, Mechelen, Belgium)
  • التصنيف: cs.DL (المكتبات الرقمية)، cs.SE (هندسة البرمجيات)
  • تاريخ النشر: 10 أكتوبر 2025 (نسخة arXiv التمهيدية)
  • رابط الورقة: https://arxiv.org/abs/2510.09172v1

الملخص

في الوقت الحاضر، تعتبر البرمجيات أساساً لأبحاث متعددة التخصصات التي تعتمد على الأساليب المحوسبة للإجابة على أسئلة بحثية جديدة. ومع ذلك، لضمان قابلية إعادة الإنتاج الكاملة لهذه التجارب، يجب أن تتوافق برمجيات البحث مع مبادئ FAIR، غير أن بيانات التعريف الخاصة بها قد تتبع نماذج بيانات مختلفة وتكون موزعة في مواقع متعددة. لإحداث نوع من التماسك في هذا المجال، تم اقتراح CodeMeta كمفردات لتمثيل بيانات تعريف برمجيات البحث بطريقة موحدة ومعيارية. بينما يمكن للأدوات الموجودة مساعدة المستخدمين على توليد ملفات CodeMeta لحالات استخدام محددة معينة، إلا أنها تفتقر إلى المرونة والقابلية للتكيف. لذلك، تقترح هذه الورقة استخدام قواعس التعيين التصريحية لتوليد ملفات CodeMeta، موضحة من خلال تنفيذ ثلاث تعيينات عابرة في ShExML، ثم توسيع ودمج هذه التعيينات لتغطية توليد ملفات CodeMeta لاثنين من القطع الأثرية البرمجية البحثية الموجودة. علاوة على ذلك، يتم التحقق من المخرجات باستخدام SHACL و ShEx، مما يؤتمت سير العمل الكامل للتوليد، مما يتطلب الحد الأدنى من تدخل المستخدم عند إصدار نسخ جديدة.

السياق البحثي والدافع

تعريف المشكلة

  1. مشكلة التوافق مع مبادئ FAIR لبرمجيات البحث: بينما تعتبر برمجيات البحث دعماً مهماً للبحث العلمي، إلا أن بيانات تعريفها موزعة على منصات مختلفة (GitHub و Zenodo و Maven وغيرها)، وتستخدم نماذج بيانات مختلفة، وتفتقر إلى التوحيد.
  2. قيود الأدوات الموجودة:
    • تدعم معظم الأدوات التحويل من واحد إلى واحد فقط (مصدر بيانات تعريف واحد إلى CodeMeta)
    • تفتقر إلى المرونة والقابلية للتكيف
    • تتطلب تدخلاً يدوياً من المستخدم لتنسيق البيانات
    • قدرات الأتمتة غير كافية
  3. حواجز اعتماد CodeMeta: بينما توفر CodeMeta معياراً موحداً لتمثيل بيانات تعريف برمجيات البحث، فإن قيود الأدوات الموجودة تعيق اعتمادها على نطاق واسع.

أهمية البحث

  • تعزيز العلم المفتوح: برمجيات البحث المتوافقة مع مبادئ FAIR ضرورية لتحقيق العلم المفتوح
  • ضمان قابلية الإعادة: معايير البيانات الموحدة تساعد على قابلية إعادة إنتاج نتائج البحث
  • التشغيل البيني عبر المنصات: حل مشكلة عدم توافق تنسيقات البيانات الوصفية بين المنصات المختلفة

المساهمات الأساسية

  1. اقتراح نهج قواعد التعيين التصريحية: استخدام لغة ShExML لإنشاء قواعد توليد CodeMeta مرنة وقابلة للصيانة
  2. تنفيذ ثلاث تعيينات عابرة رئيسية: تطوير تطبيقات ShExML كاملة لمنصات GitHub و Maven و Zenodo
  3. بناء إطار عمل تعيين موحد: إظهار كيفية دمج مصادر بيانات متعددة غير متجانسة لتوليد ملف CodeMeta واحد
  4. تطوير سير عمل أتمتة كامل: يتضمن إطار عمل JSON-LD والتحقق من SHACL/ShEx وتكامل GitHub Actions
  5. توفير حالات تطبيق عملية: النشر الناجح في مشروعي ShExML Engine و DMAOG مفتوحي المصدر

شرح الطريقة

تعريف المهمة

المدخلات: بيانات من موفري بيانات تعريف متعددين غير متجانسين (GitHub API وملفات Maven POM وسجلات Zenodo وغيرها) المخرجات: ملف JSON-LD معياري يتوافق مع مواصفات CodeMeta 3.0 القيود: الحفاظ على السلامة الدلالية للبيانات، دعم التحديثات الآلية، ضمان نجاح التحقق من المخرجات

معمارية الطريقة الأساسية

1. لغة التعيين التصريحية ShExML

تحتوي ShExML على مكونين رئيسيين:

  • جزء التصريح:
    • تعريفات البادئة (اختصارات IRI)
    • تعريفات مصادر البيانات (مواقع الملفات المدخلة)
    • تعريفات الدوال (توسيع الوظائف الأساسية)
    • تعريفات المكررات (طرق استخراج البيانات)
    • تعريفات التعبيرات (دمج البيانات من مصادر مختلفة)
  • جزء التوليد:
    • تعريفات الأشكال (قواعد توليد الرسم البياني RDF)
    • بناء ثلاثيات الموضوع-المسند-الكائن

2. تنفيذ ثلاث تعيينات عابرة أساسية

تعيين GitHub (مثال الكود):

PREFIX codemeta: <https://w3id.org/codemeta/3.0/>
PREFIX schema: <http://schema.org/>
SOURCE repo_info <https://api.github.com/repos/herminiogg/ShExML>
ITERATOR gh <jsonpath: $> {
    FIELD id <id>
    FIELD name <name>
    FIELD description <description>
    // ... حقول إضافية
}
schema:SoftwareSourceCode ex:[md.name] {
    a schema:SoftwareSourceCode ;
    schema:identifier [md.id] ;
    schema:name [md.name] ;
    // ... تعيينات خصائص إضافية
}

تعيين Maven: استخدام استعلامات XPath لملفات XML بصيغة POM، معالجة تعيينات المساحات الاسمية والتبعيات.

تعيين Zenodo: معالجة الهياكل المتداخلة من JSON، بما في ذلك علاقات الكيانات متعددة المستويات مثل المؤلفين والمؤسسات.

3. استراتيجية التعيين الموحد

  • اختيار المصدر الذكي: عند احتواء مصادر متعددة على نفس الخاصية، يتم اختيار أفضل مصدر بناءً على الصلة الدلالية وسهولة الصيانة
  • تكملة القيم المشفرة بشكل صارم: بالنسبة للبيانات التي لا يمكن الحصول عليها من مصادر خارجية، يُسمح بالتعريف المباشر في ملف التعيين
  • دوال تحويل البيانات: معالجة تحويلات تنسيق التاريخ وتوحيد عناوين URL وغيرها من مهام تنظيف البيانات

نقاط الابتكار التقني

  1. دمج البيانات من مصادر متعددة: بخلاف الأدوات الموجودة التي تقوم بالتحويل من واحد إلى واحد، يدعم دمج مرن لأي عدد من المصادر غير المتجانسة
  2. القواعد التصريحية: مقارنة بالطرق البرمجية، توفر قابلية قراءة وصيانة وقابلية مشاركة أفضل
  3. التحكم الدقيق: يسمح بالتحكم الدقيق في التعيين على مستوى الخاصية، وليس مجرد تغطية الأولويات البسيطة
  4. التكامل الآلي: سير عمل CI/CD كامل متكامل، يدعم التحديثات الآلية عند إصدار نسخ جديدة

إعداد التجارب

مشاريع الاختبار

  1. محرك ShExML: أداة تعيين البيانات غير المتجانسة المكتوبة بلغة Scala
  2. مكتبة DMAOG: مكتبة Scala المتعلقة بتعيين البيانات

مصادر البيانات

  • GitHub API: معلومات المستودع الأساسية وسجلات الإصدارات وتتبع المشاكل وغيرها
  • Maven Central: بيانات تعريف المشروع والمعلومات المتعلقة بالتبعيات في ملفات POM
  • Zenodo: DOI ومعلومات التمويل والتفاصيل الشاملة للمؤلفين وغيرها

طرق التحقق

  • التحقق من SHACL: استخدام معيار W3C الموصى به للتحقق من الهيكل
  • التحقق من ShEx: استخدام Shape Expressions للتحقق من الأنماط
  • مولد CodeMeta: استخدام أداة التحقق الرسمية للتأكيد النهائي

سلسلة الأدوات الآلية

  • GitHub Actions: خط أنابيب CI/CD
  • نصوص Groovy: معالجة إطار عمل JSON-LD
  • نصوص Bash: تنسيق سير العمل

نتائج التجارب

الإنجازات الرئيسية

1. تغطية التعيين

المنصةعدد الخصائص المدعومةتغطية فئات CodeMeta
GitHub12 خاصية أساسيةSoftwareSourceCode, Person
Maven8 خصائص أساسيةSoftwareSourceCode, العلاقات التبعية
Zenodo15 خاصية أساسيةSoftwareSourceCode, Person, Organization

2. تأثير الأتمتة

  • تكلفة الصيانة: كل تحديث نسخة يتطلب فقط تعديل سطرين من الكود (عناوين مصادر الإدخال)
  • وقت المعالجة: وقت تنفيذ سير العمل الكامل < دقيقتان
  • معدل النجاح: توليد ملفات CodeMeta صحيحة بنجاح في المشروعين المختبرين

3. التحقق من القابلية للتكيف

التكيف من محرك ShExML إلى مشروع DMAOG:

  • يتطلب فقط تعديل 6 أسطر من الكود (4 استدعاءات API وحذف مساهم واحد)
  • الحفاظ على دعم نفس المكدس التقني (Scala + SBT + Maven Central)
  • نجاح ملفات CodeMeta المولدة في جميع اختبارات التحقق

تحليل جودة المخرجات

تحتوي ملفات CodeMeta المولدة على:

  • البيانات الوصفية الأساسية: الاسم والوصف والإصدار والترخيص وغيرها
  • معلومات التطوير: لغة البرمجة ومنصة التشغيل والتكامل المستمر وغيرها
  • معلومات الأشخاص: المؤلفون والمساهمون والارتباطات المؤسسية وغيرها
  • الموارد المرتبطة: مستودع الكود وروابط التنزيل والمراجع وغيرها
  • العلاقات التبعية: متطلبات البرمجيات ومعلومات الإصدار

نتائج التحقق

نجحت جميع ملفات CodeMeta المولدة في:

  • التحقق من هيكل SHACL
  • التحقق من نمط ShEx
  • التحقق الرسمي من مولد CodeMeta

الأعمال ذات الصلة

تصنيف أدوات CodeMeta الموجودة

1. أدوات التحويل

  • Bolognese: مكتبة Ruby تدعم تحويل تنسيقات بيانات DOI المتعددة
  • codemetar: حزمة R متخصصة لتوليد CodeMeta
  • codemetapy: تطبيق Python يدعم مديري الحزم المتعددين
  • cffconvert: أداة تحويل Citation File Format

2. أدوات الإدارة

  • codemeta-server: خدمة دليل الأدوات المستندة إلى CodeMeta
  • HERMES: منصة نشر برمجيات البحث المتكاملة مع CI/CD

3. الأدوات المساعدة

  • مولد CodeMeta: مولد تفاعلي قائم على الويب
  • SMECS: نظام استخراج واستراتيجية بيانات البرمجيات

مزايا هذه الورقة

  1. المرونة: دعم أي عدد ونوع من مصادر البيانات الوصفية
  2. التحكم الدقيق: تعيين دقيق على مستوى الخاصية، وليس مجرد أولويات بسيطة
  3. الطريقة التصريحية: أسهل في الفهم والصيانة مقارنة بالتطبيقات البرمجية
  4. الأتمتة الكاملة: عملية من طرف إلى طرف من التوليد إلى التحقق

الخلاصة والمناقشة

الاستنتاجات الرئيسية

  1. جدوى قواعد التعيين التصريحية: إثبات الجدوى التقنية لاستخدام ShExML لتوليد CodeMeta
  2. مزايا دمج المصادر المتعددة: إظهار قيمة وتأثير دمج مصادر البيانات الوصفية غير المتجانسة
  3. نجاح النشر الآلي: تحقيق سير عمل آلي منخفض التكلفة في مشاريع حقيقية
  4. التحقق من القابلية للتوسع: إثبات عمومية الطريقة من خلال التكيف الناجح لمشروعين

القيود

  1. اعتماد المكدس التقني: التطبيق الحالي موجه بشكل أساسي نحو نظام Scala/JVM
  2. منحنى التعلم: يتطلب من المستخدمين تعلم بناء جملة ShExML والمفاهيم
  3. تغطية المنصات: تم تنفيذ التعيينات العابرة فقط لثلاث منصات رئيسية
  4. التكيف مع المشاريع المعقدة: قد تتطلب المشاريع المعقدة التي تستخدم مكادس تقنية متعددة مزيداً من التخصيص

الاتجاهات المستقبلية

  1. توسيع التعيينات العابرة: تنفيذ تعيينات لجميع المنصات المدعومة رسمياً من قبل CodeMeta
  2. واجهة مرئية: تطوير محرر قواعد تعيين رسومي
  3. التوليد بمساعدة الذكاء الاصطناعي: الاستفادة من نماذج اللغة الكبيرة لتوليد قواعد التعيين تلقائياً
  4. بناء مكتبة القوالب: توفير قوالب محددة مسبقاً لمكادس تقنية وأنواع مشاريع مختلفة

التقييم المتعمق

المزايا

  1. قوة الابتكار المنهجي: أول تطبيق لقواعس التعيين التصريحية على توليد CodeMeta، مما يوفر مسار تقني جديد
  2. قيمة عملية عالية: حل نقاط الضعف الفعلية في إدارة بيانات تعريف برمجيات البحث
  3. اكتمال التطبيق: توفير حل شامل من المفهوم إلى النشر
  4. قابلية إعادة الإنتاج الجيدة: توفير كود تطبيق مفصل وأدلة نشر

أوجه القصور

  1. نطاق التقييم محدود: اختبار على مشروعين متشابهين فقط، يفتقر إلى التحقق على نطاق واسع
  2. تحليل الأداء مفقود: عدم توفير تقييم الأداء عند معالجة المشاريع الكبيرة أو كميات البيانات الكبيرة
  3. معالجة الأخطاء غير كافية: تحليل غير كافٍ لقوة التعامل مع عدم توفر مصادر البيانات أو تغيير التنسيق
  4. البحث عن المستخدم مفقود: عدم إجراء تقييمات قبول المستخدم وسهولة الاستخدام

التأثير

  1. المساهمة الأكاديمية: توفير حل تقني جديد لمجال إدارة بيانات تعريف برمجيات البحث
  2. القيمة العملية: يمكن تطبيقها مباشرة على اعتماد CodeMeta في مشاريع المصدر المفتوح
  3. دفع النظام البيئي: يساعد على زيادة معدل اعتماد CodeMeta في مجتمع برمجيات البحث
  4. تعزيز التوحيد القياسي: دعم تطبيق مبادئ FAIR في مجال برمجيات البحث

السيناريوهات المناسبة

  1. مشاريع البرمجيات مفتوحة المصدر: مناسبة بشكل خاص للبرمجيات البحثية التي تحتاج إلى النشر على منصات متعددة
  2. المؤسسات الأكاديمية: يمكن استخدامها لإدارة بيانات تعريف برمجيات البحث على مستوى المؤسسة
  3. التكامل مع CI/CD: مناسبة للمشاريع التي تحتوي بالفعل على عمليات نشر آلية
  4. توحيد البيانات الوصفية: مناسبة للمنظمات البحثية التي تحتاج إلى توحيد تنسيقات البيانات الوصفية

المراجع

تحتوي الورقة على 37 مرجعاً يغطي مبادئ FAIR وتقنيات الويب الدلالية ومواصفات CodeMeta ولغات التعيين التصريحية والأعمال المهمة الأخرى ذات الصلة، مما يوفر أساساً نظرياً وتقنياً متيناً للبحث.


التقييم الشامل: هذه ورقة بحثية ذات قيمة عملية في مجال إدارة بيانات تعريف برمجيات البحث، والطريقة التصريحية المقترحة لها ابتكارية، والتطبيق كامل وقابل للإعادة، وله معنى إيجابي لتعزيز اعتماد معيار CodeMeta. بينما لا تزال هناك مجالات للتحسين في نطاق وعمق التقييم، فإنها توفر مساهمة تقنية قيمة لهذا المجال.