SlideShare a Scribd company logo
1 of 30
Download to read offline
技術勉強会
∼ナレッジグラフ利用技術の基
礎と推論/説明への活用例∼
ナレッジグラフ/LOD
利用技術の入門(後編)
2021/08/30
SIG-SWO
発表者:江上周作
コンテンツ
• (補足:ナレッジグラフの基礎)
• RDFデータベース(トリプルストア)の導入方法
• Pythonライブラリ「RDFLib」によるRDF利用プログラミング
ナレッジグラフ(RDF)の基礎
(続き)
クラス,インスタンス,サブクラス,サブプロパティ
3
クラスとインスタンス
4
ex:Aさん
ex:⼈間
rdf:type
「Aさん」は実在する。
⼈間を具体化させたものの⼀例。
⼈間クラスのインスタンスという。
「⼈間」さんは実在しない。
概念,カテゴリ,グループのニュアンス。
これをクラス(Class)という
クラス-インスタンスの関係はrdf:typeプロパティを使⽤する
クラスとインスタンス
5
rdfs:Class
ex:⼈間
rdf:type
「ex:⼈間」をクラスとして定義する
「rdfs」は「http://www.w3.org/2000/01/rdf-schema#」
RDFSはクラスを定義するための⽤語をRDFで提供している。
↑アクセスしてみるとRDFSのTurtleが⾒れる
書きたい情報「ex:⼈間はクラスである」
クラスの指定には「rdf:type」を使う決まり
クラスの階層関係
6
ex:哺乳類
ex:⼈間
rdfs:subClassOf
「ex:⼈間」を「ex:哺乳類」のサブクラスとして
定義する
書きたい情報「ex:⼈間はex:哺乳類のサブクラスである」
階層関係を意味するプロパティとして
rdfs:subClassOfが⼀般的に使⽤される。
哺乳類もクラスとして予め定義していると想定
(図は省略)
クラスの階層関係
7
ex:哺乳類
ex:⼈間
rdfs:subClassOf
「ex:⼈間」を「ex:哺乳類」のサブクラスとして
定義する
書きたい情報「ex:⼈間はex:哺乳類のサブクラスである」
哺乳類もクラスとして予め定義していると想定
(図は省略)
この定義をした上で
「ex:Aさん rdf:type ex:⼈間 .」と書くと,
「ex:Aさん rdf:type ex:哺乳類 .」を
記述しなくても当然導ける=【推論可能】
プロパティ
8
rdf:Property
ex:兄弟
rdf:type
「ex:兄弟」をプロパティとして定義する
書きたい情報「ex:兄弟はプロパティである」
プロパティの階層関係
9
ex:親族
ex:兄弟
「ex:兄弟」を「ex:親族」のサブプロパティ
として定義する!
書きたい情報「ex:兄弟はex:親族のサブプロパティである」
rdfs:subPropertyOf
兄弟プロパティを使って「A ex:兄弟 B .」と書くと,
「A ex:親族 B .」が当然導ける=【推論可能】
親族もプロパティとして予め定義していると想定
(図は省略)
Linked Dataの基本原則
1. あらゆる事物にURIを付与すること
2. 誰でも事物の内容が確認できるように、URIはHTTP経由で参照できる
こと
3. URIを参照した時は、標準の技術(RDFやSPARQL等)を使用して関係
する有用な情報を利用できるようにすること
4. より多くの事物を発見できるように、他のURIへのリンクを含めること
10
詳しく理解するには下記の本がおすすめ
Linked Data:Webをグローバルなデータ空間にする
仕組み
既存のLODを利用
11
ex:Aさん
wdt:P19
wd:Q1490
(団体コード)
130001
rdf:type
wdt:P17
wd:Q215627
@prefix ex: <http://example.com/terms/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix wdt: <http://www.wikidata.org/prop/direct/> .
@prefix wd: <http://www.wikidata.org/entity/> .
ex:Aさん
rdf:type wd:Q215627 ;
wdt:P19 wd:Q1490 .
wd:Q1490
wdt:P17 wd:Q17 ;
wdt:P429 "130001" .
(⼈間)
(東京都) (⽇本)
wd:Q17
(国)
wdt:P429
(出⾝)
WikiDataを再利⽤
トリプルストアの導入
RDFデータベース(トリプルストア)
• RDFデータを格納し,SPARQLによる操作を可能にするデー
タベース
• トリプルストア,RDFストアとも呼ばれる
• オープンソース,商用ともに様々なトリプルストアが存在
• AllegroGraph
• Amazon Neptune
• Blazegraph
• Dydra
• GraphDB by Ontotext
• MarkLogic
• OpenLink Virtuoso
• Oracle
• Stardog
• …
13
詳しくはこちら
https://en.wikipedia.org/wiki/Comparison_of_triplestores
RDFデータをトリプルストアに格納
• GraphDB by Ontotextのフリー版で説明
• 下記ボタンの遷移先フォームから必要情報を入力して送信すると
ダウンロードリンクが送られてきます
14
https://www.ontotext.com/products/graphdb/
リポジトリの作成
• Setup > Repositories > Create Repositories
15
ここから実演します
インポート
• Import > RDF > Upload RDF Files > ファイル選択 > Import
16
データの確認:トリプル
• Explore > Graph overview > The default graph
17
可視化も
データの確認:グラフ
• Visual graph
18
データの確認:クラス階層
• Explore > Class hierarchy
19
データの確認:クラス関係
• Explore > Class relationships
20
SPARQL検索
• 検索が可能
21
SPARQL検索:可視化
• 検索結果のチャート表示も可能
SPARQL検索:推論
• OWLやルールに基づく推論が可能
23
推論機能ON
owl:sameAsリンク
の展開機能ON
SPARQL検索:推論(2)
推論OFF 推論ON
エクスポート
• リポジトリを好みの形式でエクスポート可能
RDF利用プログラミング
RDF操作ライブラリ
• Java
• Apache Jena:https://jena.apache.org/
• RDF4J:https://rdf4j.org/
• Python
• RDFLib: https://github.com/RDFLib/rdflib
• Owlready2:https://owlready2.readthedocs.io/en/latest/
• PHP
• EASYRDF: https://www.easyrdf.org/
• JS
• RDFJS: https://rdf.js.org/
• Ruby
• Ruby RDF: https://github.com/ruby-rdf
• C
• Redland: http://librdf.org/
• Rust
• Sophia:https://github.com/pchampin/sophia_rs 27
Pythonライブラリ「RDFlib」の利用
• 今回はPythonライブラリ「RDFlib」でRDFの利用方法を紹介
• Javaライブラリ「Jena」の利用方法は下記をご参照ください
• 「Javaのプログラムを作成してLODを効率的に処理してみよう
https://github.com/KnowledgeGraphJapan/LODws2nd/blob/ma
ster/ApacheJena%E3%83%8F%E3%83%B3%E3%82%BA%E3%
82%AA%E3%83%B3.pdf
• 事前準備
• どちらかを選択
• Googleアカウントを用意しGoogle Colaboratoryを使用
• Jupyter Notebookのインストールと実行環境の用意
• 資料
• https://tinyurl.com/5xf8v6mv
Google Colaboratoryを利用
• 個人のドライブにコピーしてください ここから実演します
今回説明しなかった関連技術
時間の都合上説明できなかったので、より詳しく知りたい方は
下記の資料をご覧ください
30
• RDFの細かな部分
• RDF⼊⾨:http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/rdf-primer.html
• RDF 1.1⼊⾨:http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rdf/NOTE-rdf11-primer-
20140225.html
• RDFスキーマ
• RDFスキーマ -- リソース表現の語彙定義:https://kanzaki.com/docs/sw/rdf-schema.html
• オントロジー
• オントロジーとは?:https://www.slideshare.net/KoujiKozaki/ss-124638776
• OWL
• ウェブ・オントロジー⾔語OWL:https://kanzaki.com/docs/sw/webont-owl.html
• 記述論理
• セマンティックWebと記述論理:http://www.sw.cei.uec.ac.jp/kaneiwa/SemWeb.pdf
• その他の推論
• Reasoning: http://graphdb.ontotext.com/documentation/standard/reasoning.html
• SHACL
• https://www.w3.org/TR/shacl/

