A Semantic Web Primer - Chapter 7 Ontology Engineering 2005/08/25 東京大学大学院 情報理工学系研究科 丹羽智史 [email protected] 7.1 イントロ 前章まででSWの基本的な構成要素や変換手法、ツー ルなどについて紹介した ではこれらのツールやテクニックを使うための実践的な方法 は? 与えられた状況に対してどの言語やツールがベストか? どの順番がよいか? 品質管理やリソース管理の問題は? これらの問いはソフトウェア工学やオブジェクト指向の分野 で長年研究されてきたので、そちらを参照されたい この章ではオントロジを構築・処理するための方法論 について紹介する TOC 7.1 7.2 7.3 7.4 7.5 イントロ 自分でオントロジを構築する方法 既存のオントロジの再利用 機械学習を用いたオントロジ処理 SWアーキテクチャ 7.2 自分でオントロジを構築する方法 Noy & McGuinnessの ”Ontology Development 101 : A Guide to Creating Your First Ontology”を参考にした オントロジ構築の過程は次のステージに分けられる 1. 2. 3. 4. 5. 6. 7. 8. 扱う範囲(scope)を決定 既存のオントロジを再利用できないか検討する 単語(term)を列挙する 分類(taxonomy)を定義する プロパティを定義する 制約条件を定義する インスタンスを定義する 整合性をチェックする 7.2 自分でオントロジを構築する方法 (1) 扱う範囲(scope)を決定 オントロジは特定の分野(domain)を特定の目的のためにモデ ル化したものである だからいわゆる”正解”はない ある分野をただモデル化すればよいというものではなく、作 ろうとしているオントロジの使われ方に基づいて範囲を決定 するべきである (2) 既存のオントロジを再利用できないか検討する SWの普及にともない、多くの場合探せば再利用できるオン トロジが見つかるはずである たとえそのまま使えなくても参考になるものはあるはずなので、 ちゃんと探すこと 7.2 自分でオントロジを構築する方法 (3) 単語(term)を列挙する 関連する単語を箇条書きにしていく 基本的に名詞はクラス名に、動詞はプロパティ名になる 梯子掛け技法(laddering)やグリッド分析(grid analysis)などの 古典的な知識整理手法も有効 (4) 分類(taxonomy)を定義する (3)で書き出した単語を分類し、分類木を作る 分類をトップダウンでやるかボトムアップでやるかは意見が分 かれるところである ここで決められた階層構造がクラスの継承関係に反映される owl : subClassOf rdfs : subClassOf 7.2 自分でオントロジを構築する方法 (5) プロパティを定義する このステップは(4)と密接に関わっている プロパティはサブクラスに継承されるので、できるだけ上のク ラスで一回だけ定義してやるのが望ましい プロパティの適用範囲に関する記述もすぐに行うのが望まし い プロパティの適用範囲を広くするか狭くするかは微妙なトレー ドオフである 広くした場合、プロパティの一般性(generality)が高まり多くのサブ クラスでそのプロパティを用いることができる 狭くした場合、不整合や間違った使われ方を防ぐことができる 7.2 自分でオントロジを構築する方法 (6) 制約条件を定義する (5)までの記述はRDFスキーマだけで十分である。このス テップではOWLの制約条件を定義する プロパティの要素数の制約 owl: cardinality プロパティタイプの制約 owl: hasValue owl: someValuesFrom プロパティー特性 owl: inverseOf owl: transitiveProperty owl: symmetricProperty このステップを終えるとオントロジの不整合を検出すること ができるようになる 7.2 自分でオントロジを構築する方法 (7) インスタンスを定義する 一般に、インスタンスの要素数はオントロジの要素数よりも はるかに大きい (数百個~数百万個) したがって、インスタンスの生成は自動的に行われる場合が 多い DBから自動生成 テキストから自動生成 (8) 整合性をチェックする (6)で定義したOWLの制約条件をもとに、整合性をチェック する オントロジそのものの整合性 インスタンスの整合性 TOC 7.1 7.2 7.3 7.4 7.5 イントロ 自分でオントロジを構築する方法 既存のオントロジの再利用 機械学習を用いたオントロジ処理 SWアーキテクチャ 7.3 既存のオントロジの再利用 既存のオントロジをそのまま使えるケースは稀なので、 目的に応じて修正を加える必要がある subClassOf や subPropertyOf を用いて概念を再定義 equivalentClass や equivalentProperty を用いて名前の付け 替え 異種オントロジのインポートやマッピングの自動処理 については、SWの最重要課題の一つである 以下、この節では様々な種類の既存オントロジや知識 体系を紹介する 7.3 既存のオントロジの再利用 (1) 専門知識体系 何年もかけて専門家集団によって構築された高品質な専門知識体系 アメリカの国立がんセンター(National Cancer Institute)のがんオントロ ジ 芸術・建築辞典(Art and Architecture Thesaurus) 125,000 terms Getty地理辞典(Getty Thesaurus of Geographic Names) 1,000,000 entries (2) 専門知識の統合 独立した知識群を一つの巨大なリソースに統合しようとする試みが 昔から行われてきた Unified Medical Language System 約100種類の医療知識群の統合 750,000の知識とそれらを結ぶ10,000,000のリンク 7.3 既存のオントロジの再利用 (3) 上位レベルのオントロジ 多くのオントロジは特定の分野に特化しているが、一般性の 高い上位レベルのオントロジも作られている Cyc 6,000個の概念と60,000個の主張(assertion) Standard Upperlevel Ontology (SUO) (4) Topic Hierarchies “オントロジ”の名に値する数少ない例 単なる分類(taxonomy)だけでなく、 語彙間の特別な関係(isa, part-of, contained-inなど)を定義できる Open Directory (http://dmoz.org) 階層化された400,000カテゴリをRDFフォーマットで取得可能 7.3 既存のオントロジの再利用 (5) 言語学的オントロジ 言語をモデル化したオントロジ WordNet 90,000 words (6) オントロジライブラリ SWの規格に沿ったオントロジがオンラインで入手可能 Ontology Engineering Group DAML (http://www.daml.org) TOC 7.1 7.2 7.3 7.4 7.5 イントロ 自分でオントロジを構築する方法 既存のオントロジの再利用 機械学習を用いたオントロジ処理 SWアーキテクチャ 7.4 機械学習を用いたオントロジ処理 SWの普及のために、オントロジ設計を支援するツー ルの開発がすすめられてきた メタデータ記述の支援 手軽に効率よく記述ができるように 機械処理可能なデータ形式の生成・管理を支援 オントロジ設計を支援するツールを用いても、手動の オントロジ設計は未だに時間とコストのかかる作業で ある 知識処理におけるボトルネックになりやすい この節では機械学習(machine learning)技術を用いて 半自動的にオントロジを処理する方法について紹介す る 7.4 機械学習を用いたオントロジ処理 機械学習を用いて以下の処理を行うことができる 既存のWeb文書からオントロジを抽出 既存のWeb文書から関連付けされたデータモデル(relational data)を抽出 異なるオントロジの統合やマッピング インスタンス分析によるオントロジ管理 ユーザーの使用分析によるSWアプリケーションの改良 Omalayenkoは機械学習を適用する対象を以下の3つ に分類した 自然言語オントロジ ドメインオントロジ オントロジのインスタンス 7.4 機械学習を用いたオントロジ処理 自然言語オントロジ 自然言語をモデル化したオントロジ サイズが大きく、更新をあまり必要としない 通常はシステムの背景知識やユーザークエリの分析に用いられ る テキストマイニングなどによるオントロジの自動生成技術が すすんでいる ドメインオントロジ 特定の分野の知識に特化したオントロジ 自然言語オントロジに比べオントロジの自動生成技術は遅れ ている 特定分野の知識を自動抽出するのは難しい 統計的な解析結果を人間に提示するといったレベル。オントロ ジ生成はまだ人間が主体 7.4 機械学習を用いたオントロジ処理 オントロジのインスタンス オントロジのインスタンスは通常自動的に生成されるため、 更新頻度は非常に高い インスタンスの自動生成や自動処理は機械学習と非常に相性 がよい 機械学習を利用してインスタンスを自動処理するアプリケー ションはたくさん開発されている しかし、そのいずれもがベースとなるドメインオントロジに強く依 存したものである ドメインオントロジを入力したら自動的にデータからインスタンス を抽出してくれる、といったオントロジ非依存なアプリケーション はまだ開発されていない 7.4 機械学習を用いたオントロジ処理 Omalayenkoは機械学習の適用方法を以下のように分 類した オントロジ生成段階 人間によるオントロジ設計の支援 機械学習によりデータ中の重要な関係性を提示したり整合性の チェックを行ったりする Web文書などからのオントロジスキーマ抽出 人間に助けてもらいながら、半構造データからオントロジの自動生 成を行う Web文書などからのオントロジインスタンスの抽出 これは古典的な情報抽出の手法がそのまま使える 7.4 機械学習を用いたオントロジ処理 Omalayenkoは機械学習の適用方法を以下のように分 類した (つづき) オントロジ管理段階 オントロジの統合や再設計 オントロジ生成段階と同じく機械学習による人間の支援を行う オントロジの自動アップデート 例えば、ある特定のリソースの最新情報を自動的にオントロジに反 映させたりする オントロジの拡張・調整 オントロジの重要な部分は変えずに、細かい部分の拡張やパラメー タ調整などを自動的に行う 7.4 機械学習を用いたオントロジ処理 機械学習を用いてオントロジ処理を行う際の注意とし て、あくまで「人間が解読可能」でなければならない したがって以下の手法とは相性が悪い ニューラルネットワーク 遺伝的アルゴリズム 以下の手法とは相性が良い 相関ルールマイニング ベイジアンネットワーク First-order logic クラスタリング 機械学習を用いたオントロジ処理の分野には大きなポ テンシャルがあるが、まだまだ発展途上である TOC 7.1 7.2 7.3 7.4 7.5 イントロ 自分でオントロジを構築する方法 既存のオントロジの再利用 機械学習を用いたオントロジ処理 SWアーキテクチャ 7.5 SWアーキテクチャ SWベースのナレッジマネジメントシステムの構築に はRDFやOWLなどの言語以外にも様々なツールや手 法を組み合わせて使う必要がある この節ではSWベースのナレッジマネジメントシステ ムの例を紹介し、そのアーキテクチャを学ぶ 1. 2. 3. 4. 5. データソースから知識データを抽出 抽出した知識データをリポジトリに格納 知識データの保守・管理 知識データの使用 On-To-Knowledgeプロジェクト 7.5 SWアーキテクチャ (1) データソースから知識データを抽出 構造化されていないデータの場合、統計的手法や簡単な自然 言語処理を用いる 構造化されているデータの場合、推論やパターン認識などを 用いてデータ構造を抽出する 得られた知識データはRDFとRDFスキーマで十分に表現でき る程度の浅い構造を持っている (2) 抽出した知識データをリポジトリに格納 リポジトリはクエリ言語などを用いて情報検索できるものを 使う リポジトリにはこの先オントロジやインスタンスも格納する ことになる 7.5 SWアーキテクチャ (3) 知識データの保守・管理 リポジトリはオントロジの保守・管理のために以下の機能も 要求される データ更新の管理 アクセス権の管理 トランザクション管理 自動生成される簡易オントロジの他に、人による複雑なオン トロジ設計を支援する機構も必要 リポジトリも連動する必要がある (4) 知識データの使用 前章で紹介したようなアプリケーションを利用して知識デー タを使用する 7.5 SWアーキテクチャ (5) On-To-Knowledgeプロジェクト On-To-Knowledgeプロジェクトにおいてこのシステムを実装 した 各コンポーネントは互いに緩く接続 統語的な相互接続性 意味論的な相互接続性 コンポーネント間は全てRDF形式で情報交換 セマンティック記述は全てRDFスキーマを用いる 物理的な相互接続性 HTTPを使用 全てのコンポーネントがリモートサービスとして運営されてい る 各コンポーネントはヨーロッパ一帯に分散して配置されている まとめ オントロジの構築は手間と時間がかかる精密作業なの で、プロの作った既存のオントロジや知識体系をでき るだけ再利用しよう 既存のオントロジや知識体系についてよく知ろう、調べよう 機械学習とオントロジ処理は相性が良いが、まだまだ 発展途上段階である インスタンスを対象とした機械学習はまあまあ実現できてい る オントロジそのものを対象とした機械学習の発展が望まれる
© Copyright 2024 ExpyDoc