RDF的序列化格式

1 RDF序列化

RDF并不是一个数据格式,RDF是一个数据模型——是以主语、谓语、宾语的形式描述资源的数据模型。

为了在网络上发布一个RDF图,首先需要采用一个RDF语法对数据进行序列化。也就是,选择那些组成了一个RDF图的三元组,使用一个特定的语法将这些三元组编写进一个文件。

  • 对于一个静态的数据集,这可以是预先进行的
  • 如果数据集是比较动态的,那么可以使按需进行的

W3C制定了两种RDF序列化格式(RDF/XMl和RDFa)的标准,另外,还有一些为满足特定需求的非标准的序列化格式。

2 RDF/XML

RDF/XML即用XML语法来实现RDF图的编码。

RDF/XML的规范文档为 http://www.w3.org/TR/rdf-syntax-grammar/

  • RDF/XML的MIME type是 application/rdf+xml
  • RDF/XML文件的存储格式是.rdf

下面是一个RDF/XML示例:

3 RDFa

RDFa是通过在HTML文档中植入RDF三元组的一种序列化格式。

RDFa的有关W3C文档请见:http://www.w3.org/standards/techs/rdfa#w3c_all

采用这种方法时,RDF数据不是植入到HTML文档的注释中去,而是交织在HTML的文档对象模型(DOM)中。这意味着,页面内现有的内容可以通过修改HTML代码的途径来用RDFa进行标记,从而在网络上揭示结构化的数据。

如果数据的发布者对于基础结构只有相对较少的控制权限,但却能够修改HTML模板,这种情况下RDFa是比较受欢迎的。即使无法采用303 重定向和内容协商机制,也可以采用RDFa,并且植入了RDFa数据后将遵循hash URI的模式。

在现实世界对象以及描述这个现实世界对象之间的区分,是通RDFa的about=属性来实现的。

下面是一个RDFa示例:

4 Turtle

Turtle是一个对RDF数据序列化的纯文本格式。

由于Turtle支持命名空间前缀和各种其他简记符号,Turtle是人工阅读和编写RDF三元组时采用的典型地方式。

详细信息见W3C的Team Submission文档:http://www.w3.org/TeamSubmission/turtle/

下面是一个示例:

5 N-Triples

N-Triples是Turtle的一个子集,减去了例如命名空间前缀和简记字符等功能。

因为所有的URI都必须在每一个三元组里完全规定,结果导致N-Triples是一个带有很多冗余的序列化格式。

但是,这种冗余也同样是N-Triple相对于其他序列化格式的一个优势,因为N-Triple文档可以逐行地被解析,是在加载那些大到不适合放入主存的数据文件时理想方式。这种冗余同样使得N-Triples非常容易被压缩,从而减少交换文件时的网络流量。

因此N-Triples是交换巨大的关联数据转存(dump)时(做备份或镜像)的标准。

下面是一个示例

6 RDF/JSON

采用JSON(JavaScript Object Notation)对RDF数据进行序列化,被最广泛采用的规范是Talis规范。

随着越来越多数量的编程语言(包括例如JavaScript和PHP等主要的网络编程语言)开始对JSON提供原生的支持,这种RDF/JSON格式将对开发者而言十分便利。

以JSON格式发布的RDF数据,网络开发者可以不用安装额外的用于解析和操纵RDF数据的软件函数库就能够访问这些RDF数据。

另外,还有N3这个格式,详细信息可以见:http://www.w3.org/TeamSubmission/2008/SUBM-n3-20080114/

参考文献:

D. Beckett. RDF/XML Syntax Specification (Revised) - W3C Recommendation. http://www.w3.org/TR/rdf-syntax-grammar/, 2004.

Frank Manola and Eric Miller. RDF Primer. W3C, http://www.w3c.org/TR/rdf-primer/, February 2004.

Ben Adida and Mark Birbeck. Rdfa primer - bridging the human and data webs - w3c recommendation. http://www.w3.org/TR/xhtml-rdfa-primer/, 2008.

David Beckett and Tim Berners-Lee. Turtle - terse rdf triple language. http://www.w3.org/TeamSubmission/turtle/, 2008.

 

Leave a Reply

Your email address will not be published. Required fields are marked *