未病データベース GakuNin RDMボタン表示
アイテム詳細画面のGakuNin RDM(以下GRDM)ボタンの表示について記述する。
用語説明
本書では以下の用語で統一する。
| 用語 | 説明 |
|---|---|
| フロント | 未病データベースのフロントエンド |
| WEKO | 未病データベース用のWEKO3リポジトリ(バックエンド) |
| プロジェクトURL | GRDMのプロジェクトや共有リクエストのURL |
1. RO-CrateからWEKOのアイテムへの変換
プロジェクトURLはRO-Crate内でams:projectIdとして記述される。
WEKOのJSON-LDマッピング機能( ADMIN_1_5:JSON-LDマッピング )を使用して、ams:projectIdを未病アイテムタイプのプロジェクトURL(関連情報プロパティ)にマッピングする。
ams:projectIdをプロジェクトURL.関連識別子.関連識別子にマッピングする。(以下、関連識別子とする。)プロジェクトURL.関連タイプには固定値で後述のgrdm.relationType の値をマッピングする。(以下、関連タイプとする。)
JSON-LDマッピング機能により、ams:projectIdが存在する場合のみ関連タイプが登録される。
RO-Crateの例
"@id": "./", "@type": "Dataset", "name": "Sample Dataset", "description": "This is a sample dataset.", "datePublished": "2025-03-01", "ams:projectId":{ "value": "https://rdm.nii.ac.jp/" }RO-Crateに対応するマッピング定義の例
"プロジェクトURL": "ams:projectId", "プロジェクトURL.関連識別子.関連識別子": "ams:projectId.value", "プロジェクトURL.関連タイプ": "$isVersionOf",
2. WEKOのアイテムからRO-Crateへの変換
アイテム取得API (/api/v1/records/<アイテムID>)使用時、
WEKOのRO-Crateマッピング機能を使用し、関連識別子と関連タイプを以下のキーにマッピングする。
- 関連識別子
- ツリー構造: root > プロジェクトURL > URL > URL
- RO-Crateのキー:
text
- 関連タイプ
- ツリー構造: root > プロジェクトURL > 関連タイプ > 関連タイプ
- RO-Crateのキー:
text
3. フロントでのGRDMボタン表示
WEKOのアイテム詳細情報取得APIを使用し、RO-Crateから関連識別子と関連タイプを取得する。
関連識別子と関連タイプが以下の2条件を共にみたす場合、関連識別子をプロジェクトURLとして扱う。
nginx/ams/weko-frontend/app.config.tsで設定したgrdm.urlの値が''(空文字列)の場合、関連識別子が空でないことnginx/ams/weko-frontend/app.config.tsで設定したgrdm.urlの値が''(空文字列)でない場合、関連識別子がgrdm.urlの値から始まること関連タイプが
nginx/ams/weko-frontend/app.config.tsで設定したgrdm.relationTypeの値と一致すること
プロジェクトURLが設定されている場合、ユーザのログイン状態に関わらずアイテム詳細画面にGRDMボタンを表示する。
ユーザがGRDMボタンを押下した場合は、プロジェクトURLを新規ウィンドウで開く。
GRDMボタンを表示している場合、リクエストボタンとその表示領域は非表示とする。
更新履歴
| 日付 | GitHubコミットID | 更新内容 |
|---|---|---|
| 2025/08/29 | 6ee63da44c8f2e23ac73d6218ee09f23ba5edcb3 | 初版作成 |