專利名稱::一種非結(jié)構化數(shù)據(jù)查詢方法
技術領域:
:本發(fā)明涉及一種針對非結(jié)構化數(shù)據(jù)庫,以四面體模型及XQuery語言為基礎的非結(jié)構化數(shù)據(jù)查詢方法,該方法使用非結(jié)構化數(shù)據(jù)智能查詢語言AQUAdvancedQueryLanguage,AQL,高級查詢語言)。
背景技術:
:關系數(shù)據(jù)庫因其固有限制,不能滿足互聯(lián)網(wǎng)的應用需求,非結(jié)構化數(shù)據(jù)庫應運而生。非結(jié)構化數(shù)據(jù)庫以四面體模型為理論基礎,四面體模型以基本屬性、語義屬性、底層特征和原始文件四個刻面來完整描述數(shù)據(jù)。其中基本屬性和語義屬性可以用XML數(shù)據(jù)庫進行存儲,現(xiàn)有的XML查詢語言為XQuery,但XQuery只能用于查詢XML格式的信息,不能實現(xiàn)視頻、音頻等多媒體信息基于內(nèi)容的查詢。非結(jié)構化數(shù)據(jù)庫中存儲的數(shù)據(jù)種類多并且規(guī)模龐大,對于這些數(shù)據(jù)的查詢操作需求也是多樣的,具體來說有三種基本查詢、關聯(lián)查詢和智能查詢,現(xiàn)有的查詢方法無法完成新型的查詢操作。
發(fā)明內(nèi)容本發(fā)明的技術解決問題克服現(xiàn)有技術的不足,提供一種實現(xiàn)非結(jié)構化數(shù)據(jù)查詢的方法,根據(jù)對要查詢的數(shù)據(jù)的四個刻面的條件約束實現(xiàn)多面查詢和實例查詢,根據(jù)數(shù)據(jù)聚類時特征選擇的約束實現(xiàn)智能查詢,通過對跨數(shù)據(jù)類檢索時對關聯(lián)點的約束實現(xiàn)多體查詢,可以完全滿足非結(jié)構化數(shù)據(jù)查詢操作的需求。本發(fā)明的技術解決方案一種非結(jié)構化數(shù)據(jù)查詢方法,該方法使用非結(jié)構化數(shù)據(jù)智能查詢語言AQL,其特征在于步驟如下(1)使用的非結(jié)構化數(shù)據(jù)智能查詢語言AQL對XQuery語言進行擴展,增加基本屬性、語義屬性、底層特征和聚類方式關鍵語句,以支持多面查詢、實例查詢、智能查詢和多體查詢;(2)簡化與非結(jié)構化數(shù)據(jù)查詢無關的功能,以提高解析效率;(3)定義執(zhí)行計劃用于表示非結(jié)構化數(shù)據(jù)查詢的執(zhí)行過程;G)AQL語句的解析過程為預處理,識別實例文件字段,若語句包含實例文件則記錄文件,否則轉(zhuǎn)到步驟(5);(5)按照AQL語法把語句中不同屬性的描述字段分離;(6)根據(jù)步驟(分離的不同字段形成對應的查詢語句并生成執(zhí)行計劃。根據(jù)本發(fā)明的又一個方面,其中步驟(1)進一步包括步驟(1.a)AQL以XQuery語言的FLWOR語句為基礎,在其后加入了用于指定實例文件路徑的語句Fil印athClause,以fil印ath為實例文件關鍵字;(l.b)AQL擴展XQuery的where語句,增加基本屬性關鍵字ki,語義屬性關鍵字sf,底層特征匹配方式關鍵字If關鍵字,以實現(xiàn)對數(shù)據(jù)不同面的約束;(1.c)AQL增加智能查詢語句,以classify為關鍵字,用于指定聚類時的特征選擇。根據(jù)本發(fā)明的又一個方面,其中步驟(進一步包括(2.a)減少FLWOR語句的嵌套,在AQL中規(guī)定FLWOR語句的嵌套只能在for語句中進行;(2.b)限定return語句的返回值,規(guī)定嵌套在內(nèi)層的FLWOR語句的返回值只能為數(shù)據(jù)的原始數(shù)據(jù)id。根據(jù)本發(fā)明的又一個方面,其中步驟C3)進一步包括(3.a)執(zhí)行計劃以XML文件格式存放;(3.b)執(zhí)行計劃按多體查詢劃分;(3.C)單體查詢內(nèi)部包含實例文件、查詢范圍、基本屬性查詢語句、語義屬性查詢語句、底層特征匹配方式和智能查詢語句。根據(jù)本發(fā)明的又一個方面,其中步驟(6)進一步包括(6.a)分離基本屬性、語義特征、底層特征查詢的相應字段;(6.b)基本屬性、語義特征的查詢形成XQuery語句的形式,底層特征的查詢形成符合AQL語言文法定義的查詢語句;(6.c)根據(jù)步驟(6.b)形成的查詢語句生成執(zhí)行計劃。本發(fā)明與現(xiàn)有技術相比的優(yōu)點在于本發(fā)明考慮非結(jié)構化數(shù)據(jù)庫的查詢需求,保留XML查詢功能的同時實現(xiàn)了基于內(nèi)容的查詢,同時也可以完成新型查詢操作。圖1為本發(fā)明的功能圖;圖2為本發(fā)明的解析流程;圖3為本發(fā)明算法的多體查詢執(zhí)行流程;圖4為本發(fā)明算法的多面查詢執(zhí)行流程;圖5為本發(fā)明的功能測試結(jié)果;圖6為本發(fā)明的性能測試結(jié)果。具體實施例方式下面參考附圖,對本發(fā)明的實施例進行詳細的說明。首先對本發(fā)明所針對的功能需求進行說明。根據(jù)非結(jié)構化數(shù)據(jù)庫中數(shù)據(jù)查詢功能的要求,該查詢方法的功能(如圖1所示)主要有1.基本查詢利用數(shù)據(jù)的基本屬性和語義特征,通過文本信息查找特定的數(shù)據(jù);2.底層查詢輸入樣本數(shù)據(jù),如一副圖像、一段語音或一段視頻錄像,通過底層特征匹配查找相似度最高的數(shù)據(jù)集;3.多面查詢綜合利用基本屬性、語義特征與底層特征實現(xiàn)關聯(lián)查詢,準確快速定位數(shù)據(jù);4.多體查詢利用語義特征,實現(xiàn)多主題的多種數(shù)據(jù)類型的關聯(lián)式查詢;5.智能查詢實現(xiàn)對查詢結(jié)果的聚類、分類、多維數(shù)據(jù)分析等智能查詢服務;6.綜合查詢上述功能可以嵌套執(zhí)行,如智能查詢可以在多面查詢的基礎上執(zhí)行。非結(jié)構化數(shù)據(jù)查詢方法所使用的智能查詢語言AQL是在XQuery語言基礎上擴展和簡化而來,下面對此進行詳細說明1.擴展底層查詢功能:AQL中關于基本屬性和語義特征的查詢可以用XQuery語言實現(xiàn),但四面體模型的底層特征不是以XML格式描述,所以XQuery不具備底層特征檢索的功能,AQL對底層特征查詢進行擴展;2.擴展智能查詢功能智能查詢包括對數(shù)據(jù)進行多維分析、聚類和分類操作,XQuery不具備對應功能,對此進行擴展;3.擴展多面查詢功能多面查詢是指對某個數(shù)據(jù)的基本屬性、語義特征、底層特征三個面進行關聯(lián)查詢。在非結(jié)構化數(shù)據(jù)庫中,每個數(shù)據(jù)的四個面特征是分別存儲的,多面查詢要由不同特征查詢的結(jié)果合并后才能得到最終查詢結(jié)果。XQuery不支持底層查詢并且實現(xiàn)需要多層嵌套,為了完整實現(xiàn)多面查詢功能并使AQL語言變得簡明,對多面查詢功能進行擴展;4.擴展多體查詢功能多個體關聯(lián)查詢是指不同類型數(shù)據(jù)的關聯(lián)查詢,如圖像與文本關聯(lián)查詢,需要對多個指定文集進行查詢。XQuery無法在一條語句中完成對多個文集的檢索,因此擴展多體查詢功能;5.減少語句的嵌套在XQuery中,各個語句之間可以靈活嵌套。過多的嵌套對擴展之后的AQL多余,而且影響語言的簡潔,對此進行簡化,規(guī)定AQL語言的嵌套只能在for語句中進行;6.限定return語句的返回值簡化嵌套在內(nèi)層的語句的返回值類型,規(guī)定只能返回原始數(shù)據(jù)id,便于多個文件的關聯(lián)操作。下面給出AQL語言的文法定義1.最外層FLTOR語句文法FLffORExpr=ForClauseLetClause?WhereClause?OrderByClause?ReturnClause(FilePathClause)?AQL語言最外層的結(jié)構以XQuery語言的FLWOR語句結(jié)構為基礎,但在FLWOR語句后加入了用于指定輸入文件路徑的語句;2.內(nèi)層嵌套的FLWOR語句文法FLffORExprInner::=ForClause(LetClause)?WhereClause?OrderByClause?ReturnClauseInner(FilePathClause)?嵌套在內(nèi)層的FLWOR語句與外層的FLWOR語句相比,區(qū)別主要在于return語句不同,內(nèi)層的FLWOR語句只能返回所查數(shù)據(jù)的原始數(shù)據(jù)id,不能指定返回的具體數(shù)據(jù)項;3.for語句文法ForClause:=“for"“$〃VarName“in"TypePath("("FLffORExprChanged,,),,)?for語句用于指定一次多面查詢所涉及到的數(shù)據(jù)類型的范圍,并可嵌套FLWOR語句實現(xiàn)多體查詢;4.let語句文法LetClause::="let"“$〃VarName“:=〃LocalPart(〃,$〃VarName“=〃LocalPart)*let語句用于定義一次多面查詢的所用到的路徑變量,使用變量可以提高XML數(shù)據(jù)庫的查詢效率;5.where語句文法WhereClause::=“where"(‘‘BA{,,condition,,},,("SF{"condition"}")?(“LF{,,lfcondition,,},,)?)|("SF{"condition"}"("LF{”lfcondition,,},,)?)|(”LF{”lfcondition”}”}where語句用于定義一次多面查詢各個刻面的限制條件。根據(jù)刻面種類,限制條件分為三種基本屬性條件、語義特征條件、底層特征條件;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語句用來指定返回值內(nèi)容,另外,智能查詢功能也擴展在return語句的文法中。下面說明非結(jié)構化數(shù)據(jù)查詢方法的執(zhí)行過程如圖2所示,非結(jié)構化數(shù)據(jù)查詢方法執(zhí)行過程的具體流程為用戶發(fā)出AQL查詢請求之后,系統(tǒng)先進行預處理,識別實例文件字段,若請求語句包含實例文件則記錄文件。通過關鍵字識別分離基本屬性、語義特征、底層特征的相應描述字段。之后根據(jù)基本屬性、語義特征的描述字段形成XQuery形式的查詢語句,根據(jù)底層特征的描述字段形成符合AQL語言文法定義的查詢語句,然后根據(jù)形成的查詢語句生成執(zhí)行計劃。執(zhí)行計劃是AQL語言解析的中間產(chǎn)物。AQL解析器會先將AQL語言解析為執(zhí)行計劃,然后對執(zhí)行計劃進行解析執(zhí)行,得到查詢結(jié)果。執(zhí)行計劃的引入增強了AQL語言的可擴展性,查詢優(yōu)化等操作可在執(zhí)行計劃的解析執(zhí)行中進行。執(zhí)行計劃按XML格式定義如下1.外層是多體查詢中每個體的標識,用來將AQL語句查詢涉及的幾個體的關聯(lián)查詢區(qū)分開來;2.內(nèi)層是每個體內(nèi)部多面查詢的標識,包含基本屬性、語義特征、底層特征和智能查詢四種語句。其中,基本屬性和語義特征語句均為可以直接執(zhí)行的XQuery語句,底層特征語句描述查詢的數(shù)據(jù)類型和底層特征查詢條件,以分號隔開。智能查詢語句描述智能查詢條件。3.執(zhí)行計劃的最后記錄本次查詢的返回結(jié)果,用XPath路徑表達式表示。以下對AQL語言執(zhí)行過程進行說明根據(jù)執(zhí)行計劃的格式及層次劃分,AQL語言的執(zhí)行也分為兩層(3.1)外層執(zhí)行多體查詢執(zhí)行計劃(如圖3所示),從最內(nèi)層體開始執(zhí)行多面查詢,按照各個體之間關聯(lián)逐個向外一層體進行多面查詢。所有體查詢完畢后,生成查詢結(jié)果id,取出對應的返回值。(3.2)內(nèi)層執(zhí)行多面查詢執(zhí)行計劃(如圖4所示),解析執(zhí)行單個體內(nèi)部的多面查詢。根據(jù)四面體的刻面劃分,執(zhí)行器分為基本屬性執(zhí)行計劃執(zhí)行器、語義特征執(zhí)行計劃執(zhí)行器、底層特征執(zhí)行計劃執(zhí)行器三個部分,操作結(jié)果合并器對三個執(zhí)行器的執(zhí)行結(jié)果合并,生成單個體的多面查詢結(jié)果。以下通過對本發(fā)明的功能測試與性能測試,對本發(fā)明的執(zhí)行結(jié)果正確性和執(zhí)行性能予以說明。測試數(shù)據(jù)集分為圖像和文本兩大類。圖像又分為animal,plant,activity等八個子類,文本又分為finance,military,education等十個子類。圖像數(shù)據(jù)量大小為100000張,文本數(shù)據(jù)量大小為50000個。為了完成測試,設計了以下查詢情境作為測試用例用例1基本查詢用例查詢內(nèi)容是在image類型下的animal子分類中查詢author為ying的文本,并且返回符合條件的圖像的關鍵字。所用到的AQL查詢語句為for$iin/image/animalwhereba(./author="ying"}return$i/keywords用例2:底層查詢用例查詢內(nèi)容是在image類型下的plant子分類下按底層特征匹配算法CEDD查詢與輸入圖像最相似的圖像,并且返回符合條件的圖像的原始數(shù)據(jù)id。所用到的AQL查詢語句為for$iin/image/plantwhereIf(imagetypematch{CEDD}}return$i/rdidfilepath:={F:/MyEclipse/workspace/ExistConnect/bat(1).jpg}用例3:多面查詢用例查詢內(nèi)容是在image類型下的activity子分類中查詢基本屬性中author為ying,語義特征中format為jpg,底層特征匹配算法為CEDD,并且返回圖像的原始數(shù)據(jù)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:多體查詢用例查詢內(nèi)容是首先內(nèi)層在image下的activity子分類中查詢基本屬性中author為ying,語義特征中format為jpg,且底層特征匹配算法為CEDD的圖像,并指定了輸入的圖像文件的路徑。然后外層在text的education子分類下查詢,text與image兩種類型文件嵌套執(zhí)行的操作方式為在text中的查詢以image中查詢的結(jié)果的keywords作為底層特征查詢的輸入,因此,外層查詢條件有基本屬性中author為IonghuipingJg義特征中type為pdf,且含有內(nèi)層image查詢結(jié)果的keywords項內(nèi)容的文本,返回符合條件的文本的原始數(shù)據(jù)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:智能查詢用例查詢內(nèi)容是在image下的plant子分類中查詢基本屬性中author為ying的文本,并且根據(jù)文本的keywords項聚類,返回值為結(jié)果數(shù)據(jù)的原始數(shù)據(jù)id。所用到的AQL查詢語句為for$iin/image/plantwhereba{./author="ying,,}return$i/rdidclassifyon/keywords根據(jù)以上5個測試用例,對系統(tǒng)的功能及性能進行了測試。功能測試方法為把通過可視化查詢工具將查詢條件按條目分別輸入得到的結(jié)果與用AQL文法描述的等效查詢語句得到的結(jié)果進行比較。性能測試方法為記錄不同用例的解析執(zhí)行時間并分析。功能測試、性能測試結(jié)果如圖5,6所示。經(jīng)過測試,從功能上看,通過可視化查詢工具與通過非結(jié)構化數(shù)據(jù)查詢方法查詢的結(jié)果一致,說明了AQL解析執(zhí)行器的正確性;從性能上看,測試用例的解析執(zhí)行時間均為毫秒級。對于本領域的普通技術人員來說可顯而易見的得出其他優(yōu)點和修改。因此,具有更廣方面的本發(fā)明并不局限于這里所示出的并且所描述的具體說明及示例性實施例。因此,在不脫離由隨后權利要求及其等價體所定義的一般發(fā)明構思的精神和范圍的情況下,可對其作出各種修改。權利要求1.一種非結(jié)構化數(shù)據(jù)查詢方法,該方法使用非結(jié)構化數(shù)據(jù)智能查詢語言AQL,其特征在于步驟如下(1)對現(xiàn)有XML查詢方法進行改進,所使用的非結(jié)構化數(shù)據(jù)智能查詢語言AQL對XQuery語言進行擴展,針對非結(jié)構化數(shù)據(jù)的特點,增加基本屬性、語義屬性、底層特征和聚類方式關鍵語句,以支持多面查詢、實例查詢、智能查詢和多體查詢;(2)簡化與非結(jié)構化數(shù)據(jù)查詢無關的功能,以提高解析效率;(3)定義執(zhí)行計劃用于表示非結(jié)構化數(shù)據(jù)查詢的執(zhí)行過程;G)AQL語句的解析過程為預處理,識別實例文件字段,若語句包含實例文件則記錄文件,否則轉(zhuǎn)到步驟(5);(5)按照AQL語法把語句中不同屬性的描述字段分離;(6)根據(jù)步驟(分離的不同字段形成對應的查詢語句并生成執(zhí)行計劃。2.根據(jù)權利要求1所述的非結(jié)構化數(shù)據(jù)查詢方法,其特征在于所描述的步驟(1)進一步包括(1.a)AQL以XQuery語言的FLWOR語句為基礎,在其后加入了用于指定實例文件路徑的語句Fil印athClause,以fil印ath為實例文件關鍵字;(1.b)AQL擴展XQuery的where語句,增加基本屬性關鍵字ba,語義屬性關鍵字sf,底層特征匹配方式關鍵字If關鍵字,以實現(xiàn)對數(shù)據(jù)不同面的約束;(1.c)AQL增加智能查詢語句,以classify為關鍵字,用于指定聚類時的特征選擇。3.根據(jù)權利要求1所述的非結(jié)構化數(shù)據(jù)查詢方法,其特征在于所述的步驟(2)進一步包括(2.a)減少FLWOR語句的嵌套,在AQL中規(guī)定FLWOR語句的嵌套只能在for語句中進行;(2.b)限定return語句的返回值,規(guī)定嵌套在內(nèi)層的FLWOR語句的返回值只能為數(shù)據(jù)的原始數(shù)據(jù)id。4.根據(jù)權利要求1所述的非結(jié)構化數(shù)據(jù)查詢方法,其特征在于所述的步驟(3)進一步包括(3.a)執(zhí)行計劃以XML文件格式存放;(3.b)執(zhí)行計劃按多體查詢劃分;(3.c)單體查詢內(nèi)部包含實例文件、查詢范圍、基本屬性查詢語句、語義屬性查詢語句、底層特征匹配方式和智能查詢語句。5.根據(jù)權利要求2所述的非結(jié)構化數(shù)據(jù)查詢方法,其特征在于所述的步驟(6)進一步包括(6.a)分離基本屬性、語義特征、底層特征查詢的相應字段;(6.b)基本屬性、語義特征的查詢形成XQuery語句的形式,底層特征的查詢形成符合AQL語言文法定義的查詢語句;(6.c)根據(jù)步驟(6.b)形成的查詢語句生成執(zhí)行計劃。全文摘要一種非結(jié)構化數(shù)據(jù)查詢方法(1)改進現(xiàn)有XML查詢方法,使用非結(jié)構化智能查詢語言AQL對XQuery語言進行擴展;(2)簡化與非結(jié)構化數(shù)據(jù)查詢無關的功能;(3)定義執(zhí)行計劃;(4)對AQL語句進行解析,識別實例文件字段;(5)分離語句中不同屬性的描述字段;(6)根據(jù)步驟(5)的結(jié)果形成查詢語句并生成執(zhí)行計劃。本發(fā)明根據(jù)待查數(shù)據(jù)四個刻面的條件約束實現(xiàn)基本屬性、語義屬性和底層特征的關聯(lián)檢索和實例查詢,根據(jù)數(shù)據(jù)聚類時的特征約束實現(xiàn)智能查詢,跨類檢索時通過對關聯(lián)點的約束實現(xiàn)不同類型數(shù)據(jù)的關聯(lián)檢索,可完全滿足非結(jié)構化數(shù)據(jù)的查詢需求。文檔編號G06F17/30GK102289482SQ20111022024公開日2011年12月21日申請日期2011年8月2日優(yōu)先權日2011年8月2日發(fā)明者段亞偉,郎波,鄭劍申請人:北京航空航天大學