※本記事は元々はnote投稿の記事のものです。
https://note.com/super_crow2005/n/n58ec80977aef?magazine_key=m1df32e6ef6e1
オントロジーについてちょっと書いてみたいと思った。書くにあたって、実際に何かに用立てることを考えれば、OWL(web ontology language)で記述することが現実的だろう。そして、OWLで記述するならば、その前にRDF(resource description language)を見ておかないとならないと思う。
それならXML(extended markup language)やHTML(hyper text markup language)まで戻る必要もあるかもしれない。HTLMはウェブブラウザでおなじみのウェブページ記述用の言語であり、これは自然言語のみからなる文章に記号を埋め込んでページをアレンジするための言語である。ハイパーリングがあるのでウェブらしいのだが、文書の清書をするという意味合いからは、文書を清書するワープロのようなTeXに近いといえるかもしれない。書こう(描こう)とする書面(画面)があって、それを実現するために、文書に記号を入れ込む感覚である。もっとも、画面をアレンジするという意味では、CSS(cascading style sheets)によって詳細を外部的に定義するようになっている。TeXでもパッケージを使って書式を定義しているので、同じようなことだろう。
XMLは、ウェブで、つまりインターネットでデータ交換をするためのフォーマットである。基本的には括弧<>で挟んで、内容を記述するのであるが、タグや属性、テキスト要素(とではさむ)で構成し、括弧の下位に括弧を設けるといった木構造によってデータの構造的な格納を可能としたものである。スキーマを作って、テキストファイルでのデータの記述方法を定めることができる。ただ、データ交換としては、JSON(JavaScript object notation)が普及しているようだ。まあXMLは見た目がごちゃごちゃしていて、とても手書きがしんどいので、そうなるだろう。RSSフィードはXMLデータを利用しているから、XMLも実績がないわけではない。
RDFはXMLを、ほぼ直接的に拡張したといえるだろう。OWLもそうであるが、RDFはXMLファイルフォーマットである。XMLパーサーでファイルを読み込むことができるし、実践的にも活用してもよいと思う。違いは、というとセマンティック・ウェブという、記述方法が規定されているということである。いわゆるSVO、主語-述語-目的語のトリプルでデータの関係を表現する、ということである。論理的な充足可能性の判定もできるようにすることを狙っているのだろうし、実際にタグや属性、タグに応じた木構造の入れ方は決まっているため判定できるし、定められた問い合わせ文による検索もできるだろう。それとnamespace(名前空間)によって、記号(ことば)の領域が決められるようになっている。
RDFではRDFS(RDFスキーマ)によって語彙の定義が可能となっており、これによってクラス、プロパティを定義できる。これによってクラス(普遍者)やインディビデュアル(個体;インスタンスとも)で検索や論理がいえるのだが、これは即ちオントロジーとして書式、規則を決めるような話となってくる。実際、OWLのベースとなっているクラスの定義などはRDFのタグを利用しているし、オントロジーとしてはアプリケーションや分野間の情報の交換のためのオントロジー(ドメインオントロジー)や領域間で普遍的に利用できるオントロジー(上位オントロジー)といったことに課題意識があるし、対象の物事をどのように認識するか、存在するものと見なすかといった哲学的な事も踏まえてデータ構造を作るといったところに気持ちが向いていくものだ。尤もクラスの公理やプロパティの制約(関係、述語についての条件)の記述方法はOWLで定められているのであって、オントロジーの記述にはOWLが必要である。RDF、RDFSはそのベースに過ぎない。
なお、オントロジーとか、普遍者、個体、また内包、外延とかいっても、クラス、インスタンス、クラスメンバ、インスタンス集合といったようなものであり、オブジェクト指向みたいなものとして、テキストファイルにクラス定義やインスタンス(データ)を格納しておいて、プログラムで読み込んで利用できる、というくらいの軽い気持ちでいるのもよいかもしれない。