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

Génération de CodeMeta à l'aide de règles de mappage déclaratives : une approche ouverte utilisant ShExML

Informations de base

  • ID de l'article : 2510.09172
  • Titre : Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML
  • Auteur : Herminio García-González (Kazerne Dossin, Mechelen, Belgique)
  • Classification : cs.DL (Bibliothèques numériques), cs.SE (Génie logiciel)
  • Date de publication : 10 octobre 2025 (prépublication arXiv)
  • Lien de l'article : https://arxiv.org/abs/2510.09172v1

Résumé

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.

Contexte de recherche et motivation

Définition du problème

  1. 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é.
  2. 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
  3. 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.

Importance de la recherche

  • Avancement de la science ouverte : Les logiciels de recherche conformes aux principes FAIR sont essentiels pour réaliser la science ouverte
  • Garantie de reproductibilité : Une norme de métadonnées unifiée facilite la reproductibilité des résultats de recherche
  • Interopérabilité multiplateforme : Résoudre les problèmes d'incompatibilité des formats de métadonnées entre différentes plateformes

Contributions principales

  1. 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
  2. Implémentation de trois mappages croisés clés : Développement d'implémentations ShExML complètes pour les plateformes GitHub, Maven et Zenodo
  3. 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
  4. 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
  5. Fourniture de cas d'application pratiques : Déploiement réussi dans le moteur ShExML et les deux projets open source DMAOG

Explication détaillée de la méthode

Définition de la tâche

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

Architecture de la méthode principale

1. Langage de mappage déclaratif ShExML

ShExML comprend deux composants principaux :

  • Partie déclarative :
    • Définitions de préfixes (raccourcis IRI)
    • Définitions de sources de données (emplacements des fichiers d'entrée)
    • Définitions de fonctions (extension des fonctionnalités de base)
    • Définitions d'itérateurs (méthodes d'extraction de données)
    • Définitions d'expressions (fusion de données provenant de différentes sources)
  • Partie génération :
    • Définitions de formes (règles de génération de graphes RDF)
    • Construction de triplets sujet-prédicat-objet

2. Implémentation des trois mappages croisés principaux

Mappage GitHub (exemple de code) :

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.

3. Stratégie de mappage unifié

  • 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

Points d'innovation technique

  1. 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
  2. Règles déclaratives : Par rapport aux approches programmatiques, offre une meilleure lisibilité, maintenabilité et partageabilité
  3. Contrôle granulaire : Permet un contrôle de mappage précis au niveau des attributs, plutôt qu'un simple remplacement par priorité
  4. Intégration automatisée : Flux de travail CI/CD complet intégré, supportant les mises à jour automatiques lors de la publication de versions

Configuration expérimentale

Projets de test

  1. Moteur ShExML : Outil de mappage de données hétérogènes écrit en Scala
  2. Bibliothèque DMAOG : Bibliothèque Scala liée au mappage de données

Sources de données

  • API GitHub : Informations de base du référentiel, enregistrements de publication, suivi des problèmes, etc.
  • Maven Central : Métadonnées du projet et informations de dépendances dans les fichiers POM
  • Zenodo : DOI, informations de financement, détails des auteurs, etc.

Méthodes de validation

  • Validation SHACL : Utilisation de la norme recommandée par le W3C pour la validation structurelle
  • Validation ShEx : Utilisation de Shape Expressions pour la validation de modèles
  • Générateur CodeMeta : Utilisation de l'outil de validation officiel pour la confirmation finale

Chaîne d'outils automatisée

  • GitHub Actions : Pipeline CI/CD
  • Scripts Groovy : Traitement de structuration JSON-LD
  • Scripts Bash : Orchestration du flux de travail

Résultats expérimentaux

Réalisations principales

1. Couverture de mappage

PlateformeNombre d'attributs supportésCouverture de classe CodeMeta
GitHub12 attributs principauxSoftwareSourceCode, Person
Maven8 attributs principauxSoftwareSourceCode, relations de dépendances
Zenodo15 attributs principauxSoftwareSourceCode, Person, Organization

