SlideShare ist ein Scribd-Unternehmen logo
1 von 67
Downloaden Sie, um offline zu lesen
公立はこだて未来大学
オープンデータの最新動向	
  
	
  
第二部 オープンデータと技術と事例

~実機による紹介~
1
Future	
  University	
  Hakodate	
  
山口 琢	
  
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
2014/07/12
最初の掲載:	
  v1.0	
  2014-­‐07-­‐12	
  
講演時:	
  v1.1	
  2014-­‐07-­‐12	
  
改訂:	
  v1.2	
  2014-­‐07-­‐13
自己紹介
n  氏名 山口琢	
  
p  hCp://www.slideshare.net/yamahige	
  
p  「LODチャレンジ2014」実行委員(見習い)	
  
p  公立はこだて未来大学 システム情報科学研究科 研究生
n  経歴
p  1987年4月〜2004年6月	
  (株)日立製作所
n  ソフトウェア事業部など、ミドルウェア開発、テクニカルマーケティング
p  2004年7月〜2011年1月	
  (株)ジャストシステム 
n  テクニカルマーケティング、研究開発
p  2011年4月〜	
  公立はこだて未来大学 博士(後期)課程
n  〜2014年3月:	
  研究指導満了退学	
  
n  2014年4月〜:	
  研究生(在学中)	
  
n  研究内容
p  分野:	
  文書処理、テキスト・エディタ、EDUPUB	
  
p  アプローチ1:	
  視点の可視化によるコンテンツ作成・評価支援	
  
p  アプローチ2:	
  編集操作(行動)の計測と分析	
  
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 2
2014/07/12
Linked	
  Open	
  Data
n Open	
  
p いますぐ触ってみることができる	
  
n Data	
  
p プログラムから扱うことができる	
  
⇒	
  やりましょう
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 3
2014/07/12
アジェンダ
n 触ってみよう:	
  Linked	
  Open	
  Dataの事例	
  
p LODをどうやって使うのか	
  
p …それを通して、クールなデータセットとは
n トピック
データの識別子、参照解決可能、content	
  
negoSaSon、パーセントエンコーディング(URLエン
コーディング)、IRI、JSON、ユニコード、バックスラッ
シュエスケープ、SPARQL	
  
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 4
2014/07/12
あるとよいもの
n  ネットにつながるPC	
  
n  Webブラウザ:	
  Firefox、Chrome、IE、Opera、…	
  
p  ブラウザの要求・応答をモニターするツール	
  
n  Webプロトコルを試せるツール:	
  curl	
  
n  テキスト編集ができるエディター	
  
p  テキストの文字コードとエンコーディング(符号化方式)が分かるもの
n  文字のエンコード/デコードツール	
  
p  パーセントエンコーディング(URLエンコード)	
  
p  Unicode文字のバックスラッシュエスケープ	
  
n  JSONを整形(preCy	
  print)するツール	
  
2014/07/12
 5
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
データのWEB
リンクをたどる
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 6
2014/07/12
[再掲]文書のWeb
n 文章ファイル+リンク	
  
p 異なるWebサーバにある、情報を相互にハイ
パーリンクで結びつけることで作られている	
  
n 人が読むことを想定している	
  
p 同じ事柄に関することでも機械では判断できない	
  
7	
  
HTML
HTML
HTML
リンク
リンク
リンク
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
2014/07/12
文書のWeb
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 8	
  
HTML
HTML
HTML
リンク
リンク
リンク
hCp://www.fun.ac.jp/
 hCp://www.fun.ac.jp/	
  
research/faculty_members/	
  
michikooba/
hCp://www.fun.ac.jp/	
  
research/faculty_members/
2014/07/12
Copyright	
  ©2014,	
  FUTURE	
  UNIVERSITY	
  HAKODATE.
[再掲]LODによるデータのWeb
n データ(RDF)+リンク[LOD:	
  Linked	
  Open	
  Data]	
  
p 異なるデータ源のデータが相互に結びつく	
  
n 機械が読むことを想定	
  
p 複雑なデータ空間の中で動作させるアプリケーションを容
易に構築することができる	
  
	
  
9	
  
データ
データ
データ
データ
データ
データ
データ
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
RDF((Resource	
  DescripSon	
  Framework))	
  

2014/07/12
LODによるデータのWeb
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 10	
  
データ
データ
データ
データ
データ
データ
データ
RDF((Resource	
  DescripSon	
  Framework))	
  

hCp://ja.dbpedia.org/resource/函館市
2014/07/12
スタート:	
  最初のデータ
データのWeb
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 12	
  
データ
データ
文書
DBpedia	
  Japanese
hCp://ja.dbpedia.org/resource/函館市
hCp://ja.dbpedia.org/resource/北斗市	
  
函館市
hCp://www.city.hakodate.hokkaido.jp/
2014/07/12
函館市
ちょっと待て…
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 13
2014/07/12
あれ?	
  #1
n データの名前って、そのまま	
  
ブラウザのアドレス欄に入力できるの?	
  
hCp://ja.dbpedia.org/resource/函館市	
  
