Linked Data

在 2001 年,Tim Berners-Lee 先生的一篇传奇文章 “The Semantic Web”,勾勒出了这样一个世界,您的手持代理可以和其他代理交换数据并制定决策使您的生活更加简便。从那时起到现在,语义 Web 已经有了相当大的改进,在最近几年也有了一个更加务实的转变。随着 Linked Data Initiative 的出现,研究和开发都关注 Berners-Lee 所谓的最主要的困难:数据互操作性。

无需创建大量自定义代码就可以从 Linked Data 技术获益。本文将介绍 Drupal 7 如何提供广泛的数据互操作性能。学习如何使用 Resource Description Framework (RDF) 公开您的 web 数据。

Linked data 即为一系列利用 Web 在不同数据源之间创建语义关联的最佳实践方法。这里的不同数据源,可以来自一个组织内部的不同系统,也可以来自不同组织的不同系统,它们的内容,存储地点以及存储方式都可以完全不同,但它们很可能存在着关联,例如:Amazon 上图书可能与 MySpace 上的人之间可能存在关联,因为图书的作者有可能在 Myspace 上注册账号。总之,Linked data 最大的特点便是将不同的数据关联起来。

  Linked data 包含一些基本原则:
  资源。在发布一个领域的数据之前,我们需要确定要发布的资源是什么。任何事物,只要你认为是有意义的,有被引用必要的,都可以称之为资源。
  资源标识。任何一个资源都用一个 HTTP URI(Uniform Resource Identifiers)来标识。之所有要用 HTTP URI 来标识,是希望数据能够通过 HTTP 协议访问,真正实现基于 Web 的访问与互联。
  资源描述。资源可以有多种描述,例如 HTML,XML,RDF 以及 JPEG。文档 Web 的文档主要通过 HTML 格式来表示,数据 Web 的数据主要通过 RDF格式(Resource Description Framework)来表示。RDF 将一个资源描述成一组三元组(主语,谓语,宾语)

数据互操作性

目前,web 上的很多数据都不能互操作。例如,如果您想将数据从一个网站取出,然后与其他网站上的数据组合,您需要编写一个自定义爬虫(crawler),从页面中抓取您所需要的信息。如果您想使用那些预算较少的网站(比如个人、政府和教育机构运行的网站)上的信息,这一点尤为重要。如果开发人员有权访问网站上的结构化数据,那通常是通过专有 API 进行的,这些 API 各个网站都不相同。

Linked Data Initiative 使用很小一部分语义 Web 技术和概念(比如 RDF)来尝试解决互操作性问题,并使重利用和合并 web 上的数据更为容易。

随着对数据互操作性的关注,开发和创新的步伐不断加快,因为企业看到了语义 web 的力量。例如 Google 使用 RDF in attributes (RDFa) 来支持 Rich Snippets,这呈现一个片段,应用 Google 算法来突出显示 web 页面中嵌入的结构化数据。它们通过重点显示页面内容的某一部分来提供较为有用的搜索结果,如 图 1 所示。不同的账户显示增强的搜索结果在点击率上有 15-30% 的提高。

2010 年,Facebook 开始使用 RDFa 来驱动 Like 按钮,开发人员可以将其放在自己的站点上。一个 Web 页面上仅包含一点点 RDFa,使它和一个 Facebook 页面大小差不多。当访问者单击这个 Like 按钮时,访问者和外部页面在 Facebook 中建立一个连接。这类互操作性的动力来自遵守一些简单原则和少数语义 web 技术。


RDF、词汇表和 Linked Data 准则

对于 Linked Data,最重要的准则是为 web 上的所有内容使用不同的名称,而不是使用一系列 ID 或者其他标识符。创建完全不同的名称的一个简单方法是使用域命名系统。例如,如果您在自己的网站上提供关于 jane-doe 的信息,这很难区分不同的名为 Jane Doe 的人的信息。使用标识符 http://example.com/people/jane-doe,就很容易区分所指的 Jane Doe。标识符样式被称为 HTTP URI

如果您使用了 HTTP URI 来进行识别,那么您也可以使用 web 架构来提供使关于 Jane Doe 的更多信息。您可以给用户提供关于 Jane 的更多信息,当用户访问 http://example.com/people/jane-doe 时,就可以看到她的姓名、上网号、所处位置以及她所撰写的刊物。

使用 RDF 和词汇表公开数据

如果您之前使用数据库或者面向对象语言进行工作,那么对 RDF 可能比较熟悉。它只是一个 “实体-属性-值”(entity-attribute-value)模型(在 RDF 中,attributes 通常称为  properties ),如下表1

表  111 1. “实体-属性-值” 模型

实体 属性
http://example.com/people/jane-doe name Jane Doe

为了确保互操作性,您必须使用大家都可以理解的属性名,因此,也使用 URI 作为属性。人们通常在词汇表(或者,更正式的是,本体论) 中发布一些属性 URI 包。

以下是词汇表示例。

Friend of a Friend (FOAF)
提供描述人的属性:  namehomepagembox (email)、 accountbased_near
Dublin Core (DC)
提供描述发表作品的属性 : abstractcreateddateCopyrightedpublisher
Semantically-Interlinked Online Communities (SIOC)
提供描述在线社交网络和其他用户的属性: followshas_replylast_reply_datemoderator_ofsubscriber_of

使用 URI 作为属性,上述 entity-attribute-value 语句看起来像这样:

  "Jane Doe"
尖括号中的是完整的 URI 值,引号中的是文本值。

通过使用紧凑的 URIs(CURIEs)和定义这些 CURIEs 方法的前缀使内容易于阅读。清单1  显示了一个示例。

清单 1. 使用 CURIEs 的 RDF 语句 
				
PREFIX foaf: 
PREFIX person: 

person:jane-doe foaf:name "Jane Doe"

这样,web 架构就变成了一种数据库结构,但不是所有的数据都位于一个数据存储库中,数据可位于不同的独立网站中,根据需要轻松地合并和集成。

您可以使用 SPARQL 查询语句来从这个 RDF 数据集中检索数据

使用 SPARQL 查询 DBpedia


很多数据集和信息中心(比如 Wikipedia)能够通过 Linked Data 打开。尽管 Wikipedia 中的很多内容都是免费文本,且很难作为 Linked Data 公开,但很多结构化信息可在 Wikipedia 页面右侧的 infoboxes 中找到。这个 infoboxes 可能包含诸如城市人口或作者风格和笔名这类信息。

DBpedia 是一个社区,致力于从 Wikipedia 中抽象结构化信息,并通过使用 RDF 将其公开使得此信息在 web 中可用。整个 RDF 文件可以从转储中下载,供应用程序所用。也提供 规范实例接口

在 DBpedia 中挖掘数据的一个简单方法是寻找与一个主题相关联的 URI。例如,假设您想寻找匹兹堡的城市人口或其他信息,首先,找到 Wikipedia 页面的 URL,然后使用 清单2 中的 SPARQL 查询寻找与该页面相关的 DBpedia URI。因为 Snorql 界面包括示例中的前缀,您可以使用 CURIEs,无需声明您的前缀。

清单 2. 查找匹兹堡的 DBpedia URI 的查询语句
				
SELECT ?uri WHERE {
  ?uri foaf:page 
}

URI 是 (尽管 Snorql 接口只为您提供到另一个查询的链接,如 清单 3 所示)。


转自   http://blog.csdn.net/luozhiyuan/article/details/7639884

http://www.ibm.com/developerworks/cn/web/wa-rdf/index.html#list3


你可能感兴趣的:(知识图谱,语义网,知识图谱)