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
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
310
ナレッジグラフ推論チャレンジ2023〜生成AI時代のナレッジグラフ構築技術〜の紹介
ease112
0
980
ナレッジグラフを探索するSPARQL
ease112
2
12k
【LODチャレンジ2022最優秀賞】Patient Locational Ontology-based Data (PLOD)
ease112
0
190
【LODC2022データ作成部門優秀賞】VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―
ease112
0
240
Other Decks in Technology
See All in Technology
The Django UUID Story - DjangoCon US 2026
pauloxnet
0
300
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
360
EUDIWの枠組みを出発点に民間エコシステムの在り方を考える(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
330
LLMアプリ、 雰囲気で運用してませんか? 〜LLMOpsの現在地〜
taka_aki
1
530
エージェント化するAI:現在地とその先に起きる変化 / AI as Agents: The Current State and the Changes Ahead
ks91
PRO
0
150
暗号化?某ファイルストレージはどうなるの!? 3rd Partyとうまく付き合う秘密度ラベル設計
kasada
0
210
NANDでも描画したい!
nichica906
3
810
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
tamachi.goを支える技術
rymiyamoto
0
110
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
120
When Token Pruning is Worse than Random: Understanding Visual Token Information in VLLMs
sansantech
PRO
0
130
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
380
What's in a price? How to price your products and services
michaelherold
247
13k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
500
Unsuck your backbone
ammeep
672
58k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
670
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
510
Writing Fast Ruby
sferik
630
63k
Odyssey Design
rkendrick25
PRO
2
780
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 .」が当然導ける=【推論可能】 親族もプロパティとして予め定義していると想定 (図は省略)