⇒	
  URI:	
  データの識別子	
  
⇒	
  hCp://	
  〜:	
  参照解決可能(dereferenceable)	
  
n その操作の仕方って、それじゃぁ文書では?	
  
というか、アドレスが変わってないか?	
  
hCp://ja.dbpedia.org/page/函館市	
  
⇒	
  Content	
  negoSaSon
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 14
2014/07/12
URI、hCp://〜
n URI:	
  データの識別子	
  
n hCp://	
  〜:	
  参照解決可能(dereferenceable)	
  
⇒	
  ティム・バーナーズ=リーによるLinked	
  Data4つの原則	
  
1.  Use	
  URIs	
  as	
  names	
  for	
  things	
  
2.  Use	
  HTTP	
  URIs	
  so	
  that	
  people	
  can	
  look	
  up	
  those	
  names.	
  
3.  When	
  someone	
  looks	
  up	
  a	
  URI,	
  provide	
  useful	
  
informaSon,	
  using	
  the	
  standards	
  (RDF*,	
  SPARQL)	
  
4.  Include	
  links	
  to	
  other	
  URIs.	
  so	
  that	
  they	
  can	
  discover	
  
more	
  things.	
  
hCp://www.w3.org/DesignIssues/LinkedData.html	
  
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 15
2014/07/12
Content	
  negoSaSon	
  #1
Google	
  Chrome	
  /	
  
Developer	
  Tools	
  /	
  
Network
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 16	
  
データ
データ
DBpedia	
  Japanese
hCp://ja.dbpedia.org/resource/函館市
hCp://ja.dbpedia.org/page/函館市
Content	
  negoSaSon	
  #2
n  「HTMLと画像を受け付け(accept)ます」とブラウザが言ったら…	
  
n  「では、あちらを見なさい」と別のURIをサーバに案内された
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 17
Accept:	
  text/html,applicaSon/xhtml+xml,…
2014/07/12
Content	
  negoSaSon	
  #3
n  案内された先のHTMLページを見ている
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 18
Content-­‐Type:	
  text/html;	
  charset=UTF-­‐8	
  
2014/07/12
「データ」が欲しいんだけど…
JSON形式でゲット
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 19
hCp://ja.dbpedia.org/data/函館市.json
DBpedia	
  Japanese	
  
by	
  DBpedia	
  Community
いやいや、「最初から」データが欲しい…
$	
  curl	
  -­‐iLH	
  "Accept:	
  applicaSon/json"	
  "hCp://ja.dbpedia.org/resource/%E5%87%BD%E9%A4%A8%E5%B8%82"	
  
	
  
HTTP/1.1	
  303	
  See	
  Other	
  
Vary:	
  negoSate,accept	
  
Content-­‐Type:	
  applicaSon/json;	
  qs=0.6	
  
LocaSon:	
  hCp://ja.dbpedia.org/data/%E5%87%BD%E9%A4%A8%E5%B8%82.json	
  
Content-­‐Length:	
  0	
  
	
  
HTTP/1.1	
  200	
  OK	
  
Server:	
  Virtuoso/07.00.3203	
  (Linux)	
  x86_64-­‐unknown-­‐linux-­‐gnu	
  	
  	
  
Content-­‐Type:	
  applicaSon/json	
  
Content-­‐Length:	
  517744	
  
	
  
