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
Generación de CodeMeta mediante reglas de mapeo declarativo: Un enfoque abierto utilizando ShExML
Actualmente, el software es uno de los pilares fundamentales de la investigación en múltiples disciplinas científicas que emplean metodologías basadas en computación para responder nuevas preguntas de investigación. Sin embargo, para garantizar la reproducibilidad completa de estos experimentos, el software de investigación debe cumplir con los principios FAIR, aunque sus metadatos pueden seguir diferentes modelos de datos y estar dispersos en diversas ubicaciones. Para aportar cierta cohesión a este campo, CodeMeta fue propuesto como un vocabulario para representar metadatos de software de investigación de manera unificada y estandarizada. Aunque existen herramientas que pueden ayudar a los usuarios a generar archivos CodeMeta para ciertos casos de uso específicos, presentan deficiencias en flexibilidad y adaptabilidad. Por lo tanto, este artículo propone utilizar reglas de mapeo declarativo para generar archivos CodeMeta, ilustrado mediante la implementación de tres mapeos transversales en ShExML, que posteriormente se extienden y fusionan para cubrir la generación de archivos CodeMeta de dos artefactos de software de investigación existentes. Además, utilizando validación SHACL y ShEx en la salida, se automatiza todo el flujo de trabajo de generación, requiriendo una intervención mínima del usuario cuando se publican nuevas versiones.
Problema de cumplimiento FAIR en software de investigación: Aunque el software de investigación es un soporte importante para la investigación científica, sus metadatos están dispersos en diferentes plataformas (GitHub, Zenodo, Maven, etc.), utilizan diferentes modelos de datos y carecen de uniformidad.
Limitaciones de las herramientas existentes:
La mayoría de las herramientas solo admiten conversión uno a uno (fuente de metadatos única a CodeMeta)
Falta de flexibilidad y adaptabilidad
Requieren intervención manual del usuario para la reconciliación de datos
Capacidad de automatización insuficiente
Barreras para la adopción de CodeMeta: Aunque CodeMeta proporciona un estándar unificado para la representación de metadatos de software de investigación, las limitaciones de las herramientas existentes obstaculizan su adopción generalizada.
Propuesta de enfoque de reglas de mapeo declarativo: Creación de reglas flexibles y mantenibles para la generación de CodeMeta utilizando el lenguaje ShExML
Implementación de tres mapeos transversales clave: Desarrollo de implementaciones completas de mapeo ShExML para las plataformas GitHub, Maven y Zenodo
Construcción de un marco de mapeo unificado: Demostración de cómo fusionar múltiples fuentes de metadatos heterogéneos para generar un único archivo CodeMeta
Desarrollo de un flujo de trabajo completamente automatizado: Incluida la estructuración JSON-LD, validación SHACL/ShEx e integración con GitHub Actions
Provisión de casos de aplicación práctica: Despliegue exitoso en dos proyectos de código abierto: el motor ShExML y DMAOG
Entrada: Datos provenientes de múltiples proveedores de metadatos heterogéneos (API de GitHub, archivos POM de Maven, registros de Zenodo, etc.)
Salida: Archivo JSON-LD estandarizado conforme a la especificación CodeMeta 3.0
Restricciones: Mantener la integridad semántica de los datos, admitir actualizaciones automatizadas, garantizar que la salida pase la validación
Selección inteligente de fuentes: Cuando múltiples fuentes contienen el mismo atributo, se selecciona la mejor fuente basándose en relevancia semántica y facilidad de mantenimiento
Complemento de valores codificados: Para datos que no se pueden obtener de fuentes externas, se permite la definición directa en el archivo de mapeo
Funciones de transformación de datos: Manejo de conversión de formatos de fecha, normalización de URLs y otras tareas de limpieza de datos
Fusión de datos de múltiples fuentes: A diferencia de las herramientas existentes con conversión uno a uno, admite la fusión flexible de cualquier número de fuentes heterogéneas
Reglas declarativas: En comparación con enfoques programáticos, proporciona mejor legibilidad, mantenibilidad y capacidad de compartición
Control de grano fino: Permite control de mapeo preciso a nivel de atributo, en lugar de simple cobertura de prioridades
Integración automatizada: Flujo de trabajo CI/CD completo integrado, que admite actualizaciones automáticas en el momento de la publicación de versiones
El artículo incluye 37 referencias bibliográficas que abarcan principios FAIR, tecnologías de web semántica, especificaciones CodeMeta, lenguajes de mapeo declarativo y otros trabajos relevantes en campos relacionados, proporcionando una base teórica y soporte técnico sólido para la investigación.
Evaluación General: Este es un artículo técnico con valor práctico en el campo de gestión de metadatos de software de investigación. El método de mapeo declarativo propuesto es innovador, la implementación es completa y reproducible, y tiene un significado positivo para promover la adopción del estándar CodeMeta. Aunque hay espacio para mejora en el alcance y profundidad de la evaluación, proporciona una contribución técnica valiosa al campo.