SPARQLの使い方の学習をやってみようということになり、クエリ文を作る練習を始める。
odpのSPARQLコンソールを使って、サンプルコードとして書いてあった
select * { ?s ?p ?o . } limit 10
よくわからないが成功してそうだ。見たところ、sとpとoにそれぞれデータのタイプと値が入っていることが分かる。
さて、SPARQLの基本的な構文は分かったので、オープンデータを使ったWebアプリを試しに作ってみよう。ということで1つ困ったことが出てきた。どんなデータがあり、どのURIを指定すればいいのかがわからないのだ。
調べてみるとどうやらデータカタログというものがあるらしい。odpデータカタログにアクセスすると様々なデータを見ることはできた。
しかしここでは、どのようなデータがあるかはわかったのだが、クエリ文に何を入力するとそのデータにアクセスできるのかがわからなかった。
そこで教えていただいたodp vocabularyを利用することにする。
ここを見ればURIがすぐにわかる。それぞれの項目をクリックすると、それぞれにどのようなデータが入っているかがURI付きでわかるようになっていて便利だった。URIの:より左部分は接頭辞と言って省略をしているらしく
prefix hoge:<URI>
と事前に入力することで、URIの指定を短く収めることができるらしい。
接頭辞の一覧は右上のttl downloadと書いてあるところをクリックすると見ることができた。
試しにレンタルサイクリングステーションの緯度、経度一覧をSPARQL入門、はじめの一歩を参考にしながら表示させてみる。
以下のクエリ文をフォームに入力し検索ボタンを押すと・・・
prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
prefix jrrk: <http://purl.org/jrrk#>
prefix schema: <http://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix odp: <http://odp.jig.jp/odp/1.0#>
prefix ic: <http://imi.go.jp/ns/core/rdf#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select ?label ?lat ?lng {
?s ?p odp:RentalCycleStation;
rdfs:label ?label;
geo:lat ?lat;
geo:long ?lng;
}limit 1000
レンタルサイクルステーションの一覧を表示させることに成功!!
ここからこのデータを使ってWebアプリの開発をしてみたいと思う。