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

ShExML का उपयोग करके CodeMeta उत्पन्न करना: घोषणात्मक मानचित्रण नियमों का उपयोग करके एक खुला दृष्टिकोण

मूल जानकारी

  • पेपर ID: 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 (सॉफ्टवेयर इंजीनियरिंग)
  • प्रकाशन समय: 25 अक्टूबर 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. घोषणात्मक मानचित्रण नियम विधि का प्रस्ताव: CodeMeta उत्पादन नियमों को लचीला और रखरखाव योग्य बनाने के लिए ShExML भाषा का उपयोग करना
  2. तीन प्रमुख क्रॉस-मानचित्रण का कार्यान्वयन: GitHub, Maven और Zenodo प्लेटफॉर्म के लिए पूर्ण ShExML मानचित्रण कार्यान्वयन विकसित करना
  3. एकीकृत मानचित्रण ढांचा का निर्माण: कई विषम मेटाडेटा स्रोतों को एकल CodeMeta फ़ाइल उत्पन्न करने के लिए कैसे विलय किया जाए यह प्रदर्शित करना
  4. पूर्ण स्वचालन कार्यप्रवाह विकास: JSON-LD फ्रेमिंग, SHACL/ShEx सत्यापन और GitHub Actions एकीकरण सहित
  5. व्यावहारिक अनुप्रयोग मामले प्रदान करना: ShExML इंजन और DMAOG दो ओपन-सोर्स परियोजनाओं में सफल तैनाती

विधि विस्तार

कार्य परिभाषा

इनपुट: कई विषम मेटाडेटा प्रदाताओं से डेटा (GitHub API, Maven POM फ़ाइलें, Zenodo रिकॉर्ड आदि) आउटपुट: CodeMeta 3.0 विनिर्देश के अनुरूप मानकीकृत JSON-LD फ़ाइल बाधाएं: डेटा शब्दार्थ पूर्णता बनाए रखना, स्वचालित अपडेट का समर्थन करना, आउटपुट सत्यापन सुनिश्चित करना

मुख्य विधि आर्किटेक्चर

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 मानचित्रण: XML प्रारूप की POM फ़ाइलों को क्वेरी करने के लिए XPath का उपयोग, नेमस्पेस और निर्भरता संबंध मानचित्रण को संभालना।

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 सत्यापन: आकार अभिव्यक्तियों का उपयोग करके पैटर्न सत्यापन
  • CodeMeta Generator: आधिकारिक सत्यापन उपकरण का उपयोग करके अंतिम पुष्टि

स्वचालन उपकरण श्रृंखला

  • GitHub Actions: CI/CD पाइपलाइन
  • Groovy स्क्रिप्ट: JSON-LD फ्रेमिंग प्रसंस्करण
  • Bash स्क्रिप्ट: कार्यप्रवाह समन्वय

प्रयोगात्मक परिणाम

मुख्य उपलब्धियां

1. मानचित्रण कवरेज

प्लेटफॉर्मसमर्थित विशेषताएंCodeMeta वर्ग कवरेज
GitHub12 मुख्य विशेषताएंSoftwareSourceCode, Person
Maven8 मुख्य विशेषताएंSoftwareSourceCode, निर्भरता संबंध
Zenodo15 मुख्य विशेषताएंSoftwareSourceCode, Person, Organization

2. स्वचालन प्रभाव

  • रखरखाव लागत: प्रत्येक संस्करण अपडेट के लिए केवल 2 पंक्तियों का संशोधन (इनपुट स्रोत URL)
  • प्रसंस्करण समय: पूर्ण कार्यप्रवाह निष्पादन समय < 2 मिनट
  • सफलता दर: परीक्षण की गई दोनों परियोजनाओं में सफलतापूर्वक वैध CodeMeta फ़ाइलें उत्पन्न

3. अनुकूलनशीलता सत्यापन

ShExML इंजन से DMAOG परियोजना में अनुकूलन:

  • केवल 6 पंक्तियों का संशोधन (4 पंक्तियां API कॉल, 1 योगदानकर्ता को हटाना)
  • समान तकनीकी स्टैक समर्थन बनाए रखना (Scala + SBT + Maven Central)
  • उत्पन्न CodeMeta फ़ाइलें सभी सत्यापन परीक्षण पास करती हैं

आउटपुट गुणवत्ता विश्लेषण

