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

CodeMeta-Generierung mittels deklarativer Zuordnungsregeln: Ein offener Ansatz mit ShExML

Grundinformationen

  • Papier-ID: 2510.09172
  • Titel: Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML
  • Autor: Herminio García-González (Kazerne Dossin, Mechelen, Belgien)
  • Klassifizierung: cs.DL (Digitale Bibliotheken), cs.SE (Softwaretechnik)
  • Veröffentlichungsdatum: 10. Oktober 2025 (arXiv-Preprint)
  • Papierlink: https://arxiv.org/abs/2510.09172v1

Zusammenfassung

Heutzutage ist Software eine der Grundlagen der Forschung in mehreren wissenschaftlichen Bereichen, die computergestützte Methoden zur Beantwortung neuer Forschungsfragen einsetzen. Um diese Experimente vollständig reproduzierbar zu machen, sollte Forschungssoftware jedoch den FAIR-Prinzipien entsprechen. Allerdings können ihre Metadaten verschiedenen Datenmodellen folgen und sind an verschiedenen Orten verteilt. Um dem Bereich eine gewisse Kohäsion zu bringen, wurde CodeMeta als Vokabular vorgeschlagen, um Forschungssoftware-Metadaten auf einheitliche und standardisierte Weise darzustellen. Obwohl vorhandene Werkzeuge Benutzern helfen können, CodeMeta-Dateien für bestimmte Anwendungsfälle zu generieren, weisen sie Mängel in Bezug auf Flexibilität und Anpassungsfähigkeit auf. Daher schlägt dieser Artikel die Verwendung deklarativer Zuordnungsregeln zur Generierung von CodeMeta-Dateien vor, veranschaulicht durch die Implementierung von drei bereichsübergreifenden Zuordnungen in ShExML, und erweitert und kombiniert diese Zuordnungen dann, um die CodeMeta-Dateigenerierung für zwei vorhandene Forschungssoftware-Artefakte abzudecken. Darüber hinaus wird die Ausgabe mit SHACL und ShEx validiert, der gesamte Generierungsworkflow automatisiert und erfordert bei neuen Versionsveröffentlichungen nur minimale Benutzereingriffe.

Forschungshintergrund und Motivation

Problemdefinition

  1. FAIR-Compliance-Problem bei Forschungssoftware: Obwohl Forschungssoftware ein wichtiger Träger der wissenschaftlichen Forschung ist, sind ihre Metadaten auf verschiedenen Plattformen (GitHub, Zenodo, Maven usw.) verteilt, verwenden verschiedene Datenmodelle und mangelt es an Einheitlichkeit.
  2. Einschränkungen vorhandener Werkzeuge:
    • Die meisten Werkzeuge unterstützen nur Eins-zu-Eins-Konvertierungen (einzelne Metadatenquelle zu CodeMeta)
    • Mangel an Flexibilität und Anpassungsfähigkeit
    • Erfordern manuelle Benutzereingriffe zur Datenbeschaffung
    • Unzureichende Automatisierungsfähigkeiten
  3. Hindernisse für die CodeMeta-Adoption: Obwohl CodeMeta einen einheitlichen Standard für die Darstellung von Forschungssoftware-Metadaten bietet, behindern die Einschränkungen vorhandener Werkzeuge seine breite Annahme.

Forschungsbedeutung

  • Förderung der offenen Wissenschaft: Forschungssoftware, die den FAIR-Prinzipien entspricht, ist entscheidend für die Verwirklichung offener Wissenschaft
  • Gewährleistung der Reproduzierbarkeit: Einheitliche Metadatenstandards tragen zur Reproduzierbarkeit von Forschungsergebnissen bei
  • Plattformübergreifende Interoperabilität: Lösung des Problems der Metadatenformatinkompatibilität zwischen verschiedenen Plattformen

Kernbeiträge

  1. Vorschlag einer deklarativen Zuordnungsregelmethode: Verwendung der ShExML-Sprache zur Erstellung flexibler, wartbarer CodeMeta-Generierungsregeln
  2. Implementierung von drei Schlüssel-Querverweis-Zuordnungen: Entwicklung vollständiger ShExML-Zuordnungsimplementierungen für GitHub-, Maven- und Zenodo-Plattformen
  3. Aufbau eines einheitlichen Zuordnungsrahmens: Demonstration, wie mehrere heterogene Metadatenquellen zusammengeführt werden, um eine einzelne CodeMeta-Datei zu generieren
  4. Entwicklung eines vollständig automatisierten Workflows: Einschließlich JSON-LD-Rahmung, SHACL/ShEx-Validierung und GitHub Actions-Integration
  5. Bereitstellung praktischer Anwendungsfälle: Erfolgreiche Bereitstellung in der ShExML-Engine und DMAOG zwei Open-Source-Projekten

