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
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.
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à.
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
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.
Proposta di un Approccio basato su Regole di Mappatura Dichiarativa: Utilizzo del linguaggio ShExML per creare regole di generazione CodeMeta flessibili e manutenibili
Implementazione di Tre Mappature Trasversali Critiche: Sviluppo di implementazioni ShExML complete per le piattaforme GitHub, Maven e Zenodo
Costruzione di un Framework di Mappatura Unificato: Dimostrazione di come consolidare più fonti di metadati eterogenee per generare un singolo file CodeMeta
Sviluppo di un Flusso di Lavoro Completamente Automatizzato: Inclusione di framework JSON-LD, validazione SHACL/ShEx e integrazione GitHub Actions
Fornitura di Casi di Applicazione Pratica: Distribuzione riuscita in due progetti open source: il motore ShExML e DMAOG
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
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
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
Regole Dichiarative: Rispetto agli approcci programmatici, fornisce migliore leggibilità, manutenibilità e condivisibilità
Controllo a Grana Fine: Consente il controllo di mappatura preciso a livello di attributo, piuttosto che semplici override di priorità
Integrazione Automatizzata: Flusso di lavoro CI/CD completo integrato, supporta aggiornamenti automatici al momento del rilascio della versione
Forte Innovazione Metodologica: Prima applicazione di regole di mappatura dichiarativa alla generazione di CodeMeta, fornendo un nuovo percorso tecnologico
Alto Valore Pratico: Risoluzione dei problemi effettivi di gestione dei metadati del software di ricerca
Completezza dell'Implementazione: Fornitura di una soluzione completa dalla concezione alla distribuzione
Buona Riproducibilità: Fornitura di codice di implementazione dettagliato e guide di distribuzione
Ambito di Valutazione Limitato: Test condotti solo su due progetti simili, mancanza di validazione su larga scala
Analisi delle Prestazioni Mancante: Assenza di valutazione delle prestazioni nel trattamento di progetti di grandi dimensioni o grandi quantità di dati
Gestione degli Errori Insufficiente: Analisi insufficiente della robustezza rispetto all'indisponibilità delle fonti di dati o ai cambiamenti di formato
Mancanza di Ricerca Utente: Assenza di valutazione dell'accettazione da parte dell'utente e dell'usabilità
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.