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

Generazione di CodeMeta utilizzando regole di mappatura dichiarativa: Un approccio aperto con ShExML

Informazioni Fondamentali

  • ID Articolo: 2510.09172
  • Titolo: Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML
  • Autore: Herminio García-González (Kazerne Dossin, Mechelen, Belgio)
  • Classificazione: cs.DL (Biblioteche Digitali), cs.SE (Ingegneria del Software)
  • Data di Pubblicazione: 10 ottobre 2025 (preprint arXiv)
  • Link dell'Articolo: https://arxiv.org/abs/2510.09172v1

Riassunto

Attualmente, il software è uno dei pilastri fondamentali della ricerca in molteplici discipline scientifiche che adottano metodologie computazionali per affrontare nuove questioni di ricerca. Tuttavia, affinché questi esperimenti siano completamente riproducibili, il software di ricerca dovrebbe conformarsi ai principi FAIR, sebbene i suoi metadati possano seguire modelli di dati diversi e essere dispersi in diverse ubicazioni. Per portare una certa coesione in questo ambito, CodeMeta è stato proposto come vocabolario per rappresentare i metadati del software di ricerca in modo unificato e standardizzato. Sebbene gli strumenti esistenti possano aiutare gli utenti a generare file CodeMeta per determinati casi d'uso specifici, presentano carenze in termini di flessibilità e adattabilità. Pertanto, questo articolo propone l'utilizzo di regole di mappatura dichiarativa per generare file CodeMeta, illustrato mediante l'implementazione di tre mappature trasversali in ShExML, successivamente estese e consolidate per coprire la generazione di file CodeMeta per due artefatti di software di ricerca esistenti. Inoltre, utilizzando la validazione SHACL e ShEx dell'output, l'intero flusso di lavoro generativo è automatizzato, richiedendo un intervento minimo dell'utente al momento del rilascio di nuove versioni.

Contesto di Ricerca e Motivazione

Definizione del Problema

  1. Problematiche di Conformità FAIR del Software di Ricerca: Sebbene il software di ricerca sia un supporto importante per la ricerca scientifica, i suoi metadati sono dispersi su diverse piattaforme (GitHub, Zenodo, Maven, ecc.), utilizzano modelli di dati diversi e mancano di uniformità.
  2. Limitazioni degli Strumenti Esistenti:
    • La maggior parte degli strumenti supporta solo conversioni uno-a-uno (singola fonte di metadati a CodeMeta)
    • Mancanza di flessibilità e adattabilità
    • Necessità di intervento manuale dell'utente per il coordinamento dei dati
    • Capacità di automazione insufficiente
  3. Ostacoli all'Adozione di CodeMeta: Sebbene CodeMeta fornisca uno standard unificato per la rappresentazione dei metadati del software di ricerca, le limitazioni degli strumenti esistenti ostacolano la sua adozione diffusa.

Importanza della Ricerca

  • Promozione della Scienza Aperta: Il software di ricerca conforme ai principi FAIR è cruciale per realizzare la scienza aperta
  • Garanzia di Riproducibilità: Uno standard di metadati unificato facilita la riproducibilità dei risultati di ricerca
  • Interoperabilità Multipiattaforma: Risoluzione dei problemi di incompatibilità dei formati di metadati tra diverse piattaforme

Contributi Principali

  1. Proposta di un Approccio basato su Regole di Mappatura Dichiarativa: Utilizzo del linguaggio ShExML per creare regole di generazione CodeMeta flessibili e manutenibili
  2. Implementazione di Tre Mappature Trasversali Critiche: Sviluppo di implementazioni ShExML complete per le piattaforme GitHub, Maven e Zenodo
  3. Costruzione di un Framework di Mappatura Unificato: Dimostrazione di come consolidare più fonti di metadati eterogenee per generare un singolo file CodeMeta
  4. Sviluppo di un Flusso di Lavoro Completamente Automatizzato: Inclusione di framework JSON-LD, validazione SHACL/ShEx e integrazione GitHub Actions
  5. Fornitura di Casi di Applicazione Pratica: Distribuzione riuscita in due progetti open source: il motore ShExML e DMAOG

