im@sparqlの構成について
#オタクLOD発展のため、im@sparqlのバックエンドにまとめる。
SPARQLエンジン
Apache Jena Fuseki2を利用。Fuseki2はファイルからグラフを構築する場合、更新するときは再起動が必要なためDockerコンテナで管理しています。Imageはこいつ。
設定ファイルはこんな感じです。Readだけ許可し、Updateクエリ等は通さない。ファイルはhttp経由で取っても絶対パスを書いても良し。
@prefix fuseki: <http://jena.apache.org/fuseki#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> . @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . @prefix : <#> . <#service1> rdf:type fuseki:Service ; fuseki:name "/imas" ; fuseki:serviceQuery "query" ; fuseki:serviceReadGraphStore "data" ; fuseki:dataset <#imas>; . <#imas> rdf:type ja:RDFDataset ; rdfs:label "imas" ; ja:defaultGraph [ rdfs:label "imas" ; a ja:MemoryModel ; ja:content [ja:externalContent <https://sparql.crssnky.xyz/imasrdf/RDFs/765AS.rdf> ] ; ・・・ ja:content [ja:externalContent <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl> ] ; ]; .
自動更新
詳しくは書かないが、GitHubのリポジトリからマージを監視し、そのたびにサーバー上のファイルを更新してDockerコンテナを再起動しています。
Webサーバー
お前いまどきWebサーバーにApache使ってるのかよって感じですが、元々はTomcat上でFuseki2動かしてたからね。しょうがないね。
ここではSSL設定したり、リバースプロキシでFuseki2のプロセスへhttp通信を橋渡ししたりしてます。