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

Generación de CodeMeta mediante reglas de mapeo declarativo: Un enfoque abierto utilizando ShExML

Información Básica

  • ID del Artículo: 2510.09172
  • Título: Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML
  • Autor: Herminio García-González (Kazerne Dossin, Mechelen, Bélgica)
  • Clasificación: cs.DL (Bibliotecas Digitales), cs.SE (Ingeniería de Software)
  • Fecha de Publicación: 10 de octubre de 2025 (preimpresión en arXiv)
  • Enlace del Artículo: https://arxiv.org/abs/2510.09172v1

Resumen

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.

Contexto de Investigación y Motivación

Definición del Problema

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

Importancia de la Investigación

  • Avance de la ciencia abierta: El software de investigación conforme a los principios FAIR es crucial para lograr la ciencia abierta
  • Garantía de reproducibilidad: Un estándar de metadatos unificado facilita la reproducibilidad de los resultados de investigación
  • Interoperabilidad entre plataformas: Resolver problemas de incompatibilidad de formatos de metadatos entre diferentes plataformas

Contribuciones Principales

  1. 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
  2. Implementación de tres mapeos transversales clave: Desarrollo de implementaciones completas de mapeo ShExML para las plataformas GitHub, Maven y Zenodo
  3. 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
  4. Desarrollo de un flujo de trabajo completamente automatizado: Incluida la estructuración JSON-LD, validación SHACL/ShEx e integración con GitHub Actions
  5. Provisión de casos de aplicación práctica: Despliegue exitoso en dos proyectos de código abierto: el motor ShExML y DMAOG

Explicación Detallada del Método

Definición de la Tarea

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

Arquitectura del Método Principal

1. Lenguaje de Mapeo Declarativo ShExML

ShExML contiene dos componentes principales:

  • Sección de Declaración:
    • Definición de prefijos (atajos de IRI)
    • Definición de fuentes de datos (ubicaciones de archivos de entrada)
    • Definición de funciones (extensión de funcionalidad básica)
    • Definición de iteradores (métodos de extracción de datos)
    • Definición de expresiones (fusión de datos de diferentes fuentes)
  • Sección de Generación:
    • Definición de formas (reglas de generación de grafos RDF)
    • Construcción de triples sujeto-predicado-objeto

2. Implementación de Tres Mapeos Transversales Principales

Mapeo de GitHub (código de ejemplo):

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>
    // ... más campos
}
schema:SoftwareSourceCode ex:[md.name] {
    a schema:SoftwareSourceCode ;
    schema:identifier [md.id] ;
    schema:name [md.name] ;
    // ... más mapeos de propiedades
}

Mapeo de Maven: Utiliza consultas XPath para archivos POM en formato XML, procesando espacios de nombres y mapeos de dependencias.

Mapeo de Zenodo: Procesa estructuras JSON anidadas, incluyendo relaciones de entidades multinivel como autores e instituciones.

3. Estrategia de Mapeo Unificado

  • 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

Puntos de Innovación Técnica

  1. 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
  2. Reglas declarativas: En comparación con enfoques programáticos, proporciona mejor legibilidad, mantenibilidad y capacidad de compartición
  3. Control de grano fino: Permite control de mapeo preciso a nivel de atributo, en lugar de simple cobertura de prioridades
  4. Integración automatizada: Flujo de trabajo CI/CD completo integrado, que admite actualizaciones automáticas en el momento de la publicación de versiones

Configuración Experimental

Proyectos de Prueba

  1. Motor ShExML: Herramienta de mapeo de datos heterogéneos escrita en Scala
  2. Biblioteca DMAOG: Biblioteca Scala relacionada con mapeo de datos

Fuentes de Datos

  • API de GitHub: Información básica del repositorio, registros de lanzamiento, seguimiento de problemas, etc.
  • Maven Central: Metadatos del proyecto y información de dependencias en archivos POM
  • Zenodo: DOI, información de financiamiento, detalles de autores, etc.

Métodos de Validación

  • Validación SHACL: Validación de estructura utilizando el estándar recomendado por W3C
  • Validación ShEx: Validación de patrones utilizando Shape Expressions
  • CodeMeta Generator: Confirmación final utilizando la herramienta de validación oficial

Cadena de Herramientas Automatizada

  • GitHub Actions: Tubería CI/CD
  • Scripts Groovy: Procesamiento de estructuración JSON-LD
  • Scripts Bash: Orquestación del flujo de trabajo

Resultados Experimentales

Logros Principales

1. Cobertura de Mapeo

PlataformaNúmero de Atributos AdmitidosCobertura de Clases CodeMeta
GitHub12 atributos principalesSoftwareSourceCode, Person
Maven8 atributos principalesSoftwareSourceCode, Relaciones de Dependencia
Zenodo15 atributos principalesSoftwareSourceCode, Person, Organization

2. Efectos de Automatización

  • Costo de mantenimiento: Cada actualización de versión requiere solo modificación de 2 líneas de código (URL de fuente de entrada)
  • Tiempo de procesamiento: Tiempo de ejecución del flujo de trabajo completo < 2 minutos
  • Tasa de éxito: Generación exitosa de archivos CodeMeta válidos en los dos proyectos probados

3. Validación de Adaptabilidad

Adaptación del motor ShExML al proyecto DMAOG:

  • Solo requiere modificación de 6 líneas de código (4 llamadas de API, eliminación de 1 colaborador)
  • Mantiene el mismo soporte de pila tecnológica (Scala + SBT + Maven Central)
  • Los archivos CodeMeta generados pasan todas las pruebas de validación

