欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于檢索結構化文件的系統(tǒng)和方法

文檔序號:6546055閱讀:179來源:國知局
專利名稱:用于檢索結構化文件的系統(tǒng)和方法
技術領域
本發(fā)明涉及用于檢索如XML(Extensible Markup Language)文件那樣包含有分層化(階層化)的多個節(jié)點的結構化文件(structured document)的系統(tǒng)和方法,特別涉及從存儲了結構化文件的結構化文件數據庫中,獲取與結構化文件內的目標節(jié)點有關的數據的結構化文件檢索系統(tǒng)、結構化文件檢索方法及程序。
背景技術
一般地,將具有邏輯結構(logical structure)的文件稱為結構化文件。在結構化文件中,該文件的邏輯結構通過在該文件中記述的標簽來表示。這種使用標簽來表現邏輯結構的結構化文件適合在計算機中進行處理。而且,作為使用標簽來記述數據的方式,XML(Extensible Markup Language)被廣泛利用。XML具有可通過附帶有意義的標簽來進行數據的分層化并且結構的自由擴展性強的特長。這種用XML記述的文件被稱為XML文件(XMLdocument)。XML文件作為使用標簽邏輯性地以樹結構表現的結構化文件的代表而眾所周知。XML文件由構成樹結構的、分層化的多個節(jié)點構成。該各節(jié)點是構成XML文件的各元素(element)。
利用XML的特長存儲XML文件,并且可對該文件中的任意的邏輯結構(文件結構)進行檢索的數據庫,被稱為XML數據庫(XMLDB)。XML數據庫可通過XPath或Xquery進行檢索。XPath或Xquery是用于檢索一個或多個XML文件中的任意元素(節(jié)點)的、由萬維網聯(lián)合體(World Wide WebConsortium(W3C))制定的查詢語言。
例如,XPath用于通過由來自根節(jié)點的絕對路徑(absolute location pass)指定XML文件中的目標節(jié)點的位置,從而進行該節(jié)點的檢索。將這種使用XPath的檢索稱為XPath檢索。應用程序(應用程序)通過用指定目標節(jié)點的絕對路徑的記述進行XPath檢索,從而可以從該檢索結果中獲取有關目標節(jié)點的數據(XML數據)。在XPath檢索中,還可以檢索對象的節(jié)點以下的所有的子孫節(jié)點作為對象進行檢索。例如,可進行所謂“在檢索對象的節(jié)點以下中,標簽名為‘book’的所有節(jié)點”的指定。這種檢索是對所有子孫節(jié)點的模式匹配(一種全文檢索),所以不必記述各個子孫節(jié)點的絕對路徑。將這種檢索稱為XPath的子孫節(jié)點檢索。
在(日本)特開2001-167087號公報(第0020至0026段)中,公開了一種采用以樹結構來表示兄弟關系的查詢樹的技術,用于對具有復雜結構的文件進行檢索,特別是可對包含有結構化文件中的兄弟關系的結構的檢索。即,這種技術是以樹結構來表現查詢本身的一種XPath擴展技術。
當應用程序需要存儲在XML數據庫中的一部分XML文件時,大多使用XML文件中的數據進行分類、篩選之類的預處理。這種情況下,應用程序不僅獲取與原來需要的部分對應的數據,而且還獲取屬于包含用于預處理部分的范圍內的數據,從而需要對該獲取的數據進行處理。
但是,一般難以用XPath僅指定還包含有用于預處理部分的最低必要限度的數據。這里,假定有要“以‘price’(書的價格)的順序來獲取‘last name’(姓)為‘Stevens’(史蒂文斯)的‘book’(書)的‘author’(作者)的‘firstname’(名)”為條件的檢索請求。另,在作為檢索對象的XML數據庫中,存儲有三個XML文件,設其樹結構與后述的本發(fā)明的實施方式中所參照的圖7所示的三個XML文件111、112及113相同。由此,若需要可參照圖7。首先,三個XML文件各自的父節(jié)點(最高節(jié)點)分別是‘book’。在該例子中,檢索請求(檢索條件)復雜,不能用XPath僅指定還包含有用于預處理的部分的最低必要限度的數據。
因此,要執(zhí)行上述檢索請求,需要以三個XML文件中公共的父節(jié)點——“book”作為檢索對象節(jié)點進行XPath的子孫節(jié)點檢索,以從該“book”以下的所有子孫節(jié)點中獲取數據。但是,在XPath的子孫節(jié)點檢索中,如上所述,數據獲取的對象范圍變大,獲取數據需要很多時間。而且,在XPath的子孫節(jié)點檢索中,即使獲取檢索結果也不知道中途的路徑,不清楚命中(hit)了XML文件中的哪個部分。
此外,作為通過檢索確定了節(jié)點后的應用程序側的處理,基于“被檢索的節(jié)點的下一層數據”等的、來自被檢索節(jié)點的相對位置關系的數據獲取請求也很多??墒牵赬Path的子孫節(jié)點檢索中,由于不知道被檢索的節(jié)點周邊的路徑,無法繼續(xù)進行檢索。
另一方面,在上述特開2001-167087號公報(第0020至0026段)中記載的采用查詢樹(XPath擴展技術)的檢索技術,與普通的XPath檢索不同,可對具有兄弟關系的節(jié)點進行檢索。但是,在采用查詢樹的檢索技術中,不能對不同分層的節(jié)點等具有比兄弟關系更復雜的關系的節(jié)點進行檢索。因此,即使在采用查詢樹的檢索技術中,要獲取還包含有用于上述預處理部分的數據時,還需要采用XPath的子孫節(jié)點檢索,由此產生獲取數據的對象范圍變大的問題。

發(fā)明內容
本發(fā)明的目的在于提供一種結構化文件檢索系統(tǒng)、結構化文件檢索方法和程序,以結構化文件數據庫內的任意的節(jié)點為基點,通過自由地追溯(辿る)該基點的父、子、兄、或弟的節(jié)點,從而可以從該數據庫獲取作為目標的節(jié)點的數據。
根據本發(fā)明的一個方案,提供的結構化文件檢索系統(tǒng)包括通過包含有分層化(階層化)的多個節(jié)點的樹結構對結構化文件進行管理的結構化文件數據庫;接收來自用戶機的遍歷請求(トラバ一ス要求)的部件,所述遍歷請求包括將所述結構化文件數據庫內的多個節(jié)點中的一個指定為作為檢索基點的基節(jié)點的基節(jié)點指定信息,及指定相對于所述基節(jié)點的遍歷目標節(jié)點(トラバ一ス先ノ一ド)的相對位置關系的相對位置信息;以及遍歷處理部件,從由所述接收的遍歷請求中包含的基節(jié)點指定信息指定作為基節(jié)點的所述結構化文件數據庫內的多個節(jié)點中的一個,根據所述接收的遍歷請求中包含的所述相對位置信息,執(zhí)行追溯所述結構化文件數據庫內的多個節(jié)點中的其他節(jié)點的遍歷處理,從所述結構化文件數據庫獲取與所述遍歷目標節(jié)點對應的數據。
在隨后的描述中將指出本發(fā)明的附加優(yōu)點,并且其一部分將根據其說明而容易地獲得或通過實施本發(fā)明而了解。借助于下面所特別指出的手段或其組合可實現和獲得本發(fā)明的優(yōu)點。


