RDFS 与 OWL 入门

上一章说了本体要有类、属性与约束——但用哪种「语言」写? W3C 在 RDF 之上定义了两层:RDFS(RDF Schema) 提供类、子类、属性、定义域与值域,轻量够用;OWL(Web Ontology Language) 在此基础上增加等价、逆、传递、对称、基数等公理,表达能力与推理复杂度都上一档。会用 RDFS 就能写出可被工具识别的 Schema;需要「若 A 创立 B 则 B 被 A 创立」「位于 具有传递性」这类推理时,就要用到 OWL。本章入门 RDFS 与 OWL 的常用构造,并说明何时用 RDFS、何时上 OWL

一、RDFS 入门:类、子类、属性、定义域与值域

RDFS 是 RDF 的扩展词汇表,用一组预定义的 IRI 描述「哪些是类、谁是谁的子类、哪些是属性、属性的定义域与值域」。

推理规则示例:若 (a, created, b) 且 created 的 domain 是 Person、range 是 Theory,则可推出 a 是 Person、b 是 Theory(RDFS 推理机会自动做这类推断)。RDFS 不表达「等价」「逆」「传递」「基数」等,因此推理能力有限但简单、工具支持广泛。

RDFS 示例:类层次与属性的 domain/range(Turtle)
# Classes
ex:Person     a rdfs:Class .
ex:Scientist  a rdfs:Class ; rdfs:subClassOf ex:Person .
ex:Theory     a rdfs:Class .

# Property with domain and range
ex:created    a rdfs:Property ;
             rdfs:domain ex:Person ;
             rdfs:range  ex:Theory .
RDFS 结构:类层次 + 属性的 domain/range

二、OWL 简述:等价、逆、传递、对称、基数

OWL 在 RDFS 基础上增加了更丰富的公理,使推理机能做更多推断。常用构造简述如下。

等价 (equivalent)

owl:equivalentClass、owl:equivalentProperty、owl:sameAs 表示两类/两属性/两实体等价,可互相替换。用于融合不同本体的同义概念。

逆 (inverse)

owl:inverseOf:若 P 与 Q 互逆,则 (a, P, b) 蕴含 (b, Q, a)。例:created 与 createdBy 互逆。

传递 (transitive)

若 P 为 owl:TransitiveProperty,则 (a,P,b) 且 (b,P,c) 蕴含 (a,P,c)。例:locatedIn、partOf。

对称 (symmetric)

若 P 为 owl:SymmetricProperty,则 (a,P,b) 蕴含 (b,P,a)。例:knows、adjacentTo。

基数 (cardinality)

owl:minCardinality、maxCardinality、exactCardinality 限制某关系可连接的对象数量。例:每人至少有一个出生地。

OWL 公理示意:逆关系、传递(推出 A→C)、对称
OWL 示例:逆与传递(Turtle)
# Inverse: created and createdBy
ex:created    a owl:ObjectProperty ;
             owl:inverseOf ex:createdBy .

# Transitive: locatedIn
ex:locatedIn  a owl:ObjectProperty , owl:TransitiveProperty .

# Symmetric: knows
ex:knows     a owl:ObjectProperty , owl:SymmetricProperty .

三、RDFS 与 OWL 的对比

RDFS 是 OWL 的子集(在表达力上):OWL 复用并扩展了 RDFS 的类与属性构造。主要差异在于:

维度 RDFS OWL
类与属性 Class, subClassOf, Property, domain, range 同上 + 等价、交并补、受限类等
关系公理 逆、传递、对称、函数性、基数等
推理 子类继承、domain/range 推断 上述 + 逆/传递/对称等推导;可满足性检查
复杂度 低,线性可解 OWL 2 DL 可判定但复杂度高;工具与推理机要求更高
RDFS 与 OWL 表达能力与推理复杂度对比

四、何时用 RDFS、何时用 OWL

用 RDFS 即可:只需类层次、属性及 domain/range;不要求逆、传递、基数或复杂类表达式;希望 Schema 简单、工具兼容性好、推理轻量。很多关联数据与轻量知识图谱仅用 RDFS 就够。

需要 OWL:要表达「创立 与 被创立 互逆」「位于 传递」「每人至少一个出生地」等;要做一致性检查(类是否可满足、是否有逻辑矛盾);要复用或对齐已有 OWL 本体。此时应选用 OWL 2 的适当 profile(如 OWL 2 RL 在规则与推理间折中),并配合推理机(HermiT、Pellet、RDFox 等)。

选型:轻量用 RDFS,需要逆/传递/基数与推理用 OWL

一句话: RDFS 提供 Class、subClassOf、Property、domain、range,适合轻量 Schema 与基础推理。OWL 增加等价、逆、传递、对称、基数等公理,支撑更强推理与一致性检查。按需求选择:仅类与属性约束用 RDFS;需要逆/传递/基数或可满足性检查时用 OWL,并选用合适 profile 与推理机。

实践: 在 Protege(免费本体编辑器)中新建一个 OWL 本体,添加两个类、一个 Object Property,并为其设置 domain、range 和 inverseOf,再用推理机执行推理,可直观看到推断出的新事实。

五、小结

RDFS 用 rdfs:Class、subClassOf、Property、domain、range 定义类层次与属性约束;推理限于子类继承与 domain/range 推断。OWL 在此基础上增加等价、逆、传递、对称、基数等公理,推理能力与复杂度更高。何时用 RDFS:类层次与 domain/range 即可、追求轻量与兼容。何时用 OWL:需要逆/传递/对称/基数或一致性检查时,选用 OWL 2 的适当 profile 与推理机。下一章讲Schema 设计:实体类型与关系类型的划分、命名与定义域/值域,以及 Schema 与数据的一致性。