Análisis de Calidad de Salida

Los archivos CodeMeta generados contienen:

  • Metadatos básicos: Nombre, descripción, versión, licencia, etc.
  • Información de desarrollo: Lenguaje de programación, plataforma de ejecución, integración continua, etc.
  • Información de personal: Autores, colaboradores, afiliaciones institucionales, etc.
  • Recursos asociados: Repositorio de código, enlaces de descarga, referencias bibliográficas, etc.
  • Relaciones de dependencia: Requisitos de software e información de versiones

Resultados de Validación

Todos los archivos CodeMeta generados pasan:

  • Validación de estructura SHACL
  • Validación de patrones ShEx
  • Validación oficial de CodeMeta Generator

Trabajos Relacionados

Clasificación de Herramientas CodeMeta Existentes

1. Herramientas de Conversión

  • Bolognese: Biblioteca Ruby que admite conversión de múltiples formatos de metadatos DOI
  • codemetar: Paquete R especializado para generación de CodeMeta
  • codemetapy: Implementación en Python que admite múltiples gestores de paquetes
  • cffconvert: Herramienta de conversión de Citation File Format

2. Herramientas de Gestión

  • codemeta-server: Servicio de directorio de herramientas basado en CodeMeta
  • HERMES: Plataforma de publicación de software de investigación integrada con CI/CD

3. Herramientas Auxiliares

  • CodeMeta Generator: Generador interactivo basado en web
  • SMECS: Sistema de extracción y curación de metadatos de software

Ventajas de Este Artículo

  1. Flexibilidad: Admite cualquier número y tipo de fuentes de metadatos
  2. Control de grano fino: Mapeo preciso a nivel de atributo, en lugar de simple prioridad
  3. Enfoque declarativo: Más fácil de entender y mantener en comparación con implementaciones programáticas
  4. Automatización completa: Proceso de extremo a extremo automatizado desde generación hasta validación

Conclusiones y Discusión

Conclusiones Principales

  1. Viabilidad de reglas de mapeo declarativo: Se demuestra la viabilidad técnica de generar CodeMeta utilizando ShExML
  2. Ventajas de fusión de múltiples fuentes: Se muestra el valor y la efectividad de integrar fuentes de metadatos heterogéneos
  3. Éxito de despliegue automatizado: Se logra un flujo de trabajo automatizado de bajo costo de mantenimiento en proyectos reales
  4. Validación de escalabilidad: La adaptación exitosa de dos proyectos demuestra la generalidad del método

Limitaciones

  1. Dependencia de pila tecnológica: La implementación actual se enfoca principalmente en el ecosistema Scala/JVM
  2. Curva de aprendizaje: Los usuarios necesitan aprender la sintaxis y conceptos de ShExML
  3. Cobertura de plataformas: Solo se implementan mapeos transversales para tres plataformas principales
  4. Adaptación de proyectos complejos: Proyectos complejos que utilizan múltiples pilas tecnológicas pueden requerir más personalización

Direcciones Futuras

  1. Extensión de mapeos transversales: Implementación de mapeos para todas las plataformas admitidas oficialmente por CodeMeta
  2. Interfaz de visualización: Desarrollo de un editor gráfico de reglas de mapeo
  3. Generación asistida por IA: Utilización de modelos de lenguaje grande para generar automáticamente reglas de mapeo
  4. Construcción de biblioteca de plantillas: Provisión de plantillas predefinidas para diferentes pilas tecnológicas y tipos de proyectos

Evaluación Profunda

Fortalezas

  1. Innovación metodológica sólida: Primera aplicación de reglas de mapeo declarativo a la generación de CodeMeta, proporcionando una nueva ruta técnica
  2. Alto valor práctico: Resuelve problemas reales de gestión de metadatos de software de investigación
  3. Completitud de implementación: Proporciona una solución completa desde concepto hasta despliegue
  4. Buena reproducibilidad: Proporciona código de implementación detallado y guías de despliegue

Deficiencias

  1. Alcance de evaluación limitado: Pruebas realizadas solo en dos proyectos similares, falta validación a gran escala
  2. Análisis de rendimiento ausente: No proporciona evaluación de rendimiento al procesar proyectos grandes o grandes volúmenes de datos
  3. Manejo de errores insuficiente: Análisis insuficiente de robustez ante fuentes de datos no disponibles o cambios de formato
  4. Falta de investigación de usuarios: No se realizaron evaluaciones de aceptación de usuarios ni usabilidad

Impacto

  1. Contribución académica: Proporciona una nueva solución técnica para el campo de gestión de metadatos de software de investigación
  2. Valor práctico: Puede aplicarse directamente a la adopción de CodeMeta en proyectos de código abierto
  3. Impulso del ecosistema: Ayuda a aumentar la tasa de adopción de CodeMeta en la comunidad de software de investigación
  4. Promoción de estandarización: Apoya la implementación de principios FAIR en el campo del software de investigación

Escenarios Aplicables

  1. Proyectos de software de código abierto: Especialmente adecuado para software de investigación que necesita publicarse en múltiples plataformas
  2. Instituciones académicas: Puede utilizarse para gestión de metadatos de software de investigación a nivel institucional
  3. Integración CI/CD: Adecuado para proyectos con procesos de publicación automatizada existentes
  4. Estandarización de metadatos: Aplicable a organizaciones de investigación que necesitan unificar formatos de metadatos

Referencias Bibliográficas

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.