目次を表示する

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

セマンティックWebと知識グラフ ─ RDF/OWL/SPARQL から GQL まで

第3章: セマンティックWebと知識グラフ ─ RDF/OWL/SPARQL から GQL まで

W3C Layer Cake と Property Graph vs RDF と GQL ISO標準

第2章で計算機科学のオントロジーの抽象を見た。本章では 「実際にどうやって書いて、どうやって動かすか」 ─ つまり技術スタックを地図にする。具体的には:

  • W3C のセマンティックWebスタック(RDF / RDFS / OWL / SPARQL / SHACL)
  • Property Graph vs RDF(Neo4j 系と Stardog 系の対立軸)
  • GQL ISO/IEC 39075:2024(SQL以来 37年ぶりの新 ISO データベース言語)
  • 主要な知識グラフ(Wikidata、Schema.org、Google KG)
  • 「セマンティックWebは死んだ」言説の真実

W3C セマンティックWebスタック(Layer Cake)

Tim Berners-Lee が描いたとされる、有名な階層図がある。「Semantic Web Layer Cake」と呼ばれる。

graph BT
    URI[URI / IRI<br/>識別子]
    XML[XML / Unicode<br/>シンタックス]
    RDF[RDF<br/>データモデル<br/>Subject-Predicate-Object]
    RDFS[RDFS<br/>軽量スキーマ]
    OWL[OWL<br/>記述論理ベースのオントロジー言語]
    SPARQL[SPARQL<br/>クエリ言語]
    SHACL[SHACL<br/>バリデーション]
    Logic[Rules / Logic / Proof / Trust]

    URI --> XML
    XML --> RDF
    RDF --> RDFS
    RDFS --> OWL
    OWL --> SPARQL
    OWL --> SHACL
    SPARQL --> Logic
    SHACL --> Logic
    style RDF fill:#1a2030,stroke:#ff4d6d
    style OWL fill:#1a2030,stroke:#b794f4
    style SPARQL fill:#1a2030,stroke:#4cc9f0
    style SHACL fill:#1a2030,stroke:#00d9c0

下から上に向かって、データ → 構造 → 意味 → クエリ → 推論 が積み上がる。順に見ていく。

RDF ─ 全ての知識を Triple で表す

Resource Description Framework。すべての知識を「Subject-Predicate-Object」の3つ組(triple)で表現する。

graph LR
    S[Subject<br/>John] -->|Predicate<br/>worksFor| O[Object<br/>Anthropic]
    S2[Subject<br/>John] -->|Predicate<br/>hasAge| O2[Object<br/>30]
    style S fill:#1a2030,stroke:#ff4d6d
    style S2 fill:#1a2030,stroke:#ff4d6d
    style O fill:#1a2030,stroke:#4cc9f0
    style O2 fill:#1a2030,stroke:#4cc9f0

シンプルだが、この単位で全ての知識を表現できるのが強み。

シリアライゼーション形式

形式特徴
N-Triples1行1トリプル、最も簡素<...John> <...worksFor> <...Anthropic> .
Turtle簡略記法、人間に読みやすいex:John ex:worksFor ex:Anthropic .
RDF/XMLXML 表現、古典的<rdf:Description ...>...</rdf:Description>
JSON-LDJSON 互換、Web で主流{ "@id": "John", "worksFor": "Anthropic" }

JSON-LD は Schema.org マークアップの 70% を占める主流形式。RDF と聞くと XML を連想して身構える人が多いが、実装はずっと身近になっている。

Turtle のミニサンプル

@prefix ex:   <http://example.org/> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .

ex:John  rdf:type      ex:Person ;
         ex:hasName    "John" ;
         ex:hasAge     "30"^^xsd:integer ;
         ex:worksFor   ex:Anthropic .

ex:Anthropic  rdf:type    ex:Organization ;
              ex:hasName  "Anthropic" .

セミコロン ; で同じ subject の複数 triple を続けられる。これだけで「John は 30歳の Person で、Anthropic という Organization で働く」が表現できる。