Methodische Details

Aufgabendefinition

Eingabe: Daten von mehreren heterogenen Metadatenanbietern (GitHub API, Maven POM-Dateien, Zenodo-Datensätze usw.) Ausgabe: Standardisierte JSON-LD-Datei, die der CodeMeta 3.0-Spezifikation entspricht Einschränkungen: Beibehaltung der Datensemantik, Unterstützung automatisierter Updates, Gewährleistung der Ausgabevalidierung

Kernmethodische Architektur

1. ShExML-Deklarative Zuordnungssprache

ShExML besteht aus zwei Hauptkomponenten:

  • Deklarationsteil:
    • Präfixdefinitionen (IRI-Verknüpfungen)
    • Datenquellendefinitionen (Eingabedateispeicherorte)
    • Funktionsdefinitionen (Erweiterung grundlegender Funktionalität)
    • Iteratordefinitionen (Datenextraktionsmethoden)
    • Ausdrucksdefinitionen (Zusammenführung von Daten aus verschiedenen Quellen)
  • Generierungsteil:
    • Formdefinitionen (RDF-Graphgenerierungsregeln)
    • Konstruktion von Subjekt-Prädikat-Objekt-Tripeln

2. Implementierung von drei Kern-Querverweis-Zuordnungen

GitHub-Zuordnung (Beispielcode):

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>
    // ... weitere Felder
}
schema:SoftwareSourceCode ex:[md.name] {
    a schema:SoftwareSourceCode ;
    schema:identifier [md.id] ;
    schema:name [md.name] ;
    // ... weitere Attributzuordnungen
}

Maven-Zuordnung: Verwendung von XPath-Abfragen für XML-formatierte POM-Dateien, Behandlung von Namespace- und Abhängigkeitszuordnungen.

Zenodo-Zuordnung: Verarbeitung verschachtelter JSON-Strukturen, einschließlich mehrstufiger Entitätsbeziehungen wie Autoren und Institutionen.

3. Einheitliche Zuordnungsstrategie

  • Intelligente Quellenauswahl: Wenn mehrere Quellen dasselbe Attribut enthalten, wird die beste Quelle basierend auf semantischer Relevanz und Wartungsfreundlichkeit ausgewählt
  • Ergänzung durch hartcodierte Werte: Für Daten, die nicht aus externen Quellen abgerufen werden können, ist eine direkte Definition in der Zuordnungsdatei zulässig
  • Datentransformationsfunktionen: Behandlung von Datumsformatkonvertierungen, URL-Normalisierung und anderen Datenbereinigungsaufgaben

Technische Innovationspunkte

  1. Mehrquellen-Datenfusion: Im Gegensatz zu vorhandenen Werkzeugen mit Eins-zu-Eins-Konvertierung unterstützt flexible Zusammenführung einer beliebigen Anzahl heterogener Quellen
  2. Deklarative Regeln: Im Vergleich zu programmatischen Ansätzen bietet bessere Lesbarkeit, Wartbarkeit und Teilbarkeit
  3. Feinkörnige Kontrolle: Ermöglicht präzise Zuordnungskontrolle auf Attributebene statt einfacher Prioritätsübersteuerung
  4. Automatisierte Integration: Vollständige CI/CD-Workflow-Integration mit Unterstützung für automatische Updates bei Versionsverlauf

Experimentelle Einrichtung

Testprojekte

  1. ShExML-Engine: In Scala geschriebenes Werkzeug zur heterogenen Datenzuordnung
  2. DMAOG-Bibliothek: Scala-Bibliothek für datenzuordnungsbezogene Funktionen

Datenquellen

  • GitHub API: Repository-Basisinformationen, Veröffentlichungsdatensätze, Problem-Tracking usw.
  • Maven Central: Projektmetadaten und Abhängigkeitsinformationen in POM-Dateien
  • Zenodo: DOI, Förderinformationen, detaillierte Autorenangaben usw.

