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 論文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を使用して出力を検証し、生成ワークフロー全体を自動化し、新しいバージョンのリリース時にはユーザーの最小限の介入のみで済むようにしている。
研究ソフトウェアのFAIR準拠の問題 :研究ソフトウェアは科学研究の重要な支援であるが、そのメタデータはGitHub、Zenodo、Mavenなど異なるプラットフォームに分散し、異なるデータモデルを使用しており、統一性が欠けている。既存ツールの制限 :ほとんどのツールは一対一の変換(単一メタデータソースからCodeMetaへ)のみをサポート 柔軟性と適応性の欠如 データ調整のためのユーザーの手動介入が必要 自動化能力の不足 CodeMeta採用の障壁 :CodeMetaは研究ソフトウェアメタデータの統一的な表現標準を提供しているが、既存ツールの制限がその広範な採用を阻害している。オープンサイエンスの推進 :FAIR原則に準拠した研究ソフトウェアはオープンサイエンスの実現に不可欠再現性の確保 :統一されたメタデータ標準は研究結果の再現性を支援クロスプラットフォーム相互運用性 :異なるプラットフォーム間のメタデータ形式の非互換性の問題を解決宣言的マッピングルール方法の提案 :ShExML言語を使用して柔軟で保守可能なCodeMeta生成ルールを作成3つの重要なクロスマッピングの実装 :GitHub、Maven、Zenodoプラットフォーム向けの完全なShExMLマッピング実装を開発統一マッピングフレームワークの構築 :複数の異種メタデータソースを統合して単一のCodeMetaファイルを生成する方法を実証完全な自動化ワークフローの開発 :JSON-LDフレーミング、SHACL/ShEx検証、GitHub Actionsの統合を含む実践的なアプリケーションケースの提供 :ShExMLエンジンとDMAOGの2つのオープンソースプロジェクトでの成功した展開入力 :複数の異種メタデータプロバイダーからのデータ(GitHub API、Maven POMファイル、Zenodoレコードなど)
出力 :CodeMeta 3.0仕様に準拠した標準化されたJSON-LDファイル
制約条件 :データセマンティクスの完全性を維持し、自動更新をサポートし、出力検証の合格を確保
ShExMLは2つの主要コンポーネントで構成される:
宣言部分 :プレフィックス定義(IRIショートカット) データソース定義(入力ファイルの場所) 関数定義(基本機能の拡張) イテレータ定義(データ抽出方法) 式定義(異なるソースのデータ統合) 生成部分 :シェイプ定義(RDFグラフ生成ルール) 主語-述語-目的語トリプルの構築 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構造を処理し、著者、機関など複数層のエンティティ関係を含む。
インテリジェントソース選択 :複数のソースが同じ属性を含む場合、セマンティック関連性と保守性に基づいて最適なソースを選択ハードコード値の補足 :外部ソースから取得できないデータについては、マッピングファイルで直接定義することを許可データ変換関数 :日付形式の変換、URL標準化などのデータクリーニングタスクを処理マルチソースデータ融合 :既存ツールの一対一変換とは異なり、任意数の異種ソースの柔軟な統合をサポート宣言的ルール :プログラム的アプローチと比較して、より優れた可読性、保守性、共有可能性を提供細粒度制御 :単純な優先度オーバーライドではなく、属性レベルの正確なマッピング制御を許可自動化統合 :完全なCI/CDワークフロー統合により、バージョンリリース時の自動更新をサポートShExMLエンジン :Scalaで記述された異種データマッピングツールDMAOGライブラリ :データマッピング関連のScalaライブラリGitHub API :リポジトリ基本情報、リリース記録、問題追跡などMaven Central :POMファイル内のプロジェクトメタデータと依存情報Zenodo :DOI、助成金情報、著者詳細情報などSHACL検証 :W3C推奨標準を使用した構造検証ShEx検証 :Shape Expressionsを使用したパターン検証CodeMeta Generator :公式検証ツールを使用した最終確認GitHub Actions :CI/CDパイプラインGroovyスクリプト :JSON-LDフレーミング処理Bashスクリプト :ワークフロー編成プラットフォーム サポート属性数 CodeMetaクラスカバレッジ GitHub 12個のコア属性 SoftwareSourceCode、Person Maven 8個のコア属性 SoftwareSourceCode、依存関係 Zenodo 15個のコア属性 SoftwareSourceCode、Person、Organization
保守コスト :バージョン更新ごとにわずか2行のコード修正(入力ソースURL)処理時間 :完全なワークフロー実行時間 < 2分成功率 :テストされた2つのプロジェクトで有効なCodeMetaファイルの生成に成功ShExMLエンジンからDMAOGプロジェクトへの適応:
わずか6行のコード修正(4行のAPI呼び出し、1人の貢献者を削除) 同じ技術スタックサポートを維持(Scala + SBT + Maven Central) 生成されたCodeMetaファイルはすべての検証テストに合格 生成されたCodeMetaファイルには以下が含まれる:
基本メタデータ :名前、説明、バージョン、ライセンスなど開発情報 :プログラミング言語、実行プラットフォーム、継続的インテグレーションなど人員情報 :著者、貢献者、機関関連付けなど関連リソース :コードリポジトリ、ダウンロードリンク、参考文献など依存関係 :ソフトウェア要件とバージョン情報生成されたすべてのCodeMetaファイルは以下を通過:
SHACL構造検証 ShExパターン検証 CodeMeta Generator公式検証 Bolognese :Rubyライブラリ、複数のDOIメタデータ形式変換をサポートcodemetar :R言語専用CodeMeta生成ツールcodemetapy :Python実装、複数のパッケージマネージャーをサポートcffconvert :Citation File Format変換ツールcodemeta-server :CodeMetaベースのツールディレクトリサービスHERMES :CI/CD統合研究ソフトウェア公開プラットフォームCodeMeta Generator :WebベースのインタラクティブジェネレータSMECS :ソフトウェアメタデータ抽出・キュレーションシステム柔軟性 :任意数および任意タイプのメタデータソースをサポート細粒度制御 :単純な優先度ではなく、属性レベルの正確なマッピング宣言的方法 :プログラム的実装よりも理解と保守が容易完全な自動化 :生成から検証までのエンドツーエンド自動化プロセス宣言的マッピングルールの実現可能性 :ShExMLを使用したCodeMeta生成の技術的実現可能性を証明マルチソース融合の利点 :異種メタデータソースの統合の価値と効果を実証自動化展開の成功 :実際のプロジェクトで低保守コストの自動化ワークフローを実現スケーラビリティの検証 :2つのプロジェクトの成功した適応により、方法論の汎用性を証明技術スタック依存性 :現在の実装は主にScala/JVMエコシステムを対象学習曲線 :ユーザーはShExML構文と概念を学習する必要があるプラットフォームカバレッジ :3つの主要プラットフォームのクロスマッピングのみを実装複雑なプロジェクトへの適応 :複数の技術スタックを使用する複雑なプロジェクトではさらなるカスタマイズが必要な可能性クロスマッピングの拡張 :CodeMeta公式がサポートするすべてのプラットフォームマッピングを実装ビジュアルインターフェース :マッピングルールのグラフィカルエディタを開発AI支援生成 :大規模言語モデルを活用してマッピングルールを自動生成テンプレートライブラリの構築 :異なる技術スタックとプロジェクトタイプ向けの事前定義テンプレートを提供方法論の革新性が高い :宣言的マッピングルールをCodeMeta生成に初めて適用し、新しい技術パスを提供実用価値が高い :実際に存在する研究ソフトウェアメタデータ管理の課題を解決実装の完全性 :概念から展開まで完全なソリューションを提供再現性が良好 :詳細な実装コードと展開ガイドを提供評価範囲が限定的 :2つの類似プロジェクトでのみテストされており、大規模検証が不足パフォーマンス分析の欠如 :大規模プロジェクトまたは大量データ処理時のパフォーマンス評価がないエラーハンドリングの不足 :データソースの利用不可または形式変更に対する堅牢性分析が不十分ユーザー研究の欠如 :ユーザー受け入れと使いやすさの評価が実施されていない学術的貢献 :研究ソフトウェアメタデータ管理分野に新しい技術ソリューションを提供実践的価値 :オープンソースプロジェクトのCodeMeta採用に直接適用可能エコシステム推進 :研究ソフトウェアコミュニティにおけるCodeMetaの採用率向上に貢献標準化促進 :研究ソフトウェア分野におけるFAIR原則の実装を支援オープンソースソフトウェアプロジェクト :特に複数のプラットフォームでリリースする必要がある研究ソフトウェアに適切学術機関 :機関レベルの研究ソフトウェアメタデータ管理に使用可能CI/CD統合 :既に自動化リリースプロセスを持つプロジェクトに適切メタデータ標準化 :統一されたメタデータ形式を必要とする研究組織に適用可能論文は37の参考文献を含み、FAIR原則、セマンティックウェブ技術、CodeMeta仕様、宣言的マッピング言語など関連分野の重要な研究をカバーしており、研究に堅実な理論的基礎と技術的サポートを提供している。
総合評価 :これは研究ソフトウェアメタデータ管理分野における実用的価値を持つ技術論文であり、提案された宣言的マッピング方法は革新的であり、実装は完全で再現可能であり、CodeMeta標準の採用推進に積極的な意義を持つ。評価範囲と深さの改善の余地はあるが、この分野に価値のある技術的貢献を提供している。