究極のモデリング(オントロジー工学)
今回取り上げるのは「オントロジー」についての“深い”本です。
私はセマンティックWebやオントロジーの専門家ではなく、業務システム開発を生業とするものですが、私が以下の本に強く惹かれる理由は、この本の以下の一説に集約されているように思います。
- オントロジー研究の本質は、物事に共通する本質を見抜く眼力と類似する物事の厳密な差別化をする鋭い分解能力にある。そして何よりも、オントロジーを正しく学ぶと、その二つの能力が高まり、結果として世界を構成する基盤概念の理解が深まるので、複雑な対象を明快に概念化することができるようになる。
これは読まねば。。。
オントロジー工学 (知の科学)
溝口 理一郎 (著), 人工知能学会 (著)
発売日 : 2005/1/1
目次
- Ⅰ編 オントロジー事始め
- 1章 オントロジーとは
- 2章 今なぜオントロジーか
- 3章 オントロジーの種類
- 4章 FAQ
- 5章 オントロジー構築
- 6章 セマンティックウェブ
- Ⅱ編 より進んだ考察
- 7章 オントロジーに関する基礎的考察
- 8章 オントロジー基礎研究
- 9章 オントロジー工学の成功事例
Ⅰ編は、様々な立場でのオントロジーの定義が紹介され、オントロジーに関連することを俯瞰的に取り上げて、オントロジーとは?という問いに答えています。
オントロジーという言葉は立場が違うと関心事(目的?対象?)が異なるようなので、本のタイトルが「オントロジー」ではなく「オントロジー工学」である理由が理解できる気がします。(人工知能(AI)という言葉もなかなか難しいのと似ている気がする。。。)
ところで、本のまえがきに、「本書は工学におけるモデリングと、存在論を論じる哲学者とのギャップを埋めるための第一歩を踏み出したいという気持ちに動かされて執筆された。」とあります。
続くⅡ編はまさにこの内容です。
上位オントロジーに関する内容が中心で、かなり哲学的な問題(世界)を扱っていて、難解な話が続きます。
哲学分野の存在論(オントロジー)の専門書や英語の上位オントロジーの書籍(論文?)など、様々な情報源はあると思うのですが、工学の視点で書かれた日本語の深い本は他に見かけませんので、個人的には、ここがこの本の最も価値ある部分だと思ってます。(素直に、よくここまでよく踏み込んで書いて下さいました(尊敬)と思います。)
オントロジー工学の理論と実践 (知の科学)
溝口 理一郎 (著), 人工知能学会 (編集), JSAI= (編集)
発売日 : 2012/4/1
目次
- Ⅰ編 理論
- 1章 基礎理論
- 2章 性質と量
- 3章 表現のオントロジー
- 4章 オブジェクト、プロセス、そしてイベント
- 5章 ロール理論
- 6章 和製上位オントロジー YAMATO
- Ⅱ編 オントロジー構築の実際
- 1章 医療オントロジー
- 2章 OMNIBUS オントロジー
- 3章 次世代知識システムへの展開
「オントロジー工学」の続編という位置づけとのことです。
Ⅰ編は、「オントロジー工学」のⅡ編の改訂版的な内容ですが、Ⅰ編全体で、6章の和製上位オントロジー YAMATO の内容を解説していると言える気がします。
Ⅱ編は、具体的なオントロジーの説明というより、オントロジー作成過程で得た知見の紹介が中心です。
<感想>
オントロジーにはいろいろな分類があるようです。
例えば、
- ライトウェイト(Light-weight)オントロジー
- オントロジーを「厳密に定義された用語集合」と位置付け、具体的な目標に対して必要な情報の効率的な記述とその有効利用を優先するもの
- ヘヴィウェイト(Heavy-weight)オントロジー
- 哲学的な考察を重要視し、概念一つ一つの吟味が深く、概念間の関係のセマンティックスが厳密であること、そして概念や関係の形式的な定義、あるいは意味制約記述が要求されるもの
また、次のような分類もあります。
- 上位オントロジー(Upper Ontology)
- 原理的には、あり得るすべての対象を高い抽象レベルで説明するのに必要十分であることをめざしたカテゴリーの体系であり、少なくともそれがもつ役割は哲学者が作るオントロジーに匹敵する物。
- ドメインオントロジー
- 通常オントロジーと呼ばれるものに対応するもので、対象とする世界のオントロジー。
本ブログでは、すでに以下のセマンティックWeb系の本を取り上げました。
これらの本は、ライトウェイトなドメインオントロジーを自分で作って使うための知識と言えると思います。
一方、この本は、とてもべヴィウェイトで上位なオントロジーの世界を知ることが本質的な内容だと思います。
では、ヘヴィウェイトとか上位オントロジーでは、どのようなことを考えるのでしょうか?
「オントロジー工学」のⅡ編の基礎的考察は、「インスタンスとは何か?」から始まります。
Javaなどのオブジェクト指向言語やUML(Unified Modeling Language)に慣れ親しんでいると、そのようなことは言語により形式的に決まっている、という程度で考えていましたが、これらの常識?が(氷解するとまでは言わなくても)怪しくなります。
さらに、表現、ロール、プロセスやイベントなど、それは何なのか?とたたみかけられると、殆ど意識したことがなかったことなので、今までの自分の常識?が揺れます。
正直言って、納期がタイトな業務システム開発の現場で、このレベルの検討からはじめると、現場から退場宣言をくらいそうです(笑)。
その点では、Javaなどのオブジェクト指向言語やUMLは、(対象世界に深入りすることなく)分かりやすい切り口を提供してくれていると逆に感心したりしましたが。。。
しかし、よく考えてみると、業務システム開発の現場ですら、もう少し上位の概念を検討すべき状況に遭遇することは、普通にあります。
例えば、既存のシステムに機能を追加する時、上位概念をうまくとらえることができれば、軽い追加で済むものが、これができないと、似たような違うものを大量に作ってしまうことになります。(これはコスト問題だけでなく、メンテナンス地獄の前兆でもあります。)
この本は、かなり上位の概念に関する話題が中心なので、現場とは縁遠いように思えますが、この本の価値は、結果としての上位オントロジーよりも、上位オントロジーを検討する(思考の)過程が書かれているところだと思います。
私の仕事の経験において、対象の捉え方のヒントをもらったように思います。
ところで、私は同時期に、システム開発分野で有名な『エリック・エヴァンスのドメイン駆動設計』を読みました。
この本の第1章では「知識のかみ砕き」や「深いモデル」などの話があり、第2章の最初のパターンは「ユビキタス言語」です。
一方、「オントロジー工学」には、オントロジーの効用として
- 合意を得る手段
- 暗黙情報を明示化
- 再利用と共有
- 知識の体系化
- 標準化
- メタモデル的機能
- 総合的効用
などが書かれています。
具体的な手法は違うにしても、対象への深い洞察など、ドメイン駆動設計と(どちらかというとライトな)オントロジーは、とても近いものを感じました。
このため、私はシステム開発方法論の立場から「オントロジー工学」を読んでいたように記憶しています。
といいつつ、なぜオントロジーがシステム開発方法論としてあまり表に出てこないのか?(AI分野に入っている?)という素朴な疑問も持ちました。
ソフトウェア開発には上流工程、下流工程という言葉があります。
一般に、実装(プログラミング)と設計を、下流工程と上流工程とすると、設計の上流工程は、要求分析/定義にあたると思います。
一方で、セマンティックWebとかオントロジー関係の分野で考えると、設計の上流には、オントロジー構築方法論を含んだ知識獲得と、上位オントロジーの世界があるように思えます。
構築方法論や知識獲得の手法などは、要求分析などに対応して考えやすいのですが、ソフトウェア開発方法論といわれるものに、上位オントロジーのような世界は無いような気がします。(私が知らないだけかもしれませんけど。)
文化や目的の違いと言えばそれまでですが、ヘヴィウェイトな上位オントロジーの世界があることが、オントロジーがAI分野にある理由のような気もします。
と、ここまで偉そうなことを長々と書きましたが、実はこの本、私にはかなり難解で、理解も薄いです。
難しい数式は一切出てきませんが、そういった難しさではなく、扱っている対象が難しい(哲学問題)というか、わかったような、わからないような内容が多いという難しさです。
しかし、答えがあるような、無いような問題に対して、何等かの見方で答えを作るという事がモデリングの本質、あるいはソフトウェアの設計に求められるものと同じ気がします。
その意味では、この本に書かれていることは究極のモデリングなのではないかと思えます。
さて、本の雰囲気としては、大学で先生の講義を聞いているような感覚です。しかも、先生が教壇で独り言のようにずっと熱く話されているような感じ(笑)。
私は大学時代、授業が始まると10分程度で爆睡状態に入ることが多かったのですが、この本も、数ページ読むと爆睡状態に入ってしまうような感じでした(笑)。
しかし、モデリングに対する興味があって何度か読み返すと、「そういうことを言っていたのか」と少し理解ができて、さらに先に書いたドメイン駆動設計の刺激もあって、興味が持続して、結局、なんとか最後まで読んだ感じです。
最終的には、書かれていることを理解したというより、むしろ疑問の方が多くなった気がしますが、それは理解できていない事が認識できたという点で、理解が進んだと言えそうです。(と、自分として納得するしかないのですが。)
正直言いますと、私には上位オントロジーについて語る力量は全くないため、ブログで紹介するにはためらいがあったのですが、今まで読んだ技術書とは違うインパクトがあった本だし、(アカデミック色が強い本ではありますが、)何よりシステム開発系の人にも有益な本だと思いましたので紹介させていただくことにしました。
最後に、(ディープラーニングなどを中心とした)最近のAI研究は、投資と研究成果がリンクしているような気がしており、日本はこういった分野でかなり苦戦しているように見えます。
一方で、本書のような上位オントロジーの世界は、あまり投資には関係ないと思えるし、短期的な成果を望むものでもないので、こういった(地味だけど本質的な)分野で世界をリードしてもらいたいなー、と思ってます。(研究者の方々を心より応援しております。)
関連記事
- Pythonでオントロジー指向プログラミング(Ontologies with Python: Programming OWL 2.0 Ontologies with Python and Owlready2)
- Owlready2 を Colaboratory と Ubuntu で利用する
- オントロジーエディタ Protégé を使ってみる
- RDF, OWLの面白さを知る本(Semantic Web for the Working Ontologist)
- OWLの理論的基礎を知る本(記述論理とWebオントロジー言語)
- REA パターンとオントロジー(ビジネスパターンによるモデル駆動設計)
- 百科事典のようなAI技術の包括的な教科書(エージェントアプローチ 人工知能/AIMA:Artificial Intelligence: A Modern Approach)
- メタバースの前におさえておきたい本(ゲームAI技術入門)
- Schema.org の語彙で RDFS 推論してみる(1):準備
- Googleナレッジグラフの検索APIを使ってみる(Google Knowledge Graph Search API)
コメント
コメントを投稿