More Related Content

What's hot

What's hot (20)

オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
オントロジー工学に基づくセマンティック技術(2)ナレッジグラフ入門
 
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live![part 1]ナレッジグラフ推論チャレンジ・Tech Live!
[part 1]ナレッジグラフ推論チャレンジ・Tech Live!
 
セマンティックWebとオントロジー:現状と将来展望
セマンティックWebとオントロジー:現状と将来展望 セマンティックWebとオントロジー:現状と将来展望
セマンティックWebとオントロジー:現状と将来展望
 
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-Linked Dataの基本原則-LODを公開するときに知っておきたい基本技術-
Linked Dataの基本原則 -LODを公開するときに知っておきたい基本技術-
 
オントロジー工学に基づく 知識の体系化と利用
オントロジー工学に基づく知識の体系化と利用オントロジー工学に基づく知識の体系化と利用
オントロジー工学に基づく 知識の体系化と利用
 
オントロジーとは?
オントロジーとは?オントロジーとは?
オントロジーとは?
 
オントロジー工学に基づくセマンティック技術(1)オントロジー工学入門
オントロジー工学に基づくセマンティック技術(1)オントロジー工学入門オントロジー工学に基づくセマンティック技術(1)オントロジー工学入門
オントロジー工学に基づくセマンティック技術(1)オントロジー工学入門
 
