CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
ナレッジグラフ推論チャレンジ2021「技術勉強会」
ナレッジグラフ/LOD利用技術の入門
2021/8/30 1
2021/8/30(月)
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
イベント概要
13:00-13:30 環境設定について質問受付(希望者)
13:30-13:40 ナレッジグラフ推論チャレンジの紹介
13:40-15:00 ナレッジグラフ/LOD利用技術の入門
・ナレッジグラフ(RDF)の基礎
・ナレッジグラフ(RDF)用クエリ言語SPARQLの基礎
・RDFデータベース「GraphDB」の導入方法
・Pythonライブラリ「RDFLib」によるRDF利用プログラミング
15:00-15:20 休憩/環境設定について質問受付(希望者)
15:20-18:00 推論チャレンジ応募に向けた開発事例の実演
・利用可能なデータ,追加する背景知識の紹介
・チャレンジのタスクの推論処理の事例紹介
2
2021/8/30
講演概要
◼ ねらい
◼ ナレッジグラフの公開に用いられるRDFデータ
◼ RDF用の検索言語SPARQLの基本的な使い方
の基礎的な技術を紹介する.
◼ 内容
◼ RDFの基礎
◼ SPARQL検索の基本~Wikidataを例として~
◼ SPARQLを用いた推論チャレンジのナレッジグラフ
の検索例
2021/8/30 3
RDFの基礎
2021/8/30 4
◼ RDFとは?
◼ RDFの例(Wikidata)
RDF(Resource Description
Framework)とは?
◼ RDFとは
◼ Web上でメタデータを記述するためのデータモデル.
◼ データの「意味」を記述することが想定されている.
◼ 近年は,ナレッジグラフ(知識グラフ)を記述するデー
タモデルとして広く利用されている
◼ RDFの基本構造
◼ すべてのモノやコトをURIで表す.
◼ データの構造(つながり)を
「主語(Subject)-述語(Predicate)-目的語(Object)」
からなるトリプル(3つ組み)で表す.
2021/8/30 5
大阪電気
通信大学
寝屋川市
所在地
主語 述語 目的語
WikidataにおけるRDFデータの例
大学
大阪電気
通信大学
分類
1941年
設立日
寝屋川市
日本
位置する行政区
国
日本
国
位置する行政区
リソース:
URIで表される事物
プロパティ:
リソース間(もしくはリ
ソースとリテラル間)の
関係を表す
リテラル
:文字列
主語 述語 目的語
トリプル(3つ組み)
①RDFは「トリプル
の組み合わせ」
で表される
②目的語が他のリソース
のとき,トリプルを辿って
更なる情報が得られる
大阪府
2021/8/30 6
WikidataにおけるRDFの例
2021/8/30 7
※実際のデータは,URIで表されている
ウィキデータ(wikidata)とは?
• ウィキメディア財団が運営する
誰でも編集可能なフリーな知識ベース
• Wikipediaのデータ版
http://wikidata.org/
2021/8/30 8
WikipediaからWikidataへ
2021/8/30 9
Wikipediaの各記事から
対応する
Wikidata項目へのリンク
Wikidataのデータ例(1/2)
2021/8/30 10
Wikidataにおいて
「大阪電気通信大学(Q7105556)」にアクセスした例
https://www.wikidata.org/wiki/Q7105556
さまざまな言語での
「ラベル」,「概要説明」,「別名」
Wikidataのデータ例(2/2)
2021/8/30 11
述
語
(
プ
ロ
パ
テ
ィ
)
目
的
語
(
オ
ブ
ジ
ェ
ク
ト
)
他のリソース
へのリンク
ウィキデータの検索サービス
:SPARQLエンドポイント
ここに,クエリを入れる
・ブラウザからのアクセス
https://query.wikidata.org/
・プログラムからのアクセス
https://query.wikidata.org/sparql
クエリ結果の表示
2021/8/30 12
(参考)WikidataのSPARQL検索ページ
での実行用「短縮URL」の取得方法
2021/8/30 13
①このアイコンをクリックする
と短縮URLが表示される
②表示された短縮URLをマウス
で選択して,コピーする
Wikidataを例とした
SPARQLクエリの例
2021/8/30 14
WikidataのSPARQLエンドポイント(検索用API)
https://query.wikidata.org/
を使ったSPARQLクエリ例
• 検索例は下記から実行可能
https://github.com/KnowledgeGraphJapan/KGRC-ws-
2021/blob/main/Section2/SPARQL-sample.md
紹介する検索例
• 検索例1:<主語>-<述語>を指定して<目的語>を取得する
• 検索例2:<述語>-<目的語>を指定して<主語>を取得する
• 検索例3:より複雑な検索例
SPARQLによるRDFの検索
◼ SPARQL
◼ RDFデータに対するクエリ言語
◼ 「指定したグラフ構造」に一致するトリプルを検索する
◼ 最も基本的な検索
select ?s ?p ?o
where {
?s ?p ?o .
}
LIMIT 100
↑取得する数の制限
←検索するグラフのパターン
←返す要素
このパターンを変
えることで,欲しい
データを取得する
2021/8/30
「.」(ピリオド)
を忘れない
?x(x:任意の文字列)は変数を表す
15
2021/8/30 16
主語と述語を指定して「目的語」を取得
“<主語>の<述語>は何?”
大阪電気
通信大学 ?o
位置する行政区
検索するグラフパターン
<大阪電気通信大学> <位置する行政区> ?o
主語 述語 目的語
SPARQLでの記述
主語 述語 目的語
検索例1:<主語>-<述語>を指定して
<目的語>を取得する
検索例1:<主語>-<述語>を指定して
<目的語>を取得する
◼ 例1-1)「大阪電気通信大学(Q7105556)」(主語)
の「位置する行政区(P131)」(述語)となる
目的語(?o)を取得する
select ?o
where{
<http://www.wikidata.org/entity/Q7105556>
<http://www.wikidata.org/prop/direct/P131> ?o .
}
大阪電気通信大学(主語)
位置する行政区
(述語)
目的語
(変数)
クエリを実行
2021/8/30 17
検索例1:<主語>-<述語>を指定して
<目的語>を取得する
◼ 例1-2)「大阪電気通信大学(Q7105556)」(主語)
の「設立(P571)」(述語)となる目的語(?o)を取得
select ?o
where{
<http://www.wikidata.org/entity/Q7105556>
<http://www.wikidata.org/prop/direct/P571> ?o .
}
大阪電気通信大学(主語)
設立
(述語)
目的語
(変数)
クエリを実行 ※述語を変えるといろんな
目的語が取得できる
2021/8/30 18
検索例1:<主語>-<述語>を指定して
<目的語>を取得する
◼ 例1-1+)「大阪電気通信大学(Q7105556)」(主語)の
「位置する行政区(P131)」(述語)となる目的語(?o)を取
得する.【名称(ラベル)も合わせて取得】
select ?o ?label
where{
<http://www.wikidata.org/entity/Q7105556>
<http://www.wikidata.org/prop/direct/P131> ?o .
?o <http://www.w3.org/2000/01/rdf-schema#label> ?label .
FILTER(lang(?label)="ja") # 名称の言語を日本語(ja)に限定
}
名称を表す述語
クエリを実行
※検索結果がデータのIDとなる場合,下記の記述を追加するこ
とで「名称(ラベル)」をあわせて取得可能
取得した名称を
入れる変数
2021/8/30 19
検索例1:<主語>-<述語>を指定して
<目的語>を取得する
select ?o ?label ?o2
where{
<http://www.wikidata.org/entity/Q7105556>
<http://www.wikidata.org/prop/direct/P131> ?o .
<http://www.wikidata.org/entity/Q7105556>
<http://www.wikidata.org/prop/direct/P571> ?o2 .
?o <http://www.w3.org/2000/01/rdf-schema#label> ?label .
FILTER(lang(?label)="ja") # 名称の言語を日本語(ja)に限定
}
クエリを実行
位置する行政区
設立
◼ 例1-3) 「大阪電気通信大学」(主語)の「位置する行政
区」(述語)となる目的語(?o),および「設立」(述語)と
なる目的語(?o2)を同時に取得
◼ 複数行ならべると,まとめて目的語を取得できる.
(変数名は変える )
2021/8/30 20
2021/8/30 21
検索例2:<述語>-<目的語>を指定して
<主語>を取得する
述語と目的語を指定して「主語」を取得
“<述語>が<目的語>となる<主語>は?”
?s 寝屋川市
位置する行政区
検索するグラフパターン
?s <位置する行政区> <寝屋川市>
主語 述語 目的語
SPARQLでの記述
検索例2:<述語>-<目的語>を指定して
<主語>を取得する
◼ 例2-1) 「位置する行政区(P131)」(述語)が
「寝屋川市(Q389633)」(目的語)となる
「主語(?s)」の一覧を取得する
◼ 「主語」の取得は検索結果が多数となる場合が多い
select ?s
where{
?s <http://www.wikidata.org/prop/direct/P131>
<http://www.wikidata.org/entity/Q389633> .
}
LIMIT 100 寝屋川市(目的語)
位置する行政区(述語)
結果が多いので,件数の制限をかける
主語(変数)
クエリを実行
2021/8/30 22
検索例2:<述語>-<目的語>を指定して
<主語>を取得する
◼ 例2-1+ )「位置する行政区(P131)」(述語)が
「寝屋川市(Q389633)」(目的語)となる
「主語(?s)」の一覧を取得する【名称あり】
select ?s ?label
where{
?s <http://www.wikidata.org/prop/direct/P131>
<http://www.wikidata.org/entity/Q389633> .
?s <http://www.w3.org/2000/01/rdf-schema#label> ?label .
FILTER(lang(?label)="ja")
} LIMIT 100
寝屋川市
(目的語)
位置する行政区
(述語)
主語(変数)
クエリを実行
2021/8/30 23
検索例2:<述語>-<目的語>を指定して
<主語>を取得する
◼ 例2-2 「分類(instance-of)(P31)」(述語)が
「大学 (Q389633)」(目的語)となる
「主語(?s)」+名称の一覧を取得する
select ?s ?label
where{
?s <http://www.wikidata.org/prop/direct/P31>
<http://www.wikidata.org/entity/Q3918> .
?s <http://www.w3.org/2000/01/rdf-schema#label> ?label .
FILTER(lang(?label)="ja")
} LIMIT 100
大学
(目的語)
分類(instance-of)
(述語)
主語(変数)
注)他のLODでは,instance-ofではなく,
rdf:typeが用いられることが多い.
→同じ種類のデータ一覧が取得できる
クエリを実行
2021/8/30 24
検索例2:<述語>-<目的語>を指定して
<主語>を取得する
◼ 例2-2+) 「分類(instance-of)(P31)」(述語)が
「大学 (Q389633)」(目的語)となる
「主語(?s)」+名称(※あれば…)の一覧を取得
select ?s ?label
where{
?s <http://www.wikidata.org/prop/direct/P31>
<http://www.wikidata.org/entity/Q3918> .
OPTIONAL{
?s <http://www.w3.org/2000/01/rdf-schema#label> ?label .
FILTER(lang(?label)="ja")
}
} LIMIT 100 全てのデータが「日本語の名称」を持つと
は限らないので,「名称の取得」を
必須でない(OPTINAL)とした例.
クエリを実行
2021/8/30 25
より複雑な検索例
例3) 集約(グループ化)とカウントを利用したランキング
◼ 分類(P31)が大学(Q3918)となる主語(?s)と,その主語(?s)の国(P17)
の目的語(?country)を取得する.
◼ さらに,取得した結果を目的語(?country)が同一のもので集約(グルー
プ化)し,
◼ それぞれのグループに含まれる主語(?s)の数をカウントする.
◼ その結果「国ごとの大学の数のランキング」を取得できる.
2021/8/30 26
select ?country ?label (count(?s) AS ?c)
where{
?s <http://www.wikidata.org/prop/direct/P31>
<http://www.wikidata.org/entity/Q3918> .
?s <http://www.wikidata.org/prop/direct/P17> ?country .
OPTIONAL{
?country <http://www.w3.org/2000/01/rdf-schema#label> ?label .
FILTER(lang(?label)=“ja”)
}
} GROUP BY ?country ?label
ORDER BY DESC(?c)
?country とその名称?label
で集約(グループ化)
集約した,グループ
ごとに主語(?s)の
数をカウント
結果を降順に並び変え クエリを実行
参考:PREFIXによる省略表現
◼ PREFIX(接頭語)を用いるとURIの省略表記ができる
2021/8/30
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
select ?o
where {
wd:Q7105556 wdt:P131 ?o .
}LIMIT 100
select ?o
where {
<http://www.wikidata.org/entity/Q7105556>
<http://www.wikidata.org/prop/direct/P131> ?o .
}LIMIT 100
PREFIXの定義
省略表現に用いる文字列は
任意に設定できるが,でき
るだけ慣習的に利用される
ものにあわせるとよい.
PREFIXによる省略表現
27
参考:よく用いられるPREFIX
◼ RDF一般のもの
◼ rdfs: <http://www.w3.org/2000/01/rdf-schema#>
RDFスキーマ(基本的な語彙定義)
◼ schema: <http://schema.org/>
Webのメタデータに記述される語彙
◼ skos: <http://www.w3.org/2004/02/skos/core#>
Web上でのシソーラス,用語集などに用いられる語彙
◼ Wikidataで使われるもの
◼ wd: <http://www.wikidata.org/entity/>
エンティティ(もの,コト,データ)
◼ wdt: <http://www.wikidata.org/prop/direct/>
プロパティ(述語/関係)※主にSPARQL検索用の直接関係
◼ PREFIXの検索サービス
◼ https://prefix.cc/
2021/8/30
WikidataのRDFでは,詳細情報を記述
するため,同じ内容のプロパティが3種類
記述されているが,今回はwdt:を使う.
28
SPARQLを用いた推論チャレンジの
ナレッジグラフの検索例
2021/8/30 29
◼ 推論チャレンジのナレッジグラフ
◼ SPARQLによる検索例
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
ナレッジグラフ化の考え方
ナレッジグラフの要求仕様
➢犯人を推論(推理)するのに必要な知識を提供する
➢「推理小説」で描かれる様々な状況を,できるだけ統一的な
形式で計算機処理(検索・推論・etc.)可能にする
ナレッジグラフ化の基本方針
➢「推理小説」の内容を,最小単位の「場面(シーン)」に分割
→場面ごとにID(IRI)を付与
➢「各場面の記述内容」および「場面間の関係」をグラフ化
→グラフ化に必要なクラス・プロパティを定義
場面1 場面2 場面3
場面4
場面5
・・・
・・・
30
2021/8/30
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
場面(シーン)のスキーマ
場面ID
原文
主語
述語
目的語
subject
hasPredicate
source
その他
他の場面
場面間
場面を表現するプロパティ
➢ subject:その場面の記述において主語となる人や物
➢ hasPredicate:その場面の内容を表す述語
➢ 場面の詳細を表す目的語:whom(だれに), where(どこで), when(いつ),
what(何を), how(どのように), …etc.
➢ 場面間の関係:then,if, because, …etc.
➢ time:その場面が起こった絶対時間(xsd:DateTime)
➢ source:その場面の原文(英語/日本語のリテラル)
主語 目的語
述語
の形でないことに注意
→場面に関わる複数の
情報をまとめるため
場面ID中心に記述
31
2021/8/30
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
原文(英語/日本語)
絶対時間※小説内に基準日
時を設定している
主語・述語・目的語は全て
「リソース」として定義
→他の場面で同じ目的語を
参照可能
述語
主語
他の場面
場面の種類(クラス)分け
Scene:上位クラス
-Situation:事実・状況の描写
-Statement:Aの発言
-Talk:AのBへの発言
-Thought:Aの考え
32
場面(シーン)スキーマ 記述例
※図中のPREFIXは
古いものです
2021/8/30
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
ナレッジグラフの公開
ナレッジグラフの公開場所
➢「推論チャレンジ」のサイト→ナレッジグラフの公開
https://github.com/KnowledgeGraphJapan/KGRC-RDF
➢最新版は,2020/01/19版【ver.2】
公開形式
➢小説ごとのRDFファイル(Tutle形式)のダウンロード
➢SPARQLエンドポイント[ver.2(2021/01/19版)]
(APIとして使う) http://kg.hozo.jp/fuseki/kgrc2020v2/sparql
(ブラウザから) http://knowledge-graph.jp/sparql2020v2.html
➢簡易閲覧ツール http://kgc.knowledge-graph.jp/
➢可視化ツール
http://knowledge-graph.jp/visualization/
2021/8/30 33
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
簡易閲覧ツール
2021/8/30 34
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
推理小説のナレッジグラフ
SWO研究会・勉強会での予備的作業を経て,有志数名でナレッジグラフ化
35
ナレッジグラフ(RDF形式)
クエリー言語SPARQLによる検索
グラフDB(キーワード検索も可)
http://knowledge-graph.jp/visualization/
2021/8/30
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
ナレッジグラフの記述・検索例
以下,提供するナレッジグラフの記述例,および,そ
れを踏まえたSPARQLクエリによる検索例を示す.
クエリのサンプルは,下記に公開している
➢https://github.com/KnowledgeGraphJapan/LOD-ws-
2020/blob/master/kgrc2020ws/SPARQL-Sample-
KGRC2020.md
➢これをコピーして
http://knowledge-graph.jp/sparql2020v2.html
のクエリ欄に入力することで実行できる
2021/8/30 36
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
原文(英語/日本語)
絶対時間※小説内に基準日
時を設定している
主語・述語・目的語は全て
「リソース」として定義
→他の場面で同じ目的語を
参照可能
述語
主語
他の場面
場面の種類(クラス)分け
Scene:上位クラス
-Situation:事実・状況の描写
-Statement:Aの発言
-Talk:AのBへの発言
-Thought:Aの考え
37
場面(シーン)スキーマ 記述例
※図中のPREFIXは
古いものです
2021/8/30
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 38
「まらだのひも」の場面36の全トリプル(述語・目的語)
を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 39
「まらだのひも」の場面36のhasPredicate(その場面の
内容を表す述語)を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 40
「まらだのひも」の場面36のsubject(その場面の主語)
を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 41
「まらだのひも」で用いられているhasPredicate(その場
面の内容を表す述語)の一覧を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
原文(英語/日本語)
絶対時間※小説内に基準日
時を設定している
主語・述語・目的語は全て
「リソース」として定義
→他の場面で同じ目的語を
参照可能
述語
主語
他の場面
場面の種類(クラス)分け
Scene:上位クラス
-Situation:事実・状況の描写
-Statement:Aの発言
-Talk:AのBへの発言
-Thought:Aの考え
42
場面(シーン)スキーマ 記述例
※図中のPREFIXは
古いものです
2021/8/30
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 43
「まらだのひも」のSituation(事実・状況の描写)の
一覧を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 44
「まらだのひも」の全場面の一覧を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 45
「全小説」で述語がmeetの場面の一覧を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
性質・状態(hasProperty)の例
kgc:Propertyタイプ
2021/8/30 46
「性質」を表す
任意のリソースを
導入する
※図中のPREFIXは
古いものです
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
クエリ例:ある場面の情報一覧
2021/8/30 47
「まらだのひも」で用いられているhasProperty(その場
面の内容を表す状態)の一覧を取得する
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
シーン間の関係
シーン間の関係を表す
プロパティ
2021/8/30 48
※図中のPREFIXは
古いものです
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
シーン間の関係の種類
シーン間の関係を表す
プロパティ
2021/8/30 49
※図中のPREFIXは
古いものです
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
場面のつながりの検索
「まらだのひも」で場面間のつながりの一覧を取得する
2021/8/30 50
CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会
各語彙のIRIの決め方
対象とする小説が増えたことで,異なる小説を横断した
処理ができるようにIRIの決め方を統一
各小説ごとに「ベースIRI」および「グラフIRI」
➢<http://kgc.knowledge-graph.jp/data/小説名/>
➢例:「踊る人形」のシーン100は
<http://kgc.knowledge-graph.jp/data/DancingMen/100>
小説をまたいで共通化して参照する語彙のIRI
➢hasPredicateで参照する「述語」,および,
hasProperyで参照する「性質・状態」
→<http://kgc.knowledge-graph.jp/data/predicate/XXX>
➢固有名詞(例:ホームズ,地名)
→<http://kgc.knowledge-graph.jp/data/YYY>
2021/8/30 51
SPARQLの参考資料(1)
◼ SPARQL仕様(W3Cのドキュメント)
◼ SPARQL 1.1 Query Language
https://www.w3.org/TR/sparql11-query/
◼ SPARQLの解説本
◼ オープンデータ時代の標準Web API SPARQL
http://sparqlbook.jp/
◼ SPARQLに関する解説記事
◼ 山本 泰智, 知識グラフ,セマンティックウェブを構成する
RDFと問い合わせ言語SPARQL, 情報の科学と技術,
2020, 70 巻, 8 号, p. 392-398,
https://doi.org/10.18919/jkg.70.8_392
◼ 古崎 晃司, ウェブの情報資源活用のための技術:
ナレッジグラフとしてのLOD活用, 情報の科学と技術,
2020, 70 巻, 6 号, p. 303-308
https://doi.org/10.18919/jkg.70.6_303
◼ Wikidataを例としたSPARQL演習スライド+解説動画(by古崎)
◼ https://github.com/KnowledgeGraphJapan/LOD-ws-
2020/blob/master/SPARQL/SPARQL-Practice-Wikidata.md
2021/8/30
http://sparqlbook.jp/より
52
SPARQLの参考資料(2)
◼ SPARQL入門スライド(by古崎)
◼ DBpedia Japaneseを例にした解説
https://www.slideshare.net/KoujiKozaki/4lod
◼ 大阪市のオープンデータを例にした解説
https://www.slideshare.net/KoujiKozaki/apisparql
◼ 解説記事
◼ DBpediaを使った都道府県別ランキング
http://bit.ly/2oDPl0Q
◼ Wikidataを使った日本の政治家の出身大学ランキング
http://bit.ly/2PBt8fn
◼ 技術書典
◼ 技術書典7,8にてSPARQL,LOD関係の本を頒布
https://techbookfest.org/event/tbf08/circle/5687828398735360?fbclid=IwAR30949R49r1gi
PTNzA66f_BGB52T46JrU_qGhM_c9KIizmUA2YYdPzyyyA
◼ 技術書典9(9/12-22)にても配本予定
https://techbookfest.org/event/tbf09
2021/8/30 53

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