RDF入门(二)

RDF抽象语法

基于图的数据模型

抽象语法的核心数据结构为一系列三元组,每个三元组都包含一个subject,一个predicate和一个object。三元组的集合被称为RDF图,且RDF图为有向图。

RDF图中有三类节点:IRIs,Literals和空节点。

资源和语句

任何IRI或Literal都表示某种东西,它们被称为资源。由IRI表示的资源称为其引用值,由Literal表示的资源称为其字面值,且Literal有数据类型定义。

RDF三元组表示其subject和object之间存在predicate表示的某种关系。RDF三元组对应的语句称为RDF语句。predicate本身是一个IRI,且表示一个属性,即一个可以被视为二进制关系的资源。

空节点不表示资源。涉及空节点的语句表示具有给定关系的东西存在,却没有显式命名它。

RDF词汇表与IRI命名空间

RDF词汇表是用于RDF图的IRI集合,通常以被称为IRI命名空间的公共子串开头。而某些IRI命名空间通过约定与某些prefix相关联。

RDF图

RDF图是一系列RDF三元组。

三元组

RDF三元组包含以下三个部分:

  • subject,它是一个IRI或者空节点
  • predicate,它是一个IRI
  • object,它是一个IRI,Literal或者空节点

RDF图中的节点集是subject和object的集合,predicate的IRI也可能作为同一图中的节点出现。

IRI

RDF图中的IRI是一个Unicode字符串。RDF抽象语法中的IRI必须是绝对的(即绝对路径),且可能包含一个片段标识符。

IRI等价:当且仅当两个IRI的简单字符串比较相等时,两个IRI等价。

Literals

Literals用于表示字符串、数字和日期等值。

RDF图中的Literal由2或3个元素组成:

  • 词汇形式,表示为Unicode字符串
  • 数据类型IRI,确定Literal如何映射到文本值。
  • 当且仅当数据类型为langString,此时会添加一个语言标签。

某些具体语法可能支持只含词汇形式的Literal,也有的具体语法不含数据类型IRI部分,因为它的数据类型总是langString。

与Literal关联的字面值有以下特点:

  1. 如果Literal是一个有语言标记的字符串,则文本值是按词汇形式语言标记顺序组成的pair。

  2. 如果数据类型IRI能够被识别,假设d为数据类型IRI的引用。

    • 如果Literal的词汇形式在d的词汇空间中,那么文本值是将d的lexcial-to-value映射应用到词汇形式的结果。
    • 否则,Literal类型错误,没有值能与其相关联。**这会产生语义不一致,但不是语法错误。**在实现中需注意。
  3. 如果数据类型IRI不能被识别,则文本值不由该规范定义。

    Literal等价:当且仅当Literal的三个部分分别逐字符相等,两个Literal等价。

空节点

空节点与IRI、Literals没有交集,RDF不引用任何空节点的内部结构。

IRI替换空节点

空节点在RDF抽象语法中没有标识符,在需要更强的识别的情况下,系统可以用IRI替换RDF图中的部分或全部空节点。这样的系统应该为每个被替换的空节点创建一个新的、全局唯一的IRI。这个转换不会改变RDF图的意义,但前提是不在别的地方使用空节点的IRI。

图的比较

两个RDF图G和G’同构当且仅当G和G’之间存在双射M,满足:

  1. M将空节点映射到空节点。
  2. M将Literal节点映射到Literal节点。
  3. M将IRI节点映射到IRI节点。
  4. G中存在三元组(s, p, o)当且仅当G’中存在三元组(M(s), p, M(o))。

RDF数据集

RDF数据集是RDF图的集合,包括以下部分:

  1. 一个默认图(RDF图),该图没有名称且可能为空。
  2. 零或多个命名图,每个命名图都由图的名称和一个RDF图组成且图的名称唯一。

空白节点可以在RDF图中共享。

RDF数据集比较

两个RDF数据集同构当且仅当节点、三元组和图之间存在双射M,满足:

  1. M将空节点映射到空节点。
  2. M是URLs和Literals的身份映射。
  3. 对每个三元组(s, p, o)而言,M(s, p, o)=(M(s), M§, M(o))。
  4. 对每张图而言,G={t1, t2, …, tn},M(G)={M(t1), M(t2), …, M(tn)}。
  5. DG2=M(DG1)
  6. <n, G>在NG1中当且仅当<M(n), M(G)>在NG2中。

数据类型

数据类型与RDF Literals一同表示字符串、数字和日期等。

数据类型由词汇空间、值空间和词汇到值的映射组成,并由一个或多个IRI表示。词汇空间是一组Unicode字符串。

一个数据类型的词汇到值的映射是一组pair,其第一个元素属于该词汇空间,第二个元素属于该数据类型的值空间。该映射可以看做是从词汇空间到值空间的一个函数

使用 xsd:boolean 数据类型举例:

XML架构内置数据类型

下表列出的XML架构内置数据类型是与RDF相兼容的xsd类型:

不与RDF相兼容的类型不予列出。

段标识符

RDF使用可能包含段标识符的IRI作为资源标识符。段标识符的语义为:它们标识辅助资源,通常为主资源的视图、定义或描述的一部分。

例如,在承载RDF表示的主资源 <foo> 中,由段标识符 bar 标识的辅助资源是由完整的IRI <foo#bar> 表示的资源。

广义RDF三元组、图和数据集

广义的RDF三元组是含有subject、predicate和object的三元组,其中每个元素都可能是IRI、空节点或Literal

广义RDF图是广义RDF三元组的集合。

广义RDF数据集包括广义RDF图以及0或多个将IRI、空节点和Literal关联起来的pair。

广义RDF三元组、图和数据集与规范RDF三元组、图和数据集不一样的地方仅在于IRI、空节点和Literal允许出现在任何位置,即包括subject、predicate、object或图名中。

结语

RDF抽象语法这本读物中主要介绍了RDF图、数据类型等内容,并且给出了一些定义,能够让读者对RDF基础有更加深刻的理解。