{	
  
	
  	
  "hCp://ja.dbpedia.org/resource/u5317u6D77u9053"	
  :	
  {	
  "hCp://dbpedia.org/ontology/wikiPageWikiLink"	
  :	
  
[	
  {	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/resource/u51FDu9928u5E02"	
  }	
  ]	
  }	
  ,	
  
	
  	
  "hCp://ja.dbpedia.org/resource/u65E5u672Cu30D7u30EDu91CEu7403"	
  :	
  {	
  "hCp://dbpedia.org/ontology/wikiPageWikiLink"	
  :	
  
[	
  {	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/resource/u51FDu9928u5E02"	
  }	
  ]	
  }	
  ,	
  
	
  	
  "hCp://ja.dbpedia.org/resource/u65E5u672Cu306Eu5730u7406"	
  :	
  {	
  "hCp://dbpedia.org/ontology/wikiPageWikiLink"	
  :	
  [	
  {	
  "type"	
  :	
  "uri",	
  
"value"	
  :	
  "hCp://ja.dbpedia.org/resource/u51FDu9928u5E02"	
  }	
  ]	
  }	
  ,	
  
…	
  
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 20
2014/07/12
あれ?	
  #2
n ところで、	
  
「%E5%87%BD%E9%A4%A8%E5%B8%82」	
  
って何?	
  
「函館市」じゃないの?	
  
⇒パーセントエンコーディング	
  
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 21
2014/07/12
パーセントエンコーディング
URIにASCII(のサブセット)以外の文字を使うとき	
  
「URLエンコード」とも呼ばれる
Wikipediaで「函館市」の項目を表示…	
  
p ブラウザのアドレスバーでは、こう見える	
  
hCp://ja.wikipedia.org/wiki/函館市	
  
p でも、コピーしてテキストエディターに貼り付けると…	
  
hCp://ja.wikipedia.org/wiki/%E5%87%BD
%E9%A4%A8%E5%B8%82	
  
p 「%E5%87%BD%E9%A4%A8%E5%B8%82」は、	
  
「函館市」をパーセントエンコードしたもの	
  
エンコードした文字データを、パーセントエンコードする	
  
2014/07/12
 22
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
あれ?	
  #3
n では、スライド中の	
  
hCp://ja.dbpedia.org/resource/函館市	
  
は、図用の簡易表記?	
  
n それは…	
  
⇒	
  IRI	
  (InternaSonalized	
  Resource	
  IdenSfier)
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 23
2014/07/12
IRI:	
  国際化したURI
n URL:	
  Uniform	
  Resource	
  Locator	
  
古い用語、表現	
  
n URI:	
  Uniform	
  Resource	
  IdenSfier	
  
ASCIIのサブセット	
  
hCp://ja.wikipedia.org/wiki/%E5%87%BD
%E9%A4%A8%E5%B8%82	
  
n IRI:	
  InternaSonalized	
  Resouce	
  IdenSfier	
  
多言語対応、日本語などを使うことができる	
  
LOD関連の標準はIRIを使う	
  
hCp://ja.dbpedia.org/resource/函館市
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 24
2014/07/12
cURLでJSON形式をゲット
$	
  curl	
  -­‐iLH	
  "Accept:	
  applicaSon/json"	
  "hCp://ja.dbpedia.org/resource/函館市"	
  
HTTP/1.1	
  303	
  See	
  Other	
  
Content-­‐Type:	
  applicaSon/json;	
  qs=0.6	
  
LocaSon:	
  hCp://ja.dbpedia.org/data/函館市.json	
  
Content-­‐Length:	
  0	
  
	
  
HTTP/1.1	
  200	
  OK	
  
Content-­‐Type:	
  applicaSon/json	
  
	
  
{	
  
	
  	
  "hCp://ja.dbpedia.org/resource/u5317u6D77u9053"	
  :	
  {	
  "hCp://dbpedia.org/
ontology/wikiPageWikiLink"	
  :	
  [	
  {	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/
resource/u51FDu9928u5E02"	
  }	
  ]	
  }	
  ,	
  
…	
  
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 25
2014/07/12
cURLでHTML形式を…
$	
  curl	
  -­‐iLH	
  "Accept:	
  text/html"	
  "hCp://ja.dbpedia.org/resource/函館市"	
  
HTTP/1.1	
  303	
  See	
  Other	
  
Content-­‐Type:	
  text/html;	
  charset=UTF-­‐8	
  
LocaSon:	
  hCp://ja.dbpedia.org/page/函館市
	
  
HTTP/1.1	
  404	
  Not	
  found	
  
…
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 26
2014/07/12
cURLでHTML形式を…
$	
  curl	
  -­‐iLH	
  "Accept:	
  text/html"	
  	
  "hCp://ja.dbpedia.org/resource/%E5%87%BD
%E9%A4%A8%E5%B8%82"	
  
HTTP/1.1	
  303	
  See	
  Other	
  
Content-­‐Type:	
  text/html;	
  charset=UTF-­‐8	
  
LocaSon:	
  hCp://ja.dbpedia.org/page/%E5%87%BD%E9%A4%A8%E5%B8%82	
  
	
  
HTTP/1.1	
  200	
  OK	
  
Content-­‐Type:	
  text/html;	
  charset=UTF-­‐8	
  
	
  
<!DOCTYPE	
  html>	
  
<html	
  xmlns="hCp://www.w3.org/1999/xhtml">	
  
<head	
  profile="hCp://www.w3.org/1999/xhtml/vocab">	
  
	
  	
  <meta	
  charset="u{-­‐8"	
  />	
  
	
  	
  <Stle>About:	
  函館市</Stle>	
  
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 27
ブラウザのアドレスバー
サーバには最初から	
  
%E5%87%BD%E9%A4%A8%E5%B8%82	
  
が伝わっているようだ。	
  
↑	
  
ブラウザが変換している	
  
↑	
  
文字を見たら、	
  
誰がいつ変換してるのか、	
  
常に注意すること
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 28
2014/07/12
DBpedia	
  Japanese	
  
by	
  DBpedia	
  Community
JSON形式
{	
  
	
  "hCp://ja.dbpedia.org/resource/u5317u6D77u9053"	
  :	
  
{	
  "hCp://dbpedia.org/ontology/wikiPageWikiLink"	
  :	
  [	
  {	
  "type"	
  :	
  
"uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/resource/u51FD
u9928u5E02"	
  }	
  ]	
  }	
  ,	
  
	
  "hCp://ja.dbpedia.org/resource/u65E5u672Cu30D7u30ED
u91CEu7403"	
  :	
  {	
  "hCp://dbpedia.org/ontology/
wikiPageWikiLink"	
  :	
  [	
  {	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://
ja.dbpedia.org/resource/u51FDu9928u5E02"	
  }	
  ]	
  }	
  ,	
  
	
  "hCp://ja.dbpedia.org/resource/u65E5u672Cu306E
u5730u7406"	
  :	
  {	
  "hCp://dbpedia.org/ontology/
wikiPageWikiLink"	
  :	
  [	
  {	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://
ja.dbpedia.org/resource/u51FDu9928u5E02"	
  }	
  ]	
  }	
  ,	
  
…	
  

 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 29
2014/07/12
あれ?	
  #4
n JSONのデータに「北海道」が見当たらない。	
  
「u5317u6D77u9053」って?	
  
⇒	
  バックスラッシュエスケープを使ったユニコード文
字
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 30
2014/07/12
バックスラッシュエスケープを使ったユニコード文字
A	
  string	
  is	
  a	
  sequence	
  of	
  zero	
  or	
  more	
  Unicode	
  
characters,	
  wrapped	
  in	
  double	
  quotes,	
  using	
  backslash	
  
escapes.	
  A	
  character	
  is	
  represented	
  as	
  a	
  single	
  
character	
  string.	
  A	
  string	
  is	
  very	
  much	
  like	
  a	
  C	
  or	
  Java	
  
string.	
  
string	
  in	
  JSON	
  
hCp://json.org/
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 31
2014/07/12
LOD:	
  イラスト表現
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 32	
  
データ
データ
DBpedia	
  Japanese
 hCp://ja.dbpedia.org/resource/北斗市	
  
隣の自治体
hCp://ja.dbpedia.org/resource/函館市
2014/07/12
LOD:	
  イラスト表現
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 33
函館市
隣の自治体
北斗市	
  
2014/07/12
LOD:	
  イラスト表現
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 34
函館市
隣の自治体
北斗市	
  
hCp://ja.dbpedia.org/resource/函館市
hCp://ja.dbpedia.org/resource/北斗市
?
2014/07/12
JSONでシリアライズ
GET	
  hCp://ja.dbpedia.org/resource/函館市	
  
Accept:	
  applicaSon/json	
  
↓	
  
…	
  
,	
  "hCp://dbpedia.org/ontology/
neighboringMunicipality"	
  :	
  
[	
  
{	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/
resource/u5317u6597u5E02"	
  }	
  ,	
  
{	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/
resource/u9752u68EEu770C"	
  }	
  
]
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 35
北斗市
2014/07/12
JSONでシリアライズ
GET	
  hCp://ja.dbpedia.org/resource/函館市	
  
Accept:	
  applicaSon/json	
  
↓	
  
…	
  
,	
  "hCp://dbpedia.org/ontology/
neighboringMunicipality"	
  :	
  
[	
  
{	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/
resource/u5317u6597u5E02"	
  }	
  ,	
  
{	
  "type"	
  :	
  "uri",	
  "value"	
  :	
  "hCp://ja.dbpedia.org/
resource/u9752u68EEu770C"	
  }	
  
]
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 36
データ
データ
データ
北斗市
青森県
隣の自治体
2014/07/12
イラスト表現
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 37
函館市
隣の自治体
 北斗市	
  
hCp://ja.dbpedia.org/resource/函館市
hCp://ja.dbpedia.org/resource/北斗市
hCp://dbpedia.org/ontology/neighboringMunicipality
青森県	
  
hCp://ja.dbpedia.org/resource/青森県
隣の自治体
hCp://dbpedia.org/ontology/neighboringMunicipality
2014/07/12
あれ?	
  #5
n プロパティ「hCp://dbpedia.org/ontology/
neighboringMunicipality」が	
  
「隣の自治体」だって、どうしてわかるの?	
  
⇒	
  語彙
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 38
語彙
n 語彙はプロパティの集合	
  
n データセットの仕様を調べる	
  
例)	
  ヨコハマ・アート・LOD	
  
>	
  各情報に含まれるメタ情報については、それぞれ
のスキーマページに詳しく記載しています。	
  
hCp://fp.ya•p.org/yokohama_art_lod	
  
n 既存の語彙を調べる	
  
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 39
あれ?	
  #6
n 「函館市」の「隣の自治体」を知るのに、	
  
「函館市」の情報全部を取得して、	
  
そこから探すのか?	
  
⇒	
  次へ…
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 40
データセットからデータを取得
SPARQL
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 41
2014/07/12
賢く使いたい
「函館市」の「隣の自治体」を「問い合わせ」て、	
  
それだけ知りたい。	
  
…他のデータはいらない。
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 42
2014/07/12
エンドポイント
問合せ窓口 =	
  エンドポイント	
  
1.  DBpedia	
  Japanese	
  
hCp://ja.dbpedia.org/sparql	
  
DBpedia	
  Japanese	
  by	
  DBpedia	
  Community	
  
2.  函館観光情報	
  
hCp://210.226.0.93/sparql/
函館まちあるきマップ	
  by	
  函館市;	
  はこだてフィルム
コミッション	
  by	
  函館市;	
  函館近代化遺産ポータルサ
イト	
  by	
  函館高専、ノース技研	
  
運営	
  by	
  はこだて未来大学 高度ICT演習観光系プ
ロジェクト	
  
2013-­‐04-­‐25
 43
DBpedia	
  Japanese	
  
hCp://ja.dbpedia.org/sparql	
  

2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 44
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 45
SPARQLで問い合わせ
1.  「Query	
  Text」に、次のように入力	
  
select	
  disSnct	
  *	
  where	
  {	
  
	
  	
  	
  	
  <hCp://ja.dbpedia.org/resource/函館市>	
  
	
  	
  	
  	
  <hCp://dbpedia.org/ontology/neighboringMunicipality>	
  
	
  	
  	
  	
  ?o	
  .	
  
}	
  
2.  「Run	
  Query」をクリック
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 46
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 47
問い合わせ結果
2件	
  
n hCp://ja.dbpedia.org/resource/北斗市	
  
n hCp://ja.dbpedia.org/resource/青森県
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 48
文法
select	
  disSnct	
  *	
  where	
  {	
  
	
  	
  	
  	
  <hCp://ja.dbpedia.org/resource/函館市>	
  
	
  	
  	
  	
  <hCp://dbpedia.org/ontology/neighboringMunicipality>	
  
	
  	
  	
  	
  ?o	
  .	
  
}	
  
	
  
2013-­‐04-­‐25
 49
WHERE	
  {	
  …	
  }	
  
…というパターンに当てはまる	
  
主語、 述語、目的語の組を選んで
*	
  
全ての変数	
  
(?o、…他にあれば)を
SELECT	
  
取り出しなさい
主語
述語
目的語
文末、組の区切り
結果をJSONで受け取る
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 50
函館市の隣は?
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 51
函館市
hCp://ja.dbpedia.org/resource/函館市
 ?o	
  
隣の自治体
hCp://dbpedia.org/ontology/neighboringMunicipality
2014/07/12
問い合わせ結果
{	
  "head":	
  {	
  "link":	
  [],	
  "vars":	
  ["o"]	
  },	
  
	
  	
  "results":	
  {	
  "disSnct":	
  false,	
  "ordered":	
  true,	
  "bindings":	
  [	
  
	
  	
  	
  	
  {	
  "o":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "type":	
  "uri",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "value":	
  "hCp://ja.dbpedia.org/resource/u5317u6597u5E02"	
  }},	
  
	
  	
  	
  	
  {	
  "o":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "type":	
  "uri",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "value":	
  "hCp://ja.dbpedia.org/resource/u9752u68EEu770C"	
  }}	
  
]	
  }	
  }
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 52
問合せの変数名
受け取るプログラムの側でオブジェクトのプロパティ名にしたい名前を、	
  
クエリー中の変数名にすればよい。	
  
n  Query:
select	
  disSnct	
  *	
  where	
  {	
  
	
  	
  	
  	
  <hCp://ja.dbpedia.org/resource/函館市>	
  
	
  	
  	
  	
  <hCp://dbpedia.org/ontology/neighboringMunicipality>	
  
	
  	
  	
  	
  ?o	
  .	
  
}	
  
n  Result:	
  
{	
  "head":	
  {	
  "link":	
  [],	
  "vars":	
  ["o"]	
  },	
  
	
  	
  "results":	
  {	
  "disSnct":	
  false,	
  "ordered":	
  true,	
  "bindings":	
  [	
  
	
  	
  	
  	
  {	
  "o":	
  {	
  "type":	
  "uri",	
  "value":	
  "hCp://ja.dbpedia.org/resource/u5317u6597u5E02"	
  }},	
  
	
  	
  	
  	
  {	
  "o":	
  {	
  "type":	
  "uri",	
  "value":	
  "hCp://ja.dbpedia.org/resource/u9752u68EE
u770C"	
  }}	
  ]	
  }	
  }	
  

2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 53
函館観光情報	
  
hCp://210.226.0.93/test/	
  
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 54
問合せ例
PREFIX	
  rdf:	
  <hCp://www.w3.org/1999/02/22-­‐rdf-­‐syntax-­‐ns#>	
  
