3. 知识图谱表示方法:RDF、RDFS、OWL、属性图模型与序列化格式
知识图谱的核心在于如何将现实世界中的实体、概念及其复杂关系,转化为计算机可存储、查询和推理的结构化数据。本章将系统讲解主流的图数据表示模型与序列化格式,为后续的图谱构建与评审打下坚实的理论基础。
3.1 资源描述框架(RDF)
RDF(Resource Description Framework)是 W3C 制定的标准数据模型,用于描述网络资源及其关系。其核心思想是将一切陈述(Statement)表达为“主-谓-宾”(Subject-Predicate-Object)的三元组(Triple)。
- 主体(Subject):被描述的资源,通常以 IRI(国际化资源标识符)标识。
- 谓词(Predicate):描述资源所具有的属性或关系,也是 IRI。
- 客体(Object):属性的值或关联的另一资源,可以是 IRI 或字面量(Literal)。
3.1.1 RDF 三元组示例
以下示例描述了“张三出生于北京”这一事实:
@prefix ex: <http://example.org/> .
ex:张三 ex:出生地 ex:北京 .
其中 ex:张三 是主体,ex:出生地 是谓词,ex:北京 是客体。
3.2 RDF Schema(RDFS)
RDFS 在 RDF 的基础上引入了模式层(Schema Layer),提供了基础的词汇表用于定义类(Class)、属性(Property)以及它们之间的层级关系,使数据具备初步的语义约束。
| RDFS 核心词汇 | 作用 | 示例 |
|---|---|---|
rdfs:Class |
定义资源的类别 | ex:人物 rdf:type rdfs:Class |
rdfs:subClassOf |
声明类的父子继承关系 | ex:学生 rdfs:subClassOf ex:人物 |
rdfs:subPropertyOf |
声明属性的父子继承关系 | ex:亲生子 rdfs:subPropertyOf ex:子女 |
rdfs:domain |
限定属性的定义域(主体类型) | ex:出生地 rdfs:domain ex:人物 |
rdfs:range |
限定属性的值域(客体类型) | ex:出生地 rdfs:range ex:地点 |
3.3 Web 本体语言(OWL)
OWL(Web Ontology Language)是比 RDFS 表达能力更强的本体语言,它基于描述逻辑(Description Logic),支持对类、属性、个体进行复杂的公理(Axiom)和约束(Constraint)描述,从而实现自动推理。
3.3.1 OWL 的主要特性
- 类构造器:支持交集(intersectionOf)、并集(unionOf)、补集(complementOf)等集合运算。
- 属性约束:支持全称量词(allValuesFrom)、存在量词(someValuesFrom)、基数约束(cardinality)等。
- 等价与不相交:可声明两个类或属性等价(equivalentClass),或互不相交(disjointWith)。
- 推理能力:基于 OWL 公理,推理机可自动推导出隐含的知识,如分类关系、属性传递性等。
3.4 属性图模型(Property Graph Model)
属性图模型是图数据库(如 Neo4j、JanusGraph)中广泛使用的数据模型。与 RDF 三元组不同,属性图将数据组织为节点(Node)和关系(Relationship),每个节点和关系都可以附带任意数量的键值对属性(Property)。
| 对比维度 | RDF 图模型 | 属性图模型 |
|---|---|---|
| 基本单元 | 三元组(主-谓-宾) | 节点 + 关系 |
| 标识方式 | 全局 IRI | 本地 ID(通常为整数或 UUID) |
| 属性存储 | 通过谓词指向字面量 | 节点/关系直接携带键值对 |
| 模式支持 | RDFS/OWL 提供丰富模式 | 通常无强制模式(Schema-Less) |
| 推理能力 | 原生支持(基于 OWL/RDFS) | 需应用层实现 |
| 典型系统 | Apache Jena, RDF4J | Neo4j, Amazon Neptune |
3.5 知识图谱的序列化格式
序列化格式决定了图数据如何在文件或网络中进行交换与存储。不同的格式在可读性、紧凑性、解析效率上各有侧重。
3.5.1 JSON-LD
JSON-LD(JSON for Linking Data)是基于 JSON 的 RDF 序列化格式,它通过 @context 机制将 JSON 键映射到 IRI,使普通 JSON 数据具备语义链接能力。
{
"@context": {
"name": "http://schema.org/name",
"birthPlace": "http://schema.org/birthPlace",
"Person": "http://schema.org/Person"
},
"@type": "Person",
"name": "张三",
"birthPlace": "北京"
}
上述 JSON-LD 片段等价于 RDF 三元组:
<http://example.org/node1> rdf:type schema:Person .
<http://example.org/node1> schema:name "张三" .
<http://example.org/node1> schema:birthPlace "北京" .
3.5.2 Turtle
Turtle(Terse RDF Triple Language)是一种紧凑、易读的 RDF 序列化格式。它使用前缀缩写简化 IRI,支持分号(;)和逗号(,)语法糖来减少重复。
@prefix schema: <http://schema.org/> .
@prefix ex: <http://example.org/> .
ex:张三 a schema:Person ;
schema:name "张三" ;
schema:birthPlace ex:北京 .
ex:北京 a schema:City ;
schema:name "北京" .
3.6 知识图谱表示模型总览
下图展示了 RDF、RDFS、OWL 和属性图模型在抽象层次上的关系与定位: