w3id.orgを用いた永続識別子の取得とSnorqlへのリダイレクト
概要
以下のようなRDFデータの公開ページを作成しました。
特に、以下のページから、SPARQLおよびSnorqlを用いたRDFデータに対する検索を行うことができます。Snorqlの利用にあたっては、「Snorql for Japan Search」を利用させていただいています。画面下部のクエリ例からお試しください。
本ページの公開にあたり、w3id.orgを用いた永続識別子の取得とSnorqlへのリダイレクトを行いましたので、その備忘録です。
SPARQLエンドポイントの準備
Dydraを用いてSPARQLエンドポイントを構築しました。
Snorqlの準備
Snorql for Japan Searchについては、以下を参考にしてください。
Snorqlのダウンロードについては、以下などを参考にしてください。
またSnorqlのカスタマイズ方法については、以下などを参考にしてください。
公開ページの準備
今回は、GitHub Pagesを用いた公開ページの作成を行いました。まず、以下の組織アカウントを作成しました。
そして以下のリポジトリを作成しました。
GitHub Pagesを有効にすることで、以下URLから公開ページにアクセスできます。
先に準備したSnorqlも設定することで、以下のURLから、Snorqlにアクセスできます。
w3id.orgを用いた永続識別子の取得
最後に、w3id.orgを用いた永続識別子の取得について説明します。w3id.orgの使用にあたっては、以下などを参考にしました。
まず、以下のサイトをForkします。
そして、以下のプルリクエストを送りました。
以下のように記述することで、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