目次を表示する

オントロジー入門 2026 ─ 哲学・Palantir・GraphRAG までの全体像

計算機科学のオントロジー ─ Gruber定義から Closed/Open World へ

第2章: 計算機科学のオントロジー ─ Gruber定義から Closed/Open World へ

Closed World vs Open World Assumption と6構成要素

第1章で「オントロジーには3つの顔がある」と整理した。本章ではそのうち (2) 計算機科学のオントロジー を深掘りする。1990年代の Gruber 定義から、構成要素、そして「データモデルと何が違うのか」の核心まで、図解で見ていく。

Gruber 定義をもう一度

第1章で軽く触れた定義を、改めて分解する。

1993年 Tom Gruber:
  "an explicit specification of a conceptualization"

1998年 Studer らによる拡張:
  "a FORMAL, EXPLICIT specification of a SHARED conceptualization"
                ↑           ↑                ↑           ↑
             機械可読     明示的           合意済み    抽象モデル
graph LR
    G[Gruber 1993] --> S[Studer 1998]
    G --> E1[explicit<br/>明示的]
    G --> C[conceptualization<br/>抽象モデル]
    S --> F[formal<br/>機械可読]
    S --> SH[shared<br/>合意済み]
    style G fill:#1a2030,stroke:#b794f4
    style S fill:#1a2030,stroke:#4cc9f0

4つの形容詞すべてを満たすことが大事。たとえば:

ケースexplicitformalsharedconceptualization
あなたの頭の中の概念
Wiki 記事に書かれた用語集
ER 図
OWL ファイル
Palantir Ontology Manager

ER 図がオントロジーになりきらないのは、formal(厳密なセマンティクス)と shared(標準化された共通語彙)の側面で弱いからだ。

構成要素 ─ 6つの基本ブロック

オントロジーは、以下の6つの基本ブロックから組み立てる。

graph TB
    O((Ontology))
    O --> CL[Class / Concept<br/>概念カテゴリー]
    O --> I[Instance / Individual<br/>個体]
    O --> P[Property / Relation<br/>関係]
    O --> A[Attribute / DataProperty<br/>リテラル値の属性]
    O --> AX[Axiom / Constraint<br/>制約]
    O --> R[Inference Rule<br/>推論規則]
    CL --> CLE[例: Person, Organization]
    I --> IE[例: John Smith]
    P --> PE[例: worksFor, partOf]
    A --> AE[例: hasAge, hasName]
    AX --> AXE[例: Person は Father を高々 1 つ]
    R --> RE[例: friendOf は対称]
    style O fill:#1a2030,stroke:#b794f4
要素定義
Class / Conceptドメインの概念カテゴリーPerson, Organization, Product
Instance / Individualクラスの具体的な個体John Smith, Anthropic
Property / Relationインスタンス間の関係(ObjectPropertyworksFor, partOf, friendOf
Attribute / DataPropertyリテラル値(数値・文字列など)への属性hasAge, hasName
Axiom / Constraintクラスやプロパティの制約”Person は Father を高々 1 つ持つ”
Inference rule推論規則friendOf は対称、subClassOf は推移的

クラス・関係・制約」の3つが核で、Instance はそれを具体化したデータ、Inference rule はそれを動かす燃料、と考えるとシンプル。

サンプル:3行のミニオントロジー

# Class
ex:Person a owl:Class .
ex:Father a owl:Class ;
    rdfs:subClassOf ex:Person .

# Property(関係)
ex:hasFather a owl:ObjectProperty ;
    rdfs:domain ex:Person ;
    rdfs:range  ex:Father .

# Axiom(制約)
ex:Person rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty ex:hasFather ;
    owl:maxCardinality 1
] .

# Instance
ex:John a ex:Person .
ex:Mark a ex:Father ;
    ex:childOf ex:John .

これだけで「John は Person で、Mark という父親を1人だけ持つ」という知識が機械可読に表現できる。

★ 本質:Closed World vs Open World Assumption

ここがオントロジーを理解する最大の関門であり、データモデルとの本質的違いだ。

graph TB
    Q["Q: 'John に妻はいるか?'<br/>データ: John のレコードに spouse 列が空"]
    Q --> CWA[Closed World<br/>'述べられていない = 偽']
    Q --> OWA[Open World<br/>'述べられていない = 未知']
    CWA --> CWAA[A: '妻はいない'<br/>NOT EXISTS]
    OWA --> OWAA[A: 'まだ分からない'<br/>UNKNOWN]
    CWA --> CWASys[ER図 / RDBMS / JSON Schema]
    OWA --> OWASys[OWL / RDF / 知識グラフ]
    style CWA fill:#1a2030,stroke:#ff4d6d
    style OWA fill:#1a2030,stroke:#4cc9f0

Closed World Assumption (CWA) ─ データモデルの世界

述べられていないことは偽である」と仮定する。

  • ER 図、RDBMS、JSON Schema はこちら
  • WHERE spouse IS NULL で「妻がいない人」を取り出せる
  • システムが完全な情報を持っていることを前提

