第5回AIツール入門講座 Linked Open Dataの現状とその活用

  • 1,620 views
Uploaded on

2013-12-26に行われた人工知能学会主催 第5回AIツール入門講座 Linked Open Dataの現状とその活用 の資料 …

2013-12-26に行われた人工知能学会主催 第5回AIツール入門講座 Linked Open Dataの現状とその活用 の資料
第4回(http://www.slideshare.net/fumihiro/4-24004224) を多少変更したもの.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • if you are trying to implement a sparql endpoint, you may be interested in ARC2 though it is a bit outdated and does not support SPARQL 1.1
    Are you sure you want to
    Your message goes here
  • I am looking to implement the sparql with PHP but so far I can not do; Can you help me? I am a francophone my English is very bad my email is: ngerard70@yahoo.fr
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,620
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
32
Comments
2
Likes
8

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 第5回AIツール入門講座 Linked Open Dataの現状 とその活用 (共)情報・システム研究機構 加藤文彦 2013-12-16 1
  • 2. 加藤 文彦 • (共)情報・システム研究機構 特任研究員 • • • LODACプロジェクト DBpedia Japanese NPO リンクト・オープン・データ・イニシアティブ 理事 • • • (かとうふみひろ) CKAN Open DATA METI コミュニティ • • • Linked Data勉強会 Linked Open Data チャレンジ Japan CKAN日本語 2
  • 3. Raw Data Now! ティム・バーナーズ=リーが示す次のウェブ http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html オープンデータとマッシュアップで変わる世界 http://www.ted.com/talks/tim_berners_lee_the_year_open_data_went_worldwide.html 3
  • 4. Open  Data Linked  Data (オープンライセンス) (データのWeb) 4
  • 5. Open  Data Linked  Data (オープンライセンス) (データのWeb) Reuse 5
  • 6. Open Data 6
  • 7. Open (Data) License 7
  • 8. データやコンテンツがオープンであるというの は,クレジット表示と/またはライセンスの継承を するくらいの条件で,誰もが自由に利用,再利 用,再配布できるということである. The  Open  Defini+on  -­‐  h.p://opendefini+on.org 8
  • 9. 自由な利用・再利用・再配布 • 発見できる • 変更できる • アクセスできる • 共有できる • 閲覧できる • アプリで使える • 印刷できる • リンクできる • コピーできる • ... 9
  • 10. ⃝ ☓ 10
  • 11. Open Government Data 11
  • 12. http://www.whitehouse.gov/the-press-office/2013/05/09/executive-order-making-open-and-machine-readable-new-default-government12
  • 13. http://project-open-data.github.io/ 13
  • 14. https://www.gov.uk/government/publications/open-data-charter/g8-open-data-charter-and-technical-annex 14
  • 15. http://www.mofa.go.jp/mofaj/gaiko/page23_000044.html 15
  • 16. 何故? • 公開者 • 透明性, 協働, 活性化, 効率化, 価値向 上, ... • 利用者 • 利便性, 検証, 協働, 利活用, ビジネ ス, ... 16
  • 17. 17
  • 18. http://data.gov.uk 18
  • 19. http://data.gov.uk/data/search 19
  • 20. http://www.city.sabae.fukui.jp/pageview.html?id=11552 20
  • 21. http://fukuno.jig.jp/2013/opendatamap 21
  • 22. http://datameti.go.jp 22
  • 23. http://datameti.go.jp/data/dataset/statistics_kougyou_2010 23
  • 24. 24
  • 25. 25
  • 26. by DPADM/UMU, OGDCE Toolkit 26
  • 27. http://spending.jp 27
  • 28. CKAN • FLOSSのデータポータルソフトウェア • • • • • • • • • Open Knowledge Foundation作 最新版: v2.1 AGPL v3.0 http://github.com/okfn/ckan Python+JS+PostgreSQL+SOLR 世界中の国や地方自治体等で採用 API提供 豊富な拡張: 可視化,ハーベスト等 Facebook CKAN日本語グループ • https://www.facebook.com/groups/327233017355370/ 28
  • 29. http://datahub.io 29
  • 30. 30
  • 31. powered by recline.js http://reclinejs.com/ 31
  • 32. Linked Data 32
  • 33. http://data.gov.uk/linked-data 33
  • 34. Web技術でデータを 公開・共有するための方法論 34
  • 35. 35
  • 36. ライセンス データフォーマット 1 2 データアクセス データモデル 3 36
  • 37. 4-5星への道 • データのモデルとアクセスを共通化 • アプリが使い回しやすくなる • データ同士が参照可能 • データが使い回しやすくなる 37
  • 38. 4-5星への道 • 識別するものがある • 共通項がある • 関係がある • 由来がある • 変更履歴がある • 例: 名前,コード,カテゴリー,... 38
  • 39. 39
  • 40. 書誌 作品 作品 40
  • 41. 人物 友人 在住 41
  • 42. 名前の由来 観光地 観光地 舞台 観光 42
  • 43. 人物 書誌 友人 作品 在住 名前の由来 観光地 作品 観光地 舞台 観光 43
  • 44. 人物 友人 在住 同じ 同じ 作品 作品 観光地 名前の由来 観光地 舞台 書誌 同じ 観光 44
  • 45. Webの原則 1.IRIをHTML文書の識別 子として使う 2.IRIにはhttpスキームを 使う 3.IRIを見るとHTML文書 が返ってくる 4.HTML文書には他のIRI へのリンクがある 45
  • 46. Linked Dataの原則 1.IRIをモノ(Thing)の識 別子として使う 2.IRIにはhttpスキームを 執筆 子供 発行日 使う 3.IRIを見るとモノの構造 化データが返ってくる 4.データには他のIRIへの 型付リンクがある 誕生日 出版社 所在地 "Things,  not  Strings"  by  Google 46
  • 47. Reuse ID Discovery Integration 47
  • 48. 構造化データ Reuse 48
  • 49. ID IRI 49
  • 50. 27 50
  • 51. ISO3166-2:JP 大阪府 27 工業統計コード 業務用機械器具製造業 ガンバ大阪 内田達也 51
  • 52. http://www.iso.org/3166-2/jp/27 IDをIRIにすると世界で ユニークなIDになる ISO3166-2:JP 大阪府 27 工業統計コード 業務用機械器具製造業 http://www.meti.go.jp/industrial-code/26 ガンバ大阪 内田達也 http://www.gamba-osaka.net/gamba/ player/2013/27 52
  • 53. Derefereceable IRI (HTTP) Discovery 53
  • 54. http://www.w3.org/TR/webarch/ 54
  • 55. Content-negotiation • あるリソースに対する表現をHTTPリク エストで折衝する仕組み • 例: JPEGとSVGの画像 55
  • 56. 1. request /resource/Japan 2. return an HTML document for /resource/Japan http://dbpedia.org Web Browser % curl -ILH 'Accept: text/html' http://dbpedia.org/resource/Japan HTTP/1.1 303 See Other Date: Thu, 04 Jul 2013 09:30:17 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 0 Connection: keep-alive Server: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 Accept-Ranges: bytes Location: http://dbpedia.org/page/Japan VDB HTTP/1.1 200 OK Date: Thu, 04 Jul 2013 09:31:07 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 2023382 Connection: keep-alive Vary: Accept-Encoding ..... 56
  • 57. 1. request /resource/Japan 2. return a turtle document for /resource/Japan LOD Agent http://dbpedia.org @prefix yago-res: <http://mpii.de/yago/resource/> . @prefix dbpedia: <http://dbpedia.org/resource/> . yago-res:Japan owl:sameAs dbpedia:Japan . <http://data.nytimes.com/59436095099277148161> owl:sameAs dbpedia:Japan . <http://data.nytimes.com/66220885916538669281> owl:sameAs % curl -ILH 'Accept: text/turtle' http://dbpedia.org/resource/Japan dbpedia:Japan . HTTP/1.1 303 See Other @prefix dbpedia-owl: <http://dbpedia.org/ontology/> . Date: Thu, 04 Jul 2013 09:36:52 GMT dbpedia:Ayumi_Hamasaki dbpedia-owl:hometown dbpedia:Japan ; Content-Type: text/turtle; qs=0.7 dbpedia-owl:birthPlace dbpedia:Japan . Content-Length: 0 dbpedia:Nippon_Columbia dbpedia-owl:distributingCompany dbpedia:Japan ; Connection: keep-alive dbpedia-owl:distributingLabel dbpedia:Japan ; Server: Virtuoso/07.00.3203 (Linux) i686-generic-linux-glibc212-64 VDB dbpedia-owl:country dbpedia:Japan . TCN: choice @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix yago: <http://dbpedia.org/class/yago/> . Vary: negotiate,accept dbpedia:Japan rdf:type yago:EastAsianCountries , Link: <http://mementoarchive.lanl.gov/dbpedia/timegate/http:// owl:Thing . dbpedia.org/resource/Japan>; rel="timegate" @prefix ns6: <http://schema.org/> . Location: http://dbpedia.org/data/Japan.ttl dbpedia:Japan rdf:type ns6:Country , yago:CountriesBorderingThePhilippineSea , HTTP/1.1 200 OK yago:Empires , Date: Thu, 04 Jul 2013 09:36:52 GMT yago:IslandCountries , Content-Type: text/turtle; charset=UTF-8 yago:StatesAndTerritoriesEstablishedIn660BC , Content-Length: 1967774 dbpedia-owl:Country , Connection: keep-alive dbpedia-owl:PopulatedPlace , ...... ns6:Place , yago:CountriesBorderingThePacificOcean . @prefix ns7: <http://umbel.org/umbel/rc/> . dbpedia:Japan rdf:type ns7:Country , ns7:PopulatedPlace , dbpedia-owl:Place , yago:OECDMemberEconomies . 57
  • 58. Cool URIs • • 実体とその表現のIRIも分離 2つの代表的なソリューション • 303 See Other • • 実体IRIを参照したときに適切なIRIへ303でリダイレ クトする ハッシュIRI • • 実体を # 付きのIRI エージェントがアクセスするときには # 以下が取れる 58
  • 59. Integration IRI + 型付リンク 59
  • 60. 施設データテーブル ID name tel zipcode prefecture 001 市役所 0778-51-2200 916-8666 福井県 60
  • 61. 施設データテーブル ID name tel zipcode prefecture 001 市役所 0778-51-2200 916-8666 18 IDでjoin ID name population 18 福井県 795824 26 京都府 2623924 都道府県データテーブル 61
  • 62. 施設データテーブル ID name tel zipcode prefecture 001 市役所 0778-51-2200 916-8666 http://.../3166/jp/18 prefectureのデータ ID name population http://.../3166/jp/18 福井県 795824 http://.../3166/jp/26 京都府 2623924 都道府県データテーブル IDをhttp IRIにすることで外部から参照される 62
  • 63. RDF Reuse ID Discovery Integration 全てを含んだグラフデータモデル 63
  • 64. 執筆 子供 発行日 誕生日 出版社 所在地 64
  • 65. 執筆 子供 発行日 誕生日 出版社 所在地 65
  • 66. シリアライズ形式 • • • • • • • • Turtle (N3) JSON-LD RDFa Microdata RDF/XML TriX TriG ...... 66
  • 67. http://www.w3.org/TR/turtle/ 67
  • 68. http://json-ld.org/ 68
  • 69. 69
  • 70. https://developers.google.com/gmail/schemas/reference/formats/json-ld 70
  • 71. Hellenic FBD Hellenic PD Crime Reports UK Crime (EnAKTing) Ox Points NHS (EnAKTing) Ren. Energy Generators Open Election Data Project EU Institutions CO2 Emission (EnAKTing) Energy (EnAKTing) EEA Mortality (EnAKTing) Ordnance Survey legislation data.gov.uk UK Postcodes ESD standards ISTAT Immigration Lichfield Spending Scotland Pupils & Exams Traffic Scotland Data Gov.ie reference data.gov. uk London Gazette TWC LOGD Eurostat Eurostat (FUB) CORDIS (FUB) (RKB Explorer) Linked EDGAR (Ontology Central) EURES (Ontology Central) GovTrack FTS New York Times Geo Names World Factbook Geo Species UMBEL Italian public schools DBLP (FU Berlin) Uberblic dataopenac-uk TCM Gene DIT Daily Med Twarql EUNIS WordNet (VUA) SIDER SMC Journals Ocean Drilling Codices Turismo de Zaragoza Janus AMP Climbing Linked GeoData Alpine Ski Austria AEMET Metoffice Weather Forecasts PDB Yahoo! Geo Planet National Radioactivity JP lobid Organisations ECS (RKB Explorer) DBLP (RKB Explorer) STW GESIS Budapest Pisa RESEX Scholarometer IRIT ACM NVD IBM DEPLOY Newcastle RAE2001 LOCAH Roma CiteSeer Courseware dotAC ePrints IEEE RISKS PROSITE ChEMBL Open Data Thesaurus Sears ECS Southampton EPrints HGNC (Bio2RDF) Affymetrix SISVU GEMET Airports Wiki ECS Southampton VIVO Indiana UniProt PubMed ProDom VIVO Cornell STITCH Linked Open Colors SGD Gene Ontology AGROV OC Product DB Weather Stations Swedish Open Cultural Heritage LAAS NSF KISTI JISC WordNet (RKB Explorer) EARTh NSZL Catalog Pfam LODE WordNet (W3C) lobid Resources P20 Eurécom LinkedCT Taxono my Cornetto Deutsche Biographie UN/ LOCODE Drug Bank Enipedia Lexvo DBLP (L3S) ERA Diseasome lingvoj Europeana OAI data dcs UniProt GeoWord Net El Viajero Tourism BibBase Freebase YAGO Open Cyc riese BNB VIAF UB Mannheim Ulm data bnf.fr OS dbpedia lite Norwegian MeSH GND ndlna Calames DDC Project Gutenberg Rådata nå! PSH IdRef Sudoc iServe LIBRIS LCSH MARC Codes List Sudoc RDF Book Mashup Open Calais Greek DBpedia ntnusc Thesaurus W totl.net US Census (rdfabout) Piedmont Accomodations URI Burner LEM RAMEAU SH LinkedL CCN SW Dog Food Portuguese DBpedia t4gm info Open Library (Talis) theses. fr Revyu Fishes of Texas (rdfabout) Scotland Geography Finnish Municipalities Event Media US SEC Semantic XBRL Linked MDB NDL subjects Plymouth Reading Lists my Experiment flickr wrappr DBpedia Linked Sensor Data (Kno.e.sis) Eurostat Chronicling America Telegraphis Geo Linked Data CORDIS Pokedex NTU Resource Lists Open Library SSW Thesaur us semantic web.org BBC Music BBC Wildlife Finder NASA (Data Incubator) transport data.gov. uk Source Code Ecosystem Linked Data Didactal ia Goodwin Family St. Andrews Resource Lists Manchester Reading Lists gnoss Poképédia Classical (DB Tune) Taxon Concept LOIUS Jamendo (DBtune) Last.FM (rdfize) BBC Program mes Rechtspraak. nl Openly Local data.gov.uk intervals Music Brainz (DBTune) Ontos News Portal Sussex Reading Lists Bricklink yovisto Semantic Tweet Linked Crunchbase RDF ohloh (Data Incubator) (DBTune) OpenEI statistics data.gov. uk GovWILD Brazilian Politicians educatio n.data.g ov.uk Music Brainz (zitgist) Discogs FanHubz patents data.go v.uk research data.gov. uk Klappstuhlclub Lotico (Data Incubator) Last.FM artists Population (EnAKTing) reegle Surge Radio tags2con delicious Slideshare 2RDF (DBTune) Music Brainz John Peel (DBTune) EUTC Productions business data.gov. uk GTAA Magnatune DB Tropes Moseley Folk Linked User Feedback LOV Audio Scrobbler OMIM MGI InterPro Smart Link Product Types Ontology Open Corporates Italian Museums Amsterdam Museum UniParc UniRef UniSTS GeneID Linked Open Numbers Reactome OGOLOD KEGG Pathway Medi Care Google Art wrapper meducator KEGG Drug Pub Chem UniPath way Chem2 Bio2RDF Homolo Gene VIVO UF ECCOTCP bible ontology KEGG Enzyme PBAC KEGG Reaction KEGG Compound KEGG Glycan Media Geographic Publications User-generated content Government Cross-domain Life sciences As of September 2011 Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/ 71
  • 72. http://datahub.io/dataset?q=&groups=lodcloud 72
  • 73. http://dbpedia.org 73
  • 74. http://dbpedia.org/resource/Japan 74
  • 75. http://wiki.dbpedia.org/Internationalization/Chapters 75
  • 76. http://ja.dbpedia.org 76
  • 77. 77
  • 78. Japanese Linked Data Cloud • 21データセット • 本家よりも緩い条件 • 1000トリプル以上 • dereferenceかデータダ ンプかSPARQL Endpoint • 日本語ラベルを含む • 他のLODクラウドか JLDCへのリンク 78
  • 79. LOD cloud criteria 21 → 9 79
  • 80. http://linkedgeodata.org 80
  • 81. http://linkedgeodata.org/triplify/node355845257 81
  • 82. http://browser.linkedgeodata.org/ 82
  • 83. OS Linked Data • 地理データの一部 • 50K地名辞典 • 郵便番号 • 境界線 http://data.ordnancesurvey.co.uk/ 83
  • 84. http://data.ordnancesurvey.co.uk/datasets/50k-gazetteer 84
  • 85. http://data.ordnancesurvey.co.uk/id/50kGazetteer/140011 http://data.ordnancesurvey.co.uk/id/50kGazetteer/140012 http://data.ordnancesurvey.co.uk/id/50kGazetteer/140013 85
  • 86. http://data.ordnancesurvey.co.uk/datasets/code-point-open http://data.ordnancesurvey.co.uk/datasets/boundary-line 86
  • 87. http://data.ordnancesurvey.co.uk/id/postcodedistrict/E14 http://data.ordnancesurvey.co.uk/id/7000000000041441 http://data.ordnancesurvey.co.uk/id/7000000000011185 http://data.ordnancesurvey.co.uk/id/postcodedistrict/E148 http://data.ordnancesurvey.co.uk/id/postcodeunit/E148BG http://data.ordnancesurvey.co.uk/id/7000000000010975 郵便番号 行政区・選挙区 87
  • 88. ONS linked data • 統計データの基盤としてのジオデータ • 領域単位 • 行政,衛生,選挙,郵便,... • 境界線 • 不一致,変更 http://statistics.data.gov.uk/ 88
  • 89. http://statistics.data.gov.uk/explore?URI=http%3A%2F%2Fstatistics.data.gov.uk%2Fid%2Fstatistical-geography%2FE09000001 89
  • 90. http://statistics.data.gov.uk/id/statistical-geography/E09000001 90
  • 91. http://linkedlifedata.com/ 91
  • 92. 92
  • 93. 93
  • 94. SPARQL 94
  • 95. クエリ言語 • データの検索や操作を行うための言語 • データモデルやDBシステムに合わせて設計 • 例: SQL – データモデル: 関係モデル – DBシステム: RDBMS • LODのデータモデル: グラフモデル 95
  • 96. グラフのクエリ • グラフの最小単位: 3つ組 (トリプル) dbp:東京都 dbpedia-­‐owl:country dbp:日本 • グラフパターン 1. 完全一致 • 2. 変数によるパターンマッチ • 3. dbp:東京都 dbp-owl:country dbp:日本 . dbp:東京都 dbp-owl:country ?country . 1と2の組み合わせ 96
  • 97. 好き嫌いグラフ :like :Amy :like :Bob :dislike :like :dislike :Dan :dislike :Flo :Ed :dislike :dislike :Gil :like :like :Jim :Ian :like :Hal :dislike :Cathy :Kate :dislike :like :Lee :May :dislike 97
  • 98. Amyが好きな人 グラフパターン :Amy  :like  ?person  . :like :Amy :like :Bob :dislike :like :dislike :Dan :dislike :Flo :Ed :dislike :dislike :Gil :like :like :Jim :Ian :like :Hal :dislike :Cathy :Kate :dislike :like :Lee :May :dislike 98
  • 99. Amyが好きな人 が好きな人 グラフパターン :Amy  :like  ?person1  . ?person1  :like  ?person2  . :like :Amy :like :Bob :dislike :like :dislike :Dan :dislike :Flo :Ed :dislike :dislike :Gil :like :like :Jim :Ian :like :Hal :dislike :Cathy :Kate :dislike :like :Lee :May :dislike 99
  • 100. SPARQL • LOD用クエリ言語 • SQLのような文法 SQL SPARQL Query RDB RDF Store DB Relational Model RDF Model Model • データモデル: RDF • プロトコル: HTTP • W3C仕様 • 2013-03-21に 1.1勧告 100
  • 101. SPARQLエンドポイント • SPARQLクエリを受け付け る場所 • SPARQLエンドポイントURI • プログラムからSPARQLを使 うときに指定 • 入力フォームがある場合 もあり • 例: http://ja.dbpedia.org/sparql 101
  • 102. DBpedia Japaneseのグラフ例 dbp-­‐owl:Cartoon サイボーグ009 rdfs:label dbp-­‐owl:AdministraJveRegion dbp:サイボーグ009 rdf:type rdfs:label dbp:宮城県 rdf:type dbp-­‐owl: ComicsCreator dbp-­‐owl:notableWork rdf:type dbp-­‐owl:birthPlace dbp:石ノ森章太郎 宮城県 foaf:Person rdf:type dbp-­‐owl:leaderName dbp-­‐prop:生年 dbp:村井嘉浩 1938 rdfs:label dbp-­‐owl:award 石ノ森章太郎 dbp:手塚治虫 文化賞 102
  • 103. クエリ:  石ノ森章太郎の出身地 PREFIX  dbp:  <h;p://ja.dbpedia.org/resource/> PREFIX  dbp-­‐owl:  <h;p://dbpedia.org/ontology/> SELECT  ?birthPlace WHERE  {    dbp:石ノ森章太郎  dbp-­‐owl:birthPlace  ?birthPlace  . } dbp-­‐owl:Cartoon サイボーグ009 rdfs:label dbp-­‐owl:AdministraJveRegion dbp:サイボーグ009 rdf:type rdfs:label rdf:type dbp-­‐owl: ComicsCreator dbp-­‐owl:notableWork dbp:宮城県 rdf:type dbp-­‐owl:birthPlace dbp:石ノ森章太郎 宮城県 foaf:Person rdf:type dbp-­‐owl:leaderName dbp-­‐prop:生年 dbp:村井嘉浩 1938 rdfs:label dbp-­‐owl:award 石ノ森章太郎 dbp:手塚治虫 文化賞 103
  • 104. 104
  • 105. PREFIX  dbp:  <h;p://ja.dbpedia.org/resource/> PREFIX  dbp-­‐owl:  <h;p://dbpedia.org/ontology/> SELECT  ?birthPlace WHERE  {    dbp:石ノ森章太郎  dbp-­‐owl:birthPlace  ?birthPlace  . } • SELECT:  取得したい変数を指定 • SELECT  *  は全ての変数指定と同等 • 結果形式:  XML,  JSON,  CSV,  TSV,  ... • WHERE:    {}内にグラフパターンの組み合わせを記述 • LIMIT:    件数の制限 • 100だと1-­‐100まで取得 • LIMITがない場合は全件取得 • 量が多い場合はサーバに負荷をかけるので注意 • PREFIX:    URIを短縮して記述するための仕組み • dbp:東京都  =  <h;p://ja.dbpedia.org/resource/東京都> 105
  • 106. クエリ:  手塚治虫文化賞を受賞した漫画家 PREFIX  dbp:  <h;p://ja.dbpedia.org/resource/> PREFIX  dbp-­‐owl:  <h;p://dbpedia.org/ontology/> SELECT  ?creator WHERE  {    ?creator  rdf:type  dbp-­‐owl:ComicsCreator  ;        dbp-­‐owl:award  dbp:手塚治虫文化賞  . } dbp-­‐owl:Cartoon サイボーグ009 rdfs:label dbp-­‐owl:AdministraJveRegion dbp:サイボーグ009 rdf:type rdfs:label rdf:type dbp-­‐owl: ComicsCreator dbp-­‐owl:notableWork dbp:宮城県 rdf:type dbp-­‐owl:birthPlace dbp:石ノ森章太郎 宮城県 foaf:Person rdf:type dbp-­‐owl:leaderName dbp-­‐prop:生年 dbp:村井嘉浩 1938 rdfs:label dbp-­‐owl:award 石ノ森章太郎 dbp:手塚治虫 文化賞 106
  • 107. 107
  • 108. クエリ:  手塚治虫文化賞を受賞した漫画家の代表的な漫画 PREFIX  dbp:  <h;p://ja.dbpedia.org/resource/> PREFIX  dbp-­‐owl:  <h;p://dbpedia.org/ontology/> SELECT  ?creatorName  ?comicName WHERE  {    ?creator  a  dbp-­‐owl:ComicsCreator  ;  dbp-­‐owl:award  dbp:手塚治虫文化賞  ;          dbp-­‐owl:notableWork  ?comic  ;  rdfs:label  ?creatorName  .    ?comic  a  dbp-­‐owl:Cartoon  ;  rdfs:label  ?comicName  . } dbp-­‐owl:Cartoon サイボーグ009 rdfs:label dbp-­‐owl:AdministraJveRegion dbp:サイボーグ009 rdf:type rdfs:label rdf:type dbp-­‐owl: ComicsCreator dbp-­‐owl:notableWork dbp:宮城県 rdf:type dbp-­‐owl:birthPlace dbp:石ノ森章太郎 宮城県 foaf:Person rdf:type dbp-­‐owl:leaderName dbp-­‐prop:生年 dbp:村井嘉浩 1938 rdfs:label dbp-­‐owl:award 石ノ森章太郎 dbp:手塚治虫 文化賞 108
  • 109. 109
  • 110. SPARQL 1.0 • データ取得 • SELECT • ASK • DESCRIBE • CONSTRUCT • ほぼどこでも使える 110
  • 111. SELECT 例) 任意の3つ組を100件取得 SELECT ?s ?p ?o WHERE { ?s ?p ?o . } LIMIT 100 111
  • 112. ASK • ASK:    グラフパターンにマッチするものがあるか • 結果yes  か  no   例)  石ノ森章太郎の出身地が含まれているかどうか PREFIX  dbp:  <hYp://ja.dbpedia.org/resource/> PREFIX  dbp-­‐owl:  <hYp://dbpedia.org/ontology/> ASK   WHERE  {    dbp:石ノ森章太郎  dbp-­‐owl:birthPlace  ?birthPlace  . } 112
  • 113. DESCRIBE • DESCRIBE: リソースに関するグラフを取得 • 実装依存 • 多くの場合は対象リソースをsubjectかobjectに 含む3つ組の集合 • 結果形式: RDF/XML, Turtle, … 例) http://ja.dbpedia.org/resource/横浜市に関するグラフを取得 DESCRIBE <http://ja.dbpedia.org/resource/横浜市> 113
  • 114. CONSTRUCT • CONSTRUCT:    新しいグラフを作成して取得 • 結果形式:  RDF/XML,  Turtle,  … 例)  foaf:nameプロパティの3つ組をそのまま取得 PREFIX  foaf:  <hYp://xmlns.com/foaf/0.1/> CONSTRUCT  {    ?s  foaf:name  ?o  . } WHERE  {    ?s  foaf:name  ?o  . } 114
  • 115. Named Graph • 3つ組の集合を区別 したいという要求 • データソースや ファイルの違い • Triple(3つ組)では なくQuad(4つ組) 115
  • 116. Named Graphの例 PREFIX  dcndl:  h;p://ndl.go.jp/dcndl/terms/> PREFIX  rdfs:  <h;p://www.w3.org/2000/01/rdf-­‐schema#> PREFIX  dc:  <h;p://purl.org/dc/terms/> SELECT  DISTINCT  * WHERE  {    GRAPH  ?g  {        <h;p://lod.ac/species/Papilio_xuthus>  ?p  ?o    .    }    ?g  dc:source  ?source  .    ?source  dcndl:edibon  ?edibon  ;                        dc:publisher/rdfs:label  ?publisher  . } 116
  • 117. SPARQL 1.1 • データ管理 • 作成・更新・削除用句 • • • • • サービス記述 Graph Store HTTP Protocol 結果形式の追加: JSON, CSV, TSV 様々な追加機能 • • INSERT, UPDATE, DELETE, LOAD, DROP プロパティパス,集約,条件,数値関数,文字列関数,サブクエリ,Federatedクエリなど 実装の差 • • 最新の実装だと大分カバーされている 実働中のエンドポイントは差あり • 特にFederatedクエリやBINDあたりは使えないところも多い 117
  • 118. プロパティパス • 通常の3つ組パターン: ?s ?p ?o • ?oの省略や?pの繰り返し,?pの逆向き 等を記述可能 PREFIX  dbp:  <h;p://ja.dbpedia.org/resource/> PREFIX  dbp-­‐owl:  <h;p://dbpedia.org/ontology/> SELECT  ?creatorName  ?comicName WHERE  {    ?creator  dbp-­‐owl:notableWork/rdfs:label  ?comicName  . } 118
  • 119. プロパティパスの例 • ?s foaf:knows/foaf:knows ?o • ?s foaf:knows+ ?o • ?s ^foaf:knows ?o • ?s foaf:name¦rdfs:label ?o 119
  • 120. 集約 • COUNT: 個数 • SUM: 合計 • AVG: 平均 • MIN: 最小値 • MAX: 最大値 • GROUP BY: 120
  • 121. COUNT 例)  森薫リソースのオブジェクトの数 SELECT  (COUNT(?o)  AS  ?count) WHERE  {    <hYp://dbpedia.org/resource/Kaoru_Mori>  ?p  ?o  . } 121
  • 122. GROUP BY 例)  クラス毎のインスタンスの数上位100件を降順 SELECT  ?class  (COUNT(?instance)  AS  ?noOfInstances) WHERE  {      ?instance  a  ?class  . } GROUP  BY  ?class ORDER  BY  DESC(?noOfInstances) LIMIT  100 122
  • 123. サブクエリ 例)  クラス毎のインスタンスの数の平均 SELECT  (AVG(?noOfInstances)  AS  ?avg) WHERE  {    {        SELECT  ?class  (COUNT(?instance)  AS  ?noOfInstances)        WHERE  {              ?instance  a  ?class  .        }        GROUP  BY  ?class    } } 123
  • 124. Federatedクエリ • • サブクエリの延長 SERVICE句 • • • クエリを直接投げたエンドポイント以外を指定し てクエリを投げられる 2ヶ所以上のSPARQLエンドポイントに対してク エリを発行して自動的に結果を結合 まだ使えるエンドポイントが限られるし相互運用性 も怪しいがSPARQLのパワフルさの象徴の一つ 124
  • 125. SPARQL Endpointリスト • http://datahub.io/dataset?q=&res_format=api %2Fsparql • http://labs.mondeca.com/sparqlEndpointsStatus/ 125
  • 126. http://datahub.io/dataset?q=&res_format=api%2Fsparql 126
  • 127. http://labs.mondeca.com/sparqlEndpointsStatus/ 127
  • 128. 128
  • 129. http://lod.ac/apps/lodac_location/ 129
  • 130. PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> SELECT DISTINCT ?link ?title ?lat ?long WHERE { ?link rdfs:label ?title; geo:lat ?lat; geo:long ?long . FILTER ( ?lat > 左上緯度 && ?lat < 右下緯度 && ?long > 左上経度 && ?long < 右下経度 && lang(?title) = "ja" ) } 130
  • 131. http://lod.ac/apps/yas 131
  • 132. 132
  • 133. 133
  • 134. © 2013 Scholex co.,ltd. and ATR Creative Inc. © 2013 ATR Creative Inc., Linked Open Data Initiative 134
  • 135. Tool 135
  • 136. ライブラリ 136
  • 137. RDFライブラリ • Java: Jena, Sesame • C: Redland • C#: dotNetRDF • Ruby: RDF.rb • PHP: ARC2, Graphite • Python: rdflib • Perl: PerlRDF • JavaScript: rdfQuery, rdfstore-js • .... http://www.w3.org/2001/sw/wiki/Tools参照 137
  • 138. SPARQLクライアント ライブラリ • • • • • • • • • Ruby: sparql Python: SPARQLWrapper Java: ARQ C: Rasqal R: SPARQL Haskell: hsparql 等々 http://linkeddata.jp/wiki/ツール http://www.w3.org/wiki/SparqlImplementations 138
  • 139. sparql - RDF.rb $ gem install sparql 139
  • 140. Querying a SPARQL Endpoint 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #!/usr/bin/env ruby # -*- coding: utf-8 -*require 'linkeddata' client = SPARQL::Client.new("http://dbpedia.org/sparql") query = """SELECT ?o WHERE { <http://dbpedia.org/resource/Tokyo> <http://dbpedia.org/ontology/country> ?o . }""" client.query(query).each do |solution| puts solution[:o] end 140
  • 141. R SPARQL > install.packages( SPARQL ) 141
  • 142. > library(SPARQL) > endpoint <- 'http://dbpedia.org/sparql' > q <- "SELECT ?class (count(?instance) AS ?noOfInstances) WHERE { ?instance a ?class . } GROUP BY ?class ORDER BY DESC(?noOfInstances) LIMIT 10" > res <- SPARQL(endpoint, q)$results > pie(res$noOfInstances, label=res$class) 142
  • 143. Sgvizler • Javascript/jQueryの可視化ライブラリ • • • • • https://code.google.com/p/sgvizler/ 基本的にSPARQL埋め込むだけ 主にGoogle Visualization API 安定版は0.5 HEADは大分変更があるので注意 143
  • 144. 144
  • 145. 使い方 • div要素に埋め込む • 直接Javascriptを書く • クエリフォームから入力する 145
  • 146. SPARQL Timeliner • OKFNのTimeliner(現 TimeMapper)をSPARQL対応 • http://uedayou.net/ SPARQLTimeliner/ • http://www.slideshare.net/ uedayou/sparqltimeliner-28905905 146
  • 147. OpenRefine • • Freebase Gridworks, GoogleRefine,... データと遊ぶためのツール (一部要拡張) • インポート形式: *SV, Excel, JSON, XML, RDF/XML Google Data(Spreadsheet, Fusion Table) • エクスポート形式: *SV, HTML, Excel, ODF Spreadsheet, MQL, RDF/XML, RDF/Turtle • • • • • • アップロード: Freebase, CKAN ビュアー: ファセット, フィルター,フラグ 編集履歴 スクリプト: GREL データ変換 データ公開 • 様々な拡張 • Reconciliation 147
  • 148. Reconciliation • ラベル(と付加情報)にマッチ する潜在的なエンティティ リストを推薦 • • Apple社 vs フルーツの apple vs New York City サービス • • • Freebase Reconciliation API SPARQL (要RDFRefine) 148
  • 149. 149
  • 150. 150
  • 151. http://linkdata.org/ 151
  • 152. Query SQL SPARQL DB RDB RDF Store Model Relational Model RDF Model 152
  • 153. RDF Store • TripleStore / QuadStore / Graph DB • • SPARQLエンドポイント オプション • • • • Bigdata® RDFS/OWL Inference Full text indexing Clustering See http://en.wikipedia.org/wiki/ Triplestore 153
  • 154. http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/ 154
  • 155. https://github.com/openlink/virtuoso-opensource 155
  • 156. Virtuoso Open Source • http://virtuoso.openlinksw.com/dataspace/dav/wiki/ Main/ • バイナリとソースあり • ソースからインストール $ tar xvzf virtuoso-opensource-6.1.6.tar.gz $ cd virtuoso-opensource-6.1.6 $ ./configure $ make $ make install $ /usr/local/virtuoso-opensource/bin/virtuoso-t +configfile /usr/local/virtuoso-opensource/ var/lib/virtuoso/db/virtuoso.ini 156
  • 157. http://localhost:8890/conductor/ 157
  • 158. http://localhost:8890/conductor/ 158
  • 159. 159
  • 160. 160
  • 161. http://localhost:8890/sparql 161
  • 162. 第6回LODチャレンジデー • 2013-11-24 パートナーリソース活用ハッ カソン • サーバーサイドコース • クラウドでサーバ立ち上げからVirtuoso インストール,Rubyでのアプリまで • https://github.com/LinkedOpenData/ challenge2013/wiki/サーバーサイド 162
  • 163. http://lodcu.cs.chubu.ac.jp/SparqlEPCU/ 163
  • 164. •ツール・ライブラリまとめ h;p://linkeddata.jp/wiki/ツール •SPARQLクエリ例 h;p://goo.gl/bPSHp •RDF.rbの資料 h;p://www.slideshare.net/fumihiro/ programming-­‐with-­‐lod 人工知能学会 私のブックマーク h;p://www.ai-­‐gakkai.or.jp/my-­‐ bookmark_vol28-­‐no5/ 164
  • 165. http://lod.sfc.keio.ac.jp 165
  • 166. 166