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
300
ナレッジグラフ推論チャレンジ2023〜生成AI時代のナレッジグラフ構築技術〜の紹介
ease112
0
950
ナレッジグラフを探索する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
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
240
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.7k
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
170
AIチャットの改善から見えた、良いAI体験とは / What Constitutes a Good AI Experience: Insights from Improving AI Chat
kubode
0
110
AIのReact習熟度を測る
uhyo
2
670
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
180
GitHub Copilot app最速の発信の裏側
tomokusaba
1
230
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
550
入門!AWS Blocks
ysuzuki
1
170
脱SaaS!FDEを支えるプロビジョニングと分離設計
knih
0
260
インシデントレスポンス演習 I / Incident Response Exercise I
ks91
PRO
0
110
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Embracing the Ebb and Flow
colly
88
5.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
870
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
The Invisible Side of Design
smashingmag
301
52k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
320
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
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 .」が当然導ける=【推論可能】 親族もプロパティとして予め定義していると想定 (図は省略)