專利名稱:爬尋數(shù)據(jù)庫以找出信息的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及搜索,尤其涉及爬尋(crawl)諸如應(yīng)用程序文檔和數(shù)據(jù)庫等不同的信息源,以增強(qiáng)搜索引擎的關(guān)鍵詞匹配。
背景技術(shù):
因特網(wǎng)104是全球使用TCP/IP協(xié)議套件來彼此通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的集合。在因特網(wǎng)104的中心是由數(shù)以千計的商業(yè)、政府、教育和其它計算機(jī)系統(tǒng)構(gòu)成的主節(jié)點(或主計算機(jī))以及路由數(shù)據(jù)和消息的其它計算機(jī)系統(tǒng)之間的高速數(shù)據(jù)通信的主干。一個或多個因特網(wǎng)104節(jié)點可在不危及整個因特網(wǎng)104的情況下離線或使得因特網(wǎng)104上的通信停止,因為沒有單個計算機(jī)或網(wǎng)絡(luò)控制它。因特網(wǎng)104的起源是由(美國)國防部在1969年創(chuàng)建的稱為ARPANET的分散型網(wǎng)絡(luò),以便于在核攻擊的情況下進(jìn)行通信。當(dāng)前,因特網(wǎng)104向用戶提供了各種服務(wù),諸如電子郵件和萬維網(wǎng)。
大量互連的超文本文檔106駐留在遍及世界的HTTP服務(wù)器上。構(gòu)成萬維網(wǎng)的這些文檔稱為萬維網(wǎng)頁,它們是以HTML(超文本標(biāo)記語言)來編寫的,由指定可用于訪問文件的特定機(jī)器和路徑名的URL(統(tǒng)一資源定位符)來標(biāo)識,并通過HTTP(超文本傳輸協(xié)議)從服務(wù)器發(fā)送到最終用戶。這些萬維網(wǎng)頁可由搜索引擎102來搜索,搜索引擎102收集可用的萬維網(wǎng)頁的列表,并將這些列表儲存在用戶可按關(guān)鍵詞搜索的數(shù)據(jù)庫中。較老的搜索引擎的示例包括Lycos和Excite。更新近的搜索引擎的示例包括Google和A9。
萬維網(wǎng)頁易于在因特網(wǎng)104上搜索是因為它們中的許多是使用可由一致的目標(biāo)URL訪問并可通過公共協(xié)議HTTP來通信的公共語言HTML來編寫的。內(nèi)聯(lián)網(wǎng)108上的搜索造成了通常因特網(wǎng)104上看不到的問題。內(nèi)聯(lián)網(wǎng)108是基于諸如TCP/IP等因特網(wǎng)協(xié)議的專用網(wǎng)絡(luò),但是是為公司或組織內(nèi)的信息管理而設(shè)計的。其用途包括諸如文檔分發(fā)、軟件分發(fā)、數(shù)據(jù)庫訪問和訓(xùn)練等服務(wù)。稱為內(nèi)聯(lián)網(wǎng)108是因為它看上去類似于萬維網(wǎng)站且基于類似的技術(shù),然而它對于組織仍是嚴(yán)格的內(nèi)部的,且不在嚴(yán)格意義上連接到因特網(wǎng)。在內(nèi)聯(lián)網(wǎng)108內(nèi)可用的萬維網(wǎng)頁可由常規(guī)的搜索引擎102來搜索。典型地,諸如文檔112等連接到內(nèi)聯(lián)網(wǎng)108的許多文檔不是使用諸如超文本等公共語言來形成的,而是采用諸如Microsoft Word、MicrosoftExcel等更特定的格式。諸如搜索引擎102等常規(guī)的搜索引擎無法搜索文檔112內(nèi)不是從諸如超文本等公共語言形成的信息片斷。
類似的問題在搜索諸如數(shù)據(jù)庫110等數(shù)據(jù)庫時發(fā)生。在數(shù)據(jù)庫中,數(shù)據(jù)不與諸如萬維網(wǎng)頁等文檔相關(guān)聯(lián)。但是在數(shù)據(jù)庫110中儲存了需要向內(nèi)聯(lián)網(wǎng)108的用戶展示的信息片斷。不幸的是,數(shù)據(jù)庫110缺少用于搜索的任何組織良好的結(jié)構(gòu)。搜索數(shù)據(jù)庫110的另一問題是存在可用于搜索數(shù)據(jù)庫110的許多協(xié)議。例如,搜索引擎102可使用查詢語言來訪問數(shù)據(jù)。然而,諸如數(shù)據(jù)庫110等數(shù)據(jù)庫通常不是直接訪問的,而是搜索引擎102必須通過各種應(yīng)用程序編程接口集。不像因特網(wǎng)104,其中搜索引擎102必須僅知道一個協(xié)議(HTTP)來與萬維網(wǎng)頁通信以提取數(shù)據(jù),搜索內(nèi)聯(lián)網(wǎng)108可要求搜索引擎102知道可能適合或不適合從諸如數(shù)據(jù)庫110等數(shù)據(jù)庫或應(yīng)用程序文檔112提取信息片斷的多種協(xié)議。
盡管上文在內(nèi)聯(lián)網(wǎng)搜索的上下文中討論了這些和其它問題,但是其它數(shù)據(jù)庫搜索和文檔搜索在通常與內(nèi)聯(lián)網(wǎng)相關(guān)聯(lián)的不同種類的環(huán)境中也具有類似的(如果不是相同的)問題。如果沒有對于有效地響應(yīng)用戶的內(nèi)聯(lián)網(wǎng)查詢的問題的解決方案,用戶可能最終不再信任搜索引擎102能夠提供可再現(xiàn)儲存的信息片斷的期望的計算體驗,且對于搜索引擎的需求將從市場上消失。由此,需要一種用于響應(yīng)內(nèi)聯(lián)網(wǎng)查詢,同時避免或減輕與現(xiàn)有系統(tǒng)相關(guān)聯(lián)的上述和其它問題的系統(tǒng)、方法和計算機(jī)可讀介質(zhì)。
發(fā)明內(nèi)容
依照本發(fā)明,提供了一種用于爬尋數(shù)據(jù)庫和應(yīng)用程序文檔的系統(tǒng)、方法和計算機(jī)可讀介質(zhì)。本發(fā)明的系統(tǒng)形式包括用于探查不同數(shù)據(jù)庫以找出信息的系統(tǒng)。該系統(tǒng)包括儲存在計算機(jī)可讀介質(zhì)中用于枚舉要探查的一組數(shù)據(jù)庫的統(tǒng)一數(shù)據(jù)結(jié)構(gòu),以及用于約束返回的信息的過濾器。該系統(tǒng)還包括儲存在另一計算機(jī)可讀介質(zhì)中用于將用來與該組數(shù)據(jù)庫通信的協(xié)議變換成一種協(xié)議的統(tǒng)一應(yīng)用程序編程接口。該系統(tǒng)還包括爬尋器,該爬尋器使用一種協(xié)議來調(diào)用以統(tǒng)一數(shù)據(jù)結(jié)構(gòu)描述的方法以探查該組數(shù)據(jù)庫中的期望信息片斷,而無需知道對該組數(shù)據(jù)庫中的每一數(shù)據(jù)庫專用的協(xié)議。
依照本發(fā)明的另外的方面,本發(fā)明的計算機(jī)可讀介質(zhì)形式包括具有儲存在其上用于增強(qiáng)在不同數(shù)據(jù)庫中爬尋信息片斷的過程的數(shù)據(jù)結(jié)構(gòu)的計算機(jī)可讀介質(zhì)。該數(shù)據(jù)結(jié)構(gòu)包括指示要由爬尋器探查的數(shù)據(jù)庫的系統(tǒng)字段、指示要給予儲存在數(shù)據(jù)庫中的信息片斷的意義的實體字段、指示用于在數(shù)據(jù)庫中找出實體字段的實例的可調(diào)用邏輯片斷的方法、指示要由值填充的變量的參數(shù)字段、以及指示約束要通過方法調(diào)用返回的信息片斷的注釋的過濾器字段。
依照本發(fā)明的另外的方面,本發(fā)明的方法形式包括用于探查數(shù)據(jù)庫和應(yīng)用程序文檔以找出期望的信息片斷的計算機(jī)實現(xiàn)的方法。該方法包括通過訪問統(tǒng)一數(shù)據(jù)結(jié)構(gòu)爬尋期望的信息片斷,以通過調(diào)用具有一個或多個過濾器的查尋器來探查每一數(shù)據(jù)庫下的每一實體。每一過濾器約束要返回的信息片斷。該方法還包括當(dāng)用戶選中一超鏈接時接收該選擇。該超鏈接與標(biāo)識符相關(guān)聯(lián)以獲取一個或多個數(shù)據(jù)庫中涉及與該標(biāo)識符相關(guān)聯(lián)的實體的信息片斷。
當(dāng)結(jié)合附圖參考以下詳細(xì)描述時,可以更容易明白且更好地理解本發(fā)明的上述方面和許多附加優(yōu)點,附圖中圖1是示出一個常規(guī)系統(tǒng)的框圖,它示出了搜索應(yīng)用程序文檔和數(shù)據(jù)庫的各種問題;圖2是示出用于爬尋數(shù)據(jù)庫和應(yīng)用程序文檔以找出信息片斷的示例性系統(tǒng)的框圖;圖3是示出描述共同定義了儲存在數(shù)據(jù)庫和應(yīng)用程序文檔中的信息片斷上的結(jié)構(gòu)的項目組的廣義類別的云圖;以及圖4A-4G是示出依照本發(fā)明的一個實施例,用于在數(shù)據(jù)庫和應(yīng)用程序文檔中爬尋信息的過程的流程圖。
具體實施例方式
圖2中示出了其中可搜索連接到內(nèi)聯(lián)網(wǎng)的業(yè)務(wù)系統(tǒng)的系統(tǒng)。該系統(tǒng)是具有軟件應(yīng)用程序片斷的聯(lián)網(wǎng)計算環(huán)境,這些軟件應(yīng)用程序協(xié)作以允許爬尋器200尋找儲存在業(yè)務(wù)系統(tǒng)中的信息片斷,該業(yè)務(wù)系統(tǒng)是從數(shù)據(jù)庫208-212以及應(yīng)用程序文檔(未示出)形成的。爬尋器200是搜索內(nèi)聯(lián)網(wǎng)以找出期望的信息片斷的自動化應(yīng)用程序。爬尋器200以允許由搜索引擎(未示出)檢查匹配的方式索引數(shù)據(jù)庫208-212和內(nèi)容相關(guān)信息中的關(guān)鍵字段。
圖2所示的系統(tǒng)提供了使得搜索引擎能夠搜索數(shù)據(jù)庫208-212中的信息片斷,而無需知道用于與數(shù)據(jù)庫208-212以及諸如Microsoft Excel文檔等應(yīng)用程序文檔通信的專用協(xié)議的工具。盡管有爬尋器200為連接到數(shù)據(jù)庫208-212必須使用的多種可能的協(xié)議,然而本發(fā)明的各實施例包括用于統(tǒng)一訪問數(shù)據(jù)庫208-212和應(yīng)用程序文檔中的信息片斷的方式的統(tǒng)一應(yīng)用程序編程接口204。統(tǒng)一應(yīng)用程序編程接口204提供了允許爬尋器200與數(shù)據(jù)庫208-212通信,而無需知道用于與數(shù)據(jù)庫208-212和應(yīng)用程序文檔通信的專用協(xié)議的轉(zhuǎn)換。諸如數(shù)據(jù)庫208-212等許多數(shù)據(jù)庫理解結(jié)構(gòu)化查詢語言,該查詢語言是用于查詢、更新和管理數(shù)據(jù)庫的常規(guī)數(shù)據(jù)庫子語言。然而,數(shù)據(jù)庫208-212通常具有可能模糊結(jié)構(gòu)化查詢語言的業(yè)務(wù)邏輯來從數(shù)據(jù)庫208-212獲取期望的信息片斷。因此,每一數(shù)據(jù)庫208-212具有對于特定數(shù)據(jù)庫專用的可定制協(xié)議,用于查詢特定數(shù)據(jù)庫以找出信息片斷。許多軟件應(yīng)用程序在對爬尋器200不可訪問或不可見的嵌入式數(shù)據(jù)庫中儲存應(yīng)用程序文檔。如果符合適當(dāng)?shù)膮f(xié)議,則軟件應(yīng)用程序中的這些嵌入式數(shù)據(jù)庫是可訪問的。本發(fā)明的各實施例允許用戶將關(guān)鍵詞輸入到搜索引擎中,且通過爬尋器200,可找到數(shù)據(jù)庫208-212中的期望的信息片斷,并以使得這些信息片斷可作為搜索結(jié)果返回給用戶的方式來索引它們。
統(tǒng)一應(yīng)用程序編程接口204連同統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202一起允許爬尋器200與數(shù)據(jù)庫208-212通信,而無需知道用于與數(shù)據(jù)庫208-212和應(yīng)用程序文檔通信的專用協(xié)議。即使數(shù)據(jù)庫208-212的協(xié)議是已知的,然而數(shù)據(jù)庫208-212的專用應(yīng)用程序編程接口208A-212A也必須已知以獲得數(shù)據(jù)庫208-212內(nèi)的期望信息片斷。統(tǒng)一應(yīng)用程序編程接口204連同統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202一起使得爬尋器200無需知道專用協(xié)議以及專用應(yīng)用程序編程接口208A-212A來獲得期望的信息片斷。
如本領(lǐng)域的技術(shù)人員可以理解的,儲存在數(shù)據(jù)庫208-212中的信息片斷可以相當(dāng)大,其范圍以萬億字節(jié)來計算。即使數(shù)據(jù)庫208-212可以用極大的速度來處理各種信息片斷,然而各種信息片斷非常迅速地變得極其大。較佳的是,爬尋器200在關(guān)于它能夠探查來索引數(shù)據(jù)庫208-212中的多少信息片斷方面受到約束。不感興趣的傳統(tǒng)數(shù)據(jù)或歷史數(shù)據(jù)應(yīng)當(dāng)較佳地避免被爬尋器200探查。本發(fā)明的各實施例包括統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中的過濾器或注釋,且這些過濾器或注釋提供了對于爬尋器200的探查的各種約束。當(dāng)爬尋器200調(diào)用統(tǒng)一應(yīng)用程序編程接口204時,統(tǒng)一應(yīng)用程序編程接口204與統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202協(xié)商以理解用于探查數(shù)據(jù)庫208-212以及應(yīng)用程序文檔中的信息片斷的約束。提供過濾器或注釋的一種合適的技術(shù)是對數(shù)據(jù)描述語言的使用,該數(shù)據(jù)描述語言是專門為描述數(shù)據(jù)結(jié)構(gòu)而設(shè)計的語言。
假定數(shù)據(jù)庫208具有API 108A,它可被調(diào)用以獲得關(guān)于特定業(yè)務(wù)的顧客的信息片斷。如果調(diào)用該API,則數(shù)據(jù)庫返回可被搜索的顧客的列表。本發(fā)明的各實施例用諸如最后修改日期等約束來過濾或注釋對該API的調(diào)用的輸入?yún)?shù),以限制對數(shù)據(jù)庫208的探查。爬尋器200可使用儲存在統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中的約束以找出比最后修改日期更新的信息片斷。API 208A返回對應(yīng)于由統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202提供的約束(最后修改日期)的信息片斷。由統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202儲存的約束以及其它內(nèi)容在本示例中向API 208A提供了意義。換言之,返回的信息片斷已知是對于比最后修改日期更新的顧客信息。對過濾器或注釋的使用允許爬尋器200更有效地探查。
在由爬尋器200探查了數(shù)據(jù)庫208之后,信息片斷按照字段名和字段值返回。每一字段具有某一意義。如果數(shù)據(jù)庫208被實現(xiàn)為關(guān)系型數(shù)據(jù)庫,則字段可以是標(biāo)識特定行的唯一標(biāo)識字段。本發(fā)明的各實施例可從這些唯一標(biāo)識字段中創(chuàng)建超鏈接,以向用戶呈現(xiàn)類別結(jié)果,從而允許作出到與信息片斷相關(guān)聯(lián)的值的連接。當(dāng)用戶選中一超鏈接時,與該特定超鏈接相連接的所有信息片斷通過諸如瀏覽器等適當(dāng)?shù)膽?yīng)用程序呈現(xiàn)給用戶。較佳地,該技術(shù)用于避免通過要求數(shù)據(jù)庫208-212返回爬尋器200所探查的所有內(nèi)容而使數(shù)據(jù)庫208-212過載。統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中的過濾器或注釋以及將關(guān)鍵字段用作標(biāo)識符防止一次返回所有的信息片斷,以避免破壞由數(shù)據(jù)庫208-212形成的計算系統(tǒng)。本發(fā)明的各實施例使用統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中的過濾器和注釋,并使用關(guān)鍵字段作為標(biāo)識符,來將搜索請求分解成多個片斷。當(dāng)用戶選中與一特定標(biāo)識符連接的超鏈接時,則返回被指示為用戶感興趣的信息片斷的一部分,其中該特定標(biāo)識符進(jìn)而與唯一地標(biāo)識數(shù)據(jù)庫208中的行的字段連接。
數(shù)據(jù)庫208-212由記錄組成,每一記錄包含字段以及用于搜索、分類、重組和其它功能的一組操作。記錄中的字段是唯一地標(biāo)識被指定為關(guān)鍵字的一部分的信息片斷的結(jié)構(gòu)。這些關(guān)鍵字有助于在數(shù)據(jù)庫208-212中檢索信息片斷的執(zhí)行。本發(fā)明的各實施例提供了與這些關(guān)鍵字段相關(guān)聯(lián)的描述或名稱。當(dāng)用戶選中這些關(guān)鍵字段中的一個時,包含期望信息片斷的適當(dāng)記錄被返回給用戶。
統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202描述了表示爬尋器200可以探查的數(shù)據(jù)庫208-212的系統(tǒng)的目錄。換言之,統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202枚舉了業(yè)務(wù)線系統(tǒng)的種類,諸如組織內(nèi)的數(shù)據(jù)庫208-212,以允許爬尋器200探查。統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中的過濾器或注釋向數(shù)據(jù)庫208-212中由爬尋器200探查到的信息片斷提供了意義。通過統(tǒng)一應(yīng)用程序編程接口204,爬尋器200可與數(shù)據(jù)庫208-212的任一個通信。爬尋器200只需與統(tǒng)一應(yīng)用程序編程接口204通信。統(tǒng)一應(yīng)用程序編程接口204知道適配器206中用于與數(shù)據(jù)庫208-212通信的特定適配器。適配器206中所選擇的適配器進(jìn)而知道用于訪問數(shù)據(jù)庫208-212中的信息片斷的特定API。
適配器206通常是由數(shù)據(jù)庫208-212的軟件制造商提供的。然而,第三方軟件制造商也可提供適配器206。盡管通常適配器206不提供語義變換(或給予意義),然而統(tǒng)一應(yīng)用程序編程接口204連同統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202一起提供了語義變換,因為如本領(lǐng)域的技術(shù)人員可以理解的,爬尋器200通常不期望理解儲存在數(shù)據(jù)庫208-212中的信息片斷的語義。在探查過程中,爬尋器200看見信息片斷的字段或表,而不理解這些信息片斷意味著什么。諸如“最后修改日期”等由統(tǒng)一應(yīng)用程序編程接口204和統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202提供的語義變換使得爬尋器200能夠更智能地搜索。。
圖3B示出了更好地定義統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202的云圖300。系統(tǒng)300示出了云之間的關(guān)系,每一云是描述一組更具體項目的廣義類別。見圖3。云是程序中用于定義表征云的任何成員的一組屬性和/或一組服務(wù)(對程序的其它部分可用的動作)的描述性工具。本質(zhì)上,每一云定義了它所包括的實體的類型以及其實體運作的方式。每一云可使用合適的編程技術(shù)來實現(xiàn),諸如面向?qū)ο蟮某绦蚧蜿P(guān)系型數(shù)據(jù)庫表。
系統(tǒng)云302定義了表示包含與業(yè)務(wù)有關(guān)的信息片斷的業(yè)務(wù)線的屬性和服務(wù)。例如,數(shù)據(jù)庫208-212的每一個是可由系統(tǒng)類302表示的系統(tǒng)。系統(tǒng)302的實例包括SAP系統(tǒng)302A,它定義了與SAP系統(tǒng)有關(guān)的屬性和服務(wù)。從SAP系統(tǒng)302A發(fā)出且終止于系統(tǒng)云302處的箭頭形圖的邊指示在SAP系統(tǒng)302A的實例化和系統(tǒng)云302之間存在對應(yīng)關(guān)系。
實體云304定義了與施加在諸如數(shù)據(jù)庫208-212或SAP系統(tǒng)302A等系統(tǒng)中的信息片斷上的結(jié)構(gòu)有關(guān)的屬性和服務(wù)。例如,假定SAP系統(tǒng)302A是使用關(guān)系型數(shù)據(jù)庫來實現(xiàn)的。使用實體云304的適當(dāng)實例化,爬尋器200無法看見關(guān)系型數(shù)據(jù)表,但是可以看見SAP系統(tǒng)302A中的顧客行。從實體云304發(fā)出且終止于系統(tǒng)云302處的箭頭形圖的邊指示與系統(tǒng)云302的一對多關(guān)系(換言之,一個系統(tǒng)和一個系統(tǒng)中的多個實體的關(guān)系)。
顧客實例304A定義了與購買商品或服務(wù)的顧客的表示有關(guān)的屬性和服務(wù)。顧客實例304A可用于對SAP系統(tǒng)302A中的信息片斷施加意義和結(jié)構(gòu),以指示包含在它們中的某些信息片斷是涉及顧客的信息。由實體云304表示的每一實體是對于存在于由系統(tǒng)云302表示的系統(tǒng),諸如SAP系統(tǒng)302A中的信息片斷上的結(jié)構(gòu)的描述。從顧客實體304A發(fā)出且終止于實體云302處的箭頭形圖的邊指示在顧客實體304A的實例化和實體云302之間存在對應(yīng)關(guān)系。
每一實體云304具有由方法云306表示的特征。方法云306定義了表示實體可具有的行為的屬性和服務(wù)。從方法運306發(fā)出且終止于實體云304處的箭頭形圖的邊指示與實體云304的一對多關(guān)系(換言之,一個實體與一個實體內(nèi)的多個方法的關(guān)系)。
查尋器方法306A提供了在系統(tǒng)內(nèi)查找實體的能力。例如,查尋器方法306A可用于找出作為諸如SAP系統(tǒng)302A等系統(tǒng)內(nèi)的實體的顧客。較佳地,爬尋器200使用系統(tǒng)內(nèi)的實體的特定查尋器方法以找出該實體的所有實例。從查尋器方法306A發(fā)出且終止于方法云306處的箭頭形圖的邊指示查尋器方法306A和方法云306之間存在對應(yīng)關(guān)系。
每一方法具有一個或多個參數(shù)。這些參數(shù)是由參數(shù)云308表示的,參數(shù)云308定義了表示方法的參數(shù)的屬性和服務(wù)。從參數(shù)云308發(fā)出且終止于方法云304處的箭頭形圖的邊指示與方法云306的一對多關(guān)系(換言之,一個方法與一個方法中的多個參數(shù)的關(guān)系)。
一種類型的參數(shù)是由過濾器云308A表示的過濾器。過濾器云308A定義了注釋或限制由爬尋器200通過調(diào)用諸如查尋器方法306A等方法來探查和返回的信息片斷的屬性和服務(wù)。從過濾器云308A發(fā)出且終止于參數(shù)云308處的箭頭形圖的邊指示與參數(shù)云308的一對多關(guān)系(換言之,一個參數(shù)與一個參數(shù)中的多個過濾器的關(guān)系)。
一個較佳的過濾器由“自從……以來修改”過濾器308B來表示,過濾器308B定義了與限制具有超過特定點的修改日期的信息片斷有關(guān)的屬性和服務(wù)。從“自從……以來修改”過濾器308B發(fā)出且終止于過濾器云308A處的箭頭形圖的邊指示在“自從……以來修改”過濾器308B的實例化和過濾器云308A之間存在對應(yīng)性。過濾器云308A可被實例化以從諸如SAP系統(tǒng)302A等系統(tǒng)中注釋或過濾期望的信息片斷。
較佳地,諸如查尋器方法306A等方法的名稱及其簽名,諸如參數(shù)云308的實例和過濾器308A的實例(即,“自從……以來修改”過濾器308B)在文本上描述并被儲存在統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中。方法云306是由參數(shù)云308表示的參數(shù)的集合。由方法云306表示的方法集合是由實體云304表示的實體的特征或行為。系統(tǒng)云302的實例、實體云304的實例以及方法云306的實例共同指向系統(tǒng)中儲存的邏輯片斷,諸如數(shù)據(jù)庫208-212的API 208A-212A,它們可被調(diào)用以獲得期望的信息。
假定用戶向瀏覽器的搜索輸入?yún)^(qū)中輸入搜索表達(dá)式“98829”。搜索串可意味著多種內(nèi)容,諸如訂單號、顧客號、郵政編碼等等。搜索引擎和爬尋器202都不知道該搜索表達(dá)式意味著什么。實體類304提供了統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中的語義,以允許返回的數(shù)據(jù)有意義。例如,爬尋器200可返回SAP系統(tǒng)302A中其中可找到搜索表達(dá)式“98829”的實體的類別。這些類別可包括訂單號、顧客、郵政編碼等等。搜索表達(dá)式可出現(xiàn)在儲存在SAP系統(tǒng)302A或諸如數(shù)據(jù)庫208-212等其它系統(tǒng)中的任何字段中。為獲得系統(tǒng)外的信息片斷,用戶需要通過選中表示特定實體的超鏈接來指示。從這一選擇中,爬尋器200知道要調(diào)用的具體方法或查尋器方法,以從SAP系統(tǒng)302A中提取期望的信息片斷。
本發(fā)明的各實施例替代了編寫直接與對諸如數(shù)據(jù)庫208-212等特定系統(tǒng)專用的協(xié)議交互的新協(xié)議處理程序的需求。相反,使用統(tǒng)一應(yīng)用程序編程接口204和統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202,爬尋器200需要直接與統(tǒng)一應(yīng)用程序編程接口204交互,而無需知道數(shù)據(jù)庫208-212所需的協(xié)議的具體細(xì)節(jié)。與數(shù)據(jù)庫208-212有關(guān)的具體細(xì)節(jié)在某種意義上由本發(fā)明的各實施例變換成單個統(tǒng)一協(xié)議。更具體地,變換是由爬尋器200對特定的實體調(diào)用查尋器方法。為找出信息,爬尋器200只需找出用戶感興趣的特定實體的期望的查尋器方法。爬尋器200無需知道其它復(fù)雜的協(xié)議來從數(shù)據(jù)庫208-212中提取期望的信息片斷。
統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202文本上包含由系統(tǒng)云302定義的各種系統(tǒng)、由實體云304定義的各種實體、由方法云306定義的各種方法(諸如查尋器方法306A)、由參數(shù)云308定義的各種參數(shù)、以及由過濾器云308A定義的各種過濾器(諸如“自從……以來修改”過濾器308B)。較佳的是組織內(nèi)具有諸如數(shù)據(jù)庫208-212等系統(tǒng)的知識的信息技術(shù)(IT)工作者填充統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202。在實現(xiàn)統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202時無需編寫使用本發(fā)明的各實施例來的代碼。較佳的是向組織中的信息技術(shù)工作者提供用戶界面來填充統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202。
可以有一個以上查尋器方法306A。較佳地,一個查尋器方法允許找出諸如數(shù)據(jù)庫208-212等系統(tǒng)內(nèi)包含信息片斷的特定行。另一合適的查尋器是找出包含期望的信息片斷的多個行的查尋器。由方法云306表示的某些方法可具有由參數(shù)類308表示的復(fù)雜參數(shù)。為簡化方法的調(diào)用,本發(fā)明的各實施例允許描述各方法的默認(rèn)參數(shù)并將其儲存在統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202中。默認(rèn)參數(shù)將自動被插入到方法調(diào)用中,而無需爬尋器200指定參數(shù)的細(xì)節(jié)。
圖4A-4G示出了用于在數(shù)據(jù)庫和應(yīng)用程序文檔中爬尋信息片斷的過程400,且為清楚起見,以下對過程400的描述參考了結(jié)合云圖300(圖3)和爬尋器200(圖2)所示的各元素。從開始框中,過程300前進(jìn)到一組在延續(xù)終端(“終端A”)和退出終端(“終端B”)之間定義的處理步驟402。該組處理步驟402描述了用于填充統(tǒng)一數(shù)據(jù)結(jié)構(gòu)202的過程。
從終端A(圖4B),過程400前進(jìn)到框408,其中信息技術(shù)工作者文本上指定一個或多個系統(tǒng)。過程400前進(jìn)到框410,其中IT工作者文本上指定系統(tǒng)中的一個或多個實體。IT工作者然后文本上指定與實體有關(guān)的一個或多個方法(即,查尋器方法)。見框412。過程400然后流至框414,其中IT工作者文本上指定與方法有關(guān)的一個或多個參數(shù)。接著,在框416,IT工作者文本上指定與方法有關(guān)的一個或多個過濾器。IT工作者也文本上指定一個或多個默認(rèn)參數(shù)。見框418。該方法然后繼續(xù)到退出終端B。
從退出終端B,過程400前進(jìn)到在延續(xù)終端(“終端C”)和退出終端(“終端D”)之間定義的一組處理步驟404。該組處理步驟404描述了對數(shù)據(jù)庫和應(yīng)用程序文檔執(zhí)行的爬尋過程。
從終端C(圖4C),過程400前進(jìn)到框420,其中使用統(tǒng)一API的爬尋器仔細(xì)檢查統(tǒng)一數(shù)據(jù)結(jié)構(gòu),并選擇要爬尋的系統(tǒng)。接著,在框422,使用統(tǒng)一API的爬尋器找出要爬尋的系統(tǒng)的實體(在統(tǒng)一數(shù)據(jù)結(jié)構(gòu)內(nèi))。系統(tǒng)的一個示例是數(shù)據(jù)庫208。實體的另一示例是顧客實體304A。使用統(tǒng)一API的爬尋器找出實體的查尋方法。見框424。過程400然后前進(jìn)到框426,其中爬尋器使用統(tǒng)一API找出與查尋方法相關(guān)聯(lián)的一個或多個參數(shù)。爬尋器使用統(tǒng)一API找出一個或多個默認(rèn)參數(shù)。見框428。過程400然后繼續(xù)到框430,其中爬尋器使用統(tǒng)一API找出一個或多個過濾器,以約束爬尋器的截止器。接著,過程400繼續(xù)到另一延續(xù)終端(“終端C1”)。
從終端C1(圖4D),爬尋器使得統(tǒng)一API用由一個或多個過濾器約束的一個或多個默認(rèn)參數(shù)調(diào)用方法。接著,在框434,統(tǒng)一API將方法和參數(shù)轉(zhuǎn)換成帶有可由諸如數(shù)據(jù)庫208等特定系統(tǒng)的適配器理解的參數(shù)的另一方法。適配器將方法調(diào)用轉(zhuǎn)換成可由諸如API 208A等其它API系統(tǒng)理解的協(xié)議。見框436。過程400然后繼續(xù)到框438,其中適配器將方法調(diào)用轉(zhuǎn)換成可由能找出期望信息片斷的系統(tǒng)的特定API理解的協(xié)議。過程400然后繼續(xù)到另一延續(xù)終端(“終端C2”)。
從終端C2(圖4E),過程400前進(jìn)到判別框442,其中執(zhí)行測試以確定爬尋器是否使用所選擇的方法完成了其爬尋。如果在判別框442處測試的回答是“否”,則過程400循環(huán)回來以再次執(zhí)行判別框442處的測試。否則,如果回答是“是”,則過程400繼續(xù)到框444,其中方法索引唯一地標(biāo)識包含期望信息片斷的行的關(guān)鍵字段(以及關(guān)鍵字段的描述)。在判別框446執(zhí)行另一測試以確定在系統(tǒng)內(nèi)是否還有更多實體要爬尋。如果對判別框446處的測試的回答是“是”,則過程前進(jìn)到另一延續(xù)終端(“終端C3”)。從終端C3(圖4C),過程400循環(huán)回到框422,其中重復(fù)上述處理步驟。否則,對判別框446的測試的回答是“否”,且過程400前進(jìn)到另一延續(xù)終端(“終端C4”)。
從終端C4(圖4F),過程400前進(jìn)到判別框448,其中執(zhí)行測試以確定是否還有更多系統(tǒng)要爬尋。如果對測試的回答是“是”,則方法繼續(xù)到另一延續(xù)終端(“終端C5”)。從終端C5(圖4C),該過程循環(huán)回到框420,其中重復(fù)上述處理步驟。否則,對判別框448處的測試的回答是“否”,且過程400前進(jìn)到退出終端D。
從退出終端D,過程400前進(jìn)到在延續(xù)終端(“終端E”)和退出終端(“終端F”)之間定義的一組處理步驟406。該組處理步驟406選擇性地顯示了由爬尋器找到的信息片斷的各個身份。從終端E(圖4F),用戶通過瀏覽器輸入搜索表達(dá)式。見框450。接著,在框452,過程400收集系統(tǒng)中包含搜索表達(dá)式內(nèi)容的實體。過程400然后繼續(xù)到另一延續(xù)終端(“終端E1”)。
從終端E1(圖4G),過程400前進(jìn)到框455,其中該過程向用戶呈現(xiàn)包含搜索表達(dá)式的內(nèi)容的實體的描述。接著,在框456,用戶選擇特定實體。使用索引的統(tǒng)一API提取涉及搜索表達(dá)式的內(nèi)容以及特定系統(tǒng)的特定實體的實際信息片斷。過程400然后前進(jìn)到框460,其中在瀏覽器上向用戶呈現(xiàn)信息片斷。過程400然后繼續(xù)到判別框462,其中執(zhí)行另一測試以確定是否有更多搜索要執(zhí)行。如果對判別框462處的測試的回答是“是”,則過程400繼續(xù)到終端E,并循環(huán)回到圖4F,其中重復(fù)上述處理步驟。否則,對判別框462處的測試的回答是“否”,則過程400繼續(xù)到退出終端F并終止執(zhí)行。
盡管示出和描述了本發(fā)明的較佳實施例,然而可以理解,可在其中作出各種改變而不脫離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種用于探查不同數(shù)據(jù)庫以找出信息的系統(tǒng),包括儲存在計算機(jī)可讀介質(zhì)中的統(tǒng)一數(shù)據(jù)結(jié)構(gòu),用于枚舉要探查的一組數(shù)據(jù)庫以及用于約束要返回的信息的過濾器;儲存在另一計算機(jī)可讀介質(zhì)中的統(tǒng)一應(yīng)用程序編程接口,用于將用來與該組數(shù)據(jù)庫通信的協(xié)議變換成一種協(xié)議;以及爬尋器,所述爬尋器使用所述一種協(xié)議來調(diào)用所述統(tǒng)一數(shù)據(jù)結(jié)構(gòu)中描述的方法,來探查該組數(shù)據(jù)庫中的期望信息片斷,而無需知道對該組數(shù)據(jù)庫中的每一數(shù)據(jù)庫專用的協(xié)議。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述統(tǒng)一數(shù)據(jù)結(jié)構(gòu)包括系統(tǒng)下的一個或多個實體,每一系統(tǒng)包括來自該組數(shù)據(jù)庫的一個數(shù)據(jù)庫,每一實體向該組數(shù)據(jù)庫中的一個或多個數(shù)據(jù)庫中的信息片斷施加結(jié)構(gòu)。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于,所述統(tǒng)一數(shù)據(jù)結(jié)構(gòu)包括實體下的一個或多個方法,每一方法可由所述統(tǒng)一數(shù)據(jù)結(jié)構(gòu)來描述,以允許所述爬尋器調(diào)用并探查數(shù)據(jù)庫中的期望信息片斷。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述統(tǒng)一數(shù)據(jù)結(jié)構(gòu)包括方法下的一個或多個參數(shù),一個或多個參數(shù)可由所述過濾器注釋以約束要返回的信息片斷。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述過濾器包括過濾自從特定日期以來修改的信息片斷的過濾器。
6.一種其上儲存有數(shù)據(jù)結(jié)構(gòu)的計算機(jī)可讀介質(zhì),所述數(shù)據(jù)結(jié)構(gòu)用于增強(qiáng)爬尋不同數(shù)據(jù)庫中的信息片斷的過程,所述數(shù)據(jù)結(jié)構(gòu)包括指示要由爬尋器探查的數(shù)據(jù)庫的系統(tǒng)字段、指示要給予儲存在所述數(shù)據(jù)庫中的信息片斷的意義的實體字段、指示用于找出所述數(shù)據(jù)庫中的實體字段的示例的可調(diào)用邏輯片斷的方法、指示要由值來填充的變量的參數(shù)字段、以及指示約束要通過所述方法調(diào)用返回的信息片斷的注釋的過濾器字段。
7.如權(quán)利要求6所述的計算機(jī)可讀介質(zhì),其特征在于,還包括所述實體字段的實例化,用于創(chuàng)建表示選自由顧客、訂單號和郵政編碼組成的組的信息的類別的結(jié)構(gòu)。
8.如權(quán)利要求6所述的計算機(jī)可讀介質(zhì),其特征在于,還包括所述方法字段的實例化,用于創(chuàng)建在由所述爬尋器探查的數(shù)據(jù)庫中找出特定行的方法。
9.如權(quán)利要求6所述的計算機(jī)可讀介質(zhì),其特征在于,還包括所述方法字段的實例化,用于創(chuàng)建找出由所述爬尋器探查的數(shù)據(jù)庫中的多個行的方法。
10.如權(quán)利要求6所述的計算機(jī)可讀介質(zhì),其特征在于,還包括所述過濾器字段的實例化,用于創(chuàng)建過濾自從特定日期以來被修改的信息片斷的過濾器。
11.一種用于探查數(shù)據(jù)庫和應(yīng)用程序文檔以找出信息片斷的計算機(jī)實現(xiàn)的方法,所述方法包括通過訪問統(tǒng)一數(shù)據(jù)結(jié)構(gòu),以通過用一個或多個過濾器調(diào)用查尋器方法來探查每一數(shù)據(jù)庫下的每一實體,來爬尋期望的信息片斷,每一過濾器約束要返回的信息片斷;以及接收用戶選中超鏈接時的選擇,所述超鏈接與一標(biāo)識符相關(guān)聯(lián)以獲取一個或多個數(shù)據(jù)庫中涉及與所述標(biāo)識符相關(guān)聯(lián)的實體的信息片斷。
12.如權(quán)利要求11所述的方法,其特征在于,還包括在所述爬尋動作之前填充所述統(tǒng)一數(shù)據(jù)結(jié)構(gòu)的動作,以枚舉要爬尋的一個或多個數(shù)據(jù)庫、每一數(shù)據(jù)庫下的實體、每一實體下的方法、每一方法下的參數(shù)以及與參數(shù)相關(guān)聯(lián)的過濾器。
13.如權(quán)利要求12所述的方法,其特征在于,還包括索引所述數(shù)據(jù)庫中的關(guān)鍵字段。
14.如權(quán)利要求13所述的方法,其特征在于,還包括將統(tǒng)一應(yīng)用程序編程接口的方法調(diào)用轉(zhuǎn)換成對數(shù)據(jù)庫專用的應(yīng)用程序編程接口的調(diào)用。
15.如權(quán)利要求14所述的方法,其特征在于,還包括過濾在一個或多個數(shù)據(jù)庫中找到的信息片斷,以符合與所述方法調(diào)用相關(guān)聯(lián)的過濾器。
16.一種其上儲存有指令的計算機(jī)可讀介質(zhì),所述指令用于實現(xiàn)探查數(shù)據(jù)庫和應(yīng)用程序文檔以找出期望的信息片斷的計算機(jī)實現(xiàn)的方法,所述方法包括通過訪問統(tǒng)一數(shù)據(jù)結(jié)構(gòu),以調(diào)用通過帶有一個或多個過濾器的查尋器方法來探查每一數(shù)據(jù)庫下的每一實體,來爬尋期望的信息片斷,每一過濾器約束要返回的信息片斷;以及接收用戶選中超鏈接時的選擇,所述超鏈接與一標(biāo)識符相關(guān)聯(lián)以獲取一個或多個數(shù)據(jù)庫中涉及與所述標(biāo)識符相關(guān)聯(lián)的實體的信息片斷。
17.如權(quán)利要求16所述的計算機(jī)可讀介質(zhì),其特征在于,還包括在所述爬尋動作之前填充所述統(tǒng)一數(shù)據(jù)結(jié)構(gòu)的動作,以枚舉要爬尋的一個或多個數(shù)據(jù)庫、每一數(shù)據(jù)庫下的實體、每一實體下的方法、每一方法下的參數(shù)、以及與參數(shù)相關(guān)聯(lián)的過濾器。
18.如權(quán)利要求17所述的計算機(jī)可讀介質(zhì),其特征在于,還包括索引所述數(shù)據(jù)庫中的關(guān)鍵字段。
19.如權(quán)利要求18所述的計算機(jī)可讀介質(zhì),其特征在于,還包括將統(tǒng)一應(yīng)用程序編程接口的方法調(diào)用轉(zhuǎn)換成對數(shù)據(jù)庫專用的應(yīng)用程序編程接口的調(diào)用。
20.如權(quán)利要求19所述的計算機(jī)可讀介質(zhì),其特征在于,還包括過濾在一個或多個數(shù)據(jù)庫中找到的信息片斷以符合與所述方法調(diào)用相關(guān)聯(lián)的過濾器。
全文摘要
一種系統(tǒng)便于搜索引擎搜索各種數(shù)據(jù)庫和應(yīng)用程序文檔中的信息片斷,而無需知道用于與各種數(shù)據(jù)庫和諸如Microsoft Excel文檔等應(yīng)用程序文檔通信的專用協(xié)議。盡管有爬尋器連接到數(shù)據(jù)庫必須使用的多種可能的協(xié)議,但是系統(tǒng)包括一種統(tǒng)一應(yīng)用程序編程接口,以統(tǒng)一訪問數(shù)據(jù)庫和應(yīng)用程序文檔中的信息片斷的方式。
文檔編號G06F17/30GK1841377SQ20061005155
公開日2006年10月4日 申請日期2006年2月28日 優(yōu)先權(quán)日2005年3月29日
發(fā)明者A·C·卡帕迪亞, H·M·克勞, J·S·布克, R·D·帕克 申請人:微軟公司