Spiegazione Dettagliata del Metodo

Definizione del Compito

Input: Dati provenienti da più fornitori di metadati eterogenei (API GitHub, file POM Maven, record Zenodo, ecc.) Output: File JSON-LD standardizzato conforme alle specifiche CodeMeta 3.0 Vincoli: Mantenimento dell'integrità semantica dei dati, supporto degli aggiornamenti automatizzati, garanzia del superamento della validazione dell'output

Architettura del Metodo Principale

1. Linguaggio di Mappatura Dichiarativa ShExML

ShExML comprende due componenti principali:

  • Sezione Dichiarativa:
    • Definizioni di prefissi (scorciatoie IRI)
    • Definizioni di fonti di dati (ubicazioni dei file di input)
    • Definizioni di funzioni (estensione della funzionalità di base)
    • Definizioni di iteratori (modalità di estrazione dei dati)
    • Definizioni di espressioni (consolidamento dei dati da diverse fonti)
  • Sezione Generativa:
    • Definizioni di forme (regole di generazione di grafi RDF)
    • Costruzione di triple soggetto-predicato-oggetto

2. Implementazione delle Tre Mappature Trasversali Principali

Mappatura GitHub (codice di esempio):

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>
    // ... ulteriori campi
}
schema:SoftwareSourceCode ex:[md.name] {
    a schema:SoftwareSourceCode ;
    schema:identifier [md.id] ;
    schema:name [md.name] ;
    // ... ulteriori mappature di proprietà
}

Mappatura Maven: Utilizzo di query XPath per file POM in formato XML, gestione di spazi dei nomi e mappature di dipendenze.

Mappatura Zenodo: Gestione di strutture JSON annidate, incluse relazioni di entità multi-livello come autori e istituzioni.

3. Strategia di Mappatura Unificata

  • Selezione Intelligente della Fonte: Quando più fonti contengono lo stesso attributo, selezione della fonte migliore basata sulla rilevanza semantica e sulla facilità di manutenzione
  • Integrazione di Valori Hardcoded: Per i dati che non possono essere ottenuti da fonti esterne, è consentita la definizione diretta nel file di mappatura
  • Funzioni di Trasformazione dei Dati: Gestione della conversione dei formati di data, normalizzazione degli URL e altre attività di pulizia dei dati

Punti di Innovazione Tecnica

  1. Fusione di Dati Multisorgente: A differenza degli strumenti esistenti con conversione uno-a-uno, supporta il consolidamento flessibile di un numero arbitrario di fonti eterogenee
  2. Regole Dichiarative: Rispetto agli approcci programmatici, fornisce migliore leggibilità, manutenibilità e condivisibilità
  3. Controllo a Grana Fine: Consente il controllo di mappatura preciso a livello di attributo, piuttosto che semplici override di priorità
  4. Integrazione Automatizzata: Flusso di lavoro CI/CD completo integrato, supporta aggiornamenti automatici al momento del rilascio della versione

Configurazione Sperimentale

Progetti di Test

  1. Motore ShExML: Strumento di mappatura dati eterogenei scritto in Scala
  2. Libreria DMAOG: Libreria Scala correlata alla mappatura dei dati

Fonti di Dati

  • API GitHub: Informazioni di base del repository, record di rilascio, tracciamento dei problemi, ecc.
  • Maven Central: Metadati del progetto e informazioni sulle dipendenze nei file POM
  • Zenodo: DOI, informazioni sui finanziamenti, dettagli degli autori, ecc.

Metodi di Validazione

  • Validazione SHACL: Utilizzo dello standard raccomandato W3C per la validazione strutturale
  • Validazione ShEx: Utilizzo di Shape Expressions per la validazione dei modelli
  • CodeMeta Generator: Utilizzo dello strumento di validazione ufficiale per la conferma finale

