💫

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

13 min read

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 です)

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

各種イベント

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

Discussion

ログインするとコメントできます