RDFS ─ 軽量スキーマ

RDF Schema。RDF に最低限の語彙(クラス階層、プロパティ階層)を追加する。

ex:Person       rdf:type            rdfs:Class .
ex:Father       rdf:type            rdfs:Class ;
                rdfs:subClassOf     ex:Person .

ex:hasFather    rdf:type            rdf:Property ;
                rdfs:domain         ex:Person ;
                rdfs:range          ex:Father .
RDFS の語彙意味
rdfs:Classクラスである
rdfs:subClassOf親クラスを指定
rdfs:subPropertyOf親プロパティを指定
rdfs:domainプロパティの主語側のクラス
rdfs:rangeプロパティの目的語側のクラス

これだけで「Father は Person のサブクラス」のような階層が機械可読になる。

OWL ─ 表現力豊かなオントロジー言語

Web Ontology LanguageDescription Logic(記述論理)に基づく、推論可能なオントロジー言語。

OWL は表現力と決定可能性のトレードオフで、3階層に分かれる:

graph TB
    OWL[OWL]
    OWL --> Full[OWL Full<br/>表現力最大<br/>決定不能]
    OWL --> DL[OWL DL<br/>記述論理 SHOIN(D)<br/>実用的・決定可能]
    OWL --> Lite[OWL Lite<br/>軽量だが採用低調]
    DL --> Reasoners[実用推論器:<br/>Pellet / HermiT / ELK]
    Lite --> Profiles[現代は OWL 2 EL/QL/RL を使用]
    style Full fill:#1a2030,stroke:#ff4d6d
    style DL fill:#1a2030,stroke:#4cc9f0
    style Lite fill:#1a2030,stroke:#7c8db5

OWL DL の主な機能

  • Class Restriction:「Person は Father を高々1人持つ」
  • Equivalent Class:「Mother ≡ Person ⊓ ∃hasChild.Person ⊓ Female」
  • Property Chain:「parentOf ⊕ siblingOf → uncleOrAuntOf」
  • Disjoint Class:「Male と Female は互いに排他」

これらを組み合わせると、推論器が新しい知識を導出できる。

# ex:Mary が Female で、ex:Tom の母親
ex:Mary  rdf:type           ex:Female ;
         ex:hasChild         ex:Tom .

# OWL DL に "Mother ≡ Female ⊓ ∃hasChild.Person" と書いてあれば、
# 推論器が自動的に:
#   ex:Mary  rdf:type  ex:Mother .
# を導出する

OWL の現実

OWL は強力だが「重い・難しい」と言われる:

  • DL の表現力を使いこなすには論理学の素養が必要
  • 大規模な KG では推論コストが高い
  • メンテナンスが続かない

2010年代以降、OWL の使用は医療・ライフサイエンス・規制業界に集中し、Web 全体への普及は失速した。これが「セマンティックWeb失速」の核心。

SPARQL ─ RDF のクエリ言語

RDF に対する SQL 相当のクエリ言語。4種類の問いがある。

形式用途SQL 類比
SELECT表形式の結果SELECT
CONSTRUCT新しい RDF グラフを生成INSERT INTO ... SELECT
ASK真偽を返すSELECT EXISTS
DESCRIBEあるリソースの全情報(独自)

SELECT の例

PREFIX ex: <http://example.org/>

SELECT ?name ?age WHERE {
  ?person  rdf:type      ex:Person ;
           ex:hasName    ?name ;
           ex:hasAge     ?age .
  FILTER (?age > 25)
}
ORDER BY ?age

?name ?age のような変数が入った triple パターンでマッチング、FILTER で絞り込み、ORDER BY でソート ─ SQL 経験者には類推しやすい。

CONSTRUCT の例

新しいグラフを作るのが特徴的:

CONSTRUCT {
  ?person ex:isAdult true .
}
WHERE {
  ?person ex:hasAge ?age .
  FILTER (?age >= 18)
}

これが「SPARQL は単なるクエリではなくグラフ変換言語」と言われる所以。

SHACL ─ バリデーション標準

