專利名稱:面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng)和方法
面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng)和方法技術(shù)領(lǐng)域本方法涉及一種數(shù)據(jù)集成領(lǐng)域,尤其是涉及一種面向領(lǐng)域的Web數(shù) 據(jù)集成系統(tǒng)和方法。
背景技術(shù):
目前,在De印Web上進(jìn)行數(shù)據(jù)集成已經(jīng)有一些研究,主要有兩種方 法接口集成與查詢結(jié)果集成。所謂接口集成,是指將各個Deep Web網(wǎng)站的搜索框(即查詢接口 )集成起來,這樣用戶可以通過這樣一個集成的接口,將關(guān)鍵字發(fā)送到各 個網(wǎng)站的搜索框上,然后再將搜索結(jié)果取回。使用這種方式進(jìn)行集成, 本地服務(wù)器上是不保存數(shù)據(jù)的。在Deep Web上進(jìn)行數(shù)據(jù)集成的另 一種方式是查詢結(jié)果集成。它將各 個Deep Web網(wǎng)站上的所有數(shù)據(jù)爬耳又到本地,并實(shí)現(xiàn)定時更新。這樣,用 戶提交一個查詢的時候,實(shí)際上是在本地服務(wù)器上進(jìn)行查詢,并獲取查 詢結(jié)果。這種方法和現(xiàn)有通用搜索引擎,如Google、百度等相似,都在 本地服務(wù)器上保存數(shù)據(jù),并自己建立索引方便用戶查詢。這種方式又分 為3種方法,分別為手工的、半自動的和全自動的方法。其中,手工的 方法是最早提出來的,但是它需要用戶有較為豐富的相關(guān)知識與編程經(jīng) 驗(yàn)。半自動的方法正式為了解決這個問題而提出來的,通常它會提供一 種圖形化的界面來輔助生成爬取程序。全自動的方法希望能夠?qū)⒂脩魪?底解放出來,但是這些方法通常有過多的假設(shè),離實(shí)際應(yīng)用還有一段距 離。同時,當(dāng)面對較為復(fù)雜的頁面時,往往不能得到理想的結(jié)果。而在已有的自動方法中,實(shí)際表明,它們所得到的結(jié)果距離真正的 Web應(yīng)用還有很大的距離,主要集中在以下幾點(diǎn)1、 自動的方法要么存在許多假設(shè),要么無法達(dá)到很好的效果。2、 自動的方法要在初始時設(shè)置許多參數(shù),這些參數(shù)帶有較多的主觀 因素。同時一旦變更領(lǐng)域,這些參數(shù)往往就會失效,用不得不重新耗費(fèi)大量經(jīng)歷設(shè)置參數(shù)。3、自動的方法很難做到在記錄(record )層次的區(qū)分,而在屬性(item) 層次的區(qū)分就更不理想。發(fā)明內(nèi)容為了解決上述傳統(tǒng)問題,因此本發(fā)明的 一 個目的就是提出了 一種面 向領(lǐng)i或的Web凝:才居集成系統(tǒng)和方法。在本發(fā)明的 一個方面中,提出了 一種面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng), 該系統(tǒng)包括數(shù)據(jù)源;數(shù)據(jù)集成模塊,用于將來自數(shù)據(jù)源的數(shù)據(jù)集成到 本地;數(shù)據(jù)處理模塊,用于對集成到本地的數(shù)據(jù)進(jìn)行處理;以及應(yīng)用模 塊,用于將集成出來的數(shù)據(jù)提供給用戶。在這個方面中,其中數(shù)據(jù)集成模塊包括基于配置文件的數(shù)據(jù)集成 系統(tǒng),用于比較精確地對De印Web上的數(shù)據(jù)進(jìn)行抽取與集成;以及普通 檢索系統(tǒng),用于搭建大規(guī)模的、快速的、全自動的但準(zhǔn)確率稍低的集成 系統(tǒng)。在這個方面中,其中數(shù)據(jù)處理模塊包括數(shù)據(jù)存儲單元,用于存儲 集成抽取出來的各個網(wǎng)站的數(shù)據(jù);索引單元,用于對集成來的數(shù)據(jù)屬性 進(jìn)行索引以方便未來查詢時的各項(xiàng)檢索;以及全文索引單元,用于對集 成過來的全部數(shù)據(jù)進(jìn)行全文索引以處理大規(guī)模數(shù)據(jù)集成后的關(guān)鍵字檢索 問題。在這個方面中,其中基于配置文件的Web數(shù)據(jù)集成系統(tǒng)包括多個 數(shù)據(jù)源;多個配置文件單元,這多個配置文件單元的每一個與上述多個 數(shù)據(jù)源的每一個相對應(yīng);統(tǒng)一的集成單元,用于集成底層的各個數(shù)據(jù)源 并且利用數(shù)據(jù)源所對應(yīng)的配置文件,采用統(tǒng)一的方式,對數(shù)據(jù)源中的數(shù) 據(jù)進(jìn)行抽??;以及本地服務(wù)器,用于保存集成起來的所有數(shù)據(jù),以便用 戶可以直接在本地服務(wù)器上對數(shù)據(jù)進(jìn)行處理。在這個方面中,其中統(tǒng)一的集成單元包括讀取模塊,用于從 list.xml中讀取一個查詢關(guān)鍵字;發(fā)送模塊,用于根據(jù)config. xml中的 配置發(fā)送查詢請求;獲取總頁數(shù)模塊,用于根據(jù)config. xml中的頁數(shù)配 置信息抽取出這次查詢的返回結(jié)果的總頁數(shù);獲取第一頁模塊,用于依 照GET或者POST方式去獲取第一頁;獲取記錄模塊,用于根據(jù)配置文件中的信息,從config. xml中讀取記錄xpath,將所有記錄抽出;獲取記 錄屬性值模塊,用于從config. xml中讀取屬性xpath以提出記錄的各項(xiàng) 屬性值;獲取頁面模塊,用于在如果這條記錄還有詳細(xì)頁面的情況下根 據(jù)config. xml中的配置獲取url,即獲取這條記錄的詳細(xì)頁面;獲取頁 面屬性值才莫塊,用于從detail, xml中讀取屬性xpath,即才艮據(jù)詳細(xì)頁面 的配置文件,將記錄詳細(xì)頁面中的一些屬性值也抽取出來;以及獲取結(jié) 果模塊,用于成功獲取此次查詢結(jié)果。在這個方面中,其中如果抽取的頁數(shù)小于總頁數(shù),則會繼續(xù)抽取下 一頁,否則這個以這個關(guān)鍵字的查詢抽取就已經(jīng)完成。在這個方面中,其中查詢請求的方式有兩種,分別是GET方式和POST 方式,如果是GET方式,則會從config.xml中獲取需要發(fā)送的查詢字符 串;如果是POST方式,則會從配置文件中獲取需要POST過去的參數(shù)。此外,在本發(fā)明的另一方面中,提出了一種用在面向領(lǐng)域的Web數(shù) 據(jù)集成系統(tǒng)中的面向領(lǐng)域的Web數(shù)據(jù)集成方法,所述面向領(lǐng)域的Web數(shù) 據(jù)集成系統(tǒng)包括數(shù)據(jù)源、具有基于配置文件的數(shù)據(jù)集成系統(tǒng)的數(shù)據(jù)集成 模塊、數(shù)據(jù)處理模塊,以及應(yīng)用模塊,其中基于配置文件的數(shù)據(jù)集成系 統(tǒng)包括多個數(shù)據(jù)源、與上述多個數(shù)據(jù)源的每一個相對應(yīng)多個配置文件單 元、統(tǒng)一的集成單元、以及本地服務(wù)器,該面向領(lǐng)域的Web數(shù)據(jù)集成方 法包括數(shù)據(jù)集成步驟,數(shù)據(jù)集成模塊將來自數(shù)據(jù)源的數(shù)據(jù)集成到本地; 數(shù)據(jù)處理步驟,數(shù)據(jù)處理模塊對集成到本地的數(shù)據(jù)進(jìn)行處理;以及應(yīng)用 步驟,用于將集成出來的數(shù)據(jù)提供給用戶。在這個方面中,其中數(shù)據(jù)集成步驟包括基于配置文件的數(shù)據(jù)集成 步驟,用于比較精確地對De印Web上的數(shù)據(jù)進(jìn)行抽取與集成;以及普通 檢索步驟,用于搭建大規(guī)模的、快速的、全自動的但準(zhǔn)確率稍低的集成 系統(tǒng)。在這個方面中,其中數(shù)據(jù)處理步驟包括存儲集成抽取出來的各個 網(wǎng)站的數(shù)據(jù);對集成來的數(shù)據(jù)屬性進(jìn)行索引以方便未來查詢時的各項(xiàng)檢 索;以及對集成過來的全部數(shù)據(jù)進(jìn)行全文索引以處理大規(guī)模數(shù)據(jù)集成后 的關(guān)鍵字檢索問題。在這個方面中,其中基于配置文件的數(shù)據(jù)集成步驟包括統(tǒng)一的集 成步驟,統(tǒng)一的集成單元集成底層的各個數(shù)據(jù)源并且利用數(shù)據(jù)源所對應(yīng)的配置文件,采用統(tǒng)一的方式,對數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行抽??;以及保存 步驟,本地服務(wù)器保存集成起來的所有數(shù)據(jù),以便用戶可以直接在本地 服務(wù)器上對數(shù)據(jù)進(jìn)行處理。在這個方面中,其中統(tǒng)一的集成步驟包括從list, xml中讀取一個 查詢關(guān)4建字;才艮據(jù)config. xml中的配置發(fā)送查詢請求;才艮據(jù)config. xml 中的頁數(shù)配置信息抽取出這次查詢的返回結(jié)果的總頁數(shù);依照GET或者 POST方式去獲取第一頁,根據(jù)配置文件中的信息,從config. xml中讀取 記錄xpath,將所有記錄抽出;從conf ig. xml中讀取屬性xpath以提出 記錄的各項(xiàng)屬性值;如果這條記錄還有詳細(xì)頁面的情況下根據(jù) config. xml中的配置獲取url,即獲取這條記錄的詳細(xì)頁面;/人 detail, xml中讀取屬性xpath,即才艮據(jù)詳細(xì)頁面的配置文件,將記錄詳 細(xì)頁面中的一些屬性值也抽取出來;以及獲取結(jié)果模塊,用于成功獲取 此次查詢結(jié)果。在這個方面中,其中如果抽取的頁數(shù)小于總頁數(shù),則會繼續(xù)抽取下 一頁,否則這個以這個關(guān)鍵字的查詢抽取就已經(jīng)完成。在這個方面中,其中查詢請求的方式有兩種,分別是GET方式和POST 方式,如果是GET方式,則會從config. xml中獲取需要發(fā)送的查詢字符 串;如果是POST方式,則會從配置文件中獲取需要POST過去的參數(shù)。本發(fā)明考慮了一種在保證高精確性的前"R下,盡量減少人工參與程 度的介于半自動與全自動之間的集成方法。提出了 一種以模擬用戶在某 個網(wǎng)站上實(shí)際點(diǎn)擊行為的方式,通過專門針對這個網(wǎng)站的配置文件,實(shí) 現(xiàn)對這個網(wǎng)站所有信息的集成以及對每條記錄各個屬性段的精確抽取, 并實(shí)現(xiàn)凄t據(jù)的動態(tài)更新的查詢結(jié)果集成辦法。
結(jié)合隨后的附圖,從下面的詳細(xì)說明中可顯而易見的得出本發(fā)明的 上述及其他目的、特征及優(yōu)點(diǎn)。在附圖中圖l給出了根據(jù)本發(fā)明的Deep Web數(shù)據(jù)集成系統(tǒng)的框架圖; 圖2給出了根據(jù)本發(fā)明的Deep Web的數(shù)據(jù)集成系統(tǒng)的數(shù)據(jù)流圖; 圖3給出了才艮據(jù)本發(fā)明的基于配置文件的集成系統(tǒng)的框架圖; 圖4給出了根據(jù)本發(fā)明的Deep Web查詢接口的示意圖;圖5給出了根據(jù)本發(fā)明的De印Web查詢結(jié)果列表的示意圖;圖6給出了才艮據(jù)本發(fā)明的HMTL轉(zhuǎn)換成XML示例;圖7給出了根據(jù)本發(fā)明的動態(tài)獲取網(wǎng)站入口的流程圖;圖8給出了統(tǒng)一集成單元的工作流程圖;以及圖9給出了統(tǒng)一集成單元的框架圖。
具體實(shí)施方式
本發(fā)明處理的是De印Web (深層網(wǎng)絡(luò))上的數(shù)據(jù)集成。與Google、 百度等通用搜索引擎有些類似。當(dāng)然, 一個關(guān)鍵的不同點(diǎn)是Google、 百度只能依照鏈接獲取頁面,因此所獲取的只是Surface Web (淺層網(wǎng)絡(luò)) 的內(nèi)容。而目前De印Web (深層網(wǎng)絡(luò))的數(shù)量是Surface Web (淺層網(wǎng) 絡(luò))的4倍,并且在繼續(xù)增多。因此在網(wǎng)絡(luò)上存在著大量普通搜索引擎 如Google、百度所4企索不到的資源。電子商務(wù)網(wǎng)站、工作信息網(wǎng)站等包 含查詢接口、搜索框的網(wǎng)站即是Deep Web (深層網(wǎng)絡(luò))的典型代表?,F(xiàn)在參考圖1,對基于上述思想的Deep Web數(shù)據(jù)集成系統(tǒng)框架圖進(jìn) 行詳細(xì)的說明。圖1給出了根據(jù)本發(fā)明的Deep Web數(shù)據(jù)集成系統(tǒng)的框架 圖。如圖l所示,該De印Web數(shù)據(jù)集成系統(tǒng)是一個四層結(jié)構(gòu)。 底層面向的領(lǐng)域是所要處理的Deep Web數(shù)據(jù)源,我們將其按照領(lǐng)域 進(jìn)行分類,可以分為圖書信息領(lǐng)域、工作信息領(lǐng)域、政府新聞領(lǐng)域等等。 由于我們的目標(biāo)是將所有數(shù)據(jù)集成到本地再進(jìn)行處理,但由于不同領(lǐng)域 的數(shù)據(jù)結(jié)構(gòu)大不相同,因此,我們在集成的時候,考慮的是面向領(lǐng)域的 數(shù)據(jù)集成。在該領(lǐng)域之上是數(shù)據(jù)集成模塊。該數(shù)據(jù)集成模塊主要分為兩塊基 于配置文件的數(shù)據(jù)集成系統(tǒng)(Config System),用于比較精確地對Deep Web上的數(shù)據(jù)進(jìn)行抽取與集成;普通檢索系統(tǒng)(Search System),用于搭 建大規(guī)模的、快速的、全自動的但準(zhǔn)確率稍低的集成系統(tǒng)。由于基于配 置文件的數(shù)據(jù)集成系統(tǒng)的特殊性,它更關(guān)注的是獲取精確的數(shù)據(jù),以及 Deep Web上那些普通搜索引擎無法爬取到的數(shù)據(jù)。但是規(guī)模也不可能過 大。作為對基于配置文件的數(shù)據(jù)集成系統(tǒng)的有力補(bǔ)充,本發(fā)明采用普通 檢索系統(tǒng)作為另一個數(shù)據(jù)集成途徑。它可以對De印Web網(wǎng)站中的SurfaceWeb進(jìn)行自動集成。同時也極大地增加我們的數(shù)據(jù)量。隨后對基于配置文 件的數(shù)據(jù)集成系統(tǒng)進(jìn)行更加詳細(xì)地說明。在數(shù)據(jù)集成到本地之后,需要考慮數(shù)據(jù)處理模塊(Data Process), 該數(shù)據(jù)處理模塊包括數(shù)據(jù)存儲單元,用于存儲集成抽取出來的各個網(wǎng) 站的數(shù)據(jù);索引單元,用于對集成來的數(shù)據(jù)屬性進(jìn)行索引以方便未來查 詢時的各項(xiàng);險索;以及全文索引單元,用于對集成過來的全部數(shù)據(jù)進(jìn)行 全文索引以處理大規(guī)模數(shù)據(jù)集成后的關(guān)鍵字檢索問題。當(dāng)這些數(shù)據(jù)的存 儲方式、索引方式,以及當(dāng)數(shù)據(jù)量過大時,該數(shù)據(jù)處理模塊可進(jìn)行有效 的全文索引以方便用戶將來查詢。在該框架圖的最頂層,就是基于該De印Web數(shù)據(jù)集成系統(tǒng)之上的應(yīng) 用,其包括因特網(wǎng)和WAP移動網(wǎng)上的應(yīng)用。在因特網(wǎng)上,我們可以利用 集成出來的數(shù)據(jù)提供給用戶進(jìn)行垂直搜索,也可以整合多個數(shù)據(jù)源產(chǎn)生 出數(shù)據(jù)混合(Mashup)應(yīng)用。在WAP移動網(wǎng)上,我們可以將集成到的數(shù) 據(jù)以簡單的形式提供給用戶,以便將因特網(wǎng)上的數(shù)據(jù)共享到WAP上,也 可以將數(shù)據(jù)提供給手機(jī)用戶進(jìn)行移動檢索。這四層構(gòu)成了整個Deep Web數(shù)據(jù)集成系統(tǒng)。圖2給出了該De印Web的數(shù)據(jù)集成系統(tǒng)的數(shù)據(jù)流圖。如圖2所示, 首先將Deep web中的大量數(shù)據(jù)先通過#4居本發(fā)明的集成方法(如圖8所 示)集成到本地服務(wù)器上,然后通過一個查詢接口,提供給用戶進(jìn)行檢 索,由于所有的檢索都是在本地完成,因此相對于接口集成來說,速度 將非??臁O旅鎸?shù)據(jù)集成模塊中的基于配置文件的數(shù)據(jù)集成系統(tǒng)進(jìn)行詳細(xì)地 說明。圖3給出了根據(jù)本發(fā)明的基于配置文件的集成系統(tǒng)的框架圖。該框 架圖就是圖1中的基于配置文件的集成系統(tǒng)的一個細(xì)化圖。如圖3所示,該基于配置文件的集成系統(tǒng)主要包括多個數(shù)據(jù)源, 例如De印Web數(shù)據(jù)、XML數(shù)據(jù)、以及其它提供接口查詢的網(wǎng)頁;多個配 置文件單元,這多個配置文件單元的每一個與上述多個數(shù)據(jù)源的每一個 相對應(yīng);統(tǒng)一的集成單元,用于集成底層的各個數(shù)據(jù)源并且利用數(shù)據(jù)源 所對應(yīng)的配置文件,采用統(tǒng)一的方式,對數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行抽取;以 及本地服務(wù)器,用于保存集成起來的所有數(shù)據(jù),這樣用戶檢索時,便可以直接在本地服務(wù)器上進(jìn)行檢索,提高效率。隨后對上述統(tǒng)一的集成單 元進(jìn)行更詳細(xì)的描述。該基于配置文件的集成系統(tǒng)利用統(tǒng)一的集成單元并且利用針對每一個網(wǎng)站的配置文件來對De印Web數(shù)據(jù)、XML數(shù)據(jù)、以及其它提供接口查 詢的網(wǎng)頁進(jìn)4亍集成。在每一個De印Web背后,雖然都有一個Web數(shù)據(jù)庫,但是對于用戶 來說,是無法直接訪問這些數(shù)據(jù)庫的。用戶只能通過De印Web網(wǎng)站所提 供的"l妄口,如圖4所示。適過這些接口 ,用戶可以通過查詢自己感興趣的信息。.網(wǎng)站會以一 個統(tǒng)一的形式生成HTML頁面,將查詢結(jié)果呈現(xiàn)給用戶。由于在這個過程 中,網(wǎng)頁是動態(tài)生成的,返回結(jié)果的數(shù)據(jù)也是在不斷變化的,同時,在 這一個過程中,可能還需要傳遞一些參數(shù),因此,De印Web網(wǎng)頁常常無 法被通用搜索引擎爬取。但是隨著Deep Web網(wǎng)站的數(shù)量的急劇增加,如 何有效地利用這些數(shù)據(jù),將信息方便地提供給用戶查詢,顯得越來越重 要。查詢結(jié)果一般是以列表的形式返回給用戶,我們將其定義為列表頁 面(List頁面),如圖5所示。在這些查詢結(jié)果中,記錄會以規(guī)整的形式展現(xiàn),每一條記錄又是由 多個屬性項(xiàng)組成的。而這些屬性項(xiàng), 一般是用戶提交此次查詢所最為關(guān) 注的內(nèi)容,其中一些屬性項(xiàng),又能夠鏈"l妄到更深一層的頁面。這個頁面, 是有關(guān)這條記錄的包含更多詳細(xì)信息的頁面,我們將這個頁面定義為 Detail頁面。當(dāng)我們面對Deep Web進(jìn)行數(shù)據(jù)集成的時候,需要將List頁面與 Detail頁面的信息都集成進(jìn)來。并且,為了提供給用戶更好的檢索服務(wù), 我們需要將這些數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理。這點(diǎn),也正是面向領(lǐng)域的數(shù)據(jù)集 成與通用集成的重要區(qū)別。由于HTML中的數(shù)據(jù)是一種非結(jié)構(gòu)化的數(shù)據(jù), 不方便進(jìn)行進(jìn)一步處理。為了能夠精確地從List頁面和Detail頁面中 抽取出每條記錄的屬性項(xiàng),我們將其轉(zhuǎn)換為XML進(jìn)行處理。如圖6所示,將網(wǎng)站動態(tài)生成的HTML頁面轉(zhuǎn)為XML頁面之后,我們 就可以使用XPath來進(jìn)行數(shù)據(jù)抽取。XPath是用于在XML文件上尋找信息 的一種語言,它可以通過XML文檔中的路徑索引,操縱XML文件上的元素和屬性。為此,我們需要針對網(wǎng)站的List頁面和Detail頁面分別寫 一個配置文件,通過這些配置文件獲得屬性項(xiàng)的XPath,然后在轉(zhuǎn)換生成 的XML文件中將屬性值抽取出來。只要使用特定規(guī)則,例如在職位搜索中按照行業(yè)類別查詢,就可訪 問到整個De印Web數(shù)據(jù)庫了 。這種方法的有點(diǎn)在于1、 能夠快速搭建起一個面向領(lǐng)域的集成系統(tǒng);2、 非常容易商業(yè)化。目前,我們已經(jīng)通過此系統(tǒng)在工作信息領(lǐng)域集 成了超過150萬條招聘信息,在政府新聞領(lǐng)域集成了近50萬條數(shù)據(jù),并 通過兩個網(wǎng)站JobTong (工作通)和GovTong (政務(wù)通)提供給外界進(jìn)行 搜索;3、 抽取準(zhǔn)確度高,抽取粒度細(xì)。這也是其它自動方法未能達(dá)到的目標(biāo)。4、 面向大規(guī)模數(shù)據(jù)。我們的方法并不是做一個簡單的應(yīng)用程序,而 是面對實(shí)際的海量的De印Web上的數(shù)據(jù);5、 模擬用戶點(diǎn)擊行為。使得這種方法既不獲取冗余數(shù)據(jù),也不會少 獲取數(shù)據(jù)。下面對圖3中的配置文件單元進(jìn)行詳細(xì)說明。在本發(fā)明中,需要針對每個被集成網(wǎng)站配置一組配置文件。通過這 組配置文件,程序能夠動態(tài)獲得該網(wǎng)站的入口,并發(fā)送不同的參數(shù)請求, 取回不同的結(jié)果數(shù)據(jù)。這樣我們就實(shí)現(xiàn)了動態(tài)訪問該網(wǎng)站的數(shù)據(jù)庫,并 取回我們想要的數(shù)據(jù)。因此,配置文件單元在整個數(shù)據(jù)集成系統(tǒng)中充當(dāng) 了封裝網(wǎng)站的作用?;谂渲梦募臄?shù)據(jù)集成系統(tǒng)需要的配置文件總共有三類Config. xml:被集成網(wǎng)站基本信息配置文件;Detail, xml:查詢結(jié)果詳細(xì)信息配置文件;List.xml:多個查詢?nèi)肟谂渲梦募F渲?,Detail.xml這類配置文件可能包含一至多個,其它兩類有且 只能有一個配置文件。在這組配置文件中,只有Config.xml是必須的, 這個配置文件中指定了如何通過GET或POST方式獲取記錄集的列表,以 及如何獲取記錄等最重要的配置信息。Detail, xml可能是網(wǎng)站詳細(xì)頁面的配置文件,其內(nèi)容是內(nèi)容就是詳細(xì)頁面上各個屬性值的xpath,由于一 個網(wǎng)站可能有多個模板,因此有可能會有多個Deatil.xml,我們將其分 別命名為Deatill. xml, Deati 12. xml等等。List, xml其實(shí)是多個入口 , 相當(dāng)于有多個"關(guān)鍵字",其主要內(nèi)容包含兩塊, 一部分是這個"關(guān)鍵字" 的中文名稱,另一部分是用來替換Config. xml中的"$querykeyword$"。 接下來對統(tǒng)一的集成單元進(jìn)行的詳細(xì)說明。本發(fā)明的系統(tǒng)試圖模擬用戶點(diǎn)擊行為,因此將所有De印Web上的數(shù) 據(jù)查詢請求抽象為三類第一類是查詢變量。這類變量體現(xiàn)了 De印Web上的動態(tài)特性,當(dāng)查 詢發(fā)送不同的變量值時,網(wǎng)站將返回不同的數(shù)據(jù)給我們。第二類是查詢常量。這些常量是相對于查詢變量而言,也就是說, 在整個查詢過程中,他們是可以不用改變的。當(dāng)然,查詢變量和查詢常 量之間沒有固定的界限,在一個查詢方案中的查詢常量可能是另一個查 詢方案中的查詢變量。第三類是翻頁過程。為了遍歷某一個查詢的所有數(shù)據(jù),要能夠自動 翻頁。在此過程中,需要發(fā)送一些查詢變量,但是,由于翻頁的特殊性, 這一過程具有可歸納性。例如,翻頁所發(fā)送的查詢變量一般為頁碼值, 或者是頁碼值的一個線性變換。由于一個網(wǎng)站要在頁面上能夠?qū)崿F(xiàn)翻頁,必然要有某種策略(例如 在GET或POST參數(shù)中添加頁碼信息)來實(shí)現(xiàn)瀏覽器中的翻頁,因此我們 就以程序來模擬瀏覽器中的這種翻頁過程。該過程如下如果查詢接口的請求發(fā)送方式是GET方式,則使用GET方法發(fā)送查 詢參數(shù);如果是POST方式,則使用POST方式發(fā)送查詢參數(shù)。然后統(tǒng)一 集成模塊就會取回采樣頁,并根據(jù)配置文件提取出總頁數(shù)TotalPages。 此后,統(tǒng)一集成模塊會依據(jù)此網(wǎng)站的翻頁策略,在GET參數(shù)或者POST參 數(shù)中動態(tài)修改頁碼信息,重新發(fā)送請求參數(shù),來獲取指定頁的查詢結(jié)果 頁面。這個過程從第一頁開始,到最后一頁(即TotalPages)結(jié)束,因 而稱為翻頁過程。有了這三類抽象,我們就能夠使用統(tǒng)一的方式動態(tài)獲取網(wǎng)站入口, 如圖7所示,首先從config.xml中讀取出這個網(wǎng)站的URL模式 (URLPattern),接著替換其中的查詢變量,保留查詢常量,利用上述翻頁過程設(shè)置頁碼,再才艮據(jù)不用的請求發(fā)送方式,如GET方式或者POST方 式,發(fā)送查詢請求和參數(shù),然后取回查詢結(jié)果。實(shí)現(xiàn)動態(tài)訪問網(wǎng)站之后,就能夠利用配置文件去網(wǎng)站提交一個查詢, 接著取回查詢結(jié)果的頁數(shù)。然后利用翻頁過程,將此查詢的所有查詢結(jié) 果一頁一頁取回,再根據(jù)配置文件中的xpath,將要抽取的數(shù)據(jù)獲得,并 存入本地數(shù)據(jù)庫中。圖8給出了統(tǒng)一集成單元的工作流程圖。如圖8所示,首先從 list, xml中讀取一個查詢關(guān)鍵字,然后根據(jù)config. xml中的配置發(fā)送查 詢請求。查詢請求的方式可能有兩種,分別是GET方式和POST方式,如 果是GET方式,則會從config. xml中獲取需要發(fā)送的查詢字符串;如果 是POST方式,則會從配置文件中獲取需要POST過去的參數(shù)。這樣就能 夠獲得一個采樣頁。再獲取這個采樣頁之后,根據(jù)config. xml中的頁數(shù) 配置信息抽取出這次查詢的返回結(jié)果的總頁數(shù),然后依照GET或者POST 方式去獲取第一頁,這樣就可以獲得一組返回結(jié)果記錄。根據(jù)配置文件 中的信息,將所有記錄抽出,并提出記錄的各項(xiàng)屬性值,如果這條記錄 還有詳細(xì)頁面,則可以#4居詳細(xì)頁面的配置文件,將記錄詳細(xì)頁面中的 一些屬性值也抽取出來。此時,如果抽取的頁數(shù)小于總頁數(shù),則會繼續(xù) 抽取下一頁,否則這個以這個關(guān)4建字的查詢抽取就已經(jīng)完成,/人list, xml 中取出下 一個關(guān)鍵字進(jìn)行查詢。圖9給出了能夠?qū)崿F(xiàn)圖8所示流程的統(tǒng)一集成單元的方框圖。如圖9 所示,讀取模塊從list, xml中讀取一個查詢關(guān)鍵字。發(fā)送模塊根據(jù) config. xml中的配置發(fā)送查詢請求。查詢請求的方式可能有兩種,分別 是GET方式和POST方式,如果是GET方式,則會從config. xml中獲取 需要發(fā)送的查詢字符串;如果是P0ST方式,則會從配置文件中獲取需要 P0ST過去的參數(shù)。獲取總頁數(shù)模塊這樣就能夠獲得一個采樣頁,再獲取 這個采樣頁之后,根據(jù)config. xml中的頁數(shù)配置信息抽取出這次查詢的 返回結(jié)果的總頁數(shù),然后獲取第一頁模塊依照GET或者POST方式去獲取 第一頁,這樣就可以獲得一組返回結(jié)果記錄。獲取記錄模塊根據(jù)配置文 件中的信息,從config. xml中讀取記錄xpath,將所有記錄抽出。獲耳又 記錄屬性值模塊從config. xml中讀取屬性xpath以提出記錄的各項(xiàng)屬性 值。如果這條記錄還有詳細(xì)頁面,獲取頁面模塊則根據(jù)config. xml中的配置獲取url,即獲取這條記錄的詳細(xì)頁面。獲取頁面屬性值模塊從 detail, xml中讀取屬性xpath,即才艮據(jù)詳細(xì)頁面的配置文件,將記錄詳 細(xì)頁面中的一些屬性值也抽取出來。此時,如果抽取的頁數(shù)小于總頁數(shù), 則會繼續(xù)抽取下一頁,否則這個以這個關(guān)鍵字的查詢抽取就已經(jīng)完成, 獲取結(jié)果模塊則成功獲取此次查詢結(jié)果,從list, xml中取出下一個關(guān)鍵 字進(jìn)行查詢。從以上描述可知,借助于本發(fā)明,可以快速地構(gòu)造出針對某一個具 體領(lǐng)域的集成范例。對于本領(lǐng)域的普通技術(shù)人員來說可顯而易見的得出其他優(yōu)點(diǎn)和修改。 因此,具有更廣方面的本發(fā)明并不局限于這里所示出的并且所描述的具 體說明及示例性實(shí)施例。因此,在不脫離由隨后權(quán)利要求及其等價體所 定義的一般發(fā)明構(gòu)思的精神和范圍的情況下,可對其做出各種修改。
權(quán)利要求
1. 一種面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng),包括數(shù)據(jù)源;數(shù)據(jù)集成模塊,用于將來自數(shù)據(jù)源的數(shù)據(jù)集成到本地;數(shù)據(jù)處理模塊,用于對集成到本地的數(shù)據(jù)進(jìn)行處理;以及應(yīng)用模塊,用于將集成出來的數(shù)據(jù)提供給用戶。
2、 根據(jù)權(quán)利要求1的面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng),其中數(shù)據(jù)集成模 塊包括基于配置文件的Web數(shù)據(jù)集成系統(tǒng),用于比較精確地對De印Web上 的數(shù)據(jù)進(jìn)行抽取與集成;以及普通檢索系統(tǒng),用于搭建大規(guī)模的、快速的、全自動的但準(zhǔn)確率稍 低的集成系統(tǒng)。
3、 根據(jù)權(quán)利要求1的面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng),其中數(shù)據(jù)處理模 塊包括數(shù)據(jù)存儲單元,用于存儲集成抽取出來的各個網(wǎng)站的數(shù)據(jù); 索引單元,用于對集成來的數(shù)據(jù)屬性進(jìn)行索引以方便未來查詢時的 各項(xiàng)4企索;以及全文索引單元,用于對集成過來的全部數(shù)據(jù)進(jìn)行全文索引以處理大 規(guī)模數(shù)據(jù)集成后的關(guān)鍵字檢索問題。
4、 根據(jù)權(quán)利要求2的面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng),其中基于配置文 件的數(shù)據(jù)集成系統(tǒng)包括多個數(shù)據(jù)源;多個配置文件單元,這多個配置文件單元的每一個與上述多個數(shù)據(jù) 源的每一個相對應(yīng);統(tǒng)一的集成單元,用于集成底層的各個數(shù)據(jù)源并且利用數(shù)據(jù)源所對 應(yīng)的配置文件,采用統(tǒng)一的方式,對數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行抽取;以 及本地服務(wù)器,用于保存集成起來的所有數(shù)據(jù),以^^用戶可以直接在 本地服務(wù)器上對數(shù)據(jù)進(jìn)行處理。
5、 根據(jù)權(quán)利要求4的面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng),其中統(tǒng)一的集成單元包括讀取才莫塊,用于乂人list, xml中讀取一個查詢關(guān)4t字; 發(fā)送模塊,用于根據(jù)config. xml中的配置發(fā)送查詢請求; 獲取總頁數(shù)模塊,用于根據(jù)config. xml中的頁數(shù)配置信息抽取出這 次查詢的返回結(jié)果的總頁數(shù);獲取第一頁模塊,用于依照GET或者POST方式去獲取第一頁; 獲取記錄模塊,用于根據(jù)配置文件中的信息,從config. xml中讀取 記錄xpath,將所有記錄抽出;獲取記錄屬性值模塊,用于從conf ig. xml中讀取屬性xpath以提出 記錄的各項(xiàng)屬性值;獲取頁面模塊,用于在如果這條記錄還有詳細(xì)頁面的情況下根據(jù) config. xml中的配置獲取url,即獲取這條記錄的詳細(xì)頁面; 獲取頁面屬性值模塊,用于從detail, xml中讀取屬性xpath,即根 據(jù)詳細(xì)頁面的配置文件,將記錄詳細(xì)頁面中的一些屬性值也抽取出 來;以及獲取結(jié)果模塊,用于成功獲取此次查詢結(jié)果。
6、 根據(jù)權(quán)利要求5的面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng),其中數(shù)據(jù)處理模 塊包括數(shù)據(jù)存儲單元,用于存儲集成抽取出來的各個網(wǎng)站的數(shù)據(jù); 索引單元,用于對集成來的數(shù)據(jù)屬性進(jìn)行索引以方便未來查詢時的 各項(xiàng)4企索;以及全文索引單元,用于對集成過來的全部數(shù)據(jù)進(jìn)行全文索引以處理大 規(guī)模數(shù)據(jù)集成后的關(guān)鍵字檢索問題。
7、 一種用在面向領(lǐng)域的數(shù)據(jù)集成系統(tǒng)中的面向領(lǐng)域的Web數(shù)據(jù)集成方法,所述面向領(lǐng)域的數(shù)據(jù)集成系統(tǒng)包括數(shù)據(jù)源、具有基于配置文件的數(shù) 據(jù)集成系統(tǒng)的數(shù)據(jù)集成模塊、數(shù)據(jù)處理模塊,以及應(yīng)用模塊,其中 基于配置文件的數(shù)據(jù)集成系統(tǒng)包括多個數(shù)據(jù)源、與上述多個數(shù)據(jù)源 的每一個相對應(yīng)多個配置文件單元、統(tǒng)一的集成單元、以及本地服 務(wù)器,該面向領(lǐng)域的數(shù)據(jù)集成方法包括 數(shù)據(jù)集成步驟,數(shù)據(jù)集成模塊將來自數(shù)據(jù)源的數(shù)據(jù)集成到本地; 數(shù)據(jù)處理步驟,數(shù)據(jù)處理模塊對集成到本地的數(shù)據(jù)進(jìn)行處理;以及應(yīng)用步驟,用于將集成出來的數(shù)據(jù)提供給用戶。
8、 根據(jù)權(quán)利要求7的面向領(lǐng)域的Web數(shù)據(jù)集成方法,其中數(shù)據(jù)集成步驟包括基于配置文件的數(shù)據(jù)集成步驟,用于比較精確地對De印Web上的數(shù) 據(jù)進(jìn)行抽取與集成;以及普通檢索步驟,用于搭建大規(guī)模的、快速的、全自動的但準(zhǔn)確率稍 低的集成系統(tǒng)。
9、 根據(jù)權(quán)利要求7的面向領(lǐng)域的Web數(shù)據(jù)集成方法,其中數(shù)據(jù)處理步驟包括存儲集成抽取出來的各個網(wǎng)站的數(shù)據(jù);對集成來的數(shù)據(jù)屬性進(jìn)行索引以方便未來查詢時的各項(xiàng)檢索;以及 對集成過來的全部數(shù)據(jù)進(jìn)行全文索引以處理大規(guī)模數(shù)據(jù)集成后的關(guān) 鍵字檢索問題。
10、 根據(jù)權(quán)利要求9的面向領(lǐng)域的Web數(shù)據(jù)集成方法,其中數(shù)據(jù)處理步 驟包括存儲集成抽取出來的各個網(wǎng)站的數(shù)據(jù);對集成來的數(shù)據(jù)屬性進(jìn)行索引以方便未來查詢時的各項(xiàng)檢索;以及對集成過來的全部數(shù)據(jù)進(jìn)行全文索引以處理大規(guī)模數(shù)據(jù)集成后的關(guān)鍵字檢索問題。
全文摘要
一種面向領(lǐng)域的Web數(shù)據(jù)集成系統(tǒng)和方法,其中該系統(tǒng)包括數(shù)據(jù)源;數(shù)據(jù)集成模塊,用于將來自數(shù)據(jù)源的數(shù)據(jù)集成到本地;數(shù)據(jù)處理模塊,用于對集成到本地的數(shù)據(jù)進(jìn)行處理;以及應(yīng)用模塊,用于將集成出來的數(shù)據(jù)提供給用戶。該面向領(lǐng)域的數(shù)據(jù)集成系統(tǒng)和方法可實(shí)現(xiàn)對數(shù)據(jù)源所有信息的集成以及對每條記錄各個屬性段的精確抽取,并實(shí)現(xiàn)數(shù)據(jù)的動態(tài)更新的查詢結(jié)果集成。
文檔編號G06F17/30GK101251852SQ20081005610
公開日2008年8月27日 申請日期2008年1月11日 優(yōu)先權(quán)日2008年1月11日
發(fā)明者孟小峰, 燦 林, 王仲遠(yuǎn) 申請人:孟小峰