2. Effet d'automatisation

  • Coût de maintenance : Seules 2 lignes de code doivent être modifiées à chaque mise à jour de version (URL de source d'entrée)
  • Temps de traitement : Temps d'exécution du flux de travail complet < 2 minutes
  • Taux de succès : Génération réussie de fichiers CodeMeta valides dans les deux projets testés

3. Validation d'adaptabilité

Adaptation du moteur ShExML au projet DMAOG :

  • Seules 6 lignes de code doivent être modifiées (4 appels API, suppression de 1 contributeur)
  • Maintien du même support de pile technologique (Scala + SBT + Maven Central)
  • Les fichiers CodeMeta générés réussissent tous les tests de validation

Analyse de la qualité des résultats

Les fichiers CodeMeta générés contiennent :

  • Métadonnées de base : Nom, description, version, licence, etc.
  • Informations de développement : Langage de programmation, plateforme d'exécution, intégration continue, etc.
  • Informations sur les personnes : Auteurs, contributeurs, affiliations institutionnelles, etc.
  • Ressources associées : Référentiel de code, liens de téléchargement, références bibliographiques, etc.
  • Relations de dépendances : Exigences logicielles et informations de version

Résultats de validation

Tous les fichiers CodeMeta générés réussissent :

  • La validation structurelle SHACL
  • La validation de modèle ShEx
  • La validation officielle du générateur CodeMeta

Travaux connexes

Classification des outils CodeMeta existants

1. Outils de conversion

  • Bolognese : Bibliothèque Ruby supportant la conversion de plusieurs formats de métadonnées DOI
  • codemetar : Package R dédié à la génération CodeMeta
  • codemetapy : Implémentation Python supportant plusieurs gestionnaires de paquets
  • cffconvert : Outil de conversion Citation File Format

2. Outils de gestion

  • codemeta-server : Service de répertoire d'outils basé sur CodeMeta
  • HERMES : Plateforme de publication de logiciels de recherche intégrée CI/CD

3. Outils auxiliaires

  • Générateur CodeMeta : Générateur interactif basé sur le Web
  • SMECS : Système d'extraction et de curation de métadonnées logiciels

Avantages de cet article

  1. Flexibilité : Supporte un nombre arbitraire et des types de sources de métadonnées
  2. Contrôle granulaire : Mappage précis au niveau des attributs, plutôt que simple priorité
  3. Approche déclarative : Plus facile à comprendre et maintenir que les implémentations programmatiques
  4. Automatisation complète : Processus d'automatisation de bout en bout, de la génération à la validation

Conclusion et discussion

Conclusions principales

  1. Faisabilité des règles de mappage déclaratives : Preuve de la faisabilité technique de la génération CodeMeta utilisant ShExML
  2. Avantages de la fusion multi-sources : Démonstration de la valeur et de l'efficacité de l'intégration de sources de métadonnées hétérogènes
  3. Succès du déploiement automatisé : Réalisation d'un flux de travail automatisé à faible coût de maintenance dans des projets réels
  4. Vérification de l'extensibilité : Preuve de la généralité de la méthode par l'adaptation réussie de deux projets

Limitations

  1. Dépendance à la pile technologique : L'implémentation actuelle cible principalement l'écosystème Scala/JVM
  2. Courbe d'apprentissage : Les utilisateurs doivent apprendre la syntaxe et les concepts de ShExML
  3. Couverture de plateforme : Seuls trois mappages croisés de plateformes principales ont été implémentés
  4. Adaptation de projets complexes : Les projets complexes utilisant plusieurs piles technologiques peuvent nécessiter plus de personnalisation

Directions futures

  1. Extension des mappages croisés : Implémentation de mappages pour toutes les plateformes supportées officiellement par CodeMeta
  2. Interface de visualisation : Développement d'un éditeur graphique de règles de mappage
  3. Génération assistée par IA : Utilisation de modèles de langage de grande taille pour générer automatiquement des règles de mappage
  4. Construction de bibliothèque de modèles : Fourniture de modèles prédéfinis pour différentes piles technologiques et types de projets

Évaluation approfondie

Points forts

  1. Forte innovativité méthodologique : Première application des règles de mappage déclaratives à la génération CodeMeta, fournissant une nouvelle voie technologique
  2. Haute valeur pratique : Résout les problèmes réels de gestion des métadonnées des logiciels de recherche
  3. Complétude de l'implémentation : Fournit une solution complète du concept au déploiement
  4. Bonne reproductibilité : Fournit des codes d'implémentation détaillés et des guides de déploiement

Insuffisances

  1. Portée d'évaluation limitée : Tests effectués sur seulement deux projets similaires, manquant de validation à grande échelle
  2. Analyse de performance manquante : Pas d'évaluation de performance pour le traitement de grands projets ou de grandes quantités de données
  3. Gestion des erreurs insuffisante : Analyse insuffisante de la robustesse face à l'indisponibilité des sources de données ou aux changements de format
  4. Manque d'études utilisateur : Pas d'évaluation de l'acceptation des utilisateurs et de la facilité d'utilisation

Impact

  1. Contribution académique : Fournit une nouvelle solution technique pour le domaine de la gestion des métadonnées des logiciels de recherche
  2. Valeur pratique : Peut être directement appliquée à l'adoption de CodeMeta dans les projets open source
  3. Promotion de l'écosystème : Contribue à augmenter le taux d'adoption de CodeMeta dans la communauté des logiciels de recherche
  4. Promotion de la normalisation : Supporte la mise en œuvre des principes FAIR dans le domaine des logiciels de recherche

Scénarios d'application

  1. Projets de logiciels open source : Particulièrement adaptés aux logiciels de recherche nécessitant une publication sur plusieurs plateformes
  2. Institutions académiques : Peut être utilisé pour la gestion des métadonnées des logiciels de recherche au niveau institutionnel
  3. Intégration CI/CD : Adapté aux projets ayant des processus de publication automatisés existants
  4. Normalisation des métadonnées : Applicable aux organisations de recherche nécessitant un format de métadonnées unifié

Références bibliographiques

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.