RDF规范

RDF 规范

ℹ️ 信息: 衍生来源
本笔记衍生自 三元组详解

概述

RDF(Resource Description Framework) 是 W3C 制定的资源描述框架,用于描述 Web 资源的标准模型。RDF 基于三元组模型,是语义网和知识图谱的基础技术。

核心概念

资源(Resource)

  • 一切可被描述的事物都是资源
  • 使用 URI(统一资源标识符) 唯一标识
  • 示例:http://example.org/person/张三

属性(Property)

  • 描述资源特征或关系的谓语
  • 也使用 URI 标识
  • 示例:http://xmlns.com/foaf/0.1/name

字面量(Literal)

  • 属性的具体值
  • 可带数据类型或语言标签
  • 示例:"25"^^xsd:integer"北京"@zh

RDF 序列化格式

格式 扩展名 特点
N-Triples .nt 最简单,每行一个三元组
Turtle .ttl 可读性强,支持前缀
RDF/XML .rdf XML 格式,较冗长
JSON-LD .jsonld JSON 兼容,Web 友好
N-Quads .nq 四元组,支持命名图

N-Triples 格式

最简单的 RDF 序列化格式,每行一个三元组:

1
2
3
<http://example.org/张三> <http://example.org/认识> <http://example.org/李四> .
<http://example.org/张三> <http://example.org/年龄> "25"^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://example.org/张三> <http://xmlns.com/foaf/0.1/name> "张三"@zh .

语法规则

  • URI 用 < > 包围
  • 字面量用 " " 包围
  • 数据类型用 ^^<type> 标注
  • 语言标签用 @lang 标注
  • 每个三元组以 . 结尾

Turtle 格式

更易读的格式,支持前缀和简写:

1
2
3
4
5
6
7
8
9
10
11
12
@prefix ex: <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ex:张三
foaf:name "张三"@zh ;
ex:年龄 "25"^^xsd:integer ;
ex:认识 ex:李四 .

ex:李四
foaf:name "李四"@zh ;
ex:工作于 ex:腾讯 .

Turtle 语法特点

符号 含义
@prefix 定义命名空间前缀
; 同一主语的多个谓语-宾语
, 同一谓语的多个宾语
. 三元组结束
a rdf:type 的简写

JSON-LD 格式

JSON 兼容格式,适合 Web 开发:

1
2
3
4
5
6
7
8
9
10
11
{
"@context": {
"ex": "http://example.org/",
"foaf": "http://xmlns.com/foaf/0.1/",
"name": "foaf:name",
"knows": { "@id": "ex:认识", "@type": "@id" }
},
"@id": "ex:张三",
"name": "张三",
"knows": "ex:李四"
}

常用词汇表

词汇表 前缀 用途
RDF rdf: 基础 RDF 词汇
RDFS rdfs: RDF Schema,类和属性定义
OWL owl: 本体描述语言
FOAF foaf: 人物关系描述
DC dc: 都柏林核心元数据
SKOS skos: 概念和分类体系

RDF Schema(RDFS)

RDFS 提供了定义类和属性的机制:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex: <http://example.org/> .

# 定义类
ex:Person a rdfs:Class ;
rdfs:label "人"@zh .

# 定义属性
ex:认识 a rdf:Property ;
rdfs:domain ex:Person ;
rdfs:range ex:Person ;
rdfs:label "认识"@zh .

# 定义实例
ex:张三 a ex:Person ;
ex:认识 ex:李四 .

空白节点(Blank Node)

表示匿名资源:

1
2
3
4
5
ex:张三 ex:住址 [
ex:城市 "北京" ;
ex:区 "海淀区" ;
ex:街道 "中关村大街"
] .

RDF 验证

使用 SHACL(Shapes Constraint Language) 验证 RDF 数据:

1
2
3
4
5
6
7
8
9
@prefix sh: <http://www.w3.org/ns/shacl#> .

ex:PersonShape a sh:NodeShape ;
sh:targetClass ex:Person ;
sh:property [
sh:path foaf:name ;
sh:minCount 1 ;
sh:datatype xsd:string
] .

相关链接

  • 三元组详解 - 衍生来源
  • SPARQL详解 - RDF 查询语言

RDF规范
https://zmmmmy.github.io/2026/01/12/RDF规范/
作者
ZhiMy
发布于
2026年1月12日
许可协议