Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

RでSPARQL

6,603 views

Published on

オープンガバメント・データ(OGD)、RDF、SPARQLの概要を紹介しました。第30回R勉強会@東京で発表。#Tokyo.R

Published in: Technology

RでSPARQL

  1. 1. RでSPARQLTwitter ID:@nezuq第30回R勉強会@東京(#TokyoR)2013/4/20……という題名のオープンガバメント・データ(OGD)入門
  2. 2. 今日言いたい事『今話題のオープンガバメント・データ(OGD)は、将来的にRDFをサポートする可能性が高い。RDFのクエリ言語SPARQLを、Rで使ってみよう!』
  3. 3. 目次● オープンガバメント・データ(OGD)とは?● OGD活用事例● 5つ星オープンデータ● RDFとは?● SPARQLとは?● SPARQLのSELECT文は?● RでSPARQL
  4. 4. オープンガバメント・データ(OGD)とは?再利用可能で商用利用可能な公共データ。及び、それを公開する政策。国連行政機関ネットワーク(UNPAN)「開発管理における市民参画のためのオープンガバメント・データ 指導ツールキット(OGDCEToolkit)」(日本語訳:Facebook「オープンデータ活用!」チーム)より<https://docs.google.com/file/d/0B5Kgc6WHI5rPV2xLVXBJWDVDS3M/edit?pli=1>データの例としては国家統計、予算情報、議会の記録、地理データ、法令、及び教育や輸送に関わるデータなどがあります。※日経新聞(紙版)の一面記事でも紹介された!
  5. 5. OGD活用事例The Daily Bread - 税金はどこへ行った?<http://spending.jp/>税金の使い道を追い、可視化する。
  6. 6. OGD活用事例FixMyStreet Japan<https://www.fixmystreet.jp/>地域の問題を共有し、議論する。
  7. 7. OGD活用事例findwc モバイルトイレナビ(鯖江版)<http://fukuno.jig.jp/2012/findwc>(by 福野泰介さん)福祉の向上を目指し、サービスを提供する。
  8. 8. 5つ星オープンデータ最初はPDF・XSL・CSVでの提供。では将来は?5つ星オープンデータ<http://5stardata.info/ja/>他国のオープンデータサイト「Data.gov」(アメリカ)や「Data.gov.uk」(イギリス)でも採用されている形式。RDF・SPARQL
  9. 9. RDFとは?主語・述語・目的語で構成されるデータ形式(RDF/XML,RDF/JSON,Turtle等)太郎 花子知っているfoaf:knows”「太郎は花子を知っている」「花子のメールアドレスは hanako@xxx.co.jp”だ」PREFIX ex: <http://example.org/resource/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>ex:太郎 foaf:knows ex:花子ex:花子 foaf:mbox <mailto:hanako@xxx.co.jp>hanako@xxx.co.jpメールアドレスfoaf:mbox
  10. 10. SPARQLとは?○ RDFを対象とするクエリ言語……   取得データと外部データの関連性を    機械が認識できる。     →次に欲しいデータを自動取得できる。○ SQL風の言語構造……   Ver1.0でSELECT文が、    Ver1.1で集計関数や副問い合わせが使える。     →欲しい形で欲しい分だけ取得できる。○ W3C標準のAPI……   各省のデータを統一されたインターフェースで    リアルタイムに取得できる。     →APIの学習コストを抑えられる。
  11. 11. SPARQLのSELECT文は?ex.国立国会図書館典拠データ検索・提供サービスに、  芥川龍之介の生年・没年をSPARQLで尋ねる。詳しい文法は、W3Cの「RDF用クエリ言語SPARQL」ページを見て!<http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf-sparql-query.html>PREFIX rda: <http://RDVocab.info/ElementsGr2/>PREFIX foaf: <http://xmlns.com/foaf/0.1/>SELECT?birth ?deathWHERE{?uri foaf:name ?name.?uri rda:dateOfBirth ?birth.?uri rda:dateOfDeath ?death.FILTER regex(?name,芥川(龍|竜)之介)}①欲しいデータのパターンを書く。   ※?x はバインド変数になる。 (ex.任意のURIとリンクする   氏名・生年・没年を指定する)  ②制限を書く。 (ex.氏名が芥川龍之介のものに限る)③欲しい箇所のバインド変数を書く。 (ex.生年と没年が欲しい。   氏名はいらない)
  12. 12. RでSPARQLRでSPARQLを使うコードは、2行。library(SPARQL)res<- SPARQL(url=endpoint, query)$results参考:前ページのSPARQLクエリをRで実行するコード<https://gist.github.com/nezuQ/5424654>「endpoint」……SPARQLエンドポイント(APIのURI)を指定する。    ex.国立国会図書館典拠データ検索・提供サービス<http://id.ndl.go.jp/auth/ndla>「query」……SPARQL文を指定する。    ex.前ページ参照
  13. 13. ご清聴ありがとうございました。

×