Shapes Constraint Language(W3C 2017)。RDF グラフにバリデーションを加える。

# Shapes graph: 制約定義
ex:PersonShape  a sh:NodeShape ;
    sh:targetClass  ex:Person ;
    sh:property [
        sh:path        ex:hasName ;
        sh:datatype    xsd:string ;
        sh:minCount    1 ;
        sh:maxCount    1 ;
    ] ;
    sh:property [
        sh:path        ex:hasAge ;
        sh:datatype    xsd:integer ;
        sh:minInclusive 0 ;
    ] .

これに対して Data graph(検証対象の RDF)を渡すと、違反箇所と Severity(Violation / Warning / Info)が返ってくる。JSON Schema や Pydantic に近い感覚でデータ品質を担保できる。

主要 RDF ベンダ(AllegroGraph / Stardog / GraphDB / TopQuadrant)がサポート。

Property Graph vs RDF ─ 双子の系譜

知識グラフの実装には大きく2系統ある。

graph TB
    KG[知識グラフ実装]
    KG --> PG[Property Graph<br/>LPG]
    KG --> RDF[RDF / Triple]
    PG --> Neo4j[Neo4j]
    PG --> TG[TigerGraph]
    PG --> Memgraph[Memgraph]
    PG --> Neptune[Amazon Neptune]
    RDF --> Stardog[Stardog]
    RDF --> GraphDB[Ontotext GraphDB]
    RDF --> AG[AllegroGraph]
    RDF --> Jena[Apache Jena Fuseki]
    style PG fill:#1a2030,stroke:#ff4d6d
    style RDF fill:#1a2030,stroke:#4cc9f0
観点Property Graph (LPG)RDF / Triple
単位ノード + エッジに任意の key-value プロパティTriple (S-P-O) 一律
エッジ自体への属性直接付与可(since: 2020 など)不可(reification が必要)
標準化ベンダーロックイン気味 → GQL 統一中W3C 準拠で相互運用容易
クエリ言語Cypher → GQL(ISO 標準)SPARQL
推論弱い(外部実装に依存)OWL Reasoner で強力
主用途アプリ開発・グラフトラバーサル知識統合・推論・セマンティック相互運用

どちらを選ぶか

flowchart TB
    Q[要件] --> Q1{多ホップ推論?}
    Q1 -- Yes --> Q2{規制ドメイン<br/>(医療/金融)?}
    Q1 -- No --> PG2[Property Graph<br/>Neo4j / Memgraph]
    Q2 -- Yes --> RDF2[RDF + OWL<br/>Stardog / GraphDB]
    Q2 -- No --> Q3{OSS / コミュニティ?}
    Q3 -- 強重視 --> Apache[Apache Jena]
    Q3 -- バランス --> RDF2
    Q --> Q4{アプリ統合中心?}
    Q4 -- Yes --> PG2

ざっくり言えば:

  • アプリの中で graph traversal をやりたい → Property Graph(Neo4j 系)
  • 知識統合 + 推論 + W3C 標準準拠 → RDF/Triple(Stardog 系)
  • 両方欲しいマルチモデル(Amazon Neptune、ArangoDB)

GQL ─ SQL 以来37年ぶりの ISO 標準

ISO/IEC 39075:2024(2024-04-12 公開)。Property Graph 側のクエリ言語の標準化。

項目内容
制定2024-04-12
系譜Cypher(Neo4j)/ PGQL(Oracle)/ G-CORE(学術)の統一
構文SQL 構文を踏襲しつつ Cypher の MATCH / RETURN を採用
意義SQL(1987 ISO)以来 37 年ぶりの新 ISO データベース言語
採用Neo4j、TigerGraph、Memgraph、Microsoft Fabric、Amazon Neptune

GQL の登場で「Property Graph も標準化された安心感のあるエコシステム」になった。これは知識グラフ業界全体のターニングポイント。

知識グラフ ─ オントロジーを満たすデータ

ここまで来ると、「オントロジーと知識グラフの違い」を整理できる:

