Metadata
RDF是一种编码元数据(Metadata)的格式
Metadata为描述数据的数据(data about data)
作用:
- 指示存储位置
- 历史数据
- 资源查找
- 文件之间的关系:支持、矛盾、总结等
这些能有助于找到正确信息
一个metadata的例子:<head>
element in HTML
<head>
element提供了a (possibly very long) list of metadata 属性 - 通常,每个属性都很短且非结构化。
- 因此,他们不是很擅长于表达。
有时候,我们会想说一些关于文档的复杂的事情 - metadata具有内部结构
- RDF是这种structured metadata的格式
RDF
RDF被设计用来表达深度嵌套的元数据结构并讨论身份,也就是被设计为提供一种描述信息的通用方法
- 它是用标号图术语定义的概念模型
- 文档的元数据以RDF编码为带标签的图
- RDF 文档使用 XML 编写。被 RDF 使用的 XML 语言被称为 RDF/XML,通过使用 XML,RDF 信息可以轻易地在使用不同类型的操作系统和应用语言的计算机之间进行交换
两个常见的误解
- “RDF is XML” — it isn’t
RDF is a graph, XML is a tree - “RDF processes metadata” — it doesn’t.
RDF allows to express metadata
RDF三元组
简单来说每一条描述都是一个主谓宾三元组构成的短句,比如:
{ 华为, 是, 公司 }, {张三, 是, 人 }, { 苹果, CEO 是, 库克 }
每个三元组都有结构(主语subject、谓语predicate、宾语object)。
Subjects and objects被称为节点
把它画成 RDF 图就是两点一线的样子
资源
- RDF 使用 Web 标识符 (URIs) 来标识资源。
- RDF 使用属性和属性值来描述资源
在RDF中,资源(resource节点是对世界上实际事物的引用 ,即资源是可拥有 URI 的任何事物
- 亚里士多德和佩里·赛肯都是资源。
- 空白节点不是资源。你可以把它想象成一个“未命名的资源”。
我们可以encoding 资源: - Literals:值可以是字符串、数字或日期
- URIs:统一资源标识符:RDF 使用 Web 标识符 (URIs) 来标识资源
(实际上我们允许使用一定范围的Unicode字符,所以从技术上讲RDF使用IRIs =国际资源标识符)
又例如:
<RDF>
<Description about="http://www.w3school.com.cn/RDF">
<author>David</author>
<homepage>http://www.w3school.com.cn</homepage>
</Description>
</RDF>
上面的代码中
- 资源是可拥有 URI 的任何事物,比如 “http://www.w3school.com.cn/rdf”
- 属性是拥有名称的资源,比如 “author” 或 “homepage”
- 属性值是某个属性的值,比如 “David” 或 "http://www.w3school.com.cn
RDF陈述
资源、属性和属性值的组合可形成一个陈述(被称为陈述的主体、谓语和客体)
RDF三元组在如何使用资源和空白节点方面受到限制:
- Subject(主语)可以是一个URI或一个空节点
- Predicate(谓语)可以是一个URI
- Object(宾语)可以是URI、文字或空白节点
以这个陈述为例:“The author of http://www.w3school.com.cn/rdf is David.”
- 陈述的主体是:http://www.w3school.com.cn/rdf
- 谓语是:author
- 客体是:David
例子
对于一个CD中的其中两行
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
<cd:artist>Bob Dylan</cd:artist>
<cd:country>USA</cd:country>
<cd:company>Columbia</cd:company>
<cd:price>10.90</cd:price>
<cd:year>1985</cd:year>
</rdf:Description>
<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart">
<cd:artist>Bonnie Tyler</cd:artist>
<cd:country>UK</cd:country>
<cd:company>CBS Records</cd:company>
<cd:price>9.90</cd:price>
<cd:year>1988</cd:year>
</rdf:Description>
</rdf:RDF>
-
xmlns:rdf 命名空间,规定了带有前缀 rdf 的元素来自命名空间"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-
xmlns:cd 命名空间,规定了带有前缀 cd 的元素来自命名空间 “http://www.recshop.fake/cd#”
-
<rdf:Description>
元素包含了对被 rdf:about 属性标识的资源的描述。 -
元素:
<cd:artist>
、<cd:country>
、<cd:company>
等是此资源的属性
Serialisation连载
Serialisation是用某种串行形式表示这些图形的过程。
i.e. a sequence of characters. For example, as XML
(http://mylibrary/periPsychen, http://myvocab#Author, http://aristotle.org)
- rdf:Description可以序列化一个元组
- subject goes in the rdf:about attribute
- predicate is element content
- object is contained by the predicat
小练习
- 我们可以用很多不同的方式序列化XML
- flat form非常有用,因为它允许我们用XML属性值表示RDF: