67
公立はこだて未来大学 オープンデータの最新動向 第二部 オープンデータと技術と事例 ~実機による紹介~ 1 Future University Hakodate 山口 琢 Taku Yamaguchi, Future University Hakodate 2014/07/12 最初の掲載: v1.0 20140712 講演時: v1.1 20140712 改訂: v1.2 20140713

Linked Open Data技術

Embed Size (px)

DESCRIPTION

最初の掲載: v1.0 2014-07-12 講演時: v1.1 2014-07-12 改訂: v1.2 2014-07-13

Citation preview

Page 1: Linked Open Data技術

公立はこだて未来大学

オープンデータの最新動向    

第二部 オープンデータと技術と事例~実機による紹介~

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

Page 2: Linked Open Data技術

自己紹介 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

Page 3: Linked Open Data技術

Linked  Open  Data

n Open  p いますぐ触ってみることができる  

n Data  p プログラムから扱うことができる  

⇒  やりましょう

Taku  Yamaguchi,  Future  University  Hakodate 3 2014/07/12

Page 4: Linked Open Data技術

アジェンダ

n 触ってみよう:  Linked  Open  Dataの事例  p LODをどうやって使うのか  p …それを通して、クールなデータセットとは

n トピック

データの識別子、参照解決可能、content  negoSaSon、パーセントエンコーディング(URLエンコーディング)、IRI、JSON、ユニコード、バックスラッシュエスケープ、SPARQL  

Taku  Yamaguchi,  Future  University  Hakodate 4 2014/07/12

Page 5: Linked Open Data技術

あるとよいもの

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

Page 6: Linked Open Data技術

データのWEB

リンクをたどる

Taku  Yamaguchi,  Future  University  Hakodate 6 2014/07/12

Page 7: Linked Open Data技術

[再掲]文書のWeb n 文章ファイル+リンク  

p 異なるWebサーバにある、情報を相互にハイパーリンクで結びつけることで作られている  

n 人が読むことを想定している  p 同じ事柄に関することでも機械では判断できない  

7  

HTML HTML

HTML

リンク リンク

リンク

Taku  Yamaguchi,  Future  University  Hakodate 2014/07/12

Page 8: Linked Open Data技術

文書の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.

Page 9: Linked Open Data技術

[再掲]LODによるデータのWeb n データ(RDF)+リンク[LOD:  Linked  Open  Data]  

p 異なるデータ源のデータが相互に結びつく  

n 機械が読むことを想定  p 複雑なデータ空間の中で動作させるアプリケーションを容

易に構築することができる  

 

9  

データ

データ

データ

データ

データ

データ

データ

Taku  Yamaguchi,  Future  University  Hakodate

RDF((Resource  DescripSon  Framework))   2014/07/12

Page 10: Linked Open Data技術

LODによるデータのWeb

Taku  Yamaguchi,  Future  University  Hakodate 10  

データ

データ

データ

データ

データ

データ

データ

RDF((Resource  DescripSon  Framework))  

hCp://ja.dbpedia.org/resource/函館市

2014/07/12

スタート:  最初のデータ

Page 11: Linked Open Data技術

データの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

函館市

Page 12: Linked Open Data技術

ちょっと待て…

Taku  Yamaguchi,  Future  University  Hakodate 13 2014/07/12

Page 13: Linked Open Data技術

あれ?  #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

Page 14: Linked Open Data技術

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

Page 15: Linked Open Data技術

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/函館市

Page 16: Linked Open Data技術

Content  negoSaSon  #2 n  「HTMLと画像を受け付け(accept)ます」とブラウザが言ったら…  

n  「では、あちらを見なさい」と別のURIをサーバに案内された

Taku  Yamaguchi,  Future  University  Hakodate 17

Accept:  text/html,applicaSon/xhtml+xml,…

2014/07/12

Page 17: Linked Open Data技術

Content  negoSaSon  #3 n  案内された先のHTMLページを見ている

Taku  Yamaguchi,  Future  University  Hakodate 18