包含于說明書中且構成說明書一部分的附圖用于展示本發(fā)明的實施方式,并且,結合上述概括說明和下面對實施方式的詳細描述,附圖將解釋本發(fā)明的原理。
圖1為本發(fā)明一實施方式的具有遍歷功能的結構化文件檢索系統(tǒng)的結構框圖。
圖2為示意性地表示圖1的結構化文件檢索系統(tǒng)中設置的XMLDB的數據結構的圖。
圖3為表示在圖1的結構化文件檢索系統(tǒng)中設置的XMLDB中存儲了一個XML文件時的該XMLDB的數據結構例的圖。
圖4為表示在圖1的結構化文件檢索系統(tǒng)中設置的XMLDB中依次存儲了三個XML文件時的該XMLDB的數據結構例的圖。
圖5表示圖1的結構化文件檢索系統(tǒng)中的包含遍歷處理的檢索處理步驟的流程圖。
圖6表示結構化文件檢索用戶機和圖1的結構化文件檢索系統(tǒng)之間的通信處理的序列(シ一ケンス)的圖。
圖7為說明圖1的結構化文件檢索系統(tǒng)中的遍歷處理操作的圖。
具體實施例方式
以下,參照附圖來說明本發(fā)明的一實施方式。
圖1是表示本發(fā)明一實施方式的具有遍歷功能的結構化文件檢索系統(tǒng)10的結構框圖。該結構化文件檢索系統(tǒng)10通過局域網絡(LAN)等的網絡21而與結構化文件檢索用戶機20連接。在結構化文件檢索用戶機(結構化文件檢索用戶機終端)20上,利用結構化文件檢索系統(tǒng)10的應用程序在運行。結構化文件檢索系統(tǒng)10由XML數據庫(XMLDB)11、請求處理部12、檢索處理部13、遍歷處理部14以及應用程序接口(API)15構成。
XMLDB11是存儲作為結構化文件的XML文件的數據庫。XML文件包含被分層化的多個節(jié)點(元素)。XMLDB11通過包含有分層化的多個節(jié)點的樹結構對XML文件進行管理。請求處理部12接收來自結構化文件檢索用戶機20的檢索請求。檢索處理部13在通過請求處理部12接收的檢索請求是包含有將通向作為檢索對象的節(jié)點的路徑作為檢索條件的XPath檢索請求(即指定路徑檢索請求)的情況下,根據XPath,進行以XMLDB11為對象的檢索處理。
遍歷處理部14在通過請求處理部12接收的檢索請求是遍歷請求的情況下,以XMLDB11內任意節(jié)點為基點來進行追溯其父、子或兄弟節(jié)點的處理。該處理稱之為遍歷處理。遍歷請求包含將XMLDB11內的多個節(jié)點中的一個指定為作為檢索基點的基節(jié)點的基節(jié)點指定信息、以及指定遍歷目標節(jié)點相對于所述基節(jié)點的相對位置關系的相對位置信息。作為相對位置信息,使用表示相對于基節(jié)點的相對位置關系的方向信息。遍歷請求通過使用方向信息,將相對于基節(jié)點的父節(jié)點、子節(jié)點、兄節(jié)點、弟節(jié)點中的任一節(jié)點指定為檢索對象的遍歷目標節(jié)點。
API15形成在結構化文件檢索用戶機20上運行的應用程序和結構化文件檢索系統(tǒng)10的接口。在結構化文件檢索用戶機20不通過網絡而與結構化文件檢索系統(tǒng)10直接連接的情況下,在結構化文件檢索用戶機20中設置API15也無妨。
請求處理部12、檢索處理部13、遍歷處理部14及API15通過計算機、例如安裝在數據庫服務器計算機中的特定的軟件程序(例如結構化文件數據庫管理程序)來實現。通過該計算機(內部的CPU)讀取執(zhí)行該軟件程序,由計算機執(zhí)行分別對應于請求處理部12、檢索處理部13、遍歷處理部14及API15的處理。該程序可預先存儲在計算機可讀取的記錄媒體中發(fā)布。此外,該程序也可以通過網絡進行下載(發(fā)布)。
圖2是由XMLDB11管理的數據結構的示意圖。在圖2的例子中,在XMLDB11中存儲有三個XML文件111、112和113。這里,需要注意的是,XML文件111、112和113均被作為以稱為“bib”的節(jié)點為根的一個樹結構的部分樹來存儲。即,在XMLDB11中,存儲了具有樹結構的一個虛擬的XML文件110,實際的XML文件111、112和113被作為該XML文件110的部分樹來管理?!癰ib”節(jié)點是XML文件110的最高節(jié)點,即根節(jié)點。XML文件111、112和113中的例如XML文件111與虛擬的XML文件110產生關聯(lián),以使該XML文件111的最高節(jié)點(“book”節(jié)點)與“bib”節(jié)點成為父子關系。這里,“bib”節(jié)點為父節(jié)點,XML文件111的最高節(jié)點(“book”節(jié)點)為子節(jié)點。這種情況在“bib”節(jié)點和XML文件112及113的最高節(jié)點之間也是同樣的。此外,XML文件111、112及113各自的最高節(jié)點之間以形成兄弟關系的關聯(lián)。這里,如果設將XML文件以111、112及113的順序存儲在XMLDB11中,則XML文件112的最高節(jié)點成為XML文件111的最高節(jié)點的弟節(jié)點,XML文件113的最高節(jié)點成為XML文件112的最高節(jié)點的弟節(jié)點。由此,XML文件111的多個節(jié)點(元素)、XML文件112的多個節(jié)點(元素)和XML文件113的多個節(jié)點(元素)構成XMLDB11中的一個虛擬的XML文件110的樹結構。
圖3表示圖2所示的XML文件111、112及113中的XML文件111被存儲在XMLDB11時的該XMLDB11的數據結構例。在這個階段中,XML文件111成為XML文件110的樹結構內的唯一的部分樹。如圖3所示,在XMLDB11中,存儲有以構成該樹結構的節(jié)點(元素)為單位管理XML文件110的樹結構的結構信息表31及管理該XML文件110的各節(jié)點(元素)的信息的節(jié)點信息塊32。結構信息表31的項目數和節(jié)點信息塊32的數與XML文件110的節(jié)點數一致。各節(jié)點被賦予唯一的號碼——節(jié)點ID。
結構信息表31的第i(i=1,2,…)項目分別由設定的節(jié)點ID字段(項目)311、父節(jié)點字段312、兄節(jié)點字段313、弟節(jié)點字段314及子節(jié)點字段315構成節(jié)點i的節(jié)點ID(ID=i)、該節(jié)點i的父節(jié)點的節(jié)點ID、該節(jié)點i的兄節(jié)點的節(jié)點ID、該節(jié)點i的弟節(jié)點的節(jié)點ID、及該節(jié)點i的子節(jié)點的節(jié)點ID。即,結構信息表31的各項目用于保持表示對應節(jié)點在樹結構中的位置關系的信息。若節(jié)點i中不存在父節(jié)點、兄節(jié)點、弟節(jié)點或子節(jié)點,在結構信息表31中的第i項目對應的字段里,設定表示不存在相應節(jié)點的特定的值(在圖3中,用“-”表示)。
在本實施方式中,若節(jié)點i中存在多個子節(jié)點,則在結構信息表31中的第i項目的子字段315中只設定長子節(jié)點的節(jié)點ID。例如,節(jié)點ID為2的“book”節(jié)點的子節(jié)點分別是節(jié)點ID為3、4、5及6的“title”節(jié)點、“author”節(jié)點、“publisher”節(jié)點及“price”節(jié)點,節(jié)點ID為3的“title”節(jié)點是長子。此時,在結構信息表31中的第2項目的子節(jié)點字段315中,“title”節(jié)點的節(jié)點ID(=3)被設定。
另一方面,節(jié)點信息塊32用于將固有的信息(節(jié)點信息)保持在對應的節(jié)點中。這里,節(jié)點信息塊32保持節(jié)點ID、該節(jié)點的標簽名及該節(jié)點的值(元素值)。節(jié)點的值的大小有可能性根據不同的節(jié)點相差很大。因此,為了使節(jié)點信息塊32的大小一定,也可以采用將節(jié)點的值與該塊32分開保持,在該塊32中保持用于指示保持節(jié)點的值的區(qū)域的指針的結構。
上述結構信息表31的項目信息、以及對應于該項目的節(jié)點信息塊32在將XML文件存儲至XMLDB11時形成。這樣,需要注意的是,在本實施方式中,并非將XML文件以文本形式原封不動地或系統(tǒng)獨自的二進制形式存儲至XMLDB11。即,在本實施方式中,是將XML文件作為以“bib”節(jié)點為根的樹結構的部分樹來管理。這種情況下,表示該XML文件的各節(jié)點(元素)在該樹結構中的位置關系的信息(結構信息)和在該XML文件的各節(jié)點中固有的信息(節(jié)點信息)被存儲在XMLDB11中。但是,為了簡化說明,有時以XML文件被存儲在XMLDB11中來表現與該XML文件有關的結構信息和節(jié)點信息被存儲在XMLDB11中。
圖4表示圖2所示的XML文件111、112及113以該XML文件111、112及113的順序全部存儲在XMLDB11中時的該XMLDB11的數據結構例。這里,XML文件112和113具有與XML文件111通用的樹結構,該XML文件112及113的最高節(jié)點為“book”節(jié)點。如圖4所示,作為節(jié)點ID,XML文件112及113的“book”節(jié)點被分別賦予14和26。這里,節(jié)點ID為14的“book”節(jié)點成為節(jié)點ID為2的“book”節(jié)點的弟節(jié)點,節(jié)點ID為26的“book”節(jié)點成為節(jié)點ID為14的“book”節(jié)點的弟節(jié)點。因此,與節(jié)點ID為2的“book”節(jié)點對應的、結構信息表31的第2項目中的弟字段314從表示沒有弟節(jié)點的狀態(tài)“-”(參照圖3),更新為將節(jié)點ID為14的節(jié)點(“book”節(jié)點)作為弟節(jié)點來表示的狀態(tài)。此外,在將XML文件112作為XML文件110的部分樹存儲至XMLDB11時,在結構信息表31中,追加數目與該XML文件112的節(jié)點數一致的項目,例如12個項目。同樣,在將XML文件113作為XML文件110的部分樹存儲至XMLDB11時,在結構信息表31中,追加數目與該XML文件113的節(jié)點數一致的項目,例如12個項目。
下面,參照圖5至圖7來說明圖1所示的結構化文件檢索系統(tǒng)10中的包含有遍歷處理的檢索處理。圖5是表示結構化文件檢索系統(tǒng)10中的包含有遍歷處理的檢索處理步驟的流程圖,圖6是表示結構化文件檢索用戶機20和結構化文件檢索系統(tǒng)10之間的通信步驟的序列圖,圖7是以一個將XML文件111、112及113作為樹結構的部分樹的虛擬的XML文件110為對象的遍歷處理的示例圖。
首先,設用戶對結構化文件檢索用戶機20發(fā)出了以下檢索(查詢)請求以“price”順序獲取“l(fā)ast name”為“Stevens”的“book”的“author”的“firstname”。如前所述,無法用XPath僅指定滿足該檢索請求的最低必要限度的數據。
因此,結構化文件檢索用戶機20為了檢索“book”的“author”的“firstname”進行,而生成以下所示的XPathXPath=/bib/book/author/first用戶機20向結構化文件檢索系統(tǒng)10發(fā)出該XPath的檢索請求(XPath檢索請求)601。該XPath檢索請求601被結構化文件檢索系統(tǒng)10的API15接收,交送到請求處理部12。這樣,在本實施方式中,作為用于請求從XMLDB11中檢索必要的數據的查詢語言,使用XPath。但是,也可以將XQuery用作查詢語言。
請求處理部12接收來自用戶機20的檢索請求。如本例,當來自用戶機20的檢索請求是XPath檢索請求601時,則請求處理部12將該檢索請求601交送到檢索處理部13。于是,檢索處理部13根據請求處理部12交送來的檢索請求601執(zhí)行XPath檢索(步驟S1)。檢索處理部13通過該XPath檢索,作為其檢索結果(XPath檢索結果)602,獲取由XPath指定的節(jié)點(即“first”節(jié)點)的節(jié)點信息(步驟S2)。設步驟S2中獲取的“first”節(jié)點的節(jié)點信息包含該“first”節(jié)點的節(jié)點ID及該“first”節(jié)點的子節(jié)點的值即“first name”。但是,在檢索出的“first”節(jié)點中,有可能包含有不符合用戶的檢索請求的節(jié)點。因此,也可以使步驟S2中獲取的“first”節(jié)點的節(jié)點信息中不包含該“first”節(jié)點的子節(jié)點的值。這種情況下,結構化文件檢索用戶機20可以運用該“first”節(jié)點的節(jié)點信息中包含的節(jié)點ID,只就已確定符合用戶的檢索請求的“first”節(jié)點,向結構化文件檢索系統(tǒng)10請求其子節(jié)點的值(即“first name”)。
在圖7的例子中,在步驟S2中獲取XML文件111、112及113的“first”節(jié)點(即,節(jié)點ID分別為9、21和33的節(jié)點)的節(jié)點信息。從圖7可知,節(jié)點ID=9的“first”節(jié)點的節(jié)點信息,除了節(jié)點ID=9以外,還包含其子節(jié)點的值(即“first name”)——“W.”。而節(jié)點ID=21的“first”節(jié)點的節(jié)點信息,除了節(jié)點ID=21以外,還包含其子節(jié)點的值(即“first name”)——“W.”。此外,節(jié)點ID=33的“first”節(jié)點的節(jié)點信息,除了節(jié)點ID=33以外,還包含其子節(jié)點的值(即“first name”)——“Darcy”。檢索處理部13將作為該XPath檢索結果(XPath檢索結果集合)602獲得的、檢索出的所有節(jié)點的節(jié)點信息作為成為由遍歷處理部14進行的遍歷處理的基點的節(jié)點的節(jié)點信息,通過請求處理部12和API15返回到結構化文件檢索用戶機20(步驟S3)。
結構化文件檢索用戶機20接收了XPath檢索結果602、即成為遍歷處理的基點的“first”節(jié)點(即,節(jié)點ID分別為9、21、33的節(jié)點)的節(jié)點信息后,為了獲取篩選的條件——“l(fā)ast”節(jié)點的信息和分類的條件——“price”節(jié)點的信息,利用以下所述的被稱為遍歷請求(遍歷命令)的特定的檢索請求。遍歷請求包含當前的基節(jié)點的節(jié)點ID與表示遍歷方向的方向信息的對。在本實施方式中,可由遍歷請求指定的遍歷方向是從父、兄、弟和子之中選擇出的一個。即,遍歷請求可以指示從當前的基節(jié)點到父節(jié)點、兄節(jié)點、弟節(jié)點或子節(jié)點的遍歷。這樣,遍歷請求不適用于存儲在XMLDB11中的一個虛擬的XML文件110在表示邏輯結構的樹結構中的絕對位置的指定(使用路徑的位置指定),而是適用于父節(jié)點、兄節(jié)點、弟節(jié)點或子節(jié)點相對于基節(jié)點的相對位置的指定。
在本實施方式中,由結構化文件檢索系統(tǒng)10通知給結構化文件檢索用戶機20的、成為遍歷處理的基點的節(jié)點是節(jié)點ID分別為9、21及33的“first”節(jié)點。因此,結構化文件檢索用戶機20以這些節(jié)點ID分別為9、21和33的“first”節(jié)點作為基點,如下所述對結構化文件檢索系統(tǒng)10請求依次遍歷處理。
從當前的基節(jié)點——“first”節(jié)點來看“l(fā)ast”節(jié)點是兄節(jié)點。如上所述,當前的基節(jié)點是節(jié)點ID分別為9、21和33的“first”節(jié)點。因此,結構化文件檢索用戶機20首先以節(jié)點ID為9的“first”節(jié)點為基點,向結構化文件檢索系統(tǒng)10發(fā)出指示對兄節(jié)點遍歷的遍歷請求(遍歷命令)603。指示對該兄節(jié)點的遍歷的請求稱為“get Previous Sibling”命令。在圖6中,由遍歷請求指定的、當前的基節(jié)點和遍歷方向以(當前的基節(jié)點的節(jié)點ID、遍歷方向)的形式來表示。
結構化文件檢索系統(tǒng)10的請求處理部12在XPath檢索結果602被返回到結構化文件檢索用戶機20后,等待遍歷請求作為來自結構化文件檢索用戶機20的下個檢索請求(步驟S4)。如果結構化文件檢索用戶機20發(fā)出了遍歷請求(步驟S5),則請求處理部12接收該遍歷請求并將其交送到遍歷處理部14。遍歷處理部14對該遍歷請求進行解釋,判定來自基節(jié)點的遍歷方向、即遍歷目標節(jié)點是父節(jié)點、兄節(jié)點、弟節(jié)點或子節(jié)點中的哪一個(步驟S6)。
如果遍歷目標節(jié)點是父節(jié)點,則遍歷處理部14參照與遍歷請求指定的基節(jié)點對應的結構信息表31內的項目,從該項目的父節(jié)點字段312中獲取該基節(jié)點的父節(jié)點的節(jié)點ID(步驟S7)。相反,如果遍歷目標節(jié)點是兄節(jié)點,則遍歷處理部14參照與遍歷請求指定的基節(jié)點對應的結構信息表31內的項目,從該項目的兄節(jié)點字段313中獲取該基節(jié)點的兄節(jié)點的節(jié)點ID(步驟S8)。而如果遍歷目標節(jié)點是弟節(jié)點,則遍歷處理部14參照與遍歷請求指定的基節(jié)點對應的結構信息表31內的項目,從該項目的弟節(jié)點314中獲取該基節(jié)點的弟節(jié)點的節(jié)點ID(步驟S9)。如果遍歷目標節(jié)點是子節(jié)點,則遍歷處理部14參照與遍歷請求指定的基節(jié)點對應的結構信息表31內的項目,從該項目的子字段315中獲取該基節(jié)點的子節(jié)點的節(jié)點ID(步驟S10)。接著,遍歷處理部14參照在獲取的節(jié)點ID中固有的節(jié)點信息塊32,獲取該節(jié)點ID指定的節(jié)點的節(jié)點信息(步驟S11)。這里,獲取的節(jié)點ID的節(jié)點不具有值,并且,若其子節(jié)點具有值,則其值也被作為節(jié)點信息而獲取。
結構化文件檢索用戶機20對結構化文件檢索系統(tǒng)10最初發(fā)出的遍歷請求603以節(jié)點ID為9的“first”節(jié)點為基點,指示對兄節(jié)點的遍歷。節(jié)點ID為9的“first”節(jié)點的兄節(jié)點如圖7中箭頭71所示,是節(jié)點ID為8的“l(fā)ast”節(jié)點。因此,在步驟S11中,遍歷處理部14從節(jié)點ID為9的“first”節(jié)點起,追溯節(jié)點ID為8的“l(fā)ast”節(jié)點,獲取該節(jié)點ID為8的“l(fā)ast”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據。這里,節(jié)點ID為8的“l(fā)ast”節(jié)點的子節(jié)點(節(jié)點ID為9的節(jié)點)的值(“l(fā)ast name”=“Stevens”)也作為“l(fā)ast”節(jié)點的一部分節(jié)點信息被獲取。
遍歷處理部14將獲取的節(jié)點信息作為對遍歷請求603的遍歷處理(檢索處理)的結果(遍歷結果)604,通過請求處理部12和API15返回到結構化文件檢索用戶機20(步驟S12)。于是,請求處理部12等待來自結構化文件檢索用戶機20的下個遍歷請求(步驟S4)。
遍歷結果604包含“Stevens”作為“l(fā)ast name”。即,結構化文件檢索用戶機20將節(jié)點ID為9的“first”節(jié)點作為基點,通過使用用于追溯兄節(jié)點(“l(fā)ast”節(jié)點)的遍歷請求,可以獲取篩選條件——“l(fā)ast”節(jié)點的信息。在該例中,結構化文件檢索用戶機20根據遍歷結果,判定節(jié)點ID為9的“first”節(jié)點的兄節(jié)點、即節(jié)點ID為8的“l(fā)ast”節(jié)點滿足篩選條件。因此,結構化文件檢索用戶機20以節(jié)點ID為9的“first”節(jié)點作為基點,為了獲取分類條件——“price”節(jié)點的信息,依次發(fā)出如下所述的遍歷請求。首先,結構化文件檢索用戶機20以節(jié)點ID為9的“first”節(jié)點為基點,向結構化文件檢索系統(tǒng)10發(fā)出用于指示對父節(jié)點遍歷的遍歷請求605。該指示對父節(jié)點的遍歷的請求稱之為“get Parent Node”命令。
結構化文件檢索系統(tǒng)10的遍歷處理部14根據來自結構化文件檢索用戶機20的遍歷請求605,參照與節(jié)點ID為9的“first”節(jié)點對應的結構信息表31內的第9項目,從該項目的父字段312中獲取該節(jié)點ID為9的“first”節(jié)點的父節(jié)點的節(jié)點ID(步驟S6、S7)。這里,從圖7可知,節(jié)點ID為9的“first”節(jié)點的父節(jié)點是節(jié)點ID為4的“author”節(jié)點。因此,遍歷處理部14根據遍歷請求605,獲取節(jié)點ID=4。然后,遍歷處理部14從節(jié)點ID為9的“first”節(jié)點起,追溯節(jié)點ID為4的“author”節(jié)點,參照在節(jié)點ID=4中固有的節(jié)點信息塊32,獲取該節(jié)點ID=4指定的“author”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。該節(jié)點ID=4指定的“author”節(jié)點的節(jié)點信息包含節(jié)點ID=4和標簽名“author”。該節(jié)點信息作為對遍歷請求605的遍歷結果606而返回到結構化文件檢索用戶機20(步驟S12)。
結構化文件檢索用戶機20接收到遍歷結果606后,根據該遍歷結果606中包含的節(jié)點ID=4,以節(jié)點ID為4的“author”節(jié)點為基點,將指示對弟節(jié)點遍歷的遍歷請求607發(fā)給結構化文件檢索系統(tǒng)10。該指示對弟節(jié)點的遍歷的請求稱為“get Next Sibling”命令。
結構化文件檢索系統(tǒng)10的遍歷處理部14根據來自結構化文件檢索用戶機20的遍歷請求607,參照與節(jié)點ID為4的“author”節(jié)點對應的結構信息表31內的第4項目,從該項目的弟字段314獲取該節(jié)點ID為4的“author”節(jié)點的弟節(jié)點的節(jié)點ID(步驟S6、S9)。這里,從圖7可知,節(jié)點ID為4的“author”節(jié)點的弟節(jié)點是節(jié)點ID為5的“publisher”節(jié)點。因此,遍歷處理部14根據遍歷請求607獲取節(jié)點ID=5。遍歷處理部14從節(jié)點ID為4的“author”節(jié)點起,追溯節(jié)點ID為5的“publisher”節(jié)點,參照節(jié)點ID=5中固有的節(jié)點信息塊32,獲取由該節(jié)點ID=5指定的“publisher”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。由節(jié)點ID=5指定的“publisher”節(jié)點的節(jié)點信息包含節(jié)點ID=5和標簽名“publisher”。該節(jié)點信息作為對遍歷請求607的遍歷結果608被返回到結構化文件檢索用戶機20(步驟S12)。
結構化文件檢索用戶機20接收到遍歷結果608后,根據該遍歷結果608中包含的節(jié)點ID=5,以節(jié)點ID為5的“publisher”節(jié)點為基點,將指示對弟節(jié)點遍歷的遍歷請求609發(fā)給結構化文件檢索系統(tǒng)10。
結構化文件檢索系統(tǒng)10的遍歷處理部14根據來自結構化文件檢索用戶機20的遍歷請求609,參照與節(jié)點ID為5的節(jié)點對應的結構信息表31內的第5項目,從該項目的弟字段314獲取該節(jié)點ID為5的“publisher”節(jié)點的弟節(jié)點的節(jié)點ID(步驟S6、S9)。這里,從圖7可知,節(jié)點ID為5的“publisher”節(jié)點的弟節(jié)點是節(jié)點ID為6的“price”節(jié)點。因此,遍歷處理部14根據遍歷請求609獲取節(jié)點ID=6。遍歷處理部14從節(jié)點ID為5的“publisher”節(jié)點起,追溯節(jié)點ID為6的“price”節(jié)點,參照節(jié)點ID=6中固有的節(jié)點信息塊32,獲取該節(jié)點ID=6的“price”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。遍歷處理部14還獲取該“price”節(jié)點的子節(jié)點的值(即“price”)——65.95。遍歷處理部14使該值包含在“price”節(jié)點的節(jié)點信息中。該節(jié)點信息作為對遍歷請求609的遍歷結果610被返回到結構化文件檢索用戶機20(步驟S12)。
這樣,結構化文件檢索用戶機20以節(jié)點ID為9的“first”節(jié)點作為基點,通過采用依次追溯父節(jié)點(“author”節(jié)點)、該父節(jié)點的弟節(jié)點(“publisher”節(jié)點)、該弟節(jié)點的弟節(jié)點(“price”節(jié)點)的遍歷請求,可以獲取分類的條件——“price”節(jié)點的信息。
接著,結構化文件檢索用戶機20將節(jié)點ID為21的“first”節(jié)點作為基點,為了獲取篩選的條件——“l(fā)ast”節(jié)點的信息,將如下所述的遍歷請求611發(fā)給結構化文件檢索系統(tǒng)10。該遍歷請求611以節(jié)點ID為21的“first”節(jié)點為基點,指示對兄節(jié)點的遍歷。
結構化文件檢索系統(tǒng)10的遍歷處理部14根據來自結構化文件檢索用戶機20的遍歷請求611,參照與節(jié)點ID為21的節(jié)點對應的結構信息表31內的項目,從該項目的兄字段313獲取該節(jié)點ID為21的節(jié)點的兄節(jié)點的節(jié)點ID(步驟S6、S8)。這里,從圖7可知,節(jié)點ID為21的節(jié)點的兄節(jié)點是節(jié)點ID為20的“l(fā)ast”節(jié)點。因此,遍歷處理部14根據遍歷請求611而獲取節(jié)點ID=20。遍歷處理部14從節(jié)點ID為21的“first”節(jié)點起,追溯節(jié)點ID為20的“l(fā)ast”節(jié)點,參照節(jié)點ID=20中固有的節(jié)點信息塊32,獲取該節(jié)點ID=20的“l(fā)ast”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。此外,遍歷處理部14還獲取該“l(fā)ast”節(jié)點的子節(jié)點的值(即“l(fā)ast name”)——“Stevens”。遍歷處理部14使該值包含在“l(fā)ast”節(jié)點的節(jié)點信息中。該節(jié)點信息作為對遍歷請求611的遍歷結果612被返回到結構化文件檢索用戶機20(步驟S12)。
如上述那樣,遍歷結果612包含“Stevens”作為“l(fā)ast name”。即,結構化文件檢索用戶機20以節(jié)點ID為21的“first”節(jié)點作為基點,通過采用用于追溯兄節(jié)點(“l(fā)ast”節(jié)點)的遍歷請求,可以獲取篩選的條件——“l(fā)ast”節(jié)點的信息。在該例中,結構化文件檢索用戶機20根據遍歷結果612,判定節(jié)點ID為21的“first”節(jié)點的兄節(jié)點、即節(jié)點ID為22的“l(fā)ast”節(jié)點滿足篩選條件。因此,結構化文件檢索用戶機20以節(jié)點ID為21的“first”節(jié)點作為基點,為了獲取分類的條件——“price”節(jié)點的信息,依次發(fā)出如以下所述的遍歷請求。首先,結構化文件檢索用戶機20以節(jié)點ID為21的“first”節(jié)點為基點,將指示對父節(jié)點遍歷的遍歷請求613發(fā)給結構化文件檢索系統(tǒng)10。
結構化文件檢索系統(tǒng)10的遍歷處理部14根據來自結構化文件檢索用戶機20的遍歷請求613而參照結構信息表31,從而與前面的遍歷請求605同樣,獲取節(jié)點ID為21的“first”節(jié)點的父節(jié)點的節(jié)點ID(步驟S6、S7)。節(jié)點ID為21的“first”節(jié)點的父節(jié)點如圖7中箭頭72所示,是節(jié)點ID為16的“author”節(jié)點。因此,遍歷處理部14根據遍歷請求613獲取節(jié)點ID=16。之后,遍歷處理部14從節(jié)點ID為21的“first”節(jié)點起,追溯節(jié)點ID為16的“author”節(jié)點,獲取由節(jié)點ID=16指定的“author”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。該“author”節(jié)點的節(jié)點信息包含節(jié)點ID=16和標簽名“author”。該節(jié)點信息作為對遍歷請求613的遍歷結果614被返回到結構化文件檢索用戶機20(步驟S12)。
結構化文件檢索用戶機20接收到遍歷結果614后,根據該遍歷結果614中包含的節(jié)點ID=16,以節(jié)點ID為16的“author”節(jié)點為基點,將指示對弟節(jié)點遍歷的遍歷請求615發(fā)給結構化文件檢索系統(tǒng)10。結構化文件檢索系統(tǒng)10的遍歷處理部4根據來自結構化文件檢索用戶機20的遍歷請求615而參照結構信息表31,從而與前面的遍歷請求607同樣,獲取節(jié)點ID為16的“author”節(jié)點的弟節(jié)點的節(jié)點ID(步驟S6、S9)。節(jié)點ID為16的“author”節(jié)點的弟節(jié)點如圖7中箭頭73所示,是節(jié)點ID為17的“publisher”節(jié)點。因此,遍歷處理部14根據遍歷請求615而獲取節(jié)點ID=17。然后遍歷處理部14從節(jié)點ID為16的“author”節(jié)點起,追溯節(jié)點ID為17的“publisher”節(jié)點,獲取由節(jié)點ID=17指定的“publisher”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。該“publisher”節(jié)點的節(jié)點信息包含節(jié)點ID=17和標簽名“publisher”。該節(jié)點信息作為對遍歷請求615的遍歷結果616被返回到結構化文件檢索用戶機20(步驟S12)。
結構化文件檢索用戶機20接收到遍歷結果616后,根據該遍歷結果616中包含的節(jié)點ID=17,以節(jié)點ID為17的“publisher”節(jié)點為基點,將指示對弟節(jié)點遍歷的遍歷請求617發(fā)給結構化文件檢索系統(tǒng)10。結構化文件檢索系統(tǒng)10的遍歷處理部14根據來自結構化文件檢索用戶機20的遍歷請求617而參照結構信息表31,從而與前面的遍歷請求609同樣,獲取節(jié)點ID為17的“publisher”節(jié)點的弟節(jié)點的節(jié)點ID(步驟S6、S9)。節(jié)點ID為17的“publisher”節(jié)點的弟節(jié)點如圖7中箭頭74所示,是節(jié)點ID為18的“price”節(jié)點。因此,遍歷處理部14根據遍歷請求617而獲取節(jié)點ID=18。然后遍歷處理部14從節(jié)點ID為17的“publisher”節(jié)點起,追溯節(jié)點ID為18的“price”節(jié)點,獲取節(jié)點ID=18的“price”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。遍歷處理部14還獲取該“price”節(jié)點的子節(jié)點的值(即“price”)——“85.95”。遍歷處理部14使該值包含在“price”節(jié)點的節(jié)點信息中。該節(jié)點信息作為對遍歷請求617的遍歷結果618被返回到結構化文件檢索用戶機20(步驟S12)。
這樣,結構化文件檢索用戶機20以節(jié)點ID為21的“first”節(jié)點作為基點,通過采用依次追溯父節(jié)點(“author”節(jié)點)、該父節(jié)點的弟節(jié)點(“publisher”節(jié)點)、該弟節(jié)點的弟節(jié)點(“price”節(jié)點)的遍歷請求,可以獲取分類的條件——“price”節(jié)點的信息。
接著,結構化文件檢索用戶機20以節(jié)點ID為33的“first”節(jié)點為基點,為了獲取篩選的條件——“l(fā)ast”節(jié)點的信息,將如下所述的遍歷請求619發(fā)給結構化文件檢索系統(tǒng)10。該遍歷請求619以節(jié)點ID為33的“first”節(jié)點為基點,指示對兄節(jié)點遍歷。
結構化文件檢索系統(tǒng)10的遍歷處理部14根據來自結構化文件檢索用戶機20的遍歷請求619而參照結構信息表31,與前面的遍歷請求603同樣,獲取節(jié)點ID為33的“first”節(jié)點的兄節(jié)點的節(jié)點ID(步驟S6、S8)。這里,從圖7可知,節(jié)點ID為33的節(jié)點的兄節(jié)點是節(jié)點ID為32的“l(fā)ast”節(jié)點。因此,遍歷處理部14根據遍歷請求619而獲取節(jié)點ID=32。遍歷處理部14從節(jié)點ID為33的“first”節(jié)點起,追溯節(jié)點ID為32的“l(fā)ast”節(jié)點,參照節(jié)點ID=32中固有的節(jié)點信息塊32,獲取該節(jié)點ID=32的“l(fā)ast”節(jié)點的節(jié)點信息作為遍歷目標節(jié)點的數據(步驟S11)。此外,遍歷處理部14還獲取該“l(fā)ast”節(jié)點的子節(jié)點的值(即“l(fā)ast name”)——“Gerberg”。遍歷處理部14使該值包含在“l(fā)ast”節(jié)點的節(jié)點信息中。該節(jié)點信息作為對遍歷請求619的遍歷結果612被返回到結構化文件檢索用戶機20(步驟S12)。
這樣,遍歷結果620包含“Gerberg”作為“l(fā)ast name”。即,作為“l(fā)ast name”,遍歷結果620不包含“Stevens”。這種情況下,結構化文件檢索用戶機20根據遍歷結果620,判定節(jié)點ID為33的“first”節(jié)點的兄節(jié)點、即節(jié)點ID為32的“l(fā)ast”節(jié)點不滿足篩選條件。因此,結構化文件檢索用戶機20結束遍歷請求的發(fā)出。結構化文件檢索系統(tǒng)10的請求處理部12在進入等待遍歷請求的狀態(tài)后(步驟S4),例如在結構化文件檢索用戶機20超過一定時間沒有發(fā)出遍歷請求的情況下(步驟S5),結束結構化文件檢索系統(tǒng)10中的遍歷處理。再有,在結構化文件檢索用戶機20通知了處理結束的情況下,請求處理部12也結束結構化文件檢索系統(tǒng)10中的遍歷處理。
這樣,在本實施方式中,對于用XPath的檢索的結果(XPath檢索結果)所表示的所有節(jié)點的每一個,可以實現以該節(jié)點作為基點,自由地追溯其父節(jié)點、子節(jié)點、兄節(jié)點、或弟節(jié)點的遍歷處理。通過該遍歷處理,可以僅檢索進行分類和篩選處理所需的最低限度的數據。
此外,實際的XML文件、即XML文件111、112及113在XMLDB11內,從圖4和圖7可知,被作為一個虛擬的XML文件110的部分樹來管理。因此,如圖7中箭頭75至78所示,不僅是上述XML文件111、112及113的各個樹結構(部分樹)內,而且可以以由XPath檢索特定的基節(jié)點(這里,是節(jié)點ID為33的“first”節(jié)點)為基點,通過遍歷處理而從某個XML文件向其他XML文件追溯。即,可以進行橫跨被作為一個虛擬的XML文件110的部分樹來管理的多個實際的XML文件的橫向檢索。在圖7的例子中,示出了從XML文件113的“book”節(jié)點起通過“bib”節(jié)點追溯XML文件112的“book”節(jié)點的情況。但是,通過請求從XML文件113的“book”節(jié)點對兄節(jié)點的遍歷,也可以從XML文件113的“book”節(jié)點直接追溯XML文件112的“book”節(jié)點。
但在XML中,有稱為“標簽”(元素)的“屬性”的概念。這種“屬性”(屬性節(jié)點)在XML或DOM(Document Obiect Model)領域中,通常與“標簽”(標簽節(jié)點)有所不同,被與所謂的父子兄弟關系分割開來。但是,在例如圖2所示的以下的XML文件(book year=“1965”>
<title>……</title>
<author>……</author>中,“book”節(jié)點的屬性——“year”節(jié)點與“title”節(jié)點或“author”節(jié)點等所謂的標簽節(jié)點同樣,也可以看作是“book”節(jié)點的子節(jié)點之一。因此,通過將屬性節(jié)點看作是與該屬性節(jié)點對應的標簽節(jié)點的子節(jié)點(例如長子的節(jié)點),該屬性節(jié)點也可以與標簽節(jié)點完全同樣地進行處理。
在上述實施方式中,為了簡化說明,是以XML文件111、112及113的樹結構是共通的作為前提。但是,在本實施方式的遍歷處理中,用相對于當前的基節(jié)點的所謂父節(jié)點、子節(jié)點的相對位置信息來指定遍歷目標(檢索對象),所以可以縱橫地對XMLDB11進行掃描而不會意識到路徑的記述。因此,即使XML文件111、112及113的樹結構并非共通、路徑不明,也可以進行XPath檢索中被檢索到的節(jié)點附近的檢索。
此外,在上述實施方式中,結構化文件檢索用戶機20向結構化文件檢索系統(tǒng)10發(fā)出依次遍歷請求。但是,在結構化文件檢索用戶機20端預先知道XML文件111、112及113的樹結構的情況下,也可以是結構化文件檢索用戶機20向結構化文件檢索系統(tǒng)10,更具體地說則是,結構化文件檢索用戶機20對API15只發(fā)出一次遍歷請求的結構。這里,以XPath檢索(XQuery檢索)中被檢索到的節(jié)點的節(jié)點ID作為基節(jié)點的節(jié)點ID、根據遍歷請求從結構化文件檢索用戶機20向API15只通知該基節(jié)點的節(jié)點ID與以該基節(jié)點作為基點追溯XMLDB11內的方向的組合即可。以后,API15只需根據來自結構化文件檢索用戶機20的遍歷請求,將與上述實施方式中的遍歷請求603、605及607等相當的遍歷請求依次發(fā)給請求處理部12即可。
在上述實施方式中,XML文件111、112及113的最高節(jié)點(“book”節(jié)點)被作為虛擬的XML文件110的最高節(jié)點(“bib”節(jié)點)的子節(jié)點來管理。但是,也可以將XMLDB11中存儲的實際的XML文件例如按每個文件種類進行分類,準備好該文件種類中固有的新的節(jié)點作為“bib”節(jié)點的子節(jié)點來管理,同時將屬于該文件種類的各XML文件的最高節(jié)點作為在該文件種類中固有的新的節(jié)點的子節(jié)點來管理。如此一來,可以更高效率地進行屬于同一文件種類的多個XML文件的橫向檢索。進而,可以將文件種類例如分為大分類、中分類和小分類,準備分別對應的大分類節(jié)點、中分類節(jié)點和小分類節(jié)點。這種情況下,可將XML文件作為“bib”節(jié)點——大分類節(jié)點——中分類節(jié)點——小分類節(jié)點——XML文件的最高節(jié)點的樹結構的部分樹來管理。
如上,在本實施方式的結構化文件系統(tǒng)10中,只需用戶機20向該系統(tǒng)10發(fā)出作為檢索請求的、指定作為檢索的基點的基節(jié)點和自該基節(jié)點的相對位置關系的遍歷請求,即可根據遍歷請求的相對位置信息,執(zhí)行從在該遍歷請求中被指定作為基節(jié)點的XMLDB11內的多個節(jié)點中的一個,追溯XMLDB11內的多個節(jié)點的其他的節(jié)點的遍歷處理,由此可以獲取作為目標的遍歷目標節(jié)點的數據。這樣,在結構化文件系統(tǒng)10中,只需指定基節(jié)點和自該基節(jié)點的相對位置關系即可執(zhí)行在以XPath為代表的查詢語言中不能指定的復雜檢索條件的數據檢索。即,可以自由地追溯XMLDB11內的所有節(jié)點。
此外,由于XMLDB11將多個結構化文件作為一個虛擬的結構化文件的部分樹來管理,所以還可以執(zhí)行從該XMLDB11內的某個文件的節(jié)點追溯其他文件的節(jié)點的遍歷處理。由此,可根據父子兄弟的相對關系自由地追溯XMLDB11內的所有節(jié)點,所以可以進行多個文件的橫向檢索和只調出需要的數據等不用表示XMLDB11內的絕對位置的路徑描述的檢索。
這樣,根據本實施方式,可以以結構化文件數據庫內的任意節(jié)點為基點,自由地追溯其父、子、兄或弟的節(jié)點,由此,可以很容易地從結構化文件數據庫中獲取作為目標的節(jié)點的數據。
本領域的技術人員并容易地獲得附加的優(yōu)點和進行改變。因此,更寬方案的本發(fā)明并不限于本說明書中所展示和描述的具體細節(jié)和典型實施方式。所以,各種變更都可以實施,但不會脫離所附權利要求及其等同物所限定的總的發(fā)明構思的實質或范圍。
權利要求
1.一種結構化文件檢索系統(tǒng),包括通過包含有分層化(階層化)的多個節(jié)點的樹結構對結構化文件進行管理的結構化文件數據庫;接收來自用戶機的遍歷請求(トラバ一ス要求)的部件,所述遍歷請求包括將所述結構化文件數據庫內的多個節(jié)點中的一個指定為作為檢索基點的基節(jié)點的基節(jié)點指定信息,及指定相對于所述基節(jié)點的遍歷目標節(jié)點(トラバ一ス先ノ一ド)的相對位置關系的相對位置信息;以及遍歷處理部件,從由所述接收的遍歷請求中包含的基節(jié)點指定信息指定作為基節(jié)點的所述結構化文件數據庫內的多個節(jié)點中的一個,根據所述接收的遍歷請求中包含的所述相對位置信息,執(zhí)行追溯所述結構化文件數據庫內的多個節(jié)點中的其他節(jié)點的遍歷處理,從所述結構化文件數據庫獲取與所述遍歷目標節(jié)點對應的數據。
2.根據權利要求1所述的結構化文件檢索系統(tǒng),其中,所述遍歷請求的相對位置信息包含將相對于所述基節(jié)點的父、子、兄、弟中的任一節(jié)點指定作為遍歷方向的方向信息,所述遍歷處理部件包括從由所述基節(jié)點指定信息指定作為基節(jié)點的所述結構化文件數據庫內的多個節(jié)點中的一個追溯所述方向信息指定的父、子、兄、弟中的任一節(jié)點的部件。
3.根據權利要求1所述的結構化文件檢索系統(tǒng),其中還包括,用于接收來自所述用戶機的指定路徑檢索請求的部件,所述指定路徑檢索請求包含作為檢索對象的節(jié)點存在的、表示所述樹結構上的位置的路徑(location pass)作為檢索條件;以及檢索處理部件,從所述結構化文件數據庫中檢索由所述接收的指定路徑檢索請求中包含的路徑指定的節(jié)點,從而從所述結構化文件數據庫中獲取與路徑指定的節(jié)點對應的節(jié)點識別符的數據。
4.根據權利要求3所述的結構化文件檢索系統(tǒng),其中,所述遍歷請求包含對應于根據所述指定路徑檢索請求檢索出的節(jié)點的節(jié)點識別符,作為所述基節(jié)點指定信息。
5.根據權利要求3所述的結構化文件檢索系統(tǒng),其中,還包括請求處理部件,其特征為接收來自所述用戶機的檢索請求,判定該檢索請求是所述遍歷請求和所述指定路徑檢索請求的哪一個,當該檢索請求是所述遍歷請求時,將該檢索請求交送到所述遍歷處理部件,而當該檢索請求是所述指定路徑檢索請求時,將該檢索請求交送到所述檢索處理部件。
6.根據權利要求1所述的結構化文件檢索系統(tǒng),其中,所述結構化文件數據庫將多個結構化文件作為一個虛擬的結構化文件的部分樹來存儲。
7.根據權利要求6所述的結構化文件檢索系統(tǒng),其中,所述結構化文件數據庫對作為所述虛擬的結構化文件的樹結構元素的每個節(jié)點分別存儲表示其父節(jié)點、子節(jié)點、兄節(jié)點、弟節(jié)點的結構信息,所述遍歷處理部件根據所述結構信息,執(zhí)行所述遍歷處理。
8.一種對結構化文件數據庫進行檢索的結構化文件檢索方法,所述結構化文件數據庫通過包含有分層化的多個節(jié)點的樹結構來管理結構化文件,該方法包括當用戶機發(fā)出指定路徑檢索請求時,從所述結構化文件數據庫中檢索由該路徑指定的節(jié)點,所述指定路徑檢索請求包含將表示作為檢索對象的節(jié)點存在的所述樹結構上的位置的路徑(location pass)作為檢索條件;將檢索到的節(jié)點的數據作為對應于所述指定路徑檢索請求的檢索結果返回到所述用戶機;當所述用戶機作為檢索請求提出包含將所述檢索結果表示的節(jié)點作為成為新的檢索基點的基節(jié)點來指定的基節(jié)點指定信息和指定遍歷目標節(jié)點相對于所述基節(jié)點的相對位置關系的相對位置信息的遍歷請求時,根據所述相對位置信息,執(zhí)行從根據所述基節(jié)點指定信息作為基節(jié)點指定的所述結構化文件數據庫內的多個節(jié)點中的一個追溯所述結構化文件數據庫內的多個節(jié)點的其他的節(jié)點的遍歷處理,從而從所述結構化文件數據庫中獲取與所述遍歷目標節(jié)點對應的數據。將通過遍歷處理獲取的所述遍歷目標節(jié)點的數據作為對所述遍歷請求的檢索結果返回到所述用戶機。
9.根據權利要求8所述的結構化文件檢索方法,其中,所述遍歷請求的相對位置信息包含將相對于所述基節(jié)點的父、子、兄、弟的任一節(jié)點指定為遍歷方向的方向信息,執(zhí)行所述遍歷處理包括根據所述方向信息,判定從由所述基節(jié)點指定信息指定的基節(jié)點追溯的節(jié)點是相對于所述基節(jié)點的父、子、兄、弟中的哪一個節(jié)點。
10.根據權利要求9所述的結構化文件檢索方法,其中,所述結構化文件數據庫將多個結構化文件作為一個虛擬的結構化文件的部分樹存儲。
11.根據權利要求10所述的結構化文件檢索方法,其中,所述結構化文件數據庫存儲對作為所述虛擬的結構化文件的樹結構元素的各節(jié)點的父子兄弟關系進行管理的結構信息,執(zhí)行所述遍歷處理包括根據該基節(jié)點、所述判定的結果和所述結構信息來指定從由所述遍歷請求指定的基節(jié)點追溯的節(jié)點。
12.一種程序,存儲于計算機可讀取的介質中,使計算機執(zhí)行對結構化文件數據庫進行檢索的處理,所述結構化文件數據庫通過包含有分層化的多個節(jié)點的樹結構對結構化文件進行管理,該程序包括當用戶機發(fā)出指定路徑檢索請求時,使所述計算機執(zhí)行從所述結構化文件數據庫中檢索由該路徑指定的節(jié)點的處理,所述指定路徑檢索請求包含將表示作為檢索對象的節(jié)點存在的所述樹結構上的位置的路徑(location pass)作為檢索條件;使所述計算機執(zhí)行將檢索到的節(jié)點的數據作為對所述指定路徑檢索請求的檢索結果而返回到所述用戶機的處理;當所述用戶機作為檢索請求提出包含將所述檢索結果表示的節(jié)點作為成為新的檢索基點的基節(jié)點來指定的基節(jié)點指定信息和指定遍歷目標節(jié)點相對于所述基節(jié)點的相對位置關系的相對位置信息的遍歷請求時,使所述計算機根據所述相對位置信息,執(zhí)行從根據所述基節(jié)點指定信息作為基節(jié)點指定的所述結構化文件數據庫內的多個節(jié)點中的一個追溯所述結構化文件數據庫內的多個節(jié)點的其他的節(jié)點的遍歷處理,從而從所述結構化文件數據庫中獲取與所述遍歷目標節(jié)點對應的數據;使所述計算機執(zhí)行將通過遍歷處理獲取的所述遍歷目標節(jié)點的數據作為對所述遍歷請求的檢索結果返回到所述用戶機的處理。
13.根據權利要求12所述的程序,其中,所述遍歷請求的相對位置信息包含將相對于所述基節(jié)點的父、子、兄、弟中的任一節(jié)點指定為遍歷方向的方向信息,使所述計算機執(zhí)行所述遍歷處理包括使所述計算機根據所述方向信息,執(zhí)行從由所述基節(jié)點指定信息指定的基節(jié)點追溯的節(jié)點是相對于所述基節(jié)點的父、子、兄、弟中的哪一個節(jié)點的判定處理。
全文摘要
一種結構化文件檢索系統(tǒng)(10),包括通過包含有分層化的多個節(jié)點的樹結構對結構化文件進行管理的結構化文件數據庫(11);和接收來自用戶機(20)的遍歷請求的單元(12),所述遍歷請求包括將所述結構化文件數據庫(11)內的多個節(jié)點中的一個指定為作為檢索基點的基節(jié)點的基節(jié)點指定信息,及指定相對于所述基節(jié)點的遍歷目標節(jié)點的相對位置關系的相對位置信息;以及遍歷處理單元(14),從由所述接收的遍歷請求中包含的基節(jié)點指定信息指定作為基節(jié)點的所述結構化文件數據庫(11)內的多個節(jié)點中的一個,根據所述接收的遍歷請求中包含的所述相對位置信息,執(zhí)行追溯所述結構化文件數據庫(11)內的多個節(jié)點中的其他節(jié)點的遍歷處理,從所述結構化文件數據庫(11)獲取與所述遍歷目標節(jié)點對應的數據。
文檔編號G06F17/30GK1766875SQ20051006460
公開日2006年5月3日 申請日期2005年4月15日 優(yōu)先權日2004年10月29日
發(fā)明者酒井美由紀, 谷川均 申請人:株式會社東芝, 東芝解決方案株式會社
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
淮滨县| 舟曲县| 广平县| 九江县| 玉林市| 巩义市| 盐山县| 修水县| 云阳县| 清水县| 石柱| 深圳市| 义马市| 云龙县| 普定县| 阿瓦提县| 祁阳县| 南丹县| 临桂县| 宜章县| 文登市| 横峰县| 桐庐县| 河间市| 固始县| 黄石市| 吉林省| 宁德市| 通道| 乌兰察布市| 六盘水市| 饶河县| 小金县| 万源市| 万载县| 明溪县| 北川| 三河市| 龙口市| 汝阳县| 美姑县|