LOD連続講義 第5回「LODの作り方・使い方」
LOD連続講義 第5回「LODの作り方・使い方」LOD連続講義 第5回「LODの作り方・使い方」
LOD連続講義 第5回「LODの作り方・使い方」
 
第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介第3回ナレッジグラフ推論チャレンジ2020の紹介
第3回ナレッジグラフ推論チャレンジ2020の紹介
 
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)
 
RDF Refineの使い方
RDF Refineの使い方RDF Refineの使い方
RDF Refineの使い方
 
Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術Linked Open Data(LOD)の基本理念と基盤となる技術
Linked Open Data(LOD)の基本理念と基盤となる技術
 
DBpedia Japaneseとは?
DBpedia Japaneseとは?DBpedia Japaneseとは?
DBpedia Japaneseとは?
 
オントロジー研究20年の歩みと今後の展望
オントロジー研究20年の歩みと今後の展望オントロジー研究20年の歩みと今後の展望
オントロジー研究20年の歩みと今後の展望
 
Linked Open Data(LOD)を使うと“うれしい”3つの理由
Linked Open Data(LOD)を使うと“うれしい”3つの理由Linked Open Data(LOD)を使うと“うれしい”3つの理由
Linked Open Data(LOD)を使うと“うれしい”3つの理由
 
SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!SPARQLでオープンデータ活用!
SPARQLでオープンデータ活用!
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
RDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについてRDF/OWLの概要及びOSS実装、及び活用イメージについて
RDF/OWLの概要及びOSS実装、及び活用イメージについて
 
第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo
 
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
ナレッジグラフ推論チャレンジ:応募に向けた「技術勉強会」資料
 

Similar to ナレッジグラフ/LOD利用技術の入門(後編)

セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
mettoboshi
 
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
YoheiOkuyama
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec plactice
k-motoyan
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec plactice
k-motoyan
 

Similar to ナレッジグラフ/LOD利用技術の入門(後編) (20)

セマンテックウェブとRDFDB
セマンテックウェブとRDFDBセマンテックウェブとRDFDB
セマンテックウェブとRDFDB
 
Shibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R についてShibuya.lisp #28: 仮題: R について
Shibuya.lisp #28: 仮題: R について
 
セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5セマンティック・ウェブのためのRdf owl入門解説.ch5
セマンティック・ウェブのためのRdf owl入門解説.ch5
 
Semantic chap6
Semantic chap6Semantic chap6
Semantic chap6
 
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
セマンティック・ウェブのためのRDF/OWL入門 読書会 -3章-
 
つながるデータShare
つながるデータShareつながるデータShare
つながるデータShare
 
Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)Rawlerフレームワーク(全体)
Rawlerフレームワーク(全体)
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
今さら聞けないHadoop勉強会第2回 セントラルソフト株式会社(20120228)
 
Swim_2013_02_19_jpn
Swim_2013_02_19_jpnSwim_2013_02_19_jpn
Swim_2013_02_19_jpn
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec plactice
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec plactice
 
LOD技術の概要と LinkData.orgを用いたLOD公開
LOD技術の概要とLinkData.orgを用いたLOD公開LOD技術の概要とLinkData.orgを用いたLOD公開
LOD技術の概要と LinkData.orgを用いたLOD公開
 
Neoの世界へ
Neoの世界へNeoの世界へ
Neoの世界へ
 
Ruby Extended Library
Ruby Extended LibraryRuby Extended Library
Ruby Extended Library
 
はてなブックマーク in Scala
はてなブックマーク in Scalaはてなブックマーク in Scala
はてなブックマーク in Scala
 
IFLA LRMの既存モデルとの相違点
IFLA LRMの既存モデルとの相違点IFLA LRMの既存モデルとの相違点
IFLA LRMの既存モデルとの相違点
 
Neural Models for Information Retrieval
Neural Models for Information RetrievalNeural Models for Information Retrieval
Neural Models for Information Retrieval
 