PREFIX	
  rdfs:	
  <hCp://www.w3.org/2000/01/rdf-­‐schema#>	
  
	
  
SELECT	
  *	
  WHERE	
  {	
  
	
  	
  ?s	
  <hCp://purl.org/dc/elements/1.1/date>	
  ?o	
  .	
  
	
  	
  FILTER	
  (	
  "1923"	
  <=	
  ?o	
  )	
  
}	
  LIMIT	
  10	
  
2013-­‐04-­‐25
 55
?oが"1923"より大きい
問合せ例
PREFIX	
  rdf:	
  <hCp://www.w3.org/1999/02/22-­‐rdf-­‐syntax-­‐ns#>	
  
PREFIX	
  rdfs:	
  <hCp://www.w3.org/2000/01/rdf-­‐schema#>	
  
SELECT	
  ?s	
  ?q	
  WHERE	
  {	
  
	
  	
  <urn:恵山山頂_20>	
  <hCp://www.w3.org/2003/01/geo/wgs84_pos#lat>	
  ?q	
  .	
  
	
  	
  ?s	
  <hCp://www.w3.org/2003/01/geo/wgs84_pos#lat>	
  ?o	
  .	
  
	
  	
  FILTER	
  (?q	
  <	
  ?o)	
  
}	
  LIMIT	
  250	
  
	
  
恵山山頂よりも緯度が高いものを	
  
2013-­‐04-­‐25
 56
北斗市の隣の隣
(再びDBpedia	
  Japanese)	
  
PREFIX	
  dbpedia-­‐owl:	
  <hCp://dbpedia.org/ontology/>	
  
select	
  disSnct	
  *	
  where	
  {	
  
	
  	
  	
  	
  <hCp://ja.dbpedia.org/resource/北斗市>	
  
	
  	
  	
  	
  dbpedia-­‐owl:neighboringMunicipality	
  
	
  	
  	
  	
  ?o	
  .	
  
	
  	
  	
  	
  ?o	
  dbpedia-­‐owl:neighboringMunicipality	
  ?oo.	
  
}	
  
?oは、最初の文では目的語、次の文では主語。	
  
プログラムでリンクをたどる。	
  
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 57
北斗市の隣の隣は?
Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 58
?o
隣の自治体
 北斗市	
  
hCp://ja.dbpedia.org/resource/北斗市
hCp://dbpedia.org/ontology/neighboringMunicipality
?oo	
  
隣の自治体
hCp://dbpedia.org/ontology/neighboringMunicipality
2014/07/12
リンクをたどる
プログラムでリンクをたどることができる
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 59	
  
HTML
HTML
○○	
  ⇒
HTML
○○	
  ⇒
?o
北斗市	
   ?oo	
  
?o	
  dbpedia-­‐owl:neighboringMunicipality	
  ?oo
<hCp://ja.dbpedia.org/resource/北斗市>	
  dbpedia-­‐owl:neighboringMunicipality	
  ?o
結果のアドレスバーを見てみる
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 60
hCp://ja.dbpedia.org/sparql?default-­‐graph-­‐uri=hCp%3A
%2F%2Fja.dbpedia.org&query=select+disSnct+*+where+
%7B%0D%0A++++%3ChCp%3A%2F%2Fja.dbpedia.org
%2Fresource%2F%E5%87%BD
%E9%A4%A8%E5%B8%82%3E%0D%0A++++%3ChCp%3A
%2F%2Fdbpedia.org%2Fontology
%2FneighboringMunicipality%3E%0D%0A++++%3Fo+.%0D
%0A%7D&format=text%2Fhtml&Smeout=0&debug=on
パーセントデコード
n  hCp://ja.dbpedia.org/sparql?default-­‐graph-­‐uri=hCp%3A
%2F%2Fja.dbpedia.org&query=select+disSnct+*+where+
%7B%0D%0A++++%3ChCp%3A%2F%2Fja.dbpedia.org
%2Fresource%2F%E5%87%BD
%E9%A4%A8%E5%B8%82%3E%0D%0A++++%3ChCp%3A
%2F%2Fdbpedia.org%2Fontology
%2FneighboringMunicipality%3E%0D%0A++++%3Fo+.%0D
%0A%7D&format=text%2Fhtml&Smeout=0&debug=on	
  
↓パーセントデコード	
  
n  hCp://ja.dbpedia.org/sparql?default-­‐graph-­‐uri=hCp://
ja.dbpedia.org&query=select	
  disSnct	
  *	
  where	
  {	
  
	
  	
  	
  	
  <hCp://ja.dbpedia.org/resource/函館市>	
  
	
  	
  	
  	
  <hCp://dbpedia.org/ontology/neighboringMunicipality>	
  
	
  	
  	
  	
  ?o	
  .	
  
}&format=text/html&Smeout=0&debug=on
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 61
query	
  parameter	
  strings
hCp://ja.dbpedia.org/sparql?default-­‐graph-­‐
uri=hCp://ja.dbpedia.org	
  
&query=select	
  disSnct	
  *	
  where	
  {	
  
	
  	
  	
  	
  <hCp://ja.dbpedia.org/resource/函館市>	
  
	
  	
  	
  	
  <hCp://dbpedia.org/ontology/
neighboringMunicipality>	
  
	
  	
  	
  	
  ?o	
  .	
  
}&format=text/html	
  
&Smeout=0&debug=on
2013-­‐05-­‐09
 62
エンドポイント
SPARQLのクエリ
出力(応答)形式
n プログラムで、	
  
このquery	
  stringを作って、	
  
HTTP	
  GETすればよい	
  
n リソースはIRI、	
  
それをパーセントエンコードしてある	
  
