OWLの理論的基礎を知る本(記述論理とWebオントロジー言語)

記述論理とWebオントロジー言語 (知の科学)

兼岩 憲 (著), 人工知能学会 (編集), JSAI= (編集)



前の記事『RDF, OWLの面白さを知る本(Semantic Web for the Working Ontologist)』では、RDF や OWL によるモデル構築に関する本を紹介しました。

この本の初版を読んで素晴らしいと思った理由の一つは、RDF から始めて OWL まで、表現力がどのように向上していくかを、基本的なトリプルの推論規則として簡潔に説明してくれているところでした。

これにより、流れるように RDF から OWL まで理解できたように思います。

一方で、実は私には少しモヤモヤ感も残りました。

それは、自分でモデルを作ってみようと思ったとき、RDF(S) でモデル構築すべきか、OWL でモデル構築すべきか?という素朴な疑問です。

実際には、要件や用途、対象となるドメインの複雑さなどに加えて、現実問題として、利用できるツールの制限や理論の理解の程度など、様々な要因から決まると思います。

しかし、技術的な理解不足もあって、そもそも RDF(S) の延長上に OWL があるのなら、なぜ RDFS あるいは OWL として一つの規格にしなかったのかな?という素朴な疑問につながり、そこが私が感じたモヤモヤ感だと気付きました。

OWL の仕様書には、「形式的に定義された意味を有するセマンティック・ウェブのためのオントロジー言語です」と書かれています。

この「形式的に定義された意味を有する」というのは、記述論理(DL: Description Logic)を基盤としています。

そこで、記述論理を少しだけでも理解しておこうと思ってネットを探してみると、英語の(専門家向けの難しい?)資料は見つかるのですが、当時は(今でも?)私のような素人にも読みやすい?ものを見つけることができませんでした。

そんななか見つけた本が、今回取り上げる「記述論理とWebオントロジー言語」です。

この本のまえがきに「OWLの丁寧な解説書は出版されているが、日本語では記述論理の解説書はこれまで出版されていなかった。それ故に、今さら人に聞けないような記述論理の基本的かつ包括的内容を丁寧に説明するよう求められている。」と書かれています。

まさにそのような要請に応える本だと思います。

<本の内容>

本の目次は以下の通りです。
目次
  • 1章 導入
  • 2章 記述論理の言語ファミリー
  • 3章 記述論理の推論
  • 4章 表現力と計算量
  • 5章 OWLと記述論理
  • 6章 ファジィ記述論理
  • 参考文献
  • 付録 記号一覧

まえがきには、読者タイプによって本の読み進め方(概略読む場合と本格的に読み進む場合)が書かれています。

私の場合は、「Semantic Web for the Working Ontologist」などのOWL本を先に読んでいたので、まず5章にある「OWLから記述論理への変換例」から、記述論理による表記を知り、その後に導入から読み進めたと記憶しています。

全体的に説明がとても丁寧で、(よくある数学や論理の教科書に比べると)読みやすい本だと思います。

基本的には OWL の本というより、記述論理の本なので、OWL に取り込まれていない内容についても解説されています。

なお、この本は OWL 2 が勧告になる前に出版されていますので、OWL 2 については触れられていません。

<感想>

「論理」という言葉から、難しそうな哲学とか数理論理とか、業務システム構築を生業とする私にとっては縁遠い感じ(アレルギーに近い?)がしていましたが、この本を読んで、むしろ記述論理に親近感?を感じました。

まえがきには、以下のように書かれています。
  • 記述論理は数学の形式化を目指した数理論理学の一分野というより、むしろ人工知能や知識工学における概念的な知識表現の研究から始まった分野であり、現在もその分野に属している。
  • 記述論理は知識表現、推論とコンピュテーションの3つが思想の土台にあって、計算機上で安全かつ効率的に知識表現と推論を実現するための論理的な保証を与えている。この思想は、セマンティックWebにおいて(計算機が意味を処理できる)Machine-Readable なWebを実現しようとする考えと相性がいい。

つまり、私にとって敵じゃない(仲間じゃん!)という(笑)。

また、本文には、他の方法論に対する記述論理の優位性として満たすべき必要条が、以下のように書かれています。
  • 推論が決定可能である。
  • 言語を拡張・縮小して表現力を分類する。
  • 表現力と計算量のトレードオフを分析する。
  • 閉世界仮設(OWA)に基づいている。

ここで特に私が興味を引いたのは、決定可能性です。

決定可能性とは、「問題を解くためのアルゴリズムが存在してそれが必ず停止することをいう」と書かれています。

通常のプログラミング言語だと、計算が停止しないプログラムが簡単に作れます(簡単に無限ループに陥るプログラムを作れます)。

しかし、データベース言語と言われるものが(例えばSQL)簡単に無限ループに入ってしまうようなことがあっては困ります。(答えが返ってくるのが非常に遅いクエリを書くのは簡単ですけど(笑))

記述論理の要件に決定可能性が考慮されているという点で、私はOWLがデータベース言語に近いという印象を持ちました。
(一方、RDFレベルだと、こういった枠組みが無いので、自分としては違いが明確になりました。)

また、論理なので、推論によりオントロジーに矛盾が無いかどうかの判定もできます。

そう考えると、RDF か OWL かという問題は、私にとっては、記述論理の枠組みを利用するかどうか、という問題になり、自分が感じていたモヤモヤが無くなってスッキリした覚えがあります。

もっとも、実際には、記述論理の枠組みは利用しないけど、OWLの一部の語彙だけ利用するという考え方もあると思います。

また、そういった観点で、「Semantic Web for the Working Ontologist」に書かれている RDFS Plus は程よい落としどころなのかも、と改めて意義を感じたり。

ところで、論理という名前から最初は Prolog のような言語を想像しましたが、この本を読んで、記述論理はそういった汎用言語ではなく、知識表現と推論に特化したものであること、そして、記述論理で表現できる範囲(限界?)についても、裏付けをもって理解できました。

このため、実務的なシステム構築という観点では、他のルール言語(SWRLなど)や汎用プログラミング言語との組み合わせが必要になる局面がありそうだと感じました。

このあたりも、記事『Pythonでオントロジー指向プログラミング(Ontologies with Python: Programming OWL 2.0 Ontologies with Python and Owlready2)』で紹介した owlready2 は面白いなーと感じたところです。

最後に、OWL を使った知識表現を深堀しようとすると、記述論理の記法などについて知っておくと良いこともあるかと思います。

具体的な(本格的な)オントロジーの実例を探しはじめると、学術系の論文に行きあたることが多いのですが、(私が見た限りでは)OWLの記法ではなく、記述論理で表現されていることが多いと思います。

例えば、
  • Person-Role ≡ ∃played by.Person
と書かれていても、恥ずかしながら、私には正確な意味が分かりませんでした。

この本を読んだ後で見直すと、OWL で書かれるより簡潔明瞭に見えるので不思議です(笑)。

以上、今回の内容は少々アカデミック色が強い内容ですし(内容が内容だけに)、熱い感じの本というより教科書的だし、素人向けか?と問われると違う気がしますが、知識表現に興味がある人は、(全てを読まなくても、)興味があるトピックや導入部分だけでも読む価値がある本だと思います。

関連記事

コメント

このブログの人気の投稿

VirtualBoxのスナップショット機能

Google Document AIで画像から表形式データを抽出する(Vision API OCRとの違い)

Ubuntu/Colab環境でPDFファイルのページを画像化する(pdf2image、pdftoppm、pdftocairo)