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

ShExMLを使用した宣言的マッピングルールによるCodeMetaの生成:オープンエンドなアプローチ

基本情報

  • 論文ID: 2510.09172
  • タイトル: Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML
  • 著者: Herminio García-González (Kazerne Dossin, Mechelen, Belgium)
  • 分類: cs.DL (Digital Libraries)、cs.SE (Software Engineering)
  • 発表日: 2025年10月10日 (arXiv プレプリント)
  • 論文リンク: https://arxiv.org/abs/2510.09172v1

要旨

現在、ソフトウェアは複数の科学分野における研究の基盤の一つとなっており、これらの分野ではコンピュータベースの手法を用いて新しい研究課題に対応している。しかし、これらの実験を完全に再現可能にするためには、研究ソフトウェアはFAIR原則に準拠すべきであるが、そのメタデータは異なるデータモデルに従い、異なる場所に分散している可能性がある。この分野に一定の統一性をもたらすため、CodeMetaは研究ソフトウェアメタデータを統一的かつ標準化された方法で表現するための語彙として提案されている。既存のツールは特定のユースケースに対してCodeMetaファイルを生成するのに役立つが、柔軟性と適応性の面で不足している。したがって、本論文は宣言的マッピングルールを使用してCodeMetaファイルを生成することを提案し、ShExMLで実装された3つのクロスマッピングによってこれを説明し、その後、これらのマッピングを拡張・統合して、2つの既存研究ソフトウェア成果物のCodeMetaファイル生成をカバーする。さらに、SHACLおよびShExを使用して出力を検証し、生成ワークフロー全体を自動化し、新しいバージョンのリリース時にはユーザーの最小限の介入のみで済むようにしている。

研究背景と動機

問題定義

  1. 研究ソフトウェアのFAIR準拠の問題:研究ソフトウェアは科学研究の重要な支援であるが、そのメタデータはGitHub、Zenodo、Mavenなど異なるプラットフォームに分散し、異なるデータモデルを使用しており、統一性が欠けている。
  2. 既存ツールの制限
    • ほとんどのツールは一対一の変換(単一メタデータソースからCodeMetaへ)のみをサポート
    • 柔軟性と適応性の欠如
    • データ調整のためのユーザーの手動介入が必要
    • 自動化能力の不足
  3. CodeMeta採用の障壁:CodeMetaは研究ソフトウェアメタデータの統一的な表現標準を提供しているが、既存ツールの制限がその広範な採用を阻害している。

研究の重要性

  • オープンサイエンスの推進:FAIR原則に準拠した研究ソフトウェアはオープンサイエンスの実現に不可欠
  • 再現性の確保:統一されたメタデータ標準は研究結果の再現性を支援
  • クロスプラットフォーム相互運用性:異なるプラットフォーム間のメタデータ形式の非互換性の問題を解決

核心的貢献

  1. 宣言的マッピングルール方法の提案:ShExML言語を使用して柔軟で保守可能なCodeMeta生成ルールを作成
  2. 3つの重要なクロスマッピングの実装:GitHub、Maven、Zenodoプラットフォーム向けの完全なShExMLマッピング実装を開発
  3. 統一マッピングフレームワークの構築:複数の異種メタデータソースを統合して単一のCodeMetaファイルを生成する方法を実証
  4. 完全な自動化ワークフローの開発:JSON-LDフレーミング、SHACL/ShEx検証、GitHub Actionsの統合を含む
  5. 実践的なアプリケーションケースの提供:ShExMLエンジンとDMAOGの2つのオープンソースプロジェクトでの成功した展開

方法論の詳細

タスク定義

入力:複数の異種メタデータプロバイダーからのデータ(GitHub API、Maven POMファイル、Zenodoレコードなど) 出力:CodeMeta 3.0仕様に準拠した標準化されたJSON-LDファイル 制約条件:データセマンティクスの完全性を維持し、自動更新をサポートし、出力検証の合格を確保

コア方法論アーキテクチャ

1. ShExML宣言的マッピング言語

ShExMLは2つの主要コンポーネントで構成される:

  • 宣言部分
    • プレフィックス定義(IRIショートカット)
    • データソース定義(入力ファイルの場所)
    • 関数定義(基本機能の拡張)
    • イテレータ定義(データ抽出方法)
    • 式定義(異なるソースのデータ統合)
  • 生成部分
    • シェイプ定義(RDFグラフ生成ルール)
    • 主語-述語-目的語トリプルの構築

2. 3つのコア実装クロスマッピング

GitHubマッピング(コード例):

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>
    // ... その他のフィールド
}
schema:SoftwareSourceCode ex:[md.name] {
    a schema:SoftwareSourceCode ;
    schema:identifier [md.id] ;
    schema:name [md.name] ;
    // ... その他のプロパティマッピング
}

Mavenマッピング:XPathクエリを使用してXML形式のPOMファイルを処理し、名前空間と依存関係マッピングを処理。

Zenodoマッピング:ネストされたJSON構造を処理し、著者、機関など複数層のエンティティ関係を含む。

3. 統一マッピング戦略

  • インテリジェントソース選択:複数のソースが同じ属性を含む場合、セマンティック関連性と保守性に基づいて最適なソースを選択
  • ハードコード値の補足:外部ソースから取得できないデータについては、マッピングファイルで直接定義することを許可
  • データ変換関数:日付形式の変換、URL標準化などのデータクリーニングタスクを処理

技術的革新点

  1. マルチソースデータ融合:既存ツールの一対一変換とは異なり、任意数の異種ソースの柔軟な統合をサポート
  2. 宣言的ルール:プログラム的アプローチと比較して、より優れた可読性、保守性、共有可能性を提供
  3. 細粒度制御:単純な優先度オーバーライドではなく、属性レベルの正確なマッピング制御を許可
  4. 自動化統合:完全なCI/CDワークフロー統合により、バージョンリリース時の自動更新をサポート

実験設定

テストプロジェクト

  1. ShExMLエンジン:Scalaで記述された異種データマッピングツール
  2. DMAOGライブラリ:データマッピング関連のScalaライブラリ

データソース

  • GitHub API:リポジトリ基本情報、リリース記録、問題追跡など
  • Maven Central:POMファイル内のプロジェクトメタデータと依存情報
  • Zenodo:DOI、助成金情報、著者詳細情報など

検証方法

  • SHACL検証:W3C推奨標準を使用した構造検証
  • ShEx検証:Shape Expressionsを使用したパターン検証
  • CodeMeta Generator:公式検証ツールを使用した最終確認

自動化ツールチェーン

  • GitHub Actions:CI/CDパイプライン
  • Groovyスクリプト:JSON-LDフレーミング処理
  • Bashスクリプト:ワークフロー編成

実験結果

主要な成果

1. マッピングカバレッジ

プラットフォームサポート属性数CodeMetaクラスカバレッジ
GitHub12個のコア属性SoftwareSourceCode、Person
Maven8個のコア属性SoftwareSourceCode、依存関係
Zenodo15個のコア属性SoftwareSourceCode、Person、Organization

2. 自動化効果

  • 保守コスト:バージョン更新ごとにわずか2行のコード修正(入力ソースURL)
  • 処理時間:完全なワークフロー実行時間 < 2分
  • 成功率:テストされた2つのプロジェクトで有効なCodeMetaファイルの生成に成功

3. 適応性検証

ShExMLエンジンからDMAOGプロジェクトへの適応:

  • わずか6行のコード修正(4行のAPI呼び出し、1人の貢献者を削除)
  • 同じ技術スタックサポートを維持(Scala + SBT + Maven Central)
  • 生成されたCodeMetaファイルはすべての検証テストに合格

出力品質分析

生成されたCodeMetaファイルには以下が含まれる:

  • 基本メタデータ:名前、説明、バージョン、ライセンスなど
  • 開発情報:プログラミング言語、実行プラットフォーム、継続的インテグレーションなど
  • 人員情報:著者、貢献者、機関関連付けなど
  • 関連リソース:コードリポジトリ、ダウンロードリンク、参考文献など
  • 依存関係:ソフトウェア要件とバージョン情報

検証結果

生成されたすべてのCodeMetaファイルは以下を通過:

  • SHACL構造検証
  • ShExパターン検証
  • CodeMeta Generator公式検証

関連研究

既存CodeMetaツールの分類

1. 変換ツール

  • Bolognese:Rubyライブラリ、複数のDOIメタデータ形式変換をサポート
  • codemetar:R言語専用CodeMeta生成ツール
  • codemetapy:Python実装、複数のパッケージマネージャーをサポート
  • cffconvert:Citation File Format変換ツール

2. 管理ツール

  • codemeta-server:CodeMetaベースのツールディレクトリサービス
  • HERMES:CI/CD統合研究ソフトウェア公開プラットフォーム

3. 補助ツール

  • CodeMeta Generator:Webベースのインタラクティブジェネレータ
  • SMECS:ソフトウェアメタデータ抽出・キュレーションシステム

本論文の利点

  1. 柔軟性:任意数および任意タイプのメタデータソースをサポート
  2. 細粒度制御:単純な優先度ではなく、属性レベルの正確なマッピング
  3. 宣言的方法:プログラム的実装よりも理解と保守が容易
  4. 完全な自動化:生成から検証までのエンドツーエンド自動化プロセス

結論と考察

主要な結論

  1. 宣言的マッピングルールの実現可能性:ShExMLを使用したCodeMeta生成の技術的実現可能性を証明
  2. マルチソース融合の利点:異種メタデータソースの統合の価値と効果を実証
  3. 自動化展開の成功:実際のプロジェクトで低保守コストの自動化ワークフローを実現
  4. スケーラビリティの検証:2つのプロジェクトの成功した適応により、方法論の汎用性を証明

制限事項

  1. 技術スタック依存性:現在の実装は主にScala/JVMエコシステムを対象
  2. 学習曲線:ユーザーはShExML構文と概念を学習する必要がある
  3. プラットフォームカバレッジ:3つの主要プラットフォームのクロスマッピングのみを実装
  4. 複雑なプロジェクトへの適応:複数の技術スタックを使用する複雑なプロジェクトではさらなるカスタマイズが必要な可能性

今後の方向性

  1. クロスマッピングの拡張:CodeMeta公式がサポートするすべてのプラットフォームマッピングを実装
  2. ビジュアルインターフェース:マッピングルールのグラフィカルエディタを開発
  3. AI支援生成:大規模言語モデルを活用してマッピングルールを自動生成
  4. テンプレートライブラリの構築:異なる技術スタックとプロジェクトタイプ向けの事前定義テンプレートを提供

深度評価

強み

  1. 方法論の革新性が高い:宣言的マッピングルールをCodeMeta生成に初めて適用し、新しい技術パスを提供
  2. 実用価値が高い:実際に存在する研究ソフトウェアメタデータ管理の課題を解決
  3. 実装の完全性:概念から展開まで完全なソリューションを提供
  4. 再現性が良好:詳細な実装コードと展開ガイドを提供

不足

  1. 評価範囲が限定的:2つの類似プロジェクトでのみテストされており、大規模検証が不足
  2. パフォーマンス分析の欠如:大規模プロジェクトまたは大量データ処理時のパフォーマンス評価がない
  3. エラーハンドリングの不足:データソースの利用不可または形式変更に対する堅牢性分析が不十分
  4. ユーザー研究の欠如:ユーザー受け入れと使いやすさの評価が実施されていない

影響力

  1. 学術的貢献:研究ソフトウェアメタデータ管理分野に新しい技術ソリューションを提供
  2. 実践的価値:オープンソースプロジェクトのCodeMeta採用に直接適用可能
  3. エコシステム推進:研究ソフトウェアコミュニティにおけるCodeMetaの採用率向上に貢献
  4. 標準化促進:研究ソフトウェア分野におけるFAIR原則の実装を支援

適用シーン

  1. オープンソースソフトウェアプロジェクト:特に複数のプラットフォームでリリースする必要がある研究ソフトウェアに適切
  2. 学術機関:機関レベルの研究ソフトウェアメタデータ管理に使用可能
  3. CI/CD統合:既に自動化リリースプロセスを持つプロジェクトに適切
  4. メタデータ標準化:統一されたメタデータ形式を必要とする研究組織に適用可能

参考文献

論文は37の参考文献を含み、FAIR原則、セマンティックウェブ技術、CodeMeta仕様、宣言的マッピング言語など関連分野の重要な研究をカバーしており、研究に堅実な理論的基礎と技術的サポートを提供している。


総合評価:これは研究ソフトウェアメタデータ管理分野における実用的価値を持つ技術論文であり、提案された宣言的マッピング方法は革新的であり、実装は完全で再現可能であり、CodeMeta標準の採用推進に積極的な意義を持つ。評価範囲と深さの改善の余地はあるが、この分野に価値のある技術的貢献を提供している。