Validierungsmethoden

  • SHACL-Validierung: Strukturvalidierung mit W3C-Empfehlungsstandard
  • ShEx-Validierung: Mustervalidierung mit Shape Expressions
  • CodeMeta Generator: Endgültige Validierung mit offiziellem Validierungswerkzeug

Automatisiertes Werkzeug-Stack

  • GitHub Actions: CI/CD-Pipeline
  • Groovy-Skripte: JSON-LD-Rahmungsverarbeitung
  • Bash-Skripte: Workflow-Orchestrierung

Experimentelle Ergebnisse

Hauptergebnisse

1. Zuordnungsabdeckung

PlattformUnterstützte AttributeCodeMeta-Klassenabdeckung
GitHub12 KernattributeSoftwareSourceCode, Person
Maven8 KernattributeSoftwareSourceCode, Abhängigkeiten
Zenodo15 KernattributeSoftwareSourceCode, Person, Organization

2. Automatisierungseffekte

  • Wartungskosten: Bei jeder Versionsaktualisierung müssen nur 2 Codezeilen geändert werden (Eingabequellen-URLs)
  • Verarbeitungszeit: Vollständige Workflow-Ausführungszeit < 2 Minuten
  • Erfolgsquote: Erfolgreiche Generierung gültiger CodeMeta-Dateien in beiden getesteten Projekten

3. Adaptivitätsvalidierung

Anpassung von ShExML-Engine zu DMAOG-Projekt:

  • Nur 6 Codezeilen erforderlich (4 API-Aufrufe, 1 Mitwirkender entfernt)
  • Beibehaltung derselben technischen Stack-Unterstützung (Scala + SBT + Maven Central)
  • Generierte CodeMeta-Dateien bestehen alle Validierungstests

Ausgabequalitätsanalyse

Generierte CodeMeta-Dateien enthalten:

  • Grundmetadaten: Name, Beschreibung, Version, Lizenz usw.
  • Entwicklungsinformationen: Programmiersprache, Laufzeitplattform, kontinuierliche Integration usw.
  • Personalinformationen: Autoren, Mitwirkende, Institutionszugehörigkeit usw.
  • Zugehörige Ressourcen: Code-Repository, Download-Links, Referenzen usw.
  • Abhängigkeitsbeziehungen: Softwareanforderungen und Versionsinformationen

Validierungsergebnisse

Alle generierten CodeMeta-Dateien bestehen:

  • SHACL-Strukturvalidierung
  • ShEx-Mustervalidierung
  • CodeMeta Generator-Offizielle Validierung

Verwandte Arbeiten

Klassifizierung vorhandener CodeMeta-Werkzeuge

1. Konvertierungswerkzeuge

  • Bolognese: Ruby-Bibliothek mit Unterstützung für mehrere DOI-Metadatenformatkonvertierungen
  • codemetar: R-Paket-spezifisches CodeMeta-Generierungswerkzeug
  • codemetapy: Python-Implementierung mit Unterstützung für mehrere Paketmanager
  • cffconvert: Citation File Format-Konvertierungswerkzeug

2. Verwaltungswerkzeuge

  • codemeta-server: CodeMeta-basierter Werkzeugverzeichnisdienst
  • HERMES: CI/CD-integrierte Forschungssoftware-Veröffentlichungsplattform

3. Hilfswerkzeuge

  • CodeMeta Generator: Webbasierter interaktiver Generator
  • SMECS: Softwaremetadaten-Extraktions- und Kurierungssystem

Vorteile dieses Artikels

  1. Flexibilität: Unterstützt beliebige Anzahl und Typen von Metadatenquellen
  2. Feinkörnige Kontrolle: Präzise Zuordnung auf Attributebene statt einfacher Priorität
  3. Deklarativer Ansatz: Im Vergleich zu programmatischen Implementierungen leichter zu verstehen und zu warten
  4. Vollständige Automatisierung: End-to-End-Automatisierungsprozess von Generierung bis Validierung

Schlussfolgerung und Diskussion

Hauptschlussfolgerungen

  1. Machbarkeit deklarativer Zuordnungsregeln: Beweis der technischen Machbarkeit der CodeMeta-Generierung mit ShExML
  2. Vorteile der Mehrquellen-Fusion: Demonstration des Wertes und der Wirksamkeit der Integration heterogener Metadatenquellen
  3. Erfolgreiche automatisierte Bereitstellung: Realisierung eines automatisierten Workflows mit niedrigen Wartungskosten in echten Projekten
  4. Skalierbarkeitsvalidierung: Beweis der Allgemeingültigkeit der Methode durch erfolgreiche Anpassung an zwei Projekte

