海量RDF数据的管理.pdf

上传人:b****2 文档编号:3212025 上传时间:2022-11-20 格式:PDF 页数:16 大小:399.45KB
下载 相关 举报
海量RDF数据的管理.pdf_第1页
第1页 / 共16页
海量RDF数据的管理.pdf_第2页
第2页 / 共16页
海量RDF数据的管理.pdf_第3页
第3页 / 共16页
海量RDF数据的管理.pdf_第4页
第4页 / 共16页
海量RDF数据的管理.pdf_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

海量RDF数据的管理.pdf

《海量RDF数据的管理.pdf》由会员分享,可在线阅读,更多相关《海量RDF数据的管理.pdf(16页珍藏版)》请在冰豆网上搜索。

海量RDF数据的管理.pdf

6海量海量RDFRDF数据数据的的管理管理邹磊,陈跃国1.语义网和语义网和RDF数据数据语义网是万维网之父蒂姆伯纳斯-李(TimBerners-Lee)在1998年提出的概念,它提供了一种在不同的应用和个体之间共享和重用数据的整体框架1,其核心是构建以数据为中心的网络,即WebofData。

我们将目前的万维网称之为WebofPages。

众所周知,万维网是利用超链接技术将不同的文档链接起来,从而方便用户的浏览和文档的共享。

例如HTML文档的语法在于告诉浏览器按照何种格式来显示该文档,而并不是告诉计算机文档中的数据分别表示什么语义信息。

语义网的核心是让计算机能够理解文档中的数据,以及数据和数据之间的语义关联关系,从而使得机器可以更加智能化地处理这些信息。

因此我们可以把语义网想象成是一个全球性的数据库系统,也就是我们通常所提到的WebofData。

由于语义网技术涉及面较广,本文仅涉及语义网框架中的一项核心概念RDF(ResourceDescriptionFramework,资源描述框架)。

RDF是一种数据模型,是由W3C组织的ResourceDescriptionFramework工作组为了构建一个综合性的框架来整合不同领域的元数据,实现Web上互相交换元数据,促进网络资源的自动化处理而提出的。

随着因特网的发展和信息的丰富,对元数据的研究逐步深入,出现了多种元数据标准,如DC3(DublinCore)、PICS5(PlatformofInternetContentSelection)等等。

这些元数据描述、组织和重新整理了网络信息,使得用户可以更方便地利用网络数据。

RDF6是W3C于1999年提出的一个解决方案,并于2004年2月正式成为W3C推荐标准。

RDF的目标是为元数据在Web上的各种应用提供一个基础架构,使应用程序能够在Web上互相交换元数据,促进网络资源的自动化处理。

RDF的基本数据模型包括了三个对象类型,资源(Resource)、属性(Property)及陈述(Statements)。

资源资源:

所有能够使用RDF表示的对象都称之为资源,包括所有网络上的信息、虚拟概念、现实事物等等。

资源以唯一的URI(统一资源标识UniformResourceIdentifiers,通常使用的URL是它的一个子集)来表示,不同的资源拥有不同的URI。

属性属性:

属性描述资源的特征或资源间的关系。

每一个属性都有其意义,用于定义资源在属性上的属性值(PropertyValue)、描述属性所属的资源形态、和其他属性或资源的关系。

陈述陈述:

一条陈述包含三个部分,通常称之为RDF三元组。

其中主体一定是一个被描述的资源,由URI来表示。

客体表示主体在属性上的取值,它可以是另外一个资源(由URI来表示)或者是文本。

总的来说,RDF是语义网框架中的基础数据模型。

要实现从WebofPages到语义网所提出的WebofData的转变,构建海量和分布式的RDF数据集是一项重要而且是不可或缺的步骤,为此W3C组织提出了LinkedOpenData(LOD)项目7将各个零散的RDF数据集链接起来从而构成未来语义网7的基础。

目前的LOD项目已经从2009年的89个数据集增长到2012年的325个数据集,总规模超过了250亿条三元组。

RDF数据的获取和构建目前有人工编辑,和基于信息抽取方法构建和基于Web2.0的协同编辑三种方法。

传统的人工编辑只限定于单个领域的小规模RDF数据的构建;基于目前信息抽取技术,可以实现自动地从大规模非结构化数据中抽取和构建开放领域的RDF数据。

例如Barton8抽取自MIT图书馆数据,YAGO9和DBpeida10都是从维基百科上通过信息抽取的方法来构建RDF数据集合;另外利用类似于维基百科的协同编辑方法,由一个网络社区的用户共同构建一个RDF数据集也是构建高质量RDF数据的一种可行的方法,典型的项目例如Freebase11等。

2.RDF数据管理研究现状数据管理研究现状目前海量RDF数据的存储和查询的方案分为两种:

一种是将三元组数据映射成关系数据库中的表结构,利用现有的RDBMS(关系数据库系统)来完成面向RDF查询检索;另外一种是基于图结构的存储方式。

因为RDF数据本身就是基于图结构的,因此可以利用图数据库中的操作来完成对于RDF数据的查询。

我们首先在2.1节介绍面向RDF的查询语言SPARQL,同时引入一个SPARQL查询的例子。

在2.2节中将详细介绍基于关系模型的存储和检索RDF数据的几种代表性的方法。

2.3节将介绍现有基于图模型的RDF数据的管理方法。

