專(zhuān)利名稱(chēng):一種可定制的Web信息集成方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種面向終端用戶的可定制的Web信息集成方法及其系統(tǒng),可以引導(dǎo) 用戶簡(jiǎn)單、快捷地定制信息集成應(yīng)用,并提供集成應(yīng)用的運(yùn)行環(huán)境,屬于軟件應(yīng)用技術(shù)領(lǐng) 域。
背景技術(shù):
Web2. 0時(shí)代的到來(lái),加速了網(wǎng)絡(luò)信息的爆炸式增長(zhǎng)。當(dāng)今的Internet上蘊(yùn)藏著海 量的數(shù)據(jù)和資源,種類(lèi)多、數(shù)量大,而且分布廣,不便于終端用戶對(duì)數(shù)據(jù)的精確查詢。另一方 面,用戶需要的信息一般是經(jīng)過(guò)對(duì)多個(gè)數(shù)據(jù)源數(shù)據(jù)的重組再加工得到。用戶在很多時(shí)候,需 要訪問(wèn)多個(gè)Web服務(wù)取得源數(shù)據(jù),然后手工地匯總、過(guò)濾,得到他感興趣部分,從而得到有 助于決策的信息。結(jié)果就是——伴隨著數(shù)據(jù)源的不斷豐富,作為終端用戶,想要獲取想要的 信息,不得不付出越來(lái)越多的時(shí)間和工作量成本。Mashup技術(shù)的產(chǎn)生從一定程度上解決這一問(wèn)題。Mashup作為一種交互式的Web 應(yīng)用程序,是Web2.0的特征之一,其能夠從Web上各種離散的數(shù)據(jù)源中獲取數(shù)據(jù),并集成這 些數(shù)據(jù)從而構(gòu)建出新的應(yīng)用。它將互聯(lián)網(wǎng)視為一個(gè)大的平臺(tái),讓非專(zhuān)業(yè)人士即終端用戶能 夠根據(jù)自己的需求能夠組合出全新的應(yīng)用,提升數(shù)據(jù)的價(jià)值。一般來(lái)說(shuō),有3種類(lèi)型的混搭 應(yīng)用表現(xiàn)型、數(shù)據(jù)型和邏輯型。Mashup應(yīng)用的重要意義在于合并了多個(gè)源的信息和服務(wù),和傳統(tǒng)的應(yīng)用相比, Mashup應(yīng)用的搭建更快捷。但是還是不能保證將開(kāi)發(fā)門(mén)檻降低至無(wú)編程基礎(chǔ)的終端用戶。 一些商業(yè)團(tuán)隊(duì)和研究人員,在意識(shí)到這個(gè)問(wèn)題之后,發(fā)布了 Mashup工具試圖改善這個(gè)問(wèn) 題。Yahoo Pipies (http://pipes, yahoo, com/pipes/)就是一個(gè)典型的成功案例,但是它的 局限性在于只能很方便的處理簡(jiǎn)單、少量的結(jié)構(gòu)化數(shù)據(jù),比如RSS。在大數(shù)據(jù)量、復(fù)雜數(shù)據(jù)結(jié)構(gòu)的Mashup應(yīng)用環(huán)境,對(duì)于終端用戶而言,Mashup工具 的學(xué)習(xí)成本也是很高的,要理解性能、程序并行及優(yōu)化、數(shù)據(jù)的ETL過(guò)程等諸多復(fù)雜的概念 和編程模型。而且,作為一個(gè)典型的Mashup工具,Yahoo Pipies提供的聚合僅在數(shù)據(jù)層面, 終端用戶如果要將Yahoo Pipies聚合的數(shù)據(jù)與自己的應(yīng)用Mashup或者為數(shù)據(jù)提供個(gè)性化 的UI,還是需要編程,并且依賴和受限制于Yahoo提供的服務(wù)。Yahoo Pipies的同類(lèi)工具 也存在相似不足之處。Mashup應(yīng)用的重要意義還在于,為Web上分布的、自治的、異構(gòu)的數(shù)據(jù)源提供強(qiáng)交 互性和個(gè)性化的訪問(wèn)接口。個(gè)性化體現(xiàn)在首先,用戶可以方便的選擇和添加數(shù)據(jù)源;其次,用戶可以選擇感 興趣的數(shù)據(jù)子集;第三,用戶可以選擇數(shù)據(jù)的展現(xiàn)方式,包括顯示外觀和顯示所使用的格式 (比如銷(xiāo)售人員選擇用列表形式查看客戶信息,配送人員選擇地圖顯示客戶信息以方便送 貨)。強(qiáng)交互性突出體現(xiàn)在邏輯型的Mashup應(yīng)用,這種應(yīng)用場(chǎng)景有更好的用戶體 驗(yàn),應(yīng)用之間的場(chǎng)景可以根據(jù)用戶的需要產(chǎn)生交互操作。考慮一個(gè)汽車(chē)集團(tuán)的市場(chǎng)部,部署了三個(gè)應(yīng)用系統(tǒng)銷(xiāo)售管理系統(tǒng)(Sale Management System,SM),客戶關(guān)系管理 系統(tǒng)(CustomerRelationship Management System, CRM)禾口 商務(wù)智能系統(tǒng)(Business Intelligence System,Bi) 0由于這三個(gè)系統(tǒng)是在不同的階段分別開(kāi)發(fā)與部署到企業(yè)的,因 此相互間完全獨(dú)立。一個(gè)新的Mashup應(yīng)用基于上述三個(gè)獨(dú)立系統(tǒng)構(gòu)建完成后,就能夠完成 三者之間的互操作,于是,市場(chǎng)經(jīng)理希望的事情發(fā)生了 通過(guò)在SM系統(tǒng)上選定某個(gè)訂單并 點(diǎn)擊特定的按鈕,該訂單的Consumer ID會(huì)自動(dòng)轉(zhuǎn)換并送到CRM系統(tǒng),同時(shí)自動(dòng)提交查詢請(qǐng) 求,然后,請(qǐng)求獲得的Occupation信息以及SM系統(tǒng)中的Date和Producer ID會(huì)轉(zhuǎn)換并傳 遞到BI系統(tǒng),同樣自動(dòng)提交查詢請(qǐng)求,從而僅僅通過(guò)一次鼠標(biāo)點(diǎn)擊動(dòng)作,在最終結(jié)果中同 時(shí)顯示市場(chǎng)經(jīng)理所需的全部信息。針對(duì)個(gè)性化可定制數(shù)據(jù)集的需求,在數(shù)據(jù)抽取系統(tǒng)的研究領(lǐng)域,已經(jīng)取得了不 少成果。ASByE (J· P· Lage,A. S. da Silva,P. B. Golgher, et al. Automatic generation of agents for collectinghidden Web pages for data extraction. Data &Knowledge Engineering,Vol.49, No. 2, 2004. Pages : 177-196.)禾口 Lixto(Baumgartner. R,F(xiàn)lesca. S,Gottlob. G. Visual Web Information withLixto. Proceedings of the 27th International Conference on VLDB,2001 :119-128.),都可以創(chuàng)建數(shù)據(jù) Mashup 的應(yīng)用,但 是定制應(yīng)用的過(guò)程相當(dāng)繁瑣,數(shù)據(jù)抽取需要用戶指定復(fù)雜的規(guī)則,不能自動(dòng)執(zhí)行。另外,與數(shù)據(jù)Mashup相關(guān)的,還有一些針對(duì)應(yīng)用集成策略研究的文章,提出將數(shù) 據(jù)集成封裝為 Gadget 或者 Service (Baumgartner. R, Campi. A, Gottlob. G, et al. Chapter 6 :ffeb DataExtraction for Service Creation, in Search Computing, S. Ceri and M. Brambi11a, Editors. 2010, Springer Berlin/Heidelberg, p. 94-113.)。綜上,已有的數(shù)據(jù)Mashup方法,缺點(diǎn)總結(jié)如下(1)如果需要構(gòu)建大數(shù)據(jù)量、復(fù)雜數(shù)據(jù)結(jié)構(gòu)的Mashup應(yīng)用,需要對(duì)Mashup工具所 提供服務(wù)的二次開(kāi)發(fā),因此不適用于終端用戶。(2)在數(shù)據(jù)層面能夠提供個(gè)性化的抽取和聚合,允許用戶指定感興趣的Web數(shù)據(jù) 集,系統(tǒng)代為抽取,但對(duì)于表示層,不能方便的設(shè)定個(gè)性化的顯示樣式和數(shù)據(jù)顯示方式。(3)應(yīng)用之間不可以根據(jù)用戶簡(jiǎn)單設(shè)定,產(chǎn)生交互操作,從而限制了邏輯型 Mashup的快速構(gòu)建。因此,需要一個(gè)簡(jiǎn)單易用、方便終端用戶定制的Web數(shù)據(jù)Mashup方法,該方法可以 在用戶參與最少的情況下自動(dòng)生成數(shù)據(jù)源的抽取規(guī)則,生成Mashup應(yīng)用,匯總多源數(shù)據(jù)并 以個(gè)性化的方式顯示,同時(shí)允許其他應(yīng)用訪問(wèn)和操作這一應(yīng)用。依照此方法開(kāi)發(fā)的Web信 息集成系統(tǒng),能夠達(dá)到引導(dǎo)用戶簡(jiǎn)單、快捷地定制信息集成應(yīng)用,并提供集成應(yīng)用的運(yùn)行環(huán) 境的目的。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中存在的問(wèn)題,提供面向終端用戶的可定制的 Web數(shù)據(jù)集成方法及系統(tǒng)。為保證快速創(chuàng)建Mashup應(yīng)用,保證終端用戶參與指導(dǎo)應(yīng)用的創(chuàng) 建,本發(fā)明將定制Mashup應(yīng)用的方法進(jìn)行了抽象,用戶只需要指定輸入(服務(wù)URL,也即 Mashup數(shù)據(jù)源)和感興趣的數(shù)據(jù)字段(下文也稱(chēng)為抽取字段),就相當(dāng)于實(shí)現(xiàn)了應(yīng)用的定 制。整個(gè)過(guò)程簡(jiǎn)單、快捷,無(wú)須用戶編程。
為了實(shí)現(xiàn)本發(fā)明方法的目的采用的技術(shù)方案概述如下一種可定制的Web信息集成方法,包括以下步驟1)由用戶指定不同服務(wù)數(shù)據(jù)源的URL集合;2)根據(jù)服務(wù)數(shù)據(jù)源類(lèi)型的不同,使用數(shù)據(jù)抽取器從服務(wù)數(shù)據(jù)源獲取記錄集合,由 用戶指定數(shù)據(jù)字段,生成對(duì)應(yīng)數(shù)據(jù)源的抽取規(guī)則;3)根據(jù)上述生成的抽取規(guī)則從不同數(shù)據(jù)源獲取數(shù)據(jù)并整理為結(jié)果記錄集合;4)使用過(guò)濾器過(guò)濾結(jié)果記錄集合,將集成數(shù)據(jù)輸出顯示。所述步驟1)每個(gè)URL所標(biāo)識(shí)的服務(wù),提供的數(shù)據(jù)結(jié)構(gòu)是相同的。所述步驟2)生成抽取規(guī)則后,進(jìn)一步使用過(guò)濾器進(jìn)行過(guò)濾。所述步驟2)數(shù)據(jù)抽取器利用無(wú)指導(dǎo)的數(shù)據(jù)抽取算法從服務(wù)數(shù)據(jù)源獲取記錄集
I=I O所述步驟3)采用有指導(dǎo)的數(shù)據(jù)抽取算法,包括5-1)去掉服務(wù)數(shù)據(jù)源頁(yè)面上無(wú)關(guān)的節(jié)點(diǎn)后表示為dom樹(shù),使用數(shù)據(jù)區(qū)域集合挖據(jù) 算法作用于dom樹(shù);5-2)在找出的節(jié)點(diǎn)集合上做層次聚類(lèi);5-3)計(jì)算數(shù)據(jù)區(qū)域的rank值,取值最大的為正確數(shù)據(jù)區(qū)域。所述過(guò)濾器為基于關(guān)鍵字的過(guò)濾和基于重復(fù)鍵值的過(guò)濾。為了實(shí)現(xiàn)本發(fā)明的另一目的,采用的技術(shù)方案如下一種可定制的Web信息集成系統(tǒng),其特征在于,包括服務(wù)調(diào)用模塊、服務(wù)組合模 塊、個(gè)性化輸出模塊,其中所述服務(wù)調(diào)用模塊包括內(nèi)置的數(shù)據(jù)抽取器,該模塊根據(jù)服務(wù)數(shù)據(jù)源類(lèi)型的不同, 自動(dòng)調(diào)用內(nèi)置的數(shù)據(jù)抽取器,將從不同數(shù)據(jù)源得到的數(shù)據(jù)統(tǒng)一整理為Web數(shù)據(jù)記錄集合, 傳遞給服務(wù)組合模塊。所述服務(wù)組合模塊包括過(guò)濾器,用于匯總和過(guò)濾已抽取的Web數(shù)據(jù)。所述輸出模塊設(shè)包括不同輸出方式的插件,該模塊從服務(wù)組合模塊取得數(shù)據(jù)并調(diào) 用相應(yīng)插件,分析并加入顯示元素后將數(shù)據(jù)顯示。還包括緩存管理模塊,用于負(fù)責(zé)服務(wù)調(diào)用和組合兩個(gè)層面的數(shù)據(jù)緩存。服務(wù)調(diào)用 層的緩存對(duì)象為從單個(gè)Web服務(wù)獲取的全部字段;服務(wù)組合層的緩存對(duì)象為單個(gè)用戶從組 合服務(wù)獲取的經(jīng)過(guò)聚合、過(guò)濾后的字段。還包括基礎(chǔ)服務(wù)模塊,用于提供基礎(chǔ)的服務(wù),其中包含單點(diǎn)登錄服務(wù),用于需要用 戶認(rèn)證之后才能抽取數(shù)據(jù)的用例場(chǎng)景中。所述插件包括若干標(biāo)準(zhǔn)接口和JSP模板頁(yè)。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下技術(shù)優(yōu)勢(shì)(1)適用于構(gòu)建大數(shù)據(jù)量、復(fù)雜數(shù)據(jù)結(jié)構(gòu)的Mashup應(yīng)用,構(gòu)建過(guò)程中的二次開(kāi)發(fā) 無(wú)需終端用戶參與編程。(2)在數(shù)據(jù)層面能夠提供個(gè)性化的抽取和聚合,允許用戶指定感興趣的Web數(shù)據(jù) 集,系統(tǒng)代為抽取,上升到表示層,也允許用戶方便的設(shè)定個(gè)性化的顯示樣式和數(shù)據(jù)顯示方 式。(3)應(yīng)用之間可以根據(jù)用戶簡(jiǎn)單設(shè)定,產(chǎn)生交互操作,因此能夠保證邏輯型
5Mashup的快速構(gòu)建。
圖Ia為本發(fā)明方法信息集成定制階段指定Web服務(wù)URL的示意圖;圖Ib為本發(fā)明方法信息集成定制階段指定數(shù)據(jù)字段的示意圖;圖2為本發(fā)明方法應(yīng)用階段的執(zhí)行示意圖;圖3為本發(fā)明方法中數(shù)據(jù)抽取算法流程圖;圖4為本發(fā)明系統(tǒng)中輸出模塊的插件框架示意圖;圖5為本發(fā)明系統(tǒng)中輸出模塊的核心類(lèi)示意圖;圖6為本發(fā)明實(shí)施例個(gè)性化輸出的效果示意圖;圖7為本發(fā)明涉及系統(tǒng)的整體架構(gòu)圖。
具體實(shí)施例方式以下結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。本發(fā)明方法詳細(xì)的定制過(guò)程如下用戶首先指定Web服務(wù)的URL,如圖Ia所示。假 設(shè)用戶想要的數(shù)據(jù)都來(lái)自一個(gè)服務(wù),但是數(shù)據(jù)跨越多頁(yè)或者多個(gè)RSS文件,用戶也可以在 這一步指定URL集合——前提是集合中每個(gè)URL所標(biāo)識(shí)的服務(wù),提供的數(shù)據(jù)結(jié)構(gòu)是相同的, 該前提確保了系統(tǒng)可以通過(guò)一個(gè)服務(wù)自動(dòng)產(chǎn)生抽取規(guī)則并將之作用于其它服務(wù)。典型的應(yīng) 用場(chǎng)景包括合并指定搜索引擎查詢結(jié)果的前N頁(yè)、合并多個(gè)新聞?dòng)嗛喌?。接下?lái),系統(tǒng)獲 得用戶輸入的首個(gè)URL,根據(jù)服務(wù)類(lèi)型的不同,自動(dòng)調(diào)用數(shù)據(jù)抽取器,并利用無(wú)指導(dǎo)的數(shù)據(jù) 抽取算法聰服務(wù)數(shù)據(jù)源獲取記錄集合,將之整理為表格顯示給用戶。由用戶選擇從服務(wù)數(shù) 據(jù)源獲取記錄集合,將之整理為表格顯示給用戶。由用戶選擇感興趣的數(shù)據(jù)字段,如圖Ib 所示,系統(tǒng)據(jù)此生成上述URL集合對(duì)應(yīng)的數(shù)據(jù)源的抽取規(guī)則。上述兩步可以重復(fù),系統(tǒng)允許用戶聚合多源的Web數(shù)據(jù),但用戶應(yīng)保證多源數(shù)據(jù) 之間的可比性,即數(shù)據(jù)字段結(jié)構(gòu)形同。數(shù)據(jù)源和抽取規(guī)則設(shè)置完成后,用戶還可以選擇添加 系統(tǒng)提供的幾種過(guò)濾器,如過(guò)濾相同記錄(基于key值),過(guò)濾關(guān)鍵字等,進(jìn)一步操縱多源 數(shù)據(jù)的整合。至此,單一Mashup應(yīng)用定制完成,自動(dòng)部署到PIIS系統(tǒng)中。這里,名詞單一Mashup 應(yīng)用僅僅為了區(qū)別于支持交互操作的Mashup應(yīng)用。用戶可以為部署在PIIS中的單一 Mashup應(yīng)用設(shè)置可處理事件和可發(fā)送事件以及事件的處理過(guò)程??傊?,PIIS為Mashup應(yīng)用 提供運(yùn)行環(huán)境和互操作的支持,定制完成后,用戶可以在任一時(shí)刻登錄PIIS,方便的訪問(wèn)這 一應(yīng)用,查看最新的匯總信息,還可以同時(shí)看到多個(gè)應(yīng)用之間的交互結(jié)果。對(duì)于單個(gè)聚合應(yīng) 用,用戶訪問(wèn)將觸發(fā)系統(tǒng)執(zhí)行數(shù)據(jù)集成的流程,該流程分為三個(gè)步驟,如圖2所示第一步, 系統(tǒng)根據(jù)輸入服務(wù)的類(lèi)型,自動(dòng)選用內(nèi)置的數(shù)據(jù)抽取器(對(duì)應(yīng)RSS/ATOM、WebPages、XML類(lèi) 型的服務(wù)數(shù)據(jù)源,系統(tǒng)內(nèi)置不同的數(shù)據(jù)抽取器),并根據(jù)定制產(chǎn)生的抽取規(guī)則將從不同數(shù)據(jù) 源得到的數(shù)據(jù)都整理為記錄集合。第二步,系統(tǒng)根據(jù)用戶定制的過(guò)濾器集合處理多源數(shù)據(jù) 的整合結(jié)果。最后,系統(tǒng)根據(jù)用戶選擇的輸出方式,調(diào)用對(duì)應(yīng)的個(gè)性化輸出插件,為最終結(jié) 果數(shù)據(jù)加入顯示元素,比如為地圖輸出的數(shù)據(jù)加入地理編碼,加入顯示元素后結(jié)果數(shù)據(jù)被 傳遞到相應(yīng)的模板頁(yè)顯示給用戶端的瀏覽器。模板頁(yè)根據(jù)用戶選擇的數(shù)據(jù)顯示方式自動(dòng)生成,默認(rèn)內(nèi)置的模板頁(yè)包括地圖顯示模板、列表顯示模板、表格顯示模板和日歷顯示模板。為了實(shí)現(xiàn)上述的信息集成方法,本發(fā)明提出一種個(gè)性化信息集成系統(tǒng)(PIIS), 能夠極大的方便終端用戶快速搭建數(shù)據(jù)Mashup應(yīng)用。PIIS系統(tǒng)實(shí)現(xiàn)基于門(mén)戶中間件 OncePortal(中科院軟件所.網(wǎng)馳平臺(tái)門(mén)戶中間件(OncePortal) [EB/0L]. (2007). http // www. once. org. cn.)。PIIS的基礎(chǔ)功能——單點(diǎn)登錄、訪問(wèn)控制、配置信息管理,均由OncePortal的底 層服務(wù)提供。PIIS部署的Mashup應(yīng)用,它們之間的互操作服務(wù)也由門(mén)戶中間件提供(宋 靖宇,魏峻,萬(wàn)淑超.門(mén)戶環(huán)境中基于語(yǔ)義數(shù)據(jù)協(xié)作應(yīng)用集成方法[J].軟件學(xué)報(bào),2007, 18(7) 1705-1714.)。選擇門(mén)戶作為本實(shí)施例方法的使用環(huán)境,因?yàn)殚T(mén)戶在應(yīng)用集成領(lǐng)域的實(shí)用性已經(jīng) 得到廣泛認(rèn)可。而且,門(mén)戶提供了上述多項(xiàng)基礎(chǔ)服務(wù),使得發(fā)明的實(shí)施可以更專(zhuān)注于核心步 驟的設(shè)計(jì)和實(shí)現(xiàn)。系統(tǒng)功能的實(shí)現(xiàn)由四個(gè)核心模塊支持,分別是服務(wù)調(diào)用模塊、服務(wù)組合模塊、個(gè) 性化輸出模塊和緩存管理模塊。服務(wù)調(diào)用、組合和個(gè)性化輸出模塊存在層次調(diào)用關(guān)系,數(shù)據(jù) 流由上而下的過(guò)程中完成抽取、聚合、過(guò)濾以及加入顯示元素,并最終整合轉(zhuǎn)化成統(tǒng)一的數(shù) 據(jù)格式,以用戶期望的方式輸出。為了進(jìn)一步提升方法的性能,對(duì)PIIS改進(jìn)設(shè)計(jì),加入數(shù)據(jù) 緩存和并行處理能力。系統(tǒng)的整體設(shè)計(jì)采用分層架構(gòu),如圖7所示。服務(wù)調(diào)用模塊的主要功能是完成數(shù)據(jù)的抽取。系統(tǒng)將根據(jù)服務(wù)類(lèi)型的不同,自動(dòng) 選用內(nèi)置的數(shù)據(jù)抽取器(如圖2所示),將從不同數(shù)據(jù)源得到的數(shù)據(jù)統(tǒng)一為系統(tǒng)預(yù)定義的格 式。在定制階段,抽取器的作用是生成抽取規(guī)則。定制完成后,在應(yīng)用運(yùn)行階段,各個(gè)抽取 器是并行工作的,依據(jù)抽取規(guī)則將不同源的Web數(shù)據(jù)取回,傳遞給服務(wù)組合模塊。服務(wù)組合 模塊的主要功能是匯總和過(guò)濾已抽取的Web數(shù)據(jù)。原型系統(tǒng)中實(shí)現(xiàn)的數(shù)據(jù)匯總和過(guò)濾,以 用戶為指導(dǎo),僅考慮了簡(jiǎn)單的基于關(guān)鍵字的過(guò)濾和基于重復(fù)鍵值的過(guò)濾,目前不涉及復(fù)雜 的算法。個(gè)性化輸出模塊設(shè)計(jì)為插件框架,對(duì)應(yīng)不同的輸出方式,自動(dòng)調(diào)用相應(yīng)插件,從服 務(wù)組合模塊取得數(shù)據(jù),分析并加入顯示元素(如地圖插件會(huì)自動(dòng)給包含位置關(guān)鍵字的數(shù)據(jù) 記錄加入相應(yīng)的地理編碼字段)后將數(shù)據(jù)傳至客戶端瀏覽器。用戶定制的信息集成應(yīng)用部署到系統(tǒng)中后,僅當(dāng)用戶訪問(wèn)這一應(yīng)用時(shí),才實(shí)際進(jìn) 行多源信息的整合,這保證了用戶得到的數(shù)據(jù)是最新的。這個(gè)過(guò)程以用戶請(qǐng)求為驅(qū)動(dòng),詳述 如下首先輸出模塊向服務(wù)組合模塊索取數(shù)據(jù);服務(wù)組合模塊將返回可用的緩存數(shù)據(jù),如 果緩存過(guò)期,則首先向服務(wù)調(diào)用模塊請(qǐng)求數(shù)據(jù),并對(duì)返回的數(shù)據(jù)進(jìn)行匯總、過(guò)濾,更新緩存。 服務(wù)調(diào)用模塊為服務(wù)組合提供數(shù)據(jù),也是優(yōu)先使用數(shù)據(jù)緩存,僅當(dāng)緩存不可用時(shí),才會(huì)并行 的調(diào)用多個(gè)抽取器,抽取器請(qǐng)求指定的Web服務(wù)并根據(jù)定制生成的抽取規(guī)則處理從服務(wù)處 獲取的源數(shù)據(jù)。最終,輸出模塊根據(jù)用戶設(shè)定的輸出方式將由服務(wù)組合模塊提供的匯總數(shù) 據(jù)顯示給用戶。緩存的引入是為了提高數(shù)據(jù)整合的效率,如前所述,緩存管理模塊負(fù)責(zé)服務(wù)調(diào)用 和組合兩個(gè)層面的數(shù)據(jù)緩存。服務(wù)調(diào)用層的緩存,緩存對(duì)象從單個(gè)Web服務(wù)獲取的全部字 段。服務(wù)組合層的緩存,緩存的對(duì)象為單個(gè)用戶從組合服務(wù)獲取的經(jīng)過(guò)聚合、過(guò)濾后的字 段。下文將詳細(xì)闡述方法實(shí)施過(guò)程和涉及的關(guān)鍵步驟。
驗(yàn)證本發(fā)明所采用Mashup應(yīng)用構(gòu)建場(chǎng)景描述如下以用戶需要構(gòu)建一個(gè)應(yīng)用——使用地圖顯示他所關(guān)心的城市的天氣狀況為例。數(shù) 據(jù)源用戶選用Yahoo的天氣服務(wù),但是該服務(wù)只允許每次查詢一個(gè)城市的天氣狀況。那么 如果要建立這樣一個(gè)地圖應(yīng)用,用戶需要重復(fù)的查詢每個(gè)城市天氣數(shù)據(jù),并依次將數(shù)據(jù)標(biāo) 記到在線地圖上。為避免手工執(zhí)行這些重復(fù)的查詢和標(biāo)記操作,用戶可以在PIIS上定制應(yīng)用。第 一步,指定輸入為 URL 集合(類(lèi)似 http://xml. weather, yahoo, com/forecastrss ? ρ = CHXX0008,可用其他城市的代碼替換ρ參數(shù)值)。一旦用戶完成一個(gè)服務(wù)URL的輸入,系統(tǒng) 會(huì)根據(jù)服務(wù)類(lèi)型的不同,自動(dòng)調(diào)用相應(yīng)的數(shù)據(jù)抽取器,獲取從輸入U(xiǎn)RL返回的記錄集合,這 時(shí)候進(jìn)行的是無(wú)指導(dǎo)的數(shù)據(jù)抽取。系統(tǒng)會(huì)將正確識(shí)別的記錄返回給用戶,由用戶選擇那些 記錄字段是他感興趣的,系統(tǒng)將自動(dòng)為這些字段生成基于XPath的抽取規(guī)則,忽略掉用戶 不感興趣的字段。在本應(yīng)用場(chǎng)景中,假設(shè)用戶想要的數(shù)據(jù)都來(lái)自Yahoo的天氣服務(wù),但是數(shù)據(jù)跨越 多頁(yè)或者多個(gè)RSS文件,因此用戶需要在這一步指定URL集合——前提是集合中每個(gè)URL 所標(biāo)識(shí)的服務(wù)。如果有其它更復(fù)雜的應(yīng)用場(chǎng)景,需要重復(fù)輸入不同服務(wù)的URL,則重復(fù)一、二 過(guò)程。如前所述,信息集成應(yīng)用在定制階段,PIIS系統(tǒng)需要支持無(wú)指導(dǎo)的數(shù)據(jù)抽取。因 此,PIIS在服務(wù)調(diào)用模塊設(shè)計(jì)實(shí)現(xiàn)了針對(duì)不同服務(wù)類(lèi)型的數(shù)據(jù)抽取算法。對(duì)應(yīng)新聞、天氣這類(lèi)服務(wù),響應(yīng)一般是返回RSS格式的數(shù)據(jù),因?yàn)镽SS數(shù) 據(jù)具有固定的XML Schema,處理起來(lái)相對(duì)容易,偽代碼表示如下所示。算法 GetDataRecordFromRss(String serviceURL)輸入服務(wù)URL輸出數(shù)據(jù)記錄集合1. CreateServiceRequestO ;2. Charset = GetResponseCharset ();3. XML = GetResponseString(Charset);4. XMLDom = XMLParser. parse (XML);5. DataRecordsList = XMLDom. getRoot (). getEe IementC channel" ). getElements (“ item");而對(duì)應(yīng)網(wǎng)頁(yè)類(lèi)型的Web服務(wù),由于HTML頁(yè)面是半結(jié)構(gòu)化的,完全自動(dòng)化、無(wú)指導(dǎo)的 數(shù)據(jù)抽取相對(duì)復(fù)雜,是本方法的研究難點(diǎn)。目前還沒(méi)有無(wú)需人工標(biāo)注的自動(dòng)化抽取算法, 能夠適應(yīng)任意網(wǎng)頁(yè)的數(shù)據(jù)抽取?,F(xiàn)有的研究成果中,能夠做到完全自動(dòng)抽取的方法都需要 附力口一些前提條件(Baumgartner. R, Gatterbauer. W, G. Gottlob. Web data extraction system. In :Encyclopedia of Database Systems 2009)如 RoadRunner 需要提供同一模板 生成的2個(gè)頁(yè)面;DeLa、MDR都要求頁(yè)面里含有重復(fù)模式。我們首先考察PIIS要集成的Mashup數(shù)據(jù)源,作為輸入的頁(yè)面,比如搜索的結(jié)果 頁(yè)、商品列表頁(yè)、送貨地址列表頁(yè),這類(lèi)網(wǎng)頁(yè)大多是利用預(yù)定義的模板動(dòng)態(tài)生成的,都存在 集中的數(shù)據(jù)區(qū)域。數(shù)據(jù)區(qū)域即包含數(shù)據(jù)記錄的HTML節(jié)點(diǎn)集中的頁(yè)面片段。數(shù)據(jù)區(qū)域的特 征是組成它的每個(gè)記錄節(jié)點(diǎn)的內(nèi)部結(jié)構(gòu)構(gòu)成一棵子樹(shù),同一個(gè)數(shù)據(jù)區(qū)域中的記錄節(jié)點(diǎn)存在相似的子樹(shù)結(jié)構(gòu),即重復(fù)模式。綜上,本發(fā)明在對(duì)要集成的信息的特點(diǎn)進(jìn)行了分析后,認(rèn)為基于重復(fù)模式的自動(dòng) 化抽取算法有很強(qiáng)的實(shí)用性,適用于本發(fā)明提出的系統(tǒng)使用場(chǎng)景,不需要多個(gè)網(wǎng)頁(yè)進(jìn)行就 能進(jìn)行抽取規(guī)則的學(xué)習(xí)。但是,現(xiàn)有的基于重復(fù)模式的數(shù)據(jù)抽取算法,正確率和效率都 不夠理想,因此,有人提出了 MDR的改進(jìn)算法MDR2(Zhai Yanhong, Liu Bing, Web data extraction based onpartial tree alignment,Proceedings of the 14th international conference on World Wide Web, MaylO—14,2005.)。本發(fā)明提出的數(shù)據(jù)抽取算法,總體流程如圖4所示。其中,數(shù)據(jù)區(qū)域集合的挖掘算 法,是對(duì)MDR的改進(jìn),受MDR2的啟發(fā),使用子樹(shù)相似度替代字符串的編輯距離聚類(lèi)數(shù)據(jù)區(qū) 域,降低了算法的時(shí)間復(fù)雜度。MDR2建議使用頁(yè)面Tag Tree進(jìn)行子樹(shù)匹配,而Tag Tree相 比D0M樹(shù),丟失了顯示樣式、文本標(biāo)記等關(guān)鍵信息,因此本發(fā)明使用D0M樹(shù)進(jìn)行子樹(shù)匹配,另 外,為了提高匹配效率,本發(fā)明首先對(duì)輸入頁(yè)面做清理。改進(jìn)后的數(shù)據(jù)區(qū)域的挖掘算法分為 兩步,解決了實(shí)驗(yàn)中發(fā)現(xiàn)的MDR2不能正確的抽取不同父節(jié)點(diǎn)下的數(shù)據(jù)記錄的問(wèn)題。流程的第一步,人為去除無(wú)關(guān)節(jié)點(diǎn)(<head>、〈script〉、〈style〉等,去除無(wú)關(guān)節(jié)點(diǎn) 的主要目的是對(duì)輸入頁(yè)面做清理從而提高算法效率)后的頁(yè)面可以表示為Dom樹(shù)T,T包含 根節(jié)點(diǎn)R。數(shù)據(jù)區(qū)域集合挖掘算法FindDRSet作用于T,從根節(jié)點(diǎn)R開(kāi)始,自頂向下逐層對(duì)每 個(gè)節(jié)點(diǎn)N的子節(jié)點(diǎn)C1,C2,…進(jìn)行基于相似度的聚類(lèi),認(rèn)為以C1,C2,…為根的子樹(shù),如果 兩兩之間的相似度超過(guò)了閾值(本發(fā)明中使用0.6作為相似度閾值),則可認(rèn)為(1丄2,… 節(jié)點(diǎn)是包含重復(fù)結(jié)構(gòu)的記錄節(jié)點(diǎn),那么N就是候選的數(shù)據(jù)區(qū)域的根節(jié)點(diǎn)。這個(gè)過(guò)程按照廣 度搜索T,一旦C1,C2,…被確定為是記錄節(jié)點(diǎn),不再對(duì)其下層子節(jié)點(diǎn)聚類(lèi)。相似度的計(jì)算公式如下
權(quán)利要求
1.一種可定制的Web信息集成方法,包括以下步驟1)由用戶指定不同服務(wù)數(shù)據(jù)源的URL集合;2)根據(jù)服務(wù)數(shù)據(jù)源類(lèi)型的不同,使用數(shù)據(jù)抽取器從服務(wù)數(shù)據(jù)源獲取記錄集合,由用戶 指定數(shù)據(jù)字段,生成對(duì)應(yīng)數(shù)據(jù)源的抽取規(guī)則;3)根據(jù)上述生成的抽取規(guī)則從不同數(shù)據(jù)源獲取數(shù)據(jù)并整理為結(jié)果記錄集合;4)使用過(guò)濾器過(guò)濾結(jié)果記錄集合,將集成數(shù)據(jù)輸出顯示。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟1)每個(gè)URL所標(biāo)識(shí)的服務(wù),提供的 數(shù)據(jù)結(jié)構(gòu)是相同的。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟2)生成抽取規(guī)則后,進(jìn)一步使用過(guò) 濾器進(jìn)行過(guò)濾。
4.如權(quán)利要求1所述的方法,其特征在于,所述步驟2)數(shù)據(jù)抽取器利用無(wú)指導(dǎo)的數(shù)據(jù) 抽取算法從服務(wù)數(shù)據(jù)源獲取記錄集合。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟3)采用的數(shù)據(jù)抽取算法,包括步驟5-1)去掉服務(wù)數(shù)據(jù)源頁(yè)面上無(wú)關(guān)的節(jié)點(diǎn)后表示為dom樹(shù),使用數(shù)據(jù)區(qū)域集合挖掘算法 作用于dom樹(shù);5-2)在找出的節(jié)點(diǎn)集合上做層次聚類(lèi);5-3)計(jì)算數(shù)據(jù)區(qū)域的rank值,取值最大的為正確數(shù)據(jù)區(qū)域。
6.如權(quán)利要求1或3所述的方法,其特征在于,所述過(guò)濾器為基于關(guān)鍵字的過(guò)濾或基于 重復(fù)鍵值的過(guò)濾。
7.一種可定制的Web信息集成系統(tǒng),其特征在于,包括服務(wù)調(diào)用模塊、服務(wù)組合模塊、 個(gè)性化輸出模塊,其中所述服務(wù)調(diào)用模塊包括內(nèi)置的數(shù)據(jù)抽取器,該模塊根據(jù)服務(wù)數(shù)據(jù)源類(lèi)型的不同,自動(dòng) 調(diào)用內(nèi)置的數(shù)據(jù)抽取器,將從不同數(shù)據(jù)源得到的數(shù)據(jù)統(tǒng)一整理為Web數(shù)據(jù)記錄集合,傳遞 給服務(wù)組合模塊;所述服務(wù)組合模塊包括過(guò)濾器,用于匯總和過(guò)濾已抽取的Web數(shù)據(jù);所述輸出模塊設(shè)包括不同輸出方式的插件,該模塊從服務(wù)組合模塊取得數(shù)據(jù)并調(diào)用相 應(yīng)插件,分析并加入顯示元素后將數(shù)據(jù)顯示。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,還包括緩存管理模塊,用于負(fù)責(zé)服務(wù)調(diào)用和 組合兩個(gè)層面的數(shù)據(jù)緩存,服務(wù)調(diào)用層的緩存對(duì)象為從單個(gè)Web服務(wù)獲取的全部字段;服 務(wù)組合層的緩存對(duì)象為單個(gè)用戶從組合服務(wù)獲取的經(jīng)過(guò)聚合、過(guò)濾后的字段。
9.如權(quán)利要求7所述的系統(tǒng),其特征在于,還包括基礎(chǔ)服務(wù)模塊,用于提供基礎(chǔ)的服 務(wù),其中包含單點(diǎn)登錄服務(wù),用于需要用戶認(rèn)證之后才能抽取數(shù)據(jù)的用例場(chǎng)景中。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述插件包括若干標(biāo)準(zhǔn)接口和JSP模板頁(yè)。
全文摘要
本發(fā)明公開(kāi)了一種可定制的Web信息集成方法及系統(tǒng),其方法包括1)由用戶指定不同服務(wù)數(shù)據(jù)源的URL集合;2)根據(jù)服務(wù)數(shù)據(jù)源類(lèi)型的不同,使用數(shù)據(jù)抽取器從服務(wù)數(shù)據(jù)源獲取記錄集合,由用戶指定數(shù)據(jù)字段,生成對(duì)應(yīng)數(shù)據(jù)源的抽取規(guī)則;3)根據(jù)上述生成的抽取規(guī)則從不同數(shù)據(jù)源獲取數(shù)據(jù)并整理為結(jié)果記錄集合;4)使用過(guò)濾器過(guò)濾結(jié)果記錄集合,將集成數(shù)據(jù)輸出顯示。本發(fā)明適用于構(gòu)建大數(shù)據(jù)量、復(fù)雜數(shù)據(jù)結(jié)構(gòu)的Mashup應(yīng)用,構(gòu)建過(guò)程中的二次開(kāi)發(fā)無(wú)需終端用戶參與編程;在數(shù)據(jù)層面能夠提供個(gè)性化的抽取和聚合,用戶方便的設(shè)定個(gè)性化的顯示樣式和數(shù)據(jù)顯示方式;能夠保證邏輯型Mashup的快速構(gòu)建。
文檔編號(hào)G06F17/30GK102004777SQ20101055443
公開(kāi)日2011年4月6日 申請(qǐng)日期2010年11月19日 優(yōu)先權(quán)日2010年11月19日
發(fā)明者于翔斐, 楊燕, 王帥, 魏峻 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所