Advertisement

ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)

Nov. 22, 2019
Advertisement

More Related Content

Slideshows for you(20)

Similar to ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)(20)

Advertisement
Advertisement

ナレッジグラフ推論チャレンジ2019技術勉強会(10/21開催)

  1. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 人工知能学会SWO研究会ワークショップ 「ナレッジグラフ推論チャレンジ2019技術勉強会 &応募相談会」 :まだ間に合う!応募に向けた実践講座 10/21(月)
  2. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 本日の概要 本イベントのねらい ➢「推論チャレンジ」に応募するのに必要なナレッジグラフ の基礎技術の基本を学んでいただく 本日の予定 14:30 第2回ナレッジグラフ推論チャレンジの紹介 14:45 ナレッジグラフ利用技術のハンズオン (大阪電気通信大学・古崎晃司) 16:15 休憩 16:30 推論チャレンジ応募に向けたアプローチ例の紹介 (富士通研究所・松下京群,鵜飼孝典) 17:15 第2回ナレッジグラフ推論チャレンジ2019への応募相談 17:30 終了 2019/11/22 2
  3. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 第2回 ナレッジグラフ推論チャレンジの紹介 1.推論チャレンジとは 2.対象とするナレッジグラフの概要
  4. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 推論チャレンジとは? シャーロック・ホームズのような “推理”(推論)ができるAIシステムの開発 を目指した技術コンテスト チャレンジのねらい ➢説明可能性(解釈可能性)を有するAI技術に関する最新技 術の促進・共有と,その分析・評価,体系化を行う. チャレンジタスク ➢推理小説のナレッジグラフ (ホームズの短編小説) を対象に, ホームズと同じ結論に辿り着き,その理由を説明する. 42019/11/22
  5. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 チャレンジの狙い 説明可能性(解釈可能性)を有するAI技術に関 する最新技術の促進・共有と,その分析・評価, 体系化を行う. 特に,現実社会を反映したより複雑な,例えば 時間的,因果関係的,確率的関係性を含む問 題を扱うため,帰納的な機械学習(推定)と演繹 的な知識活用(推論)を融合したAI技術を対象と する. 52019/11/22
  6. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 チャレンジタスク 推理小説のナレッジグラフ (シャーロックホームズの短編 小説) を対象に, ホームズと同じ結論に辿り着き,その 理由を説明する. ➢現実社会の複雑な関係性を含みながら仮想的にクローズな (答えがあり,それに至る制約を制御できる)タスクを設計でき る ➢タスクによっては不確実情報や証拠写真など確率的な処理や 機械学習を入れないと解けなかったり,陽に書かれていない 常識知識を補完しなくては解けない等,推定と推論の融合を 促せる ➢読者が納得しないと小説として成立しないという人間に対す る説明性を有している, ➢小説が広く一般に知られており関心を引きやすい,など 但し,第4回チャレンジ以降は社会問題解決に関するベ ストプラクティス集なども予定 62019/11/22
  7. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 対象とする推理小説・タスク 対象とする推理小説 まだらのひも(第1回のKGの不具合を修正して利用) ➢タスク:ヘレンを殺したのは誰か?(犯人+説明) に加え,新たに,以下の4編をKG化 踊る人形 [Wikipedia][青空文庫] ➢タスク:暗号を解け(暗号の解読) 背中の曲がった男(曲がれる者)[Wikipedia][青空文庫] ➢タスク:バークリはなぜ死んだのか?(説明) 悪魔の足 [Wikipedia][青空文庫] ➢タスク:各人物を殺したのは誰か?(犯人+説明) 花婿失踪事件(同一事件) [Wikipedia][青空文庫] ➢タスク:花婿はなぜ消えたか?(説明) 72019/11/22
  8. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 タスクの実行条件・応募部門 対象とするKG ➢5つの小説のうち,いずれの小説を対象にしてもよい (どれか1つだけ,2つだけ…などでもOK) ➢できるだけ多くの小説が,同じシステム(仕組み)で解けるとよい ➢各小説で使用するKGの範囲を段階的に変える(昨年同様) →完全(すべてのKG)/不完全(10%)/不完全(10%) ➢ナレッジグラフの独自拡張も可能(昨年同様) 対象とするタスク ➢①本部門:対象小説1つ以上のタスクを解くシステムを開発 ➢②ツール部門:いずれかのタスクを部分的に解くツールを開発 例)容疑者の推定,アリバイ検証,動機説明,など ★「自然言語文をトリプル化」するKG構築支援ツールの応募も可 ➢アイデア部門:①,②の実現方法のアイデア(実装なしでOK) 82019/11/22
  9. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 第2回 ナレッジグラフ推論チャレンジの紹介 1.推論チャレンジとは 2.対象とするナレッジグラフの概要
  10. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 ナレッジグラフ化の考え方 ナレッジグラフの要求仕様 ➢犯人を推論(推理)するのに必要な知識を提供する ➢「推理小説」で描かれる様々な状況を,できるだけ統一的 な形式で計算機処理(検索・推論・etc.)可能にする ナレッジグラフ化の基本方針 ➢「推理小説」の内容を,最小単位の「場面(シーン)」に分割 →場面ごとにID(IRI)を付与 ➢「各場面の記述内容」および「場面間の関係」をグラフ化 →グラフ化に必要なクラス・プロパティを定義 場面1 場面2 場面3 場面4 場面5 ・・・ ・・・ 102019/11/22
  11. 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:その場面の原文(英語/日本語のリテラル) 場面155 ホームズが ジュリアに会う ホームズ 会う ジュリア subject hasPredicate source whom 場面156 then 2019/11/22 11
  12. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 原文(英語/日本語) 絶対時間※小説内に基準日 時を設定している 主語・述語・目的語は全て 「リソース」として定義 →他の場面で同じ目的語を 参照可能 動作 動作主 他の場面 場面の種類(クラス)分け Scene:上位クラス -Situation:事実・状況の描写 -Statement:Aの発言 -Talk:AのBへの発言 -Thought:Aの考え 12 場面(シーン)スキーマ 記述例 2019/11/22
  13. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 シーン間の関係 シーン間の関係を表す プロパティ 2019/11/22 13
  14. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 シーン間の関係の種類 シーン間の関係を表す プロパティ 2019/11/22 14
  15. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 クラス,プロパティ一覧 152019/11/22
  16. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 推理小説のナレッジグラフ SWO研究会・勉強会での予備的作業を経て,有志数名でナレッジグラフ化 16 ナレッジグラフ(RDF形式) クエリー言語SPARQLによる検索 グラフDB(キーワード検索も可) http://knowledge-graph.jp/visualization/ 2019/11/22
  17. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 第2回でのスキーマの拡充 対象とする小説が5つに増えたことで,異なる小説を 横断した処理ができるようにスキーマを拡充 各小説ごとに「ベースIRI」および「グラフIRI」を導入 ➢<http://kgc.knowledge-graph.jp/data/小説名/> ➢例:「踊る人形」のシーン100は <http://kgc.knowledge-graph.jp/data/DancingMen/100> 小説をまたいで共通化した語彙 ➢hasPredicateで参照する「述語」,および, hasProperyで参照する「性質・状態」 →<http://kgc.knowledge-graph.jp/data/predicate/XXX> ➢固有名詞(例:ホームズ,地名) →<http://kgc.knowledge-graph.jp/data/YYY> は,小説をまたいで,共通のIRIで定義・参照 2019/11/22 17
  18. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 ナレッジグラフの公開 「推論チャレンジ」のサイト →ナレッジグラフの公開 ➢https://github.com/KnowledgeGraphJapan/KGRC-RDF SPARQLエンドポイント ➢http://lod.hozo.jp/repositories/kgc2019 SPARQLクエリのサンプル ➢https://github.com/KnowledgeGraphJapan/Challenge/ blob/master/rdf/2019/SPARQLsample.md 可視化ツール ➢http://knowledge-graph.jp/visualization/ 2019/11/22 18
  19. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 ナレッジグラフ利用技術の ハンズオン 0.RDF処理に利用可能な技術の概観 1.RDFによるナレッジグラフの表現 2.SPARQLクエリによるナレッジグラフの検索 3.Apache Jena によるRDFの処理 4.Apache Fuseki(RDFデータベース)の利用
  20. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 ナレッジグラフ(RDF)を扱うための技術・ツール ➢RDF用検索言語:SPARQL ✓SPARQLエンドポイント(検索用API)からWeb経由の検索が可能 ➢RDF用のライブラリ ✓https://github.com/KnowledgeGraphJapan/sparql-library- examples にプログラム言語でのサンプルあり ✓Javaを使うなら,Apache Jenaがおススメ ➢OWL形式のファイルを開くには ✓protégéなどのオントロジーエディタを使用(RDFファイルも開ける) https://protege.stanford.edu/ ➢RDFファイルをDBに格納して使用するには ✓FusekiやVirtuosoなどのRDF-DBを使用 202019/11/22 RDF処理に利用可能な技術
  21. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 21 ナレッジグラフのRDF表現 2019/11/22 主語 述語述語 目的語 RDFでは,ナレッジグラフを 「主語⁻述語⁻目的語」のトリプルの集合として表す
  22. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 22 ナレッジグラフのRDF表現 2019/11/22 主語 述語述語 目的語 • 主語,述語は,URL(IRI), • 目的語は,URL(IRI),または文字列(リテラルと呼ぶ) で表す • 主語または目的語となるURLはリソースと呼ぶ • リテラルには型や言語を指定できる
  23. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 23 ナレッジグラフのRDF表現 2019/11/22 主語 述語述語 目的語
  24. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 RDFの表現例 2019/11/2 24 日本 大阪電気 通信大学 国 1924 設立 寝屋川市 129613133 (VIAF) 国立国会図書館典拠ID 位置する行政区 http://www.wikidata.org/entity/Q7105556 というIRIから得られ る情報の一部(Wikidataより) 00370288 (Web NDL Authorities) skos:exactMatch 大阪電気通信大学標目 リソース: IRIで表される事物 プロパティ: リソース間(もしくはリ ソースとリテラル間)の 関係を表す リテラル :文字列 主語 述語 目的語 トリプル(3つ組み) ①RDFは「トリプルの組み合わせ」 で表される ②目的語が他のリソースのとき,トリプル を辿って更なる情報が得られる
  25. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 2019/11/2 25 http://www.wikidata. org/entity/Q17 http://www.wikidata. org/entity/Q7105556 https://www.wikidata.org/entry/P17 1924 https://www.wikidata.org/entry/P571 http://www.wikidata. org/entity/Q389633 http://viaf.org/ viaf/129613133 https://www.wikidata.org/entry/P349 https://www.wikidata.org/entry/P131 http://id.ndl.go.jp/auth /ndlna/00296951 http://www.w3.org/2004/02/skos/core#exactMatch 大阪電気通信大学 http://www.w3.org/2008/05/skos-xl#prefLabel すべてのリソースおよび プロパティはIRI用いて 表される RDFの表現例
  26. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 2019/11/22 26 http://www.wikidata. org/entity/Q17 http://www.wikidata. org/entity/Q7105556 https://www.wikidata.org/entry/P17 1924 https://www.wikidata.org/entry/P571 http://www.wikidata. org/entity/Q389633 http://viaf.org/ viaf/129613133 https://www.wikidata.org/entry/P349 https://www.wikidata.org/entry/P131 http://id.ndl.go.jp/auth /ndlna/00296951 http://www.w3.org/2004/02/skos/core#exactMatch 大阪電気通信大学 http://www.w3.org/2008/05/skos-xl#prefLabel すべてのリソースおよび プロパティはIRI用いて 表される 部分的に同じよ うなIRIが多数, 用いられる wd: wdt: wdt: wdt: wdt: wd: PREFIX(接頭語) で置き換える wd: RDFの表現例
  27. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 PREFIX:IRIの省略表現 2019/11/2 27 wd:Q17 wd:Q7105556 wdt:P17 1924 wdt:P571 wd:Q389633 http://viaf.org/ viaf/129613133 wdt:P349 wdt:P131 http://id.ndl.go.jp/auth /ndlna/00296951 http://www.w3.org/2004/02/skos/core#exactMatch 大阪電気通信大学 http://www.w3.org/2008/05/skos-xl#prefLabel 部分的に同じよ うなIRIが多数, 用いられる PREFIX(接頭語) で置き換える
  28. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 Linked Dataの公開方法 参照解決可能なhttp IRIs(URL,URI)を用いた公開 ➢IRIでデータにアクセスが可能 ✓通常のWebページと同様に,データのURIを用いて 「つながり」を辿ることが出来る =システムによる処理(リンク解析等)が可能 SPARQLエンドポイントの公開 ➢RDF用のクエリ言語SPARQLにより検索可能なAPIを公開 ✓クエリによるデータ検索・抽出が可能 RDFファイルのダンプの公開 ➢全データをダウンロードできる形で公開 ✓ダウロードしたファイルをRDFパーサー,RDF-DBなどのツールを用いて 処理可能 2019/11/2 30
  29. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 ナレッジグラフ利用技術の ハンズオン 0.RDF処理に利用可能な技術の概観 1.RDFによるナレッジグラフの表現 2.SPARQLクエリによるナレッジグラフの検索 3.Apache Jena によるRDFの処理 4.Apache Fuseki(RDFデータベース)の利用
  30. SPARQLによるRDFの検索 ◼ SPARQL ◼ RDFデータに対するクエリ言語 ◼ 「指定したグラフ構造」に一致するトリプルを検索する ◼ 最も基本的な検索 select ?s ?p ?o where { ?s ?p ?o . } LIMIT 100 ↑取得する数の制限 ←検索するグラフのパターン ←返す要素 このパターンを変 えることで,欲しい データを取得する 2019/11/22 「.」(ピリオド) を忘れない ?x(x:任意の文字列)は変数を表す 32
  31. 検索例: 主語と述語を指定して「目的語」を取得 “<主語>の<述語>は何?” 2019/11/22 大阪電気 通信大学 ?o 位置する行政区 検索するグラフパターン <大阪電気通信大学> <位置する行政区> ?o 主語 述語 目的語 SPARQLでの記述 33 主語 述語 目的語
  32. 検索例1:主語と述語を指定 ◼ 例1)「大阪電気通信大学」(主語)の「位置する 行政区」(述語)となる目的語(?o)を取得する select ?o where { wd:Q7105556 wdt:P131 ?o . } 2019/11/22 34 大阪電気 通信大学 (主語) 位置する 行政区 (述語) 目的語 (変数)
  33. 検索例1:主語と述語を指定 ◼ 例1-1)「大阪電気通信大学」(主語)の「設立」 (述語)となる目的語(?o)を取得する select ?o where { wd:Q7105556 wdt:P571 ?o . } 2019/11/22 35 大阪電気 通信大学 (主語) 設立 (述語) 目的語 (変数) ※述語を変えるといろんな 目的語が取得できる
  34. 補足1:PREFIXの定義 ◼ 例1)「大阪電気通信大学」(主語)の「位置する 行政区」(述語)となる目的語(?o)を取得する PREFIX wd: <http://www.wikidata.org/entity/> PREFIX wdt: <http://www.wikidata.org/prop/direct/> select ?o where { wd:Q7105556 wdt:P131 ?o . } 2019/11/22 36 大阪電気 通信大学 (主語) 位置する 行政区 (述語) 目的語 (変数) ※wd:やwdt:といった省略表現を使うためには, 本来はPREFIXの定義が必要 (WikidataのWebサービスでは省略可)
  35. 補足1:PREFIXを利用しない表現 ◼ 例1-1)をPREFIX(接頭語)を用いず書いた場合 2019/11/22 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の定義 省略表現に用いる文字列は 任意に設定できるが,でき るだけ慣習的に利用される ものにあわせるとよい. 37 PREFIXによる省略表現
  36. 参考:よく用いられる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/ 2019/11/22 WikidataのRDFでは,詳細情報を記述 するため,同じ内容のプロパティが3種類 記述されているが,今回はwdt:を使う. 38
  37. 補足2: ラベルの取得方法【RDF一般】 ◼ 補足例) 「大阪電気通信大学」のラベルとなる 目的語(?o)を取得 PREFIX wd: <http://www.wikidata.org/entity/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select distinct ?o where { wd:Q7105556 rdfs:label ?o . }LIMIT 100 2019/11/22 RDFで一般に 「ラベル」を表すプロパティ(述語) 実行例 https://w.wiki/646 39
  38. 補足2: 言語種別の取得【RDF一般】 ◼ 補足例) 「大阪電気通信大学」のラベルとなる目 的語(?o)を取得 ◼ 「言語の種別」を合わせて取得 PREFIX wd: <http://www.wikidata.org/entity/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select ?o (lang(?o) AS ?ln) where { wd:Q7105556 rdfs:label ?o . } 「言語種別」を取得する関数 2019/11/22 結果を別の変数に代入 実行結果 https://w.wiki/648 40
  39. 補足2: 言語種別の絞り込み【RDF一般】 ◼ 補足例) 「大阪電気通信大学」のラベルとなる目 的語(?o)を取得 ◼ 「言語の種別=日本語(ja)」をのみ PREFIX wd: <http://www.wikidata.org/entity/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select ?o (lang(?o) AS ?ln) where { wd:Q7105556 rdfs:label ?o . FILTER (lang(?o) = "ja") . } 2019/11/22 実行結果 https://w.wiki/64A 絞り込みの条件を記述(様々な条件記述できる) 41
  40. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 推論チャレンジのナレッジグラフを対象としたSPARQL SPARQLクエリのサンプル https://github.com/KnowledgeGraphJapan/ Challenge/blob/master/rdf/2019/SPARQLs ample.md クエリを見ながら解説予定 2019/11/22 42
  41. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 ナレッジグラフ利用技術の ハンズオン 0.RDF処理に利用可能な技術の概観 1.RDFによるナレッジグラフの表現 2.SPARQLクエリによるナレッジグラフの検索 3.Apache Jena によるRDFの処理 4.Apache Fuseki(RDFデータベース)の利用
  42. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 Javaの開発環境(Eclipse)のインストール 1.http://mergedoc.osdn.jp/ から「 Pleiades All in One ダウンロード」の 「Eclipse 2019-09」を選択 2.JavaのFull EditonのZIPファイルをダウンロード 3.ZIPを解凍して,適当なフォルダにおけばインス トール完了 ※ZIPを解凍する際,Windowsの標準の「展開」で, うまくいかないときは,別の解凍ソフト(7Zipなど) を使えばOK
  43. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 プロジェクトの作成 1.Eclipseを起動 2.workspace(作業フォルダ)を聞かれるのでOKする 3.ファイル>新規>Javaプロジェクトを実行 4.プロジェクト名(例:JenaTest)を入力してOK 5.プロジェクトが作成される →srcがソースファイルを入れる 6.フォルダプロジェクト作成時に 表示される「モジュール作成」 については「作成しない」 を選択
  44. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 テストプログラムの作成 1.ファイル>新規>クラスを実行 2.名前を「HelloWorld」にして, 「public static void main(String[] args) 」にチェッ クを入れて「完了」 3.クラス「HelloWorld.java」が作成される 4.作成されたクラスに以下の1行を追加して,保存 public class HelloWorld { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ System.out.println("Hello World!"); } }
  45. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 テストプログラムの実行 1.「HelloWorld.java」を選択して, 右クリック>実行>Javaアプリケーション を選択 2.プログラムが実行され,結果がコンソールに 表示される
  46. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 Jenaのダウロード 1.https://jena.apache.org/ からダウンロード apache-jena-3.13.0.zip を選択してダウンロード 2.解凍してできる「lib」フォルダをプロジェクトにコピー 3. srcを選択して右クリック>ビルド・パス>ビルド・パスの 構成 4.ライブラリ>クラスパス>JARの追加で「lib」フォルダ内 のJARファイルを選択・追加 備考 JenaはRDFを処理するためのライブラリ 使い方の詳細は,Java DOCを参照 ➢https://jena.apache.org/documentation/javadoc/jena/
  47. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 サンプルプログラムの入手 1. https://github.com/koujikozaki/JenaSample からサンプルプログラムをダウロード →Clone or download > Download ZIP 2. ZIPファイルを展開し,srcフォルダの中身を自分 のプロジェクトにコピーする →エクスプローラーで選択>コピーの後, Eclipseのパッケージエクスプローラのsrcに 「貼り付け」 ※以下,プロジェクトへのコピーは同様の操作で行う 3.inputフォルダを自分のプロジェクトにコピーする 4.自分のプロジェクトにoutputというフォルダを作る
  48. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 サンプルプログラムの実行 それぞれのプログラムを選択し, 右クリック>実行>Javaアプリケーション で実行してみる readRDF.java RDFファイルを読み込み,別の形式で保存する. searchRDF.java 読み込んだRDFに対して,検索を行う searchRDFusingSPARQL.java 読み込んだRDFに対して,SPARQLで検索を行う. searchRDFfromEndpoint.java SPARQLエンドポイントに対してSPARQLで検索する
  49. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 参考資料 ModelのJavaDoc ➢https://jena.apache.org/documentation/javadoc/jena/ org/apache/jena/rdf/model/Model.html ➢Jenaで読み込んだモデルを直接,処理することができる ResultSetのJavaDoc ➢https://jena.apache.org/documentation/javadoc/arq/i ndex.html?org/apache/jena/query/ResultSet.html ➢JenaでSPARQLクエリを発行した結果を処理する差に用いる ➢サンプルプログラムの改良版に使用例あり ✓https://github.com/oecu-kozaki-lab/JavaRDFsample ✓クエリ結果を用いて別のクエリを発行する例が含まれます 2019/11/22 51
  50. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 ナレッジグラフ利用技術の ハンズオン 0.RDF処理に利用可能な技術の概観 1.RDFによるナレッジグラフの表現 2.SPARQLクエリによるナレッジグラフの検索 3.Apache Jena によるRDFの処理 4.Apache Fuseki(RDFデータベース)の利用
  51. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 Apache Fusekiの利用 Apache Fuseki(RDFデータベース)のインストール ➢下記の記事を参考にインストールしてください. ✓Fusekiをダウンロードして立ち上げるまで。Windows 10編 ✓Fusekiをダウンロードして立ち上げるまで。Mac OS X編 ✓apache-jena-fuseki-3.13.1.zip で動作確認しました(Windows10) 推論チャレンジのナレッジグラフ(RDF)をダウンロード ➢https://github.com/KnowledgeGraphJapan/KGRC-RDF からダウンロード(第1回,第2回分を含む) ➢複数のファイル形式でダウンロードできるが, RDFファイルとしてはTurtle形式(拡張子は.ttl)の利用を 2019/11/22 53
  52. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 参考)Sample1の実行方法 54 起動する際に入力し た引数を使って,クエ リを実行する ➢例として,小説名と シーン番号を指定 起動時の引数は, main関数の引数 (args[])に入る ➢配列args[]から値を 取り出して,プログラム で利用すればよい ◼ Eclipseでの実行時には, 「実行>実行の構成」で 「実行するプログラム」の設定画 面の「引数」タブの「プログラム の引数」に書いて適用・実行
  53. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 Apache Fusekiの利用 FusekiにRDFファイルをアップロード ➢Fusekiを起動した状態でhttp://localhost:3030/にアクセス ➢manage datasets > add new dataset でDBを作成 ✓Fusekiの再起動後もDBを残したいときはPersistentを選択する ➢作成したdatasetを選択し,Upload filesでアップロード 2019/11/22 55
  54. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 Fusekiの使い方 queryを選択すると,ブラウザ上でSPARQL検索ができる 2019/11/22 56 プログラムから検索するときは http://localhost:3030/dataset名/sparql を使用する Infoを選ぶと 諸々の情報を確認できる
  55. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 参考資料 SPARQL仕様(W3Cのドキュメント) ➢ SPARQL 1.1 Query Language https://www.w3.org/TR/sparql11-query/ SPARQLの解説本 ➢ オープンデータ時代の標準Web API SPARQL http://sparqlbook.jp/ 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 2019/11/2 57 http://sparqlbook.jp/より
  56. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 参考資料 Jena のサイト https://jena.apache.org/ Jenaのハンズオン資料 https://github.com/KnowledgeGraphJapan/LOD ws2nd にある「ApacheJenaハンズオン.pdf」を見るとよい →ハンズオンのソース https://github.com/KnowledgeGraphJapan/Apach e-Jena-Sample-Programs 様々な言語でのSPARQL処理方法サンプル https://github.com/KnowledgeGraphJapan/sparql- library-examples 2019/11/22 58
  57. CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会CC-BY4.0:人工知能学会 セマンティクWebとオントロジー(SWO)研究会 人工知能学会SWO研究会ワークショップ 「ナレッジグラフ推論チャレンジ2019技術勉強会 &応募相談会」 :まだ間に合う!応募に向けた実践講座 10/21(月) • 本日の資料は,一部修正のうえ, 推論チャレンジのサイトで公開します • 推理小説のナレッジグラフは, 今週中にアップデート予定です (→Issueをいただけば頑張って対応します…) • 応募締切は,2019年11月30日に延長します • 最終審査会.2019年12月26日@東京都内
Advertisement