🎃

w3id.orgを用いた永続識別子の取得とSnorqlへのリダイレクト

2023/04/02に公開

概要

以下のようなRDFデータの公開ページを作成しました。

https://sukilam-educational-metadata.github.io/

特に、以下のページから、SPARQLおよびSnorqlを用いたRDFデータに対する検索を行うことができます。Snorqlの利用にあたっては、「Snorql for Japan Search」を利用させていただいています。画面下部のクエリ例からお試しください。

https://sukilam-educational-metadata.github.io/snorql/

本ページの公開にあたり、w3id.orgを用いた永続識別子の取得とSnorqlへのリダイレクトを行いましたので、その備忘録です。

SPARQLエンドポイントの準備

Dydraを用いてSPARQLエンドポイントを構築しました。

Snorqlの準備

Snorql for Japan Searchについては、以下を参考にしてください。

https://www.kanzaki.com/works/ld/jpsearch/snorql_ldb-about

Snorqlのダウンロードについては、以下などを参考にしてください。

https://zenn.dev/nakamura196/articles/6b7c5484b2f161#snorqlの設定

またSnorqlのカスタマイズ方法については、以下などを参考にしてください。

https://zenn.dev/nakamura196/articles/74e8aca68604b2

公開ページの準備

今回は、GitHub Pagesを用いた公開ページの作成を行いました。まず、以下の組織アカウントを作成しました。

https://github.com/sukilam-educational-metadata

そして以下のリポジトリを作成しました。

https://github.com/sukilam-educational-metadata/sukilam-educational-metadata.github.io

GitHub Pagesを有効にすることで、以下URLから公開ページにアクセスできます。

https://sukilam-educational-metadata.github.io/

先に準備したSnorqlも設定することで、以下のURLから、Snorqlにアクセスできます。

https://sukilam-educational-metadata.github.io/snorql/

w3id.orgを用いた永続識別子の取得

最後に、w3id.orgを用いた永続識別子の取得について説明します。w3id.orgの使用にあたっては、以下などを参考にしました。

https://www.jstage.jst.go.jp/article/jkg/68/7/68_361/_pdf

まず、以下のサイトをForkします。

https://github.com/perma-id/w3id.org

そして、以下のプルリクエストを送りました。

https://github.com/perma-id/w3id.org/pull/3126/files

以下のように記述することで、https://w3id.org/sukilam-educational-metadata/学年/小6にアクセスすると、https://sukilam-educational-metadata.github.io/snorql/?describe=https://w3id.org/sukilam-educational-metadata/学年/小6に転送されます。

RewriteRule ^(.*) https://sukilam-educational-metadata.github.io/snorql/?describe=https://w3id.org/sukilam-educational-metadata/$1 [R=302,L]

(※この記述内容については、改善の余地が多いと思います。)

考察

Snorql(SPARQLエンドポイント)を用いたリダイレクトを行うことで、URI毎のページを動的に生成できることが利点です。一方、SPARQLエンドポイント(今回はDydra)に依存することになります。したがって、より安定した長期的な運用を目指す場合には、URI毎に静的なページを用意する方法のほうが適していると考えられます。

用途や運用環境に応じて、適切な手段を選択するのがよさそうです。

まとめ

RDFやLODの公開にあたり、本取り組みが参考になりましたら幸いです。

Discussion