内容指向研究は「コンピュータと人間との知識共有の壮大な試みである」.これまで,形式化可能な「入れ物」の理論と一般性の全くない「領域固有知識」という2分法が広く受け入れられてきた.言い換えると「内容を扱う理論は存在しない」という暗黙の了解があった.内容指向研究はそれらの固定観念を払拭し,21世紀に必要となる「知識を積み上げる」こと,そして「知識の相互運用」を可能にする理論と技術を研究する[溝口96].
従来学問は領域毎に固有の体系を作り上げてきた.一方,コンピュータの誕生と同時に生まれた情報工学は領域に依存しない「情報」や「データ」という抽象化したものを対象に理論を作り上げてきたが,その成功は領域の特殊性を捨象した後に残された「もの」を真摯に考察した成果である.内容指向研究は「オントロジー」を核にした適度の抽象化と,対象世界を理解しモデル化する過程をガイドする理論と技術を構築することによって一般理論を構成する(5.1参照).
知識は領域依存であり,知識を直接考察の対象にした知識工学は行き詰まり感があることは事実である.しかし,オントロジーは知識を構成する基本概念に立ち戻って考察する.知識の階層性,コンテキスト依存性,知識の分解可能性などを注意深く考察することによって,物事や対象の成り立ちを基本から検討し,知識ベースが持つ様々な問題を回避することの糸口を与える.
確かに内容指向研究は領域固有の知識を対象にする.しかし,「オントロジー」を武器にして,階層化された適切なサイズの領域内で「知識を積み上げる」理論の確立を目指す.実世界の知識を扱うための基礎理論から技術までを対象とする研究であり,従来の基礎と応用の単純な2分法的考えをうち砕く試みである.
以下の解答は Ontolingua mailing list においてStanford 大学のAdam Farquhar <axf@HPP. Stanford.EDU>によって,Wed, 26 Feb 1997に掲載された意見の翻訳である.
(a) それはその分野の人々(エージェント)の合意した知識を表現したものか?
(b) 人々はそれを正確に定義された用語として参照しているか?
(c) その表現に用いられている言語は人々が言いたいことを表現するのに十分な表現力を持っているか?
(d) それは複数の異なった問題解決に再利用可能か?
(e) それは安定しているか?
(f) それは,新しい知識ベース,データベーススキーマ,そしてオブジェクト指向プログラムなどの複数のアプリケーションプログラムを開発するための出発点として利用可能か?
Yes の解答が多ければ(強ければ)多いほど,それだけオントロジーらしくなる.
このように,「オントロジーと知識ベースには明確な境界はない」というのも一つの立場である.それは,オントロジーも言うまでもなく,知識の一種であることから当然の帰結であるとも言える.しかし,「知識ベース」の意味がきわめて曖昧であるのでその定義をすることも必要であろう.例えば,Cycのような知識ベースを意味するのであればこの問はまさに的を射た問であるといえる.しかし,専門家の経験則を蓄積したエキスパートシステムのルールベースを想定すれば,オントロジーとの比較は問題外となろう.なぜならそのようなルールベースは開発者が持つ(暗黙的な)オントロジーに基づいて構築されているからであり,決してオントロジーを表現していないからである.
確かにオブジェクト指向言語のクラス階層とオントロジーの概念階層との類似性は高い.また,オブジェクト指向方法論はその上流における分析ではオントロジー開発方法論との共通点は多い.しかし,実装に近いフェーズでは前者は実行性能を重視し,後者は宣言的記述に基づき明示性,形式性を重視する.そして,決定的な相違点は公理の「宣言的」かつ「明示的」記述性の有無にある.すなわち,オブジェクト指向言語は本質的に手続き的であるためクラスの意味,クラス間の関係,そしてメソッドの持つ意味はその手続き的記述の中に埋もれており暗黙的である.一方,オントロジーでは各概念の意味定義と概念間の関係記述は宣言的,かつ明示的である.手続きに関してもその仕様は宣言的に記述され,形式性,明示性は維持される.
オントロジーは「Taxonomy(概念階層)」という意味を含意するが,それ以外の意味も含んだ概念である.一般に,新しい用語・概念は既存の概念を発展させたものが多く,全く新しい概念であることはまれである.多くはそれまでに存在していた概念を拡張したもの,あるいは新しい観点から再評価したもの,などである場合が多い.オントロジーもその例外ではない.すなわち,従来から存在していた「概念階層」,「標準語彙」,「Upper model」などの概念を含むとともに,知識ベースの開発に際してなされている暗黙の仮定,前提となっている対象世界の概念化(利用目的に依存した概念とそこで興味のある概念間の関係)を述語論理などを用いた明示的かつ形式的な定義という新しい概念が付加されている.
エキスパートシステムの知識ベースの開発においてもこの種の質問はしばしばなされた.知識ベースを構築するのは知識工学者かドメインエキスパートシステムか,という質問である.どちらでなくてはならないということはない.いずれの場合においても両方の知識が必要であることには変わりはない.
Upper オントロジーは本質的には哲学者の領分であるが,コンピュータ科学者の協力によってコンピュータという「武器」を駆使してこれまでにない,コンピュータ科学のニーズに合致したオントロジーが構築される可能性がある.
工学的にはオントロジーはその利用目的に依存するものであって,汎用のオントロジーは使いものにならないという考えが支配的である.その代表的な考えがタスクオントロジーであり,問題解決に用いられるオントロジーはタスクが要求するように組織化されているべきであるというものである.しかし,一方ではUpperモデルと呼ばれる汎用のオントロジーが存在する.両者の距離は遠い.まず思想の相違は一見決定的であるように見える.しかし,両者の用途を考えると,Upperモデルは領域やタスクを越えた多くの人々の間で共有することを目指した概念化であり,タスクオントロジーに現れるタスク固有の概念においても仮定される基本的なものである.実際,両者の遠い距離を埋めた例は少ないが,法律オントロジーでの成功に見られるように不可能であるとは思われない[山口98].タスクオントロジーは合意可能なUpperモデルを前提としてその上に積み上げる形で設計すべきなのであろう.
確かに「オントロジー」が意味するところは広範囲にわたっている。その計算論的意味は極めて幅広い。そこで、筆者はオントロジーに計算論的意味づけの観点から次の3つのレベルを設定することを提案している。
・レベル1
オントロジーの基本的な機能は,対象世界に存在する概念の切り出し(選択)とそれらの関係の記述である.最も一般的で簡単な記述が階層関係の記述であり,そこには概念のラベルと階層記述だけが存在する.このレベルのオントロジーを最もプリミティブなものであるという意味で,レベル1オントロジーと呼ぶ.Internet上のドキュメントのメタデータ記述に使われれるオントロジーや探索エンジンの概念階層はこのオントロジーの典型である.
・レベル2
次に各概念の意味定義(制約)や関係の記述(公理的記述)が加わることによって,オントロジーを利用したモデル構築において種々の適切なガイドや示唆を与えると共に,オントロジーを用いて記述できるもの全体の性質(Competence)に関する質問に答えることができる.このオントロジーをレベル2オントロジーと呼ぼう.多くのオントロジーはこのレベルを目指している.
・レベル3
このレベルのオントロジーはオントロジーを用いて構築されたモデルのある問題解決における実行のパフォーマンス(Performance),即ち,オントロジーを用いて記述したものが実行されたときの振る舞いに関する質問に回答する.このようなパフォーマンスに関する質問に対しては,本質的に手続き的な記述が必要な場合があり,形式的な公理と証明系では答えることができないことが多いのが現実である.そこで準公理が必要となる.KADSのオントロジー[Breuker94]やタスクオントロジー[テヘリノ93][瀬田98]はこのレベルのオントロジーである.
オントロジーの目的依存性から,オントロジーはその利用目的に合致した様々な機能を持っている.ここでは,それらの機能を数え上げる.
(1) 語彙の提供
対象とする世界を記述する際には厳密に定義された,関係者の合意に基づく「語彙」が必要であるが,オントロジーはそのような標準的な語彙を提供する.
(2) 暗黙情報を明示化
ある領域において仕事をしている人々にとって無意識に仮定しているものが多くある.その典型が日頃頻繁に用いている用語(概念)の定義であり,それらの概念間に存在する基本的な関係や制約である.また,知識ベースは何らかの概念化に基づいているが,その概念化に関する情報は多くの場合暗黙的である.オントロジーはまさにこのような暗黙知識を記述したものであり,それらを明示化する役割を持っている.
ここで注意しなければならないことは,「単に」明示化しただけである,とは思わないことである.この「明示化」がいかに重要であるかは経験した人にしか理解できないと言う宿命的なことがあるが,暗黙の前提を明示化できなかった(しなかった)ことが知識共有・再利用を妨げていた大きな原因の一つであることを認識することは重要である.明示化の効果は計り知れないものがある.
(3) 概念定義
厳密な定義をすることなく日常的に用いている概念の明確な定義を提供する.これによって誤解が減り,人間同士,そしてコンピュータと人間との意味共有の第一歩が始まる.
(4) データ構造
データベースの概念スキーマはデータベースのオントロジーであるが,その意味においてオントロジーは対象とする世界に存在する概念や情報を記述するデータ構造を提供する.
(5) 知識の体系化
知識を体系化するにはまず厳密に定義され,関係者が合意する概念(用語)が必要である.そしてそれらを用いて様々な現象,観測事象,興味ある対象を説明する理論が記述され,組織化される.このようにオントロジーは知識を体系化する際の拠り所となるバックボーンとしての機能を持っている.実際,筆者らはIMSプロジェクトのGnosisプロジェクトにおいて,設計知識の体系化をタスクオントロジーの概念に基づいて研究を進めている[IMS97][上田97].
(6) 標準化
今後の知識処理の高度化,高能率化を考えるとき,標準化の問題を避けて通ることはできない.工業製品の生産性の高さを考えれば明らかなように,必要な基本部品の標準化は生産性の高度化に貢献するところが大である.ボルトとナットに対応するような規格品を知識処理の世界でも作る必要がある.オントロジーは標準概念の意味を規定するものであり,オントロジーの一般性,共通性,形式性は標準化に貢献する.
(7) 設計意図
オントロジーはシステム設計者が持っている対象に関する理解,システム設計の意図,すなわちdesign rationaleを明らかにする.オントロジーは前提とされている条件や環境,解くべき問題が要求する仮定などの暗黙的な情報,そしてそれを反映した対象の世界の概念化に関わる根本的な情報を明示し,知識ベースの構築を支えるバックボーンとして機能する.具体的には,診断システムであれば診断可能な故障原因のクラス,推論可能な範囲,定性推論であれば導出可能な因果関係のクラス,ドメインのモデルであれば想定したタスク,など設計者の意図が明らかにされる.
(8) メタモデル的機能
モデルは現実の対象を抽象化してコンピュータ内部に作られる.そして,オントロジーはある対象をモデル化するときに必要となる概念とそれらの間に成立する関係を明示的に規定し,そのモデルはオントロジーが提供する概念と制約の下で作られる.この意味で,オントロジーはメタモデルとしての機能を持っているということができる.
(9) Theory of content(内容の理論)
以上のことを総合して,オントロジーは,ともすれば個別の状況に依存したアドホックな議論になりがちで形式理論の様に積み重ねが効くような方法論を持たなかった「内容指向研究」に対して,内容を扱うために必要な新しい「理論」,Theory of Content を提供する
オントロジー構築の方法論は上述のように提案が行われつつあるが,オントロジー工学となるとおぼつかない状況である.オントロジー工学の方法論はこれから周知を集めて走りながら考えて行くべき物であると考えている.あえて,筆者のこれまでの経験を下にした非常に個人的な見解を述べるならば,
我々が何かを表明するときには必ず暗黙に仮定しているものが存在する.その典型が対象の「モデル」を構築するときである.ある対象のモデルを構築する際には,(1) 対象を利用する目的に依存して定まる視点があり,(2) それに強く依存する仮定があり,そして(3) 視点に依存して切り出される対象を構成する基本概念とそれらの間の関係がある.ところが,多くの場合実際に記述されるのは「モデル」のみであり,基本概念を除いて全てが暗黙的であり,記述されることはない.しかも,その基本概念も「ラベル」が存在するだけで定義がなされることも多くないのが現状である.そして更に悪いことに,当然合意があると思っていた一般的な用語,たとえば,「モデル」,「振る舞い」,「機能」などの用語の解釈にすら身近の研究者の間で異なった解釈をしていることがある.このように考えると寒気さえ覚えるほどモデル記述は不完全なのである.
既知と思っている概念の厳密な定義を試みると,意外と我々はよく分かっていないことに気づいて愕然とすることがある.筆者らが最近行った,「故障のオントロジー」の研究の例を簡単に紹介する[来村98].
「故障原因」とはなにか?これは定義する必要性があるとは思えないほど自明に思われるかもしれないが,実は結構曖昧である.テレビが壊れたので修理してもらった時を考える.そこで,修理屋さんに「このコンデンサが壊れててましたので交換しておきました」と言われると,コンデンサの故障が原因であったと思う.しかし,そのテレビは去年買ったばかりであるとすると,コンデンサが壊れたことの原因があるように思われてくる.どこかに断線があって定格を越える電流が流れたのではないか?隣の部品が発熱しているのではないか?などである.この2種類の「原因」はどのように概念化されるのか?原因から兆候が現れるのであるが,その伝播過程や理解過程は上述の二つの原因では相違があるのであろうか?前者の場合支配的であるのは,「全体(テレビ)」が壊れたのだからその「部分(部品)」のどれかが壊れているはずであるという理解であり,後者の場合にはそのような推論は無効で,物理的現象に基づく因果的理解が必要である.また,実際の因果伝播を考えても,前者の場合にはテレビの構造と部品の機能の知識だけで因果連鎖を追っていけるが,後者の場 合にはそれを越えた知識が必要とされる.因果連鎖の途中には,兆候を説明する物理状態が複数個現れるがそれぞれをどのように概念化すればいいのか?故障の原因に「究極の原因」というのがあるのか?「兆候を説明する何か」を故障原因と呼ぶなら,究極の原因に至るまで何レベルの原因があるのか?どのタイプの原因を発見するにはどのような知識の準備が必要なのか?これまでに多くの故障診断システムが提案されてきたが,それらの診断能力を概念的に比較検討するために十分な語彙(概念)があるのであろうか?....
このように,「故障」というありふれた概念に関しても非常にたくさんの疑問がわいてくる.そして,これらの疑問に答えるために概念化を精密にした後に故障診断システムを再考察すると,多くのシステムの能力の相互比較ができるだけでなく,新しい能力を持つ診断システムの設計が可能になった[来村98].
筆者は以前,オントロジー工学の究極の目的は,「実世界,厳密には情報科学が対象とし得る全ての対象のモデル構築の基盤を与えること」にあることを宣言した.しかし,この言明はきわめて一般的であるため補足説明が必要であるように思われる.
問題は「対象」という概念である.情報科学が対象とするものは実に多様である.故障診断の対象を例に取ると,モータ,テレビ,自動車,発電(化学)プラント,日本全体の電話網,というようにその「領域」も「規模」も多様である.しかも実際には診断以外の様々なタスク(問題解決)に対応するモデルを構築する必要がある.このような多様性に対応できるモデル\築の基礎としてオントロジーは機能しなければならない.
上の例は全て「具体的な人工物である」.我々は「問題解決」のモデルにも興味がある.診断とはどういう行為か?設計とは?あるいは問題解決ではないが,ビジネスプロセスもモデル構築の対象となっている.
そして最大の「対象」は「知識」である.知識のモデルとは何か?この問いは興味深いがここでは触れないでおこう.
モデルの構築には,基礎となるビルディングブロックとそれらの接続や組み合わせを規定する規約や理論が必要となる.このことは全てのモデル構築に共通する.確かに具体的なビルディングブロックは領域に依存する.しかし,一見多様に見えるモデルも比較的少数のタイプに類型化することができるものと思われる.オントロジーとしてはそれらのタイプに固有の理論を提供することが目的であること,そして,各クラスに属する概念の抽象階層を注意深く構築すれば多くの共通する性質(理論,規約)を見いだすことができることを考慮すれば,それほど大きな困難はない.しかも,オントロジー工学はオントロジー開発の方法論,その記述言語,オントロジーの利用法などを提供してモデル構築という一般的な側面について貢献する.
考察すべき問題は多様性の問題より,モデルに要求する計算のクラスであるように思われる.言い換えると,上述のオントロジーの3つのレベルの考え方である.レベル3までのオントロジーは確かにドメインの多様性に耐えうるものの構築は容易ではない.しかし,レベル2オントロジーは使用に耐えるものの構築の可能性は十分高いと考えている.