उत्पन्न CodeMeta फ़ाइलों में शामिल हैं:

  • मूल मेटाडेटा: नाम, विवरण, संस्करण, लाइसेंस आदि
  • विकास जानकारी: प्रोग्रामिंग भाषा, चलाने के लिए प्लेटफॉर्म, निरंतर एकीकरण आदि
  • व्यक्तिगत जानकारी: लेखक, योगदानकर्ता, संस्थान संबद्धता आदि
  • संबंधित संसाधन: कोड रिपोजिटरी, डाउनलोड लिंक, संदर्भ आदि
  • निर्भरता संबंध: सॉफ्टवेयर आवश्यकताएं और संस्करण जानकारी

सत्यापन परिणाम

सभी उत्पन्न CodeMeta फ़ाइलें निम्नलिखित को पास करती हैं:

  • SHACL संरचना सत्यापन
  • ShEx पैटर्न सत्यापन
  • CodeMeta Generator आधिकारिक सत्यापन

संबंधित कार्य

मौजूदा CodeMeta उपकरण वर्गीकरण

1. रूपांतरण उपकरण

  • Bolognese: Ruby लाइब्रेरी, कई DOI मेटाडेटा प्रारूप रूपांतरण का समर्थन करता है
  • codemetar: R पैकेज विशेष CodeMeta उत्पादन उपकरण
  • codemetapy: Python कार्यान्वयन, कई पैकेज प्रबंधकों का समर्थन करता है
  • cffconvert: Citation File Format रूपांतरण उपकरण

2. प्रबंधन उपकरण

  • codemeta-server: CodeMeta-आधारित उपकरण निर्देशिका सेवा
  • HERMES: CI/CD एकीकृत अनुसंधान सॉफ्टवेयर प्रकाशन मंच

3. सहायक उपकरण

  • CodeMeta Generator: वेब-आधारित इंटरैक्टिव जनरेटर
  • SMECS: सॉफ्टवेयर मेटाडेटा निष्कर्षण और क्यूरेशन प्रणाली

इस पेपर के लाभ

  1. लचीलापन: किसी भी संख्या और प्रकार के मेटाडेटा स्रोतों का समर्थन करता है
  2. सूक्ष्म-दानेदार नियंत्रण: विशेषता-स्तर की सटीक मानचित्रण, सरल प्राथमिकता के बजाय
  3. घोषणात्मक विधि: प्रोग्रामेटिक कार्यान्वयन की तुलना में समझने और रखरखाव करना आसान
  4. पूर्ण स्वचालन: उत्पादन से सत्यापन तक अंत-से-अंत स्वचालन प्रक्रिया

निष्कर्ष और चर्चा

मुख्य निष्कर्ष

  1. घोषणात्मक मानचित्रण नियमों की व्यवहार्यता: ShExML का उपयोग करके CodeMeta उत्पादन की तकनीकी व्यवहार्यता को साबित किया
  2. बहु-स्रोत संलयन लाभ: विषम मेटाडेटा स्रोतों को एकीकृत करने के मूल्य और प्रभाव को प्रदर्शित किया
  3. स्वचालन तैनाती सफलता: वास्तविक परियोजनाओं में कम रखरखाव लागत के साथ स्वचालन कार्यप्रवाह को लागू किया
  4. स्केलेबिलिटी सत्यापन: दो परियोजनाओं के सफल अनुकूलन के माध्यम से विधि की सामान्यता को साबित किया

सीमाएं

  1. तकनीकी स्टैक निर्भरता: वर्तमान कार्यान्वयन मुख्य रूप से Scala/JVM पारिस्थितिकी तंत्र के लिए है
  2. सीखने की वक्र: उपयोगकर्ताओं को ShExML सिंटैक्स और अवधारणाओं को सीखने की आवश्यकता है
  3. प्लेटफॉर्म कवरेज: केवल तीन मुख्य प्लेटफॉर्मों के क्रॉस-मानचित्रण को लागू किया गया है
  4. जटिल परियोजना अनुकूलन: कई तकनीकी स्टैक का उपयोग करने वाली जटिल परियोजनाओं के लिए अधिक अनुकूलन की आवश्यकता हो सकती है

भविष्य की दिशाएं

  1. क्रॉस-मानचित्रण विस्तार: CodeMeta द्वारा आधिकारिक रूप से समर्थित सभी प्लेटफॉर्मों के मानचित्रण को लागू करना
  2. दृश्य इंटरफेस: मानचित्रण नियमों के संपादन के लिए ग्राफिकल संपादक विकसित करना
  3. AI-सहायक उत्पादन: बड़े भाषा मॉडल का उपयोग करके स्वचालित रूप से मानचित्रण नियमों को उत्पन्न करना
  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 मानक के अपनाने को बढ़ावा देने में सकारात्मक महत्व है। हालांकि मूल्यांकन सीमा और गहराई में सुधार की गुंजाइश है, लेकिन यह क्षेत्र के लिए मूल्यवान तकनीकी योगदान प्रदान करता है।