專利名稱:結(jié)構(gòu)化文檔處理裝置、搜索裝置及結(jié)構(gòu)化文檔系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種結(jié)構(gòu)化文檔處理裝置、結(jié)構(gòu)化文檔搜索裝置、結(jié)構(gòu)化文檔系統(tǒng)和方法,其中所述結(jié)構(gòu)化文檔處理裝置用于使用具有分層邏輯結(jié)構(gòu)的結(jié)構(gòu)化文檔數(shù)據(jù)庫來管理具有不同文檔結(jié)構(gòu)的多個結(jié)構(gòu)化文檔,所述結(jié)構(gòu)化文檔搜索裝置用于在所述結(jié)構(gòu)化文檔處理裝置中搜索期望的結(jié)構(gòu)化文檔,所述結(jié)構(gòu)化文檔系統(tǒng)包括所述結(jié)構(gòu)化文檔處理裝置和所述結(jié)構(gòu)化文檔搜索裝置。
背景技術(shù):
已經(jīng)提出一種用于存儲或搜索以XML(可擴(kuò)展標(biāo)記語言)等描述的結(jié)構(gòu)化文檔數(shù)據(jù)的結(jié)構(gòu)化文檔數(shù)據(jù)庫。通過使用該結(jié)構(gòu)化文檔數(shù)據(jù)庫,可以實(shí)現(xiàn)考慮結(jié)構(gòu)且很難利用常規(guī)文本數(shù)據(jù)庫實(shí)現(xiàn)的搜索處理。為了將搜索處理應(yīng)用于這種結(jié)構(gòu)化文檔數(shù)據(jù)庫,使用結(jié)構(gòu)化文檔的查詢語言(由XQuery表示)。Xquery是由W3C(萬維網(wǎng)聯(lián)盟)標(biāo)準(zhǔn)化的查詢語言。該查詢語言的典型特征在于搜索結(jié)果不是那些通過過濾獲得的結(jié)果,可以基于作為多個信息源的文檔來產(chǎn)生具有結(jié)構(gòu)的新復(fù)合數(shù)據(jù)。
另一方面,在全文搜索領(lǐng)域,將字符串作為非結(jié)構(gòu)化文檔進(jìn)行管理的文本數(shù)據(jù)庫成為主流。作為全文搜索的重要功能,相關(guān)度評分(scoring)、通配符、鄰近搜索、模糊搜索等是已知的。經(jīng)常要求該文本數(shù)據(jù)庫使用這些功能進(jìn)行搜索。
特別地,評分在全文搜索中是不可缺少的功能。通過引入評分,用戶可以獲得具有較高精確度的若干條信息(例如,文檔)作為高級搜索結(jié)果,也就是,他或她可以快速地獲得僅僅需要的信息。
該結(jié)構(gòu)化文檔數(shù)據(jù)庫還允許通過在查詢時指定關(guān)鍵字來使用全文搜索等。然而,此種功能最多是前綴搜索功能,并且并未充分地考慮比如評分等的功能。由于結(jié)構(gòu)化文檔具有結(jié)構(gòu),也就是,它由多個元素構(gòu)成,所以不像在全文搜索中,不能為各個文檔獲得它。
已知的評分計(jì)算方案是tf-idf(檢索詞頻率-反向文檔頻率)方案?!皌f”表示檢索詞在感興趣的文檔中出現(xiàn)的頻率,而“idf”表示包括該檢索詞的文檔的數(shù)目?!皌f”為具有較高頻率的檢索詞提供較高的優(yōu)先級,而“idf”表示關(guān)于該術(shù)語是否典型的測量。通過使這些值相乘,可以將評分作為tf-idf值。
由于結(jié)構(gòu)化文檔由多個元素構(gòu)成,所以評分的級別變得重要。近年來,由于結(jié)構(gòu)化文檔數(shù)據(jù)庫的需求很大,所以期望在結(jié)構(gòu)化文檔數(shù)據(jù)庫中進(jìn)行高速評分。
為了在結(jié)構(gòu)化文檔數(shù)據(jù)庫中引入評分,評分精確度變得重要,并且使用實(shí)際的時間和資源來獲得它們也變得重要。也就是,“精確度”和“速度”的問題變得重要。
例如,日本專利申請KOKAI No.2002-297605提出了一種結(jié)構(gòu)化文檔數(shù)據(jù)庫,其考慮到結(jié)構(gòu)和詞匯的模糊度來實(shí)施評分。在這個參考文獻(xiàn)中,通過利用語義網(wǎng)絡(luò)計(jì)算元素名稱、值等的同義擴(kuò)展,以及通過在分層關(guān)系中使用“深度信息”計(jì)算結(jié)構(gòu)和詞匯項(xiàng)的相似度來產(chǎn)生期望的數(shù)據(jù)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種結(jié)構(gòu)化文檔處理裝置,包括獲取單元,用于獲取結(jié)構(gòu)化文檔;存儲單元,用于存儲結(jié)構(gòu)模型樹,該結(jié)構(gòu)模型樹表示所述獲取的結(jié)構(gòu)化文檔的典型結(jié)構(gòu);解析單元,用于解析所述獲取的結(jié)構(gòu)化文檔;更新單元,用于更新所述結(jié)構(gòu)模型樹,使之與所述解析后的結(jié)構(gòu)化文檔的結(jié)構(gòu)匹配;分割單元,用于將所述獲取的結(jié)構(gòu)化文檔分為多個詞匯項(xiàng);以及計(jì)算單元,用于計(jì)算在所述獲取的結(jié)構(gòu)化文檔中所述多個詞匯項(xiàng)的每一個的出現(xiàn)頻率信息。
根據(jù)本發(fā)明的第二方面,提供一種結(jié)構(gòu)化文檔搜索裝置,包括連接單元,其可連接到結(jié)構(gòu)化文檔處理裝置,該結(jié)構(gòu)化文檔處理裝置存儲了表示結(jié)構(gòu)化文檔的典型結(jié)構(gòu)的結(jié)構(gòu)模型樹和該結(jié)構(gòu)化文檔中包括的多個詞匯項(xiàng)的出現(xiàn)頻率信息;接收單元,用于接收查詢數(shù)據(jù),以查詢語言描述該查詢數(shù)據(jù)并且需要該查詢數(shù)據(jù)來產(chǎn)生由多個結(jié)構(gòu)化文檔的部分結(jié)構(gòu)組成的新復(fù)合文檔;解析單元,用于解析包括元素的所述查詢數(shù)據(jù);查詢圖產(chǎn)生單元,用于基于所述解析后的查詢數(shù)據(jù)來產(chǎn)生表示所述元素間關(guān)系的查詢圖;選擇單元,用于基于所述查詢圖,從所述結(jié)構(gòu)化文檔處理裝置中選擇與所述結(jié)構(gòu)模型樹相似的相似結(jié)構(gòu);存儲單元,用于存儲表示所述多個詞匯項(xiàng)之間的相似程度的相似度;計(jì)算單元,用于基于所述相似度來計(jì)算表示所述選擇的相似結(jié)構(gòu)的相似程度的結(jié)構(gòu)評分值;代價計(jì)算單元,用于基于所述出現(xiàn)頻率信息計(jì)算用于選擇表示所述元素的處理順序的多個計(jì)劃的多個處理代價;選擇單元,用于從所述多個計(jì)劃中選擇具有所述計(jì)算出的處理代價中的最低處理代價的計(jì)劃;優(yōu)先級計(jì)算單元,用于基于所述最低處理代價和所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的多個處理的處理優(yōu)先級;處理執(zhí)行單元,用于按照所述處理優(yōu)先級的降序來執(zhí)行所述處理;以及結(jié)果獲取單元,用于獲取執(zhí)行所述多個處理的執(zhí)行結(jié)果,作為搜索結(jié)果。
根據(jù)本發(fā)明的第三方面,提供一種結(jié)構(gòu)化文檔系統(tǒng),包括結(jié)構(gòu)化文檔處理裝置以及結(jié)構(gòu)化文檔搜索裝置,所述結(jié)構(gòu)化文檔處理裝置包括獲取單元,用于獲取結(jié)構(gòu)化文檔;存儲單元,用于存儲結(jié)構(gòu)模型樹,該結(jié)構(gòu)模型樹表示所述獲取的結(jié)構(gòu)化文檔的典型結(jié)構(gòu);解析單元,用于解析所述獲取的結(jié)構(gòu)化文檔;更新單元,用于更新所述結(jié)構(gòu)模型樹,使之與所述解析后的結(jié)構(gòu)化文檔的結(jié)構(gòu)匹配;分割單元,用于將所述獲取的結(jié)構(gòu)化文檔分為多個詞匯項(xiàng);以及計(jì)算單元,用于計(jì)算在所述獲取的結(jié)構(gòu)化文檔中所述多個詞匯項(xiàng)的每一個的出現(xiàn)頻率信息。所述結(jié)構(gòu)化文檔搜索裝置包括接收單元,用于接收查詢數(shù)據(jù),以查詢語言描述該查詢數(shù)據(jù)并且需要該查詢數(shù)據(jù)來產(chǎn)生由多個結(jié)構(gòu)化文檔的部分結(jié)構(gòu)組成的新復(fù)合文檔;解析單元,用于解析包括元素的所述查詢數(shù)據(jù);查詢圖產(chǎn)生單元,用于基于所述解析后的查詢數(shù)據(jù)來產(chǎn)生表示所述元素間關(guān)系的查詢圖;選擇單元,用于基于所述查詢圖,從所述結(jié)構(gòu)化文檔處理裝置中選擇與所述結(jié)構(gòu)模型樹相似的相似結(jié)構(gòu);存儲單元,用于存儲表示所述多個詞匯項(xiàng)之間的相似程度的相似度;計(jì)算單元,用于基于所述相似度來計(jì)算表示所述選擇的相似結(jié)構(gòu)的相似程度的結(jié)構(gòu)評分值;代價計(jì)算單元,用于基于所述出現(xiàn)頻率信息來計(jì)算用于選擇表示元素的處理順序的多個計(jì)劃的多個處理代價;選擇單元,用于從所述多個計(jì)劃中選擇具有所述計(jì)算出的多個處理代價中的最低處理代價的計(jì)劃;優(yōu)先級計(jì)算單元,用于基于所述最低處理代價和所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的多個處理的處理優(yōu)先級;處理執(zhí)行單元,用于按照所述處理優(yōu)先級的降序來執(zhí)行所述處理;以及結(jié)果獲取單元,用于獲取執(zhí)行所述多個處理的執(zhí)行結(jié)果,作為搜索結(jié)果。
根據(jù)本發(fā)明的第四方面,提供一種結(jié)構(gòu)化文檔方法,包括獲取結(jié)構(gòu)化文檔;準(zhǔn)備用于存儲結(jié)構(gòu)模型樹的存儲單元,該結(jié)構(gòu)模型樹表示所述獲取的結(jié)構(gòu)化文檔的典型結(jié)構(gòu);解析所述獲取的結(jié)構(gòu)化文檔;更新所述結(jié)構(gòu)模型樹,使之與所述解析后的結(jié)構(gòu)化文檔的結(jié)構(gòu)匹配;將所述獲取的結(jié)構(gòu)化文檔分為多個詞匯項(xiàng);以及計(jì)算在所述獲取的結(jié)構(gòu)化文檔中所述多個詞匯項(xiàng)每一個的出現(xiàn)頻率信息;接收查詢數(shù)據(jù),以查詢語言來描述該查詢數(shù)據(jù)并且需要該查詢數(shù)據(jù)來產(chǎn)生新復(fù)合文檔,該新復(fù)合文檔由多個結(jié)構(gòu)化文檔的部分結(jié)構(gòu)組成;解析包括元素的所述查詢數(shù)據(jù);基于所述解析后的查詢數(shù)據(jù)來產(chǎn)生表示所述元素間關(guān)系的查詢圖;基于所述查詢圖,從所述存儲單元中選擇與所述結(jié)構(gòu)模型樹相似的相似結(jié)構(gòu);準(zhǔn)備用于存儲表示所述多個詞匯項(xiàng)之間相似程度的相似度的存儲單元;基于所述相似度來計(jì)算表示與所要求的結(jié)構(gòu)相似的所述選擇的相似結(jié)構(gòu)的相似程度的結(jié)構(gòu)評分值;基于所述出現(xiàn)頻率信息計(jì)算用于選擇表示所述元素處理順序的多個計(jì)劃的多個處理代價;從所述多個計(jì)劃中選擇具有所述計(jì)算出的處理代價中的最低處理代價的計(jì)劃;基于所述最低處理代價和所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的多個處理的處理優(yōu)先級;按照所述處理優(yōu)先級的降序來執(zhí)行所述處理;以及獲取執(zhí)行所述多個處理的執(zhí)行結(jié)果,作為搜索結(jié)果。
圖1是根據(jù)本發(fā)明一個實(shí)施例的結(jié)構(gòu)化文檔處理裝置和結(jié)構(gòu)化文檔搜索裝置的方框圖;圖2示出了結(jié)構(gòu)化文檔數(shù)據(jù)的實(shí)例;圖3是圖1中的存儲處理器的方框圖;圖4是圖1中的搜索處理器的方框圖;圖5示出了目標(biāo)樹和結(jié)構(gòu)模型樹的實(shí)例;圖6示出了詞匯表;圖7示出了詞匯表、置換索引列表以及詞匯索引信息之間的關(guān)系;圖8是用于解釋利用圖3中示出的相關(guān)詞匯項(xiàng)計(jì)算單元計(jì)算相關(guān)GID和相關(guān)TID的過程的示圖;圖9示出了詞匯索引信息的實(shí)例;圖10是用于說明由圖4中示出的查詢語言解析部件產(chǎn)生的查詢圖的示圖;圖11示出了由圖1中示出的搜索處理器接收的且包括多個文檔的XQuery的實(shí)例;圖12示出了在圖1中示出的語義網(wǎng)絡(luò)存儲單元的內(nèi)容;圖13是示出用于由圖4中示出的相似結(jié)構(gòu)搜索部件來計(jì)算結(jié)構(gòu)評分值的方案的示圖;圖14示出了由圖1中示出的查詢執(zhí)行單元執(zhí)行的查詢處理計(jì)劃的實(shí)例;圖15是示出圖4中示出的處理優(yōu)先級計(jì)算部件的操作實(shí)例的流程圖;圖16是用于說明圖4中示出的處理優(yōu)先級計(jì)算部件計(jì)算詞匯評分值的方案的示圖;圖17是用于說明圖4中示出的處理執(zhí)行部件和結(jié)果計(jì)數(shù)檢查部件的操作的實(shí)例的示圖;圖18示出了圖1中示出的結(jié)構(gòu)化文檔處理裝置中存儲的文檔的實(shí)例,以及圖1中示出的結(jié)構(gòu)化文檔搜索裝置接收的XQuery的實(shí)例;
圖19示出了與圖18中示出的實(shí)例對應(yīng)的結(jié)構(gòu)模型樹;圖20是用于解釋實(shí)際索引方案的示圖;圖21示出了其中新結(jié)構(gòu)模型樹被增加到圖19中示出的結(jié)構(gòu)模型樹中的情形;圖22示出了與圖18中的XQuery對應(yīng)的查詢圖;圖23示出了依照圖18的實(shí)例設(shè)置的語義網(wǎng)絡(luò);圖24示出了與圖18中的XQuery對應(yīng)的計(jì)劃的總圖;圖25示出了在與$x相關(guān)聯(lián)的置換索引列表集中包括的多個候選;圖26示出了在與$y相關(guān)聯(lián)的置換索引列表集中包括的多個候選;圖27是示出用于說明結(jié)構(gòu)驗(yàn)證中的處理代價估計(jì)的實(shí)例的示圖;圖28是用于說明處理優(yōu)先級的示圖;圖29是用于說明詞匯評分值$x和$y的處理方法的示圖;和圖30示出了考慮評分時的搜索結(jié)果。
發(fā)明詳述在下面,將會參照附圖來詳細(xì)描述根據(jù)本發(fā)明優(yōu)選實(shí)施例的結(jié)構(gòu)化文檔處理裝置、結(jié)構(gòu)化文檔搜索裝置、結(jié)構(gòu)化文檔系統(tǒng)和方法。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例的結(jié)構(gòu)化文檔處理裝置、結(jié)構(gòu)化文檔搜索裝置、結(jié)構(gòu)化文檔系統(tǒng)和方法允許使用比如XQuery的可處理查詢語言來進(jìn)行具有高評分精確度的高速搜索。
首先描述優(yōu)選實(shí)施例的概況。在這個實(shí)施例中,特別地,詳細(xì)描述考慮到“可以產(chǎn)生和處理來自多個信息源(例如,文檔)的具有結(jié)構(gòu)的新復(fù)合數(shù)據(jù)的語言”的評分。此種語言被稱為可處理查詢語言,并且,例如XQuery對應(yīng)于此種語言。
結(jié)構(gòu)化文檔數(shù)據(jù)庫中的查詢語言具有高描述級,以允許進(jìn)一步指定結(jié)構(gòu)信息等,并且可以進(jìn)行復(fù)雜的表述,不像比如全文搜索引擎的關(guān)鍵字級搜索。特別地,可以產(chǎn)生和處理來自多個信息源的具有結(jié)構(gòu)的新復(fù)合數(shù)據(jù)的語言(例如,由W3C標(biāo)準(zhǔn)化的XQuery)存在如何將一個查詢與其高描述能力進(jìn)行優(yōu)化的問題,并且在結(jié)合查詢優(yōu)化和評分時考慮上述問題是重要的。
在這個實(shí)施例中,在執(zhí)行查詢處理時,基于臨時評分值和處理代價來為查詢的每個應(yīng)答候選確定處理優(yōu)先級。該結(jié)構(gòu)化文檔搜索裝置的特征在于通過使用這個處理優(yōu)先級來提高精確度和減少搜索時間的功能。
這個實(shí)施例的其他特征將在下面列出。
(1)結(jié)構(gòu)化文檔處理裝置執(zhí)行結(jié)構(gòu)信息的特征提取(方案),并且在注冊結(jié)構(gòu)化文檔時創(chuàng)建或更新數(shù)據(jù)庫上的結(jié)構(gòu)模型樹。接著,結(jié)構(gòu)化文檔處理裝置分割字符串值,并且產(chǎn)生置換索引列表,作為詞匯索引的詞匯索引信息。在這種情況中,附加結(jié)構(gòu)模型樹上的標(biāo)識符作為各條詞匯索引信息。這些詞匯索引信息是在由結(jié)構(gòu)化文檔搜索裝置進(jìn)行搜索時的結(jié)構(gòu)限制條件,并且被用于提高搜索處理速度。
(2)結(jié)構(gòu)化文檔處理裝置計(jì)算在感興趣的元素中作為與給定詞匯項(xiàng)具有高相關(guān)度的詞匯項(xiàng)出現(xiàn)的所有詞匯項(xiàng)的出現(xiàn)頻率信息,作為詞匯索引的各條詞匯索引信息,并且留下具有最大出現(xiàn)頻率的詞匯項(xiàng)。在這種情況下,當(dāng)具有最大出現(xiàn)頻率的詞匯項(xiàng)的出現(xiàn)頻率等于或小于一閾值時,還可以以每個詞匯索引信息項(xiàng)產(chǎn)生的字符串為基本點(diǎn),來擴(kuò)展出現(xiàn)頻率信息的計(jì)算范圍。按照這種方式,可以計(jì)算利用XQuery布置在返回子句中的其他變量的評分(超過一個元素的那些)。
(3)在搜索結(jié)構(gòu)化文檔時,結(jié)構(gòu)化文檔搜索裝置解析查詢語言(XQuery),并且從由結(jié)構(gòu)化文檔處理裝置根據(jù)基于一結(jié)構(gòu)產(chǎn)生的虛擬結(jié)構(gòu)信息而產(chǎn)生或處理的結(jié)構(gòu)模型樹中搜索包含模糊性形式的相似結(jié)構(gòu),作為查詢語言的輸出。此時獲得的相似度被定義為結(jié)構(gòu)評分值。
(4)結(jié)構(gòu)化文檔搜索裝置考慮到結(jié)構(gòu)評分、詞匯評分以及單獨(dú)處理代價,順序地為正在執(zhí)行其計(jì)劃的候選集中的每個候選產(chǎn)生處理優(yōu)先級,并且確定是否執(zhí)行待執(zhí)行的處理。例如,當(dāng)對于基于詞匯索引計(jì)算出的候選值,需要父-子關(guān)系等結(jié)構(gòu)檢查處理時,如果估計(jì)為由于比如XML的深層,該檢查處理導(dǎo)致許多磁盤訪問,則設(shè)置高處理代價。將這個代價與結(jié)構(gòu)評分值和詞匯評分值相比較,并且在一些情況下可以跳過這個候選,由此減少計(jì)算量。
(5)一種查詢語言處理方法基于約束滿足方案(例如,參見日本專利申請KOKAI No.2002-297605)。
下面參照圖1來描述根據(jù)本實(shí)施例的結(jié)構(gòu)化文檔系統(tǒng),即,結(jié)構(gòu)化文檔處理裝置和結(jié)構(gòu)化文檔搜索裝置。
如圖1所示,結(jié)構(gòu)化文檔處理裝置和結(jié)構(gòu)化文檔搜索裝置通常形成一服務(wù)器,并且響應(yīng)于來自客戶端的查詢而進(jìn)行操作。客戶端包括輸入單元101和102、注冊單元103以及搜索單元104。這些裝置組件可以包括在一個客戶端中,或者第一客戶端可以包括輸入單元101和注冊單元103,而第二客戶端可以包括輸入單元102和搜索單元104。
輸入單元101從用戶接收存儲請求,并將其傳遞到注冊單元103。在接收到這個存儲請求后,注冊單元103將待存儲的存儲數(shù)據(jù)發(fā)送到作為服務(wù)器的結(jié)構(gòu)化文檔系統(tǒng)。該存儲數(shù)據(jù)是比如XML文檔等的結(jié)構(gòu)化文檔。該結(jié)構(gòu)化文檔包括字符串。
另一方面,輸入單元102從用戶接收搜索請求,并且將其傳遞到搜索單元104。在接收到這個搜索請求后,搜索單元104將查詢數(shù)據(jù)發(fā)送到作為服務(wù)器的結(jié)構(gòu)化文檔系統(tǒng),該查詢數(shù)據(jù)對應(yīng)于搜索請求且包括比如XQuery等的查詢語言。而且,搜索單元104接收由結(jié)構(gòu)化文檔系統(tǒng)中的結(jié)構(gòu)化文檔搜索裝置計(jì)算出的搜索結(jié)果。該搜索結(jié)果具有例如XML數(shù)據(jù)的數(shù)據(jù)格式。
結(jié)構(gòu)化文檔系統(tǒng)包括結(jié)構(gòu)化文檔處理裝置和結(jié)構(gòu)化文檔搜索裝置。結(jié)構(gòu)化文檔處理裝置包括請求處理器105和存儲處理器106,并且還包括作為數(shù)據(jù)庫117的結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118、詞匯索引存儲單元119、結(jié)構(gòu)模型樹存儲單元120、詞匯統(tǒng)計(jì)信息存儲單元121以及語義網(wǎng)絡(luò)存儲單元122。
結(jié)構(gòu)化文檔搜索裝置包括請求處理器105和搜索處理器111,并且還包括作為數(shù)據(jù)庫的結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118、詞匯索引存儲單元119、結(jié)構(gòu)模型樹存儲單元120、詞匯統(tǒng)計(jì)信息存儲單元121以及語義網(wǎng)絡(luò)存儲單元122。
請求處理器105接收從客戶端發(fā)送的數(shù)據(jù),并且確定所接收的數(shù)據(jù)是基于存儲請求的存儲數(shù)據(jù)還是基于搜索請求的包括查詢語言的查詢數(shù)據(jù)。基于該確定結(jié)果,當(dāng)請求處理器105接收到存儲數(shù)據(jù)時,其將該存儲數(shù)據(jù)輸出到存儲處理器106。另一方面,當(dāng)請求處理器105接收到查詢數(shù)據(jù)時,其將該查詢數(shù)據(jù)輸出到搜索處理器111。此外,請求處理器105將通過搜索處理器111的搜索處理獲得的處理結(jié)果傳送到客戶端。
在從客戶端接收到存儲數(shù)據(jù)后,存儲處理器106解析在該存儲數(shù)據(jù)中包括的結(jié)構(gòu)化文檔,產(chǎn)生與搜索相關(guān)聯(lián)的詞匯索引信息,并且控制數(shù)據(jù)庫的各個存儲單元以存儲相應(yīng)的詞匯索引信息。
在從客戶端接收到查詢數(shù)據(jù)后,搜索處理器111基于指定的查詢數(shù)據(jù),通過查閱在數(shù)據(jù)庫中包括的各個存儲單元來產(chǎn)生期望的結(jié)構(gòu)化數(shù)據(jù),并且將獲得的結(jié)構(gòu)化數(shù)據(jù)傳送到客戶端。
存儲處理器106包括結(jié)構(gòu)信息提取單元107、統(tǒng)計(jì)信息計(jì)算單元108、索引信息存儲單元109以及控制單元110。
結(jié)構(gòu)信息提取單元107解析來自客戶端的存儲數(shù)據(jù)中包括的結(jié)構(gòu)化文檔,并且將解析后的結(jié)構(gòu)化文檔與結(jié)構(gòu)模型樹存儲單元120中存儲的結(jié)構(gòu)模型樹進(jìn)行對照。單元107隨后更新結(jié)構(gòu)模型樹來匹配解析后的結(jié)構(gòu)化文檔,并且將更新后的結(jié)構(gòu)模型樹存儲到結(jié)構(gòu)模型樹存儲單元120中。而且,當(dāng)在結(jié)構(gòu)模型樹存儲單元120中沒有存儲結(jié)構(gòu)模型樹時,結(jié)構(gòu)信息提取單元107產(chǎn)生與該結(jié)構(gòu)化文檔匹配的結(jié)構(gòu)模型樹,并且將產(chǎn)生的結(jié)構(gòu)模型樹存儲到結(jié)構(gòu)模型樹存儲單元120中。結(jié)構(gòu)信息提取單元107更新與該存儲數(shù)據(jù)中包括的結(jié)構(gòu)化文檔的結(jié)構(gòu)信息相關(guān)聯(lián)的信息(在該文檔中元素之間的父子或兄弟關(guān)系),并且將更新后的信息存儲在結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118中。結(jié)構(gòu)信息提取單元107將結(jié)構(gòu)模型樹擴(kuò)展到比如DOM(文檔目標(biāo)模型)的目標(biāo)樹格式,將結(jié)構(gòu)模型樹標(biāo)識符(在下文被稱為TID)分配給結(jié)構(gòu)模型樹的各個節(jié)點(diǎn),并且將TID和結(jié)構(gòu)信息一起存儲在結(jié)構(gòu)化文檔存儲單元118中。后面使用圖5來描述TID的實(shí)例。
統(tǒng)計(jì)信息計(jì)算單元108被執(zhí)行來獲得與用于搜索的索引和評分相關(guān)聯(lián)的信息。統(tǒng)計(jì)信息計(jì)算單元108分割與字符串對應(yīng)的部分的詞匯項(xiàng),并且將詞匯標(biāo)識符(在下文被稱為GID)分配給分割后的詞匯項(xiàng)。單元108產(chǎn)生各個詞匯項(xiàng)的索引,并且計(jì)算每個詞匯項(xiàng)與另一詞匯項(xiàng)的相關(guān)度。除該GID外,統(tǒng)計(jì)信息計(jì)算單元108向每個詞匯項(xiàng)分配其中出現(xiàn)該詞匯項(xiàng)的文檔ID和元素ID、出現(xiàn)的位置、與該元素對應(yīng)的TID、具有高相關(guān)度的GID(相關(guān)GID)、以及其中該GID出現(xiàn)最頻繁的結(jié)構(gòu)的TID(相關(guān)TID)。統(tǒng)計(jì)信息計(jì)算單元108產(chǎn)生這些詞匯標(biāo)識符和計(jì)算結(jié)果作為詞匯索引信息。稍后將會參考圖3來描述相關(guān)GID和相關(guān)TID。統(tǒng)計(jì)信息計(jì)算單元108計(jì)算在該結(jié)構(gòu)化文檔的元素中出現(xiàn)的所有詞匯項(xiàng)的出現(xiàn)頻率信息,將該出現(xiàn)頻率信息與GID相對應(yīng)地存儲,并且將詞匯表存儲在詞匯統(tǒng)計(jì)信息存儲單元121中。統(tǒng)計(jì)信息計(jì)算單元108通過將詞匯表和詞匯索引信息相關(guān)聯(lián)來產(chǎn)生置換索引列表。
索引信息存儲單元109將通過關(guān)聯(lián)詞匯表和詞匯索引信息所產(chǎn)生的置換索引列表存儲在詞匯索引存儲單元119中。數(shù)據(jù)被如圖7所示存儲。如上所述,計(jì)算在每個置換索引列表上存儲的各條詞匯索引信息,并且將其存儲在詞匯索引存儲單元119中。稍后參考圖6來描述詞匯表的實(shí)例。稍后參考圖7來描述詞匯表和詞匯索引信息之間的關(guān)系。
控制單元110控制整個存儲單元106的操作。
結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118存儲與存儲數(shù)據(jù)中包括的結(jié)構(gòu)化文檔的結(jié)構(gòu)信息相關(guān)聯(lián)的信息,該信息是由結(jié)構(gòu)信息提取單元107提取的。結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118將相應(yīng)的TID信息附加到目標(biāo)樹的各個節(jié)點(diǎn)上,并且存儲這些數(shù)據(jù)。結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118以類似UNIX(注冊商標(biāo))目錄結(jié)構(gòu)的樹結(jié)構(gòu)模式將文檔分層存儲。
詞匯索引存儲單元119存儲通過將詞匯表和詞匯索引信息相關(guān)聯(lián)產(chǎn)生的置換索引列表。
結(jié)構(gòu)模型樹存儲單元120預(yù)先存儲結(jié)構(gòu)模型樹。而且,該單元120存儲由結(jié)構(gòu)信息提取單元107更新的結(jié)構(gòu)模型樹。
詞匯統(tǒng)計(jì)信息存儲單元121存儲出現(xiàn)頻率信息,作為詞匯統(tǒng)計(jì)信息。
語義網(wǎng)絡(luò)存儲單元122存儲語義網(wǎng)絡(luò),該語義網(wǎng)絡(luò)將一個單詞與相關(guān)單詞相關(guān)聯(lián)以具有相似度。該語義網(wǎng)絡(luò)以圖表的形式表述詞匯項(xiàng)之間的相似關(guān)系。也就是,經(jīng)由弧線連接具有相似關(guān)系的詞匯項(xiàng),并且將這些詞匯項(xiàng)之間的相似值賦給該弧線,由此形成詞匯項(xiàng)之間的網(wǎng)絡(luò)。
搜索處理器111包括查詢解析單元112、查詢計(jì)劃產(chǎn)生單元113、查詢執(zhí)行單元114、結(jié)果產(chǎn)生單元115以及控制單元116。
查詢解析單元112接收作為來自用戶的搜索請求的查詢以作為輸入,該查詢由請求處理器105接收,查詢解析單元112解析該輸入查詢,并且產(chǎn)生查詢圖。查詢解析單元112為該查詢圖計(jì)算結(jié)構(gòu)限制條件,作為數(shù)據(jù)庫上的結(jié)構(gòu)限制條件。此外,查詢解析單元112接收虛擬結(jié)構(gòu)信息,作為該查詢請求最后獲得的結(jié)果,并且在結(jié)構(gòu)模型樹存儲單元120中搜索與這個結(jié)構(gòu)相似的結(jié)構(gòu)。單元112選擇相似結(jié)構(gòu),并且參照語義網(wǎng)絡(luò)存儲單元122來計(jì)算這個相似結(jié)構(gòu)的相似度。此外,相似結(jié)構(gòu)搜索部件403將與這個結(jié)構(gòu)對應(yīng)的相似度反映在評分上。
查詢計(jì)劃產(chǎn)生單元113接收查詢條件圖作為輸入,并且考慮到在該查詢中產(chǎn)生的搜索條件,產(chǎn)生在結(jié)構(gòu)化文檔數(shù)據(jù)庫中存儲的各個數(shù)據(jù)的組合。查詢計(jì)劃產(chǎn)生單元113使用查詢解析單元112的信息估計(jì)執(zhí)行該查詢的處理代價,并且產(chǎn)生將要在實(shí)際中執(zhí)行的計(jì)劃。查詢計(jì)劃產(chǎn)生單元113通過將結(jié)構(gòu)限制條件產(chǎn)生部件402和相似結(jié)構(gòu)搜索部件403的限制條件添加到由查詢語言解析部件401產(chǎn)生的查詢圖中,探索如何利用較低的處理代價來執(zhí)行處理。
查詢執(zhí)行單元114通過順序地執(zhí)行由查詢計(jì)劃產(chǎn)生單元113產(chǎn)生的計(jì)劃信息,產(chǎn)生一個候選集。查詢執(zhí)行單元114估計(jì)處理每個候選的處理代價。查詢執(zhí)行單元114計(jì)算推遲預(yù)期為最終評分值低且處理代價高的候選的處理所需要的處理優(yōu)先級。查詢執(zhí)行單元114基于執(zhí)行或不執(zhí)行處理的確定結(jié)果,從具有較高處理優(yōu)先級的候選開始依次執(zhí)行處理。查詢執(zhí)行單元114反復(fù)根據(jù)所產(chǎn)生的計(jì)劃執(zhí)行處理,并且檢查執(zhí)行最后一個處理后的結(jié)果的數(shù)目。
結(jié)果產(chǎn)生單元115產(chǎn)生結(jié)構(gòu)化文檔的XML數(shù)據(jù)作為搜索結(jié)果。在這種情況下,結(jié)果產(chǎn)生單元115按照相似度的降序來排序一組檢索到的結(jié)構(gòu)化文檔,并且以XML格式將其輸出。結(jié)果產(chǎn)生單元115從上至下依次產(chǎn)生與所獲取的文檔一樣多的XML數(shù)據(jù),作為搜索結(jié)果。
控制單元116控制整個搜索處理器111的操作。
下面將參照圖2來描述以XML描述的結(jié)構(gòu)化文檔的實(shí)例。XML是用于描述結(jié)構(gòu)化文檔的代表性語言。圖2示出了一個實(shí)例,其中“專利”信息作為以XML描述的結(jié)構(gòu)化文檔的實(shí)例。
XML和SGML使用標(biāo)簽(也稱為元素)來表述文檔結(jié)構(gòu)。該標(biāo)簽包括開始標(biāo)簽和結(jié)束標(biāo)簽。通過利用開始標(biāo)簽和結(jié)束標(biāo)簽來界定結(jié)構(gòu)化文檔信息的元素,可以具體地描述文檔中的字符串分離和該字符串所屬的元素。該字符串也被稱為文本。
開始標(biāo)簽利用符號“<”和“>”來包圍元素名稱,而結(jié)束標(biāo)簽利用符號“</”和“>”來包圍元素名稱。標(biāo)簽之后的元素的內(nèi)容是字符串的重復(fù)或子元素。類似“<元素名稱屬性-“屬性值”>”的屬性信息可以被設(shè)置在開始標(biāo)簽中。雖然在圖2中沒有描述,但作為簡單描述方法,不包括任何字符串的如同“<專利DB></專利DB>”的元素可以被表述為如同“</專利DB>”。
圖2中示出的文檔具有從作為文檔根的“專利”標(biāo)簽開始的元素,并且包括從“題目”標(biāo)簽、“發(fā)明人列表”標(biāo)簽、“發(fā)明人”標(biāo)簽、“效果”標(biāo)簽、“關(guān)鍵字列表”標(biāo)簽以及“關(guān)鍵字”標(biāo)簽開始的作為子元素的元素集。例如,從“題目”標(biāo)簽開始的元素包括類似“結(jié)構(gòu)化文檔搜索裝置”的一個字符串。通常,“文檔”由多個標(biāo)簽構(gòu)成,并且由文本數(shù)據(jù)庫等處理的“文檔”通常被處理為僅僅字符串值的鏈接,同時忽略這些標(biāo)簽。
下面將會參照圖3來描述在存儲處理器106中包括的結(jié)構(gòu)信息提取單元107和統(tǒng)計(jì)信息計(jì)算單元108。
結(jié)構(gòu)信息提取單元107包括結(jié)構(gòu)化文檔解析部件301、結(jié)構(gòu)模型樹對照部件302、結(jié)構(gòu)模型樹更新部件303、以及結(jié)構(gòu)化文檔數(shù)據(jù)存儲部件304。
統(tǒng)計(jì)信息計(jì)算單元108包括文本分割部件305、詞匯標(biāo)識符指定部件306、以及相關(guān)詞匯項(xiàng)計(jì)算部件307。
結(jié)構(gòu)化文檔解析部件301接收從請求處理器105傳遞的文本格式的結(jié)構(gòu)化文檔,并且解析這個結(jié)構(gòu)化文檔,以將其擴(kuò)展到類似DOM的目標(biāo)樹格式。結(jié)構(gòu)化文檔解析部件301將一個文檔ID分配給該文檔,并且將各唯一元素ID附加到形成該目標(biāo)樹的各元素。另外,部件301附加出現(xiàn)位置以及與每個元素對應(yīng)的TID。該出現(xiàn)位置利用字符的編號表示在字符串中的位置。
結(jié)構(gòu)模型樹對照部件302掃描目標(biāo)樹來提取特征結(jié)構(gòu)信息。當(dāng)結(jié)構(gòu)模型樹已經(jīng)被注冊在數(shù)據(jù)庫上的結(jié)構(gòu)模型樹存儲單元(116)中時,部件302將該結(jié)構(gòu)模型樹與該目標(biāo)樹進(jìn)行對照。稍后將會參照圖5來描述目標(biāo)樹和結(jié)構(gòu)模型樹的實(shí)例。
結(jié)構(gòu)模型樹更新部件303將其中給定標(biāo)簽冗余地出現(xiàn)在相同平面上的結(jié)構(gòu)合并為一個結(jié)構(gòu),并且將其提取作為特征結(jié)構(gòu),并且產(chǎn)生和更新此種結(jié)構(gòu)信息作為結(jié)構(gòu)模型樹。
結(jié)構(gòu)化文檔數(shù)據(jù)存儲部件304將與結(jié)構(gòu)模型樹對應(yīng)的TID提供給先前擴(kuò)展到DOM格式的節(jié)點(diǎn),并且將該TID和結(jié)構(gòu)化文檔一起存儲在結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118中。
文本分割部件305將一個字符串分割為與目標(biāo)樹上的該字符串對應(yīng)的部分的多個詞匯項(xiàng),以便產(chǎn)生為產(chǎn)生該詞匯項(xiàng)的索引所需要的信息。更為具體的,部件305接收一個字符串作為輸入,并且利用例如形態(tài)分析、N-gram方案等來將待分割的該字符串分割為多個詞匯項(xiàng)。此后,相關(guān)詞匯項(xiàng)計(jì)算部件307為每個分割后的詞匯項(xiàng)產(chǎn)生詞匯索引信息。
統(tǒng)計(jì)信息計(jì)算單元108將唯一GID與分割后的詞匯項(xiàng)相關(guān)聯(lián),以取代將分割后的詞匯項(xiàng)作為字符串進(jìn)行管理。GID項(xiàng)被包括在詞匯表中。稍后將參照圖6來描述詞匯表的實(shí)例。稍后將參照圖7來描述詞匯表和詞匯索引信息之間的關(guān)系。
詞匯標(biāo)識符指定部件306指定與每個分割后的詞匯項(xiàng)對應(yīng)的標(biāo)識符,并且將該標(biāo)識符分配給該詞匯項(xiàng)。該標(biāo)識符包括其中該詞匯項(xiàng)出現(xiàn)的文檔ID和元素標(biāo)識符(在下文中被稱為元素ID)、出現(xiàn)位置、與該元素對應(yīng)的TID、相關(guān)GID、以及相關(guān)TID。結(jié)構(gòu)化文檔解析部件301自動地分配文檔ID和元素ID。該出現(xiàn)位置利用字符的編號表示字符串位置。結(jié)構(gòu)化文檔解析部件301還計(jì)算該出現(xiàn)位置和與元素對應(yīng)的TID。下面將描述通過相關(guān)詞匯項(xiàng)計(jì)算部件307來計(jì)算相關(guān)GID和相關(guān)TID。
基本上,相關(guān)詞匯項(xiàng)計(jì)算部件307將給定字符串中具有最高出現(xiàn)頻率的詞匯項(xiàng)的GID設(shè)置為與分割后的詞匯項(xiàng)相關(guān)聯(lián)的相關(guān)GID。然而,當(dāng)在字符串中包括的字符的數(shù)目小時,部件307擴(kuò)展搜索范圍,以將該搜索范圍內(nèi)具有高出現(xiàn)頻率的詞匯項(xiàng)的GID設(shè)置為相關(guān)GID。最小出現(xiàn)頻率被設(shè)置為出現(xiàn)頻率的閾值,并且計(jì)算所選擇字符串中的相關(guān)詞匯項(xiàng)時,當(dāng)具有最高出現(xiàn)頻率的詞匯項(xiàng)的出現(xiàn)頻率小于該閾值時,該相關(guān)詞匯項(xiàng)不是僅僅基于該字符串確定的,而是通過以該字符串為基本點(diǎn),按照屬性值、兄弟元素的字符串以及父元素的字符串的順序擴(kuò)展所述范圍來進(jìn)行相同的處理,直到出現(xiàn)頻率超過閾值。值得注意的是,可以根據(jù)目標(biāo)元素大小而不是固定值來合適地確定該最小出現(xiàn)頻率的閾值。稍后參照圖8來描述關(guān)于確定相關(guān)GID的實(shí)際實(shí)例。
相關(guān)詞匯項(xiàng)計(jì)算部件307基于這樣一個假設(shè)來進(jìn)行計(jì)算,即假設(shè)字符串中具有最高出現(xiàn)頻率的詞匯項(xiàng)的TID是相關(guān)TID,其中正在該字符串中搜索相關(guān)GID。在這種情況下,當(dāng)給定的詞匯項(xiàng)在同一元素中出現(xiàn)多次時,作為第二或隨后詞匯項(xiàng)的相關(guān)GID,具有第二高出現(xiàn)頻率的GID被附加作為相關(guān)詞匯項(xiàng),以取代具有最高出現(xiàn)頻率的詞匯項(xiàng)。按照這種方式,就字符串中具有較高出現(xiàn)頻率的詞匯項(xiàng)而言,可以附加多個相關(guān)GID。相關(guān)詞匯項(xiàng)計(jì)算部件307按照這種方式為所分割的詞匯項(xiàng)產(chǎn)生詞匯索引信息。稍后參照圖9來解釋詞匯索引信息的實(shí)例。
下面將會參照圖4來描述搜索處理器111中包括的查詢解析單元112、查詢計(jì)劃產(chǎn)生單元113以及查詢執(zhí)行單元114。
查詢解析單元112包括查詢語言解析部件401、結(jié)構(gòu)限制條件產(chǎn)生部件402、以及相似結(jié)構(gòu)搜索部件403。
查詢計(jì)劃產(chǎn)生單元113包括查詢處理代價估計(jì)部件404、計(jì)劃產(chǎn)生部件405以及結(jié)果計(jì)數(shù)檢查部件408。
查詢執(zhí)行單元114包括處理優(yōu)先級計(jì)算部件406和處理執(zhí)行部件407。
查詢語言解析部件401依照句法解析從請求處理器105傳遞的查詢數(shù)據(jù)(例如,一個查詢),并且產(chǎn)生查詢圖作為解析結(jié)果,即,將查詢數(shù)據(jù)轉(zhuǎn)換為可由結(jié)構(gòu)化文檔搜索裝置處理的格式。該查詢圖表示在查詢數(shù)據(jù)中包括的元素之間的限制關(guān)系,這是在計(jì)劃產(chǎn)生部件405產(chǎn)生查詢計(jì)劃時所需要的。句法解析也被稱為解析,并且查詢圖作為解析結(jié)果被獲取。稍后將參照圖10來描述由查詢語言解析部件401產(chǎn)生的查詢圖。
結(jié)構(gòu)限制條件產(chǎn)生部件402為由查詢語言解析部件401產(chǎn)生的查詢圖計(jì)算結(jié)構(gòu)限制條件,作為數(shù)據(jù)庫上的結(jié)構(gòu)限制條件。將該結(jié)構(gòu)限制條件提供給查詢圖的弧,并且該結(jié)構(gòu)限制條件是與父節(jié)點(diǎn)和子節(jié)點(diǎn)對應(yīng)的結(jié)構(gòu)模型樹上的TID對[父TID限制,子TID限制]。通過計(jì)算該結(jié)構(gòu)限制的父-子關(guān)系,可以利用該結(jié)構(gòu)限制來及早地減少候選的數(shù)目。稍后將參照圖10來描述結(jié)構(gòu)限制條件產(chǎn)生部件402的操作的實(shí)例。
相似結(jié)構(gòu)搜索部件403接收利用在返回子句中描述的復(fù)合文檔形成的虛擬結(jié)構(gòu)信息,該復(fù)合文檔作為XQurery的查詢最后要求獲得的結(jié)果,并且相似結(jié)構(gòu)搜索部件403參照在詞匯統(tǒng)計(jì)信息存儲單元121中存儲的出現(xiàn)頻率信息,在結(jié)構(gòu)模型樹存儲單元120中搜索與該結(jié)構(gòu)相似的結(jié)構(gòu)。部件403隨后選擇一個相似結(jié)構(gòu),并且參照語義網(wǎng)絡(luò)存儲單元122來計(jì)算這個相似結(jié)構(gòu)的相似度。此外,相似結(jié)構(gòu)搜索部件403將與這個結(jié)構(gòu)對應(yīng)的相似度反映在評分上。
同時,在由XQuery代表的可處理查詢語言中,返回子句可以描述不實(shí)際存在于數(shù)據(jù)庫中的虛擬元素、屬性、字符串等。用戶在一個查詢中可以自由地描述這些虛擬元素、屬性、字符串等。由于數(shù)據(jù)庫中不存在返回子句中的比如$x、$y等的虛擬結(jié)構(gòu)關(guān)系,所以它們未被反映在評分上。
然而,由于基于這些復(fù)合文檔最終產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)是一個相對于用戶想要的信息的意圖的指示,所以它應(yīng)該被反映在評分上。例如,當(dāng)以<題目列表>來總結(jié)該結(jié)果時,用戶預(yù)期其內(nèi)容是涉及<題目列表>的那些。當(dāng)與這些內(nèi)容相似的結(jié)構(gòu)被設(shè)置為具有較高評分值時,可以快速地呈現(xiàn)具有高精確度的信息。該評分值被定義為結(jié)構(gòu)評分值。
然而,當(dāng)用戶描述查詢時,標(biāo)簽名稱經(jīng)常波動,或者經(jīng)常存在結(jié)構(gòu)性的丟失描述或過度描述。這是因?yàn)橛脩敉ǔ2恢狸P(guān)于數(shù)據(jù)庫中的標(biāo)簽名稱的存儲結(jié)構(gòu)等的信息。因此,為了消減標(biāo)簽名稱和結(jié)構(gòu)的這種波動,相似結(jié)構(gòu)搜索部件403參照語義網(wǎng)絡(luò)存儲單元122來擴(kuò)展標(biāo)簽名稱等,并且即使對于非嚴(yán)格結(jié)構(gòu),也允許利用相似度來進(jìn)行搜索。稍后參照圖12來描述語義網(wǎng)絡(luò)存儲單元122的內(nèi)容的實(shí)例。
當(dāng)相似結(jié)構(gòu)搜索部件403計(jì)算結(jié)構(gòu)評分值時,其在結(jié)構(gòu)模型樹存儲單元120中存儲的結(jié)構(gòu)模型樹中搜索與作為返回子句輸出的虛擬數(shù)據(jù)結(jié)構(gòu)相似的實(shí)際數(shù)據(jù)庫中的結(jié)構(gòu)。在這種情況下,在使用語義網(wǎng)絡(luò)存儲單元122的內(nèi)容來吸收輕微標(biāo)簽名稱波動的同時進(jìn)行搜索。
當(dāng)相似結(jié)構(gòu)搜索部件403從結(jié)構(gòu)模型樹中找到相似結(jié)構(gòu)信息時,它為每個TID附加在該語義網(wǎng)絡(luò)范圍內(nèi)擴(kuò)展的相似度,并且設(shè)置該附加值作為結(jié)構(gòu)評分值。稍后參照圖13來描述利用相似結(jié)構(gòu)搜索部件403進(jìn)行結(jié)構(gòu)評分值的計(jì)算的實(shí)例。
值得注意的是,本發(fā)明的特征在于,相似結(jié)構(gòu)搜索部件403預(yù)先解析返回子句的輸出結(jié)構(gòu)的配置,并且考慮到模糊度來搜索結(jié)構(gòu)模型樹。因此,語義網(wǎng)絡(luò)的創(chuàng)建方法和精確度,以及結(jié)構(gòu)模型樹上的匹配算法可以采用現(xiàn)有技術(shù)。
查詢計(jì)劃產(chǎn)生單元113的主要作用是通過將結(jié)構(gòu)限制條件產(chǎn)生部件402和相似結(jié)構(gòu)搜索部件403的限制條件添加到由查詢語言解析部件401產(chǎn)生的查詢圖中,來探索如何利用較低的處理代價執(zhí)行處理。
查詢處理代價估計(jì)部件404進(jìn)行處理代價計(jì)算,該處理代價計(jì)算是確定與查詢語言解析部件401產(chǎn)生的查詢圖相關(guān)聯(lián)的處理的執(zhí)行順序所需要的。在基于比如詞匯索引等的索引預(yù)先減小候選集后,查詢處理代價估計(jì)部件404經(jīng)常進(jìn)行上游擴(kuò)展。然而,在這種情況下,部件404在根據(jù)詞匯統(tǒng)計(jì)信息存儲單元121中存儲的出現(xiàn)頻率信息估計(jì)詞匯項(xiàng)的出現(xiàn)頻率之后,確定處理代價。通過使用各種統(tǒng)計(jì)信息,查詢處理代價估計(jì)部件404加速處理,其中除了出現(xiàn)頻率信息之外,上述各種統(tǒng)計(jì)信息比如是CPU處理代價、磁盤存取頻率、合并處理的低頻率、存儲器大小限制、索引的存在/缺少等。
計(jì)劃產(chǎn)生部件405基于查詢處理代價估計(jì)部件404估計(jì)的處理代價來確定查詢圖的處理順序。通常,存在這些計(jì)劃的多個候選。選擇和執(zhí)行可以降低處理代價的這些計(jì)劃中的一個。計(jì)劃產(chǎn)生部件405根據(jù)處理代價等僅僅預(yù)先確定查詢圖的處理順序,并且查詢執(zhí)行單元114基于該計(jì)劃來實(shí)際執(zhí)行查詢處理。
查詢執(zhí)行單元114順序地執(zhí)行計(jì)劃產(chǎn)生部件405產(chǎn)生的計(jì)劃信息,并且產(chǎn)生一組候選。形成一個計(jì)劃的實(shí)際處理被定義為操作符。該操作符例如包括詞匯索引搜索操作符、結(jié)構(gòu)對照操作符等。每個操作符對應(yīng)于一個應(yīng)用過濾的處理,通過在查詢圖中從一給定節(jié)點(diǎn)移動到另一節(jié)點(diǎn)且產(chǎn)生候選集,使一條弧成為限制條件。期望避免候選集的增大以及避免在搜索期間盡可能多地執(zhí)行繁重處理。稍后將參照圖14來描述所述計(jì)劃以及所述計(jì)劃中包括的操作符的實(shí)例。
通過重復(fù)處理優(yōu)先級計(jì)算部件406和處理執(zhí)行部件407,查詢執(zhí)行單元114順序地執(zhí)行操作符。由計(jì)劃產(chǎn)生部件405產(chǎn)生的計(jì)劃的處理完成后,結(jié)果計(jì)數(shù)檢查部件408檢查結(jié)果數(shù)目。
處理優(yōu)先級計(jì)算部件406預(yù)先估計(jì)處理每個候選的處理代價。該處理優(yōu)先級計(jì)算部件406計(jì)算推遲一個預(yù)期最終評分值低且具有沉重處理代價的候選的處理所需要的處理優(yōu)先級。
通常,可預(yù)先檢測出具有高處理代價的候選。一個典型的例子是結(jié)構(gòu)對照操作符中的處理。在這種情況下,處理優(yōu)先級計(jì)算部件406訪問結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118,并且探索在單元118中存儲的結(jié)構(gòu)信息(父子和兄弟關(guān)系等)。上述上游擴(kuò)展表示這些結(jié)構(gòu)對照操作符。結(jié)構(gòu)對照操作符還包括稍后描述的下游擴(kuò)展。當(dāng)每個結(jié)構(gòu)對照操作符執(zhí)行深層或大文檔的結(jié)構(gòu)對照時,預(yù)期處理代價高。
對于查詢計(jì)劃產(chǎn)生單元113而言,如何避免這種包括繁重處理的操作符是重要的。然而,由于所述計(jì)劃使用估計(jì)出的處理代價,所以它不是可以預(yù)見所有候選的處理代價的計(jì)劃。出于這個原因,肯定不可避免地常常執(zhí)行具有高處理代價的處理。
由于該實(shí)施例考慮了結(jié)構(gòu)化文檔的評分方案,所以用戶只需要具有較高評分值的結(jié)果,因此通常不使用具有較低評分值的結(jié)果。通過利用這個事實(shí),可以使用推遲具有高處理代價的候選的處理的方法。
然而,高處理代價與該候選是否是用戶的期望數(shù)據(jù)之間不具有關(guān)聯(lián)。對于用戶希望以較高等級評分的信息,即使它具有高處理代價,也必須首先對其進(jìn)行處理。因此,高效地處理不為用戶所期望且具有高處理代價的候選集變得重要。
在處理候選時,處理優(yōu)先級計(jì)算部件406為每個候選計(jì)算處理優(yōu)先級。通過將處理代價值、結(jié)構(gòu)評分值和詞匯評分值相乘來指定處理優(yōu)先級,該處理代價值與預(yù)期實(shí)際執(zhí)行該處理所需要的處理代價的大小成反比。該處理優(yōu)先級計(jì)算方法并不限于乘法,可以使用由三個參數(shù)“處理代價值”、“結(jié)構(gòu)評分值”和“詞匯評分值”惟一確定的函數(shù)。稍后參照圖15來描述處理優(yōu)先級計(jì)算部件406的操作的細(xì)節(jié)。
處理優(yōu)先級計(jì)算部件406基于來自詞匯索引信息的結(jié)構(gòu)評分值、詞匯評分值和處理代價來順序地計(jì)算處理優(yōu)先級,并且基于該處理中間(非最終結(jié)果的計(jì)劃)的該值來確定執(zhí)行或不執(zhí)行。
基于由處理優(yōu)先級計(jì)算部件406確定的處理的執(zhí)行或不執(zhí)行,處理執(zhí)行部件407從具有較高處理優(yōu)先級的處理開始依次執(zhí)行處理。
結(jié)果計(jì)數(shù)檢查部件408根據(jù)計(jì)劃產(chǎn)生部件405產(chǎn)生的計(jì)劃,重復(fù)地執(zhí)行處理優(yōu)先級計(jì)算部件406和處理執(zhí)行部件407,并且在執(zhí)行最后操作符之后檢查結(jié)果數(shù)目。當(dāng)查詢處理的結(jié)果數(shù)目等于或小于用戶希望獲得的結(jié)果數(shù)目時,從還未處理的操作符開始重新執(zhí)行該處理,由此重復(fù)處理,直到相應(yīng)獲得期望數(shù)目的待獲得結(jié)果。稍后將會參照圖17來描述處理執(zhí)行部件407和結(jié)果計(jì)數(shù)檢查部件408的實(shí)際操作。
在下面參照圖5來描述目標(biāo)樹和結(jié)構(gòu)模型樹的實(shí)例。
圖5中上部示出的樹是目標(biāo)樹501的實(shí)例,而圖5中下部示出的樹是結(jié)構(gòu)模型樹502的實(shí)例。結(jié)構(gòu)模型樹對照部件302掃描目標(biāo)樹501,以提取結(jié)構(gòu)信息。在圖5的實(shí)例中,目標(biāo)樹501在同一平面上冗余地包括發(fā)明人標(biāo)簽。結(jié)構(gòu)模型樹更新部件303將此種冗余結(jié)構(gòu)合并為一個結(jié)構(gòu),并將其提取為特征結(jié)構(gòu)。如結(jié)構(gòu)模型樹502中所示,部件303產(chǎn)生此種結(jié)構(gòu)信息作為結(jié)構(gòu)模型樹,并且順序地更新信息。應(yīng)該注意,結(jié)構(gòu)模型樹502中示出的TID1、TID2、...、TID10是結(jié)構(gòu)模型樹標(biāo)識符的實(shí)例。
在下面參照圖6來描述詞匯表的實(shí)例。
詞匯表記錄作為詞匯索引信息的信息,比如GID、由文本分割部件305分割的字符串(Gram)、數(shù)據(jù)庫中的總出現(xiàn)頻率信息、以及相應(yīng)置換索引列表的存儲地址(置換索引列表編號)等。
在下面參照圖7來描述詞匯表和詞匯索引信息之間的關(guān)系。
置換索引列表與詞匯表中包括的GID相對應(yīng)地存在。置換索引列表包括與在每個GID的總出現(xiàn)頻率信息中描述的出現(xiàn)頻率的值一樣多的多條詞匯索引信息。在圖7的實(shí)例中,GID=2對應(yīng)于列表編號=37的置換索引列表,并且該置換索引列表包括63條詞匯索引信息,對應(yīng)于出現(xiàn)頻率=63。
在下面參照圖8來描述相關(guān)詞匯項(xiàng)計(jì)算單元307確定相關(guān)GID的實(shí)例。
將會具體例示一種情形,在該情形中,當(dāng)相關(guān)詞匯項(xiàng)計(jì)算單元307為字符串節(jié)點(diǎn)<姓>鈴木</姓>執(zhí)行索引時,將最小出現(xiàn)頻率暫時設(shè)置為3。在<姓>鈴木</姓>的范圍806內(nèi),由于“鈴木”在該范圍內(nèi)的出現(xiàn)頻率為1,所以沒有達(dá)到最小出現(xiàn)頻率=3。因此,相關(guān)詞匯項(xiàng)計(jì)算部件307擴(kuò)展出現(xiàn)頻率計(jì)算范圍。最初,部件307針對通過合并作為“鈴木”的兄弟元素的<名>字符串而獲得的“虛擬字符串”,重新計(jì)算出現(xiàn)頻率信息。部件307按照屬性、子、兄弟和父的順序來重復(fù)該擴(kuò)展處理。在圖8的實(shí)例中,當(dāng)相關(guān)詞匯項(xiàng)計(jì)算部件307將出現(xiàn)頻率計(jì)算范圍擴(kuò)展到范圍805時,如果計(jì)數(shù)在<關(guān)鍵字>中包括的“XML”的出現(xiàn)頻率,則由于“XML”在三個位置807、808和809出現(xiàn),所以其出現(xiàn)頻率達(dá)到最小閾值3。當(dāng)該范圍被擴(kuò)展時,表801被更新為如同表802。結(jié)果是,在這個實(shí)例的情況下,詞匯項(xiàng)“鈴木”被存儲在詞匯索引信息中,使具有GID2的“XML”作為相關(guān)詞匯項(xiàng)。也就是,“鈴木”的相關(guān)GID是GID2。而且,由于“鈴木”的相關(guān)TID是“XML”的TID,所以基于圖5中示出的結(jié)構(gòu)模型樹來設(shè)置TID5。
在下面參照圖9來描述詞匯索引信息的實(shí)例。圖9解釋了當(dāng)最小出現(xiàn)頻率被設(shè)置為“2”時,通過分割在<概要>標(biāo)簽中的字符串獲得的詞匯項(xiàng)“XML”的詞匯索引信息的實(shí)例。
在這種情況下,在<概要>標(biāo)簽中,“XML”出現(xiàn)兩次。當(dāng)相關(guān)詞匯項(xiàng)計(jì)算部件307為該“XML”搜索相關(guān)詞匯項(xiàng)時,由于在范圍904內(nèi)沒有字符串達(dá)到該最小出現(xiàn)頻率,所以擴(kuò)展該范圍。當(dāng)該范圍擴(kuò)展到<題目>時,相關(guān)詞匯項(xiàng)計(jì)算部件307可以找到達(dá)到該最小出現(xiàn)頻率的兩個字符串“文檔”和“搜索”。然后,確定“XML”具有兩個相關(guān)詞匯項(xiàng)“文檔”和“搜索”,并且它們的GID分別是表901中的“51”和“87”。如圖9中的表902所示,存在與“文檔”和“搜索”對應(yīng)的兩條詞匯項(xiàng)信息,并且每條信息包括以下信息文檔ID、元素ID、自身TID、偏移量、GID和相關(guān)TID。
下面參照圖10來描述由查詢語言解析部件401產(chǎn)生的查詢圖。
當(dāng)從搜索單元104輸入查詢1001時,查詢語言解析部件401解析查詢1001以獲得查詢圖1002。圖10中的查詢圖1002中的節(jié)點(diǎn)對應(yīng)于候選集,并且弧線對應(yīng)于限制條件。例如,如圖10中所示,②和③具有結(jié)構(gòu)限制條件/題目作為限制條件,而③和④具有與詞匯項(xiàng)和結(jié)構(gòu)相關(guān)聯(lián)的限制條件,即,contains(text(),“結(jié)構(gòu)化文檔”)。
根據(jù)用于產(chǎn)生該查詢圖1002的查詢的優(yōu)化方案來確定結(jié)構(gòu)化文檔搜索裝置如何高效地搜索這些節(jié)點(diǎn)。例如,在contains(text(),“結(jié)構(gòu)化文檔”)中,由于包括“結(jié)構(gòu)化文檔”的字符串集在存儲時被預(yù)先索引,所以可以首先使用這個索引,即產(chǎn)生一個從④向③前進(jìn)的計(jì)劃,來加速該處理。當(dāng)產(chǎn)生從④向③前進(jìn)的計(jì)劃時,XML文檔經(jīng)歷搜索同時從根開始依次對照結(jié)構(gòu),并且結(jié)構(gòu)化文檔搜索裝置可以確定該處理代價大。注意,減少候選同時從下游向上游前進(jìn)被定義為上游擴(kuò)展,而減少候選同時從上游向下游前進(jìn)被定義為下游擴(kuò)展。例如,減少候選同時從④向③前進(jìn)被定義為上游擴(kuò)展,而減少候選同時從③向④前進(jìn)被定義為下游擴(kuò)展。
按照這種方式,查詢語言解析部件401產(chǎn)生在查詢數(shù)據(jù)中包括的元素之間的限制條件,當(dāng)查詢計(jì)劃產(chǎn)生單元113產(chǎn)生查詢計(jì)劃時需要該限制條件。
在下面參照圖10來描述結(jié)構(gòu)限制條件產(chǎn)生部件402的操作。
②和③的結(jié)構(gòu)限制對應(yīng)于圖10中的結(jié)構(gòu)模型樹1003上的TID4和TID6。結(jié)構(gòu)限制條件產(chǎn)生部件402將[TID4,TID6]作為一對保存,以作為②和③的結(jié)構(gòu)限制。按照這種方式,通過獲得結(jié)構(gòu)限制間的父子關(guān)系,可以利用該結(jié)構(gòu)限制來較早地減少候選的數(shù)目。
當(dāng)結(jié)構(gòu)化文檔搜索裝置進(jìn)行從②到③的搜索(下游擴(kuò)展)時,處理優(yōu)先級計(jì)算部件406執(zhí)行以下處理,通過訪問結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118獲取他們的子元素,將每個獲取的元素的TID值與作為子TID限制的TID值進(jìn)行比較,并且如果它們不同,則從候選中排除該子元素。反之,當(dāng)結(jié)構(gòu)化文檔搜索裝置進(jìn)行從③到②的搜索(上游擴(kuò)展)時,處理優(yōu)先級計(jì)算部件406執(zhí)行處理,獲取各個候選的父元素,并且將他們的TID值與父TID限制值進(jìn)行比較。同樣,對于ID屬性(被描述為/@id),預(yù)先解析[TID4,TID5]。
下面參照圖11來描述查詢的實(shí)例。
在由XQuery表示的可處理查詢語言中,返回子句可以描述并不實(shí)際存在于數(shù)據(jù)庫中的虛擬元素、屬性、字符串等。在圖11的查詢中,<書目列表>、<作者>以及<名稱>、具有/書目列表/作者/名稱的結(jié)構(gòu)等是虛擬數(shù)據(jù),可由用戶使用查詢自由描述且并不存在于數(shù)據(jù)庫中。由于數(shù)據(jù)庫中不存在返回子句中的比如$x、$y等的虛擬結(jié)構(gòu)關(guān)系,所以在數(shù)據(jù)庫中不存在最后通過$x輸出的<書目>標(biāo)簽和最后通過$y輸出的<論文>標(biāo)簽之間的關(guān)系。
然而,基于這些復(fù)合文檔最后產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)是關(guān)于用戶希望信息的意圖的一個指示。例如,當(dāng)結(jié)果被總結(jié)為<題目列表>時,用戶預(yù)期其內(nèi)容是涉及<題目列表>的那些。當(dāng)與這些內(nèi)容相似的結(jié)構(gòu)被設(shè)置為具有較高評分值時,可以快速地呈現(xiàn)具有高精確度的信息。
下面參照圖12來描述語義網(wǎng)絡(luò)存儲單元122的內(nèi)容的實(shí)例。
語義網(wǎng)絡(luò)將一個單詞和與該單詞具有相似度的另一單詞關(guān)聯(lián)。語義網(wǎng)絡(luò)以圖形形式來表述詞匯項(xiàng)之間的相似關(guān)系。也就是,具有相似關(guān)系的詞匯項(xiàng)經(jīng)由一弧連接,并且這些詞匯項(xiàng)之間的相似值被賦予該弧,由此形成這些詞匯項(xiàng)之間的網(wǎng)絡(luò)。在圖12的實(shí)例中,例如,“結(jié)構(gòu)化文檔”分別與“結(jié)構(gòu)化文檔HTML”、“XML”以及“SGML”以相似度=0.5、相似度=0.8以及相似度=0.8相關(guān)聯(lián)。
下面將參照圖13來詳細(xì)地描述一種情形,在該情形中,相似結(jié)構(gòu)搜索部件403計(jì)算結(jié)構(gòu)評分值。在圖13的實(shí)例中,將會考查結(jié)構(gòu)化文檔的XML數(shù)據(jù)1301已經(jīng)被存儲在數(shù)據(jù)庫中的情形。在這種情況下,假設(shè)結(jié)構(gòu)模型樹是圖13中示出的第一結(jié)構(gòu)模型樹1308。在處理第一查詢1304時,相似結(jié)構(gòu)搜索部件403在結(jié)構(gòu)模型樹中初始搜索與返回子句中描述的包括最后由$x輸出的<題目列表>標(biāo)簽和<名稱>標(biāo)簽的復(fù)合文檔的結(jié)構(gòu)相似的結(jié)構(gòu)。在這種情況下,相似結(jié)構(gòu)搜索部件403進(jìn)行搜索,同時使用語義網(wǎng)絡(luò)來吸收標(biāo)簽名稱的波動。
在這種情況下,當(dāng)語義網(wǎng)絡(luò)1309包括在題目列表和題目之間具有相似度=0.5的關(guān)系時,相似結(jié)構(gòu)搜索部件403認(rèn)為<題目列表><名稱>的關(guān)系和<題目><名稱>的關(guān)系(/題目/名稱)具有相似度=0.5。由于關(guān)系/題目/名稱對應(yīng)于第一結(jié)構(gòu)模型樹1308上的TID2和TID3,所以相似結(jié)構(gòu)搜索部件403設(shè)置具有這些TID2和TID3的候選的結(jié)構(gòu)評分值。雖然第一結(jié)構(gòu)模型樹1308包括TID6作為指示<名稱>的結(jié)構(gòu),但是它是<作者>標(biāo)簽的<名稱>(/作者集/作者/名稱),并且相似結(jié)構(gòu)搜索部件403設(shè)置這個結(jié)構(gòu)的低優(yōu)先級。
在這種情況下,例如,相似結(jié)構(gòu)搜索部件403為TID3設(shè)置結(jié)構(gòu)評分值=0.5,為TID6設(shè)置結(jié)構(gòu)評分值=0.1。不為不具有相似性的TID設(shè)置零評分值的原因在于,在執(zhí)行評分計(jì)算時必須進(jìn)行與該結(jié)構(gòu)評分值的乘法。因此,這個值被設(shè)置為盡可能小的非零值。
在執(zhí)行結(jié)構(gòu)限制計(jì)算時,$x的結(jié)構(gòu)限制是[TID1,TID3]和[TID1,TID6]。在這些限制中,由于設(shè)置了與該TID3的限制匹配的候選的高評分值,所以作為$x的結(jié)構(gòu)限制的TID3<名稱>田中理論</名稱>被作為輸出結(jié)果較早地顯示。
下面參照圖14來描述由查詢執(zhí)行單元114執(zhí)行的計(jì)劃以及在該計(jì)劃中包括的操作符的實(shí)例。
第一計(jì)劃1401是包括三個操作符的計(jì)劃的實(shí)例,這三個操作符是詞匯索引搜索操作符、結(jié)構(gòu)對照操作符以及結(jié)果產(chǎn)生操作符。注意,該計(jì)劃作為通用搜索模式的基礎(chǔ),最頻繁的被執(zhí)行。計(jì)劃產(chǎn)生部件405產(chǎn)生比如第二計(jì)劃1402的另一計(jì)劃,但是查詢執(zhí)行單元114選擇和執(zhí)行第一計(jì)劃1401,作為具有最小處理代價的計(jì)劃。
下面參照圖15來描述處理優(yōu)先級計(jì)算部件406的操作。
如同先前參照圖4等的描述,計(jì)算比如針對結(jié)構(gòu)對照的處理代價等的處理代價值(步驟S1501)。作為這個處理代價值,利用由
歸一化的值來計(jì)算處理代價。例如,當(dāng)待對照的層很深或當(dāng)文檔大小很大時,預(yù)期的是處理代價高,并且隨著升高的處理代價來設(shè)置較低的處理代價值。
計(jì)算結(jié)構(gòu)代價(步驟S1502)。更為具體地,計(jì)算結(jié)構(gòu)評分值。結(jié)構(gòu)評分值是由相似結(jié)構(gòu)搜索部件1403計(jì)算的,并且該計(jì)算方法的細(xì)節(jié)在上面已經(jīng)參照圖13進(jìn)行了描述。
檢查是否獲得已經(jīng)由多個詞匯索引搜索操作符處理過的候選集(步驟S1503)。例如,當(dāng)使用詞匯索引信息的詞匯索引搜索操作符等將被執(zhí)行時,沒有作為輸入的候選集。如果已獲得這些候選集,那么流程進(jìn)行到步驟S1504,否則,流程進(jìn)行到步驟S1505。
檢查是否必須執(zhí)行用于合并使用多個詞匯索引搜索操作符的結(jié)果的處理(即,合并處理)(步驟S1504)。如圖11的實(shí)例中所示,當(dāng)經(jīng)由“and”將包括作為條件的兩個或多個“關(guān)鍵字”(在這個實(shí)例中,為“XML”和“田中”)的搜索合并時,將使用多個詞匯索引搜索操作符的結(jié)果合并,并且這種查詢是通常廣為使用的那些查詢中的一種。如果必須進(jìn)行該合并處理,則流程進(jìn)行到步驟S1506,否則,流程進(jìn)行到步驟S1505。
在步驟S1505,確定僅僅處理代價和結(jié)構(gòu)代價的計(jì)算結(jié)果被用于處理優(yōu)先級計(jì)算中,而不需要計(jì)算任何詞匯代價,并且流程進(jìn)行到步驟S1507。
在步驟S1507,基于處理代價值、結(jié)構(gòu)評分值以及詞匯評分值來計(jì)算處理優(yōu)先級。例如,處理優(yōu)先級是由處理代價值、結(jié)構(gòu)評分值以及詞匯評分值的乘積來定義的。當(dāng)不計(jì)算詞匯評分值時,處理優(yōu)先級是僅僅基于處理代價值和結(jié)構(gòu)評分值來計(jì)算的。在這種情況下,例如,處理優(yōu)先級是由處理代價值和結(jié)構(gòu)評分值的乘積來定義的。
在步驟S1506,計(jì)算詞匯代價。更為具體地,計(jì)算詞匯代價值。在這種情況下,由于滿足圖15中的條件,所以具有通過執(zhí)行兩個或多個詞匯索引搜索操作符作為目標(biāo)獲得的候選集。
在這個實(shí)施例中,當(dāng)統(tǒng)計(jì)信息產(chǎn)生單元108產(chǎn)生詞匯信息時,統(tǒng)計(jì)信息產(chǎn)生單元108產(chǎn)生具有高相關(guān)度的GID(相關(guān)GID)以及其中GID出現(xiàn)最頻繁的結(jié)構(gòu)的TID(相關(guān)TID),并且索引信息存儲單元109將相關(guān)GID和相關(guān)TID存儲在詞匯索引存儲單元119中。在計(jì)算詞匯評分值時,如果存在包括兩個或多個候選集中的公共相關(guān)GID和相關(guān)TID的候選,那么為該候選設(shè)置高評分值。在這種情況下,可以使用語義網(wǎng)絡(luò)來擴(kuò)展相關(guān)GID和相關(guān)TID等,以包括相關(guān)性。
在下面參照圖16來描述計(jì)算詞匯評分值的實(shí)際例子。
在圖16的例子中,具有由詞匯索引搜索操作符利用候選集列表產(chǎn)生的兩個候選集,并且為這些候選集計(jì)算詞匯評分值。在第一候選集列表中的候選1601中,由于相關(guān)GID=5和相關(guān)TID=7完全和共同地存在于第二候選集列表中,所以為它們設(shè)置高詞匯評分值。在這個實(shí)例中,該詞匯評分值被設(shè)置為1.0。
在候選1602內(nèi),只有相關(guān)GID=5匹配而相關(guān)TID=2不匹配。因此,設(shè)置低于候選1601的較低詞匯評分值。在這個實(shí)例中,該詞匯評分值被設(shè)置為0.5。在候選1603中,由于甚至相關(guān)GID不匹配,所以設(shè)置更低的詞匯評分值。在這個實(shí)例中,該詞匯評分值被設(shè)置為0.1。同樣,對第二候選集列表進(jìn)行計(jì)算。在這個實(shí)例中,候選1601的詞匯評分值被設(shè)置為1.0,候選1602的詞匯評分值被設(shè)置為0.5,候選1603的詞匯評分值被設(shè)置為0.1。然而,對于這些值的計(jì)算方案而言,使用相關(guān)GID和相關(guān)TID作為參數(shù)來進(jìn)行計(jì)算是重要的,并且可以使用其他方案。
當(dāng)使用語義網(wǎng)絡(luò)時,如果在兩個候選集之間存在通過擴(kuò)展與相關(guān)GID對應(yīng)的詞匯項(xiàng)獲得的詞匯項(xiàng),則它可以與其相似度一起反映在詞匯評分值上。按照這種方式,可以獲得計(jì)算處理優(yōu)先級所需要的多條信息。處理優(yōu)先級可以基于它們來進(jìn)行計(jì)算(步驟S1507),并且由此確定是否執(zhí)行處理。
下面參照圖17來描述處理執(zhí)行部件407和結(jié)果計(jì)數(shù)檢查部件408的實(shí)際操作。
圖17示出了依照處理優(yōu)先級的處理序列。在這種情況下,處理優(yōu)先級計(jì)算部件406計(jì)算五個候選集的處理優(yōu)先級,并且優(yōu)先處理具有較高處理優(yōu)先級的兩個候選,從而加速處理。在這個實(shí)例中,如由處理優(yōu)先級計(jì)算部件406獲得的表1703中所示,第二候選1704和第五候選1705具有較高優(yōu)先級。
如圖17中所示,在根據(jù)計(jì)劃1702重復(fù)執(zhí)行處理優(yōu)先級計(jì)算部件406和處理執(zhí)行部件407,以及執(zhí)行最后一個操作符后,結(jié)果計(jì)數(shù)檢查部件408檢查結(jié)果的數(shù)目。結(jié)果計(jì)數(shù)檢查部件408檢查查詢處理的結(jié)果數(shù)目是否等于或小于用戶希望獲取的結(jié)果數(shù)目。如果查詢處理的結(jié)果數(shù)目等于或小于待獲取的結(jié)果數(shù)目,則從還未處理的操作符重新執(zhí)行該處理,由此重復(fù)處理,直到相應(yīng)地獲得待獲取的結(jié)果的期望數(shù)目。
在下面描述結(jié)構(gòu)化文檔處理裝置和結(jié)構(gòu)化文檔搜索裝置的實(shí)際實(shí)例。
在下述描述中,假設(shè)結(jié)構(gòu)化文檔處理裝置存儲了三個注冊文檔(第一文檔1802、第二文檔1803、以及第三文檔1804),并且結(jié)構(gòu)化文檔搜索裝置接收一個XQuery(查詢A 1801)作為查詢。
(結(jié)構(gòu)化文檔處理裝置的實(shí)際實(shí)例)
下面將說明一種情形,在該情形中,將注冊第一文檔1802。
首先執(zhí)行結(jié)構(gòu)信息提取單元107的處理。結(jié)構(gòu)化文檔解析部件301解析第一文檔1802的文檔結(jié)構(gòu),并且結(jié)構(gòu)模型樹對照部件302隨后參照結(jié)構(gòu)模型樹存儲單元120來對照結(jié)構(gòu)模型樹。結(jié)構(gòu)化文檔解析部件301將相應(yīng)TID的信息附加到解析后的目標(biāo)樹的各個節(jié)點(diǎn)上,并且將這些數(shù)據(jù)存儲在結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118中。在這種情況下,該系統(tǒng)發(fā)布文檔ID、元素ID等。在這個實(shí)例中,文檔ID=3。如果結(jié)構(gòu)模型樹存儲單元120已經(jīng)存儲了圖19中示出的結(jié)構(gòu)模型樹1901,當(dāng)結(jié)構(gòu)模型樹對照部件302以TID3為基本點(diǎn)重疊結(jié)構(gòu)信息時,它確定所有結(jié)構(gòu)彼此重疊。因此,在這個實(shí)例中,由于沒有增加該結(jié)構(gòu)模型樹的新節(jié)點(diǎn),所以結(jié)構(gòu)模型樹對照部件302不需要重新更新該結(jié)構(gòu)模型樹。
接著,開始統(tǒng)計(jì)信息計(jì)算單元108的處理。文本分割部件305分割每個節(jié)點(diǎn)的字符串,并且執(zhí)行索引。下面參照圖20來描述一種情形,在該情形中,<姓>中的字符串“田中”將被索引。
文本分割部件305將字符串分割為與目標(biāo)樹上的字符串對應(yīng)的部分的詞匯項(xiàng)。詞匯標(biāo)識符指定部件306獲得其中該詞匯項(xiàng)出現(xiàn)的文檔ID和元素ID、作為出現(xiàn)位置的位置信息、與該元素對應(yīng)的TID(自身TID),作為詞匯標(biāo)識符。相關(guān)詞匯項(xiàng)計(jì)算部件307計(jì)算相關(guān)GID。在下面描述中,假設(shè)最低出現(xiàn)頻率被預(yù)先設(shè)置為“4”。由于<姓>的字符串值只包括文本“田中”,作為<姓>的兄弟元素的“次郎”的出現(xiàn)頻率信息將會作為基本點(diǎn)被一起考慮。由于即使在這個級,具有最大出現(xiàn)頻率的詞匯項(xiàng)也不會達(dá)到作為最低出現(xiàn)頻率的“4”,所以搜索范圍被擴(kuò)展到父元素,并且將相同的處理也施加到<發(fā)明人>。通過重復(fù)該處理,依次計(jì)數(shù)如同/題目/名稱,/概要和關(guān)鍵字列表/關(guān)鍵字的元素中字符串的出現(xiàn)頻率。
在關(guān)鍵字列表/關(guān)鍵字時,如圖20的表2001中XML的項(xiàng)2002所示,由于詞匯項(xiàng)“XML”的出現(xiàn)頻率已經(jīng)達(dá)到“4”,所以將其設(shè)置為詞匯項(xiàng)“田中”的相關(guān)GID。相關(guān)TID被設(shè)置為TID15,其對應(yīng)于其中這個GID出現(xiàn)最頻繁的元素,即,這個實(shí)例中的<概要>標(biāo)簽。按照這個方式,統(tǒng)計(jì)信息計(jì)算單元108獲得圖20中的詞匯索引信息2003。同樣,圖20還示出了<概要>字符串中的“XML”的索引實(shí)例。在這種情況下,產(chǎn)生兩條詞匯索引信息,即,詞匯索引信息2006和詞匯索引信息2007。
由于直到該級才獲得所有條詞匯索引信息,所以它們被作為詞匯索引信息存儲在詞匯索引存儲單元119中。如果出現(xiàn)新詞匯項(xiàng),則產(chǎn)生新的置換索引列表。
圖21示出了當(dāng)?shù)谌臋n1804被注冊在同一序列中的“論文完全集”(TID18)下時的結(jié)構(gòu)信息。也就是,在結(jié)構(gòu)化文檔解析部件301解析第三文檔1804的文檔結(jié)構(gòu)后,結(jié)構(gòu)模型樹對照部件302參照結(jié)構(gòu)模型樹存儲單元120來對照結(jié)構(gòu)模型樹。結(jié)構(gòu)化文檔解析部件301將相應(yīng)TID的信息附加到解析后的目標(biāo)樹的各個節(jié)點(diǎn),并且將這些數(shù)據(jù)存儲在結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118中。如果結(jié)構(gòu)模型樹存儲單元120沒有將任何結(jié)構(gòu)模型樹存儲在圖21中的右側(cè)(TID19的<論文>下的結(jié)構(gòu)模型樹),由于考慮到產(chǎn)生了新結(jié)構(gòu)信息,所以結(jié)構(gòu)模型樹更新單元303重新更新該結(jié)構(gòu)模型樹,以包括<詳細(xì)信息>下的結(jié)構(gòu)。
(結(jié)構(gòu)化文檔搜索裝置的實(shí)際實(shí)例)在搜索中使用的查詢語言(查詢)是圖18中示出的查詢A。首先執(zhí)行查詢解析單元112的處理。查詢語言解析部件401解析該查詢并且產(chǎn)生查詢圖。在這個實(shí)例中,查詢語言解析部件401產(chǎn)生圖22中示出的查詢圖2201。
接著,結(jié)構(gòu)限制條件產(chǎn)生部件402計(jì)算結(jié)構(gòu)限制條件。由于限制//名稱/text()被附加到$x,所以在結(jié)構(gòu)模型樹中搜索匹配結(jié)構(gòu)信息。如同從圖19中示出的結(jié)構(gòu)模型樹1901中可以看出,兩個限制[TID6,TID7]和[TID12,TID13]對應(yīng)于上述限制。
相似結(jié)構(gòu)搜索部件403計(jì)算結(jié)構(gòu)評分值。首先注意力集中在作為輸出的返回子句上。參照圖18中示出的查詢A 1801。雖然“作者列表”是標(biāo)簽名稱,其不作為實(shí)際數(shù)據(jù)存在于數(shù)據(jù)庫中,但在該實(shí)例中,相似結(jié)構(gòu)搜索部件403搜索語義網(wǎng)絡(luò)存儲單元122,并且檢測到<作者列表>匹配<發(fā)明人>,具有相似度=0.8,如圖23中所示。也就是,將注意力集中在$x上,結(jié)構(gòu)/專利/發(fā)明人列表/發(fā)明人/名稱對于變?yōu)樯婕啊白髡吡斜怼钡慕Y(jié)構(gòu)具有高相關(guān)性。因此,當(dāng)在結(jié)構(gòu)模型樹中搜索相似于/專利/發(fā)明人列表/發(fā)明人/名稱的結(jié)構(gòu)時,由于TID13命中,所以選擇其作為相似結(jié)構(gòu),并且其相似度=0.8被用作TID13的結(jié)構(gòu)評分值的參考值。
先前獲得結(jié)構(gòu)限制條件[TID12,TID13]和[TID6,TID7]。由于早先條件的TID13匹配這種情況,所以先前獲得的相似度=0.8被設(shè)置為[TID12,TID13]的結(jié)構(gòu)評分值。由于[TID6,TID7]不能基于相似度來確定,所以在這種情況下,相似結(jié)構(gòu)搜索部件403設(shè)置低結(jié)構(gòu)評分值。在這種情況下,該結(jié)構(gòu)評分值被設(shè)置為0.5。即使在不匹配的情況下也不將結(jié)構(gòu)評分值設(shè)置為零的原因在于,處理優(yōu)先級當(dāng)前是通過如同“處理代價值×結(jié)構(gòu)評分值×詞匯評分值”的乘法來設(shè)置的。例如,為了允許比如詞匯評分值的值,設(shè)置非零值。結(jié)果,在這種情況下,TID13的結(jié)構(gòu)評分值被設(shè)置為0.8,并且TID7的結(jié)構(gòu)評分值被設(shè)置為0.5。
查詢處理代價估計(jì)部件404進(jìn)行處理代價值計(jì)算,并且計(jì)劃產(chǎn)生部件405產(chǎn)生優(yōu)化計(jì)劃。圖24示出了由計(jì)劃產(chǎn)生部件405產(chǎn)生的搜索計(jì)劃。在這個計(jì)劃中,操作符號為2401到2406的操作符處理按照所列出的順序執(zhí)行,該計(jì)劃的一系列操作符的流程如下。也就是,分別為$x(田中)和$y(一郎)執(zhí)行詞匯索引搜索操作符(2401,2402),并且通過相應(yīng)的上游擴(kuò)展操作符(2403,2404)來進(jìn)行結(jié)構(gòu)對照。在此之后,執(zhí)行用于合并各個結(jié)果的結(jié)果合并操作符(2405),并且執(zhí)行用于產(chǎn)生最后結(jié)果的結(jié)果產(chǎn)生操作符(2406)。由于查詢計(jì)劃產(chǎn)生單元113通過到目前為止所執(zhí)行的處理已經(jīng)產(chǎn)生了該計(jì)劃,所以查詢執(zhí)行單元114根據(jù)該計(jì)劃執(zhí)行實(shí)際處理(操作符)。
下面描述由處理執(zhí)行部件407執(zhí)行的各個操作符的處理。首先說明包括“田中”的詞匯索引搜索操作符。該詞匯索引搜索操作符執(zhí)行一個序列,用于使用比如“田中”等的詞匯項(xiàng)作為關(guān)鍵字,在置換索引列表中搜索匹配詞匯索引信息。在這種情況下,執(zhí)行以下處理,將預(yù)先作為結(jié)構(gòu)限制附加的TID信息與由查詢解析單元112從該結(jié)構(gòu)限制中獲得結(jié)構(gòu)限制信息進(jìn)行比較,并且排除其TID不匹配的候選集。
如上所述,基于由結(jié)構(gòu)限制條件產(chǎn)生部件402獲得的結(jié)構(gòu)限制條件,$x的限制是作為TID集的[TID6,TID7]和[TID12,TID13]。由于稍后進(jìn)行上游擴(kuò)展,所以需要的結(jié)構(gòu)限制是這兩對中的后一TID,并且在這種情況下,它們對應(yīng)于{TID7,TID13}。
在圖25中示出的實(shí)例中,由于第一候選2501不包括與從該查詢中獲得的結(jié)構(gòu)限制信息匹配的任何參數(shù),所以在這個階段將其從候選中排除(稱為過濾)。然而,對于第二候選2502,由于TID7匹配作為結(jié)構(gòu)限制條件,所以這個值保留為候選。將保留的另一候選僅是具有TID13的第三候選2503,作為詞匯索引信息。也就是,五條詞匯索引信息作為“田中”的詞匯索引呈現(xiàn)在該列表上,但是匹配該列表的{TID7,TID13}的第二候選和第三候選保留為候選。
在首先執(zhí)行的詞匯索引搜索操作符中,由于在根據(jù)圖15的流程圖的步驟S1503中確定為“否”,所以不需要考慮詞匯評分值。必須計(jì)算詞匯評分值的操作符是上游擴(kuò)展操作符、下游擴(kuò)展操作符等,并且當(dāng)已經(jīng)找到候選集且僅當(dāng)要選擇下一候選集時必須進(jìn)行這些計(jì)算。
$y的詞匯索引搜索操作與上述情況相同。當(dāng)執(zhí)行與上述$x的情況相同的計(jì)算時,在這種情況下的結(jié)構(gòu)限制是{TID26,TID37},其與圖21中的2102和2103對應(yīng)。在這種情況下,如圖26中所示,在置換索引列表中存在五個候選。由于所有候選滿足該結(jié)構(gòu)限制,所以它們保留為候選。
下面描述上游擴(kuò)展操作符的處理。由于存在候選集,所以上游擴(kuò)展操作符計(jì)算各個候選的詞匯評分值,并且隨后計(jì)算處理優(yōu)先級,由此優(yōu)選處理具有較高處理優(yōu)先級的預(yù)定數(shù)目的候選。
在圖25中,兩個候選即第二候選和第三候選保留,并且確定是否對這兩個候選施加上游擴(kuò)展。為了計(jì)算處理優(yōu)先級,參照已經(jīng)由相似結(jié)構(gòu)搜索部件403計(jì)算出的結(jié)構(gòu)評分值。在圖25的實(shí)例中,第二候選具有TID7,并且該候選的結(jié)構(gòu)評分值為0.5(缺省值)。第三候選具有TID13,并且該候選的結(jié)構(gòu)評分值為0.8。
出于描述簡便的原因,將首先說明圖24中示出的上游擴(kuò)展操作符2404的結(jié)構(gòu)評分值。在這種情況下,獲取{TID 26,TID37}作為結(jié)構(gòu)限制。然而,由于它們不匹配由相似結(jié)構(gòu)搜索部件403獲取的TID,所以缺省值=0.5被設(shè)置為結(jié)構(gòu)評分值。
隨后計(jì)算單獨(dú)處理代價值。作為計(jì)算處理代價值的方法,對于各個操作符可以使用各種計(jì)算方法。在這個實(shí)例中,考慮到上游擴(kuò)展的操作符作為第二操作符,為每個候選計(jì)算處理代價值。在這種情況下,不是通過將候選的TID與結(jié)構(gòu)模型樹上的TID進(jìn)行比較且實(shí)際地訪問結(jié)構(gòu)化文檔數(shù)據(jù)存儲單元118來對照結(jié)構(gòu)信息,而是可以通過與結(jié)構(gòu)模型樹存儲單元120中存儲的結(jié)構(gòu)模型樹進(jìn)行對照來粗略地估計(jì)所需要的處理時間。在結(jié)構(gòu)對照操作符的情況下,通過處理代價值=1/(將要經(jīng)歷結(jié)構(gòu)對照的級的數(shù)目)來估計(jì)該處理代價值。
在圖25中的候選集中,第一候選的結(jié)構(gòu)信息是TID7,并且其結(jié)構(gòu)限制是[TID6,TID7]。也就是,要執(zhí)行的結(jié)構(gòu)對照處理從TID7開始進(jìn)行上游擴(kuò)展并且匹配TID6。由于這些TID6和TID7的級的數(shù)目為1,所以在這種情況下的處理代價值為1/1=1。第二候選的處理代價值(結(jié)構(gòu)信息=TID13)也為1。
在圖24中的上游擴(kuò)展操作符2404的情況下,由于結(jié)構(gòu)限制為{TID26,TID37},所以在結(jié)構(gòu)模型樹上計(jì)算從該結(jié)構(gòu)模型樹上與它們對應(yīng)的節(jié)點(diǎn)開始直到達(dá)到{TID 25,TID35}的處理代價值。在這種情況下,如圖27所示,由于對于TID26需要1級,而對于TID35需要2級,所以TID26的處理代價值被計(jì)算為1/1=1,而TID35的處理代價值被計(jì)算為1/2=0.5。
接著,計(jì)算詞匯評分值。從圖15中,在執(zhí)行步驟S1504中的詞匯索引搜索操作符的合并處理的條件下,計(jì)算詞匯評分值。在圖24的實(shí)例中,由于結(jié)果合并操作符2405對應(yīng)于該處理,所以在該級中計(jì)算詞匯評分值。在這種情況下,使用在存儲時附加到索引的相關(guān)詞匯GID和相關(guān)TID。
圖28示出了執(zhí)行上游擴(kuò)展操作符時的候選集。如上所述,從圖24中的詞匯索引搜索操作符2401產(chǎn)生兩個候選,并且從詞匯索引搜索操作符2402產(chǎn)生五個候選,圖28示出了將在下面計(jì)算的詞匯索引信息、處理代價值、結(jié)構(gòu)評分值、詞匯評分值,以及基于這些候選的這些值一起來計(jì)算的處理優(yōu)先級。在到目前為止給出的描述中,已經(jīng)計(jì)算了處理代價值和結(jié)構(gòu)評分值,并且此時將計(jì)算詞匯評分值。
在這種情況下,對照兩個列表是否包括具有公共<相關(guān)GID、相關(guān)TID>的候選。如果找到有公共<相關(guān)GID、相關(guān)TID>的候選,則將其詞匯評分值設(shè)置為高;否則,將詞匯評分值設(shè)置為低。在這種情況下,通過使用語義網(wǎng)絡(luò)來執(zhí)行相關(guān)GID、相關(guān)TID等的N-級擴(kuò)展(下文稱為同義詞擴(kuò)展),可以非嚴(yán)格地同時許可模糊度地進(jìn)行搜索。在這種情況下,可以執(zhí)行總共1-級擴(kuò)展(N=1)。
根據(jù)下述規(guī)則來設(shè)置詞匯評分值A(chǔ).如果相關(guān)GID和相關(guān)TID都匹配,則詞匯評分值被設(shè)置為1;B.如果相關(guān)GID和相關(guān)TID都不匹配,則詞匯評分值被設(shè)置為0.5;C.如果僅僅相關(guān)GID匹配而相關(guān)TID不同,則詞匯評分值被設(shè)置為0.6;D.如果相關(guān)GID和相關(guān)TID匹配通過同義詞擴(kuò)展而擴(kuò)展的值,則其相似度被設(shè)置為詞匯評分值。然而,在這種情況下,如果相似度小于C的詞匯評分值=0.6,則該詞匯評分值的下限值為0.5。
在下面將圖28中的第四候選2602作為詞匯評分值的計(jì)算實(shí)例進(jìn)行考查。在這種情況下,相關(guān)GID=2,而相關(guān)TID=29。在$x的候選集中沒有候選完全地匹配相關(guān)GID=2和相關(guān)TID=29。參照圖29,這種相關(guān)TID對應(yīng)于標(biāo)簽名稱“概要”。參照圖21中的語義網(wǎng)絡(luò),“提要”匹配“概要”,具有相似度=0.8。因此,同義詞擴(kuò)展產(chǎn)生0.8,其被設(shè)置為詞匯評分值。
將會考查第五候選2603的情形。在這種情形下,相關(guān)GID=2,且相關(guān)TID=12。對于相關(guān)TID,即使當(dāng)利用僅僅一級來擴(kuò)展語義網(wǎng)絡(luò)時,也沒有相關(guān)TID匹配,并且同義詞擴(kuò)展沒有確定詞匯評分值。由于只有相關(guān)GID匹配,所以在這種情況下,給出詞匯評分值=0.6。
設(shè)置詞匯評分值的上述方法僅僅需要根據(jù)詞匯評分值來區(qū)別這些候選,并且可以得到詞匯評分值的各種設(shè)置方法。
按照這種方式,處理優(yōu)先級計(jì)算部件406為各個候選設(shè)置詞匯評分值,同時比較兩個候選集的列表中的相關(guān)GID和相關(guān)TID。在獲得處理代價值、結(jié)構(gòu)評分值和詞匯評分值后,處理優(yōu)先級計(jì)算部件406通過將這些值相乘來計(jì)算最終處理優(yōu)先級。圖28還示出了處理優(yōu)先級。處理優(yōu)先級計(jì)算部件406從候選集中為$x選擇第一候選和第二候選,以及為$y選擇第四候選和第六候選。處理執(zhí)行部件407首先處理所選擇的這些候選。
在計(jì)算處理優(yōu)先級后,僅對所選擇的候選施加實(shí)際上游擴(kuò)展處理。在這種情況下,由于用于$x的候選集中的第一候選和第二候選以及用于$y的第四和第六候選具有較高的處理優(yōu)先級,所以首先對這些候選執(zhí)行結(jié)構(gòu)對照處理。最后,結(jié)果合并操作符執(zhí)行候選集{第一候選,第二候選}和候選集{第四候選,第六候選}的合并處理。由于通過到目前為止執(zhí)行的處理排除了預(yù)期具有較低評分值的候選,所以相較于現(xiàn)有技術(shù),可以降低合并處理代價。
在下面將會參照圖30來描述由操作符的執(zhí)行處理獲得的搜索結(jié)果的實(shí)例。在圖30的實(shí)例中,顯示了三個搜索結(jié)果3001。按照這種方式,即使當(dāng)在<返回>子句中描述多個變量以產(chǎn)生復(fù)合文檔時,也可以進(jìn)行合適的評分。另外,推遲具有低評分值和高處理代價的候選的處理,由此維持高速處理。
上述實(shí)施例的流程圖說明了根據(jù)本發(fā)明實(shí)施例的方法和系統(tǒng)。應(yīng)該理解的是,可以利用計(jì)算機(jī)程序指令來實(shí)現(xiàn)流程示的每個塊,以及流程示中的塊的組合。這些計(jì)算機(jī)程序指令可以被加載到計(jì)算機(jī)或其他可編程裝置上,以生產(chǎn)出一個裝置,使得在該計(jì)算機(jī)或其他可編程裝置上執(zhí)行的這些指令創(chuàng)建用于實(shí)現(xiàn)在流程圖塊或多個塊中指定的功能的模塊。這些計(jì)算機(jī)程序指令還可以存儲在計(jì)算機(jī)可讀存儲器中,控制計(jì)算機(jī)或其他可編程裝置按照特定方式實(shí)現(xiàn)功能,使得在該計(jì)算機(jī)可讀存儲器中存儲的指令產(chǎn)生包括用于實(shí)現(xiàn)在流程圖塊或多個塊中指定的功能的指令模塊的產(chǎn)品。這些計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)或其他可編程裝置上,使得在該計(jì)算機(jī)或其他可編程裝置上執(zhí)行以產(chǎn)生計(jì)算機(jī)可編程裝置的一系列操作步驟,提供用于實(shí)現(xiàn)在流程圖塊或多個塊中指定的功能的步驟。
對于本領(lǐng)域的技術(shù)人員而言,其他的優(yōu)點(diǎn)和修改是容易想到的。因此,本發(fā)明在其更廣的方面上并不限于這里示出和描述的具體細(xì)節(jié)和代表性實(shí)施例。因此,可以在不背離由所附權(quán)利要求和其等價物限定的總的創(chuàng)造性概念的精神或范圍的情況下,進(jìn)行各種修改。
權(quán)利要求
1.一種結(jié)構(gòu)化文檔處理裝置,包括獲取單元,用于獲取結(jié)構(gòu)化文檔;存儲單元,用于存儲結(jié)構(gòu)模型樹,該結(jié)構(gòu)模型樹表示所述獲取的結(jié)構(gòu)化文檔的典型結(jié)構(gòu);解析單元,用于解析所述獲取的結(jié)構(gòu)化文檔;更新單元,用于更新所述結(jié)構(gòu)模型樹,以使之與所述解析后的結(jié)構(gòu)化文檔的結(jié)構(gòu)匹配;分割單元,用于將所述獲取的結(jié)構(gòu)化文檔分割為多個詞匯項(xiàng);以及計(jì)算單元,用于計(jì)算所述獲取的結(jié)構(gòu)化文檔中所述多個詞匯項(xiàng)的每一個的出現(xiàn)頻率信息。
2.如權(quán)利要求1所述的裝置,還包括提取單元,用于基于所述解析后的結(jié)構(gòu)化文檔來提取所述獲取的結(jié)構(gòu)化文檔的結(jié)構(gòu);以及存儲單元,用于將所述提取的結(jié)構(gòu)存儲在結(jié)構(gòu)模型樹存儲單元中,作為結(jié)構(gòu)模型樹。
3.如權(quán)利要求1所述的裝置,還包括擴(kuò)展單元,用于擴(kuò)展包括所述多個詞匯項(xiàng)的一個的范圍,直到在所述范圍內(nèi)存在具有不小于某一個出現(xiàn)頻率的詞匯項(xiàng);以及分配單元,用于分配在所述擴(kuò)展后的范圍內(nèi)具有最高出現(xiàn)頻率的詞匯項(xiàng)的詞匯標(biāo)識符,作為所述多個詞匯項(xiàng)的一個的相關(guān)詞匯標(biāo)識符。
4.如權(quán)利要求3所述的裝置,其中,所述擴(kuò)展單元以所述多個詞匯項(xiàng)的一個的位置為基本點(diǎn),按照屬性、子元素、兄弟元素和父元素的順序來擴(kuò)展所述范圍。
5.如權(quán)利要求3所述的裝置,還包括存儲單元,用于存儲所述多個詞匯項(xiàng)的各個相關(guān)詞匯標(biāo)識符;分配單元,用于將結(jié)構(gòu)模型樹標(biāo)識符分配給所述結(jié)構(gòu)模型樹的節(jié)點(diǎn);分配單元,用于分配其中所述多個詞匯項(xiàng)的一個的相關(guān)詞匯標(biāo)識符出現(xiàn)最頻繁的節(jié)點(diǎn)的結(jié)構(gòu)模型樹標(biāo)識符,作為所述多個詞匯項(xiàng)的一個的相關(guān)結(jié)構(gòu)模型樹標(biāo)識符;以及存儲單元,用于存儲所述多個詞匯項(xiàng)的各個相關(guān)結(jié)構(gòu)模型樹標(biāo)識符。
6.一種結(jié)構(gòu)化文檔搜索裝置,包括連接單元,其連接到結(jié)構(gòu)化文檔處理裝置,該結(jié)構(gòu)化文檔處理裝置存儲了表示結(jié)構(gòu)化文檔的典型結(jié)構(gòu)的結(jié)構(gòu)模型樹以及所述結(jié)構(gòu)化文檔中包括的多個詞匯項(xiàng)的出現(xiàn)頻率信息;接收單元,用于接收查詢數(shù)據(jù),該查詢數(shù)據(jù)是用查詢語言描述的并且該查詢數(shù)據(jù)是產(chǎn)生由多個結(jié)構(gòu)化文檔的部分結(jié)構(gòu)組成的新復(fù)合文檔所需要的;解析單元,用于解析包括元素的所述查詢數(shù)據(jù);查詢圖產(chǎn)生單元,用于基于所述解析后的查詢數(shù)據(jù)來產(chǎn)生表示所述元素間關(guān)系的查詢圖;選擇單元,用于基于所述查詢圖,從所述結(jié)構(gòu)化文檔處理裝置中選擇與所述結(jié)構(gòu)模型樹相似的相似結(jié)構(gòu);存儲單元,用于存儲表示所述多個詞匯項(xiàng)之間相似水平的相似度;計(jì)算單元,用于基于所述相似度來計(jì)算表示所述選擇的相似結(jié)構(gòu)的相似程度的結(jié)構(gòu)評分值;代價計(jì)算單元,用于基于所述出現(xiàn)頻率信息計(jì)算用于選擇表示所述元素的處理順序的多個計(jì)劃的多個處理代價;選擇單元,用于從所述多個計(jì)劃中選擇具有所述計(jì)算出的多個處理代價中的最低處理代價的計(jì)劃;優(yōu)先級計(jì)算單元,用于基于所述最低處理代價和所述結(jié)構(gòu)評分值,計(jì)算用于構(gòu)成所述計(jì)劃的多個處理的處理優(yōu)先級;處理執(zhí)行單元,用于按照所述處理優(yōu)先級的降序來執(zhí)行所述處理;以及結(jié)果獲取單元,用于獲取執(zhí)行所述多個處理的執(zhí)行結(jié)果,作為搜索結(jié)果。
7.如權(quán)利要求6所述的裝置,其中,所述解析單元產(chǎn)生所述查詢數(shù)據(jù)的結(jié)構(gòu)信息,并且所述選擇單元基于所述結(jié)構(gòu)信息,從所述結(jié)構(gòu)化文檔處理裝置中選擇與所述結(jié)構(gòu)模型樹相似的所述相似結(jié)構(gòu)。
8.如權(quán)利要求6所述的裝置,其中,所述優(yōu)先級計(jì)算單元基于所述結(jié)構(gòu)評分值和作為處理代價值的乘積的數(shù)字值,計(jì)算構(gòu)成所述計(jì)劃的所述處理的處理優(yōu)先級,所述處理代價值對應(yīng)于所述處理代價的大小的反比值。
9.如權(quán)利要求6所述的裝置,其中,所述結(jié)構(gòu)化文檔處理裝置還存儲所述多個詞匯項(xiàng)的各個相關(guān)詞匯標(biāo)識符,將結(jié)構(gòu)模型樹標(biāo)識符分配給結(jié)構(gòu)模型樹的多個節(jié)點(diǎn),并且分配其中所述多個詞匯項(xiàng)的一個的所述相關(guān)詞匯標(biāo)識符之一出現(xiàn)最頻繁的節(jié)點(diǎn)的結(jié)構(gòu)模型樹標(biāo)識符,作為所述多個詞匯項(xiàng)的一個的相關(guān)結(jié)構(gòu)模型樹標(biāo)識符,所述結(jié)構(gòu)化文檔搜索裝置還包括詞匯評分值分配單元,用于基于所述相關(guān)詞匯標(biāo)識符和所述相關(guān)結(jié)構(gòu)模型樹標(biāo)識符,將所述多個詞匯項(xiàng)之間的相對值分配給所述多個詞匯項(xiàng)的每一個,作為詞匯評分值,所述值隨著與具有相同相關(guān)結(jié)構(gòu)模型樹標(biāo)識符的詞匯項(xiàng)匹配的具有相同相關(guān)詞匯標(biāo)識符的詞匯項(xiàng)的數(shù)目的增加而增加,以及其中,當(dāng)所述查詢語言進(jìn)行包括多個關(guān)鍵字的搜索處理時,以及當(dāng)在所述搜索處理中執(zhí)行索引信息的合并處理時,所述優(yōu)先級計(jì)算單元基于所述詞匯評分值、所述最低處理代價以及所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的所述處理的處理優(yōu)先級。
10.一種結(jié)構(gòu)化文檔系統(tǒng),包括結(jié)構(gòu)化文檔處理裝置,包括獲取單元,用于獲取結(jié)構(gòu)化文檔;存儲單元,用于存儲結(jié)構(gòu)模型樹,該結(jié)構(gòu)模型樹表示所述獲取的結(jié)構(gòu)化文檔的典型結(jié)構(gòu);解析單元,用于解析所述獲取的結(jié)構(gòu)化文檔;更新單元,用于更新所述結(jié)構(gòu)模型樹,以使之與所述解析后的結(jié)構(gòu)化文檔的結(jié)構(gòu)匹配;分割單元,用于將所述獲取的結(jié)構(gòu)化文檔分割為多個詞匯項(xiàng);以及計(jì)算單元,用于計(jì)算所述獲取的結(jié)構(gòu)化文檔中所述多個詞匯項(xiàng)的每一個的出現(xiàn)頻率信息;結(jié)構(gòu)化文檔搜索裝置,包括接收單元,用于接收查詢數(shù)據(jù),該查詢數(shù)據(jù)是用查詢語言來描述的并且該查詢數(shù)據(jù)是產(chǎn)生由多個結(jié)構(gòu)化文檔的部分結(jié)構(gòu)組成的新復(fù)合文檔所需要的;解析單元,用于解析包括元素的所述查詢數(shù)據(jù);查詢圖產(chǎn)生單元,用于基于所述解析后的查詢數(shù)據(jù)來產(chǎn)生表示所述元素間關(guān)系的查詢圖;選擇單元,用于基于所述查詢圖,從所述結(jié)構(gòu)化文檔處理裝置中選擇與所述結(jié)構(gòu)模型樹相似的相似結(jié)構(gòu);存儲單元,用于存儲表示所述多個詞匯項(xiàng)之間的相似水平的相似度;計(jì)算單元,用于基于所述相似度來計(jì)算表示所述選擇的相似結(jié)構(gòu)的相似程度的結(jié)構(gòu)評分值;代價計(jì)算單元,用于基于所述出現(xiàn)頻率信息來計(jì)算用于選擇表示所述元素的處理順序的多個計(jì)劃的多個處理代價;選擇單元,用于從所述多個計(jì)劃中選擇具有所述計(jì)算出的多個處理代價中的最低處理代價的計(jì)劃;優(yōu)先級計(jì)算單元,用于基于所述最低處理代價和所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的多個處理的處理優(yōu)先級;處理執(zhí)行單元,用于按照所述處理優(yōu)先級的降序來執(zhí)行所述處理;以及結(jié)果獲取單元,用于獲取執(zhí)行所述多個處理的執(zhí)行結(jié)果,作為搜索結(jié)果。
11.如權(quán)利要求10所述的系統(tǒng),其中,所述結(jié)構(gòu)化文檔處理裝置還包括擴(kuò)展單元,用于擴(kuò)展包括所述多個詞匯項(xiàng)的一個的范圍,直到在所述范圍內(nèi)存在具有不小于某一個出現(xiàn)頻率的詞匯項(xiàng);以及分配單元,用于分配在所述擴(kuò)展后的范圍內(nèi)具有最高出現(xiàn)頻率的詞匯項(xiàng)的詞匯標(biāo)識符,作為所述多個詞匯項(xiàng)的一個的相關(guān)詞匯標(biāo)識符。
12.如權(quán)利要求11所述的系統(tǒng),其中,所述結(jié)構(gòu)化文檔處理裝置還包括存儲單元,用于存儲所述多個詞匯項(xiàng)的各個相關(guān)詞匯標(biāo)識符;分配單元,用于將結(jié)構(gòu)模型樹標(biāo)識符分配給所述結(jié)構(gòu)模型樹的節(jié)點(diǎn);分配單元,用于分配其中所述多個詞匯項(xiàng)的一個的相關(guān)詞匯標(biāo)識符出現(xiàn)最頻繁的節(jié)點(diǎn)的結(jié)構(gòu)模型樹標(biāo)識符,作為所述多個詞匯項(xiàng)的一個的相關(guān)結(jié)構(gòu)模型樹標(biāo)識符;以及存儲單元,用于存儲所述多個詞匯項(xiàng)的各個相關(guān)結(jié)構(gòu)模型樹標(biāo)識符。
13.如權(quán)利要求11所述的系統(tǒng),其中,所述結(jié)構(gòu)化文檔搜索裝置還包括詞匯評分值分配單元,用于基于所述相關(guān)詞匯標(biāo)識符和所述相關(guān)結(jié)構(gòu)模型樹標(biāo)識符,將所述多個詞匯項(xiàng)之間的相對值分配給所述多個詞匯項(xiàng)的每一個,作為詞匯評分值,所述值隨著與具有相同相關(guān)結(jié)構(gòu)模型樹標(biāo)識符的詞匯項(xiàng)匹配的具有相同相關(guān)詞匯標(biāo)識符的詞匯項(xiàng)的數(shù)目的增加而增加,以及其中,當(dāng)所述查詢語言進(jìn)行包括多個關(guān)鍵字的搜索處理時,以及當(dāng)在所述搜索處理中執(zhí)行索引信息的合并處理時,所述優(yōu)先級計(jì)算單元基于所述詞匯評分值、所述最低處理代價以及所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的所述處理的處理優(yōu)先級。
14.一種結(jié)構(gòu)化文檔方法,包括獲取結(jié)構(gòu)化文檔;提供存儲了結(jié)構(gòu)模型樹的存儲單元,該結(jié)構(gòu)模型樹表示所述獲取的結(jié)構(gòu)化文檔的典型結(jié)構(gòu);解析所述獲取的結(jié)構(gòu)化文檔;更新所述結(jié)構(gòu)模型樹,以使之與所述解析后的結(jié)構(gòu)化文檔的結(jié)構(gòu)匹配;將所述獲取的結(jié)構(gòu)化文檔分割為多個詞匯項(xiàng);計(jì)算所述獲取的結(jié)構(gòu)化文檔中所述多個詞匯項(xiàng)的每一個的出現(xiàn)頻率信息;接收查詢數(shù)據(jù),該查詢數(shù)據(jù)是用查詢語言描述的并且該查詢數(shù)據(jù)是產(chǎn)生由多個結(jié)構(gòu)化文檔的部分結(jié)構(gòu)組成的新復(fù)合文檔所需要的;解析包括元素的所述查詢數(shù)據(jù);基于所述解析后的查詢數(shù)據(jù),產(chǎn)生表示所述元素間關(guān)系的查詢圖;基于所述查詢圖,從所述存儲單元中選擇與所述結(jié)構(gòu)模型樹相似的相似結(jié)構(gòu);提供存儲了相似度的存儲單元,所述相似度表示所述多個詞匯項(xiàng)之間的相似水平;基于所述相似度來計(jì)算表示與所述請求的結(jié)構(gòu)相似的所述選擇的相似結(jié)構(gòu)的相似程度的結(jié)構(gòu)評分值;基于所述出現(xiàn)頻率信息來計(jì)算用于選擇表示所述元素的處理順序的多個計(jì)劃的多個處理代價;從所述多個計(jì)劃中選擇具有所述計(jì)算出的多個處理代價中的最低處理代價的計(jì)劃;基于所述最低處理代價和所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的多個處理的處理優(yōu)先級;按照所述處理優(yōu)先級的降序來執(zhí)行所述處理;以及獲取執(zhí)行所述多個處理的執(zhí)行結(jié)果,作為搜索結(jié)果。
15.如權(quán)利要求14所述的方法,還包括擴(kuò)展包括所述多個詞匯項(xiàng)的一個的范圍,直到在所述范圍內(nèi)存在具有不小于某一個出現(xiàn)頻率的詞匯項(xiàng);以及分配在所述擴(kuò)展后的范圍內(nèi)具有最高出現(xiàn)頻率的詞匯項(xiàng)的詞匯標(biāo)識符,作為所述多個詞匯項(xiàng)的一個的相關(guān)詞匯標(biāo)識符。
16.如權(quán)利要求15所述的方法,還包括提供用于存儲所述多個詞匯項(xiàng)的各個相關(guān)詞匯標(biāo)識符的存儲單元;將結(jié)構(gòu)模型樹標(biāo)識符分配給所述結(jié)構(gòu)模型樹的節(jié)點(diǎn);分配其中所述多個詞匯項(xiàng)的一個的相關(guān)詞匯標(biāo)識符出現(xiàn)最頻繁的節(jié)點(diǎn)的結(jié)構(gòu)模型樹標(biāo)識符,作為所述多個詞匯項(xiàng)的一個的相關(guān)結(jié)構(gòu)模型樹標(biāo)識符;以及提供用于存儲所述多個詞匯項(xiàng)的各個相關(guān)結(jié)構(gòu)模型樹標(biāo)識符的存儲單元。
17.如權(quán)利要求15所述的方法,還包括基于所述相關(guān)詞匯標(biāo)識符和所述相關(guān)結(jié)構(gòu)模型樹標(biāo)識符,將所述多個詞匯項(xiàng)之間的相對值分配給所述多個詞匯項(xiàng)的每一個,作為詞匯評分值,所述值隨著與具有相同相關(guān)結(jié)構(gòu)模型樹標(biāo)識符的詞匯項(xiàng)匹配的具有相同相關(guān)詞匯標(biāo)識符的詞匯項(xiàng)的數(shù)目的增加而增加,以及其中,當(dāng)所述查詢語言進(jìn)行包括多個關(guān)鍵字的搜索處理時,以及當(dāng)在所述搜索處理中執(zhí)行索引信息的合并處理時,所述處理優(yōu)先級的計(jì)算包括基于所述詞匯評分值、所述最低處理代價以及所述結(jié)構(gòu)評分值,計(jì)算構(gòu)成所述計(jì)劃的所述處理的處理優(yōu)先級。
全文摘要
一種結(jié)構(gòu)化文檔處理裝置,包括獲取單元,用于獲取結(jié)構(gòu)化文檔;存儲單元,用于存儲結(jié)構(gòu)模型樹,該結(jié)構(gòu)模型樹表示所述獲取的結(jié)構(gòu)化文檔的典型結(jié)構(gòu);解析單元,用于解析所述獲取的結(jié)構(gòu)化文檔;更新單元,用于更新所述結(jié)構(gòu)模型樹,使之與所述解析后的結(jié)構(gòu)化文檔匹配;分割單元,用于將所述獲取的結(jié)構(gòu)化文檔分為多個詞匯項(xiàng);以及計(jì)算單元,用于計(jì)算出現(xiàn)頻率信息,該出現(xiàn)頻率信息表示在所述獲取的結(jié)構(gòu)化文檔中每個所述詞匯項(xiàng)的位置。
文檔編號G06F17/30GK1904896SQ20061010806
公開日2007年1月31日 申請日期2006年7月27日 優(yōu)先權(quán)日2005年7月28日
發(fā)明者金輪拓也 申請人:株式會社東芝