「記述論理とWebオントロジー言語」を読んだ

www.ohmsha.co.jp

上記の書籍も飛ばし読みしてたんですけど、もう少しだけ読みました(ちゃんと読んだとはまだ言えない)。自分がどちらかというと数理論理学というよりは知識表現とかに興味が元々あったのもあって、とにかく買った気もします。というかAmazonで値段見たらめちゃくちゃ高くないですか、この書籍。私は普通に本屋さんで、最近、定価で買いましたよ。オーム社のページをリンクとして貼りましたけど、最近、ちょくちょく専門書でこういうの見るんですよね。一回、Amazon以外の手段がないか検討した方がいいと思います。

それはともかく、「記述論理」に関しては情報が乏しく、ど素人で全く申し訳ないんですが、もう流行ってもいない分野なんですかね。Wikipediaも日本語はなく、英語のみです。今回の書籍も平成21年に出ているということで、えーっと、だいぶ前ですよね(面倒になって計算を諦めた)。セマンティック・ウェブという考え方が現在ではもう話題にならないのと同じ雰囲気は感じます。なんとなく、ゆるやかにつながっている感じですしね。また、きっと他の界隈から見たら「述語論理じゃなくて?わざわざなんでそんなものが必要なの?」と聞かれること間違いなしで、実際に書籍の中でもその点については弁明しています。わたしにしてみたら、述語論理はDSLなんだな、という理解です。特定の用途に使う論理があって、それなりに意義もあるのでは?まあ、数学的に考えるとムダだと感じる人がいそうなことは、ふんわりと理解できます。

記述論理と言っても、公理系はたくさんあって(むしろ、それぞれの公理系によって表現力や計算のオーダがどれぐらい異なるのかが記述論理が探究するテーマの一つでもあるそうです)、最小のものは否定もなく、あってもatomicな論理式にしかつけられなかったりします。それによって計算コストを節約したり、決定性を担保しているんだそうです。わたしが実装者の観点から気にしているのはこの点で、要素が少ない論理なら、実際にプログラミング言語としても実装しやすいんじゃないかな、と思っています。しかも、興味関心はプログラミングの概念仕様に関する部分にあったりして、それならばもしかしたら小さい公理系でも事足りるんじゃないかとも考えています、いまのところ。

記述論理ではそもそもTBoxとABoxという2つのstatement集合が区別されていて、要するに、プログラミング言語でいうところのクラス定義とインスタンス定義に相当します。だからTBoxは概念同士の包含関係(継承みたいなやつ)が入っていたりしますし、ABoxには個体の性質に関するstatementが入っているわけです。そして推論はそれぞれ、TBoxでの推論(概念間の関係から導出される)とABoxでの推論(ある個体が特定の性質を持つかどうか、など)、そしてTBoxとABoxそれぞれが無矛盾であるかどうか、などの種類に分かれます。

上記の説明はやはり普段慣れ親しんでいるプログラミング言語での考え方に近いので、実装するとなってもやりやすそうですね。ひきつづき考えます。