Reference · 速查
三元组速查
RDF 原子陈述 + Turtle 语法 —— 本工作区最重要的 `reference`
01一条三元组的解剖
主语 subject
:sku-447
一个资源 · 不能是字面量
谓词 predicate
:hasLeadTime
关系名 · 必须是 IRI
宾语 object
"14"
资源或字面量
主语-谓词-宾语 → 一张有向带标签图里的一条边。多个共享节点的三元组拼成一张图。
图 · 三条三元组共享节点,拼成一张小图;每条边=一条三元组。
02Turtle 语法速记
# 前缀声明
@prefix : <http://example.org/sc#> .
# 基本三元组;句点( . )结束一条
:sku-447 :hasLeadTime "14" .
# 分号( ; )= 同一主语继续;逗号( , )= 同一谓词、多个宾语
:order-1042 :requiresProduct :sku-447 ; :hasPriority "high" .
:sku-447 :hasSupplier :us-plants , :eu-plants .
# 字面量类型/语言
:sku-447 :hasLeadTime "14"^^xsd:integer .
:sku-447 :label "物料 447"@zh .
# 空白节点(匿名资源)
:_order :requiresProduct :sku-447 .
03角色约束(必记)
| 角色 | 允许 | 禁止 |
|---|---|---|
| 主语 | IRI、空白节点 | 字面量 |
| 谓词 | IRI(必须是"名") | 字面量、空白节点 |
| 宾语 | IRI、空白节点、字面量 | — |
04语义与关键性质
- 命题非论证:单条只是陈述;推理需多条 + 规则。
- 开放世界:没断言 ≠ 为假;允许不完备。
- 全局 IRI:任何资源可被跨数据集引用/链接(Linked Data)。
- 单调:只追加,不推翻已有。
- 无强制 schema:想说就说,不必先改表。
05三元组 vs 一行记录
| 一行记录 | 一条三元组 | |
|---|---|---|
| 结构 | 先有表/列 | 无需 schema |
| 身份 | 本地 PK | 全局 IRI |
| 完整性 | NOT NULL 缺值非法 | 只说已知,可残缺 |
| 缺失语义 | 缺 = 没有/NULL | 缺 = 未断言(开放) |
| 演化 | ALTER TABLE(重) | 直接追加(轻) |
| 查询 | SQL(闭世界) | SPARQL + 推理(开放) |
06供应链计划示例
:order-1042 a :Order .
:order-1042 :requiresProduct :sku-447 .
:sku-447 :hasLeadTime "14"^^xsd:integer .
:sku-447 :hasSupplier :us-plants .
:forecast-jun :targetsProduct :sku-447 .
:line-7 :hasCapacity 1200 .
有疑问?
用词或语法拿不准,直接问 agent;若某术语你已经能熟练使用,我会把它收录进术语表。