Open World Assumption (OWA) ─ オントロジーの世界

述べられていないことは「未知」である」と仮定する。

  • OWL、RDF、知識グラフはこちら
  • spouse トリプルがないからといって「妻がいない」とは結論できない(情報がないだけ)
  • システムが部分的な情報しか持たないことを前提

なぜ違いが重要か

実例で見る:

# データに John に関する情報が以下しかない:
ex:John a ex:Person ;
    ex:hasName "John" .

# 質問: John に妻はいるか?

RDBMS(CWA)の答え:「spouse 列が NULL → 妻はいない」と答える。
OWL(OWA)の答え:「hasSpouse トリプルがない → 妻がいるか・いないかは分からない」と答える。

これは世界観の違いだ:

  • CWA は「データベースは現実を完全に映している」と仮定するシステム
  • OWA は「データベースは現実の一部しか知らない」と仮定するシステム

推論への影響

OWA だからこそ、オントロジーは明示されていない知識を導出できる。

# 公理:
ex:Mammal rdfs:subClassOf ex:Animal .  # 哺乳類は動物のサブクラス

# データ:
ex:Lion a ex:Mammal .  # ライオンは哺乳類

# 明示的には書いていないが、機械が導ける:
# → ex:Lion a ex:Animal .  (ライオンは動物)

CWA でも JOIN や VIEW で似たことはできるが、OWAでは公理(subClassOf, equivalentClass, propertyChainAxiom 等)から自動的に推論される。これが「オントロジーは推論可能」と言われる所以。

OWA の落とし穴

OWA は強力だが、実務で使うときは注意が必要

  1. 「妻がいない」を表現するには明示的に書く必要がある

    ex:John ex:hasSpouse owl:Nothing .  # 配偶者なし、を明示
  2. NOT IN や NULL のような直感的なクエリが書きにくい

    • SPARQL では FILTER NOT EXISTS { ... } を使う
  3. OWL Full は決定不能

    • 表現力を上げすぎると推論器が止まらない可能性
    • 実務では OWL DL か、より軽量な OWL 2 EL/QL/RL profile を使う

オントロジーとデータモデリングの違い・まとめ

観点データモデリング (ER / JSON Schema)オントロジー (OWL / RDF)
世界観Closed World (CWA)Open World (OWA)
述べられていない事実未知
主目的データの保存・取得概念の共有・推論
制約言語テーブル定義、JSON SchemaOWL の Class Axiom
推論JOIN、VIEW(手動)Reasoner(自動)
標準化SQL(広く)RDF/OWL/SHACL(W3C)

「オントロジー = データモデル」と捉えると本質を見失う。両者は目的が違う。

ただし、実装としては融合することも多い。たとえば Palantir Foundry の Ontology は CWA 的に動くし、Property Graph 系の Neo4j も部分的にはオントロジー的な使い方ができる。世界観の違いを意識しながら、実装は柔軟に、というのが2026年の現場感覚だ。

どこで使われているか

「OWA は理論的には強力だが現実には重い」という評価が2010年代に広まった。しかしドメインによっては圧倒的に活躍している

ドメイン代表オントロジー用途
医療SNOMED CT、Gene Ontology、ICD-11用語標準化、推論、マッピング
金融FIBO(Financial Industry Business Ontology)規制報告、コンプライアンス
ライフサイエンスOBO Foundry, PrimeKG創薬、ゲノム解析
WebSchema.org(軽量)SEO、構造化データ
法律LKIF, EuroVoc法令間の関係マッピング
エンタープライズPalantir Foundry Ontology業務オペレーション

Web全体の 12.4%(約4500万ドメイン)が Schema.org を実装している事実は、「セマンティックWebは死んだ」言説への一つの反論だ。

本章の要点

#要点
1Gruber 定義(1993 単独 → 1998 Studer 拡張):「formal, explicit specification of a shared conceptualization
2構成要素は Class / Instance / Property / Attribute / Axiom / Inference Rule の 6 つ
3本質的違いは Closed World vs Open World Assumption ─ 「述べられていない」を「偽」と見るか「未知」と見るかの世界観
4OWA だから明示されていない知識を自動推論できる。これが「オントロジーは推論可能」の根拠
5OWA は強力だが、NOT EXISTS 系の表現が書きにくい・OWL Full は決定不能・実務では OWL DL や軽量 profile を使う
6「オントロジー = データモデリング」と捉えると本質を見失う。目的が違う
7SNOMED CT / FIBO / Gene Ontology / Schema.org など、ドメイン特化のオントロジーは現役で稼働中

効いている根本原理

本章は 原理3(構造があるから推論ができる) を中心に展開した。Open World Assumption こそが、オントロジーが推論可能な仕組みの根本にある。次章では、これを実装する W3C のセマンティックWebスタック(RDF / OWL / SPARQL / SHACL)と、近年台頭した Property Graph を比較しながら、知識グラフ全体の地図を描く。