オントロジー
Ontology_
かなりなんもわからんmrsekut.icon
Claude Code.icon
「ある領域に「どんな種類のものが存在し、それらがどんな関係を持つか」を形式的に定義した、概念の体系」です。
RDFが「データを書く方法」だとすれば、オントロジーは「そのデータが従うべきルール・語彙・意味の枠組み」です。
語源と直感
もともとは哲学の「存在論」(世界には何が存在するか)が語源です。情報科学に持ち込まれ、有名な定義は Gruber の:
「概念化(conceptualization)の明示的な仕様」
噛み砕くと:「人間が頭の中で暗黙に持っている『この世界はこういうカテゴリと関係でできている』という理解を、機械が読める形で明文化したもの」です。
階層:語彙の「強さ」のスペクトラム
オントロジーは単独で語るより、知識表現の「強さの階段」の中で捉えると分かりやすいです。
code:_
弱い(軽い) 強い(重い)
─────────────────────────────────────────────────→
用語集 → 分類(taxonomy) → シソーラス → オントロジー
(言葉のリスト)(is-aの階層) (類義・関連語) (クラス・関係・制約・推論)
Taxonomy(分類体系): 「犬 ⊂ 哺乳類 ⊂ 動物」のような is-a の親子関係だけ。生物分類やカテゴリツリー。
Ontology: そこに加えて、任意の関係(「飼う」「生息する」)、属性、制約・公理(「人は2つの生物学的親を持つ」)まで定義できる。
つまりオントロジーはtaxonomyを内包する、より表現力の高い上位概念です。
構成要素
オントロジーは典型的に以下から成ります。
table:_
要素 説明 例
クラス(Class) ものの種類・カテゴリ 人, 本, 著者
インスタンス(Individual) クラスの具体例 夏目漱石(人のインスタンス)
プロパティ(Property) クラス間/属性の関係 著者である, 生年
公理・制約(Axiom) 守るべきルール 「著者は必ず人である」
ここで重要な区別:
TBox(Terminology): クラスや関係の定義=「スキーマ・型」の世界(オントロジー本体)
ABox(Assertion): 実際の個別データ=「夏目漱石はこころの著者だ」(インスタンスの世界)
Knowledge Graphは、この TBox(オントロジー)+ ABox(データ) が合わさったものと理解できます。
RDFとの関係:RDFS と OWL
RDFの上にオントロジーを記述する層があります。
RDFS(RDF Schema): 軽量。クラス、サブクラス、プロパティの定義域・値域くらい。
code:turtle
ex:Novel rdfs:subClassOf ex:Book . # 小説は本の一種
ex:著者である rdfs:domain ex:Book ; # 「著者である」の主語は本
rdfs:range ex:Person . # 目的語は人
OWL(Web Ontology Language): 高表現力。より複雑な論理制約を書ける。
「クラスの交差・和・補」(例:親 = 父 ∪ 母)
「このプロパティは推移的」(祖先関係)
「このプロパティは逆関係」(親の逆は子)
カーディナリティ制約(「人は親をちょうど2人持つ」)