Content-­‐Type:  text/html;  charset=UTF-­‐8  

2014/07/12

Page 18: Linked Open Data技術

「データ」が欲しいんだけど… JSON形式でゲット

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 19

hCp://ja.dbpedia.org/data/函館市.json

DBpedia  Japanese  by  DBpedia  Community

Page 19: Linked Open Data技術

いやいや、「最初から」データが欲しい…

$  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/\u5317\u6D77\u9053"  :  {  "hCp://dbpedia.org/ontology/wikiPageWikiLink"  :  [  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u51FD\u9928\u5E02"  }  ]  }  ,      "hCp://ja.dbpedia.org/resource/\u65E5\u672C\u30D7\u30ED\u91CE\u7403"  :  {  "hCp://dbpedia.org/ontology/wikiPageWikiLink"  :  [  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u51FD\u9928\u5E02"  }  ]  }  ,      "hCp://ja.dbpedia.org/resource/\u65E5\u672C\u306E\u5730\u7406"  :  {  "hCp://dbpedia.org/ontology/wikiPageWikiLink"  :  [  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u51FD\u9928\u5E02"  }  ]  }  ,  

…  Taku  Yamaguchi,  Future  University  Hakodate 20 2014/07/12

Page 20: Linked Open Data技術

あれ?  #2

n ところで、  「%E5%87%BD%E9%A4%A8%E5%B8%82」  って何?  「函館市」じゃないの?  ⇒パーセントエンコーディング  

Taku  Yamaguchi,  Future  University  Hakodate 21 2014/07/12

Page 21: Linked Open Data技術

パーセントエンコーディング

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

Page 22: Linked Open Data技術

あれ?  #3

n では、スライド中の  hCp://ja.dbpedia.org/resource/函館市  は、図用の簡易表記?  

n それは…  ⇒  IRI  (InternaSonalized  Resource  IdenSfier)

Taku  Yamaguchi,  Future  University  Hakodate 23 2014/07/12

Page 23: Linked Open Data技術

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

Page 24: Linked Open Data技術

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/\u5317\u6D77\u9053"  :  {  "hCp://dbpedia.org/ontology/wikiPageWikiLink"  :  [  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u51FD\u9928\u5E02"  }  ]  }  ,  

…  

Taku  Yamaguchi,  Future  University  Hakodate 25 2014/07/12

Page 25: Linked Open Data技術

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

Page 26: Linked Open Data技術

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

Page 27: Linked Open Data技術

ブラウザのアドレスバー

サーバには最初から  %E5%87%BD%E9%A4%A8%E5%B8%82  が伝わっているようだ。  

↑  

ブラウザが変換している  

↑  

文字を見たら、  誰がいつ変換してるのか、  常に注意すること

Taku  Yamaguchi,  Future  University  Hakodate 28 2014/07/12

DBpedia  Japanese  by  DBpedia  Community

Page 28: Linked Open Data技術