p 文字を見たら、誰がいつ変換…(略
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 63
AR「北海道の山」チャンネル
プログラム例
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 64
n DBpedia	
  Japaneseから、	
  
n 緯度・経度・標高のある、	
  
n 北海道の山を取り出して、	
  
n AR	
  (拡張現実)のチャンネル
データを作る	
  
今回は遠すぎて、	
  
面白くありませんが…	
  
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 65
DBpedia	
  Japaneseからゲット
{	
  
	
  	
  ?s	
  geo:lat	
  ?lat;	
  
	
  	
  geo:long	
  ?long	
  .	
  
}	
  
UNION	
  
{	
  
	
  	
  ?s	
  <hCp://dbpedia.org/ontology/wikiPageExternalLink>	
  ?wcz	
  .	
  
	
  	
  FILTER	
  regex(	
  ?wcz,	
  "hCp://watchizu.gsi.go.jp/watchizu.html",	
  "i"	
  )	
  
}	
  
さまざまな段階で工夫して、まずは動かす、興味をひく。	
  
全体として敷居を低くすることが、大事だと思います。	
  
(文書の)Webの発展と同様。	
  
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 66
緯度
経度
地図へのリンクに	
  
緯度・経度が	
  
埋まっていることも
参考資料
n リンクト・オープン・データ・イニシアティブ、	
  
LOD連続講座、	
  
hCp://linkedopendata.jp/?cat=17	
  
n LODチャレンジ2014	
  (近日昨日公開)、	
  
hCp://lod.sfc.keio.ac.jp/challenge2014/
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 67
余談ですが…
n スラッシュエスケープされたUnicodeを	
  
読める人っ! \(^o^)	
  
n パーセントエンコードされた文字を	
  
読める人っ! \(^o^)	
  
とことんやったら、ある日、読めるようになるかも。	
  
…わたしが新人の頃は、パンチカード読めたり、	
  
16進で計算できる先輩がいらっしゃいました。
2014/07/12
 Taku	
  Yamaguchi,	
  Future	
  University	
  Hakodate
 68

Weitere ähnliche Inhalte

Ähnlich wie Linked Open Data技術

LODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン
LODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソンLODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン
LODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン
Kouji Kozaki
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
 

Ähnlich wie Linked Open Data技術 (20)

LODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン
LODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソンLODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン
LODの紹介@第1回 Firefox OS x HTML5 x LOD WEBイノベーションハッカソン
 
運用とデータ分析の遠くて近い関係、ISUCONを添えて
運用とデータ分析の遠くて近い関係、ISUCONを添えて運用とデータ分析の遠くて近い関係、ISUCONを添えて
運用とデータ分析の遠くて近い関係、ISUCONを添えて
 
オープンデータのメリットと“大阪”での活用事例
オープンデータのメリットと“大阪”での活用事例オープンデータのメリットと“大阪”での活用事例
オープンデータのメリットと“大阪”での活用事例
 
オープンデータと Linked Open Data(LOD)@神戸R
オープンデータとLinked Open Data(LOD)@神戸RオープンデータとLinked Open Data(LOD)@神戸R
オープンデータと Linked Open Data(LOD)@神戸R
 
Hadoop Summit 2016 San Jose レポート
Hadoop Summit 2016  San Jose レポートHadoop Summit 2016  San Jose レポート
Hadoop Summit 2016 San Jose レポート
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
 
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイントApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
 
Pythonインタラクティブ・データビジュアライゼーション入門という本を共著で書きました
Pythonインタラクティブ・データビジュアライゼーション入門という本を共著で書きましたPythonインタラクティブ・データビジュアライゼーション入門という本を共著で書きました
Pythonインタラクティブ・データビジュアライゼーション入門という本を共著で書きました
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
NTT Communications' Initiatives to Utilize Infrastructure Data
NTT Communications' Initiatives to Utilize Infrastructure DataNTT Communications' Initiatives to Utilize Infrastructure Data
NTT Communications' Initiatives to Utilize Infrastructure Data
 
オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待オープンデータ公開プラットフォームとしてのWordPressへの期待
オープンデータ公開プラットフォームとしてのWordPressへの期待
 
Open Data on W3C TPAC 2014
Open Data on W3C TPAC 2014Open Data on W3C TPAC 2014
Open Data on W3C TPAC 2014
 
PaaSで簡単Railsアプリを公開しよう!
PaaSで簡単Railsアプリを公開しよう!PaaSで簡単Railsアプリを公開しよう!
PaaSで簡単Railsアプリを公開しよう!
 
Mulvery技術詳細
Mulvery技術詳細Mulvery技術詳細
Mulvery技術詳細
 
Log Analysis System And its designs in LINE Corp. 2014 early
Log Analysis System And its designs in LINE Corp. 2014 earlyLog Analysis System And its designs in LINE Corp. 2014 early
Log Analysis System And its designs in LINE Corp. 2014 early
 
Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術
 
Spark + AI Summit 2020セッションのハイライト(Spark Meetup Tokyo #3 Online発表資料)
Spark + AI Summit 2020セッションのハイライト(Spark Meetup Tokyo #3 Online発表資料)Spark + AI Summit 2020セッションのハイライト(Spark Meetup Tokyo #3 Online発表資料)
Spark + AI Summit 2020セッションのハイライト(Spark Meetup Tokyo #3 Online発表資料)
 
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
 
位置データもPythonで!!!
位置データもPythonで!!!位置データもPythonで!!!
位置データもPythonで!!!
 

Mehr von yamahige

Mehr von yamahige (20)

取捨選択操作の時間的な共起分析によるプログラミング・プロセスでの迷いの検出
取捨選択操作の時間的な共起分析によるプログラミング・プロセスでの迷いの検出取捨選択操作の時間的な共起分析によるプログラミング・プロセスでの迷いの検出
取捨選択操作の時間的な共起分析によるプログラミング・プロセスでの迷いの検出
 
音声UIでアクセスする学習分析システムの図表
音声UIでアクセスする学習分析システムの図表音声UIでアクセスする学習分析システムの図表
音声UIでアクセスする学習分析システムの図表
 
コンピュータの整列処理で正解との距離は単調に減少するか?
コンピュータの整列処理で正解との距離は単調に減少するか?コンピュータの整列処理で正解との距離は単調に減少するか?
コンピュータの整列処理で正解との距離は単調に減少するか?
 
コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析
 
Measurable Interactive Application to Find Out User Recognition and Strategy ...
Measurable Interactive Application to Find Out User Recognition and Strategy ...Measurable Interactive Application to Find Out User Recognition and Strategy ...
Measurable Interactive Application to Find Out User Recognition and Strategy ...
 
プログラミング・パズルの測定と分析
プログラミング・パズルの測定と分析プログラミング・パズルの測定と分析
プログラミング・パズルの測定と分析
 
パズル操作の測定・分析による思考の推定
パズル操作の測定・分析による思考の推定パズル操作の測定・分析による思考の推定
パズル操作の測定・分析による思考の推定
 
並べ替えプログラミングの測定・分析
並べ替えプログラミングの測定・分析並べ替えプログラミングの測定・分析
並べ替えプログラミングの測定・分析
 
できごと、手順、プログラムや地理の並べ替え操作の測定と分析
できごと、手順、プログラムや地理の並べ替え操作の測定と分析できごと、手順、プログラムや地理の並べ替え操作の測定と分析
できごと、手順、プログラムや地理の並べ替え操作の測定と分析
 
読み書き行為の時間的・手順的な共起に基づく自然言語処理の提案
読み書き行為の時間的・手順的な共起に基づく自然言語処理の提案読み書き行為の時間的・手順的な共起に基づく自然言語処理の提案
読み書き行為の時間的・手順的な共起に基づく自然言語処理の提案
 
ジグソー・テキストによる文並べ替え操作の測定
ジグソー・テキストによる文並べ替え操作の測定ジグソー・テキストによる文並べ替え操作の測定
ジグソー・テキストによる文並べ替え操作の測定
 
Designing Matrix Type Text Editing Model for Measuring and Analyzing Writing ...
Designing Matrix Type Text Editing Model for Measuring and Analyzing Writing ...Designing Matrix Type Text Editing Model for Measuring and Analyzing Writing ...
Designing Matrix Type Text Editing Model for Measuring and Analyzing Writing ...
 
文章を構成する過程を測定するジグソー・テキストの開発
文章を構成する過程を測定するジグソー・テキストの開発文章を構成する過程を測定するジグソー・テキストの開発
文章を構成する過程を測定するジグソー・テキストの開発
 
キオクの場所 - 同期と位置関係のみによる不明で不整合な空間情報の処理 -
キオクの場所 - 同期と位置関係のみによる不明で不整合な空間情報の処理 -キオクの場所 - 同期と位置関係のみによる不明で不整合な空間情報の処理 -
キオクの場所 - 同期と位置関係のみによる不明で不整合な空間情報の処理 -
 
Interoperable Writing Measure And Analysis
Interoperable Writing Measure And AnalysisInteroperable Writing Measure And Analysis
Interoperable Writing Measure And Analysis
 
室蘭百名坂 - アーバンデータチャレンジ2015 最終審査会
室蘭百名坂 - アーバンデータチャレンジ2015 最終審査会室蘭百名坂 - アーバンデータチャレンジ2015 最終審査会
室蘭百名坂 - アーバンデータチャレンジ2015 最終審査会
 
室蘭百名坂 - アーバンデータチャレンジ2015
室蘭百名坂 - アーバンデータチャレンジ2015室蘭百名坂 - アーバンデータチャレンジ2015
室蘭百名坂 - アーバンデータチャレンジ2015
 
同期と順序のみによる不明で不整合な時間の処理方法の提案とウィキ町史への適用
同期と順序のみによる不明で不整合な時間の処理方法の提案とウィキ町史への適用同期と順序のみによる不明で不整合な時間の処理方法の提案とウィキ町史への適用
同期と順序のみによる不明で不整合な時間の処理方法の提案とウィキ町史への適用
 
国際的な相互運用とオープン技術- 日時と文字 -
国際的な相互運用とオープン技術- 日時と文字 -国際的な相互運用とオープン技術- 日時と文字 -
国際的な相互運用とオープン技術- 日時と文字 -
 
ウィキ町史エディター
ウィキ町史エディターウィキ町史エディター
ウィキ町史エディター
 

Linked Open Data技術