專利名稱:一種聚合Web站點內(nèi)容的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及萬維網(wǎng)領(lǐng)域,更具體的說,涉及一種聚合Web站點內(nèi)容的 系統(tǒng)和方法。
背景技術(shù):
基于Web的內(nèi)容聚合應(yīng)用程序正在互聯(lián)網(wǎng)上逐漸興起,它們通常被稱 為Web聚合應(yīng)用(Mashup),這種應(yīng)用程序通過集成Web站點的功能和/ 或lt據(jù)來創(chuàng)建,形成一個整合應(yīng)用。例如,Housingmaps.com將Craigslist.org 上的公寓出租以及購買數(shù)據(jù)與Google的地圖呈現(xiàn)服務(wù)集成起來;而 Diggdot.us貝'J夸Digg.com、 Slashdot.org和Del.icio.us上與4支術(shù)有關(guān)的內(nèi) 容聚合起來。用戶只需訪問該Mashup應(yīng)用,即可得到網(wǎng)站最新內(nèi)容的聚 合視圖,避免了用戶經(jīng)常需要訪問 一個或多個網(wǎng)站并進行內(nèi)容聚合的重復(fù) 勞動。
一般來說,這樣的Mashup應(yīng)用是由掌握一定編程知識的開發(fā)人員來 創(chuàng)建的,不懂得編程知識的大眾用戶無法根據(jù)自己的個性化需求方便地進 行Web內(nèi)容的聚合。
為了方便大眾用戶按照自己的需求聚合Web站點的內(nèi)容,有必要提供 支持大眾用戶進行Web站點內(nèi)容聚合的系統(tǒng)。目前,也出現(xiàn)了一些幫助普 通用戶創(chuàng)建Mashup應(yīng)用的工具,例如
公開日期為2008年6月26日的公 開號為US 2008/0155440 Al的美國專利申請中提供的Yahoo! Pipes。它們 提供可視編輯器,讓用戶不需要編寫任何代碼,就可以使用現(xiàn)有網(wǎng)站的內(nèi) 容或功能來創(chuàng)建新的Web應(yīng)用(或服務(wù))。但是目前支持大眾用戶進行 Web站點內(nèi)容聚合的Mashup應(yīng)用構(gòu)建工具,對普通用戶來說仍然具有較 高的使用門搵 一方面,它們一般基于可視化"數(shù)據(jù)流建模"的方式提供 內(nèi)容聚合的用戶交互界面,例如,在Yahoo! Pipes中,其內(nèi)容聚合器的幾 個核心元素是模塊(module )、線(wire)和管(pipe )。其中,模塊是執(zhí) 行某任務(wù)的可視化模塊, 一個模塊包括一個輸入或/和輸出節(jié)點,線用來描 述模塊之間的輸入/輸出關(guān)系,用模塊之間的可視化連線表示;管實質(zhì)上是
5一系列數(shù)據(jù)處理指令,用多個模塊通過"線"的連接構(gòu)成的可視化"流程" 表示。對普通用戶來說,這種可視化數(shù)據(jù)流建模方式仍然是一種陌生的復(fù) 雜交互方式,例如輸入輸出的關(guān)聯(lián)操作,普通用戶通常難以理解;另一方 面,在這些工具中,內(nèi)容聚合的信息來源往往局限于系統(tǒng)所提供的有限的
"信息源",要聚合系統(tǒng)中尚未有的HTML網(wǎng)頁內(nèi)容,需要用戶掌握一定 的正則表達式知識,而這是普通用戶所不易理解的,例如,在Yahoo!Pipe 中,對于HTML格式的Web信息源,需用用戶自行編寫正則表達式得到 網(wǎng)頁上的內(nèi)容再與其他內(nèi)容進行聚合。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種支持大眾用戶對Web站點內(nèi)容進 行聚合的系統(tǒng)及方法,使用該系統(tǒng)和方法可以讓沒有任何編程知識的大眾 用戶,不需編寫任何程序代碼,即可將Web站點的HTML網(wǎng)頁、RSS內(nèi) 容等抽取出來,并構(gòu)造出對網(wǎng)站內(nèi)容進行處理或聚合的Mashup應(yīng)用。
為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種聚合Web站點 內(nèi)容的系統(tǒng),包括客戶端系統(tǒng),Mashup服務(wù)器,和包括一個或多個內(nèi) 容服務(wù)器的網(wǎng)絡(luò),其中
該客戶端系統(tǒng),用于通過該網(wǎng)絡(luò)訪問該一個或多個內(nèi)容服務(wù)器并接收 網(wǎng)頁內(nèi)容,并生成Mashup腳本;其中,該客戶端系統(tǒng)包括Mashup編輯 器,其用于根據(jù)用戶的交互將該網(wǎng)頁內(nèi)容封裝到信息源中,建立嵌套表格 數(shù)據(jù)模型并生成該Mashup腳本,該嵌套表格數(shù)據(jù)模型包括原子屬性及其 實例和/或元組屬性及其實例;
Mashup服務(wù)器,用于執(zhí)行該Mashup腳本對該信息源進行處理或聚合, 生成信息視包括一個或多個內(nèi)容服務(wù)器的網(wǎng)絡(luò),其中該內(nèi)容服務(wù)器用于通過該網(wǎng) 絡(luò)向該客戶端系統(tǒng)提供該網(wǎng)頁內(nèi)容。
在上述系統(tǒng)中,該Mashup服務(wù)器包括
Mashup處理模塊,用于執(zhí)行該Mashup腳本,根據(jù)該Mashup腳本對 該信息源進行處理或聚合。
在上述系統(tǒng)中,該Mashup編輯器包括
封裝到信息源;,建立嵌套表格數(shù)據(jù)模型,其中該嵌套表格數(shù)據(jù)模型包括
6原子屬性及其實例和/或元組屬性及其實例;
內(nèi)容聚合器,用于根據(jù)該用戶的交互生成該Mashup腳本。
在上述系統(tǒng)中,該內(nèi)容發(fā)現(xiàn)與標(biāo)注器還包括抽取規(guī)則生成模塊,用于 根據(jù)用戶的交互生成網(wǎng)頁抽取規(guī)則;
該內(nèi)容發(fā)現(xiàn)與標(biāo)注器,還用于識別該網(wǎng)頁內(nèi)容的內(nèi)容類型,如果該網(wǎng) 頁內(nèi)容是HTML內(nèi)容則根據(jù)該網(wǎng)頁抽取規(guī)則抽取為結(jié)構(gòu)化數(shù)據(jù),并將該結(jié) 構(gòu)化數(shù)據(jù)封裝到該信息源中,建立嵌套表格數(shù)據(jù)模型。
在上述系統(tǒng)中,該Mashup服務(wù)器包括內(nèi)容服務(wù)調(diào)用代理,其用于通 過該網(wǎng)絡(luò)訪問該一個或多個內(nèi)容服務(wù)器并根據(jù)該Mashup腳本接收該信息 源對應(yīng)的最新的網(wǎng)頁內(nèi)容,根據(jù)用戶的交互將該最新的網(wǎng)頁內(nèi)容封裝到該 信息源中,建立嵌套表格數(shù)據(jù)模型;
該Mashup服務(wù)器,還用于執(zhí)行該Mashup腳本對該封裝了該最新的 網(wǎng)頁內(nèi)容的信息源進行處理或聚合,生成信息視該包括一個或多個內(nèi)容服務(wù)器的網(wǎng)絡(luò),其中該內(nèi)容服務(wù)器還用于通過 該網(wǎng)絡(luò)向該內(nèi)容服務(wù)調(diào)用代理提供該最新的網(wǎng)頁內(nèi)容。
在上述系統(tǒng)中,該內(nèi)容發(fā)現(xiàn)與標(biāo)注器還包括抽取規(guī)則生成模塊,其用 于根據(jù)用戶的交互生成網(wǎng)頁抽取規(guī)則;
該內(nèi)容服務(wù)調(diào)用代理還用于識別該最新的網(wǎng)頁內(nèi)容的內(nèi)容類型,如果 該最新的網(wǎng)頁內(nèi)容是HTML內(nèi)容則根據(jù)該網(wǎng)頁抽取規(guī)則抽取為結(jié)構(gòu)化數(shù) 據(jù),根據(jù)用戶的交互將該結(jié)構(gòu)化數(shù)據(jù)封裝到該信息源中,建立嵌套表格數(shù) 據(jù)模型。
在上述系統(tǒng)中,該信息視圖包括內(nèi)容列表視圖、地理信息視圖、或 Excel表格。
在上述系統(tǒng)中,該一個或多個內(nèi)容服務(wù)器包括RSS內(nèi)容服務(wù)器或
HTML內(nèi)容服務(wù)器。
根據(jù)本發(fā)明的另 一方面,還提供一種聚合Web站點內(nèi)容的方法,包括 10)接收網(wǎng)頁內(nèi)容,根據(jù)用戶的交互將該網(wǎng)頁內(nèi)容封裝到信息源中,
建立嵌套表格數(shù)據(jù)模型并生成Mashup腳本,其中該嵌套表格數(shù)據(jù)模型包
括原子屬性及其實例和/或元組屬性及其實例;
20 )執(zhí)行該Mashup腳本對該信息源進行處理或聚合,生成信息視圖。 在上述方法中,步驟20)的處理包括對該嵌套表格數(shù)據(jù)模型的原子屬
性及其實例進行刪除,對該原子屬性進行重命名,或?qū)υ撛訉傩詫嵗M
7行排序、去重或替換。
在上述方法中,步驟20)的處理包括對該嵌套表格數(shù)據(jù)模型的元組屬 性及其實例進行刪除,對該元組屬性進行重命名,或?qū)υ撛M屬性實例進 行內(nèi)容截耳又或過濾。
在上述方法中,步驟20)的處理包括對該嵌套表格數(shù)據(jù)模型的元組屬 性及其實例進行折疊或去折疊。
在上述方法中,步驟20)的處理包括對該嵌套表格數(shù)據(jù)模型的原子屬
性實例進行算術(shù)或字符運算以增加新的該嵌套表格數(shù)據(jù)模型的原子屬性 及其實例。
在上述方法中,步驟20)的聚合包括對該嵌套表格數(shù)據(jù)模型的元組屬
性實例進行合并的聚合操作。
在上述方法中,步驟20 )的聚合包括對該嵌套表格數(shù)據(jù)模型進行新增 內(nèi)容服務(wù)的聚合操作。
在上述方法中,步驟10)還包括步驟 11 )識別該網(wǎng)頁內(nèi)容的內(nèi)容類型;
12)如果該內(nèi)容類型為HTML ,根據(jù)該用戶的交互生成網(wǎng)頁抽取規(guī)則,
據(jù)封裝到該信息源中,建立嵌套表格數(shù)據(jù)模型, A 在上述方法中,還包括步驟
30 )根據(jù)該Mashup腳本,接收該信息源對應(yīng)的最新的網(wǎng)頁內(nèi)容,才艮 據(jù)用戶的交互將該最新的網(wǎng)頁內(nèi)容封裝到該信息源中,建立嵌套表格數(shù)據(jù)
模型;
40 )執(zhí)行該Mashup腳本對該封裝了該最新的網(wǎng)頁內(nèi)容的信息源進行 處理或聚合,生成信息視圖。
本發(fā)明帶來的有益效果是1).本發(fā)明通過將網(wǎng)頁內(nèi)容封裝到信息源 中,建立嵌套表格數(shù)據(jù)模型,以基于"嵌套表格"的方式提供內(nèi)容聚合的 用戶交互界面,類似于Excel風(fēng)格,無需專門的編程知識,無需用戶熟悉 "數(shù)據(jù)流建模"的方式,符合大眾用戶使用習(xí)慣,降低了用戶的使用門檻。 2).本發(fā)明為用戶提供了對HTML網(wǎng)頁內(nèi)容進行發(fā)現(xiàn)、標(biāo)注、抽取和聚合 的集成交互界面,用戶可以通過簡單的鼠標(biāo)選取等操作將自己感興趣的網(wǎng) 頁內(nèi)容標(biāo)注、抽取出來,作為"信息源"導(dǎo)入到系統(tǒng)中與其他信息源進行作序列保存起來,可通過參數(shù)進行配置,可重復(fù)由Mashup服務(wù)器執(zhí)行, 大眾用戶無需編寫代碼,只需簡單操作即可構(gòu)造Mashup應(yīng)用。
圖1是根據(jù)本發(fā)明一個具體實施例的Web站點內(nèi)容聚合和通信網(wǎng)絡(luò)的 系統(tǒng)框圖。
圖2是根據(jù)本發(fā)明一個具體實施例的聚合Web站點內(nèi)容的Mashup應(yīng) 用構(gòu)造系統(tǒng)的結(jié)構(gòu)框圖。
圖3是根據(jù)本發(fā)明 一個具體實施例的信息源數(shù)據(jù)模型及其實例示意圖。
圖4是根據(jù)本發(fā)明一個具體實施例的關(guān)于"內(nèi)容聚合表格"中的"嵌 套表格"的用戶交互界面示意圖。
圖5是根據(jù)本發(fā)明一個具體實施例的嵌套表格"折疊"操作語義示意圖。
圖6是是根據(jù)本發(fā)明 一 個具體實施例的聚合Web站點內(nèi)容的方法流程圖。
圖7是根據(jù)本發(fā)明另一個具體實施例的聚合Web站點內(nèi)容的方法流程圖。
圖8根據(jù)本發(fā)明一個具體實施例的用于發(fā)現(xiàn)當(dāng)前網(wǎng)頁RSS信息源的 Mashup編輯器用戶交互界面示意圖。
圖9是根據(jù)本發(fā)明一個具體實施例的用于對當(dāng)前HTML網(wǎng)頁內(nèi)容進行 標(biāo)注的Mashup編輯器用戶交互界面示意圖。
圖10是根據(jù)本發(fā)明一個具體實施例的用于對一個信息源進行配置的用 戶交互界面示意圖。
圖11是根據(jù)本發(fā)明一個具體實施例的創(chuàng)建一個新的Mashup并導(dǎo)入兩 個信息源進行聚合的用戶交互界面示意圖。
圖12是根據(jù)本發(fā)明一個具體實施例的通過新增列的方式將兩個Source 的內(nèi)容進行聚合的界面示意圖。
圖13是根據(jù)本發(fā)明一個具體實施例的通過彈出菜單方式對當(dāng)前"內(nèi)容 聚合表格"中的一個或多個"列"進行算術(shù)或字符運算的界面示意圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖,對根據(jù)本發(fā)明 一 個實施例的聚合Web站點內(nèi)容的系統(tǒng)進一 步詳細說明。應(yīng)
當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本 發(fā)明。
圖l示出了根據(jù)本發(fā)明一個具體實施例的Web站點內(nèi)容聚合和通信網(wǎng) 絡(luò)的系統(tǒng)框圖。客戶端系統(tǒng)101通過因特網(wǎng)103與一個或多個內(nèi)容服務(wù)器 系統(tǒng)10^到104n建立連接。如這里所述,客戶端系統(tǒng)IOI被配置為與服 務(wù)器系統(tǒng)10+到104N中的任意一個或多個進行通信,訪問并接收媒體信 息和數(shù)據(jù),例如HTML網(wǎng)頁、RSS內(nèi)容。客戶端系統(tǒng)101生成對媒體信息 和數(shù)據(jù)進行處理、聚合的指令,客戶端系統(tǒng)101還被配置為與Mashup服 務(wù)器102進行通信,將上述指令發(fā)送給Mashup服務(wù)器102執(zhí)行。Mashup 服務(wù)器102被配置為與客戶端系統(tǒng)101進行通信,接收客戶端系統(tǒng)101生 成的指令并執(zhí)行。Mashup服務(wù)器102被配置為通過因特網(wǎng)103與內(nèi)容服 務(wù)器系統(tǒng)104!到104n中的任意一個或多個迸行通信,從而當(dāng)執(zhí)行來自客 戶端系統(tǒng)101的處理和聚合指令時,Mashup服務(wù)器102可實時從內(nèi)容服 務(wù)器系統(tǒng)獲取最新的媒體信息和數(shù)據(jù),按照指令進行數(shù)據(jù)的處理和聚合, 其中處理和聚合的指令被序列化為Mashup腳本。在所有處理和聚合操作 結(jié)束后,Mashup服務(wù)器102根據(jù)用戶設(shè)定的最終結(jié)果呈現(xiàn)方式,生成可 供客戶端系統(tǒng)顯示的"信息視圖"。內(nèi)容服務(wù)器系統(tǒng)10^到104N被配置為 可以通過因特網(wǎng)103向客戶端系統(tǒng)101和Mashup服務(wù)器102提供HTML 網(wǎng)頁或RSS內(nèi)容。
圖1所示系統(tǒng)中的若干個部件包括公知的部件,這些部件在此無需詳 細說明。例如客戶端系統(tǒng)101可以是諸如個人計算機(PC)、筆記本電腦、 個人數(shù)字助理(PDA)、智能手機或者能夠訪問因特網(wǎng)的任何計算設(shè)備。 客戶端系統(tǒng)101 —般運行瀏覽器程序,例如,微軟(Microsoft)的Internet Explorer 瀏覽器、MozillaFirefox 瀏覽器、或者在移動設(shè)備中使用的能 訪問因特網(wǎng)的瀏覽器等,從而允許客戶端系統(tǒng)101的用戶訪問、處理和查 看其通過因特網(wǎng)102從內(nèi)容服務(wù)器系統(tǒng)104,到104n荻得的信息和頁面。 客戶端系統(tǒng)101—般還包括一個或多個用戶接口設(shè)備,例如鍵盤、鼠標(biāo)、 觸摸屏等,用于與客戶端系統(tǒng)101上的瀏覽器提供的圖形用戶界面(GUI) 進行交互。Mashup服務(wù)器102可以是諸如服務(wù)器、個人計算機(PC )等 能夠訪問因特網(wǎng)、并且具有一定計算和存儲能力的計算設(shè)備。若客戶端系 統(tǒng)101為具有一定計算和存儲能力的計算設(shè)備,如個人計算機,則Mashup
10服務(wù)器102和客戶端系統(tǒng)101可以被配置為在物理上為同一計算設(shè)備。本 發(fā)明適于與因特網(wǎng)一起使用,因特網(wǎng)指特定的全球互聯(lián)網(wǎng)。然而,應(yīng)當(dāng)理 解,其他網(wǎng)絡(luò)可以用來替換因特網(wǎng),或者與因特網(wǎng)一起使用,例如局域網(wǎng)
LAN等。
本領(lǐng)域技術(shù)人員可以理解,用于實現(xiàn)本發(fā)明多個方面的計算機代碼可 以是C、 C++、 Java、 Javascript等代碼,或者可以在客戶端系統(tǒng)101 、 Mashup
圖2示出了根據(jù)本發(fā)明一個具體實施例的聚合Web站點內(nèi)容的 Mashup應(yīng)用構(gòu)造系統(tǒng)200的詳細結(jié)構(gòu)框圖。如圖所示,系統(tǒng)200包括HTML 內(nèi)容服務(wù)器204" RSS內(nèi)容服務(wù)器2042、其它內(nèi)容服務(wù)器204N、因特網(wǎng) 203、客戶端系統(tǒng)201和Mashup服務(wù)器202。
其中客戶端系統(tǒng)201包括Mashup編輯器205。 Mashup編輯器205是 一個提供給用戶對網(wǎng)頁內(nèi)容進行發(fā)現(xiàn)、標(biāo)注、處理和聚合的基于圖形用戶 界面的編輯環(huán)境,它包括內(nèi)容發(fā)現(xiàn)與標(biāo)注器207和內(nèi)容聚合器208??蛻?端系統(tǒng)201可還配置有專門的信息閱讀器215,用以顯示信息視圖,信息 閱讀器215可以是瀏覽器、也可以是Excel程序或者其他被配置為能夠顯 示對應(yīng)視圖的任何應(yīng)用程序。Mashup服務(wù)器202包括Mashup處理模塊 209、內(nèi)容服務(wù)調(diào)用代理模塊210以及視圖生成模塊214, Mashup服務(wù)器 202用于接收并執(zhí)行所述客戶端系統(tǒng)生成的Mashup腳本,生成可供信息 閱讀器215顯示的信息視圖。
內(nèi)容發(fā)現(xiàn)與標(biāo)注器207提供了對HTML頁面、含有RSS內(nèi)容的頁面 進行發(fā)現(xiàn)、抽取的"網(wǎng)頁發(fā)現(xiàn)和抽取圖形用戶界面(GUI)"。對來自互聯(lián) 網(wǎng)上內(nèi)容服務(wù)器的任一 頁面,內(nèi)容發(fā)現(xiàn)與標(biāo)注器207識別并發(fā)現(xiàn)該頁面所 包含的內(nèi)容,創(chuàng)建一個信息源(Source)的實例。其中,網(wǎng)頁內(nèi)容的識別方 法和網(wǎng)頁內(nèi)容中包含的RSS鏈接的發(fā)現(xiàn)方法,為本領(lǐng)域普通技術(shù)人員所公 知。信息源是一個封裝類,創(chuàng)建一個信息源的實例即實例化該封裝類,生 成該封裝類的一個對象。信息源包括名字、類型、網(wǎng)絡(luò)訪問地址、基本描 述和輸入?yún)?shù)等描述信息,作為網(wǎng)頁內(nèi)容的統(tǒng)一數(shù)據(jù)訪問接口 ,信息源對 網(wǎng)頁結(jié)構(gòu)化內(nèi)容進行封裝,它提供了一致的數(shù)據(jù)模型,用以表示網(wǎng)頁內(nèi)容 的結(jié)構(gòu)或模式(schema)。其數(shù)據(jù)模型采用"嵌套表格數(shù)據(jù)模型",該數(shù)據(jù)模 型包括一系列的屬性(attribute),每個屬性都可以包括其他屬性,該數(shù)據(jù)模 型用一個樹型的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)。圖3示出一個信息源的樹型數(shù)據(jù)結(jié)構(gòu)示
ii意圖,其中信息源封裝的網(wǎng)頁內(nèi)容表示電影的豆瓣評論信息。圖3的信息
源所對應(yīng)的數(shù)據(jù)模型可以表示為
Movie Items (title, director, actor, douban-movie (subjectID, title, movie-reviews(link, summary)*)*)
其中,Movie Items由title、 director、 actor、 douban movie等來描述, 它們都稱為嵌套表格數(shù)據(jù)模型的屬性。本發(fā)明稱由其他屬性來構(gòu)成的屬性 為"元組屬性(tuple attribute)",例如,Movie Items為"元組屬性",它由 title等四個子屬性(subattribute)構(gòu)成。title、 director、 actor沒有自己的子屬 性,本發(fā)明稱它們?yōu)?原子屬性(atom attribute)"。 "*"表示該屬性可以有 多個實例。
原子屬性的實例(instance)可以為任意字符串值,例如,"功夫熊貓" 為原子屬性"title"的一個實例。元組屬性的實例是由構(gòu)成該元組屬性的 每一個子屬性的實例構(gòu)成的,例如(OOOOl,"功夫熊貓",((http:〃link1,"某評 論摘要1……,,),0lttp:〃link2,"某評論摘要2……")……))為元組屬性 douban-movie的一個實例,其中,00001是原子屬性subjectID的一個實例, "功夫熊貓"為"title"的一個實例,(http://linkl,"某評論摘要1……")又
為元纟且屬性 movie-reviews的一個實例,而http:〃linkl 、"某i平i侖摘要1......,,
分別是原子屬性link和summary的一個實例。上述數(shù)據(jù)模型表示,在一個 douban-movie 實例中,包括原子屬性subjectID 、 title的 一 個實例,以及元 組屬性movie-reviews的一個或多個實例。
內(nèi)容發(fā)現(xiàn)與標(biāo)注器還可以包括抽取規(guī)則生成^^莫塊212。抽取規(guī)則生成 模塊212生成抽取規(guī)則,并根據(jù)所識別的內(nèi)容類型對需要抽取的網(wǎng)頁內(nèi)容 進行抽取。對于RSS內(nèi)容,由于本身是結(jié)構(gòu)化的內(nèi)容,因此將其轉(zhuǎn)換為嵌 套表格數(shù)據(jù)模型表示的結(jié)構(gòu)化數(shù)據(jù),封裝到信息源中。對于HTML內(nèi)容, 則進行抽取,如所公知的,抽取即從半結(jié)構(gòu)化的網(wǎng)頁中抽取出數(shù)據(jù),變?yōu)?結(jié)構(gòu)化的數(shù)據(jù),以方便對數(shù)據(jù)的處理和聚合。具體為根據(jù)用戶在內(nèi)容發(fā)現(xiàn) 與標(biāo)注器207所提供的網(wǎng)頁發(fā)現(xiàn)和抽取GUI中的交互對當(dāng)前網(wǎng)頁內(nèi)容進行 的標(biāo)注并生成網(wǎng)頁抽取^L則,進而抽取從而使該網(wǎng)頁內(nèi)容成為嵌套表格數(shù) 據(jù)模型表示的結(jié)構(gòu)化數(shù)據(jù),并將該結(jié)構(gòu)化數(shù)據(jù)封裝到信息源中,提供給該 網(wǎng)頁發(fā)現(xiàn)和抽取GUI顯示,其中網(wǎng)頁結(jié)構(gòu)化內(nèi)容抽取過程為公知的方法, 在此不作贅述。在本發(fā)明一個實施例中,客戶端系統(tǒng)201和Mashup服務(wù) 器202在物理上位于同一計算設(shè)備上,因此,信息源/網(wǎng)頁抽取規(guī)則211由
12客戶端系統(tǒng)201所包括的Mashup編輯器205負責(zé)存儲和維護。在其他實 施例中,信息源/網(wǎng)頁抽取j見則211可由Mashup服務(wù)器202進行存儲和維 護。
內(nèi)容聚合器208提供對HTML、 RSS等頁面內(nèi)容進行處理和聚合的"內(nèi) 容處理和聚合GUI",根據(jù)用戶與該內(nèi)容處理和聚合GUI的交互產(chǎn)生處理 和聚合指令,該指令經(jīng)過內(nèi)容聚合器208生成為Mashup腳本213,供 Mashup服務(wù)器202負責(zé)執(zhí)行。下面結(jié)合附圖詳細描述內(nèi)容聚合器208的 具體操作。
由于信息源釆用了如圖3所述的"嵌套表格數(shù)據(jù)模型",可以通過樹 的遍歷來將數(shù)據(jù)內(nèi)容呈現(xiàn)到嵌套表格上,根據(jù)本發(fā)明的一個具體實施例, 每個信息源所封裝的網(wǎng)頁內(nèi)容在內(nèi)容處理和聚合GUI中呈現(xiàn)為一個嵌套 表格。圖4以嵌套表格的形式呈現(xiàn)了圖3所示信息源所封裝的結(jié)構(gòu)化數(shù)據(jù), 其中原子列對應(yīng)于圖3中的"原子屬性"及其實例,復(fù)合列對應(yīng)于"元組 屬性,,及其實例。如圖4所示,"嵌套表格"由表結(jié)構(gòu)401、表內(nèi)容402構(gòu) 成。表結(jié)構(gòu)401刻畫了表內(nèi)容402的結(jié)構(gòu),它由原子列403、復(fù)合列404 以及新增列405構(gòu)成,每個原子列都對應(yīng)一個原子列菜單406,每個復(fù)合 列對應(yīng)一個復(fù)合列菜單407,新增列則對應(yīng)一個新增列菜單408。其中, 復(fù)合列是由多個原子列構(gòu)成的。每個復(fù)合列均對應(yīng)一個空白的新增列,該 新增列將來可以根據(jù)需要成為原子列或復(fù)合列,用以在聚合其他信息源所 封裝的結(jié)構(gòu)化數(shù)據(jù)時對表結(jié)構(gòu)進行擴展。
可作用在嵌套表格上的處理和聚合指令包括三大類,它們的語義分別 介紹如下
(1) .導(dǎo)入操作在內(nèi)容處理和聚合GUI中新建一個嵌套表格,根據(jù)一 個新的信息源,通過樹的遍歷,在嵌套表格中呈現(xiàn)信息源所封裝的數(shù)據(jù), 以便進一步處理和聚合。
(2) .處理操作以原子列為單位的刪除(Delete)、重命名(Rename)、內(nèi) 容排序(Sort)、去重(Merge instance)、替換(Replace)等操作;以復(fù)合列為單 位的刪除(Delete)、重命名(Rename)、截取(Head/Tail Truncate)、折疊(Nest)、 去折疊(Unnest)、過濾(Filter)等操作;對一個或多個"列"進行算術(shù)或字符 運算,并將其結(jié)果作為新增列的新增列(Add Function)操作。
其中,刪除、重命名、排序、過濾以及對一個或多個"列,,進行算術(shù) 或字符運算的新增列等操作為本領(lǐng)域技術(shù)人員所公知,在此不作贅述。"去重(Merge instance)"操作指將重復(fù)的記錄去掉,只保留一條記錄(行)。"替 換(Replace)"操作針對字符串類型的原子列,用以將字符串操作作用到該 原子列的每個值,并且替換掉原有的值,字符串操作表達式由用戶來設(shè)置。 "截取(Head/Tail Truncate)"操作指只保留開頭(Head)或結(jié)尾(Truncate)n條 記錄(行),其余的記錄均去掉,其中n可由用戶來設(shè)置。"折疊(Nest)/去 折疊(Nest)"是嵌套表格與普通表格之間的轉(zhuǎn)換操作,圖5示出了一個去 折疊實例,其中圖5a經(jīng)過"去折疊"操作成為圖5b,圖5b經(jīng)過"折疊" 操作成為圖5a。
(3).聚合操作對數(shù)據(jù)模型相匹配的多個信息源封裝的數(shù)據(jù)進行"合并 (Union)"的聚合操作;對存在輸入/輸出參數(shù)關(guān)聯(lián)關(guān)系的多個信息源封裝 的數(shù)據(jù)進行"新增內(nèi)容服務(wù)(Add service function)"聚合操作。
本領(lǐng)域普通技術(shù)人員可以理解上述處理操作均是根據(jù)需要的可選操 作,在具體實施例中可以選擇其中的任一操作或任何多個操作的組合。
上述每個操作指令均有形式化的描述,例如,導(dǎo)入操作可被描述為 import(sid, mapping,...),其中sid指被導(dǎo)入的信息源ID, mapping用以設(shè) 置該信息源的參數(shù)與mashup應(yīng)用的參數(shù)之間的映射關(guān)系;Delete操作描 述為delete(col),其中,col指列的名稱;其余操作的描述可依此類推,在 此不作贅述。用戶在內(nèi)容處理和聚合GUI中發(fā)起的所有操作,其操作指令 的描述序列化為 一 個XML文檔,稱為Mashup腳本。下面是一 個Mashup 腳本的例子。
< xml version="1.0" encoding="GBK" >
<mashup id="xx" name="movie mashup" description-"" encoding="GBK"> <params><param name二"city'' label="city">Beijing</param></params> <script>
<import ref-service="googlemovieDSId" ref-datasheet=''sheet1" id="xx">
<mapping id="xx" param-name="city" style="MASHUP_PARAM" ref-mashup-param="city" /> </import>
<serviceFunction ref-type="sheet1 :items" ref-service=''DoubanMoWeSearc/7。S'' id="xx"> <mapping id="xx" param-name="search_text" style='TYPE" ref-atom="items/title" /> </servicel^uriction>
<filter ref-type="sheet1: items" id="xx">
<and><atom atom-key="items/items/title" rop="CONTAINS" ref-to-type="items/title" /></and> </filter>
<serviceFunction ref-type="sheet1:items" ref-service="。oujban/WoWeReWewDS'' id="xx">
<mapping id="xx" param-name="subject" style="TYPE" ref-atom="ltems/ltems/subjectlD" /> </servicefunction> </script> </m3shup>
在該例中,首先導(dǎo)入一個Google Movie^l叟索的信息源,其次,用該信 息源中的原子屬性"title"作為"豆瓣搜索"信息源的輸入?yún)?shù),得到Google Movie信息源與豆瓣搜索信息源的聚合結(jié)果。然后,對搜索結(jié)果進行過濾, 將豆瓣搜索結(jié)果中原子屬性"title"與Google Movie中原子屬性"title"
14不相等的實例過濾掉。最后,以豆瓣搜索結(jié)果中原子屬性"subjectID"作 為"豆瓣電影評論搜索"信息源的輸入?yún)?shù),得到最終聚合結(jié)果,即Google 最新影訊及其在豆瓣上的電影評論。在該腳本中,"ref-service"指信息源 的名字;"ref陽datasheet,,指嵌套表格的名字;"ref-atom"指原子列的標(biāo)識, 用其對應(yīng)的原子屬性的路徑名表示;"id"指該操作指令的標(biāo)識,為系統(tǒng)隨 機生成的全局惟一標(biāo)識,為節(jié)省空間,這里省略為"xx";腳本中其余標(biāo) 簽的語義依此類推。
如上所述系統(tǒng)中的Mashup服務(wù)器202包括Mashup處理模塊209、內(nèi) 容服務(wù)調(diào)用代理才莫塊210以及視圖生成模塊214。其中Mashup處理模塊 209負責(zé)解析執(zhí)行Mashup腳本213,按照腳本中的指令對先前創(chuàng)建的信息 源所封裝的結(jié)構(gòu)化數(shù)據(jù)進行處理和聚合。Mashup處理模塊209被配置為 執(zhí)行所述Mashup腳本從而對所述嵌套表格數(shù)據(jù)模型的原子屬性及其實例 進行刪除、對原子屬性進行重命名、對原子屬性的實例進行排序、去重或 替換,對元組屬性及其實例進行刪除、對元組屬性進行重命名、對元組屬 性實例進行內(nèi)容截取或過濾,對元組屬性及其實例進行折疊或去折疊,對 原子屬性實例進行算術(shù)或字符運算以增加新的原子屬性及其實例,或者對 元組屬性實例進行合并;以及對存在輸入/輸出參數(shù)關(guān)聯(lián)關(guān)系的多個信息源 所封裝的結(jié)構(gòu)化數(shù)據(jù)進行聚合。
在實現(xiàn)時,腳本中的上述操作指令,對于"導(dǎo)入"操作,由Mashup 處理模塊將信息源所封裝的結(jié)構(gòu)化數(shù)據(jù)呈現(xiàn)為嵌套表格;對除"導(dǎo)入"操 作外的其他操作,均由Mashup處理模塊轉(zhuǎn)換為樹型數(shù)據(jù)結(jié)構(gòu)上"原子屬 性"、"元組屬性,,及其實例的修改、增加、刪除的基本運算,從而得到執(zhí) 行結(jié)果。
當(dāng)重新執(zhí)行腳本中特定信息源的"導(dǎo)入"操作時,內(nèi)容服務(wù)調(diào)用代理 210實時獲取內(nèi)容服務(wù)器所提供的HTML或RSS內(nèi)容,根據(jù)指令中信息源 的標(biāo)識,識別內(nèi)容服務(wù)器所提供的媒體類型(HTML或RSS內(nèi)容)。對 HTML類型的網(wǎng)頁內(nèi)容,還根據(jù)網(wǎng)頁抽取規(guī)則匹配最新網(wǎng)頁內(nèi)容,得到最 新網(wǎng)頁的結(jié)構(gòu)化數(shù)據(jù)。從而將RSS內(nèi)容或HTML類型網(wǎng)頁的結(jié)構(gòu)化數(shù)據(jù) 封裝到信息源。
視圖生成模塊214將Mashup處理模塊209生成的結(jié)果生成可供信息 閱讀器215顯示的各種信息視圖,例如內(nèi)容列表視圖、在地圖上顯示信息 的地理信息視圖、Excel表格形式的視圖等。本領(lǐng)域普通技術(shù)人員可以理解,圖1和圖2所示系統(tǒng)為優(yōu)選實施例的
示意圖。Mashup服務(wù)器也可以不與網(wǎng)絡(luò)相連接,在此情況下,Mashup服 務(wù)器則不能通過網(wǎng)絡(luò)從內(nèi)容服務(wù)器實時獲取網(wǎng)頁最新內(nèi)容,進而每次聚合 Web站點內(nèi)容,都從客戶端系統(tǒng)接收網(wǎng)頁內(nèi)容,再進行處理和聚合操作。 利用上述系統(tǒng)的聚合Web站點內(nèi)容的方法可以分為Mashup應(yīng)用的 "構(gòu)造"和"運行"兩個階段。在構(gòu)造階段,系統(tǒng)接收用戶的Web站點內(nèi) 容處理和聚合指令,生成并執(zhí)行Mashup腳本,并呈現(xiàn)聚合結(jié)果,從而將 一個或多個信息源經(jīng)處理、聚合后生成復(fù)合信息源(一個復(fù)合信息源又可 稱之為一個Mashup應(yīng)用);在下一次打開該Mashup應(yīng)用運行時,系統(tǒng)重 復(fù)執(zhí)行該Mashup腳本,從網(wǎng)站獲得最新站點內(nèi)容并進行處理和聚合,并 為用戶呈現(xiàn)聚合結(jié)果。
圖6示出了一個基于圖2所示系統(tǒng)的方法流程圖。該流程圖僅是示例 性的,本領(lǐng)域技術(shù)人員將認識到各個步驟可以被添加、刪除和/或修改,并 且被認為仍在本發(fā)明的范圍內(nèi)。因此,該示例性實施例不應(yīng)當(dāng)被看作是對 由權(quán)利要求書限定的發(fā)明的限制。下面詳細描述該方法在Mashup構(gòu)造階 段的流程
步驟601,通過用戶使用瀏覽器打開某網(wǎng)站的頁面,并點擊"Discover Sources"按鈕來接收當(dāng)前打開網(wǎng)頁的網(wǎng)頁內(nèi)容。
步驟602,識別網(wǎng)頁內(nèi)容的類型為HTML內(nèi)容或RSS內(nèi)容,發(fā)現(xiàn)網(wǎng)頁 內(nèi)容中包含的RSS鏈接,創(chuàng)建信息源。
步驟603,根據(jù)步驟602識別的內(nèi)容類型,判斷是否對內(nèi)容進行抽取, 若內(nèi)容類型為HTML則進行步驟604,否則進行步驟605;
步驟604,對網(wǎng)頁內(nèi)容進行抽取,具體為根據(jù)用戶在內(nèi)容發(fā)現(xiàn)與標(biāo)注 器207所提供的網(wǎng)頁發(fā)現(xiàn)和抽取GUI中的交互對當(dāng)前網(wǎng)頁內(nèi)容進行的標(biāo)注 并生成網(wǎng)頁抽取規(guī)則,進而抽取從而使該網(wǎng)頁內(nèi)容成為嵌套表格數(shù)據(jù)模型 表示的結(jié)構(gòu)化數(shù)據(jù),并將該結(jié)構(gòu)化數(shù)據(jù)封裝到信息源中。
步驟605,網(wǎng)頁內(nèi)容為RSS數(shù)據(jù),將其轉(zhuǎn)換為嵌套表格數(shù)據(jù)模型表示 的結(jié)構(gòu)化數(shù)據(jù),封裝到信息源中。
步驟606,根據(jù)用戶在內(nèi)容聚合器208所提供的內(nèi)容處理和聚合GUI 中的交互,對信息源所封裝的結(jié)構(gòu)化數(shù)據(jù)進行操作,生成Mashup腳本。 步驟607,由Mashup處理模塊209解析執(zhí)行Mashup腳本,得到聚合
16內(nèi)容。此時,若結(jié)束Mashup應(yīng)用構(gòu)造過程,則視圖生成模塊214根據(jù)用 戶設(shè)定的視圖類型,生成信息源聚合結(jié)果的信息視圖,否則重復(fù)進入步驟 306,根據(jù)用戶操作,更新Mashup腳本。
一旦上述Mashup應(yīng)用已經(jīng)構(gòu)造好,當(dāng)用戶下一次打開該Mashup應(yīng) 用時,系統(tǒng)即重新執(zhí)行該腳本,并由Mashup服務(wù)器202實時從網(wǎng)站獲得 最新內(nèi)容,因此用戶每次打開Mashup應(yīng)用得到的均是各網(wǎng)站最新內(nèi)容的 聚合結(jié)果。圖7示出了 一個基于圖2所示系統(tǒng)的方法在用戶打開該Mashup 應(yīng)用時重復(fù)執(zhí)行的方法流程圖。該方法具體包括下述步驟在步驟701中, Mashup處理模塊根據(jù)在構(gòu)造階段生成的Mashup腳本,按照腳本指令中信 息源的標(biāo)識,獲取信息源的描述信息,通過信息源提供的統(tǒng)一數(shù)據(jù)訪問接 口,調(diào)用內(nèi)容服務(wù)調(diào)用代理,通過HTTP請求獲取該信息源對應(yīng)的網(wǎng)頁內(nèi) 容。在步驟702中,根據(jù)信息源的描述信息,識別當(dāng)前獲取的網(wǎng)頁內(nèi)容類 型,判斷是否對內(nèi)容進行抽取。若網(wǎng)頁內(nèi)容類型為HTML則進行步驟703, Mashup處理模塊根據(jù)系統(tǒng)在Mashup構(gòu)造階段生成的網(wǎng)頁抽取規(guī)則對網(wǎng)頁 內(nèi)容進行抽取,得到結(jié)構(gòu)化數(shù)據(jù)并封裝進信息源;否則進行步驟704。在 步驟704中,將RSS網(wǎng)頁內(nèi)容封裝進信息源中。在步驟705中,根據(jù)系統(tǒng) 在構(gòu)造階段生成的Mashup腳本,Mashup處理模塊對上述信息源所封裝的 結(jié)構(gòu)化數(shù)據(jù)進行處理和聚合。在步驟705中,根據(jù)用戶設(shè)定的視圖類型, 視圖生成模塊214生成可供顯示的信息視圖。
下面詳細描述根據(jù)本發(fā)明 一個實施例的各個圖形用戶界面的實例示 意圖。
圖8示出了根據(jù)本發(fā)明一個實施例的Mashup編輯器的"網(wǎng)頁發(fā)現(xiàn)和 抽取圖形用戶界面(GUI)" 和"內(nèi)容處理和聚合GUI"共有的兩個界面 模塊信息源(Source) 801、復(fù)合信息源(Mashup應(yīng)用,其由多個信息 源聚合而成)802。其中,Source是構(gòu)建Mashup的基本構(gòu)成元素。"Create a Mashup"按鈕803用以創(chuàng)建一個新的"Mashup", "Discover Sources" 按 鈕804用以發(fā)現(xiàn)并增添Source到Source列表中。根據(jù)本發(fā)明的一個實施 例,Source有兩種類型HTML網(wǎng)頁內(nèi)容、RSS內(nèi)容。
當(dāng)用戶通過在當(dāng)前網(wǎng)站打開的頁面中選擇發(fā)現(xiàn)網(wǎng)頁信息源請求時,內(nèi) 容發(fā)現(xiàn)與標(biāo)注器207發(fā)現(xiàn)并識別當(dāng)前頁面的內(nèi)容,從而創(chuàng)建一個新的 Source。圖8還示出了包括"Discover Sources"按鈕804在內(nèi)的示例當(dāng)前 頁面。通過點擊"Discover Sources"按鈕804,用戶指引內(nèi)容發(fā)現(xiàn)與標(biāo)注
17器207解析當(dāng)前頁面,從中識別當(dāng)前網(wǎng)頁的類型,進而創(chuàng)建一個信息源。
圖8還示出了在"百度新聞RSS訂閱"的當(dāng)前頁面上發(fā)現(xiàn)并創(chuàng)建1個RSS 信息源805的示例。對于HTML內(nèi)容類型的Source,當(dāng)用戶選擇"高亮 (Highlight)"進行標(biāo)注請求時,抽取規(guī)則生成模塊212根據(jù)用戶標(biāo)注生成 網(wǎng)頁抽取規(guī)則。圖9示出了根據(jù)本發(fā)明一個實施例的對一個HTML內(nèi)容類 型的來自"電影資料庫IMDB中文網(wǎng)(http:〃www.imdb.cn)"的當(dāng)前示例網(wǎng) 頁進行標(biāo)注請求及其請求后的結(jié)果頁面。在圖9的示例中,當(dāng)用戶將鼠標(biāo) 停留在當(dāng)前網(wǎng)頁一個電影海報圖片鏈接元素上,點擊右鍵菜單中的
"Highlight Selected Link"按鈕卯l時,抽取規(guī)則生成模塊212響應(yīng)用戶 請求生成網(wǎng)頁抽取規(guī)則和相應(yīng)的結(jié)構(gòu)化數(shù)據(jù)。其中,結(jié)構(gòu)化的數(shù)據(jù)實時顯 示到"Source Chart"視圖卯3中。"View Source Chart"按鈕902被配置 為響應(yīng)用戶請求來顯示當(dāng)前網(wǎng)頁抽取規(guī)則作用的結(jié)果。
在經(jīng)過上述發(fā)現(xiàn)網(wǎng)頁內(nèi)容并創(chuàng)建Source的過程之后, 一個新創(chuàng)建的 Source包括名字、類型、網(wǎng)絡(luò)訪問地址、基本描述、輸入?yún)?shù)等信息,并 提供配置選項來允許用戶配置該Source的名字、基本描述和輸入?yún)?shù)。圖 10示出了根據(jù)本發(fā)明一個實施例的對Source進行配置的示例。頁面1000 為在百度搜索網(wǎng)站(http:〃www.baidu.com )輸入"功夫熊貓"為關(guān)鍵字的 搜索結(jié)果頁面,選擇"Discover Source"按鈕后,發(fā)現(xiàn)并識別出一項名為
"百度搜索—功夫熊貓"的Source,如前所述,通過點擊該Source菜單項, 該Source即力卩入到Mashup編輯器中。此時,對話框1001被用來顯示該 Source的配置選項,1002、 1003、 1004、 1005和1006分別纟皮配置為4妻收 用戶對該Source的重命名、描述信息更改、輸入?yún)?shù)設(shè)置以及參數(shù)描述信 息更改的輸入,在1007中顯示參數(shù)缺省值,為當(dāng)調(diào)用該Source時所使用 的輸入?yún)?shù)的默認值。需要說明的是,RSS類型的Source以及某些HTML 類型的Source是沒有輸入?yún)?shù)的,因而無需進行輸入?yún)?shù)配置。Source 輸出具有默認的呈現(xiàn)方式,例如本實施例中如903所示的"Source Chart" 視圖來呈現(xiàn)。
可以將如上所述所創(chuàng)建的source導(dǎo)入到構(gòu)建的Mashup中, 一個新創(chuàng) 建的Mashup包括名字、基本描述、輸入配置參數(shù)和輸出,Source的輸入 參數(shù)在導(dǎo)入時可配置為Mashup的輸入?yún)?shù)。同Source —樣,Mashup也 具有默認的呈現(xiàn)方式。
圖11示出了#4居本發(fā)明一個實施例的創(chuàng)建一個新的Mashup并導(dǎo)入一
18個Source的實施例,"Create a Mashup" 1101響應(yīng)用戶請求創(chuàng)建一個新的 Mashup后,在頁面中顯示一個空白的表格區(qū)域1102。每個Source 1103都 可通過雙擊操作將其導(dǎo)入到1102中,如果該Source有輸入?yún)?shù),則雙擊 后先配置其輸入?yún)?shù)。Source在區(qū)域1102中以"內(nèi)容聚合表格"1104的 方式呈現(xiàn)。
用戶通過圖5的原子列及復(fù)合列菜單,發(fā)起信息源處理與聚合指令。 復(fù)合列和原子列均被設(shè)置為可拖拽的,通過鼠標(biāo)"拖拽(drag and drop )" 操作將多個Source的內(nèi)容進行"合并(Union)"的聚合操作。圖11中的嵌 套表格1104是百度搜索關(guān)鍵字"功夫熊貓"的結(jié)果,嵌套表格1105是谷 歌搜索關(guān)鍵字"功夫熊貓"的結(jié)果,將谷歌搜索結(jié)果的復(fù)合列1107拖拽 到百度搜索結(jié)果的對應(yīng)復(fù)合列1106上,則1105表格的內(nèi)容按照復(fù)合列所 包含的原子列的名字進行匹配,依次疊加到1104表格中。
圖12示出了根據(jù)本發(fā)明一個實施例以"新增內(nèi)容服務(wù)(Add service function)"聚合操作進行內(nèi)容聚合的示例。1201是導(dǎo)入信息源"最新影訊" 后在Mashup編輯區(qū)呈現(xiàn)的表格,該信息源來源于谷歌"最新電影放映時 間,,網(wǎng)站(http:〃www.google.cn/movies)。"內(nèi)容聚合表才各"中的每一個子表 格都包括一個"新增列"1202及其彈出菜單項"Add Service Function" 1203。 1204是用戶點擊菜單項1203后彈出的對話框,在此對話框中進行兩個 Source輸入/輸出參數(shù)的關(guān)聯(lián)。例如,用戶從當(dāng)前Source列表1205中選擇
"Google搜索",并選擇當(dāng)前表格中的"作者"列1206作為"Google搜 索"輸入?yún)?shù)"關(guān)鍵字"的輸入值。嵌套表格1207呈現(xiàn)了進行上述操作 后的結(jié)果,顯示了每個作者及該作者在Google上的搜索結(jié)果。
特別的,內(nèi)容聚合表格被配置為可通過新增列彈出菜單的方式對當(dāng)前 表格中的一個或多個"列"進行算術(shù)或字符運算,并將計算結(jié)果作為新的
"列"增加到當(dāng)前內(nèi)容聚合表格中。圖13示出了根據(jù)本發(fā)明一個實施例 的點擊"新增列"1301,在隨后彈出的菜單中選擇"Add Function" 1302, 系統(tǒng)所彈出的Mashup計算器1303。該計算器支持表達式"暫存",點擊
"M(Memory)"按鈕1304,可以將當(dāng)前表達式文本框1305里面的表達式 暫存到文本框1306中。點擊新增"暫存"按鈕1307,可以增加一個用以
"暫存"表達式的文本框,從而幫助用戶靈活地構(gòu)造基于"列,,的運算表 達式。
應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿毭枋龅谋景l(fā)明做出各種修改和改進。因 此,要求保護的技術(shù)方案的范圍不受所給出的任何特定示范教導(dǎo)的限制。
權(quán)利要求
1. 一種聚合Web站點內(nèi)容的系統(tǒng),包括客戶端系統(tǒng),Mashup服務(wù)器,和包括一個或多個內(nèi)容服務(wù)器的網(wǎng)絡(luò),其中所述客戶端系統(tǒng),用于通過所述網(wǎng)絡(luò)訪問所述一個或多個內(nèi)容服務(wù)器并接收網(wǎng)頁內(nèi)容,并生成Mashup腳本;其中,所述客戶端系統(tǒng)包括Mashup編輯器,其用于根據(jù)用戶的交互將所述網(wǎng)頁內(nèi)容封裝到信息源中,建立嵌套表格數(shù)據(jù)模型并生成所述Mashup腳本,所述嵌套表格數(shù)據(jù)模型包括原子屬性及其實例和/或元組屬性及其實例;Mashup服務(wù)器,用于執(zhí)行所述Mashup腳本對所述信息源進行處理或聚合,生成信息視圖;包括一個或多個內(nèi)容服務(wù)器的網(wǎng)絡(luò),其中所述內(nèi)容服務(wù)器用于通過所述網(wǎng)絡(luò)向所述客戶端系統(tǒng)提供所述網(wǎng)頁內(nèi)容。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述Mashup服務(wù)器包括Mashup處理片莫塊,用于執(zhí)行所述Mashup腳本,根據(jù)所述Mashup腳 本對所述信息源進行處理或聚合。
3. 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述Mashup編輯 器包括內(nèi)容發(fā)現(xiàn)與標(biāo)注器,用于根據(jù)所述網(wǎng)頁內(nèi)容和用戶的交互將所述網(wǎng)頁 內(nèi)容封裝到信息源中,建立嵌套表格數(shù)據(jù)模型,其中所述嵌套表格數(shù)據(jù)模 型包括原子屬性及其實例和/或元組屬性及其實例;內(nèi)容聚合器,用于根據(jù)所述用戶的交互生成所述Mashup腳本。
4. 根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述內(nèi)容發(fā)現(xiàn)與標(biāo)注器還包括抽取規(guī)則生成模塊,用于根據(jù)用戶的交 互生成網(wǎng)頁抽取MJ'J;所述內(nèi)容發(fā)現(xiàn)與標(biāo)注器,還用于識別所述網(wǎng)頁內(nèi)容的內(nèi)容類型,如果 所述網(wǎng)頁內(nèi)容是HTML內(nèi)容則根據(jù)所述網(wǎng)頁抽取規(guī)則抽取為結(jié)構(gòu)化數(shù)據(jù), 并將所述結(jié)構(gòu)化數(shù)據(jù)封裝到所述信息源中,建立嵌套表格數(shù)據(jù)模型。
5. 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述Mashup服務(wù)器包括內(nèi)容服務(wù)調(diào)用代理,其用于通過所述網(wǎng)絡(luò)訪 問所述一個或多個內(nèi)容服務(wù)器并根據(jù)所述Mashup腳本接收所述信息源對應(yīng)的最新的網(wǎng)頁內(nèi)容,根據(jù)用戶的交互將所述最新的網(wǎng)頁內(nèi)容封裝到所述 信息源中,建立嵌套表格數(shù)據(jù)模型;所述Mashup服務(wù)器,還用于執(zhí)行所述Mashup腳本對所述封裝了所 述最新的網(wǎng)頁內(nèi)容的信息源進行處理或聚合,生成信息視圖;所述包括一個或多個內(nèi)容服務(wù)器的網(wǎng)絡(luò),其中所述內(nèi)容服務(wù)器還用于 通過所述網(wǎng)絡(luò)向所述內(nèi)容服務(wù)調(diào)用代理提供所述最新的網(wǎng)頁內(nèi)容。
6. 根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述內(nèi)容發(fā)現(xiàn)與標(biāo)注器還包括抽取規(guī)則生成模塊,其用于根據(jù)用戶的交互生成網(wǎng)頁抽:f又規(guī)則;所述內(nèi)容服務(wù)調(diào)用代理還用于識別所述最新的網(wǎng)頁內(nèi)容的內(nèi)容類型, 如果所述最新的網(wǎng)頁內(nèi)容是HTML內(nèi)容則根據(jù)所述網(wǎng)頁抽取規(guī)則抽取為 結(jié)構(gòu)化數(shù)據(jù),根據(jù)用戶的交互將所述結(jié)構(gòu)化數(shù)據(jù)封裝到所述信息源中,建 立嵌套表格數(shù)據(jù)模型。
7. 根據(jù)權(quán)利要求l或2所述的系統(tǒng),其特征在于,所述客戶端系統(tǒng)還 包括用于訪問所述網(wǎng)絡(luò)的瀏覽器。
8. 根據(jù)權(quán)利要求l或2所述的系統(tǒng),其特征在于,所述客戶端系統(tǒng)還 包括信息閱讀器,用于顯示所述信息視圖。
9. 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述信息視圖包括 內(nèi)容列表視圖、地理信息視圖、或Excel表格。
10. 根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,所述一個或多個 內(nèi)容服務(wù)器包括RSS內(nèi)容服務(wù)器或HTML內(nèi)容服務(wù)器。
11. 一種聚合Web站點內(nèi)容的方法,包括10)接收網(wǎng)頁內(nèi)容,根據(jù)用戶的交互將所述網(wǎng)頁內(nèi)容封裝到信息源中, 建立嵌套表格數(shù)據(jù)模型并生成Mashup腳本,其中所述嵌套表格數(shù)據(jù)模型 包括原子屬性及其實例和/或元組屬性及其實例;20)執(zhí)行所述Mashup腳本對所述信息源進行處理或聚合,生成信息 視圖。
12. 根據(jù)權(quán)利要求11所述的方法,其特征在于,其中步驟20)的所 述處理包括對所述嵌套表格數(shù)據(jù)模型的原子屬性及其實例進行刪除,對所 述原子屬性進行重命名,或?qū)λ鲈訉傩詫嵗M行排序、去重或替換。
13. 根據(jù)權(quán)利要求11所述的方法,其特征在于,其中步驟20)的所述處理包括對所述嵌套表格數(shù)據(jù)模型的元組屬性及其實例進行刪除,對所 述元組屬性進行重命名,或?qū)λ鲈M屬性實例進行內(nèi)容截取或過濾。
14. 根據(jù)權(quán)利要求11所述的方法,其特征在于,其中步驟20)的所述處理包括對所述嵌套表格數(shù)據(jù)模型的元組屬性及其實例進行折疊或去 折疊。
15. 根據(jù)權(quán)利要求11所述的方法,其特征在于,其中步驟20)的所 述處理包括對所述嵌套表格數(shù)據(jù)模型的原子屬性實例進行算術(shù)或字符運 算以增加新的所述嵌套表格數(shù)據(jù)模型的原子屬性及其實例。
16. 根據(jù)權(quán)利要求11所述的方法,其特征在于,其中步驟20)的所 述聚合包括對所述嵌套表格數(shù)據(jù)模型的元組屬性實例進行合并的聚合操 作。
17. 根據(jù)權(quán)利要求11所述的方法,其特征在于,其中步驟20)的所 述聚合包括對所述嵌套表格數(shù)據(jù)模型進行新增內(nèi)容服務(wù)的聚合操作。
18. 根據(jù)權(quán)利要求11所述的方法,其特征在于,所述步驟10)還包 括步驟11 )識別所述網(wǎng)頁內(nèi)容的內(nèi)容類型;12)如果所述內(nèi)容類型為HTML,根據(jù)所述用戶的交互生成網(wǎng)頁抽取所述結(jié)構(gòu)化數(shù)據(jù)封裝到所述信息源中,、建立嵌套表格數(shù)據(jù)模型:'''
19. 根據(jù)權(quán)利要求11或18所述的方法,其特征在于,還包括步驟30 )根據(jù)所述Mashup腳本,接收所述信息源對應(yīng)的最新的網(wǎng)頁內(nèi)容,根據(jù)用戶的交互將所述最新的網(wǎng)頁內(nèi)容封裝到所述信息源中,建立嵌套表 格數(shù)據(jù)模型;40)執(zhí)行所述Mashup腳本對所述封裝了所述最新的網(wǎng)頁內(nèi)容的信息 源進行處理或聚合,生成信息視圖。
20. 根據(jù)權(quán)利要求18所述的方法,其特征在于,還包括步驟30 )才艮據(jù)所述Mashup腳本,接收所述信息源對應(yīng)的最新的網(wǎng)頁內(nèi)容;31 )根據(jù)所述抽取規(guī)則識別將HTML類型的最新的網(wǎng)頁內(nèi)容抽取為結(jié) 構(gòu)化數(shù)據(jù),根據(jù)用戶的交互將所述結(jié)構(gòu)化數(shù)據(jù)封裝到所述信息源中,建立 嵌套表格數(shù)據(jù)模型;41 )執(zhí)行Mashup腳本對所述封裝了所述最新的網(wǎng)頁內(nèi)容的信息源進行 處理或聚合,生成信息視圖。
全文摘要
本發(fā)明提供一種聚合Web站點內(nèi)容的系統(tǒng)和方法。該方法包括10)接收網(wǎng)頁內(nèi)容,根據(jù)用戶的交互將該網(wǎng)頁內(nèi)容封裝到信息源中,建立嵌套表格數(shù)據(jù)模型并生成Mashup腳本,其中該嵌套表格數(shù)據(jù)模型包括原子屬性及其實例和/或元組屬性及其實例;20)執(zhí)行Mashup腳本對該信息源進行處理或聚合,生成信息視圖。使用該系統(tǒng)和方法可以讓沒有任何編程知識的大眾用戶,不需編寫任何程序代碼,即可將Web站點的HTML網(wǎng)頁、RSS內(nèi)容等抽取出來,并構(gòu)造出對網(wǎng)站內(nèi)容進行處理或聚合的Mashup應(yīng)用。
文檔編號G06F17/30GK101488151SQ200910077248
公開日2009年7月22日 申請日期2009年1月20日 優(yōu)先權(quán)日2009年1月20日
發(fā)明者光 季, 楊少華, 王桂玲, 趙卓峰, 韓燕波 申請人:中國科學(xué)院計算技術(shù)研究所