Category Archives: MLIS

建立RDF链接

1 不同数据集之间的RDF链接

每一个外部RDF链接都是一个RDF三元组。在这个三元组中,主语是一个数据集中命名空间的URI引用,同时,这个三元组的谓语或者宾语也可以是指向其他数据集中命名空间的URI引用。

解引这些URI将返回远程服务器提供的对于这个被链接资源的描述。这个描述通常包含额外的RDF链接指向其他URI,这些URI也是可以被解引的。

外部RDF链接主要有三种类型:

  1. 关系型链接:被用来指向其他数据源中的相关事物,(如:其他人、地点或因子。)
    例如:关系型链接可以被用来由一个人指向一些与他有关的背景信息——这个人所住的地点,或者这个人发表的作品的书目数据。
  2. 标识型链接:被用来指向其他数据源中标识了同一个现实世界对象或抽象概念的URI别名。
    标识型链接使得客户端可以进一步地从其他数据源中检索关于一个实体的描述信息。
    标识链接有一个重要的社会功能,因为它们可以使得人们对于世界的不同的观点可以在数据网络上得到表达。
  3. 词汇型链接:被用来从数据指向用作表现数据的词汇术语的定义,也被用来从这些定义指向其它词汇中相关术语的定义。
    词汇链接使得数据成为自描述的数据,并且使得关联数据应用能够理解并整合跨词汇的数据。

2 关系型链接

可以再不同的数据集中的实体之间设置链接。

3 标识型链接

建立不同URI别名之间的RDF链接,关联数据应用可以追踪不同的信息发布者所发布的有关同一个实体的信息。

类型为“http://www.w3.org/2002/07/owl#sameAS”的链接被用来声明两个URI别名指向的是同一个资源。

使用不同的URI来指向同一个实体,再使用”owl:sameAS链接“来连接这些URI,浅一看十分难处理,然而却是使得数据网络能像现实世界一样运作的重要基础。

原因如下:

  1. 有关同一事物的不同观点可以得到表达
  2. 可追溯性(Traceability)
    客户端应用能够通过解引数据发布者用来标识实体的URI,来了解这个发布者对于这个实体说了些什么。
  3. 没有故障的中间点(No central points of failure)
    如果规定世界上的所有事物都有且仅有一个URI,那么必然要求创建并维护一个集中的命名规范,用于URI赋值。

4 词汇型链接

词汇型链接的主要作用是帮助客户端应用整合来源于不同数据源的数据。整合数据要求在不同数据源发布数据时所采用的图式之间建立桥接。

模式(Schema)在关联数据环境中被理解成:数据源用来在网络上发布数据时采用的独特的RDF词汇术语的集合。这个集合可以包括来源于其他词汇的术语,也可以包括本数据源的专有术语。

数据网络通过一个双重目的(twofold)的方法来处理异构的数据表达:

  1. 一方面,提倡重用来源于部署广泛的词汇中的术语,以此来尽力避免异构。
    一旦这些部署广泛的词汇中包含了来表达一个特定数据集所需要的的术语时,就应该使用这些术语。
    这就是依赖本体论协议来帮助避免异构性。
  2. 另一方面,尝试通过使数据尽量地具有自描述性来应对异构性。
    自描述性意味着一个关联数据应用一旦在网络上发现采用未知词汇来表达的数据时,能够找到将这些数据转化成应用能理解和处理的数据表达所需要的全部元信息。

技术上来说,也是一个双重目的的方法:

  1. 首先,使标识了词汇术语的URI可解引,客户端应用可以查看术语的RDFS和OWL定义,这样的定义将把词汇术语链接至其自身的定义。
  2. 然后,采用RDF链接的形式发布不同词汇中术语之间的映射。

关联数据发布者应该采用如下的工作流程:

  1. 首先,从部署广泛的词汇中搜索可以被重用来表达数据的术语
  2. 如果部署广泛的词汇没有提供发布一个数据集中内容所需的全部术语的,所必须的术语将被定义为专有词汇,将其作为补充术语。

数据发布者应该尽可能地从其相关数据所采用的词汇中寻找新的部署广泛的专有术语。如果数据发布者发现在另一个词汇中包含同样作用的专用术语,应该在这两个词汇术语的标识URI之间建立RDF链接,声明这些URI实际上指的是同一个概念。

网络本体语言(OWL),RDF Schema(RDFS)和简单知识组织系统(SKOS)定义了可以用来表达这样的映射的RDF链接类型。

owl:equivalentClass和owl:equivalentProperty可以被用来声明分属两个不同词汇中的术语是相同的。

rdfs:subClassOf、rdfs:subPropertyOf、skos:broadMatch和skos:narrowMatch可以被用来建立一个宽松的映射。

词汇术语之间建立更多的链接,是为了帮助客户端应整合采用不同词汇表达的数据。

参考文献:

Tom Heath and Christian Bizer (2011) Linked Data: Evolving the Web into a Global Data Space (1st edition). Synthesis Lectures on the Semantic Web: Theory and Technology, 1:1, 1-136. Morgan & Claypool.

Tim Berners-Lee and Lalana Kagal. The fractal nature of the semantic web. AI Magazine, Vol 29, No 3, 2008.

Noah Mendelsohn. The self-describing web - tag finding. http://www.w3.org/2001/tag/doc/selfDescribingDocuments.html, 2009.

Diego Berrueta and Jon Phipps. Best practice recipes for publishing rdf vocabularies - w3c note. http://www.w3.org/TR/swbp-vocab-pub/, 2008.

 

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.