1.1 哲学におけるオントロジー
オントロジーは、もともとは、哲学において、存在とはなにか、あるいは物理的・概念的な存在は本質的にどのようなものであるのか、という課題を探求する活動である、「存在論(Ontology)」を指すものである。
例えば伝統的な哲学では、存在論の中で、以下のような問いに取り組んできた。
- 神はどのような存在であるのか→すべての属性を持つもの
- 人間はどのような存在であるのか→想像力を持つ動物
参考:哲学においては、存在論とは別に、対象となる事象を人間がどのように認識するか(できるのか)を探求する「認識論(Epistemology)」と呼ばれるアプローチがある。
1.2 オントロジーと辞書・辞典
物理的・概念的な事象を見極めるという、存在論的(オントロジー的)な視点に基づいて、実用的な成果を出してきたのが、辞書・辞典である。
例:
- 国語辞典
- 概念や事象を表す日本語の用語を、日本語の文章によって定義している。
- シソーラス
- 単語同士の、同義・類義関係を定義した辞書である。
- 英和(和英)辞典
- 英語と日本語という、異なるドメインに属する単語の関係を定義している。
1.3 コンピュータサイエンスにおけるオントロジー
コンピュータサイエンスの領域におけるオントロジーも、哲学と同様に、さまざまな事象や概念の性質を整理し、定義するための枠組みである。哲学や辞書との主な違いは、以下の通りである。
- 世界のあらゆる事象や単語を扱うのではなく、ある限定された領域(ドメイン)における概念や用語を対象とする。
- 対象領域における事象の性質や関係性が、記号(数理)論理学の枠組みに基づいた、明確な(well-defined)構文で表現される。
1.4 セマンティックWebにおけるオントロジー
さらに、セマンティックWebにおけるオントロジーは、以下の特徴を持つ。
- 対象領域における事象の性質や関係性が、コンピュータで処理可能であり、かつWeb上で共有が容易な形式(XML/RDF表現など)で記述される。
- 基本的に、Web 空間上で特定できるソースを結びつけるというスタイルを取ることで、記号論理学よりも、現実世界と強い関係性を持った事象の記述が可能である。
これによって、セマンティックWebにおけるオントロジーは、インターネットやイントラネットを介して、領域、組織、部門などを越えた多様な知識を共有するための手段として、普及しはじめている。
現在、セマンティックWebにおけるオントロジーを表現する手段として、OWL (Web Ontology Language)という語彙体系と、それを処理するためのルールなどの関連技術が提案されている。
図1 セマンティックWebの概念図出所:http://www.w3.org/DesignIssues/diagrams/sw-stack-2005.png
OWL は、オントロジー記述言語として、以下のような事象の関係性を定義することができる。
以下に、OWLで用いられる主な構文について述べる。
a. クラス定義、クラスのおよび上下関係の定義
OWLのクラスは、owl:Class 要素によって定義される。例えば、「准教授は教員の一種である」という知識は、以下のように表現される。
<owl:Class rdf:ID="准教授"> <rdfs:subClassOf rdf:resource="#教員"/> </owl:Class>※ セマンティックWebにおけるオントロジー定義では、RDF、RDFS、OWLなどを組み合わせる。これを RDF グラフで表現すると以下のようになる。
b. クラスの同義性の定義
例えば、「教員と教授陣は同義である」といったように、異なる名前のクラスが同じものである(同値である)という関係は、owl:equivalentClass 要素によって定義される。
<owl:Class rdf:ID="教授陣"> <owl:equivalentClass rdf:resource="#教員"/> </owl:Class>c. クラスの異義性の定義
「准教授は、教授や講師とは異なる」という知識は、owl:disjointWith要素によって定義される。
<owl:Class rdf:about="#准教授"> <owl:disjointWith rdf:resource="#教授"/> <owl:disjointWith rdf:resource="#講師"/> </owl:Class>d. クラス集合の定義
クラス集合の論理的な組合せは、以下の要素を用いて表現する。
- owl:intersectionOf
- クラス集合の「積」を表す。
- owl:unionOf
- クラス集合の「和」を表す。
- owl:complementOf
- クラス集合の補集合(主語クラスのうち目的語クラスに属さない部分)を表す。
例えば、「教授陣は、教授、准教授、講師を合わせたものである」という知識は、以下のように表現される。
<owl:Class rdf:ID="教授陣"> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#教授"/> <owl:Class rdf:about="#准教授"/> <owl:Class rdf:about="#講師"/> </owl:unionOf> </owl:Class>
OWL では、プロパティの定義について、「データ型プロパティ」と「オブジェクトプロパティ」という、2種類の定義方法がある。
a. データ型プロパティ
データ型プロパティでは、オプジェクトの属性の型を定義する。
以下は、データ型プロパティの記述例である。例えば、「『年齢』という 属性の値の範囲は、プラスの整数(nonNegativeInteger) である」という知識 は、以下のように表現される。
<owl:DataProperty rdf:ID="年齢"> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#nonNegativeInteger"/> </owl:DataProperty>b. オブジェクトプロパティ
オブジェクトプロパティでは、属性が取り得る値の範囲を定義する。
以下は、オブジェクトプロパティの記述例である。例えば、「『担当教員』というオブジェクトは、『授業科目』を『担当』する『教員』である」という知識は、以下のように表現される。
<owl:ObjectProperty rdf:ID="担当教員"> <rdfs:domain rdf:resource="#授業科目"/> <rdfs:range rdf:resource="#教員"/> <rdfs:subPropertyOf rdf:resource="#担当"/> </owl:ObjectProperty>
OWL によって定義されたクラスを元にインスタンスを定義する場合は、RDFを用いる。
<rdf:Description rdf:ID="123456"> <rdf:type rdf:resource="#教員"/> </rdf:Description>
既に見てきたように、セマンティックWebを用いたオントロジー記述をする際には、 OWL だけでなく、RDF や RDF Schema の語彙を組み合わせる必要がある。
以下に、これらの語彙を用いる際のおおまかな方針を示す。
- RDF
- インスタンスを特定、あるいはクラスとインスタンスの関係を定義するために用いる。
- 例:rdf:Description、rdf:resource、rdf:type、など
- RDF Schema (RDFS)
- クラスのの上下関係、属性の範囲など、より抽象的な情報を記述するために用いる。
- 例:rdfs:subClassOf、rdfs:range、など。
- OWL
- クラス間の多様な論理的関係性(同等、少なくとも1つが該当、など)を記述するために用いる。
実際のオントロジー記述では、上記の語彙に
- Dublin Core
- 著作物の記述
- FOAF
- 人物の記述
などを加え、さらには新規に定義した独自の語彙を用いることもある。
RDF/OWL を利用した歴史情報閲覧システム参考リンク:
- 馬場裕子,永森光晴,杉本重雄: RDF/OWLを利用した歴史情報閲覧システムの構築, 情報処理学会研究報告. 人文科学とコンピュータ研究会報告 2008(73), 49-56.
現在、セマンティックWeb 技術とオントロジーが、以下のビジネス分野で応用されはじめている(参考:文献1, pp. 213-237.)。
- 水平情報統合
- データ統合
- スキル発見
- マルチメディアデータベース、など。
認知科学会・情報処理学会による「総合学術辞典(仮称)」構想
参考リンク: