一种非结构化数据查询方法

文档序号:6429940阅读:136来源:国知局

专利名称::一种非结构化数据查询方法
技术领域
:本发明涉及一种针对非结构化数据库,以四面体模型及XQuery语言为基础的非结构化数据查询方法,该方法使用非结构化数据智能查询语言AQUAdvancedQueryLanguage,AQL,高级查询语言)。
背景技术
:关系数据库因其固有限制,不能满足互联网的应用需求,非结构化数据库应运而生。非结构化数据库以四面体模型为理论基础,四面体模型以基本属性、语义属性、底层特征和原始文件四个刻面来完整描述数据。其中基本属性和语义属性可以用XML数据库进行存储,现有的XML查询语言为XQuery,但XQuery只能用于查询XML格式的信息,不能实现视频、音频等多媒体信息基于内容的查询。非结构化数据库中存储的数据种类多并且规模庞大,对于这些数据的查询操作需求也是多样的,具体来说有三种基本查询、关联查询和智能查询,现有的查询方法无法完成新型的查询操作。
发明内容本发明的技术解决问题克服现有技术的不足,提供一种实现非结构化数据查询的方法,根据对要查询的数据的四个刻面的条件约束实现多面查询和实例查询,根据数据聚类时特征选择的约束实现智能查询,通过对跨数据类检索时对关联点的约束实现多体查询,可以完全满足非结构化数据查询操作的需求。本发明的技术解决方案一种非结构化数据查询方法,该方法使用非结构化数据智能查询语言AQL,其特征在于步骤如下(1)使用的非结构化数据智能查询语言AQL对XQuery语言进行扩展,增加基本属性、语义属性、底层特征和聚类方式关键语句,以支持多面查询、实例查询、智能查询和多体查询;(2)简化与非结构化数据查询无关的功能,以提高解析效率;(3)定义执行计划用于表示非结构化数据查询的执行过程;G)AQL语句的解析过程为预处理,识别实例文件字段,若语句包含实例文件则记录文件,否则转到步骤(5);(5)按照AQL语法把语句中不同属性的描述字段分离;(6)根据步骤(分离的不同字段形成对应的查询语句并生成执行计划。根据本发明的又一个方面,其中步骤(1)进一步包括步骤(1.a)AQL以XQuery语言的FLWOR语句为基础,在其后加入了用于指定实例文件路径的语句Fil印athClause,以fil印ath为实例文件关键字;(l.b)AQL扩展XQuery的where语句,增加基本属性关键字ki,语义属性关键字sf,底层特征匹配方式关键字If关键字,以实现对数据不同面的约束;(1.c)AQL增加智能查询语句,以classify为关键字,用于指定聚类时的特征选择。根据本发明的又一个方面,其中步骤(进一步包括(2.a)减少FLWOR语句的嵌套,在AQL中规定FLWOR语句的嵌套只能在for语句中进行;(2.b)限定return语句的返回值,规定嵌套在内层的FLWOR语句的返回值只能为数据的原始数据id。根据本发明的又一个方面,其中步骤C3)进一步包括(3.a)执行计划以XML文件格式存放;(3.b)执行计划按多体查询划分;(3.C)单体查询内部包含实例文件、查询范围、基本属性查询语句、语义属性查询语句、底层特征匹配方式和智能查询语句。根据本发明的又一个方面,其中步骤(6)进一步包括(6.a)分离基本属性、语义特征、底层特征查询的相应字段;(6.b)基本属性、语义特征的查询形成XQuery语句的形式,底层特征的查询形成符合AQL语言文法定义的查询语句;(6.c)根据步骤(6.b)形成的查询语句生成执行计划。本发明与现有技术相比的优点在于本发明考虑非结构化数据库的查询需求,保留XML查询功能的同时实现了基于内容的查询,同时也可以完成新型查询操作。图1为本发明的功能图;图2为本发明的解析流程;图3为本发明算法的多体查询执行流程;图4为本发明算法的多面查询执行流程;图5为本发明的功能测试结果;图6为本发明的性能测试结果。具体实施例方式下面参考附图,对本发明的实施例进行详细的说明。首先对本发明所针对的功能需求进行说明。根据非结构化数据库中数据查询功能的要求,该查询方法的功能(如图1所示)主要有1.基本查询利用数据的基本属性和语义特征,通过文本信息查找特定的数据;2.底层查询输入样本数据,如一副图像、一段语音或一段视频录像,通过底层特征匹配查找相似度最高的数据集;3.多面查询综合利用基本属性、语义特征与底层特征实现关联查询,准确快速定位数据;4.多体查询利用语义特征,实现多主题的多种数据类型的关联式查询;5.智能查询实现对查询结果的聚类、分类、多维数据分析等智能查询服务;6.综合查询上述功能可以嵌套执行,如智能查询可以在多面查询的基础上执行。非结构化数据查询方法所使用的智能查询语言AQL是在XQuery语言基础上扩展和简化而来,下面对此进行详细说明1.扩展底层查询功能:AQL中关于基本属性和语义特征的查询可以用XQuery语言实现,但四面体模型的底层特征不是以XML格式描述,所以XQuery不具备底层特征检索的功能,AQL对底层特征查询进行扩展;2.扩展智能查询功能智能查询包括对数据进行多维分析、聚类和分类操作,XQuery不具备对应功能,对此进行扩展;3.扩展多面查询功能多面查询是指对某个数据的基本属性、语义特征、底层特征三个面进行关联查询。在非结构化数据库中,每个数据的四个面特征是分别存储的,多面查询要由不同特征查询的结果合并后才能得到最终查询结果。XQuery不支持底层查询并且实现需要多层嵌套,为了完整实现多面查询功能并使AQL语言变得简明,对多面查询功能进行扩展;4.扩展多体查询功能多个体关联查询是指不同类型数据的关联查询,如图像与文本关联查询,需要对多个指定文集进行查询。XQuery无法在一条语句中完成对多个文集的检索,因此扩展多体查询功能;5.减少语句的嵌套在XQuery中,各个语句之间可以灵活嵌套。过多的嵌套对扩展之后的AQL多余,而且影响语言的简洁,对此进行简化,规定AQL语言的嵌套只能在for语句中进行;6.限定return语句的返回值简化嵌套在内层的语句的返回值类型,规定只能返回原始数据id,便于多个文件的关联操作。下面给出AQL语言的文法定义1.最外层FLTOR语句文法FLffORExpr=ForClauseLetClause?WhereClause?OrderByClause?ReturnClause(FilePathClause)?AQL语言最外层的结构以XQuery语言的FLWOR语句结构为基础,但在FLWOR语句后加入了用于指定输入文件路径的语句;2.内层嵌套的FLWOR语句文法FLffORExprInner::=ForClause(LetClause)?WhereClause?OrderByClause?ReturnClauseInner(FilePathClause)?嵌套在内层的FLWOR语句与外层的FLWOR语句相比,区别主要在于return语句不同,内层的FLWOR语句只能返回所查数据的原始数据id,不能指定返回的具体数据项;3.for语句文法ForClause:=“for"“$〃VarName“in"TypePath("("FLffORExprChanged,,),,)?for语句用于指定一次多面查询所涉及到的数据类型的范围,并可嵌套FLWOR语句实现多体查询;4.let语句文法LetClause::="let"“$〃VarName“:=〃LocalPart(〃,$〃VarName“=〃LocalPart)*let语句用于定义一次多面查询的所用到的路径变量,使用变量可以提高XML数据库的查询效率;5.where语句文法WhereClause::=“where"(‘‘BA{,,condition,,},,("SF{"condition"}")?(“LF{,,lfcondition,,},,)?)|("SF{"condition"}"("LF{”lfcondition,,},,)?)|(”LF{”lfcondition”}”}where语句用于定义一次多面查询各个刻面的限制条件。根据刻面种类,限制条件分为三种基本属性条件、语义特征条件、底层特征条件;6.orderby语句文法OrderByClause::=(uha""{"(("order"“by")|(“stable"“order"‘‘by"))TypePathOrderSpecList,,},,)?(“sf,,,,{,,((〃order"“by")|(〃stable"“order"“by"))TypePathOrderSpecList,,},,)?orderby语句用于定义返回值的排列顺序。其中,排列方式有按基本属性排列和按语义特征排列两种;7.return语句文法ReturnClause=“$“VarNameLocalPart(IntelligenceOperation(“,,,InteIligenceOperation)?return语句用来指定返回值内容,另外,智能查询功能也扩展在return语句的文法中。下面说明非结构化数据查询方法的执行过程如图2所示,非结构化数据查询方法执行过程的具体流程为用户发出AQL查询请求之后,系统先进行预处理,识别实例文件字段,若请求语句包含实例文件则记录文件。通过关键字识别分离基本属性、语义特征、底层特征的相应描述字段。之后根据基本属性、语义特征的描述字段形成XQuery形式的查询语句,根据底层特征的描述字段形成符合AQL语言文法定义的查询语句,然后根据形成的查询语句生成执行计划。执行计划是AQL语言解析的中间产物。AQL解析器会先将AQL语言解析为执行计划,然后对执行计划进行解析执行,得到查询结果。执行计划的引入增强了AQL语言的可扩展性,查询优化等操作可在执行计划的解析执行中进行。执行计划按XML格式定义如下1.外层是多体查询中每个体的标识,用来将AQL语句查询涉及的几个体的关联查询区分开来;2.内层是每个体内部多面查询的标识,包含基本属性、语义特征、底层特征和智能查询四种语句。其中,基本属性和语义特征语句均为可以直接执行的XQuery语句,底层特征语句描述查询的数据类型和底层特征查询条件,以分号隔开。智能查询语句描述智能查询条件。3.执行计划的最后记录本次查询的返回结果,用XPath路径表达式表示。以下对AQL语言执行过程进行说明根据执行计划的格式及层次划分,AQL语言的执行也分为两层(3.1)外层执行多体查询执行计划(如图3所示),从最内层体开始执行多面查询,按照各个体之间关联逐个向外一层体进行多面查询。所有体查询完毕后,生成查询结果id,取出对应的返回值。(3.2)内层执行多面查询执行计划(如图4所示),解析执行单个体内部的多面查询。根据四面体的刻面划分,执行器分为基本属性执行计划执行器、语义特征执行计划执行器、底层特征执行计划执行器三个部分,操作结果合并器对三个执行器的执行结果合并,生成单个体的多面查询结果。以下通过对本发明的功能测试与性能测试,对本发明的执行结果正确性和执行性能予以说明。测试数据集分为图像和文本两大类。图像又分为animal,plant,activity等八个子类,文本又分为finance,military,education等十个子类。图像数据量大小为100000张,文本数据量大小为50000个。为了完成测试,设计了以下查询情境作为测试用例用例1基本查询用例查询内容是在image类型下的animal子分类中查询author为ying的文本,并且返回符合条件的图像的关键字。所用到的AQL查询语句为for$iin/image/animalwhereba(./author="ying"}return$i/keywords用例2:底层查询用例查询内容是在image类型下的plant子分类下按底层特征匹配算法CEDD查询与输入图像最相似的图像,并且返回符合条件的图像的原始数据id。所用到的AQL查询语句为for$iin/image/plantwhereIf(imagetypematch{CEDD}}return$i/rdidfilepath:={F:/MyEclipse/workspace/ExistConnect/bat(1).jpg}用例3:多面查询用例查询内容是在image类型下的activity子分类中查询基本属性中author为ying,语义特征中format为jpg,底层特征匹配算法为CEDD,并且返回图像的原始数据id.所用到的AQL查询语句为for$iin/image/activitywhereba{./author="ying,,}sf{·/Format="jpg"}If{imagetypematch{CEDD}}return$i/rdidfilepath:={F:/MyEclipse/workspace/ExistConnect/bat(1).jpg}用例4:多体查询用例查询内容是首先内层在image下的activity子分类中查询基本属性中author为ying,语义特征中format为jpg,且底层特征匹配算法为CEDD的图像,并指定了输入的图像文件的路径。然后外层在text的education子分类下查询,text与image两种类型文件嵌套执行的操作方式为在text中的查询以image中查询的结果的keywords作为底层特征查询的输入,因此,外层查询条件有基本属性中author为IonghuipingJg义特征中type为pdf,且含有内层image查询结果的keywords项内容的文本,返回符合条件的文本的原始数据id。所用到的AQL查询语句为for$iin/text/education{for$jin/image/activitywhereba{./author="ying"}sf{./Format"jpg"}If{imagetypematch{CEDD}}return$j/rdidfilepath:={F:/MyEclipse/workspace/ExistConnect/0100050000000144400.jpg}}whereba{./author="longhuiping"}sf{./type="pdf"}return$i/rdid用例5:智能查询用例查询内容是在image下的plant子分类中查询基本属性中author为ying的文本,并且根据文本的keywords项聚类,返回值为结果数据的原始数据id。所用到的AQL查询语句为for$iin/image/plantwhereba{./author="ying,,}return$i/rdidclassifyon/keywords根据以上5个测试用例,对系统的功能及性能进行了测试。功能测试方法为把通过可视化查询工具将查询条件按条目分别输入得到的结果与用AQL文法描述的等效查询语句得到的结果进行比较。性能测试方法为记录不同用例的解析执行时间并分析。功能测试、性能测试结果如图5,6所示。经过测试,从功能上看,通过可视化查询工具与通过非结构化数据查询方法查询的结果一致,说明了AQL解析执行器的正确性;从性能上看,测试用例的解析执行时间均为毫秒级。对于本领域的普通技术人员来说可显而易见的得出其他优点和修改。因此,具有更广方面的本发明并不局限于这里所示出的并且所描述的具体说明及示例性实施例。因此,在不脱离由随后权利要求及其等价体所定义的一般发明构思的精神和范围的情况下,可对其作出各种修改。权利要求1.一种非结构化数据查询方法,该方法使用非结构化数据智能查询语言AQL,其特征在于步骤如下(1)对现有XML查询方法进行改进,所使用的非结构化数据智能查询语言AQL对XQuery语言进行扩展,针对非结构化数据的特点,增加基本属性、语义属性、底层特征和聚类方式关键语句,以支持多面查询、实例查询、智能查询和多体查询;(2)简化与非结构化数据查询无关的功能,以提高解析效率;(3)定义执行计划用于表示非结构化数据查询的执行过程;G)AQL语句的解析过程为预处理,识别实例文件字段,若语句包含实例文件则记录文件,否则转到步骤(5);(5)按照AQL语法把语句中不同属性的描述字段分离;(6)根据步骤(分离的不同字段形成对应的查询语句并生成执行计划。2.根据权利要求1所述的非结构化数据查询方法,其特征在于所描述的步骤(1)进一步包括(1.a)AQL以XQuery语言的FLWOR语句为基础,在其后加入了用于指定实例文件路径的语句Fil印athClause,以fil印ath为实例文件关键字;(1.b)AQL扩展XQuery的where语句,增加基本属性关键字ba,语义属性关键字sf,底层特征匹配方式关键字If关键字,以实现对数据不同面的约束;(1.c)AQL增加智能查询语句,以classify为关键字,用于指定聚类时的特征选择。3.根据权利要求1所述的非结构化数据查询方法,其特征在于所述的步骤(2)进一步包括(2.a)减少FLWOR语句的嵌套,在AQL中规定FLWOR语句的嵌套只能在for语句中进行;(2.b)限定return语句的返回值,规定嵌套在内层的FLWOR语句的返回值只能为数据的原始数据id。4.根据权利要求1所述的非结构化数据查询方法,其特征在于所述的步骤(3)进一步包括(3.a)执行计划以XML文件格式存放;(3.b)执行计划按多体查询划分;(3.c)单体查询内部包含实例文件、查询范围、基本属性查询语句、语义属性查询语句、底层特征匹配方式和智能查询语句。5.根据权利要求2所述的非结构化数据查询方法,其特征在于所述的步骤(6)进一步包括(6.a)分离基本属性、语义特征、底层特征查询的相应字段;(6.b)基本属性、语义特征的查询形成XQuery语句的形式,底层特征的查询形成符合AQL语言文法定义的查询语句;(6.c)根据步骤(6.b)形成的查询语句生成执行计划。全文摘要一种非结构化数据查询方法(1)改进现有XML查询方法,使用非结构化智能查询语言AQL对XQuery语言进行扩展;(2)简化与非结构化数据查询无关的功能;(3)定义执行计划;(4)对AQL语句进行解析,识别实例文件字段;(5)分离语句中不同属性的描述字段;(6)根据步骤(5)的结果形成查询语句并生成执行计划。本发明根据待查数据四个刻面的条件约束实现基本属性、语义属性和底层特征的关联检索和实例查询,根据数据聚类时的特征约束实现智能查询,跨类检索时通过对关联点的约束实现不同类型数据的关联检索,可完全满足非结构化数据的查询需求。文档编号G06F17/30GK102289482SQ20111022024公开日2011年12月21日申请日期2011年8月2日优先权日2011年8月2日发明者段亚伟,郎波,郑剑申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1