Einschränkungen

  1. Technologie-Stack-Abhängigkeit: Aktuelle Implementierung konzentriert sich hauptsächlich auf Scala/JVM-Ökosystem
  2. Lernkurve: Benutzer müssen ShExML-Syntax und Konzepte erlernen
  3. Plattformabdeckung: Nur drei Hauptplattformen-Querverweis-Zuordnungen implementiert
  4. Anpassung komplexer Projekte: Komplexe Projekte mit mehreren Technologie-Stacks erfordern möglicherweise mehr Anpassung

Zukünftige Richtungen

  1. Erweiterung von Querverweis-Zuordnungen: Implementierung aller von CodeMeta offiziell unterstützten Plattformzuordnungen
  2. Visualisierungsschnittstelle: Entwicklung eines grafischen Zuordnungsregel-Editors
  3. KI-gestützte Generierung: Nutzung großer Sprachmodelle zur automatischen Generierung von Zuordnungsregeln
  4. Template-Bibliothek-Aufbau: Bereitstellung vordefinierter Vorlagen für verschiedene Technologie-Stacks und Projekttypen

Tiefgreifende Bewertung

Stärken

  1. Starke Methodische Innovativität: Erstmalige Anwendung deklarativer Zuordnungsregeln auf CodeMeta-Generierung, bietet neuen technischen Weg
  2. Hoher praktischer Wert: Löst tatsächlich vorhandene Schmerzen in der Forschungssoftware-Metadatenverwaltung
  3. Vollständigkeit der Implementierung: Bietet vollständige Lösung von Konzept bis Bereitstellung
  4. Gute Reproduzierbarkeit: Bietet detaillierte Implementierungscode und Bereitstellungsrichtlinien

Mängel

  1. Begrenzte Bewertungsreichweite: Tests nur an zwei ähnlichen Projekten durchgeführt, mangelnde großflächige Validierung
  2. Fehlende Leistungsanalyse: Keine Leistungsbewertung bei großen Projekten oder großen Datenmengen
  3. Unzureichende Fehlerbehandlung: Robustheitsanalyse für Datenquellen-Nichtverfügbarkeit oder Formatänderungen nicht ausreichend
  4. Mangelnde Benutzerforschung: Keine Bewertung der Benutzerakzeptanz und Benutzerfreundlichkeit durchgeführt

Auswirkungen

  1. Akademischer Beitrag: Bietet neue technische Lösung für Forschungssoftware-Metadatenverwaltungsbereich
  2. Praktischer Wert: Kann direkt auf CodeMeta-Adoption in Open-Source-Projekten angewendet werden
  3. Ökosystem-Förderung: Trägt zur Erhöhung der CodeMeta-Adoptionsrate in der Forschungssoftware-Gemeinschaft bei
  4. Standardisierungsförderung: Unterstützt Umsetzung von FAIR-Prinzipien im Forschungssoftwarebereich

Anwendungsszenarien

  1. Open-Source-Softwareprojekte: Besonders geeignet für Forschungssoftware, die auf mehreren Plattformen veröffentlicht werden muss
  2. Akademische Institutionen: Kann für institutionelle Metadatenverwaltung von Forschungssoftware verwendet werden
  3. CI/CD-Integration: Geeignet für Projekte mit vorhandenen automatisierten Veröffentlichungsprozessen
  4. Metadaten-Standardisierung: Anwendbar auf Forschungsorganisationen, die einheitliche Metadatenformate benötigen

Literaturverzeichnis

Das Papier enthält 37 Literaturverweise, die wichtige Arbeiten in verwandten Bereichen wie FAIR-Prinzipien, Semantic-Web-Technologie, CodeMeta-Spezifikation und deklarative Zuordnungssprachen abdecken und eine solide theoretische Grundlage und technische Unterstützung für die Forschung bieten.


Gesamtbewertung: Dies ist ein technisches Papier mit praktischem Wert im Bereich der Forschungssoftware-Metadatenverwaltung. Die vorgeschlagene deklarative Zuordnungsmethode ist innovativ, die Implementierung ist vollständig und reproduzierbar, und sie hat positive Bedeutung für die Förderung der CodeMeta-Standard-Adoption. Obwohl es noch Raum für Verbesserungen in Bewertungsumfang und -tiefe gibt, bietet es einen wertvollen technischen Beitrag zum Bereich.