2.1SPARQL查询语言查询语言SPARQL查询语言是由W3C的“RDFDataAccess”工作组(DAWG)开发的一种面向RDF数据的查询语言,目前已经成为W3C的RDF查询语言的推荐标准。

SPARQL语言与目前关系数据库中的SQL语言是很相近的,这方便了用户对于SPARQL语言的使用。

例如在SPARQL语法中,也是在SELECT部分指定查询变量,在WHERE部分指定查询条件,而查询条件通常由三元组来构成,其中三元组的某一项或者某几项可以由变量来表示。

我们用一个例子来介绍SPARQL,具体的语法细节请参考文献20。

主体属性客体y:

Abraham_LincolnhasName“AbrahamLincoln”y:

Abraham_LincolnBornOnDate“1809-02-12”y:

Abraham_LincolnDiedOnDate1865-04-15y:

Abraham_LincolnDiedIny:

Washington_D.Cy:

Washington_D.ChasName“WashingtonD.C.”y:

Washington_D.CFoundYear1790y:

United_StateshasName“UnitedStates”y:

United_StateshasCapitaly:

Washington_D.Cy:

United_Statesrdf:

typeCountryy:

Washington_D.Crdf:

typey:

cityy:

Reese_Witherspoonrdf:

typey:

Actory:

Reese_WitherspoonBornOnDate“1976-03-22”y:

Reese_WitherspoonBornIny:

New_Orleans,_Louisianay:

Reese_WitherspoonhasName“ReeseWitherspoon”y:

New_Orleans,_LouisianaFoundYear1718y:

New_Orleans,_Louisianardf:

typey:

cityy:

New_Orleans,_LouisianalocatedIny:

United_StatesPrefix:

y=http:

/en.wikipedia.org/wiki/图1RDF例子8图1给出了一个RDF数据集的例子。

假设我们需要在上面的RDF数据中查询“在1809年2月12日出生,并且在1865年4月15日逝世的人的姓名?

”这个自然语言的问题,可以表示成如图2的SPARQL语句。

SELECT?

name/查询返回的变量值WHERE?

m?

name./查询条件?

m“1809-02-12”.?

m“1865-04-15”.图2SPARQL查询的例子我们也可以将RDF和SPARQL分别表示成图的形式。

例如在RDF中,主体和客体可以分别表示成RDF图中的节点,一条RDF三元组可以表示成一条边,其中属性是边的标签。

SPARQL语句同样可以表示成一个查询图。

图3显示了上例所对应的RDF图和SPARQL查询图结构。

回答SPARQL查询本质上就是在RDF图中找到SPARQL查询图的子图匹配的位置,这就是基于图数据库的回答SPARQL查询的理论基础。

hasNameBornOnDateDiedOnDateDiedIn“AbrahamLincoln”“1809-02-12”“1865-04-15”http:

/en.wikipedia.org/wiki/Abraham_Lincolnhttp:

/en.wikipedia.org/wiki/Washington_D.C.FoundYear“1790”“WashingtonD.C.”hasNamehttp:

/en.wikipedia.org/wiki/United_StateshasCapitalhttp:

/en.wikipedia.org/wiki/Countryrdf:

typehttp:

/en.wikipedia.org/wiki/Cityrdf:

typehttp:

/en.wikipedia.org/wiki/Reese_Witherspoonhttp:

/en.wikipedia.org/wiki/New_Orleans,_LouisianalocatedInhttp:

/en.wikipedia.org/wiki/Actor“1976-03-22”BornOnDaterdf:

typeBornInFoundYear“1718”rdf:

type005008004003006001007002“UnitedStates”hasName“ReeseWitherspoon”hasName009010011012013014015016017?

m“1809-02-12”?

name“1865-04-15”BornOnDateDiedOnDatehasName(a)RDF图(b)SPARQL查询图图3RDF图和SPARQL查询图2.2基于关系数据模型基于关系数据模型的方法的方法由于RDBMS在数据管理方面的巨大成功以及成熟的商业软件产品,同时RDF数据的三元组模9型可以很容易映射成关系模型,因此大量研究者尝试了使用关系数据模型来设计RDF存储和检索的方案21,22,23。

根据所设计的表结构的不同,相应的存储和查询方法也各异,下面介绍几种经典的方法。

简单三列表简单三列表一种最为简单的将RDF数据映射到关系数据库表的方法是构建一张只有三列表(Subject,Property,Object),将所有的RDF三元组都放在这个表中。

给定一个SPARQL查询,我们设计查询重写机制将SPARQL转化为对应的SQL语句,由关系数据库来回答此SQL语句。

例如我们可以将图2中的SPARQL查询转换为图4中的SQL语句。

SELECTT3.SubjectFROMTasT1,TasT2,TasT3WHERET1.Property=“BornOnDate”andT1.Object=“1809-02-12”andT2.Property=“DiedOnDate”andT2.Object=“1865-04-15”andT3.Property=“hasName”andT1.Subject=T2.SubjectandT2.Subject=T3.subject图4转换以后的SQL查询虽然这种方法具有很好的通用性,但最大的问题是查询性能差。

首先这张三列表的规模可能非常庞大。

如图4所示的SQL语句中有多个表的自连接操作,将严重地影响其查询性能。

水平存储水平存储文献24中提到的水平方法(HorizontalSchema)是将一个RDF主体(subject)表示为数据库表中的一行。

表中的列包括该RD

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1