一种基于RDF图数据和关系数据的路径查询框架的制作方法

文档序号:11582931阅读:402来源:国知局
一种基于RDF图数据和关系数据的路径查询框架的制造方法与工艺

本发明涉及异构数据和路径查询技术领域,具体地说,涉及一种基于rdf图数据和关系数据的路径查询框架。



背景技术:

随着链接数据(linkeddata)的不断推进,资源描述框架(resourcedescriptionframework,rdf),作为语义网上数据交换的标准模型,其数据量正飞速地增长。所谓的资源描述框架,即rdf,是一个专门用于表达万维网(worldwideweb)上有关资源的信息的语言,多用于表达关于web资源(webresource)的元数据,比如web页面的标题、作者和修改时间等。并且,将“web资源”这一概念一般化后,rdf可被用于表达关于任何可在web上被标识的事物的信息。rdf数据集由有限数量的三元组组成,每条三元组代表了一个由主语(s)、谓语(p)和宾语(0)组成的陈述句。为保证唯一性,主语和谓语通常都以互联网上的统一资源标识符(uniformresourceidentifier,uri)进行标识,宾语可以为uri或者字面值(literal)。rdf数据有其特殊性,即主语、谓语和宾语的交集不为空,也就是说,一个三元组中的主语或者宾语可能同时也是其他若干三元组的主语或者宾语。相应地,在表达本体层语义时,边和点的交集也非空,即边也可以作为节点出现。另外,单条三元组数据的信息量有限,而许多相关的三元组的集合就可以表达丰富的信息,由此,这些三元组集合组成了一个特殊的大规模有向标签图。因而,寻找一种可以获取隐性知识的高效的路径查询方法,是一个很有意义的课题。

sparql(sparqlprotocolandrdfquerylanguage)是万维网联盟(worldwidewebconsortium,w3c)推荐的标准的rdf图数据查询语言,它将web2.0和语义网这两种新的web技术联系起来,其查询的实质过程是子图匹配的过程。但sparql并不支持路径导航查询,然而在web规模的rdf图数据上,路径导航查询是必须的。并且,sparql图模式匹配无法表达任意路径长度,尤其是无限路径长度的导航查询。于是,在最新的sparql1.1中提出了属性路径查询,使用更简洁的方式对路径导航查询提供了支持.它采用正则语言描述路径,宾语和主语可以是常量或者变量,返回符合路径描述的结果。由此,许多研究者基于自身的需求对sparql进行了许多扩展。versa是第一个通过在rdf的xml序列化中使用xml路径语言使得其具有导航能力的的语言。sparqler允许在路径导航查询中加入变量来扩展了sparql的导航能力。psparql(pathsparql)将路径表达式融入sparql,而cpsparql(constrainedpathsparql)在psparql的基础上将约束加入了正则表达式中,二者都使得sparql的导航能力得到了提升。nsparql将嵌套的正则表达与sparql相结合来表达更加复杂的路径导航查询。

然而,对于一些不能用正则表达式表达的导航查询,这些基于sparql的扩展语言仍有查询能力的限制。

我们考虑这样一个拼车服务的场景,现有以rdf形式存储的地图信息和以关系数据库形式存储的车辆服务信息。地图信息包含城市中的道路和地点,车辆服务信息包括乘客、司机、车辆的基本信息、司机的实时的位置信息和订单信息。通常,当乘客发布订单希望从a地到达b地时,我们优先从当前没有接单的司机并且距离乘客较近的司机开始呼叫,司机接单后会根据地图信息选择在a和b两地之间最短的路径进行驾驶,即进行单一的rdf数据查询。对于这样的单一的rdf数据查询,那些基于sparql的扩展的导航查询语言是可以满足的。但是,当乘客附近的司机都已经有接单或者乘客为了节省路费希望搭顺风车,我们就需要从已有订单的司机中选择合适的司机进行接单。在这种情况下,我们不仅仅需要考虑订单中的始发地和目的地之间的道路信息(即对rdf数据的查询),同时,更需要从关系数据库中获得司机的位置信息、司机当前的接单信息和该订单是否符合当前乘客的需求(即对关系数据的查询)。而对于那些基于sparql的扩展的导航查询语言,它们只能获得通常情况下的查询结果,对于这种将rdf数据和关系数据库相结合的复杂查询,它们无法满足。