「オントロジーはスキーマ、知識グラフはデータ」

graph LR
    Onto[オントロジー<br/>スキーマ・公理] -->|定義する| KG[(知識グラフ<br/>インスタンス・トリプル)]
    KG --> Reasoner[推論器]
    Onto --> Reasoner
    Reasoner --> NewKG[(導出された<br/>新しい知識)]
    style Onto fill:#1a2030,stroke:#b794f4
    style KG fill:#1a2030,stroke:#4cc9f0

主要な知識グラフ

KG規模用途
Google Knowledge Graph(2012-、元 Freebase)数十億エンティティ検索結果のサイドパネル
Wikidata約 1 億アイテムWikipedia の構造化データ基盤、OSS
DBpedia約 4 億トリプルWikipedia から RDF 抽出
Schema.org単一の語彙Web の構造化データ(全Webの 12.4%
Wolfram Knowledgebase専門知識Wolfram Alpha のバックエンド
Amazon Product Graph数十億エンティティ商品レコメンド

「セマンティックWebは死んだ」の真実

2010年代後半に広まった「セマンティックWebは死んだ」言説。これは半分正しく、半分誤りだ。

死んだ部分生きている部分
「Web 全体が機械可読セマンティクスで覆われる」夢Schema.org(全Webの 12.4%)
大規模な OWL Full ベースのウェブ推論エンタープライズ知識グラフ(Palantir / Stardog)
一般人が手動で RDF を書く未来Wikidata(5億超のエディット)
LLM 時代の GraphRAG(第7章)

つまり「Web 全体を覆う」という最大野望は失速したが、ドメイン特化と LLM 時代の再注目で技術自体は健在 ─ という整理が正確だ。

歴史年表(再掲)

timeline
    title セマンティックWeb / 知識グラフの歴史
    1984 : Cyc プロジェクト開始
    1993 : Gruber Ontolingua + 単独定義
    1998 : Studer ら定義拡張
    2001 : Berners-Lee Semantic Web ビジョン
    2004 : OWL 1 / RDF W3C 勧告
    2008 : SPARQL 1.0
    2009 : OWL 2
    2012 : Google Knowledge Graph
    2017 : SHACL W3C 勧告
    2024-04 : ISO/IEC 39075:2024 GQL 制定
    2024-04 : Microsoft GraphRAG 論文
    2025-09 : Open Semantic Interchange 立ち上げ

本章の要点

#要点
1W3C セマンティックWebスタックは URI/XML → RDF → RDFS → OWL → SPARQL/SHACL の階層
2RDF は Triple(S-P-O)でデータを表現。シリアライゼーションは JSON-LD が主流(Schema.org の 70%)
3OWL は記述論理ベース。OWL Full は決定不能、実務は OWL DL や OWL 2 EL/QL/RL profile
4SPARQL は SELECT / CONSTRUCT / ASK / DESCRIBE の4種、CONSTRUCT が「グラフ変換」の鍵
5SHACL(W3C 2017)は JSON Schema の RDF 版。データ品質担保に必須
6知識グラフ実装は Property Graph(Neo4j 系)vs RDF(Stardog 系) の二系統。アプリ統合 vs 知識統合・推論
7**GQL(ISO/IEC 39075:2024)**は SQL 以来 37年ぶりの ISO データベース言語
8オントロジーはスキーマ、知識グラフはデータ
9「セマンティックWebは死んだ」は半分正しく半分誤り:Web 全体は失速したが Schema.org / Wikidata / エンタープライズ KG / GraphRAG で技術自体は健在

効いている根本原理

本章は 原理1(共通言語)原理3(構造 → 推論) を技術スタックに落とした章だった。RDF triple、OWL Reasoner、SPARQL、SHACL、Property Graph、GQL ─ すべて「世界の構造を共通言語で記述し、そこから何かを導出する」ための道具。

ここまでで第1部「オントロジーとは何か」は完了だ。次の第2部から、現代のオントロジー基盤として Palantir Foundry に焦点を当て、「digital twin としてのオントロジー」を見ていく。