Catena di Strumenti Automatizzati

  • GitHub Actions: Pipeline CI/CD
  • Script Groovy: Elaborazione del framework JSON-LD
  • Script Bash: Orchestrazione del flusso di lavoro

Risultati Sperimentali

Risultati Principali

1. Copertura della Mappatura

PiattaformaNumero di Attributi SupportatiCopertura Classe CodeMeta
GitHub12 attributi principaliSoftwareSourceCode, Person
Maven8 attributi principaliSoftwareSourceCode, relazioni di dipendenza
Zenodo15 attributi principaliSoftwareSourceCode, Person, Organization

2. Effetto dell'Automazione

  • Costo di Manutenzione: Ogni aggiornamento di versione richiede solo la modifica di 2 righe di codice (URL della fonte di input)
  • Tempo di Elaborazione: Tempo di esecuzione del flusso di lavoro completo < 2 minuti
  • Tasso di Successo: Generazione riuscita di file CodeMeta validi in entrambi i progetti testati

3. Validazione dell'Adattabilità

Adattamento dal motore ShExML al progetto DMAOG:

  • Richiesta di modifica di sole 6 righe di codice (4 righe di chiamate API, rimozione di 1 collaboratore)
  • Mantenimento dello stesso supporto dello stack tecnologico (Scala + SBT + Maven Central)
  • File CodeMeta generati superano tutti i test di validazione

Analisi della Qualità dell'Output

I file CodeMeta generati contengono:

  • Metadati di Base: Nome, descrizione, versione, licenza, ecc.
  • Informazioni di Sviluppo: Linguaggio di programmazione, piattaforma di esecuzione, integrazione continua, ecc.
  • Informazioni Personali: Autori, collaboratori, affiliazioni istituzionali, ecc.
  • Risorse Correlate: Repository di codice, link di download, riferimenti bibliografici, ecc.
  • Relazioni di Dipendenza: Requisiti software e informazioni sulla versione

Risultati della Validazione

Tutti i file CodeMeta generati superano:

  • Validazione strutturale SHACL
  • Validazione del modello ShEx
  • Validazione ufficiale di CodeMeta Generator

Lavori Correlati

Classificazione degli Strumenti CodeMeta Esistenti

1. Strumenti di Conversione

  • Bolognese: Libreria Ruby, supporta la conversione di molteplici formati di metadati DOI
  • codemetar: Pacchetto R dedicato allo strumento di generazione CodeMeta
  • codemetapy: Implementazione Python, supporta molteplici gestori di pacchetti
  • cffconvert: Strumento di conversione Citation File Format

2. Strumenti di Gestione

  • codemeta-server: Servizio di catalogo di strumenti basato su CodeMeta
  • HERMES: Piattaforma di rilascio del software di ricerca integrata con CI/CD

3. Strumenti Ausiliari

  • CodeMeta Generator: Generatore interattivo basato su Web
  • SMECS: Sistema di estrazione e cura dei metadati software

Vantaggi di questo Articolo

  1. Flessibilità: Supporta un numero arbitrario e tipi di fonti di metadati
  2. Controllo a Grana Fine: Mappatura precisa a livello di attributo, piuttosto che semplice priorità
  3. Approccio Dichiarativo: Rispetto all'implementazione programmatica, più facile da comprendere e mantenere
  4. Automazione Completa: Processo end-to-end automatizzato dalla generazione alla validazione

Conclusioni e Discussione

Conclusioni Principali

  1. Fattibilità delle Regole di Mappatura Dichiarativa: Dimostrazione della fattibilità tecnica dell'utilizzo di ShExML per la generazione di CodeMeta
  2. Vantaggi della Fusione Multisorgente: Dimostrazione del valore e dell'efficacia dell'integrazione di fonti di metadati eterogenee
  3. Successo della Distribuzione Automatizzata: Realizzazione di un flusso di lavoro automatizzato a basso costo di manutenzione in progetti reali
  4. Verifica dell'Scalabilità: Dimostrazione della generalità del metodo attraverso l'adattamento riuscito di due progetti

