LODチャレンジ2022のイベント SPARQLエンドポイントの使い方・作り方2022 にてオラクルさんから紹介があった、Oracle RDF Graph Server を構築し使ってみたところ、初めての方には少し使いにくいだろうな、と感じる点がいくつかありました。
・ エンドポイントのURLが長くて、グローバルIPとポート番号が丸見えでちょっと恥ずかしい
例)https://129.213.57.216:8001/orardf/api/v1/datasets/query/published/HERSYS
・ POSTアクセスができない(GETのみ可能)
・ オレオレ証明書なのでブラウザの警告が出る
・ ブラウザJSから直接エンドポイントに向けたAjax通信が通らない
・ 公開用のSPARQLクエリ入力フォーム画面がない(Yasgui等を利用する必要あり)
これらの使いにくい点を補完するためのPHPアプリケーションを作成しましたのでどうぞご利用ください。もし変なところがあればイシューかプルリクなどで教えていただけると助かります。
事前にオラクルクラウドで RDF Graph Server を立てておいてください。詳しくはこちらをご覧ください。
このリポジトリにある index.php をダウンロードし、テキストエディタで開いて、あなたが構築した Oracle RDF Graph Server のエンドポイントURLを上書きしてください。
次に、PHP7.0以上が使えるWEBサーバーに、その上書きした index.php を設置してください。無料レンタルサーバーなどでもよいです。
すでに index.html や index.php が存在するディレクトリに設置したい場合は、ファイル名を変更(sparql.php 等)してもOKです。見た目などを好みに改造して使っていただくのももちろんOKです。
WEBサーバーに設置した index.php をエンドポイントとしてクエリを投げてみてください。結果がJSONで返ります。POST又はGETのどちらでもOKです。POSTやGETの key name は query としてください。
CORS(クロスオリジンリソースシェアリング)も許可しているため、ローカルや別サーバーからのAjaxでのリクエストも可能です。
また、POSTやGETパラメータなしで、ブラウザから index.php にアクセスすると、SPARQLクエリの簡易入力フォーム画面が表示されます。誰でも簡単にSPARQLを利用することができます。
エンドポイントURLは下記のいずれでもOK
https://hersys.mirko.jp/sparql
https://hersys.mirko.jp/sparql/index.php
GET例
https://hersys.mirko.jp/sparql?query=select+%3Fs+%3Fp+%3Fo+where+%7B%3Fs+%3Fp+%3Fo%7D+limit+3
POST例
https://hersys.mirko.jp/sparql/post.html
無料レンタルサーバー設置例
https://ss1.xrea.com/yookan.s1010.xrea.com/sp/
作成した Oracle RDF Graph Server のインスタンスに apache などでWEBサーバーを作ってこのプログラムを動作させることができれば一石二鳥だと思いましたが、"Permission denied" エラーによりうまく動作しません。よい解決法をご存じであれば教えていただけると助かります。