CN102722542A - 一种资源描述框架图模式匹配方法 - Google Patents
一种资源描述框架图模式匹配方法 Download PDFInfo
- Publication number
- CN102722542A CN102722542A CN201210163578XA CN201210163578A CN102722542A CN 102722542 A CN102722542 A CN 102722542A CN 201210163578X A CN201210163578X A CN 201210163578XA CN 201210163578 A CN201210163578 A CN 201210163578A CN 102722542 A CN102722542 A CN 102722542A
- Authority
- CN
- China
- Prior art keywords
- rdf
- tlv triple
- chart
- constant
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000008569 process Effects 0.000 claims description 22
- 230000008878 coupling Effects 0.000 claims description 20
- 238000010168 coupling process Methods 0.000 claims description 20
- 238000005859 coupling reaction Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 7
- 238000012797 qualification Methods 0.000 claims description 4
- 230000008520 organization Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 239000012634 fragment Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 244000188472 Ilex paraguariensis Species 0.000 description 1
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000010297 mechanical methods and process Methods 0.000 description 1
- 230000005226 mechanical processes and functions Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及语义网数据库检索技术。本发明公开了一种资源描述框架(RDF)图模式匹配方法,所述方法包括用户编辑的SPARQL查询程序段在查询处理层被转化为三元组信息,进一步三元组信息按常量、变量和空节点被存储到元素结构表中,根据元素结构表中的数据进一步生成SQL查询语句段通过查询总控制对关系数据库进行查询。其中,关系数据库中按三元组的方式存储RDF数据资源。关系数据库查询得到的结果经过复杂模式解处理和结果包装向用户返回xml文档或关系数据表形式的结果。
Description
技术领域
本发明涉及语义网数据库检索技术,具体涉及一种资源描述框架图模式匹配方法。
背景技术
语义网(Semantic Web)成为近几年来互联网发展的一个热点,代表智能网络未来的语义网是一个以知识为中心的模型。除了人类可读的文档和XML消息格式之外,它还增加了机器可以理解和处理的数据。
资源描述框架(Resource Description Framework,RDF)是描述Web资源的标准数据模型。由于Web数据的半结构化特性,RDF查询语言应该支持对半结构化数据的查询。万维网联盟(W3C)提出的SRARQL(SPARQL Protocol and RDF QueryLanguage,SPARQL协定与RDF查询语言)语言就是这样一种针对RDF图的半结构化查询语言。
SPARQL对于语义网就像SQL对于关系数据库一样重要。SPARQL跟其他查询语言的不同之处在于它能够融合不同的异构数据源来进行查询。它基于RDF图模式进行查询,允许应用程序对分布式RDF数据库进行复杂的查询,从RDF图中查询信息,并根据要求返回不同形式的结果,并得到了互相竞争的多种框架的支持。
目前SPARQL还仅仅只是一个协议标准,没有开发出成熟的数据库系统对其进行完全的支持。考虑到SPARQL是一种沿袭传统数据库查询模式的语言,采用“select-from-where”查询模式,便于用户掌握和理解;但是它仅支持遍历查询RDF文件,其查询效率是相当低效的。而现有传统数据库在查询优化等技术方面已经相当成熟,查询数据的效率相对高效,但是其查询语言SQL不具有语义性。因此,需要在用户和关系数据库之间建立一个透明的查询引擎,接受用户提交的SPARQL查询语句并将其转换为关系数据库可以处理的SQL语句,SQL语句直接对关系数据库进行操作,最后该引擎将SQL查询结果按照SPARQL查询语句转换为用户所需的RDF查询结果;这样RDF查询语言不仅具有本身语义性的优点,而且同时具有对海量数据查询的高效性。
现有技术采用三元组(垂直表)的形式对RDF数据进行存储,这种存储方式具体实现是将RDF三元组的主语、谓语、宾语分离出来,分别存在数据库的statements表的subject、predicate、object列中。
将SPARQL转化为SQL语句后,即可使用SQL语言对存储有三元组数据的数据库进行查询。
SPARQL语言采用跟RDF图类似的语言结构,但是可以采用多个图模式来表示查询,也就是待匹配的RDF图模式之间还存在着一定的相互关系,因此要将SPARQL语句转换成SQL语句,必须完成基本图模式到SQL语句的转换以及转换后SQL模块之间的联合等处理。
SPARQL查询的核心是RDF图匹配方式,该方式用SPARQL查询中描述的RDF图模式来对数据库中原始RDF图数据进行完全匹配。完全匹配要求所有的RDF图分支均匹配才输出结果。SPARQL可以由很复杂的RDF图模式表示,但其中最基本的是基本RDF图模式,复杂的SPARQL查询就是在基本图模式的基础上进行一些交并操作来进行结果的选择。
在基本RDF图模式转换成SQL方面,汪锦岭等人提出一种采用“与或匹配树”的主顶点方式来进行高效RDF图匹配。该方法的主要思想是根据元语句中节点的深度关系来进行多次匹配。其先由与或树判断各节点的深度,避免环结构。然后将RDF图模式根基节点加入主顶点集中,然后匹配以所有主顶点集中的顶点为主语的三元组,若有匹配,则将该三元组的宾语加入主顶点集中,所有匹配尝试完以后删除原先的主顶点。如此依次循环。主要体现的是一个路径的思想,对原RDF图按路径逐级进行匹配。,但是该方法主要应用于模糊匹配或者本体推理方面会比较有效,对于SPARQL这种完全匹配方法存在一定的局限性。由于该方法在每次匹配以后需要跟主程序进行交互,并修改数据结构中的内容以生成下一轮匹配条件,过程复杂且时间开销较大,效率相对低下。
对于SPARQL仅仅是简单地对数据库中的原始RDF图进行完全匹配,不作推理的情况,需要一种更加简便,效率更高的RDF模式匹配方法和装置。
发明内容
本发明的目的在于提供一种高效的元素关系结构来简化基本RDF图模式转换成SQL语句的方法,生成一体化的SQL片段。
本发明公开了一种资源描述框架(RDF)图模式匹配方法,用于利用SPARQL语句对以三元组形式存储于关系数据库中的RDF数据进行RDF图模式匹配,所述方法包括:
将SPARQL查询语句根据SPARQL规范中的正则表达式解析出完整的三元组集合;其中,所述三元组集合包括至少一组三元组,所述三元组由SPARQL查询语句对应的RDF图模式中的主语、谓语和宾语值组成;
根据解析得到的三元组集合生成元素结构表;其中,所述元素结构表包括常量表、变量表和空节点表,所述常量表用于存储所述三元组集合中常量的常量值、出现次数和位置,所述变量表用于所述三元组集合中变量的变量名称、出现次数和位置,所述空节点表用于存储所述三元组集合中空节点的空节点标识、出现次数和位置;
根据元素结构表自动生成SQL语句段;其中,首先,根据所述三元组集合中三元组的标号生成FROM子语句,所述FROM子语句利用三元组的编号对存储三元组数据的数据库表进行重命名使得重命名表和待匹配的三元组一一对应起来;然后,分别根据元素结构表中的常量表生成WHERE子语句以限定查询列的特征,根据变量表的变量名称生成SELECT子语句以限定需要查询的列,根据变量表以及空间点表中出现次数大于等于2的变量或空间点的元素位置生成WHERE子语句以限定等价条件;根据空节点表中的空节点位置和空节点标识生成限定空节点形式限制匹配条件的WHERE子语句;最后,将所有SQL子语句段按照select-from-where的格式组织在一起,形成图模式匹配SQL语句段;
利用获得的SQL语句段查询关系数据库并返回匹配结果。
优选地,所述方法还包括将得到的返回结果按照SPARQL结果集的要求返回成xml文档或关系数据表。
优选地,所述根据解析得到的三元组集合生成元素结构表包括将分离出的三元组元素按照常量、变量、空节点的分类方式分别存入常量表、变量表和空节点表;且元素结构表包括数组部分和链表部分,所述数组部分的数据元素包括元素有效值、出现次数和链表指针,链表部分包括表示元素在三元组集合中位置的自由节点;其中,常量的元素有效值为完整的常量值,变量的元素有效值为变量名称,空节点的元素有效值为空节点标识。
优选地,所述将分离出的三元组元素按照常量、变量、空节点的分类方式分别存入常量表、变量表和空节点表包括:
根据正则表达式,依次提取出SPARQL查询语句所描述的RDF图模式中各三元组的主语、谓语和宾语;同时在处理过程中判断当前元素是常量、变量还是空节点,并根据类型选择即将存入的元素结构表;
在对应的元素结构表中搜寻数组部分存储的元素有效值,如果搜索到与当前元素有效值相同的数据项,则将该元素的当前位置存入对应数据项所带链表的表头位置,同时将出现次数自增1;如果没有找到相同的数据项,则将该元素有效值存入数组中,出现次数部分置为1,将元素的当前位置记录在后置链表中。
优选地,所述元素位置为元素所在的三元组编号以及在三元组中的主语、谓语或宾语位置。
优选地,所述方法还包括得到返回结果以后检查数据中是否存在空节点形式的数据,如果存在,则对所述空节点形式的数据进行二次查询,匹配以该空节点为主语的三元组。
本发明的查询过程中不需要与主程序作交互,减少中断时间开销,同时一体化的SQL片段可以采用关系数据库中的各种优化技术来进一步对程序进行优化,能更大程度的减少时间开销,提高系统执行效率。
附图说明
图1是本发明实施例中原始RDF图的示例图;
图2是本发明实施例中SPARQL查询语句表示的RDF图模式的示例图;
图3是本发明实施例中所述的RDF图模式匹配系统的系统框图;
图4是本发明实施例的RDF图模式匹配方法的流程图;
图5是本发明实施例所述的元素结构表的示意图;
图6是本发明实施例中SPARQL查询的RDF图模式的示意图;
图7是图6所述元素进行存储的元素结构表的示意图;
图8是本发明实施例的RDF图模式匹配方法的数据流向示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
为了表示区分,本申请中将基本RDF图模式称为图模式或匹配图模式,而被查询的数据称为原始图。
资源描述框架(RDF)使用Web标识符来标识事物,并通过属性和属性值来描述资源。其中,资源是可拥有URI的任何事物,比如http://www.w3school.com.cn/rdf;属性是拥有名称的资源,比如"author"或"homepage";而属性值是某个属性的值,比如"David"或"http://www.w3school.com.cn"(请注意一个属性值可以是另外一个资源)。
资源、属性和属性值三者构成了RFD表达式的三元组(triples)的基本结构。在三元组中,资源本身是主语(subject),属性名称是谓语(predicate),属性值是宾语(object)。一组这样的三元组被称为RDF图,这可以用具有一个节点和有向边的图来表示,在图中每个三元组对应于节点-边-节点的连接,对应于边的谓语表示一个关系,边的方向很重要,它总是指向宾语。且这个的起始节点和终止节点分别对应三元组的主语和宾语。
例如,一个基本的RDF数据集形式如下所示:
RDF数据集中前三行prefix是声明部分,主要是为了使正文书写更为简洁,并不影响正文的查询语义。本发明中的数据集都默认采用这部分前缀,因此不再重复书写。该RDF数据集表示成RDF图如图1所示,每条节点-边-节点的组合对应于数据集非声明部分中的某一个三元组。其中,“_:x”表示一个空节点,通过空节点标识符,允许多个陈述引用同一个未标识的资源,它是一个和所有URIs和文字不同的本地标识符。当合并图的时候,为了保留空节点的含义,那么不同图中的空节点必须保持不同,这可能会导致重新分配空节点标识符。空节点不具有具体的值,而只是拥有一个身份标识。也就是说,空节点不包含任何信息,而空节点的标识是用来区分多个不同空节点的,不作为完全匹配的标准,例如:在图模式中以“_:a”表示的空节点,可以匹配原始图中以其他形式如“_:b”所表示的空节点,而不仅仅是“_:a”。
图1是原始RDF图片段的示例图。图1所示的RDF图描述了1班学号为2701的学生的个人信息,该学生姓氏为张;性别为女;地址为成都人民路。其中利用空节点“_:x”来允许“city”和“road”两个宾语对其进行引用。
SPQRAL查询语言所采用图模式是描述RDF图的一种有效方法,用RDF词汇和查询变量描述所要查询RDF图的一个子图,它在结构上与RDF图类似,只不过构成它的基本元素除了可以是RDF词汇也可以是变量。例如,SPQRAL查询语句如下:
?class foaf:member id:2701
id:2701 foaf:name ?name
表示查询原始数据集中学号为2701的同学所在的班级以及姓名,表示成RDF图的结构形式就如图2所示。图2中包括两个三元组,其中,?class和?name表示变量,其为需要查询的量。
SPARQL查询实际上就相当于用图2中的匹配图模板去匹配图1中的原始图来找到解。可以看到一个匹配图模式就跟原始图的RDF数据集类似,采用一个或多个三元组组成。
本发明所称的SQL片段是依据匹配图模式表达的关系转换而成的部分SQL语句。多个SQL片段就组成完整的SQL查询程序段,可由传统关系数据库直接处理。
本发明所称的模式解(pattern solution)是当图模式匹配到RDF图的某个子图时,查询变量与之所对应RDF词汇之间的绑定关系就是图模式匹配RDF图模式的解,以图2中的SPARQL查询图1所示RDF图得到的模式解如下标所示:
Class | Name |
uestc:class1 | zhang |
...... | ...... |
本发明所提出的方法的主要原理是:完善并提取SPARQL查询基本RDF图模式中的三元组,以主语、谓语、宾语三种成分形式来对三元组中的元素进行标记。在此过程中同时判断出变量和非变量成分,分别存入不同的元素结构表中——常量表、变量表以及空节点表,并记录下每个元素所在的三元组编号以及成分形式。其中主要通过元素关系结构中的多重元素(出现多次的元素)来表示基本图模式中各个三元组之间的关系,用常量元素的结构表来记录每次匹配的条件。RDF图模式中的三元组关系就被转化到对应的元素关系结构中,依据该结构将基本RDF图模式转化成SQL语句段。
本发明建立在三元组数据库存储方式的基础之上,将RDF图的三元组的主语、谓语、宾语分别存在关系数据库中的subject、predicate、object列中。在实际设计过程中,可以根据对存储空间的需求关系来进行存储具体方案的设计,只需要能够建立三元组关系的视图就可以了,然后在视图的基础上进行查询。视图所体现的三元组关系如下表所示:
Subject | Predicate | Object |
uestc:class1 | foaf:menber | id:2701 |
id:2701 | foaf:name | ‘zhang’ |
id:2701 | foaf:sex | ‘female’ |
id:2701 | foaf:address | _:x |
_:x | foaf:city | ‘chengdu’. |
_:x | foaf:road | ‘people′s road’. |
...... | ...... | ...... |
图3是本发明实施例所述的RDF图模式匹配系统的系统框图。其中,RDF存储单元主要用于对RDF文件的解析,使其获得主谓宾的三元组,并将三元组按上表所示的方式存储到关系数据库;结果包装模块用于将得到的SQL查询结果组合成用户需要的SPARQL查询结果,使数据具有RDF语义,最终输出符合要求的RDF或XML文档。SPARQL查询处理模块是本发明的核心,其中的基本模式处理子模块主要用于进行基本RDF图模式信息提取的部分的转换,由SPARQL查询程序段转换成元素结构表,再通过解析元素结构表来生成SQL语句;复杂模式转换子模块用于将复杂的RDF图模式分解为多个基本RDF模式。
图4是本发明实施例的RDF图模式匹配方法的流程图。如图4所示,所述方法包括:
步骤100、将SPARQL查询语句根据SPARQL规范中的正则表达式解析出完整的三元组。
这里主要完成内容是诸如主语省略、平行宾语、空节点省略、容器表示等SPARQL查询的简写方式来进行填全补充。例如,以下的主语省略:
?x foaf:name ?name;
foaf:mbox ?mbox.
就等价于
?x foaf:name ?name.
?x foaf:mbox ?mbox.
完善三元组的好处在于不需要在转换成SQL片段的时候还来处理查询语句的逻辑关系。由于是根据正则表达式来进行处理,所以实际上,在完善三元组的同时也进行了主语、谓语、宾语的分离,并且各元素的分类情况——常量、变量、空节点也已经划分清楚了。由于每个三元组对数据库进行一次匹配,为了将每次匹配过程加以区分,需要将三元组进行编号。
步骤200、根据解析得到的三元组信息生成元素结构表。
元素结构表的主要思想是将SPARQL查询模式中三元组的元素用不同的表结构存储,由于各表结构中若同一元素多次出现,则表示其所在的所有三元组是相邻的,并且以该元素为共同节点。根据这一特性,将离散的三元组有机地组合起来,恢复原图模式。于是根据各元素结构表中的所有记录就可以生成跟原图模式语义对应的SQL语句,保证RDF查询转换的整体性以及简便性。
元素结构表的基本形式如图5所示。元素结构表包括数组部分和链表部分,其中数组部分的数据元素包含value、count和链表指针三个数据项。链表部分包括表示元素位置的自由节点。在元素结构表中,value一项记录各类型元素的有效值。即在常量表中记录的是完整的常量值,在变量表中记录变量名称,空节点表中表示空节点标识。Count一项表示该元素所出现过的次数,同时该数字也表示了其后所带的链表的长度。Location一项存储的是元素出现的位置。
SPARQL图模式中每个三元组会对数据库进行一次独立的完全匹配,实际操作过程是搜索在对应属性列上与常量相等的记录,并按要求返回对应于所要查询属性列的值。同时,由于RDF图模式的多个三元组之间相互拥有共同的元素,以将三元组联系成一个图的形式。于是中间节点(度大于2的节点)就成为了联系各三元组的纽带。
生成元素结构表的主要步骤如下:
步骤201、根据正则表达式,依次提取出RDF图模式中的主语、谓语和宾语。同时在处理过程中能够判断出当前元素是常量、变量还是空节点。根据类型选择即将存入的元素结构表。
步骤202、在相应元素结构表中搜寻数组部分存储的主记录,即value部分。如果搜索到与当前元素有效值相同的数据项,则将该元素的当前位置(所在的三元组编号以及所充当的主谓宾成分)存入对应数据项所带链表的表头位置,同时将count自增1;如果没有找到相同的数据项,则将该元素有效值存入数组中,count部分置为1,将元素的当前位置记录在后置链表中。常量“a”的有效值就为a,变量“?b”的有效值为b,空节点“_:c”的有效值为c。
图6是本发明实施例查询1班住在成都的学生名字name和学号id的RDF图模式。
从图6中可提取出的四个三元组分别为:
t1:Uestc:class1 foaf:member ?id
t2:?id foaf:name ?name
t3:?id foaf:address _:add
t4:_:add foaf:city chengdu
图7是将图6所述元素进行存储的元素结构表的示意图。如图7所示,将分离出的三元组元素按照常量、变量、空节点的分类方式分别存入constant表、variable表和blank表等元素结构表。在本实施例中,通过变量名称前带有符号“?”以及空节点名称前带有“_:”即可实现对于三种类型元素的分类。
其中S表示主语subject,P表示谓语predicate,O表示宾语object。t1.o表示匹配被重命名完为t1的statements表的object属性列,也即三元组t1的宾语。在本实施例中,statements表为关系数据库中存储RDF三元组数据的数据库表。
在图7中,常量、变量和空节点信息分别存储在constant表、variable表和blank表中。例如,在常量表中存储有常量uestc:class1其在三元组集合中的出现次数为1,位置为t1三元组的主语。又例如,在变量表中存储有变量id,其在三元组集合中出现3次,位置分别为t3三元组的主语,t2三元组的主语和t1三元组的宾语。同样,在空节点表中存储有空节点add,其在三元组集合中出现2次,位置分别是t4三元组的主语和t3三元组的宾语。通过出现多次的id变量和add空节点即可根据常量、变量和空节点表建立不同的三元组之间的关系。
步骤300、根据元素结构表生成SQL语句段。
生成from子句,使得每个三元组对数据库的一次匹配可以反应到数据库表的重命名中来,将数据库中的表多次重命名,使得statements表具有多个名称,该多个名称与待匹配的三元组一一对应。图6示例中有4个三元组,用三元组编号将数据库中的statements表重命名4次,生成的语句如下:
From statements as t1,statements as t2,statements as t3,statements ast4
通过由前一阶段生成的各种元素结构表分别构造出传统关系数据库中查询主体的不同子句,具体如下表所示:
元素结构表 | 对应SQL片段 |
常量constant | Where子句 |
变量variable | Where子句以及select子句 |
空节点blank | Select子句 |
常量元素结构表用来生成匹配指定具体值的记录的where子句。变量元素结构的后置链表部分用来生成每次三元组匹配之间的等价条件,也属于where子句部分,数组部分的主记录以及链表的第一个节点用来生成select子句。这里需要说明的是空节点元素结构表。在SPARQL查询语言中,空节点不具有具体的值,而只是拥有一个身份标识。也就是说,空节点不包含任何信息,而空节点的标识是用来区分多个不同空节点的,不作为完全匹配的标准,例如:在图模式中以“_:a”表示的空节点,可以匹配原始图中以其他形式如“_:b”所表示的空节点,而不仅仅是“_:a”。在SPARQL查询中,可以这样理解空节点:空节点是一种特殊的变量,该变量指定在原始图中所匹配的数据项必须也是空节点,拥有“_:%”的书写形式,但不指定空节点中%所代表的具体值。而图模式中的空节点值是用来区分自身不同空节点的,即并不要求用不同标识表示的空节点相等。
因此,在信息提取过程中,对空节点这种带限制的变量要增加数据书写形式的匹配条件。
a)提取常量元素结构表(即constant表),将数组的每个数据项以及其所带的整个链表当成一个等价条件来处理。如图5所示常量元素结构表中,依次生成where等价条件语句:
Where t1.s=‘uestc.class1’,t1.p=‘foaf:member’,t2.p=’foaf:name’,
t3.p=’foaf:address’,t4.p=’foaf:city’;t4.o=’Chengdu’
b)提取变量元素结构表(即variable表),将数组中count项大于等于2的数据项所带的整个链表当成一个等价条件来处理。图7所示变量元素结构表中,生成的where等价条件子句如下:
Where t3.s=t2.s=t1.o
变量元素结构表还充当着模式解属性列选取的依据。搜索变量结构表数组结构中的主记录以及其链表的表头节点,生成select子句。根据图5变量元素结构表生成的SQL片段为:
Select t3.s as id,t2.o as name
c)提取空节点元素结构表blank,与变量元素的等价关系处理一致,由count值大于等于2的数据项所带链表生成where等价条件子句
Where t4.s=t3.o
再搜索所有数据项以及所带链表的第一个节点,生成书写形式限制匹配条件:
Where t4.s like“_:%”
由各元素结构表生成SQL片段的过程完成,将所有零碎的片段按照select-from-where的格式组织在一起,形成图模式转换的整体SQL语句。
步骤400、利用获得的SQL语句段查询关系数据库。
作为基本图模式对应的完整子SQL片段生成过程结束。然后根据SPARQL查询中各基本图模式的关系进行适当的连接联合操作将所有的子SQL片段连接成整体,交由数据库处理。
需要注意的是,得到返回结果以后需要检查数据中是否存在空节点形式的数据,如示例中查找某个学生的住址address,得到空节点“_:a”,由于空节点不携带任何信息,这样的结果显然不是所求的。解决办法是对返回结果进行检查,对空节点进行二次查询,匹配以该空节点为主语的三元组。由于返回结果中的空节点标识是原始图中的标识,与查询模式中的空节点含义有些差异,查询的时候就要指定空节点必须为原值,如statements.subject=‘_:a’,在示例中的address结果就得到了城市city和街道road的真实值扩充。”
步骤500、将得到的返回结果按照SPARQL结果集的要求返回成xml文档或关系数据表。
图8是本发明实施例的RDF图模式匹配方法的数据流向示意图。如图8所示,用户编辑的SPARQL查询程序段在查询处理层被转化为三元组信息,进一步三元组信息按常量、变量和空节点被存储到元素结构表中,根据元素结构表中的数据进一步生成SQL查询语句段通过查询总控制对关系数据库进行查询。其中,关系数据库中按三元组的方式存储RDF数据资源。关系数据库查询得到的结果经过复杂模式解处理和结果包装向用户返回xml文档或关系数据表形式的结果。
本发明简化了基本RDF图模式转换成SQL语句的过程,并且生成一体化的SQL片段,查询过程中不需要与主程序作交互,减少中断时间开销,同时一体化的SQL片段可以采用关系数据库中的各种优化技术来进一步对程序进行优化,能更大程度的减少时间开销,提高系统执行效率。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种资源描述框架(RDF)图模式匹配方法,用于利用SPARQL语句对以三元组形式存储于关系数据库中的RDF数据进行RDF图模式匹配,所述方法包括:
将SPARQL查询语句根据SPARQL规范中的正则表达式解析出完整的三元组集合;其中,所述三元组集合包括至少一组三元组,所述三元组由SPARQL查询语句对应的RDF图模式中的主语、谓语和宾语值组成;
根据解析得到的三元组集合生成元素结构表;其中,所述元素结构表包括常量表、变量表和空节点表,所述常量表用于存储所述三元组集合中常量的常量值、出现次数和位置,所述变量表用于所述三元组集合中变量的变量名称、出现次数和位置,所述空节点表用于存储所述三元组集合中空节点的空节点标识、出现次数和位置;
根据元素结构表自动生成SQL语句段;其中,首先,根据所述三元组集合中三元组的标号生成FROM子语句,所述FROM子语句利用三元组的编号对存储三元组数据的数据库表进行重命名使得重命名表和待匹配的三元组一一对应起来;然后,分别根据元素结构表中的常量表生成WHERE子语句以限定查询列的特征,根据变量表的变量名称生成SELECT子语句以限定需要查询的列,根据变量表以及空间点表中出现次数大于等于2的变量或空间点的元素位置生成WHERE子语句以限定等价条件;根据空节点表中的空节点位置和空节点标识生成限定空节点形式限制匹配条件的WHERE子语句;最后,将所有SQL子语句段按照select-from-where的格式组织在一起,形成图模式匹配SQL语句段;
利用获得的SQL语句段查询关系数据库并返回匹配结果。
2.如权利要求1所述的资源描述框架(RDF)图模式匹配方法,其特征在于,所述方法还包括将得到的返回结果按照SPARQL结果集的要求返回成xml文档或关系数据表。
3.如权利要求1所述的资源描述框架(RDF)图模式匹配方法,其特征在于,所述根据解析得到的三元组集合生成元素结构表包括将分离出的三元组元素按照常量、变量、空节点的分类方式分别存入常量表、变量表和空节点表;且元素结构表包括数组部分和链表部分,所述数组部分的数据元素包括元素有效值、出现次数和链表指针,链表部分包括表示元素在三元组集合中位置的自由节点;其中,常量的元素有效值为完整的常量值,变量的元素有效值为变量名称,空节点的元素有效值为空节点标识。
4.如权利要求3所述的资源描述框架(RDF)图模式匹配方法,其特征在于,所述将分离出的三元组元素按照常量、变量、空节点的分类方式分别存入常量表、变量表和空节点表包括:
根据正则表达式,依次提取出SPARQL查询语句所描述的RDF图模式中各三元组的主语、谓语和宾语;同时在处理过程中判断当前元素是常量、变量还是空节点,并根据类型选择即将存入的元素结构表;
在对应的元素结构表中搜寻数组部分存储的元素有效值,如果搜索到与当前元素有效值相同的数据项,则将该元素的当前位置存入对应数据项所带链表的表头位置,同时将出现次数自增1;如果没有找到相同的数据项,则将该元素有效值存入数组中,出现次数部分置为1,将元素的当前位置记录在后置链表中。
5.如权利要求1或3所述的资源描述框架(RDF)图模式匹配方法,其特征在于,所述元素位置为元素所在的三元组编号以及在三元组中的主语、谓语或宾语位置。
6.如权利要求1所述的资源描述框架(RDF)图模式匹配方法,其特征在于,所述方法还包括得到返回结果以后检查数据中是否存在空节点形式的数据,如果存在,则对所述空节点形式的数据进行二次查询,匹配以该空节点为主语的三元组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210163578.XA CN102722542B (zh) | 2012-05-23 | 2012-05-23 | 一种资源描述框架图模式匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210163578.XA CN102722542B (zh) | 2012-05-23 | 2012-05-23 | 一种资源描述框架图模式匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102722542A true CN102722542A (zh) | 2012-10-10 |
CN102722542B CN102722542B (zh) | 2016-07-27 |
Family
ID=46948303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210163578.XA Expired - Fee Related CN102722542B (zh) | 2012-05-23 | 2012-05-23 | 一种资源描述框架图模式匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102722542B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999563A (zh) * | 2012-11-01 | 2013-03-27 | 无锡成电科大科技发展有限公司 | 基于资源描述框架的网络资源语义检索方法及系统 |
CN103841151A (zh) * | 2012-11-26 | 2014-06-04 | 三星电子(中国)研发中心 | 管理社交网络数据的方法和装置 |
CN104572970A (zh) * | 2014-12-31 | 2015-04-29 | 浙江大学 | 一种基于本体库内容的sparql查询语句生成系统 |
CN104834754A (zh) * | 2015-05-29 | 2015-08-12 | 武汉大学 | 一种基于连接代价的sparql语义数据查询优化方法 |
CN104866498A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN104915340A (zh) * | 2014-03-10 | 2015-09-16 | 北京大学 | 自然语言问答方法及装置 |
CN105955999A (zh) * | 2016-04-20 | 2016-09-21 | 华中科技大学 | 一种大规模RDF图的ThetaJoin查询处理方法 |
US9589022B2 (en) | 2015-06-15 | 2017-03-07 | International Business Machines Corporation | Traversing a SPARQL query and translation to a semantic equivalent SQL |
CN106528849A (zh) * | 2016-11-24 | 2017-03-22 | 上海交通大学 | 面向完整历史记录的图查询开销方法 |
WO2017061901A1 (ru) * | 2015-10-08 | 2017-04-13 | Общество с ограниченной ответственностью "Колловэар" | Система и способ обработки данных графов |
CN107077505A (zh) * | 2014-11-21 | 2017-08-18 | 微软技术许可有限责任公司 | 自动模式不匹配检测 |
WO2018010462A1 (zh) * | 2016-07-12 | 2018-01-18 | 华为技术有限公司 | 数据处理的方法及装置 |
CN108304505A (zh) * | 2018-01-18 | 2018-07-20 | 上海达梦数据库有限公司 | 一种sql语句的处理方法、装置、服务器及存储介质 |
CN108604236A (zh) * | 2015-10-30 | 2018-09-28 | 康维达无线有限责任公司 | 语义物联网的restful操作 |
CN108694206A (zh) * | 2017-04-11 | 2018-10-23 | 富士通株式会社 | 信息处理方法和装置 |
CN109033260A (zh) * | 2018-07-06 | 2018-12-18 | 天津大学 | 基于rdf的知识图谱交互式可视化查询方法 |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
CN110825739A (zh) * | 2019-10-30 | 2020-02-21 | 京东数字科技控股有限公司 | 建表语句生成方法、装置、设备及存储介质 |
CN111046241A (zh) * | 2019-11-27 | 2020-04-21 | 中国人民解放军国防科技大学 | 用于流式图处理的图存储方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436192A (zh) * | 2007-11-16 | 2009-05-20 | 国际商业机器公司 | 用于优化针对垂直存储式数据库的查询的方法和设备 |
US20090138498A1 (en) * | 2007-11-26 | 2009-05-28 | Microsoft Corporation | Rdf store database design for faster triplet access |
US20090138437A1 (en) * | 2007-11-26 | 2009-05-28 | Microsoft Corporation | Converting sparql queries to sql queries |
CN101593180A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 将sparql查询转化成sql查询的方法和装置 |
WO2010071244A1 (en) * | 2008-12-15 | 2010-06-24 | Korea Institute Of Science & Technology Information | System and method for sparql-query processing using parametrized-sparql-query in dbms-based systems |
CN101853257A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | Sparql查询的转换系统和方法 |
US20120102456A1 (en) * | 2010-10-26 | 2012-04-26 | Sap Ag | System and Method of Annotating Class Models |
-
2012
- 2012-05-23 CN CN201210163578.XA patent/CN102722542B/zh not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436192A (zh) * | 2007-11-16 | 2009-05-20 | 国际商业机器公司 | 用于优化针对垂直存储式数据库的查询的方法和设备 |
US20090138498A1 (en) * | 2007-11-26 | 2009-05-28 | Microsoft Corporation | Rdf store database design for faster triplet access |
US20090138437A1 (en) * | 2007-11-26 | 2009-05-28 | Microsoft Corporation | Converting sparql queries to sql queries |
US7818352B2 (en) * | 2007-11-26 | 2010-10-19 | Microsoft Corporation | Converting SPARQL queries to SQL queries |
CN101593180A (zh) * | 2008-05-30 | 2009-12-02 | 国际商业机器公司 | 将sparql查询转化成sql查询的方法和装置 |
WO2010071244A1 (en) * | 2008-12-15 | 2010-06-24 | Korea Institute Of Science & Technology Information | System and method for sparql-query processing using parametrized-sparql-query in dbms-based systems |
CN101853257A (zh) * | 2009-03-31 | 2010-10-06 | 国际商业机器公司 | Sparql查询的转换系统和方法 |
US20120102456A1 (en) * | 2010-10-26 | 2012-04-26 | Sap Ag | System and Method of Annotating Class Models |
Non-Patent Citations (1)
Title |
---|
杨琴: "基于关系数据库的RDF存储与查询的研究与实现", 《 中国优秀硕士学位论文全文数据库》, 31 December 2010 (2010-12-31) * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999563A (zh) * | 2012-11-01 | 2013-03-27 | 无锡成电科大科技发展有限公司 | 基于资源描述框架的网络资源语义检索方法及系统 |
CN103841151A (zh) * | 2012-11-26 | 2014-06-04 | 三星电子(中国)研发中心 | 管理社交网络数据的方法和装置 |
CN103841151B (zh) * | 2012-11-26 | 2017-07-28 | 三星电子(中国)研发中心 | 管理社交网络数据的方法和装置 |
WO2015123950A1 (zh) * | 2014-02-24 | 2015-08-27 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN104866498A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 一种信息处理方法及装置 |
US10956464B2 (en) | 2014-03-10 | 2021-03-23 | Peking University | Natural language question answering method and apparatus |
CN104915340A (zh) * | 2014-03-10 | 2015-09-16 | 北京大学 | 自然语言问答方法及装置 |
US10210245B2 (en) | 2014-03-10 | 2019-02-19 | Peking University | Natural language question answering method and apparatus |
CN104915340B (zh) * | 2014-03-10 | 2019-09-10 | 北京大学 | 自然语言问答方法及装置 |
US10684998B2 (en) | 2014-11-21 | 2020-06-16 | Microsoft Technology Licensing, Llc | Automatic schema mismatch detection |
CN107077505A (zh) * | 2014-11-21 | 2017-08-18 | 微软技术许可有限责任公司 | 自动模式不匹配检测 |
CN104572970A (zh) * | 2014-12-31 | 2015-04-29 | 浙江大学 | 一种基于本体库内容的sparql查询语句生成系统 |
CN104572970B (zh) * | 2014-12-31 | 2017-09-12 | 浙江大学 | 一种基于本体库内容的sparql查询语句生成系统 |
CN104834754A (zh) * | 2015-05-29 | 2015-08-12 | 武汉大学 | 一种基于连接代价的sparql语义数据查询优化方法 |
US9852179B2 (en) | 2015-06-15 | 2017-12-26 | International Business Machines Corporation | Traversing a SPARQL query and translation to a semantic equivalent SQL |
US9852178B2 (en) | 2015-06-15 | 2017-12-26 | International Business Machines Corporation | Traversing a SPARQL query and translation to a semantic equivalent SQL |
US10915525B2 (en) | 2015-06-15 | 2021-02-09 | International Business Machines Corporation | Traversing a SPARQL query and translation to a semantic equivalent SQL |
US9589022B2 (en) | 2015-06-15 | 2017-03-07 | International Business Machines Corporation | Traversing a SPARQL query and translation to a semantic equivalent SQL |
WO2017061901A1 (ru) * | 2015-10-08 | 2017-04-13 | Общество с ограниченной ответственностью "Колловэар" | Система и способ обработки данных графов |
CN108604236B (zh) * | 2015-10-30 | 2022-03-29 | 康维达无线有限责任公司 | 语义物联网的restful操作 |
CN108604236A (zh) * | 2015-10-30 | 2018-09-28 | 康维达无线有限责任公司 | 语义物联网的restful操作 |
CN105955999A (zh) * | 2016-04-20 | 2016-09-21 | 华中科技大学 | 一种大规模RDF图的ThetaJoin查询处理方法 |
WO2018010462A1 (zh) * | 2016-07-12 | 2018-01-18 | 华为技术有限公司 | 数据处理的方法及装置 |
US11005737B2 (en) | 2016-07-12 | 2021-05-11 | Huawei Technologies Co., Ltd. | Data processing method and apparatus |
CN106528849B (zh) * | 2016-11-24 | 2020-08-04 | 上海交通大学 | 面向完整历史记录的图查询开销方法 |
CN106528849A (zh) * | 2016-11-24 | 2017-03-22 | 上海交通大学 | 面向完整历史记录的图查询开销方法 |
CN108694206A (zh) * | 2017-04-11 | 2018-10-23 | 富士通株式会社 | 信息处理方法和装置 |
CN108304505A (zh) * | 2018-01-18 | 2018-07-20 | 上海达梦数据库有限公司 | 一种sql语句的处理方法、装置、服务器及存储介质 |
CN110309334A (zh) * | 2018-04-20 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
CN110309334B (zh) * | 2018-04-20 | 2023-07-18 | 腾讯科技(深圳)有限公司 | 图数据库的查询方法、系统、计算机设备和可读存储介质 |
CN109033260A (zh) * | 2018-07-06 | 2018-12-18 | 天津大学 | 基于rdf的知识图谱交互式可视化查询方法 |
CN109033260B (zh) * | 2018-07-06 | 2021-08-31 | 天津大学 | 基于rdf的知识图谱交互式可视化查询方法 |
CN110825739A (zh) * | 2019-10-30 | 2020-02-21 | 京东数字科技控股有限公司 | 建表语句生成方法、装置、设备及存储介质 |
CN111046241A (zh) * | 2019-11-27 | 2020-04-21 | 中国人民解放军国防科技大学 | 用于流式图处理的图存储方法及装置 |
CN111046241B (zh) * | 2019-11-27 | 2023-09-26 | 中国人民解放军国防科技大学 | 用于流式图处理的图存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102722542B (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102722542A (zh) | 一种资源描述框架图模式匹配方法 | |
CN102693310A (zh) | 一种基于关系数据库的资源描述框架查询方法和系统 | |
CN103646032B (zh) | 一种基于本体和受限自然语言处理的数据库查询方法 | |
CN102033954B (zh) | 关系数据库中可扩展标记语言文档全文检索查询索引方法 | |
CN112000725B (zh) | 一种面向多源异构资源的本体融合前处理方法 | |
CN110941612A (zh) | 基于关联数据的自治数据湖构建系统及方法 | |
CN103116625A (zh) | 一种基于Hadoop的海量RDF数据分布式查询处理方法 | |
Taheriyan et al. | Leveraging linked data to discover semantic relations within data sources | |
CN106021523B (zh) | 基于json的数据仓库存储及查询方法 | |
Wardani et al. | Semantic mapping relational to graph model | |
CN103279546A (zh) | 图数据查询方法 | |
Abiteboul et al. | Constructing and querying peer-to-peer warehouses of XML resources | |
CN102819600A (zh) | 面向电力生产管理系统关系数据库的关键词搜索方法 | |
CN104156431A (zh) | 一种基于实体图社团结构的rdf关键词查询方法 | |
CN103365960A (zh) | 电力多级调度管理结构化数据的离线搜索方法 | |
CN112148830A (zh) | 一种基于最大区域网格的语义数据存储与检索的方法及装置 | |
Zhang et al. | An overview on supervised semi-structured data classification | |
Karanasos et al. | Viewing a world of annotations through AnnoVIP | |
CN102955860B (zh) | 基于模式图的关键字查询改进方法 | |
Yao et al. | An automatic semantic extraction method for web data interchange | |
Yuksel et al. | An analysis of RDF storage models and query optimization techniques | |
Chakrabarti et al. | Enhancing search with structure | |
JP2010267081A (ja) | 情報検索方法及び装置及びプログラム | |
Raut et al. | A survey of indexing techniques for XML database | |
Almarimi et al. | A mediation layer for heterogeneous XML schemas |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210111 Address after: No.2006 Xiyuan Avenue, Chengdu, Sichuan 611731 Patentee after: University of Electronic Science and technology of Sichuan foundation for education development Address before: Room 402, area a, Liye building, science and Technology Park, China sensor network university, Taike Park, Wuxi New District, Wuxi City, Jiangsu Province, 214135 Patentee before: WUXI UESTC TECHNOLOGY DEVELOPMENT Co.,Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160727 |
|
CF01 | Termination of patent right due to non-payment of annual fee |