由此,我们需要这样一种将rdf图数据和关系数据进行联合查询的框架,即rdf图数据和关系数据的联邦路径查询框架。



技术实现要素:

本发明的目的在于提供一种基于rdf图数据和关系数据的路径查询框架。该框架以rdf图数据查询结果为主、关系数据查询结果为辅以提供更多更合理的路径供用户选择。从数据异构的角度增强sparql的导航能力,消除部分基于sparql的扩展语言的查询能力的限制。

为实现上述技术目的,达到上述技术效果,其技术方案具体为:

一种基于rdf图数据和关系数据的路径查询框架,包括以下步骤:

步骤一:根据本语言的语法设计有关rdf数据的查询;

步骤二:利用现有的rdf数据处理工具,将已有的rdf数据处理成标准的rdf格式或者三元组形式的nt格式;

步骤三:在rdf数据上进行查询,并保存查询结果;

步骤四:将已有的关系数据导入到关系数据库中;

步骤五:在关系数据库上进行查询,并保存查询结果;

步骤六:将两部分查询结果进行连接,找出符合语法规则的结果。

进一步,步骤二中所述的rdf数据处理工具为java的“rdf2rdf.jar”。

进一步,步骤四中所述的关系数据库为mysql。

进一步,步骤六中所述将两部分查询结果进行连接,具体为:基于rdf数据和关系数据库的联邦路径查询语言形式化定义:

q(u,v)表示查询名称,是自定义的部分,能任意起名;ψ表示关系数据库的查询结果,最右侧表示rdf数据的查询结果,最后将两部分结果进行合取查询。

本发明具有以下有益效果:

本发明解决了部分传统的基于sparql扩展的导航语言所不能表达的查询,从数据异构的角度扩展了sparql的导航查询能力。

附图说明

图1为基于rdf数据和关系数据库的联邦路径查询语言语法;

图2为交通数据库;

图3为地图信息的rdf表示形式。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。

一种基于rdf图数据和关系数据的路径查询框架,包括以下步骤:

步骤一:根据本语言的语法设计有关rdf数据的查询,本语言的语法如图1所示;

步骤二:利用现有的rdf数据处理工具,例如java的“rdf2rdf.jar”,将已有的rdf数据处理成标准的rdf格式或者三元组形式的nt格式;

步骤三:在rdf数据上进行查询,并保存查询结果;

步骤四:将已有的关系数据导入到关系数据库中,例如mysql;

步骤五:在关系数据库上进行查询,并保存查询结果;

步骤六:将两部分查询结果进行连接,找出符合语法规则的结果,该连接如下式所示。

其中,q(u,v)表示查询名称,是自定义的部分,可以任意起名;ψ表示关系数据库的查询结果,最右侧表示rdf数据的查询结果,最后将两部分结果进行合取查询。

现对交通领域中的拼车服务进行实现。设计如图2所示的数据库和如图3所示的地图信息。对于查询“在当前时间,乘客提出搭顺风车后,是否有司机可以接单?”,将该查询设计成符合我们语法规则的形式,如下:

q(?x;?y)=(?x,exp1,?y)^(?x,exp2,?y)^(?x,exp3,?y)^[r(v)^r(e)];其中,exp1:next-1::lon;exp2:next::lat;exp3:next::nd/next::ref/next-1::id;r(v):=gps(date;lon;lat;?driverid);

r(u):=orders(date;?lon;?lat;?driverid).

查询得到的结果是符合当前乘客需求的司机的编号(“next::”,“next-1::”含义如图1所示)。

以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1