SPARQLをやっていきたい話&情報集約をするページ

13 min read読了の目安(約11700字

TL;DR

冒頭ちょろっと小話を語ったあと,SPARQLってなに?という入門者 ~ RDF/SPARQL関連の情報を探している経験者までを広く対象として,日本語ページ中心にメモ的に記事としてまとめた.残念ながらこの領域を専門として研究しているような玄人にとって目新しい情報はない.

いい感じの情報ありましたら,記事最下部の Discussion の欄へのひとことをよろしくおねがいします.

SPARQLをやっていきたい

きれいなデータを誰でもいつでも何度でもどこからでも使えるようにしたい,そうすればきっと何かしらいい方向に発展があるかもしれない,そんな気がしている.

read more

データがなきゃあ始まらないという時代,どこもみんながみんなこぞってデータを集めているが,イマイチなにか発展する感じがしない.結局データより何よりマシンパワーと画期的なロジックで駆動していて,すべてをかっさらうのはリソースを持ってるGとかFとかAとかMとかばかり.さらにそもそも集めたデータが汚くて使えない,それをきれいにするのにまた人の手が必要とかいう奴隷労働も蔓延っている有様だ.

SPARQLにおいては,RDFトリプルストアにおいたデータは基本的に全世界に向けて公開される.どこにいても URI でデータの位置が示されているから,そのデータがどのエンドポイント(平たく言えばデータサーバ)に所属しているのかわかれば,そこにSPARQLクエリを投げることで整形されたデータが返ってくる.しかも,クエリの書き方によっては,返答結果をチェインさせて別のエンドポイントのデータとマージさせることもできる.エンドポイントが公開されること,柔軟なクエリを書けることが大きな特徴だと私は思っている.

しかしその「クエリを柔軟に書ける」という恩恵は,一方でどれだけSPARQLに不慣れな者であっても最初から実行可能なクエリを一から十まできちんと構築することを要求する.RDBのSQLを書くのに苦労した人は少なくないだろうが,SPARQLにおいてはそれ以上の負担を初学者に強いることとなる.そして悲しいことにこの問題を解決してくれる有効な手段は今のところ存在していない(私の観測範囲においては).経験者が手ほどきを丁寧にやってくれる環境があればまだしも,独学で手を付けるには心が折れてしまうことだろう.これじゃあいつまで立っても人口は増えていかない………!

解決のために水面下で動いている人もいる.少なくとも私がそうである.どうにか先人たちの知恵を最大限利用しつつ,初学者にも入りやすい・馴染みやすいツール,あるいは段階的にSPARQLを学ぶことのできるツールの作成に取り組んでいる.そうやって今年の春からずっと試行錯誤して,これまでの自分の見てきたSPARQL関連の情報をまとめたものが本記事である.もちろん今後の継続的に内容の更新を続けていくことだろう.いつかSPARQLが世間一般に普及するときまで……(完)

FAQ

  • SPARQLってなに? → RDF講習会を見るか本を買うとよい
  • SPARQLクエリ用のエディタってある? → YASGUI を使おう
  • RDFトリプルストア? → Openlink VirtuosoのOSSエディションを使うのが無難
    • (後から追記予定)
  • SPARQLを見せずにGUIをつくりたい
    • 多分 Metastanza で『Stanza』をつくり,バックエンドに SPARQList と適当な RDFトリプルサーバを用意してやれば良い.自前で入力フォームを用意して,テンプレートエンジンやらフロントエンドJSで仮想DOM書き換えとかをやることになりそう.

各サービスにおける「sparql」での検索結果

メモとして.最新情報の監視に活用しましょう.

SPARQL に入門したい!

手を動かすより先ず全体を理解する人向け

和文リソースにおいては,DBCLS:ライフサイエンス統合データベースセンター の方々の情報が正確かつ詳細で網羅的に提供されていると思います.時間に余裕がある方は,RDF講習会の動画を見ていくことで手軽にわかりやすく学ぶことができるでしょう.

  • RDF 講習会これ見とけばだいたい全部わかる
read more

開催概要

Movie

第1回

第2回

第3回

第4回

実例を見つつ実際に手を動かしてみる人向け

※クエリを実行する際には,SPARQLクライアントが必要です.
(筆者のおすすめは YASGUI です)

more info
more info
more info

SPARQLをやっている人々,組織,その関連情報ほか

more info
more info
more info
more info
more info
more info
more info
  • API利用方法 | gBizINFO
  • 詳細検索
    • 実は裏側で SPARQL クエリが走っているっぽいのだが,jQuery わからんマンなのでどういう仕組みなのかわからず……少なくとも yasqe + Fuseki の構成であるっぽいことはデベロッパーツールで見つけてきた https://info.gbiz.go.jp/hojin/common/js/Meti.sparql.js でわかった
    • (そもそもこういう実装の方法を共有してほしいものである)
more info

各種イベント

d3sparql.js

read more

JSON Format で 検索結果を受け取りたい時の型定義

"SPARQL 1.1 Query Results JSON Format | W3C Recommendation 21 March 2013" に準拠したものを自作してみた.ご参考まで.

index.d.ts に追加するだけ
index.d.ts

// ~~~~~~~ 前略 ~~~~~~~
// cf. ja-JP: http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/REC-sparql11-results-json-20130321.html
// cf. org: https://www.w3.org/TR/2013/REC-sparql11-results-json-20130321/

export interface IRI {
  type: 'uri'
  value: string
}
export interface Literal {
  type: 'literal'
  value: string
}
export interface LiteralWithLanguageTag {
  type: 'literal'
  value: string
  'xml:lang': string
}
export interface LiteralWithDatatypeIRI {
  type: 'literal'
  value: string
  datatype: string
}
export interface Blank {
  type: 'bnode'
  value: string
}

export type RDFTerm = IRI | Literal | LiteralWithLanguageTag | LiteralWithDatatypeIRI | Blank

export interface Results {
  bindings: { [key: string]: RDFTerm }
}
export interface Head {
  vars?: string[]
  link?: string[]
}
export interface ResultsMemberJSONResponse {
  head: Head
  results: Results
}
export interface BooleanMemberJSONResponse {
  head: Head
  boolean: boolean
}

export type JSONResponse = ResultsMemberJSONResponse | BooleanMemberJSONResponse

※なんかおかしいとかあれば教えて下さい(ちょっと自信がない)

未分類.zip

read more

検索用シソーラス(仮)

  • LOD
  • RDF
  • SPARQL