1 / 69

RDFコンテンツ構築の実践と教訓

沖電気工業株式会社 研究開発本部 上田俊夫. RDFコンテンツ構築の実践と教訓. 発表の流れ. 前フリ 自己紹介 沖電気の知識処理研究 情報検索システムの簡単な紹介 本題 RDF モデル記述の体験と教訓 RDF によるオントロジー記述の体験と教訓 RDF リポジトリの経験 オープンソースについてと教訓 まとめ. 発表の流れ. 前フリ 自己紹介 沖電気の知識処理研究 情報検索システムの簡単な紹介 本題 RDF モデル記述の体験と教訓 RDF によるオントロジー記述の体験と教訓 RDF リポジトリの経験 オープンソースについてと教訓 まとめ.

decima
Download Presentation

RDFコンテンツ構築の実践と教訓

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 沖電気工業株式会社 研究開発本部 上田俊夫 RDFコンテンツ構築の実践と教訓

  2. 発表の流れ • 前フリ • 自己紹介 • 沖電気の知識処理研究 • 情報検索システムの簡単な紹介 • 本題 • RDFモデル記述の体験と教訓 • RDFによるオントロジー記述の体験と教訓 • RDFリポジトリの経験 • オープンソースについてと教訓 • まとめ

  3. 発表の流れ • 前フリ • 自己紹介 • 沖電気の知識処理研究 • 情報検索システムの簡単な紹介 • 本題 • RDFモデル記述の体験と教訓 • RDFによるオントロジー記述の体験と教訓 • RDFリポジトリの経験 • オープンソースについてと教訓 • まとめ

  4. 略歴 • 略歴 • ~2000.3.(学生時代) • 大阪大学産業科学研究所溝口研究室 • 機能オントロジーに関する研究 • デバイスが発揮する機能に注目して対象モデルを構築し、機能の因果関係などの制約やヒューリスティックルールを使って再設計を行う研究 • 2000.4~2003.3(社会人) • 沖電気工業株式会社入社 • 公共情報端末のユーザインタフェースの研究に従事 • 2003.4~ • 知識処理に関する研究に従事

  5. ユーザインタフェース研究の例 • 公共機器のアクセシビリティ対応 • 障害を持った方や高齢者でも使えるような公共機器向けインタフェースの開発・評価 • モバイルアクセッサ • モバイル端末から公共端末のリモートコントロールをする • 赤外線通信機能付き携帯電話とATMを通信させて振り込みなどの手続きを行う • 今年4月:某地方銀行で公開 触覚絵記号 モバイルアクセッサ

  6. 発表の流れ • 前フリ • 自己紹介 • 沖電気の知識処理研究 • 情報検索システムの簡単な紹介 • 本題 • RDFモデル記述の体験と教訓 • RDFによるオントロジー記述の体験と教訓 • RDFリポジトリの経験 • オープンソースについてと教訓 • まとめ

  7. はじめは・・・ • 「何か知識処理やセマンティックWeb関連の研究をしましょう」しか決まっていない状態 • せこせこセマンティックWebの勉強 • ひょこひょこ研究会にいって人探し • へこへこ 家では奥さんに・・・ 沖電気の知識処理研究 • 沖電気の知識処理研究 • 昨年度立ち上がったばかり • 母体は、自然言語処理技術経験者 今は何をやってるの?? あまり大きな声で話せませんが、 小さな声では聞こえません。 というと話が終わってしまうので

  8. 情報検索システム開発の経緯 • 「自然言語処理技術の延長で何かやろう」ということになった。 • 情報検索システムでもやってみよう • じゃあどんな要素技術があるの? • 自然言語処理技術 • 固有表現抽出 • 属性抽出 • 知識処理技術 • オントロジー →文書中から単語のクラスを同定する →文書中から属性と値のセットを抽出する 問題解決対象に関する知識

  9. 自然言語処理技術<固有表現抽出> キーワードのクラスを特定する方法 • 文字列だけみてキーワードのクラスを判断する • 「沖電気は○○社との協業を発表した」→沖電気は辞書に「会社」であると書いて あるから「会社」クラスだろう • 文脈からキーワードのクラスを特定する。 • 「渋谷では若者がたむろしていた。」→“では”は場所を表す助詞だから、渋谷は 「場所」だろう。 • 「渋谷先生はロック評論家である」→“先生”は人名の敬称だから渋谷は 「人名の姓」だろう。 沖電気 辞書 場所? 「渋谷」 人? 「おにゃんこ先生がキャット空中三回転した」??  →おにゃんこさん? いなかっぺ大将の文章だと 知らなかったら分からない。

  10. <table border="0"><tr> <td> </td><td></td></tr> <tr><td> </td><td> 14:00-18:30 </td></tr><tr><td>△△大学第3講義室 <br> 〒 </td><td></td></tr></table> 第1回○○セミナー 2003年7月23日 123-4567 ○○市××町1-1 自然言語処理技術<情報抽出> • 情報抽出 • 文書中の情報を属性-属性値の関係で抽出 属性 属性値 HTMLドキュメント

  11. 知識処理技術 • 知識処理技術 • 非常に荒く言うと、人が知っていること(知識)を書いておいて機械に処理させる技術 • 検索システムで使っている知識 • 「どんな情報が知りたいか」という知識 • 「企業」なら「企業概要」、「関連ニュース」、「イベント」などの情報を知りたい。 • 「どこに情報があるのか」という知識 • 「企業概要」なら「東洋経済新聞社」のHPにある • 「文書を分類する」ための知識 • 「ニュース」ならタイトルかURLにnewsと入っていることが多い。

  12. 情報源はどこがある? どんな情報が知りたいか? 分類クラス 分類ルール is-a is-a イベント URL={event,seminar,・・・} TITLE={イベント,セミナー,・・・} is-a is-a VoIP セミナー セミナー 研究会 講演情報 TCP/IP ・・・ ・・・ 文書を分類するためのルール 知識処理技術<オントロジー> 知識を機械が読み込んで処理が出来る形にしておきましょう。 技術 イベント 製品 場所 技術名 イベント名 建物 技術解説 主催 住所 is-a is-a イベント 日程 製品 開催場所 通信技術 ニュース キーワード

  13. 文書から固有表現を抽出 処理対象文書 キーワード一覧 処理結果 キーワードで検索した結果を 整理して表示 試作した情報検索システムの画面イメージ

  14. キーワードのクラスを抽出 情報を探す 情報検索の 知識が入ってる 文書を分類する 検索結果を まとめる 情報検索システムの構成 情報検索システム ブラウザ 外部サービス SemanticScope 文書指定 固有表現抽出 キーワード 一覧表示 検索エンジン ・ConceptBase ・Google ・・・・ (従業員DB) (製品DB) キーワード選択 リソース検索 Web サービス検索 Sesame オントロジー 辞書 Webサービス ・Amazon ・・・・ (業務AP) 情報分類 属性抽出 情報統合 検索結果表示

  15. 実際にRDFで書いてみたオントロジー 中身はあまりお見せできないので、 記述した際の教訓話を・・・・ ちらっと見せる

  16. 発表の流れ • 前フリ • 自己紹介 • 沖電気の知識処理研究 • 情報検索システムの簡単な紹介 • 本題 • RDFモデル記述の体験と教訓 • RDFによるオントロジー記述の体験と教訓 • RDFリポジトリの経験 • オープンソースについてと教訓 • まとめ

  17. Resource Desription Frameworkのこと • 主語、述語、目的語の三つ組の連鎖でリソースについて 記述することができる。 主語 目的語 述語 上田 猫 好き オス 性別 上田 猫 好き 色 黒 RDFとは • RDFとは • Refuse Derived Fuel(ゴミ固形燃料) ・・・ではなくて

  18. なぜRDF • なぜ知識記述にRDFを使ったのか? • リソースをURIで一意に識別できる • 機械処理が容易 • ファイアウォール透過性 • 標準技術 • ・・・・ 全部建前 本音は、なんでもよかったんだけど、セマンティックWebを やるのに使ってみたかった。

  19. RDFを書いてみる RDFでメタデータを書いてみよう

  20. <?xml version="1.0" encoding="Shift_JIS"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:mr3="http://mmm.semanticweb.org/mr3#" xml:base="http://mmm.semanticweb.org/mr3#"> <rdfs:Class rdf:ID="Primates"/> <rdfs:Class rdf:ID="Man"> <rdfs:subClassOf rdf:resource="#Primates"/> </rdfs:Class> <rdfs:Class rdf:ID="Monkey"> <rdfs:subClassOf rdf:resource="#Primates"/> </rdfs:Class> <mr3:Monkey rdf:ID="Ohguchi"> <mr3:Occupation>Unemployed</mr3:Occupation> <mr3:Age>8</mr3:Age> </mr3:Monkey> <mr3:Man rdf:ID="Yamaguchi"> <mr3:Occupation>Professor</mr3:Occupation> <mr3:Age>45</mr3:Age> </mr3:Man> <mr3:Man rdf:ID="Yamamoto"> <mr3:Age>28</mr3:Age> <mr3:Occupation>OfficeGirl</mr3:Occupation> </mr3:Man> </rdf:RDF> RDFグラフ RDF/XMLシンタックス RDFを書いてみる • 手で書いてもいいがRDFグラフで考える方がXMLシンタックスで考えるよりずっと簡単。 • RDFグラフベースで編集できるエディタが必須 • 試したRDFエディタ • IsaViz • MR3 こっちのほうがお薦め

  21. RDFを書いてみよう • IsaViz • W3Cの公式RDFエディタ 卒倒するぐらい使いにくい。 3日ガマンしたけど耐えられなかった。  ・理解不能なボタン  ・意味不明な挙動  ・遅い・・・ 苦悩のスパイラル・・・

  22. RDFエディタ • MR3 • 静岡大のMMMプロジェクトの成果 • 最初はいまいちだった • ファイルを読めなくなったり • 変なインタフェースだったり • 機能がなかったり • 半年ぐらいで結構使いやすくなった • なんといっても開発者を取り込んで「私にとって」使いやすく作り込んでもらった。

  23. RDFを書いてみる • RDFの参考資料はどこぞ? • 神崎先生のページに倣って書いてみた 誰もが一度は通る道・・・

  24. モデル スキーマ 年齢 人 山田 23才 domain 年齢 人 RDFで文を書いてみる • 「山田さんの年齢は23才である」 • RDFでどうやって書く? とりあえず書けたけど、 本当にこれでいいの??

  25. こうも書ける スキーマ こうも書ける メタスキーマ スキーマ モデル プロパティ モデル rdf:type rdfs:type 山田 domain 23 値 range rdfs:Property 単位 プロパティ 山田 年齢 人 23 domain 年齢 プロパティ値 クラス 人 年齢 単位 人 subClassOf 才 単位 人 domain domain 才 年齢 subClassOf 値 単位 RDFで文を書いてみる • 「山田さんの年齢は23才である」 • 別の書き方も試してみよう

  26. 結局どれが正しいの? もっといいのはないの? 1ヶ月ぐらい考えてみた。 RDFで文を書いてみる あとでRDFプロセッサで 処理するときに全部 無駄になった。 <結論> ・RDFで書いたモデルだけ見ていても何も決まらない。 ・どうやって使うかを考えながら記述しよう。 エレガント? 早めにプログラムのプロトタイプを作って 動かしてみると善し悪しが分かってくる。 冗長でないか? 記述の完全性? どれ??

  27. 教訓(個人的な) • 教訓1(RDFモデルの記述) • RDFモデルはどうやって使うかを考えながら記述しましょう。 • 早めにプログラムのプロトタイプを作って動きながら考えるとベター

  28. 発表の流れ • 前フリ • 自己紹介 • 沖電気の知識処理研究 • 情報検索システムの簡単な紹介 • 本題 • RDFモデル記述の体験と教訓 • RDFによるオントロジー記述の体験と教訓 • RDFリポジトリの経験 • オープンソースについてと教訓 • まとめ

  29. RDFでオントロジーを書いてみよう

  30. とりあえずの立場 ・「問題解決対象にある概念や関係を記述したもの」 ・それで対象モデルをうまく記述できて、システムが  うまく動くことが一番大事。 とにかくイケイケゴーゴーで動くものを作ってみて認識の合意とかは後で考えよう オントロジーとは • いろんな定義がある • 存在に関する体系的な理論 • 概念化の明示的な記述 • 人工システムを構築する際のビルディング ブロックとして用いられる基本概念/語彙の体系 (溝口先生) • ある目的のための世界の認識に関する共通の合意 (武田先生) 難しい。なんとなくしかわからない

  31. オントロジーを書く • RDFエディタでオントロジーを書いてみよう • とりあえずまたMR3を使って・・・

  32. 例)人クラスでは年齢は必須だが、  人クラスを継承した従業員クラスでは、 年齢プロパティをオプションにしたい 名前:<必須> 年齢:<必須> 性別:<必須> extends オーバーライド 従業員 年齢:<オプション> 従業員番号:<必須> オントロジーを書く • サブクラスでプロパティをオーバーライドするような記述をしたい

  33. やってみると true rdfs:domain 人、従業員両クラスのプロパティに なってしかも両方の制約が残る オントロジーを書く • プロパティのオーバーライド • 人クラスで定義した内容を従業員クラスでオーバーライドしたい true false 年齢 年齢プロパティの制約をオーバーライドしたい こうしたいけどできない

  34. 年齢プロパティのサブプロパティを作り サブプロパティの定義を変えることで対応 false 年齢 こうしたいけどできない プロパティ名が変わってしまうので、あとあと使いにくい 名前がちがうのでいちいちsuperPropertyをチェックする必要 オントロジーを書く • プロパティのオーバーライド • 人クラスで定義した内容を従業員クラスでオーバーライドしたい うまくいかない・・・ どうしよう・・・ 年齢プロパティの制約をオーバーライドしたい

  35. オントロジーを書く • OWLでかけば解決できる • <owl:Class rdf:ID=“人”><rdfs:subClassOf><owl:Restriction><owl:onProperty rdf:resource=“#年齢”/><owl:cardinality>1</owl:cardinality></owl:Restriction></rdfs:subClassOf></owl:Class> <owl:Class rdf:ID=“従業員”><rdfs:subClassOf rdf:resource=“#人”/><rdfs:subClassOf><owl:Restriction><owl:onProperty rdf:resource=“#年齢”/><owl:maxCardinality>1</owl:maxCardinality><owl:minCardinality>0</owl:minCardinality></owl:Restriction></rdfs:subClassOf></owl:Class> 年齢プロパティは必須 年齢プロパティはオプション • 制約 •  プロパティに書くという思いこみ •  クラスに書けばよかった  • →RDFの語彙だけでは気づかない

  36. 名前:<必須> 年齢:<必須> 性別:<必須> 従業員 年齢:<オプション> オントロジーを書く • 教訓2 • 素人がオントロジーをRDFエディタで書こうとするとはまる • オントロジーはオントロジーエディタで・・・ こうかけるとは夢にも思わない extends ついでにいうとMR3にも制約記述支援機能があればうれしいかと思います。 製品? ・他のクラスとくっつく例

  37. 教訓 • 教訓1(RDFモデルの記述) • RDFモデルはどうやって使うかを考えながら記述しましょう。 • 早めにプログラムのプロトタイプを作って動きながら考えるとベター • 教訓2(オントロジーの記述) • 素人がオントロジーをRDFエディタで書こうとするとはまる。(オブジェクト指向との違い) • オントロジーはオントロジーエディタで書きましょう。

  38. 閑話休題 (自由って大変) 今までの教訓は自由すぎて困るって話 • 今年ロンドンのレバノン料理店にいった • メニューには聞いたことのない料理ばかりが100種類も・・・。 • Raw Ram? なんじゃそれ? • レバノンコーヒー?普通のと何が違う? • 何を頼んだらいいか分からない。決められない • コース料理もない・・・ 結局お薦めのものを、 みつくろってもらって食べた。 制約も重要

  39. 発表の流れ • 前フリ • 自己紹介 • 沖電気の知識処理研究 • 情報検索システムの簡単な紹介 • 本題 • RDFモデル記述の体験と教訓 • RDFによるオントロジー記述の体験と教訓 • RDFリポジトリの経験 • オープンソースについてと教訓 • まとめ

  40. RDFリポジトリが分かれば、SemanticWEBを半分ぐらい分かった気になれる。RDFリポジトリが分かれば、SemanticWEBを半分ぐらい分かった気になれる。 by T.U. RDFリポジトリを使ってみよう 1.RDFリポジトリって何? 2.RDFリポジトリを使った時の問題

  41. RDFリポジトリとは? • 機能 • 永続記憶機能 • RDFモデルの追加、編集、削除、保存をする • 推論機能 • OWLやRDFSなどのオントロジー定義に従ってRDFモデルを展開する • クエリ機能 • 条件にあったステートメント、リソースを取り出す • 実装例(Javaの場合) • Sesame: • adunahttp://www.openrdf.org/ • Joseki: • ヒューレットパッカード研究所 http://www.joseki.org/ • Kowari: • Tucana Technology Inc.http://kowari.sourceforge.net/

  42. 一般的なRDFリポジトリの構成 クエリを処理し、クエリにマッチする結果を返す モデル クエリ 結果 RDFモデルをオントロジーモデルに従って展開する<ストレージに展開機能を持たせたものもある> モデルエディタI/F クエリプロセッサ ストレージ内のモデルを編集、追加、削除などを行う RDFモデル 展開器 オントロジー モデル ストレージI/F RDFモデルの蓄積 <ストレージを複数持つものもある> ストレージ部 一般的なRDFリポジトリ

  43. rdf:type rdfs:subClassOf RDFモデルの展開 オントロジー記述言語の定義に従ってモデルを展開する ほ乳類 ほ乳類 霊長類 霊長類 人 サル 人 サル 山口 山口 RDFモデルの記述 RDFモデルをRDFSに従って展開したもの

  44. RDFクエリの基本動作 • RDFクエリ検索の基本動作 • RDFモデルとRDFクエリパターンをマッチング • マッチングするステートメント群を出力する パターンマッチング クエリ実行 クエリパターン RDFモデル 検索結果

  45. 45 28 山口 年齢 山本 年齢 職業 職業 人 大学教授 人 OL クエリパターン ?a ?a ?a ?c ?b 職業 年齢 制約: ?c != “ぷー太郎” ?b ?b ワイルドカード 制約:?a like “*口” 検索結果 ?a ?b ?a ?b 山口 45 山口 人 大口 8 大口 サル 山本 28 クエリ検索の例(1) クエリ対象のモデル 8 大口 年齢 職業 サル ぷー太郎 ・ぷーでないのは誰で職業は? ・それはどんな生き物? ・“なんとか口”さんって、いたよね? ・いたらどんな生き物だったっけ?

  46. 45 45 28 28 大口 大口 8 8 山口 山口 山本 山本 年齢 年齢 年齢 年齢 年齢 年齢 サル サル 人 人 大学教授 大学教授 人 人 OL OL 職業 職業 職業 職業 モデルを展開しない場合 モデルを展開した場合 霊長類 subClassOf 人 サル ?a ?a ?b ?b 年齢 年齢 霊長類 霊長類 検索結果 ?a ?b null null 何もでてこない かつ かつ かつ 霊長類 霊長類 霊長類 クエリ検索の例(2) クエリ対象のモデル 検索結果 機械が霊長類と人、サルの 関係を理解したみたい

  47. RDFクエリ • モデルに含まれる欲しい情報をRDFのグラフパターンで記述する • SQLライクなクエリ言語がほとんど • SquishQL, RQL, RDQL, SeRQLなど SELECT Author, Paper FROM {Paper} <rdf:type> {<foo:Paper>}; <foo:keyword> {"RDF", "Querying"}; <dc:author> {Author} USING NAMESPACE dc = <!http://purl.org/dc/elements/1.0/>, foo = <!http://www.foo.org/bar#> SeRQLの場合

  48. RDFリポジトリを使ってみる • 実際にRDFリポジトリを使ってみる • Sesame • http://www.openrdf.org/ • 2種類のストレージ • RDFモデルを蓄えたとき • 記述が展開されるもの • 記述が展開されないもの

  49. RDFリポジトリの利用 • RDFリポジトリ利用で直面した問題<システム開発時> • 日本語対応が今ひとつ • OWLに完全に対応したRDFリポジトリがない注) • 速度の問題 1.日本語が使えるような工夫 2.OWLを使わない。RDF Schemaで対応 3.クエリとRDFモデルの工夫 注)現在Josekiはある程度対応しているらしい

  50. みなさんよろしく お願いします。 日本語の問題 • RDFリポジトリの多言語対応 • 基本は文字列の処理がUnicodeに対応していれば問題ないはず • しかし • 欧米系のツールではASCIIやISO-8859-1しか使えないツールが結構ある • 多バイト文字が理解できない人が作るからしょうがない。 もっと日本人に頑張ってもらわないと・・・

More Related