JSON形式 {  

 "hCp://ja.dbpedia.org/resource/\u5317\u6D77\u9053"  :  {  "hCp://dbpedia.org/ontology/wikiPageWikiLink"  :  [  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u51FD\u9928\u5E02"  }  ]  }  ,  

 "hCp://ja.dbpedia.org/resource/\u65E5\u672C\u30D7\u30ED\u91CE\u7403"  :  {  "hCp://dbpedia.org/ontology/wikiPageWikiLink"  :  [  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u51FD\u9928\u5E02"  }  ]  }  ,  

 "hCp://ja.dbpedia.org/resource/\u65E5\u672C\u306E\u5730\u7406"  :  {  "hCp://dbpedia.org/ontology/wikiPageWikiLink"  :  [  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u51FD\u9928\u5E02"  }  ]  }  ,  

…  

Taku  Yamaguchi,  Future  University  Hakodate 29 2014/07/12

Page 29: Linked Open Data技術

あれ?  #4

n JSONのデータに「北海道」が見当たらない。  「\u5317\u6D77\u9053」って?  ⇒  バックスラッシュエスケープを使ったユニコード文字

Taku  Yamaguchi,  Future  University  Hakodate 30 2014/07/12

Page 30: Linked Open Data技術

バックスラッシュエスケープを使ったユニコード文字

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

Page 31: Linked Open Data技術

LOD:  イラスト表現

Taku  Yamaguchi,  Future  University  Hakodate 32  

データ

データ

DBpedia  Japanese hCp://ja.dbpedia.org/resource/北斗市  

隣の自治体

hCp://ja.dbpedia.org/resource/函館市

2014/07/12

Page 32: Linked Open Data技術

LOD:  イラスト表現

Taku  Yamaguchi,  Future  University  Hakodate 33

函館市 隣の自治体

北斗市  

2014/07/12

Page 33: Linked Open Data技術

LOD:  イラスト表現

Taku  Yamaguchi,  Future  University  Hakodate 34

函館市 隣の自治体

北斗市  

hCp://ja.dbpedia.org/resource/函館市

hCp://ja.dbpedia.org/resource/北斗市

?

2014/07/12

Page 34: Linked Open Data技術

JSONでシリアライズ GET  hCp://ja.dbpedia.org/resource/函館市  Accept:  applicaSon/json  ↓  …  ,  "hCp://dbpedia.org/ontology/neighboringMunicipality"  :  [  

{  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u5317\u6597\u5E02"  }  ,  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u9752\u68EE\u770C"  }  

] Taku  Yamaguchi,  Future  University  Hakodate 35

北斗市

2014/07/12

Page 35: Linked Open Data技術

JSONでシリアライズ GET  hCp://ja.dbpedia.org/resource/函館市  Accept:  applicaSon/json  ↓  …  ,  "hCp://dbpedia.org/ontology/neighboringMunicipality"  :  [  

{  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u5317\u6597\u5E02"  }  ,  {  "type"  :  "uri",  "value"  :  "hCp://ja.dbpedia.org/resource/\u9752\u68EE\u770C"  }  

] Taku  Yamaguchi,  Future  University  Hakodate 36

データ

データ

データ

北斗市

青森県

隣の自治体

2014/07/12

Page 36: Linked Open Data技術

イラスト表現

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

Page 37: Linked Open Data技術

あれ?  #5

n プロパティ「hCp://dbpedia.org/ontology/neighboringMunicipality」が  「隣の自治体」だって、どうしてわかるの?  ⇒  語彙

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 38

Page 38: Linked Open Data技術

語彙

n 語彙はプロパティの集合  n データセットの仕様を調べる  

例)  ヨコハマ・アート・LOD  >  各情報に含まれるメタ情報については、それぞれのスキーマページに詳しく記載しています。  hCp://fp.ya�p.org/yokohama_art_lod  

n 既存の語彙を調べる  

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 39

Page 39: Linked Open Data技術

あれ?  #6

n 「函館市」の「隣の自治体」を知るのに、  「函館市」の情報全部を取得して、  そこから探すのか?  ⇒  次へ…

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 40

Page 40: Linked Open Data技術

データセットからデータを取得

SPARQL

Taku  Yamaguchi,  Future  University  Hakodate 41 2014/07/12

Page 41: Linked Open Data技術

賢く使いたい

「函館市」の「隣の自治体」を「問い合わせ」て、  それだけ知りたい。  

…他のデータはいらない。

Taku  Yamaguchi,  Future  University  Hakodate 42 2014/07/12

Page 42: Linked Open Data技術

エンドポイント

問合せ窓口 =  エンドポイント  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

Page 43: Linked Open Data技術

DBpedia  Japanese  hCp://ja.dbpedia.org/sparql  

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 44

Page 44: Linked Open Data技術

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 45

Page 45: Linked Open Data技術

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

Page 46: Linked Open Data技術

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 47

Page 47: Linked Open Data技術

問い合わせ結果 2件  n hCp://ja.dbpedia.org/resource/北斗市  n hCp://ja.dbpedia.org/resource/青森県

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 48

Page 48: Linked Open Data技術

文法

select  disSnct  *  where  {  

       <hCp://ja.dbpedia.org/resource/函館市>  

       <hCp://dbpedia.org/ontology/neighboringMunicipality>  

       ?o  .  

}  

 

2013-­‐04-­‐25 49

WHERE  {  …  }  …というパターンに当てはまる  

主語、 述語、目的語の組を選んで

*  全ての変数  

(?o、…他にあれば)を

SELECT  取り出しなさい

主語

述語

目的語 文末、組の区切り

Page 49: Linked Open Data技術

結果をJSONで受け取る

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 50

Page 50: Linked Open Data技術

函館市の隣は?

Taku  Yamaguchi,  Future  University  Hakodate 51

函館市

hCp://ja.dbpedia.org/resource/函館市 ?o  

隣の自治体

hCp://dbpedia.org/ontology/neighboringMunicipality

2014/07/12

Page 51: Linked Open Data技術

問い合わせ結果 {  "head":  {  "link":  [],  "vars":  ["o"]  },  

   "results":  {  "disSnct":  false,  "ordered":  true,  "bindings":  [  

       {  "o":  {  

               "type":  "uri",  

               "value":  "hCp://ja.dbpedia.org/resource/\u5317\u6597\u5E02"  }},  

       {  "o":  {  

               "type":  "uri",  

               "value":  "hCp://ja.dbpedia.org/resource/\u9752\u68EE\u770C"  }}  

]  }  }

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 52

Page 52: Linked Open Data技術

問合せの変数名 受け取るプログラムの側でオブジェクトのプロパティ名にしたい名前を、  クエリー中の変数名にすればよい。  

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/\u5317\u6597\u5E02"  }},  

       {  "o":  {  "type":  "uri",  "value":  "hCp://ja.dbpedia.org/resource/\u9752\u68EE\u770C"  }}  ]  }  }  

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 53

Page 53: Linked Open Data技術

函館観光情報  hCp://210.226.0.93/test/  

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 54

Page 54: Linked Open Data技術

問合せ例

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"より大きい

Page 55: Linked Open Data技術

問合せ例

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

Page 56: Linked Open Data技術

北斗市の隣の隣

(再び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

Page 57: Linked Open Data技術

北斗市の隣の隣は?

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

Page 58: Linked Open Data技術

リンクをたどる

プログラムでリンクをたどることができる 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

Page 59: Linked Open Data技術

結果のアドレスバーを見てみる

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

Page 60: Linked Open Data技術

パーセントデコード

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

Page 61: Linked Open Data技術

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のクエリ

出力(応答)形式

Page 62: Linked Open Data技術

n プログラムで、  このquery  stringを作って、  HTTP  GETすればよい  

n リソースはIRI、  それをパーセントエンコードしてある  p 文字を見たら、誰がいつ変換…(略

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 63

Page 63: Linked Open Data技術

AR「北海道の山」チャンネル

プログラム例

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 64

Page 64: Linked Open Data技術

n DBpedia  Japaneseから、  n 緯度・経度・標高のある、  n 北海道の山を取り出して、  n AR  (拡張現実)のチャンネル

データを作る  今回は遠すぎて、  

面白くありませんが…  

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 65

Page 65: Linked Open Data技術

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

緯度

経度 地図へのリンクに  緯度・経度が  埋まっていることも

Page 66: Linked Open Data技術

参考資料

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

Page 67: Linked Open Data技術

余談ですが…

n スラッシュエスケープされたUnicodeを  読める人っ! \(^o^)  

n パーセントエンコードされた文字を  読める人っ! \(^o^)  

とことんやったら、ある日、読めるようになるかも。  …わたしが新人の頃は、パンチカード読めたり、  16進で計算できる先輩がいらっしゃいました。

2014/07/12 Taku  Yamaguchi,  Future  University  Hakodate 68