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
Génération de CodeMeta à l'aide de règles de mappage déclaratives : une approche ouverte utilisant ShExML
De nos jours, les logiciels constituent l'un des piliers de la recherche dans plusieurs domaines scientifiques qui adoptent des méthodes informatiques pour répondre à de nouvelles questions de recherche. Cependant, pour que ces expériences soient entièrement reproductibles, les logiciels de recherche devraient se conformer aux principes FAIR, bien que leurs métadonnées puissent suivre différents modèles de données et être dispersées à différents endroits. Afin d'apporter une certaine cohésion au domaine, CodeMeta a été proposé comme un vocabulaire pour représenter les métadonnées des logiciels de recherche de manière unifiée et standardisée. Bien que les outils existants puissent aider les utilisateurs à générer des fichiers CodeMeta pour certains cas d'usage spécifiques, ils manquent de flexibilité et d'adaptabilité. Par conséquent, cet article propose l'utilisation de règles de mappage déclaratives pour générer des fichiers CodeMeta, illustrées par la mise en œuvre de trois mappages croisés dans ShExML, puis étendues et fusionnées pour couvrir la génération de fichiers CodeMeta de deux artefacts logiciels de recherche existants. De plus, en utilisant SHACL et ShEx pour valider les résultats, l'ensemble du flux de travail de génération est automatisé, ne nécessitant qu'une intervention minimale de l'utilisateur lors de la publication de nouvelles versions.
Problème de conformité FAIR des logiciels de recherche : Bien que les logiciels de recherche constituent un support important de la recherche scientifique, leurs métadonnées sont dispersées sur différentes plateformes (GitHub, Zenodo, Maven, etc.), utilisant différents modèles de données, manquant d'uniformité.
Limitations des outils existants :
La plupart des outils ne supportent que la conversion un-à-un (source de métadonnées unique vers CodeMeta)
Manque de flexibilité et d'adaptabilité
Nécessite une intervention manuelle de l'utilisateur pour la réconciliation des données
Capacités d'automatisation insuffisantes
Obstacles à l'adoption de CodeMeta : Bien que CodeMeta fournisse une norme unifiée de représentation des métadonnées des logiciels de recherche, les limitations des outils existants entravent son adoption généralisée.
Proposition d'une approche de règles de mappage déclaratives : Utilisation du langage ShExML pour créer des règles CodeMeta flexibles et maintenables
Implémentation de trois mappages croisés clés : Développement d'implémentations ShExML complètes pour les plateformes GitHub, Maven et Zenodo
Construction d'un cadre de mappage unifié : Démonstration de la fusion de plusieurs sources de métadonnées hétérogènes pour générer un seul fichier CodeMeta
Développement d'un flux de travail entièrement automatisé : Incluant la structuration JSON-LD, la validation SHACL/ShEx et l'intégration GitHub Actions
Fourniture de cas d'application pratiques : Déploiement réussi dans le moteur ShExML et les deux projets open source DMAOG
Entrée : Données provenant de plusieurs fournisseurs de métadonnées hétérogènes (API GitHub, fichiers POM Maven, enregistrements Zenodo, etc.)
Sortie : Fichier JSON-LD standardisé conforme à la spécification CodeMeta 3.0
Contraintes : Maintenir l'intégrité sémantique des données, supporter les mises à jour automatisées, assurer la validation des résultats
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>
// ... champs supplémentaires
}
schema:SoftwareSourceCode ex:[md.name] {
a schema:SoftwareSourceCode ;
schema:identifier [md.id] ;
schema:name [md.name] ;
// ... mappages de propriétés supplémentaires
}
Mappage Maven : Utilise des requêtes XPath pour interroger les fichiers POM au format XML, traitant les espaces de noms et les mappages de dépendances.
Mappage Zenodo : Traite les structures JSON imbriquées, incluant les relations d'entités multi-niveaux telles que les auteurs et les institutions.
Sélection intelligente de sources : Lorsque plusieurs sources contiennent le même attribut, sélection de la meilleure source basée sur la pertinence sémantique et la facilité de maintenance
Complément de valeurs codées en dur : Pour les données qui ne peuvent pas être obtenues à partir de sources externes, permet la définition directe dans le fichier de mappage
Fonctions de transformation de données : Traitement des conversions de formats de date, normalisation d'URL et autres tâches de nettoyage de données
Fusion de données multi-sources : Contrairement aux outils existants avec conversion un-à-un, supporte la fusion flexible d'un nombre arbitraire de sources hétérogènes
Règles déclaratives : Par rapport aux approches programmatiques, offre une meilleure lisibilité, maintenabilité et partageabilité
Contrôle granulaire : Permet un contrôle de mappage précis au niveau des attributs, plutôt qu'un simple remplacement par priorité
Intégration automatisée : Flux de travail CI/CD complet intégré, supportant les mises à jour automatiques lors de la publication de versions
Forte innovativité méthodologique : Première application des règles de mappage déclaratives à la génération CodeMeta, fournissant une nouvelle voie technologique
Haute valeur pratique : Résout les problèmes réels de gestion des métadonnées des logiciels de recherche
Complétude de l'implémentation : Fournit une solution complète du concept au déploiement
Bonne reproductibilité : Fournit des codes d'implémentation détaillés et des guides de déploiement
L'article contient 37 références bibliographiques couvrant les principes FAIR, les technologies du Web sémantique, la spécification CodeMeta, les langages de mappage déclaratifs et d'autres domaines connexes, fournissant une base théorique et un support technique solides à la recherche.
Évaluation globale : Cet article est un document technique ayant une valeur pratique dans le domaine de la gestion des métadonnées des logiciels de recherche. La méthode de mappage déclaratif proposée est innovante, l'implémentation est complète et reproductible, et elle a une signification positive pour promouvoir l'adoption de la norme CodeMeta. Bien qu'il y ait de la place pour l'amélioration en termes de portée et de profondeur d'évaluation, il fournit une contribution technique précieuse au domaine.