RDF をプロパティグラフに 変換するマッピング言語 G2GML
RDF をプロパティグラフに 変換するマッピング言語 G2GMLRDF をプロパティグラフに 変換するマッピング言語 G2GML
RDF をプロパティグラフに 変換するマッピング言語 G2GML
 
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
RubyKaigi2011講演資料「日本の図書館はどのようにRubyを使っているか」
 

More from KnowledgeGraph

【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
KnowledgeGraph
 

More from KnowledgeGraph (14)

【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
 
Contextualized Scene Knowledge Graphs for XAI Benchmarking
Contextualized Scene Knowledge Graphs for XAI BenchmarkingContextualized Scene Knowledge Graphs for XAI Benchmarking
Contextualized Scene Knowledge Graphs for XAI Benchmarking
 
Knowledge Graph Reasoning Techniques through Studies on Mystery Stories - Rep...
Knowledge Graph Reasoning Techniques through Studies on Mystery Stories - Rep...Knowledge Graph Reasoning Techniques through Studies on Mystery Stories - Rep...
Knowledge Graph Reasoning Techniques through Studies on Mystery Stories - Rep...
 
Report on the First Knowledge Graph Reasoning Challenge 2018 -Toward the eXp...
Report on the First Knowledge Graph Reasoning Challenge  2018 -Toward the eXp...Report on the First Knowledge Graph Reasoning Challenge  2018 -Toward the eXp...
Report on the First Knowledge Graph Reasoning Challenge 2018 -Toward the eXp...
 
第2回ナレッジグラフ推論チャレンジ2019の紹介(11/22, SWO研究会)
第2回ナレッジグラフ推論チャレンジ2019の紹介(11/22, SWO研究会)第2回ナレッジグラフ推論チャレンジ2019の紹介(11/22, SWO研究会)
第2回ナレッジグラフ推論チャレンジ2019の紹介(11/22, SWO研究会)
 
第2回ナレッジグラフ推論チャレンジ2019:ツール部門の紹介
第2回ナレッジグラフ推論チャレンジ2019:ツール部門の紹介第2回ナレッジグラフ推論チャレンジ2019:ツール部門の紹介
第2回ナレッジグラフ推論チャレンジ2019:ツール部門の紹介
 
第2回ナレッジグラフ推論チャレンジ2019応募に向けて
第2回ナレッジグラフ推論チャレンジ2019応募に向けて第2回ナレッジグラフ推論チャレンジ2019応募に向けて
第2回ナレッジグラフ推論チャレンジ2019応募に向けて
 
第1回ナレッジグラフ推論チャレンジ2018の振り返り
第1回ナレッジグラフ推論チャレンジ2018の振り返り第1回ナレッジグラフ推論チャレンジ2018の振り返り
第1回ナレッジグラフ推論チャレンジ2018の振り返り
 
第1回ナレッジグラフ推論チャレンジ2018開催報告~ 第2回チャレンジ開催案内~
第1回ナレッジグラフ推論チャレンジ2018開催報告~ 第2回チャレンジ開催案内~第1回ナレッジグラフ推論チャレンジ2018開催報告~ 第2回チャレンジ開催案内~
第1回ナレッジグラフ推論チャレンジ2018開催報告~ 第2回チャレンジ開催案内~
 
第1回推論チャレンジの振り返り&第2回の開催概要
第1回推論チャレンジの振り返り&第2回の開催概要第1回推論チャレンジの振り返り&第2回の開催概要
第1回推論チャレンジの振り返り&第2回の開催概要
 
ナレッジグラフ推論チャレンジ2018ミートアップ@東京(2018/12/26)
ナレッジグラフ推論チャレンジ2018ミートアップ@東京(2018/12/26)ナレッジグラフ推論チャレンジ2018ミートアップ@東京(2018/12/26)
ナレッジグラフ推論チャレンジ2018ミートアップ@東京(2018/12/26)
 
ナレッジグラフ推論チャレンジ技術勉強会(2018/10/18)
ナレッジグラフ推論チャレンジ技術勉強会(2018/10/18)ナレッジグラフ推論チャレンジ技術勉強会(2018/10/18)
ナレッジグラフ推論チャレンジ技術勉強会(2018/10/18)
 
【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例
【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例
【ナレッジグラフ推論チャレンジ】SPARQLと可視化ツールを用いた推論検討例
 
ナレッジグラフ推論チャレンジの紹介
ナレッジグラフ推論チャレンジの紹介ナレッジグラフ推論チャレンジの紹介
ナレッジグラフ推論チャレンジの紹介
 

ナレッジグラフ/LOD利用技術の入門(後編)