基于关系数据库的RDF数据存储毕业论文Word格式.docx
- 文档编号:16474016
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:18
- 大小:67.55KB
基于关系数据库的RDF数据存储毕业论文Word格式.docx
《基于关系数据库的RDF数据存储毕业论文Word格式.docx》由会员分享,可在线阅读,更多相关《基于关系数据库的RDF数据存储毕业论文Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
本文详细分析了SPARQL基本图模式,可选图模式,值限制图模式和并图模式,并针对现有的关于查询图模式匹配顺序的分歧,提出了自己的观点以及论据。
最后采用查询操作树将SPARQL查询语言正确转换成SQL语句,并提出了值限制图模式的转换算法。
关键词:
RDF、SPARQL、SQL、存储结构、数据处理
ABSTRACT
WiththedevelopmentofsemanticWeb,worldwideattentionhasbeenprofoundlyobtainedtotheresearchboomofRDF(ResourceDescriptionFramework)thatisthedatafordescribingmetadataandisusedtodescribeWebresourcesinsemanticWeb.ThestorageandqueryofmassiveamountofRDFdata,astheRDFapplicationdeveloped,demandsforhigherrequirements.ThedraftofSPARQLqueryIanguageprovidedbyW3CorganizationisconsideredasthefuturedevelopmenttrendforsemanticWebqueryIanguage.Thesemi-structuredquerymethodsisabletobeperfectlycombinedwiththesemi-structuredcharacteristicsofRDF,ofSPARQL.ThispaperisdeeplyengagedintheresearchofRDFandSPARQLhasdesignedsolutionsofutilizingRelationDatabaseforstoringandqueryingRDFdata.
Instorage,thepatternofdesigningstoragestructureofcombiningRDFdatawithSPARQLqueryIanguageisabletofacilitatethematchingforqueryIanguage.Encodingmechanismusedtostoredatasavesstoragespace.
Inquery,theSPARQLqueryIanguagesubmittedbyusersisinitiallytransformedtoequivalentSQLIanguageandsubsequentlydeliveredtoRelationDatabaseforquery,finallythequeryresultshavebeenreturnedtotheusers.ThispaperanalyzesthebasicSPARQLgraphpatterns,optionalgraphpatterns,mapmodeandrestrictedmode.Ownopinionaswellasitsargumenthasbeenproposedbydetailedanalyzingthestructureofquerymapmodeandaimingattherecentdifferencescorrespondingtothematchingsequencesofquerymapmode.UItimately,OperationtreehasbeenintroducedtotransformcomplexSPARQLqueryIanguagetoSQLIanguageandconversionalgorithmhasbeenproposedtoconvertvaluelimitpattern.
KeyWords:
RDF、SPARQL、SQL、StorageStructureDataProcessing
1.绪论5
1.1研究的背景5
1.2研究的现状6
1.3研究主要内容7
2.RDF数据存储的介绍7
2.1RDF基本概述7
2.2RDF基本模型7
2.3RDF存储模式8
2.4RDF存储语言9
3.RDF存储方法分析10
3.1使用DFS方法存储三元组10
3.2使用BFS方法存储三元组11
3.3使用相同谓词值优先的方法改进12
3.4使用索引提高效率13
4.实验准备14
4.1RDF数据集14
4.2RDF查询15
5.实验结果与分析17
5.1存储效率实验17
5.2查询效率实验17
结论19
致谢19
参考文献20
1.绪论
1.1研究的背景
近年来,万维网(WorldWideWeb)的信息以惊人的速度增长,涉及的领域不断的扩大,包括生物科学,社会科学等一系列学科的内容,为人们提供了更多的可共享、可传递的信息,但是,数据量的激增导致人们获取所需信息的难度加大。
万维网的创始人TimBerners-Lee通过W3C(WorldWideWebConsortium)于2000年提出了语义网(SemanticWeb的概念,即通过为网上的各种数据提供明确的语义,实现信息在语义层上的互操作,使计算机能够理解其所存储和传输的信息,自动处理数据,极大地帮助人们完成选择和鉴别信息数据的工作。
语义网已经被看成是关于下一代互联网的发展方向,逐渐成为研究的热点。
语义网的核心是使用机器来理解Web上的信息。
这就需要为机器提供描述Web上数据的模型。
RDF(ResourceDescriptionFramework,资源描述框架)是W3C在可扩展标记语言XML基础之上开发出来的一种元数据描述框架,是一
个为描述Web元数据而建立的标准。
RDF提供的语义模型可用来描述网络上的任何资源以及资源类型,这就为资源描述提供了一种通用的表示框架。
RDF同
时提供了灵活的机制允许用户可以依据实际的情况,自定义某个应用领域内知识、资源的表示规则和语义信息,使得用户可以使用自定义的词汇表描述任何资源。
RDF提供了一种通用的框架,即由资源,属性,属性值组成的三元组结构。
在RDF中一个拥有若干属性和对应的属性值的对象成为资源,使用URI对其
进行标识。
我们可以通过语句对资源进行描述。
语句的结构为RDF三元组形式,即主语(subject)—谓语(predicate)—宾语(object)三元组。
其中主语为要描述的资源,谓语为资源的属性,宾语为属性对应的具体值。
随着RDF作为对资
源的描述广泛并成功的应用于多个领域,对于RDF的存储与查询的需求也越来越多。
由于关系数据库技术已经十分成熟,人们倾向于利用关系数据库来存储RDF数据。
简而言之,RDF使用属性以及属性值来描述资源,具体表现形式为RDF三元组。
但是,在有些语句中,会使用特定的值来增强对属性的约束,例如:
有时候需要表示该属性所描述的资源是某一种特定资源,用来描述这种特定资源类的
属性需要增加一些额外的约束,比如父类子类、取值范围等等,但RDF并不具备这样的能力,RDF模型只是提供了一种机制来描述元数据,它并没有定义任何应用领域的语义,定义专门领域的资源属性及其语义需要借助于其它手段来进行补充。
这些类和属性所形成的特定词汇就可以使用RDFschema来描述。
RDFschema是RDF的扩展,它通过提供一些原语来定义类、属性、类与属性之间的隶属关系等,来增强对资源语义的进一步描述。
RDFschema比较类
似于一些面向对象的程序设计语言,比如允许类组织成层次结构,一个资源可以是一个或多个类的实例。
但在某些方面又不尽相同,比如它对类和属性的描述属于扩展的性质,不是强制性的。
RDFSchema本身也是一种元数据,也是以RDF资源集的形式存在的,并且RDFSchema产生的词汇描述也是RDF图,遵循RDF规则。
因此,RDF解析软件可以把RDFschema正确地解释成RDF图。
RDFschema定义了资源的种类,还有资源的属性及其之间的关系。
元数据的含义被机器理解和共享是很必要的,在这方面本体(Ontology)起了相当重要的作用,本体实际上是一种共享的词汇,一般描述了某个领域的重要概念,以及概念间的关系。
RDFschema就被视作一种简单的本体语言。
RDF已被广泛地应用在各个领域,例如:
用于协助搜索引擎更好地查找资源,对网站、图书馆中的内容及其关系进行分类和描述,以及智能软件代理中用作知识表示、共享和交换等等。
随着RDF的应用日益广泛,对于RDF的存储与查询的需求也提出了更高的要求。
1.2研究的现状
资源描述框架RDF是描述Web上资源的通用语言。
世界上很多大学和科研组织都在从事RDF的研究。
美国国防部高级计划研究署支持开发的DAML,是语义web活动的主要推动力,其建立在RDF之上,以描述逻辑为基础,成功实现了语义的机器可读。
Jena是目前最流行的构建语义网应用的ava框架,它是
由HP实验室开发的,可以处理本体,RDF数据,推理机制,存储等功能,支持包括SPARQL在内的多种查询语言。
Jena开发的ARP与希腊国家计算机研究所开发的VRP是RDF解析的两大主要开源工具。
Sesame使用自己的RDF数据源模型,并部分支持SPARQL查询功能。
RDFstore用于解析、存储和管理RDF。
国内关于语义网的研究起步比较晚,但也有不少高校和科研机构致力于这方面的内容。
江苏省“语义web语言及支撑软件技术基础研究”项目组研究开发了面向RDF数据的FIRTREE系统和ROMQS系统。
其中FIRTREE系统的主要功能是RDF的向前推理,ROMQS系统研究的是SPARQL的非强制匹配问题。
复旦大学在RDF数据基于关系型数据库的存储方面做了研究。
武汉大学董慧教授主导的“基于本体的数字图书馆检索模型研究”项目实现了本体检索、本体基于逻辑的领域知识检测推理和基于关系的蕴涵知识发现推理和可视化的功能。
1.3研究主要内容
本文的研究重点是:
一、学习资源描述框架RDF与查询语言SPARQL,在这个基础上实现一个基于关系型数据库的RDF数据存储与查询系统。
二、由于
RDF的语义性与SPARQL不具有推理性的特点,进行推理与敏感数据的研究。
三、设计SPARQL查询语言与SQL语句之间的转换算法来支持基于关系型数据库的RDF数据的查询。
本文的内容安排如下:
第二章主要介绍资源描述框架RDF的基本概念和表现形式,RDF数据的存储方式,基于RDF数据的查询语言,W3C推荐标准SPARQL查询语言的结构;
第三章介绍RDF的推理,敏感数据以及本系统采用的RDF在关系型数据库中的存储方法。
第四章具体介绍SPARQL到SQL的转换方法。
第五章根据前两章的内容给出系统的具体实现和系统的存储以及查询模块的功能进行验证。
最后一章是对目前工作的总结与未来工作的展望。
1.RDF数据存储的介绍
2.1RDF基本概述
随着各种信息资源的不断增加,网络上的信息量以惊人的速度增长,主要以支持文本内容搜索和浏览的web模型已经不能适应如此海量的信息处理交换。
语义网需要一种新的资源模型以支持对海量的web信息资源以及服务的统一访
问。
传统的XML数据模型可以用于数据的描述和交换,但是XML缺乏对语义信息的表达。
因此,W3C采用了新的数据模型资源描述框架(resourcedescriptionframework)RDF以及RDFSchema来描述网络上的信息资源。
RDF模型是一种对网络资源描述的通用语言,它描述网络中资源对象与资源对象的关系,可以被计算机程序识别。
RDF是基于XML的描述语言,可以通过XML来表达RDF。
2.2RDF基本模型
资源描述框架(resourcediscriptionframework)简称RDF,是描述web上资
源信息的语言。
RDF对信息的表示不仅可以用于查看资源同时还可以被应用程序处理。
它提供了一种通用的框架,这种资源描述框架可以使资源信息在程序间传递,交换而同时又不丧失其语义。
资源是指在web上可以通过统一资源标示
符标识的所有事物。
RDF的基本思想是通过统一资源标示符(Uniformresourceideidentifier,URI)来标识web上得资源,用简单的属性(property)以及属性值(value)来描述资源。
通过主谓宾的语法形式将资源,属性,属性值连接在一起,形成完整的资源描述。
其中主语对应所要描述的事物资源,谓语对应唯一的属性标识,宾语对应着属性值,其中宾语可以是资源或者文字,当宾语是资源的时候这个描述表示资源与资源的关系,如果宾语是文字这个宾语就是对资源属性的描述。
对资源的描述就是对资源的属性以及属性值的声明。
我们将这种声明
称为陈述(statemen)陈述的基本结构为“主语-谓语-宾语”的三元组,也可以称为“资源-属性-属性值”的三元组。
RDF模型可以采用不同的语法形式来描述,但是大多情况下都是用XML
来刻画。
XML(ExtensibleMarkupLanguagg可扩展标记语言。
XML是internet环境中依赖于内容并且跨平台的技术。
是处理结构化文档信息的有力工具。
XML是一种简单的数据存储语言。
使用一系列简单的标记来描述数据。
其特点是简单,易于掌握和使用。
2.3RDF存储模式
随着RDF数据的广泛应用,其数据规模也日益庞大,RDF图的规模甚至达
到数千万个节点。
而且不同的RDF数据可以通过一些链接的方法合并成一个数据集,所以在实际应用中,我们经常会面对内存空间不足以载入所有RDF数据
的情况,这导致了我们需要频繁的在外存和内存间交换数据来完成数据处理,从
而使得数据交换成为整个处理过程的瓶颈。
若使用文件存储,则每次数据读取都要将文件整个的读入,大大降低了效率。
所以使用数据库存储是必然的选择。
在存储的后台方面,使用关系数据库更有利于数据存储。
因为关系数据库具有相当简单的结构,能很好的适应于RDF数据简单的数据模型。
但在关系数据库中,所有的数据都被存放在一个或若干个表中,一定程度上破坏了图的结构。
在执行查询的时候,需要取出大量的数据来重构图,尤其在处理复杂查询的时候,需要对表进行多次自联接运算(self-join),显著的降低效率。
所以现在使用关系数据库来存储RDF数据的主要问题在于,采用何种顺序或者结构将三元组放入数据库中,而且所采用的方法对存储以及查询的效率有何影响。
不同方法在读取速度,存储开销,查询速度等方面各优劣。
现存的存储方法主要有以下两大类别:
(1)按照文件结构逐条存储三元组。
逐行读取文件,并且直接按照文件中的顺序存储三元组。
在数据库中的排列顺序仅和三元组在文件中的排列顺序有关。
(2)按照逻辑结构切割图并存储。
将文件读入内存,还原成图之后使用一定的分割算法把图切分后将子图存入数据库。
三元组在数据库中的排列顺序和节点在图中的逻辑顺序有关。
第一种方法典型的代表是RDF数据存储部分,这类方法的优描一遍文件就可以完成存储过程。
不足在于所有数据都存放在若干张很大的表中,并且相邻数据之间没有一定的逻辑关系,所以每次查询操作都可能导致需要对整张表进行自联接运算,查询和搜索效率比较低下。
第二种方法按照分割算法的不同,切割后的子图可能是路径、树或者较小的
RDF图,比起前一种方法该方法开销较大。
由于这类方法按照一定的逻辑关系建立起图的索引,每次查询都只需要在一个较小的候选子图集中进行搜索比较,查询的效率比前一种方法高。
本文的主要贡献在于:
1)提出了三种不同的存储方法,并且从理论分析了其不同的存储效率,2)收集了不同规模的RDF数据集,并且针对数据设计了若干个不同复杂度的查询,3)在此基础上对不同的存储方法进行实验,得出其实际存储和查询效率。
本文剩余章节组织如下,第二章介绍本文所使用的数据及其来源,并且设计了若干个查询来测试性能,第三章主要介绍了一种存储RDF数据的基本方法,
并且做出相应分析,第四章为相关实验及其结论。
2.4RDF存储语言
SPARQL是DAWG根据上述需求和目标制定的一种基于RDF元组的查询语言,它是从之前的rdfDB、RDQL和SeRQL等查询语言发展而来的。
SPARQL具有一些新的特性,得到了一些包括jena在内的RDF数据库系统的支持。
与之前的RDF查询语言相比SPARQL增加了两个新的特性:
第一,SPARQL支持多种复杂查询的模式构建;
第二,SPARQL提供了多种结果模式。
SPARQL是基于图的匹配的查询语言,最基本得图模型是简单图模型,即三元组图模型,它与RDF三元组类似,但是在主语,谓语,宾语的位置上都可能出现变量。
例如?
personde:
name?
name这是一个简单的三元组图模式,其中主语person与宾语name都是变量,其表示查询所有人的姓名。
SPARQL的语法与SQL的语法类似。
SPARQL的基本图模式就是将查询语句中多有的三元组模式连在一起,结果必须满足语句中所有的三元组模式,通过组合基本的三元组模式,以及运用SPARQL中的关键字GRAPH、FILTER'
OPTIONAL、UNION等,可以到包含命名图模式,组图模式,值约束图模式,可选图模式,并图模式的复杂图模式。
并且可以通过上述图模式的嵌套定义得到更为复杂的查询图模式以满足更复杂的需求。
与SQL类似,SPARQL还支持限制结果数量和结果排序的功等能。
在结果集方面,为了满足不同的需求,SPARQL提供了四种不同格式的结果集。
SELECT查询返回的是全部或者部分匹配变量的绑定,及相应的XML文
件;
DESCRIBE查询返回的是一张描述查询变量或者指定资源的RDF图;
ASK
查询的作用是通知用户查询模式是否存在相应的匹配,其结果也是XML文件;
CONSTRUCT查询返回一张满足查询的子图,同时输出RDF文件。
3.RDF存储方法分析
由于RDF的本质是含有语义信息的图,因此大多数的查询语句也必然包含一定的语义信息。
因此在存储的过程中尽量保留这样的信息显然可以提高查询的效率。
但是过多的保留这样的信息会导致算法复杂性的提高,在面对大规模数据的时候缺乏灵活性。
3.1使用DFS方法存储三元组
DFS方法,即在存储时时用深度优先搜索方法来遍历RDF图,并且根据遍
历结果来进行存储的方法,可以避免以上所述的缺点。
该方法执行顺序如下:
首先从外存逐行读取文件并构造XML树T。
再根据三元组主体和客体的值将文件中冗余的相同节点合并,还原成RDF图G(V,E),V代表所有的节点(主体和客体)
集合,E代表所有的边集合(谓词)。
最后使用深度优先(DFS)的方法遍历图并将遍历到的三元组存储入数据库。
该方法的优点在于,对于原始的RDF图,该方法
仅需一次遍历,就可以完成分割与存储。
而且在遍历过程中,并不需要额外的空间来执行算法。
分割算法如图2.1。
图G包含节点集合V和边集合E,G使用邻接表的方式保留在内存,每个节点v都保存其子女和父亲节点的指针,并且设置访问标志位,s为临时存储节点的栈。
由于每一次深度优先搜索都会把遍历到的边从E中删除,当所有边被删除之后,所有的节点也相应的被删除,所以DFS(v)最多会被调用||E|次。
每次调用的时候都会执行一次相应边的删除,复杂度平均为||E||/||V||。
算法总复杂度为
O(||E|f/||V||)0
DFS(G)while(V)
vV.pick_up_random();
while(v)
v.visited();
if(vhasnon-visitedchildv'
)
storethetriplehassubjectvandobject
v;
removethetriplefromG
s.push(v.child);
vs.pop();
图2.1DFS方法算法
3.2使用BFS方法存储三元组
使用DFS方法可以减少存储的开销,但是在遍历过程中,节点被重复访问
多次,一定程度上影响了算法的效率,而使用BFS(广度优先)的方法可以减少这
一开销,BFS分割算法如图2.2,数据结构和DFS方法相同,其中I为单向的队列:
BFS(G)
while(V)
forallv'
schildren
storeallthetripleshavesubjectv;
if(v.child.is_visited()==false)l.push(v.child);
if(v.parent==null)
V.remove(v);
vl.pop();
图2.2BFS方法算法
算法包含三个循环,while(V)和while(v)保证算法遍历到每一个节点。
对于
一个节点v,v在被访问过一次后就不再入队列,因此内层的循环体实际执行次数为0(||V||),最内部循环体中需要找到当前节点v的所有子女节点,该部分复
杂度和子女数目成正比,其平均值为||E||/||V|,其时间复杂度为O(||E||/||V||)。
所以在不考虑数据库读写时间的情况下,算法总复杂度为O(||E||)。
由于RDF图不
存在孤立点,可得||E||<
||V||所以该方法优于DFS方法。
3.3使用相同谓词值优先的方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 关系 数据库 RDF 数据 存储 毕业论文