Limitazioni

  1. Dipendenza dallo Stack Tecnologico: L'implementazione attuale è principalmente orientata all'ecosistema Scala/JVM
  2. Curva di Apprendimento: Richiede agli utenti di apprendere la sintassi e i concetti di ShExML
  3. Copertura della Piattaforma: Sono state implementate solo mappature trasversali per tre piattaforme principali
  4. Adattamento di Progetti Complessi: Progetti complessi che utilizzano molteplici stack tecnologici potrebbero richiedere ulteriore personalizzazione

Direzioni Future

  1. Estensione delle Mappature Trasversali: Implementazione di mappature per tutte le piattaforme supportate ufficialmente da CodeMeta
  2. Interfaccia di Visualizzazione: Sviluppo di un editor grafico per le regole di mappatura
  3. Generazione Assistita da IA: Utilizzo di modelli linguistici di grandi dimensioni per la generazione automatica di regole di mappatura
  4. Costruzione di Libreria di Modelli: Fornitura di modelli predefiniti per diversi stack tecnologici e tipi di progetto

Valutazione Approfondita

Punti di Forza

  1. Forte Innovazione Metodologica: Prima applicazione di regole di mappatura dichiarativa alla generazione di CodeMeta, fornendo un nuovo percorso tecnologico
  2. Alto Valore Pratico: Risoluzione dei problemi effettivi di gestione dei metadati del software di ricerca
  3. Completezza dell'Implementazione: Fornitura di una soluzione completa dalla concezione alla distribuzione
  4. Buona Riproducibilità: Fornitura di codice di implementazione dettagliato e guide di distribuzione

Carenze

  1. Ambito di Valutazione Limitato: Test condotti solo su due progetti simili, mancanza di validazione su larga scala
  2. Analisi delle Prestazioni Mancante: Assenza di valutazione delle prestazioni nel trattamento di progetti di grandi dimensioni o grandi quantità di dati
  3. Gestione degli Errori Insufficiente: Analisi insufficiente della robustezza rispetto all'indisponibilità delle fonti di dati o ai cambiamenti di formato
  4. Mancanza di Ricerca Utente: Assenza di valutazione dell'accettazione da parte dell'utente e dell'usabilità

Impatto

  1. Contributo Accademico: Fornitura di una nuova soluzione tecnica per il campo della gestione dei metadati del software di ricerca
  2. Valore Pratico: Applicazione diretta all'adozione di CodeMeta nei progetti open source
  3. Promozione dell'Ecosistema: Contributo all'aumento del tasso di adozione di CodeMeta nella comunità del software di ricerca
  4. Promozione della Standardizzazione: Supporto dell'implementazione dei principi FAIR nel campo del software di ricerca

Scenari Applicabili

  1. Progetti Software Open Source: Particolarmente adatto per il software di ricerca che deve essere pubblicato su più piattaforme
  2. Istituzioni Accademiche: Può essere utilizzato per la gestione dei metadati del software di ricerca a livello istituzionale
  3. Integrazione CI/CD: Adatto per progetti con processi di rilascio automatizzati esistenti
  4. Standardizzazione dei Metadati: Applicabile alle organizzazioni di ricerca che necessitano di unificare i formati dei metadati

Bibliografia

L'articolo contiene 37 riferimenti bibliografici che coprono i principi FAIR, le tecnologie del web semantico, le specifiche CodeMeta, i linguaggi di mappatura dichiarativa e altri lavori importanti nei campi correlati, fornendo una base teorica e un supporto tecnico solidi per la ricerca.


Valutazione Complessiva: Questo è un articolo tecnico con valore pratico nel campo della gestione dei metadati del software di ricerca. Il metodo di mappatura dichiarativa proposto è innovativo, l'implementazione è completa e riproducibile, e ha un significato positivo per promuovere l'adozione dello standard CodeMeta. Sebbene vi sia spazio per il miglioramento nell'ambito e nella profondità della valutazione, fornisce un contributo tecnico prezioso al campo.