Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ナレッジグラフの基礎
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
S. Egami
December 21, 2022
Technology
14k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ナレッジグラフの基礎
ナレッジグラフ推論チャレンジ【実社会版】技術勉強会
で発表した資料
S. Egami
December 21, 2022
More Decks by S. Egami
See All by S. Egami
大規模言語モデルを用いたSPARQLクエリ生成の予備的実験
ease112
2
300
ナレッジグラフ推論チャレンジ2023〜生成AI時代のナレッジグラフ構築技術〜の紹介
ease112
0
970
ナレッジグラフを探索するSPARQL
ease112
2
12k
【LODチャレンジ2022最優秀賞】Patient Locational Ontology-based Data (PLOD)
ease112
0
180
【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
ease112
0
230
Other Decks in Technology
See All in Technology
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
110
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
1k
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
240
穢れた技術選定について
watany
17
5.2k
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
150
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.3k
ポストモーテム! DDoSからサイトは守れた。 でもビジネスは守れなかった。
bengo4com
1
3.2k
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
280
Amazon EVS で VCF 9.0 / 9.1 のサポート開始まとめ
mtoyoda
0
300
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
2
750
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
200
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
170
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
230
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Believing is Seeing
oripsolob
1
170
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
The Spectacular Lies of Maps
axbom
PRO
1
860
Transcript
江上周作 産業技術総合研究所 ⼈⼯知能研究センター データ知識融合研究チーム ナレッジグラフの基礎 技術勉強会 2022/11/15 オンライン
ナレッジグラフ(知識グラフ)とは • 実世界の知識を蓄積し,伝達することを⽬的とした「データのグ ラフ」であり,そのノードは関⼼のあるエンティティを表し, エッジはこれらのエンティティの間の様々な関係を表す • その「データのグラフ」は,グラフベースのデータモデルに準拠 し、エッジラベル付き有向グラフ、異種グラフ、プロパティグラ フなどがある •
引⽤︓A. Hogan, et al. Knowledge Graphs, ACM Computing Survey, vol.54, no.4, pp. 1–37, ACM, 2021 • ナレッジグラフは、情報を取得してオントロジーに統合し、推論 器を適⽤して新しい知識を導き出す • 引⽤︓Ehrlinger et al. Towards a Definition of Knowledge Graphs, SEMANTiCS (Posters, Demos, SuCCESS), vol.48, pp.1–4, CEUR, 2016
ナレッジグラフの記述⽅法 Webでナレッジグラフを共有するための標準形式
RDF(Resource Description Framework)とは すべての情報を ・主語(リソース) ・述語(プロパティ) ・⽬的語(リソースorリテラル) の三組み(トリプルという)で記述する⽅法を提供 4
結局RDFはなにか その実体は、ラベル付き有向グラフ (※) 5 主語︓Aさ ん ⽬的語︓⽝ 述語︓好き このようにグラフ形式で図⽰したものをRDFグラフと呼ぶ 情報
「Aさんは⽝が好き」 (※)厳密にはRDFは枠組みなので、RDFの枠組みに従ったデータがラベル付き有向グラフ
URIで識別可能な全ての事物 ・⼈物,書籍,イベントなどの実世界の物事 ・趣味,嗜好,信頼性などの事柄など… 6 リソースとは
リソースとは つまり、事物に⼀意なURIを割り当ててしまえば、 RDFでそれはリソースとして認識される 7 Aさん 「Aさん」という事物に 「http://example.com/terms/Aさん」 というURIを与えよう http://example.c om/terms/Aさん
これがリソース ※本当はブラウザでアクセスできることが望ましいが とりあえず今は重複がなければこれでよい(後で紹介)
プロパティとは プロパティにも⼀意なURIを割り当てる 8 主語︓Aさん ⽬的語︓⽝ 述語︓好き これ http://example.com/terms/好き
リテラルとは ⽂字列や数値のこと. プロパティを持たない. URIを割り当てない. 9 主語︓Aさん 述語︓年齢 20
↑これを XML, Turtle, JSON-LD等で書くことができる。 記述⽅法が異なるが、結局RDFグラフとして図⽰する と全部同じになることが特徴︕(= 情報の統⼀化) 10 主語︓Aさん ⽬的語︓⽝
述語︓好き (相互変換ツールも充実している) データフォーマット
RDFのシリアライゼーションフォーマット • RDFはリソースをURIで識別し,主語・述語・⽬的語のトリプ ル形式で関係を記述するデータモデルである • リソースを説明するメタデータが付与される ラベル付き有向グラフの形でリソースを表現できることはわかった が、具体的にコンピュータでどのような形式で処理をするの︖ nN-triples, Turtle,
RDF/XML, RDF/JSON, RDFa, JSON-LD など様々なシリアライゼーション(変換)フォーマットが存在 11 相互に変換可能 https://www.easyrdf.org/converter
N-Triples • <URI>をスペースで分けて並べる最も原始的な記法。 • トリプルはピリオドで区切る。 • 拡張⼦は.ntとすることが多い • CSVからの変換が楽 <http://ja.dbpedia.org/resource/電気通信⼤学>
<http://www.w3.org/2000/01/rdf-schema#la bel> “電気通信⼤学” . <http://ja.dbpedia.org/resource/電気通信⼤学> <http://dbpedia.org/ontology/country> <htt p://ja.dbpedia.org/resource/⽇本> . 12
RDF/XML <?xml version="1.0" encoding="utf-8" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > <rdf:Description rdf:about=“http://example.com/terms/Aさん">
<http://example.com/terms/好き> <rdf:Description rdf:about=“http://example.com/terms/⽝" /> </http://example.com/terms/好き> </rdf:Description> </rdf:RDF> 【名前空間】 以降で⻘⽂字部分を「rdf:」 に省略できる(カプセル化) 緑⽂字はリソースを記 述する決まり⽂句 名前空間定義してないからURIを フルスペルで書いてる XMLタグの⼊れ⼦構造でRDFグラフを記述している︕ ファイルの拡張⼦は「.rdf」とするのが慣習。 XMLエディタで開きたい場合は「.xml」
Terse RDF Triple Language (Turtle) 14 XML形式は幅広いシステムで利⽤可能だけど⻑い︕ @prefix ex: <http://example.com/terms/>
. <http://example.com/terms/Aさん> ex:好き ex:⽝ , ex:猫 ; ex:誕生日 “2012-01-01T00:00:00”^^xsd:dateTime . 【名前空間】 以降で⻘⽂字部分を「ex:」 に省略できるよ ピリオド忘れずに︕ 省略しない場合は< >で URIをくくる ファイルの拡張⼦は「.ttl」とするのが慣習。 対応しているシステムが限られるが記述が楽︕ 同じプロパティの値が複数 ある場合はカンマで列挙可 リテラル値のデータ型
その他のシリアライゼーション︓JSON-LD { "@context": { "dbo": "http://dbpedia.org/ontology/", "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdfs": "http://www.w3.org/2000/01/rdf-schema#"
}, “@id”: “http://ja.dbpedia.org/resource/電気通信⼤学", "dbo:country": { "@id": "http://ja.dbpedia.org/resource/⽇本" }, “rdfs:label”: “電気通信⼤学" } 15 • JSONでのデータ交換や、HTMLのscriptタグへの埋め込みに利⽤されている • 拡張⼦は.jsonや.jsonld
トリプルの連鎖の例 uni:H6053 uni:⼤学 uni:電気通信⼤学 uni:名 前 電気通信⼤学 uni:科⽬名 システム設計 学特論1
uni:本 部所在 地 東京都調布市調 布ケ丘1-5-1 @prefix uni: <http://www.mydomain.org/uni-ns/> . uni:H6053 uni:科⽬名 “システム設計学特論1" ; uni:⼤学 uni:電気通信⼤学 . uni:電気通信⼤学 uni:名前 "電気通信⼤学" ; uni:本部所在地 "東京都調布市調布ケ丘1-5-1" . 16 ◯はリソース □はリテラル
W3C RDF Validation Service • RDF/XML⽂書またはRDF/XML⽂書が置かれたURLを⼊⼒すると, ⽂書の妥当性の確認やトリプルの視覚化を⾏ってくれるサービス • URL: http://www.w3.org/RDF/Validator/
• ⽇本語を含むトリプルを視覚化したい場合には,「Graph format」を「SVG-embedded」または「SVG-link」とする • SVG(Scalable Vector Graphics)は,XMLをベースとした2次元ベクターイ メージ⽤の画像形式の⼀つ • より⾒やすい⽇本語サイト • https://www.kanzaki.com/works/2009/pub/graph-draw 17
クラスとインスタンス 18 ex:江上周作 ex:⼈間 rdf:type 「江上周作」は実在する。 ⼈間を具体化させたものの⼀例。 ⼈間クラスのインスタンスという。 「⼈間」さんは実在しない。 概念,カテゴリ,グループのニュアンス。
こういうのをクラスという
クラスとインスタンス 19 rdfs:Class ex:⼈間 rdf:type 「ex:⼈間」を普通のリソースではなくクラスとして定 義する︕ 「rdfs」は「http://www.w3.org/2000/01/rdf-schema#」 RDFSはクラスを定義するための⽤語をRDFで提供している。 ↑アクセスしてみるとRDFSのTurtleが⾒れる
書きたい情報「ex:⼈間はクラスである」 クラスの指定には「rdf:type」を使う決まり
インスタンスの定義⽅法 • クラスのインスタンスを定義するためには,rdf:typeプロパティを ⽤いる • リソースがクラスであることを定義するためにも,rdf:typeプロパティを⽤ いた • クラスのインスタンスの集合のことをクラスの外延と呼ぶ •
例︓ex:太郎(インスタンス)はex:Person(クラス)である ex:太郎 rdf:type ex:Person . ex:太郎 ex:Person rdf:type
クラスの階層関係 21 ex:哺乳類 ex:⼈間 rdfs:subClassOf 「ex:⼈間」を「ex:哺乳類」のサブクラスとして 定義する 書きたい情報「ex:⼈間はex:哺乳類のサブクラスである」 階層関係を意味するプロパティとして rdfs:subClassOfが⼀般的に使⽤される。
哺乳類もクラスとして予め定義していると想定 (図は省略)
クラスの階層関係 22 ex:哺乳類 ex:⼈間 rdfs:subClassOf 「ex:⼈間」を「ex:哺乳類」のサブクラスとして 定義する 書きたい情報「ex:⼈間はex:哺乳類のサブクラスである」 哺乳類もクラスとして予め定義していると想定 (図は省略)
この定義をした上で 「ex:Aさん rdf:type ex:⼈間 .」と書くと, 「ex:Aさん rdf:type ex:哺乳類 .」を 記述しなくても当然導ける=【推論可能】
プロパティ 23 rdf:Property ex:兄弟 rdf:type 「ex:兄弟」をプロパティとして定義する 書きたい情報「ex:兄弟はプロパティである」
プロパティの階層関係 24 ex:親族 ex:兄弟 「ex:兄弟」を「ex:親族」のサブプロパティ として定義する︕ 書きたい情報「ex:兄弟はex:親族のサブプロパティである」 rdfs:subPropertyOf 兄弟プロパティを使って「A ex:兄弟
B .」と書くと, 「A ex:親族 B .」が当然導ける=【推論可能】 親族もプロパティとして予め定義していると想定 (図は省略)