專利名稱::抽象數(shù)據(jù)鏈接和聯(lián)接接口的制作方法
技術(shù)領(lǐng)域:
:一般而言,本發(fā)明涉及數(shù)據(jù)處理,具體來說,涉及通過邏輯框架訪問數(shù)據(jù)。
背景技術(shù):
:數(shù)據(jù)庫是計算機化的信息存儲和檢索系統(tǒng)。最普通的數(shù)據(jù)庫類型是關(guān)系數(shù)據(jù)庫,這是一種其中如此定義數(shù)據(jù)以便可以以許多不同的方式重新組織和訪問它的表格數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS)是使用用于存儲和檢索數(shù)據(jù)的關(guān)系技術(shù)的數(shù)據(jù)庫管理系統(tǒng)。不管特定體系結(jié)構(gòu)如何,在DBMS中,請求性實體(例如,應用程序、操作系統(tǒng)或用戶)通過發(fā)出數(shù)據(jù)庫訪問請求來訪問指定的數(shù)據(jù)庫。這樣的請求可以包括,例如,操作以讀取、改變記錄和在數(shù)據(jù)庫中添加指定的記錄的簡單目錄查詢請求或事務和事務的組合。使用諸如結(jié)構(gòu)化查詢語言(SQL)之類的高級別的查詢語言來作出這些請求。具體來說,使用SQL來作出交互式查詢,以便從諸如IBM公司的DB2、微軟的SQLServer和來自Oracle、Sybase和ComputerAssociates的數(shù)據(jù)庫產(chǎn)品獲取信息并更新這些數(shù)據(jù)庫。術(shù)語“查詢”表示一組用于從存儲的數(shù)據(jù)庫中檢索數(shù)據(jù)的命令。一般而言,查詢呈現(xiàn)讓程序員和程序選擇、插入、更新、查找數(shù)據(jù)等等的位置的命令語言的形式。查詢可能常常需要對著多個表運行,以返回所需要的數(shù)據(jù)。當數(shù)據(jù)駐留在多個數(shù)據(jù)庫(即,位于多個數(shù)據(jù)庫服務器上)時,就是這種情況。例如,病人的記錄(診斷、治療等等)可以存儲在一個數(shù)據(jù)庫中,而涉及用于治療該病人的藥物的臨床試驗信息可以存儲在另一個數(shù)據(jù)庫中。因此,要訪問數(shù)據(jù),可以生成指向這些不同數(shù)據(jù)庫中的每一個數(shù)據(jù)庫的聯(lián)合查詢。如這里所使用的,術(shù)語“聯(lián)合查詢”一般是指需要組合針對不同的數(shù)據(jù)庫運行的查詢的結(jié)果的任何查詢。用來完成此任務的操作這里被稱為“組合語句”。舉例來說,組合語句包括諸如JOIN語句(包括INNER、OUTER、LEFT和RIGHT)系列,UNION語句系列之類的語句。JOIN將來自兩個不同的表或來自同一個表的數(shù)據(jù)配對。UNION可以對兩個相同的表進行操作或可以用來連接來自相似字段的數(shù)據(jù)。例如,名為ADDRESS的字段可以與名為LOCATION的字段UNION起來。這些字段不相同,可以,也可以不必來自于同一個表,但它們包含類似的信息。作為說明,表I和II顯示了其中表被分別JOIN和UNION的SQL語句的示例。TABLEISELECTT1.ADDRESS,T1.CITY,T1.STATE,T1.ZIP,T2.LOCATIONFROMADDRESSEST1,NEIGHBORHOODT2WHERET1.ADDRESSID=T2.ADDRESSIDANDT1.ZIP=55901TABLEIISELECTADDRESS,CITY,STATE,ZIPFROMADDRESSESWHEREZIP=55901UNIONSELECTLOCATION,NULL,NULL,NULLFROMNEIGHBORHOODWHEREZIP=55901UNION示例(表II)將位置附加到ADDRESS之后,JOIN(表I)示例將位置與它屬于的地址鏈接。值得注意的是,JOIN和UNION只是組合語句的兩個示例。組合語句的另一個示例是ACCEPT語句系列。此外,還存在對應的語句,或者也可以為SQL之外的查詢語言(例如,XQuery)開發(fā)對應的語句。通常,用戶需要創(chuàng)建查詢語句,理解基礎(chǔ)物理數(shù)據(jù),以便應用適當?shù)慕M合語句,從而返回所希望的結(jié)果。然而,這會給用戶帶來很大的負擔,只有具有足夠的專門知識的用戶才能訪問。因此,所需要的是具有靈活性的構(gòu)建查詢接口,具體來說,其數(shù)據(jù)可能需要鏈接起來或組合起來,以返回所希望的結(jié)果。
發(fā)明內(nèi)容本發(fā)明提供了使用諸如JOIN和UNION之類的組合語句訪問抽象描述的物理數(shù)據(jù)的方法、系統(tǒng)和產(chǎn)品。在一個實施例中,數(shù)據(jù)通過抽象模型來進行定義,該模型包括描述和定義多個邏輯字段的元數(shù)據(jù)。提供了用于創(chuàng)建抽象查詢的用戶界面工具。該工具的一個方面給用戶提供了映射必須通過第一種語句類型(例如,UNION)組合的那些字段(列)和必須通過第二種語句類型(例如,JOIN)組合的那些字段的裝置。在一個實施例中,一種方法提供了物理數(shù)據(jù)實體的物理字段的邏輯表示以方便查詢所述物理字段。該方法包括提供邏輯模型以在邏輯上描述所述物理字段,所述邏輯模型包括對應于相應的物理字段的邏輯字段;并提供運行時組件,該組件被配置為,將抽象查詢轉(zhuǎn)換為包含至少一個組合語句的可執(zhí)行的查詢,所述抽象查詢包括條件和從邏輯模型的邏輯字段中選擇的至少兩個結(jié)果字段,每一個結(jié)果字段都在可執(zhí)行的查詢的至少一個組合語句中具有可執(zhí)行的對應部分。另一種方法提供了物理數(shù)據(jù)實體的物理字段的邏輯表示以方便查詢所述物理字段。該方法包括提供邏輯模型以在邏輯上描述所述物理字段,所述邏輯模型包括對應于相應的物理字段的邏輯字段;接收相對于包括對應于相應的物理字段的邏輯字段的邏輯模型定義的抽象查詢,所述抽象查詢包括條件和從邏輯模型的邏輯字段中選擇的至少兩個組合結(jié)果字段;并將抽象查詢轉(zhuǎn)換為包含至少一個組合語句的可執(zhí)行的查詢,所述抽象查詢包括條件和從邏輯模型的邏輯字段中選擇的至少兩個組合結(jié)果字段,每一個結(jié)果字段都在可執(zhí)行的查詢的組合語句中具有可執(zhí)行的對應部分。在另一個實施例中,一種方法允許構(gòu)建查詢。該方法包括提供一種圖形用戶界面,該界面允許用戶選擇和排列從在邏輯上定義數(shù)據(jù)的邏輯模型中選擇的邏輯結(jié)果字段,其中,用戶選擇的邏輯結(jié)果字段之間的預先確定的相對幾何排列定義用戶選擇的邏輯結(jié)果字段之間的組合關(guān)系。在另一個實施例中,一種允許構(gòu)建查詢的方法包括提供一種圖形用戶界面,該界面允許用戶選擇和排列從在邏輯上定義數(shù)據(jù)的邏輯模型中選擇的邏輯結(jié)果字段,其中,用戶選擇的邏輯結(jié)果字段之間的第一預先確定的相對幾何排列定義用戶選擇的邏輯結(jié)果字段之間的第一種組合關(guān)系,其中,用戶選擇的邏輯結(jié)果字段之間的第二預先確定的相對幾何關(guān)系定義用戶選擇的邏輯結(jié)果字段之間的第二種組合關(guān)系。在另一個實施例中,一種允許構(gòu)建查詢的方法包括提供一種圖形用戶界面,該界面允許用戶選擇和排列從在邏輯上定義數(shù)據(jù)的邏輯模型中選擇的邏輯結(jié)果字段,該圖形用戶界面包括表,該表包括多個單元,其中,相鄰的單元中的用戶選擇的邏輯結(jié)果字段之間的預先確定的相對幾何排列定義用戶選擇的邏輯結(jié)果字段之間的組合關(guān)系。在另一個實施例中,一種用于構(gòu)建查詢的方法包括提供邏輯模型以在邏輯上描述所述物理字段,所述邏輯模型包括對應于相應的物理字段的邏輯字段;提供一種圖形用戶界面,該界面允許用戶選擇和排列從邏輯模型中選擇的邏輯結(jié)果字段;接收用戶在圖形用戶界面中指定第一邏輯結(jié)果字段的選擇和位置的輸入;接收用戶在圖形用戶界面中指定第二邏輯結(jié)果字段的選擇和位置的輸入,其中,第一和第二邏輯結(jié)果字段具有相對幾何關(guān)系并定義抽象查詢的至少一部分;并將抽象查詢轉(zhuǎn)換為包含至少一個組合語句并作為相對幾何關(guān)系的結(jié)果生成的可執(zhí)行的查詢,所述組合語句中包含第一和第二邏輯結(jié)果字段的表示。再一個實施例提供了包含圖形用戶界面程序的計算機可讀取的介質(zhì),該程序在執(zhí)行時,執(zhí)行用于構(gòu)建相對于包括映射到數(shù)據(jù)的物理實體的物理字段的多個邏輯字段定義的邏輯模型而定義的抽象查詢的操作。該操作包括接收用戶在圖形用戶界面中指定第一邏輯結(jié)果字段的選擇和位置的輸入;其中,圖形用戶界面允許用戶從邏輯模型中選擇邏輯結(jié)果字段,并支持用戶選擇的邏輯結(jié)果字段之間的關(guān)系;并接收用戶在圖形用戶界面中指定第二邏輯結(jié)果字段的選擇和位置的輸入,其中,第一和第二邏輯結(jié)果字段定義抽象查詢的至少一部分,所述抽象查詢被轉(zhuǎn)換成包含至少一個組合語句的可執(zhí)行的查詢,其中包含第一和第二邏輯結(jié)果字段的對應部分。再一個實施例提供了包含程序的計算機可讀取的介質(zhì),該程序在執(zhí)行時,執(zhí)行用于構(gòu)建相對于包括映射到數(shù)據(jù)的物理實體的物理字段的多個邏輯字段定義的邏輯模型而定義的抽象查詢的操作。該操作包括接收用戶在圖形用戶界面中指定第一邏輯結(jié)果字段的選擇和位置的輸入;其中,圖形用戶界面允許用戶選擇和排列從邏輯模型中選擇的邏輯結(jié)果字段;接收用戶在圖形用戶界面中指定第二邏輯結(jié)果字段的選擇和位置的輸入,其中,第一和第二邏輯結(jié)果字段具有相對幾何關(guān)系并定義抽象查詢的至少一部分;并將抽象查詢轉(zhuǎn)換為包含至少一個組合語句并作為相對幾何關(guān)系的結(jié)果生成的可執(zhí)行的查詢,所述組合語句包含第一和第二邏輯結(jié)果字段的對應部分。再一個實施例提供了計算機系統(tǒng),包括存儲器和至少一個處理器,并進一步包括邏輯模型,該邏輯模型包括映射到數(shù)據(jù)的物理實體的物理字段的多個邏輯字段定義,從而,邏輯模型提供了數(shù)據(jù)的邏輯視圖;允許用戶選擇和排列從邏輯模型中選擇的邏輯結(jié)果字段的圖形用戶界面;其中,圖形用戶界面包括用于用戶選擇的邏輯結(jié)果字段的輸入單元,其中,單元之間的預先定義的幾何關(guān)系指定單元中的用戶選擇的邏輯結(jié)果字段是根據(jù)兩種或更多種組合語句類型中的哪一種類型相關(guān)聯(lián)的。通過參考附圖中所顯示的實施例,可以獲得實現(xiàn)本發(fā)明的上文列舉的特點、優(yōu)點和目標并可以對它們進行詳細理解的方式,上文簡要概括的本發(fā)明的比較具體的說明。然而,值得注意的是,所附的圖形只顯示了本發(fā)明的典型的實施例,因此,不視為對其范圍進行限制,對于本發(fā)明,可以允許其他同樣有效的實施例。圖1是說明性的計算機體系結(jié)構(gòu)的方框圖;圖2是被配置為通過物理數(shù)據(jù)源的抽象表示形式來對物理數(shù)據(jù)源處理查詢的本發(fā)明的一個實施例的軟件組件的關(guān)系視圖;圖3是說明運行時組件的操作的流程圖;圖4是說明運行時組件的操作的流程圖;圖5是用于啟動向查詢添加條件的過程的圖形用戶界面屏幕;圖6是用于作為條件將出生日期添加到查詢中的圖形用戶界面屏幕;圖7是向查詢顯示現(xiàn)有條件并且用戶可以從中將附加條件添加到查詢并執(zhí)行查詢的圖形用戶界面屏幕;圖8是用附加條件更新之后的圖4的圖形用戶界面屏幕;圖9是用戶可以從中將條件組合起來以構(gòu)成復合條件的圖形用戶界面屏幕;圖10是已經(jīng)被更新以反映組合的條件之后的圖4的圖形用戶界面屏幕;圖11是用戶可以從中將復合條件的條件取消組合的圖形用戶界面屏幕;圖12是用戶可以從中選擇結(jié)果字段以包括在查詢中的圖形用戶界面屏幕;圖13-15是其中用戶UNION和/或JOIN了所選擇的結(jié)果字段的圖形用戶界面屏幕;圖16是用結(jié)果字段選擇更新之后圖11的圖形用戶界面屏幕;以及圖17是說明產(chǎn)生包括UNION語句的抽象查詢的流程圖;具體實施方式引言本發(fā)明的一個實施例是與計算機系統(tǒng)一起使用的程序產(chǎn)品來實現(xiàn)的,下面將對其進行描述。程序產(chǎn)品的程序定義實施例(包括這里所描述的方法)的功能,并可以包含在各種承載信號的介質(zhì)中。說明性的承載信號的介質(zhì)包括,但不僅限于(i)永久存儲在非可寫入的存儲介質(zhì)(例如,可由CD-ROM驅(qū)動器讀取的諸如CD-ROM光盤之類的計算機內(nèi)的只讀存儲器設備)中的信息;(ii)存儲在可寫入存儲介質(zhì)(例如,軟盤驅(qū)動器內(nèi)的軟盤或硬盤驅(qū)動器)上的可變的信息;或(iii)諸如通過計算機或電話網(wǎng)絡,包括無線通信,通過通信介質(zhì)傳輸?shù)接嬎銠C的信息。后一實施例特別包括從因特網(wǎng)和其他網(wǎng)絡下載的信息。這樣的承載的信號介質(zhì),當攜帶實現(xiàn)本發(fā)明的功能的計算機可讀的指令時,表示本發(fā)明的實施例。一般而言,被執(zhí)行以實現(xiàn)本發(fā)明的實施例的例程,可以是操作系統(tǒng)的一部分或特定的應用程序、組件、程序、模塊、對象,或指令序列。本發(fā)明的軟件通常包括將被本地計算機轉(zhuǎn)換為機器可讀的格式并因此轉(zhuǎn)換為可執(zhí)行的指令的多個指令。此外,程序還包括駐留在程序本地或被發(fā)現(xiàn)在存儲器或者存儲設備中的變量和數(shù)據(jù)結(jié)構(gòu)。此外,可以基于應用程序(在本發(fā)明的特定實施例中實現(xiàn)了程序)識別下文所描述的各種程序。然而,應該理解,隨后的任何特定的術(shù)語都只是為了方便,如此本發(fā)明不應該只限于在這樣的術(shù)語所標識和/或暗指的任何特定的應用程序中。本發(fā)明的實施例用于構(gòu)建查詢。在一個實施例中,用戶指定條件(例如,如在SQL查詢的WHERE子句中)以及結(jié)果標準(例如,如在SELECT子句中)。組合語句根據(jù)搜索到的結(jié)果將結(jié)果標準的組件關(guān)聯(lián)。例如,組合語句包括JOIN、UNION、ACCEPT和它們相應的系列成員(例如,在JOIN的情況下,為INNER、OUTER、LEFT和RIGHT)。為了方便起見并為了說明,將強調(diào)JOIN和UNION。然而,應該理解,本發(fā)明不僅限于特定類型的組合語句,本發(fā)明也不涉及特定查詢語言。如此,對SQL的引用只是為了說明,而不對本發(fā)明作出限制,同樣地適用于已知或未知的任何查詢語言。在一個實施例中,提供了特定數(shù)據(jù)定義框架(這里也簡稱為數(shù)據(jù)抽象模型(DAM)),用于查詢數(shù)據(jù),與物理上表示數(shù)據(jù)的特定方式無關(guān)。DAM包括描述和定義映射到物理數(shù)據(jù)的多個邏輯字段的元數(shù)據(jù)。然而,雖然是就構(gòu)建并相對于邏輯模型來執(zhí)行的查詢來描述本發(fā)明的實施例的,但是本發(fā)明不僅限于任何任何特定的邏輯模型。相應地,這里所說明的實施例只是說明性的。環(huán)境的物理視1描述了其中可以實現(xiàn)本發(fā)明的實施例的網(wǎng)絡系統(tǒng)100的方框圖。一般而言,網(wǎng)絡系統(tǒng)100包括客戶端(即,一般而言,諸如用戶或應用程序之類的任何請求性實體)計算機102(顯示了三個這樣的客戶端計算機)和至少一個服務器計算機104(顯示了一個這樣的服務器計算機)??蛻舳擞嬎銠C102和服務器計算機104通過網(wǎng)絡126連接在一起。一般而言,網(wǎng)絡126可以是局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)。在特定實施例中,網(wǎng)絡126是因特網(wǎng)。然而,值得注意的是,本發(fā)明的各個方面不必在分布式環(huán)境中實現(xiàn)。如此,一般而言,客戶端計算機102和服務器計算機104分別代表發(fā)出查詢的任何請求性實體(如用戶或應用程序)和被配置為處理查詢的接收性實體??蛻舳擞嬎銠C102包括通過總線130連接到存儲器112、存儲器114、輸入設備116、輸出設備119和網(wǎng)絡接口設備118的中央處理單元(CPU)110。輸入設備116可以是向客戶端計算機102提供輸入的任何設備。例如,可以使用鍵盤、小鍵盤、光筆、觸摸屏、跟蹤球、或語音識別單元、音頻/視頻播放器等等。輸出設備119可以是向用戶提供輸出的任何設備,例如,任何常規(guī)顯示屏幕。雖然所顯示的是與輸入設備116分開的,但是,輸出設備119和輸入設備116可以組合起來。例如,可以使用具有集成的觸摸屏的顯示屏幕,具有集成的鍵盤的顯示器或與文字語言轉(zhuǎn)換器結(jié)合的語音識別單元。網(wǎng)絡接口設備118可以是被配置為允許通過網(wǎng)絡126在客戶端計算機102和服務器計算機104之間進行網(wǎng)絡通信的任何進入/退出設備。例如,網(wǎng)絡接口設備118可以是網(wǎng)絡適配器或其他網(wǎng)絡接口卡(NIC)。優(yōu)選情況下,存儲器114是直接訪問存儲器(DASD)。雖然顯示為單個單元,但是,它可以是固定和/或可移動存儲設備的組合,如固定磁盤驅(qū)動器、軟盤驅(qū)動器、磁帶驅(qū)動器、可移動存儲卡或光存儲器。存儲器112和存儲器114可以是跨多個主要和輔助存儲設備的一個虛擬地址空間的一部分。優(yōu)選情況下,存儲器112是充分大,可以容納本發(fā)明的所需要的編程和數(shù)據(jù)結(jié)構(gòu)的隨機存取存儲器。盡管存儲器112被顯示為單個實體,但是,應該理解,事實上,存儲器112可以包括多個模塊,存儲器112可以在多個級別存在,從高速寄存器和高速緩存到較低速度的但較大的DAMM芯片。為便于說明,存儲器112包含操作系統(tǒng)124。可以優(yōu)先使用的說明性的操作系統(tǒng)包括Linux和微軟的Windows。一般而言,可以使用支持這里所說明的功能的任何操作系統(tǒng)。存儲器112還包含瀏覽器程序122,當在CPU110上執(zhí)行該瀏覽器程序時,支持在各種服務器104之間瀏覽并將網(wǎng)絡地址定位到一個或多個服務器104上。在一個實施例中,瀏覽器程序122包括基于Web的圖形用戶界面(GUI),該界面允許用戶顯示超文本標記語言(HTML)信息。然而,一般而言,瀏覽器程序122可以是能夠呈現(xiàn)從服務器計算機104傳輸?shù)男畔⒌娜魏位贕UI的程序。服務器計算機104在物理上可以以類似于客戶端計算機102的方式進行配置。相應地,一般而言,顯示的服務器計算機104包括CPU130、存儲器132,以及存儲設備134,它們通過總線136彼此連接在一起。存儲器132可以是充分大的隨機存取存儲器,可以容納位于服務器計算機104上的所需要的編程和數(shù)據(jù)結(jié)構(gòu)。一般而言,服務器計算機104在駐留在存儲器132中的操作系統(tǒng)138的控制下。操作系統(tǒng)138的示例包括IBMOS/400,UNIX,MicrosoftWindows等等。一般而言,可以使用能夠支持這里所描述的功能的任何操作系統(tǒng)。存儲器132進一步包括一個或多個應用程序140和抽象查詢界面146。應用程序140和抽象查詢界面146是軟件產(chǎn)品,包括在不同的時間駐留在計算機系統(tǒng)100中的各種存儲器和存儲設備中的多個指令。當被服務器104中的一個或多個處理器130讀取和執(zhí)行時,應用程序140和抽象查詢界面146使計算機系統(tǒng)100執(zhí)行那些實現(xiàn)本發(fā)明各個方面所需要的步驟或元素。應用程序140(一般而言,任何請求性實體,包括操作系統(tǒng)138,在最高級別,用戶)針對數(shù)據(jù)庫發(fā)出查詢??梢韵蚱浒l(fā)出查詢的說明性的源包括本地數(shù)據(jù)庫1561...156N,遠程數(shù)據(jù)庫1571...157N,統(tǒng)稱為數(shù)據(jù)庫156-157。為便于說明,所顯示的數(shù)據(jù)庫156為存儲器134中的數(shù)據(jù)庫管理系統(tǒng)(DBMS)154的一部分。一般而言,如這里所使用的,術(shù)語“數(shù)據(jù)庫”是指任何數(shù)據(jù)集合,不管特定的物理表示形式。作為說明,可以根據(jù)關(guān)系架構(gòu)(可通過SQL查詢來進行訪問)或根據(jù)XML架構(gòu)(可通過XML查詢來進行訪問)來組織數(shù)據(jù)庫156-157。然而,本發(fā)明不僅限于特定架構(gòu),并可以擴展到目前未知的架構(gòu)。如這里所使用的,術(shù)語“架構(gòu)”一般是指通過數(shù)據(jù)知識庫抽象148描述的數(shù)據(jù)的特定布局。在一個實施例中,根據(jù)每一個應用程序140中所包括的應用程序查詢規(guī)范142來定義應用程序140發(fā)出的查詢。應用程序140發(fā)出的查詢可以是預先定義的(即,作為應用程序140的一部分被硬編碼),也可以響應輸入(例如,用戶輸入)來生成。不論是哪一種情況,都可以使用抽象查詢界面146所定義的邏輯字段來構(gòu)成查詢(這里簡稱為“抽象查詢”)。具體來說,在抽象查詢中所使用的邏輯字段是通過抽象查詢界面146的數(shù)據(jù)抽象模型(DAM)148來進行定義的。抽象查詢被運行時組件150處理,該運行時組件將抽象查詢轉(zhuǎn)換為與一個或多個數(shù)據(jù)庫156-157中所包含的數(shù)據(jù)的物理表示形式一致的形式(這里簡稱為“具體查詢”)。具體來說,此處理是由運行時組件150的物理查詢編制器161來執(zhí)行的。運行時組件150還包括分析工具162,這樣叫,是因為它能實現(xiàn)這里所描述的數(shù)據(jù)分析功能。為便于說明,分析工具162包括DAM生成器164、查詢增強器166和表編制器168。值得注意的是,運行時組件150的功能只是說明性的。那些精通本技術(shù)的人員將認識到,可以在別處(例如,在數(shù)據(jù)庫管理系統(tǒng)154本身中)實現(xiàn)這些功能。下面將進一步描述抽象查詢界面146的每一個組件/功能。由運行時組件150處理的抽象查詢可以被配置為訪問數(shù)據(jù)和返回結(jié)果,或修改(即,插入、刪除或更新)數(shù)據(jù)。在一個實施例中,由用戶通過圖形用戶界面(GUI)指定查詢的元素。由應用程序140,具體來說,由圖形用戶界面(GUI)編制器144來生成GUI的內(nèi)容。在特定實施例中,GUI內(nèi)容是超文本標記語言(HTML)內(nèi)容,可以用瀏覽器程序122呈現(xiàn)在客戶端計算機系統(tǒng)102上。相應地,存儲器132包括超文本傳輸協(xié)議(http)服務器進程138(例如,Web服務器),用于服務于來自客戶端計算機102的請求。例如,進程138可以響應訪問說明性地駐留在服務器104上的數(shù)據(jù)庫156的請求。傳入的客戶端的對數(shù)據(jù)庫156-157中的數(shù)據(jù)的請求調(diào)用應用程序140。當由處理器130執(zhí)行時,應用程序140使服務器計算機104執(zhí)行實現(xiàn)本發(fā)明的各個方面的步驟或元素,包括訪問數(shù)據(jù)庫156-157。在一個實施例中,應用程序140包括多個被配置為構(gòu)建GUI元素(然后,它們由瀏覽器程序122呈現(xiàn))的多個servlet。在通過應用程序140訪問遠程數(shù)據(jù)庫157的情況下,給數(shù)據(jù)抽象模型148配置了標識包含要被檢索的數(shù)據(jù)的數(shù)據(jù)庫的位置規(guī)范。下面將比較詳細地描述此后一實施例。圖1只是網(wǎng)絡客戶端計算機102和服務器計算機104的一個硬件/軟件配置。本發(fā)明的實施例可以應用于任何可比較的硬件配置,不管計算機系統(tǒng)是復雜的多用戶計算設備,單用戶工作站,還是沒有它們自己的非易失性存儲器的網(wǎng)絡設備。此外,應該理解,盡管引用了特定標記語言,包括HTML,但是,本發(fā)明不僅限于特定語言、標準或版本。相應地,那些精通本技術(shù)的人員將認識到,本發(fā)明可以適用于其他標記語言以及非標記語言,本發(fā)明還可以適用于特定標記語言中的未來的變化以及目前未知的其他語言。同樣,圖1所示的http服務器進程138只是說明性的,可以支持任何已知和未知的協(xié)議的其他實施例也是可以的。環(huán)境的邏輯/運行時視2A-B顯示了本發(fā)明的多個相互關(guān)聯(lián)的組件。請求性實體(例如,其中一個應用程序140)發(fā)出如請求性實體的相應的應用程序查詢規(guī)范142所定義的查詢202。所產(chǎn)生的查詢202這里一般是指“抽象查詢”,因為根據(jù)抽象(即,邏輯)字段而不是通過對數(shù)據(jù)庫156-157中的基礎(chǔ)物理數(shù)據(jù)實體的直接引用來構(gòu)成。結(jié)果,可以定義與所使用的特定基礎(chǔ)數(shù)據(jù)表示無關(guān)的抽象查詢。在一個實施例中,應用程序查詢規(guī)范142可以包括用于進行數(shù)據(jù)選擇的標準(選擇標準204)和基于選擇標準204的要被返回的字段的顯式規(guī)范(返回數(shù)據(jù)規(guī)范206)。由應用程序查詢規(guī)范142指定的并用于構(gòu)成抽象查詢202的邏輯字段是由數(shù)據(jù)抽象模型148定義的。一般而言,數(shù)據(jù)抽象模型148作為一組邏輯字段暴露信息,這些邏輯字段可以在應用程序140發(fā)出的查詢(例如,抽象查詢202)內(nèi)使用,以指定進行數(shù)據(jù)選擇的標準,并指定從查詢操作返回的結(jié)果數(shù)據(jù)的形式。邏輯字段是獨立于在數(shù)據(jù)庫156-157中使用的基礎(chǔ)數(shù)據(jù)表示而定義的,從而允許形成松散耦合到基礎(chǔ)數(shù)據(jù)表示的查詢。DAM148的邏輯字段被映射到其中的數(shù)據(jù)可以位于單個數(shù)據(jù)的知識庫(即,源)或多個不同的數(shù)據(jù)知識庫中。如此,DAM148可以提供一個或多個基礎(chǔ)數(shù)據(jù)知識庫的邏輯視圖。通過使用數(shù)據(jù)知識庫的抽象表示形式,可以比較輕松地改變或替換基礎(chǔ)物理表示形式,而不會影響作出更改的應用程序。相反,抽象表示形式可以變化,而沒有應用程序所需的更改。此外,可以定義多個抽象數(shù)據(jù)表示形式,以支持針對可以具有不同的默認值或所需的字段的相同基礎(chǔ)數(shù)據(jù)庫架構(gòu)的不同的應用程序。一般而言,數(shù)據(jù)抽象模型148包括多個字段規(guī)范2081、2082、2083、2084和2085(作為示例,顯示了五個),統(tǒng)稱為“字段規(guī)范208”。具體來說,為可用于構(gòu)成抽象查詢的每一個邏輯字段,提供了字段規(guī)范。每一個字段規(guī)范包括邏輯字段名稱2101、2102、2103、2104、2105(統(tǒng)稱為,字段名稱210)和關(guān)聯(lián)的訪問方法2121、2122、2123、2124、2125(統(tǒng)稱為,訪問方法212)。訪問方法根據(jù)這里被稱為物理位置參數(shù)的參數(shù)將邏輯字段名稱關(guān)聯(lián)(即,映射)到數(shù)據(jù)庫(例如,其中一個數(shù)據(jù)庫156)中的特定物理數(shù)據(jù)表示形式2141,2142...214N。作為說明,顯示了兩個數(shù)據(jù)表示,XML數(shù)據(jù)表示2141和關(guān)系數(shù)據(jù)表示2142。然而,物理數(shù)據(jù)表示214N表示,任何其他數(shù)據(jù)表示,已知的或未知的,都是可以的。取決于要支持的不同類型的邏輯字段的數(shù)量,可以有任意數(shù)量的訪問方法。在一個實施例中,提供了簡單字段、過濾的字段和合成字段的訪問方法。字段規(guī)范2081、2082和2085分別示范了簡單字段訪問方法2121、2122和2125。直接將簡單字段映射到基礎(chǔ)物理數(shù)據(jù)表示中的特定實體(例如,映射到給定數(shù)據(jù)庫表和列的字段)。作為說明,圖2B所示的簡單字段訪問方法2121將邏輯字段名稱2101(″FirstName″)映射到名為“contact”的表中的名為“f_name”的列,其中,表名稱和列名稱是訪問方法2121的物理位置參數(shù)。字段規(guī)范2083示范了過濾的字段訪問方法2123。過濾的字段標識關(guān)聯(lián)的物理實體,并提供用于定義物理數(shù)據(jù)表示內(nèi)的項目的特定子集的規(guī)則。在圖2B中提供了一個示例,在該示例中,過濾的字段訪問方法2123將邏輯字段名稱2103(“AnytownLastName”)映射到名為“contact”的表中的名為“I_name”的列中的物理實體,并為城市Anytown中的個體定義過濾器。過濾的字段的另一個示例是紐約郵政編碼字段,該字段映射到郵政編碼的物理表示,并將數(shù)據(jù)只限制到為紐約州定義的那些郵政編碼。字段規(guī)范2084示范了合成字段訪問方法2124。合成訪問方法使用作為訪問方法定義的一部分提供的表達式從一個或多個物理字段來計算邏輯字段。如此,可以計算出不存在于基礎(chǔ)數(shù)據(jù)表示的信息。在圖2B中說明的示例中,合成字段訪問方法2123將邏輯字段名稱2103“AgeInDecades”映射到“AgeInYears/10”。另一個示例是通過將售價字段乘以營業(yè)稅率構(gòu)成的營業(yè)稅字段。值得注意的是,圖2B所示的數(shù)據(jù)抽象模型148只是所選擇的邏輯字段規(guī)范的說明,并不是全面的。如此,圖2B所示的抽象查詢202包括一些邏輯字段(在數(shù)據(jù)抽象模型148中沒有顯示規(guī)范),如“州”和“街道”。基礎(chǔ)數(shù)據(jù)的任何給定數(shù)據(jù)類型(例如,日期、十進制數(shù)字等等)的格式可以變化。相應地,在一個實施例中,字段規(guī)范208包括反映了基礎(chǔ)數(shù)據(jù)的格式的類型屬性。然而,在另一個實施例中,字段規(guī)范208的數(shù)據(jù)格式不同于關(guān)聯(lián)的基礎(chǔ)物理數(shù)據(jù),在這樣的情況下,訪問方法負責以請求性實體采用的適當?shù)母袷椒祷財?shù)據(jù)。如此,訪問方法必須知道采用什么格式的數(shù)據(jù)(即,根據(jù)邏輯字段)以及基礎(chǔ)物理數(shù)據(jù)的實際格式。然后,訪問方法可以將基礎(chǔ)物理數(shù)據(jù)轉(zhuǎn)換為邏輯字段的格式。作為示例,圖2A所示的數(shù)據(jù)抽象模型148的字段規(guī)范208是映射到以關(guān)系數(shù)據(jù)表示2142表示的數(shù)據(jù)的邏輯字段的代表。然而,數(shù)據(jù)抽象模型148的其他實例將邏輯字段映射到諸如XML之類的其他物理數(shù)據(jù)表示。此外,在一個實施例中,數(shù)據(jù)抽象模型148被配置有過程數(shù)據(jù)表示的訪問方法。下面的表I中顯示了對應于圖2所示的抽象查詢202的說明性的抽象查詢。作為說明,使用XML來定義數(shù)據(jù)知識庫抽象148。然而,也可以使用任何其他語言。表I-查詢示例001<xmlversion="1.0">002<!-Querystringrepresentation:(FirstName="Mary"ANDLastName=003"McGoon")ORState="NC"->004<QueryAbstraction>005<Selection>006<ConditioninternalID="4">007<Conditionfield="FirstName"operator="EQ"value="Mary"008internalID="1"/>009<Conditionfield="LastName"operator="EQ"value="McGoon"010internalID="3"relOperator="AND"></Condition>011</Condition>012<Conditionfield="State"operator="EQ"value="NC"internalID="2"013relOperator="OR"></Condition>014</Selection>015<Results>016<Fieldname="FirstName"/>017<Fieldname="LastName"/>018<Fieldname="State"/>019</Results>020</QueryAbstraction>為便于說明,表I中所顯示的抽象查詢包括選擇規(guī)范(005-014行),其中,包含選擇標準和結(jié)果規(guī)范(015-019行)。在一個實施例中,選擇標準包括字段名稱(對于邏輯字段),比較運算符(=,>,<,等等)和值表達式(什么是與其進行比較的字段)。在一個實施例中,結(jié)果規(guī)范是將作為查詢執(zhí)行的結(jié)果返回的抽象字段的列表。抽象查詢中的結(jié)果規(guī)范可以包括字段名稱和排序標準。下面的表II中顯示了對應于表I中的抽象查詢的數(shù)據(jù)抽象模型148的說明性實例。作為說明,使用XML來定義數(shù)據(jù)抽象模型148。然而,也可以使用任何其他語言。表II-數(shù)據(jù)抽象模型示例001<xmlversion="1.0">002<DataRepository>003<Categoryname="Demographic">004<Fieldqueryable="Yes"name="FirstName"displayable="Yes">005<AccessMethod>006<SimplecolumnName="f_name"tableName="contact"></Simple>007</AccessMethod>008<TypebaseType="char"></Type>009</Field>010<Fieldqueryable="Yes"name="LastName"displayable="Yes">011<AccessMethod>012<SimplecolumnName="I_name"tableName="contact"></Simple>013</AccessMethod>014<TypebaseType="char"></Type>015</Field>016<Fieldqueryable="Yes"name="State"displayable="Yes">017<AccessMethod>018<SimplecolumnName="state"tableName="contact"></Simple>019</AccessMethod>020<TypebaseType="char"></Type>021</Field>022</Category>023</DataRepository>注意,004-009行對應于圖2B所示的DAM148的第一字段規(guī)范2081,而010-015行對應于第二字段規(guī)范2082。為了簡便起見,圖2B沒有顯示表I中定義的其他字段規(guī)范。還請注意,表I說明了類別,在此情況下“Demographic”。類別是一個或多個邏輯字段的組合。在本示例中,“FirstName”、“LastName”和“State”是屬于共同的類別“Demographic”的邏輯字段。在任何情況下,數(shù)據(jù)抽象模型148包含(或引用)將邏輯字段映射到物理數(shù)據(jù)的至少一個訪問方法。然而,前述的實施例只是說明性的,邏輯字段規(guī)范可以包括各種其他元數(shù)據(jù)。在一個實施例中,訪問方法進一步配置有定義與邏輯字段關(guān)聯(lián)的數(shù)據(jù)的位置的位置規(guī)范。如此,數(shù)據(jù)抽象模型148被延長,以包括許多數(shù)據(jù)源(可以是本地的和/或跨網(wǎng)絡環(huán)境分布)的說明。數(shù)據(jù)源可以使用多個不同的數(shù)據(jù)表示和數(shù)據(jù)訪問技術(shù)。如此,提供了基礎(chǔ)結(jié)構(gòu),該基礎(chǔ)結(jié)構(gòu)能夠利用當今流行的分布式環(huán)境。標題為“REMOTEDATAACCESSANDINTEGRATIONOFDISTRIBUTEDDATASOURCESTHROUGHDATASCHEMAANDQUERYABSTRACTION”的并授予給IBM公司的美國專利申請No.10/131,984中比較詳細地描述了訪問許多數(shù)據(jù)源的一個方法。圖3顯示了示范了運行時組件150的操作的一個實施例的說明性運行時方法300。當運行時組件150作為輸入接收到抽象查詢(如圖2所示的抽象查詢202)的實例時,在步驟302中輸入方法300。在步驟304中,運行時組件150讀取并分析抽象查詢的實例,并定位單個選擇標準和所希望的結(jié)果字段。在步驟306中,運行時組件150進入處理抽象查詢中存在的每一個查詢選擇標準語句的循環(huán)(包括步驟306、308、310和312),從而構(gòu)建具體查詢的數(shù)據(jù)選擇部分。在一個實施例中,選擇標準包括字段名稱(對于邏輯字段),比較運算符(=,>,<,等等)和值表達式(什么是與其進行比較的字段)。在步驟308中,運行時組件150使用來自抽象查詢的選擇標準的字段名稱,以查找數(shù)據(jù)知識庫抽象148中的字段的定義。如上所述,字段定義包括用于訪問與字段關(guān)聯(lián)的物理數(shù)據(jù)的訪問方法的定義。然后,運行時組件150為正在被處理的邏輯字段構(gòu)建(步驟310)ConcreteQueryContribution(具體查詢成分)。如這里所定義的,ConcreteQueryContribution是用于基于當前邏輯字段執(zhí)行數(shù)據(jù)選擇的具體查詢的一部分。具體查詢是以諸如SQL和XMLQuery之類的語言表示的查詢,與給定物理數(shù)據(jù)知識庫(例如,關(guān)系數(shù)據(jù)庫或XML知識庫)的數(shù)據(jù)一致。相應地,具體查詢用于定位并從由圖1所示的數(shù)據(jù)庫156-157代表的物理數(shù)據(jù)知識庫中檢索數(shù)據(jù)。然后,將為當前字段生成的ConcreteQueryContribution添加到ConcreteQueryStatement(具體查詢語句)。然后,方法300返回到步驟306,以開始抽象查詢的下一字段的處理。相應地,為抽象查詢中的每一個數(shù)據(jù)選擇字段,重復進入步驟306中的過程,從而將額外的內(nèi)容提供到要執(zhí)行的最終查詢。在構(gòu)建具體查詢的數(shù)據(jù)選擇部分之后,運行時組件150標識作為查詢執(zhí)行的結(jié)果返回的信息。如上所述,在一個實施例中,抽象查詢定義將作為查詢執(zhí)行的結(jié)果返回的抽象字段的列表,這里被稱為“結(jié)果規(guī)范”。抽象查詢中的結(jié)果規(guī)范可以包括字段名稱和排序標準。相應地,方法300在步驟314中進入循環(huán)(由步驟314、316、318和320進行定義),以將結(jié)果字段定義添加到正在生成的具體查詢。在步驟316中,運行時組件150在數(shù)據(jù)知識庫抽象148中查找結(jié)果字段名稱(從抽象查詢的結(jié)果規(guī)范中),然后從數(shù)據(jù)知識庫抽象148中檢索結(jié)果字段定義,以標識要為當前邏輯結(jié)果字段返回的數(shù)據(jù)的物理位置。然后,運行時組件150為邏輯結(jié)果字段構(gòu)建(作為步驟318)(標識要返回的數(shù)據(jù)的物理位置的具體查詢的)ConcreteQueryContribution。然后,在步驟320中,將ConcreteQueryContribution添加到ConcreteQueryStatement。一旦處理完成抽象查詢中的每一個結(jié)果規(guī)范,就可以在步驟322中執(zhí)行查詢。參考圖4描述根據(jù)步驟310和318的為邏輯字段構(gòu)建ConcreteQueryContribution的方法400的一個實施例。在步驟402中,方法400查詢與當前邏輯字段關(guān)聯(lián)的訪問方法是否為簡單訪問方法。如果是,則基于物理數(shù)據(jù)位置信息構(gòu)建ConcreteQueryContribution(步驟404),然后,根據(jù)上文所描述的方法300,繼續(xù)處理過程。否則,處理過程持續(xù)到步驟406,以查詢與當前邏輯字段關(guān)聯(lián)的訪問方法是否為過濾訪問方法。如果是,則基于某些物理數(shù)據(jù)實體的物理數(shù)據(jù)位置信息,構(gòu)建ConcreteQueryContribution(步驟408)。在步驟410中,用使用的額外的邏輯(過濾器選擇)將ConcreteQueryContribution擴展到與物理數(shù)據(jù)實體關(guān)聯(lián)的子集數(shù)據(jù)。然后,根據(jù)上文所描述的方法300,繼續(xù)處理過程。如果訪問方法不是過濾訪問方法,則處理從步驟406進入步驟412,在此,方法400查詢訪問方法是否為合成訪問方法。如果訪問方法是合成訪問方法,則在步驟414中定位和檢索合成字段表達式中的每一個子字段介紹信的物理數(shù)據(jù)位置。在步驟416中,用合成字段表達式的物理字段位置信息代替合成字段表達式的邏輯字段引用,從而生成ConcreteQueryContribution。然后,根據(jù)上文所描述的方法300,繼續(xù)處理過程。如果訪問方法不是合成訪問方法,則處理從步驟412進入步驟418。步驟418是作為本發(fā)明的實施例的任何其他訪問方法類型的代表。然而,應該理解,還可以有其中不必實現(xiàn)全部可用的訪問方法的其他實施例。例如,在特定實施例中,只使用簡單訪問方法。在另一個實施例中,只使用簡單訪問方法和過濾訪問方法。如上所述,如果邏輯字段指定不同于基礎(chǔ)物理數(shù)據(jù)的數(shù)據(jù)格式,則可能需要執(zhí)行數(shù)據(jù)轉(zhuǎn)換。在一個實施例中,當根據(jù)方法400為邏輯字段構(gòu)建ConcreteQueryContribution時,為每一個相應的訪問方法執(zhí)行初始轉(zhuǎn)換。例如,可以作為步驟404、408和416的一部分、或緊后面的步驟來執(zhí)行轉(zhuǎn)換。在步驟322中執(zhí)行查詢之后,執(zhí)行隨后的從物理數(shù)據(jù)的格式到邏輯字段的格式的轉(zhuǎn)換。當然,如果邏輯字段定義的格式與基礎(chǔ)物理數(shù)據(jù)的格式相同,則不需要進行轉(zhuǎn)換。圖形用戶界面如上所述,一個實施例為用戶提供了GUI,通過該GUI,可以合成和執(zhí)行查詢。GUI屏幕(例如,由應用程序140的GUI編制器144構(gòu)建)一般提供了搜索條件和用戶可以選擇的關(guān)聯(lián)的值。用戶的選擇用于構(gòu)建應用程序查詢規(guī)范142。然后,查詢可以以上文所描述的方式執(zhí)行。為了便于說明,定義某些術(shù)語是有幫助的。從上面的說明可以看出,為對知識庫154內(nèi)的一組所希望的數(shù)據(jù)庫記錄執(zhí)行搜索,請求性實體(例如,應用程序140)通過將一個或多個“操作數(shù)”和“邏輯算子”組合以構(gòu)成搜索表達式,來構(gòu)建查詢。操作數(shù)與算子一起標識所希望的搜索。每一個操作數(shù)都可以是為知識庫154中的元素的參數(shù)定義值的比較操作(通過比較運算符定義,例如,>,<,=)。例如,操作數(shù)可以是表示具有等于日期值1942/01/01的″DateOfBirth″參數(shù)的搜索結(jié)果的請求的″(DateOfBirth=′1942/01/01′)″。另一個說明性的操作數(shù)可以是表示具有大于1942/01/01的″DateOfBirth″參數(shù)的搜索結(jié)果的請求的″(DateOfBirth>′1942/01/01′)″。可以通過表示操作數(shù)之間的邏輯關(guān)系的邏輯算子來將兩個或更多操作數(shù)關(guān)聯(lián)。邏輯算子是諸如邏輯AND、OR和NOT之類的邏輯連接符。每一個操作數(shù),或具有邏輯算子的操作數(shù)都定義單個搜索條件。為了便于說明,單一的操作數(shù)這里被稱為“簡單條件”或只是“條件”。通過邏輯算子相關(guān)聯(lián)的兩個或更多操作數(shù)/條件構(gòu)成了“復合條件”或“復合條件”。簡單條件或復合條件可以構(gòu)成由應用程序140執(zhí)行的搜索表達式(即,查詢)的一部分?,F(xiàn)在請參看圖5-16,顯示了一系列圖形用戶界面,說明通過應用程序140定義的用戶界面。作為說明,如圖5-16所示的圖形用戶界面是訪問醫(yī)學數(shù)據(jù)所特定的。然而,可以使用本發(fā)明的實施例,它們具有任何信息類型,其中包括,財務信息、雇用信息等等。一般而言,如圖5-16所示的圖形用戶界面允許用戶構(gòu)建包括由用戶添加的條件的查詢?;叵胍幌拢邕@里所定義的,簡單條件是比較操作。(DateOfBirth=′1942/01/01′)是說明性的簡單條件。如此,將簡單條件添加到查詢中一般涉及允許用戶選擇操作數(shù)和比較運算符(例如,>,<,=)。在一個實施例中,當用戶通過瀏覽器程序122最初調(diào)用應用程序140時,應用程序140(具體來說,GUI編制器144)返回由瀏覽器程序122以第一GUI600的形式呈現(xiàn)的HTML內(nèi)容,如圖5所示。GUI600是用戶用來將條件添加到查詢中的一系列屏幕中的第一個屏幕。一般而言,GUI600包括多個條件類別602-610(每一個類別都具有關(guān)聯(lián)的單選按鈕),用戶可以從中進行選擇。所顯示的條件類別包括“人口資料”602、“測試和實驗室結(jié)果”604、“報告”606、“使用ICD-9的診斷”608,以及“使用DRG的診斷”610。每一個條件類別都具有關(guān)聯(lián)的字段612-620,可以從中選擇值/向其中輸入值。一些字段(例如,字段612-616)是下拉菜單,而另一些字段是用于接收用戶輸入的文本框(例如,字段618-620)。在后一種情況下,字段可以具有關(guān)聯(lián)的“瀏覽”按鈕622-624幫助用戶選擇有效的值。一旦選擇條件類別和值,用戶點擊“下一步”按鈕626。點擊“下一步”按鈕626使瀏覽器程序622呈現(xiàn)(根據(jù)應用程序640所提供的信息)繼續(xù)添加條件的過程所需要下一個適當?shù)膱D形用戶界面。如此,可以向用戶添加條件所需要的一系列圖形用戶界面。作為示例,假設用戶從下拉菜單612選擇了人口條件類別602和“出生日期”值。在按下“下一步”按鈕626時,向用戶呈現(xiàn)如圖6所示的第二GUI700。GUI700包括比較運算符下拉菜單702(用戶可以從中選擇比較運算符(例如,>,<,=))和用戶可以根據(jù)規(guī)定的格式(例如,″yyyy/mm/dd″)向其中輸入日期的日期字段704。當用戶點擊OK按鈕706時,完成添加“出生日期”條件的過程。當用戶完成添加條件的過程(例如,如在點擊OK按鈕706之后),向用戶呈現(xiàn)如圖7所示的GUI800。在條件列802中顯示了所產(chǎn)生的條件。在本示例中,條件列802的第一行顯示了使用上文所描述的GUI600和700添加“出生日期”條件。用戶可以通過點擊“添加條件”按鈕804添加另一個條件。通過對于每一個其他可用的條件類別和值重復類似的步驟,可以將任意數(shù)量的條件添加到查詢中。作為說明,如圖8所示的刷新的/更新的GUI800總共顯示了三種條件(包括上文所描述的“出生日期”條件),通過一步一步地翻過用于添加條件的圖形用戶界面(例如,GUI600和700)來添加每一個條件。此外,雖然未顯示,添加條件可能需要任意數(shù)量的其他圖形用戶界面。具體來說,對于比較復雜的條件,如范圍,可能需要多個額外的圖形用戶界面。根據(jù)本發(fā)明的各個方面,那些精通本技術(shù)的人員可以確定這樣的圖形用戶界面的特定數(shù)量、內(nèi)容、設計和元素。在添加第一條件之后,通過布爾邏輯值/運算符,這里被稱為第一級別的布爾邏輯值,每一個隨后條件彼此關(guān)聯(lián)到第一條件。請參看圖8,在一對列902、904中顯示了第一級別布爾邏輯值。從第一列902中的下拉菜單906、908中選擇第一級別的布爾邏輯值A(chǔ)ND和OR。AND/OR下拉菜單位于每一個條件之間。相應地,在如圖8所示的例圖中,第一下拉菜單906位于“出生日期”條件和“性別”條件之間,第二下拉菜單908位于“性別”條件和“血色素”條件之間。在一個實施例中,第一級別的布爾邏輯值默認到第一條件之后添加的每一個條件的AND。然后,用戶可以使用下拉菜單將默認值改變?yōu)镺R?;蛘?,用戶可以通過選中第二列904中的適當?shù)腘OT復選框來否定條件。一旦將兩個或更多條件添加到查詢,然后,可以通過布爾邏輯值(這里被稱為第二級別的布爾邏輯值)將兩個或更多條件組合在一起,以產(chǎn)生復合(或組合的)條件。((employeeName=′Rich′)OR(employeeName=′John′))是復合條件的示例。此外,可以通過布爾邏輯值將簡單條件和復合條件連接在一起,以產(chǎn)生條件的層次結(jié)構(gòu)。在一個實施例中,用于將條件組合在一起的第一圖形元素是“組合條件”按鈕910。在一個實施例中,按下“組合條件”按鈕910使應用程序140生成如圖9所示的GUI1000。GUI1000顯示每一個可用的條件和每一個條件的關(guān)聯(lián)的復選框1002。用戶通過選中適當?shù)膹瓦x框1002選擇哪些條件將被組合在一起。為便于說明,選擇“性別”和“血色素”條件。GUI1000進一步提供了“AND組”按鈕1004和“OR組”按鈕1006,以便對所選擇的組進行AND或OR運算。作為說明,假設用戶點擊“AND組”按鈕1004。通過圖10中的更新的GUI800顯示了此操作的結(jié)果。具體來說,只有兩個條件1102、1104保留,第二條件1104是包括通過布爾AND相關(guān)聯(lián)的子條件的復合條件。此外,兩個條件1102、704本身通過布爾AND相關(guān)聯(lián),如下拉菜單906中所顯示的?,F(xiàn)在假設,用戶需要取消組合第二條件1104。為執(zhí)行此任務,GUI900(如圖10所示)包括“撤消組合的條件”按鈕1106。按下“撤消組合的條件”按鈕1106使應用程序140生成如圖11所示的GUI1200。GUI1200顯示每一個現(xiàn)有的條件和關(guān)聯(lián)的復選框1202。在其他實施例中,在GUI1200中只顯示了復合條件(在此情況下,如第二條件)。在任何情況下,為取消組合復合條件,用戶選中適當?shù)膹瓦x框1202,然后點擊OK按鈕1204。在此情況下,GUI900和圖8顯示了取消組合第二條件1104的結(jié)果。即,將條件返回到它們的原始未組合的狀態(tài)。用戶可以在如圖8和圖10所示的GUI900的搜索摘要部分920中查看給定查詢的當前結(jié)構(gòu)。在一個實施例中,通過點擊“刷新搜索摘要”按鈕922,更新搜索摘要部分920中顯示的查詢。一旦定義所希望的條件,甚至在定義條件之前,用戶可以定義結(jié)果字段(即,用戶希望返回的并滿足條件標準的字段)。在一個實施例中,用戶點擊“改變輸出數(shù)據(jù)”按鈕1108(圖10中所顯示的)。作為響應,GUI編制器144呈現(xiàn)圖12的“結(jié)果字段選擇GUI1300”。GUI1300包括“可用的結(jié)果字段”窗口1302和“選擇的結(jié)果字段”窗口1304。窗口1302顯示用戶可以從中選擇的所有可用的結(jié)果字段。窗口1304顯示用戶所選擇的字段。在本示例中,用戶選擇了“位置”、“地址”、“病人ID”、“臨床信息”和“用戶”。在一個實施例中,GUI1300是支持拖放的,有助于選擇結(jié)果字段。在作出所希望的選擇之后,用戶按下“下一步”按鈕1306,并向用戶呈現(xiàn)圖13的“結(jié)果字段鏈接GUI1400”?!敖Y(jié)果字段鏈接GUI”1400一般在“結(jié)果字段選擇GUI”1300中包括由用戶選擇的結(jié)果字段的列表1402。GUI1400還包括具有多個列1406A-D(顯示了四個)的表1404。每一列都具有許多單元(顯示了每一列有三個)。只作為說明,表1404包括四列,每一列都具有三個單元。然而,表1404的尺寸可以由用戶隨意地操縱。在一個實施例中,用戶通過點擊“添加列”按鈕1408添加另一個列,并通過點擊“添加行”按鈕1410,將另一行添加到每一列。用戶通過選擇表1404中的可用結(jié)果字段(在列表1402中)的相對位置,確定所產(chǎn)生的查詢的結(jié)構(gòu)。在一個實施例中,用戶通過突出顯示選擇的單元,然后,突出顯示列表1402中的一個結(jié)果字段,然后點擊“添加”按鈕1412,填充表1404的單元。通過點擊“刪除”按鈕1414,可以將填充的單元解除填充。在另一個實施例中,用戶只需(從列表1402中)拖動并將所選擇的結(jié)果字段放到表1404的單元中。為便于說明,用戶用“用戶、地址、臨床信息”填充第一行的開頭三個單元,如圖14所示。相應地,列表1402中的其余結(jié)果字段是“位置”和“病人”。在一個實施例中,同一行(即,水平地排列)上的相鄰單元中的字段被JOIN,假設字段位于各自的表中。相應地,對應于如圖14所示的表1404的SQL語句如下對應的SQL語句SELECTT1.USER,T1.ADDRESS,T2.CLINICAL_INFOFROMTABLE1T1,TABLE2T2在一個實施例中,UNION以垂直方式排列的字段。例如,圖15顯示了一種排列,其中,“病人”和“位置”被添加到“用戶”和“地址”緊下面的下一行中的對應的單元。相應地,“病人”和“用戶”被UNION,“位置”和“地址”被UNION。注意,“臨床信息”緊下面的單元是空的。在SQL語句中,此空的單元將是空值。相應地,此排列的對應的SQL語句如下對應的SQL語句SELECTUSER,ADDRESS,CLINICAL_INFOFROMTABLE1UNIONSELECTPATIENTASUSER,LOCATIONASADDRESS,NULL,F(xiàn)ROMTABLE2.相應地,本發(fā)明的用戶界面的一個實施例允許用戶控制在數(shù)據(jù)被抽象地表示的圖形環(huán)境中要JOIN哪些字段和要UNION哪些字段。一般而言,在兩個數(shù)據(jù)源之間的數(shù)據(jù)的實例之間有對應關(guān)系的情況下,JOIN將比UNION優(yōu)先。另一方面,當對于兩個數(shù)據(jù)源定義相同的數(shù)據(jù)項,但在實例值中幾乎沒有重疊時,UNION優(yōu)先。在前述的示例中,用戶可能已經(jīng)UNION了選擇的字段,認為每一個UNION的字段相類似,因此,查詢的結(jié)果應該返回每一個UNION的兩個字段。雖然返回兩個字段,字段在一個列中彼此附加到一起,因此,作為一個可查看的字段返回。將刪除重復的數(shù)據(jù)。除了給用戶提供JOIN或UNION字段的靈活性之外,用戶還能夠?qū)Y(jié)果進行排序。即,根據(jù)表1404的各個單元中的字段的順序(即,從左到右)對結(jié)果的順序進行排序。如此,用戶可以操縱每一個可用的結(jié)果字段的相對位置,以返回所希望的結(jié)果,并控制返回結(jié)果的順序。應該注意,上面的實施例只是說明性的,而不作出限制。那些精通本技術(shù)的人員將會想出本發(fā)明的范圍內(nèi)的其他實施例。例如,在一個實施例中,表1404可以用選定的字段“預先填充”。如此,管理員可以指定用戶選擇的字段的特定排列。或者,用戶可以保存字段的特定排列。作為示例,在點擊GUI1300(圖12)的“下一步”按鈕1306之后,可以向用戶呈現(xiàn)圖14的GUI1400,其中,已經(jīng)為“用戶”、“地址”和“臨床信息”分配了第一行的默認單元。雖然未顯示,但是,也可以預先填充多行,默認情況下,可以UNION一些單元。然后,用戶可以排列列表1402中的其余可用的結(jié)果字段的相對位置(即,“位置”和“病人”),甚至可以改變默認布局(即,“用戶”、“地址”和“臨床信息”)。在這方面,需要注意的是,管理員可以不必位于最佳的位置來判斷哪些字段可以被UNION,假定他們可能不會對基礎(chǔ)數(shù)據(jù)有充分的理解。相應地,可以就某些字段是否應該被UNION(即,在查詢創(chuàng)建表1404中垂直地相關(guān))還是水平地JOIN作出最佳猜測估計。例如,可以通過一個算法來運行DAM,以判斷哪些邏輯字段彼此類似,無論是由于同義還是具有相同的數(shù)據(jù)類型和長度,可以完成最佳猜測估計。例如,包含病人信息的兩個表可能具有非常類似的架構(gòu),子表/超表定義(一個表比另一個表具有更多信息)除外。相比之下,病人表和雇員表具有一些通用信息(例如,姓名、地址),但每一個表都相對于另一個表具有大量的不同信息(例如,職務說明、經(jīng)理、病人ID)。最佳猜測估計算法將認識到,病人和雇員表應該被JOIN,但兩個病人表應該被UNION。一旦排列結(jié)果字段以返回所希望的結(jié)果,用戶點擊OK按鈕1502,如圖15所示。在點擊OK按鈕1502時,從查詢創(chuàng)建表1404中刪除任何空列和/或行。然后,將用戶返回到GUI800的刷新的實例,如圖16所示。注意,摘要部分920現(xiàn)在包括如圖15的表1404中定義的結(jié)果字段規(guī)范1604。如果用戶對構(gòu)建的查詢表示滿意,則用戶可以通過按下“運行搜索”按鈕924來執(zhí)行查詢。具體來說,按下“運行搜索”按鈕924會調(diào)用運行時組件150,哪些運行時組件開始執(zhí)行。在一個實施例中,按下“運行搜索”按鈕924首先使摘要部分920中的指定的查詢以抽象形式呈現(xiàn)。然后,以上文參考圖3和4所描述的方式執(zhí)行所產(chǎn)生的抽象查詢。下面將參考圖17描述基于用戶指定的結(jié)果字段布局(例如,如圖15的表1404所指定的)呈現(xiàn)抽象查詢的方法1700的一個實施例。為了便于說明,假設查詢創(chuàng)建表1404不包括任何空列或行,雖然單個單元可以是空的。方法1700開始處理查詢創(chuàng)建表1404中的第一行。具體來說,方法1700進入循環(huán)(在步驟1702中),該循環(huán)對于查詢創(chuàng)建表1404中的第一行中的每一個單元重復執(zhí)行。檢查單元,以判斷它是否包含數(shù)據(jù),即,結(jié)果字段(步驟1704)。如果不,方法1700返回到步驟1702,以開始處理第一行的下一單元。然而,對于包含結(jié)果字段的單元,作為抽象查詢的組件添加結(jié)果字段名稱(步驟1706),然后,處理過程返回到步驟1702。一旦根據(jù)在步驟1702中進入的循環(huán)處理完第一行中的每一個單元,方法1700進入步驟1708。在步驟1708中,方法1700對于查詢創(chuàng)建表1404中的每一個其余行的每一個單元進入循環(huán)(循環(huán)在步驟1708和步驟1710中進入的循環(huán))。對于給定行的給定單元,方法1700判斷單元是否包含結(jié)果字段(步驟1712)。如果不,方法返回到步驟1710以開始處理下一單元。然而,對于確實包含結(jié)果字段的給定單元,方法1700判斷給定單元緊上面的相鄰單元是否包含數(shù)據(jù)(步驟1714)。如果是,則將兩個單元UNION起來(步驟1716)。一旦處理完每一個其余的行中的每一個單元,方法1700退出。如此,每一個垂直相關(guān)的單元(即,列中的相鄰單元)被UNION。方法1700的結(jié)果是抽象查詢。只作為說明,下面顯示了對應于圖15的查詢創(chuàng)建表1404的典型的抽象查詢。具有UNION的抽象查詢的示例<QueryAbstractionversion="1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="QueryAbstraction.xsd"><Selection><ConditionrelOperator="AND"field="data://patient/User"><Valueval="John"/></Condition></Selection><Resultsformat="HTML"distinct="Yes"><Union><Fieldname="data://patient/User"fieldType="char"/><Fieldname="data://patient/Patient"fieldType="char"/></Union><Union><Fieldname="data://patient/Address"fieldType="char"/><Fieldname="data://patient/Location"fieldType="char"/></Union><Fieldname="data://patient/ClinialInfo"fieldType="char"/></Results></QueryAbstraction>然后,可以以基本上類似于參考圖3-4所描述的方式將上述抽象查詢轉(zhuǎn)換成具體查詢。運行時組件150將按預期的那樣實現(xiàn)將數(shù)據(jù)返回到最終用戶所需要的適當?shù)腢NION和JOIN。上面提供了抽象查詢的結(jié)果字段部分的SQL表示(即,對應于SQL語句的SELECT語句的那一部分)。盡管前述的內(nèi)容是針對本發(fā)明的實施例進行說明的,但是,在不偏離本發(fā)明的基本范圍的情況下,可以研究出本發(fā)明的其他實施例,其范圍由隨后的權(quán)利要求來確定。權(quán)利要求1.一種用于提供物理數(shù)據(jù)實體的物理字段的邏輯表示以方便查詢所述物理字段的方法,該方法包括提供邏輯模型以在邏輯上描述所述物理字段,所述邏輯模型包括對應于相應的物理字段的邏輯字段;以及提供運行時組件,該組件被配置為,將抽象查詢轉(zhuǎn)換為包含至少一個組合語句的可執(zhí)行的查詢,所述抽象查詢包括條件和從邏輯模型的邏輯字段中選擇的至少兩個結(jié)果字段,每一個結(jié)果字段都在可執(zhí)行的查詢的組合語句中具有可執(zhí)行的對應部分。2.根據(jù)權(quán)利要求1所述的方法,其中,組合語句是UNION語句,其中,通過使運行時組件產(chǎn)生UNION語句的UNION信息將至少兩個結(jié)果字段相關(guān)聯(lián)。3.根據(jù)權(quán)利要求1所述的方法,其中,抽象查詢是用戶定義的。4.根據(jù)權(quán)利要求1所述的方法,其中,可執(zhí)行的查詢是SQL語句。5.根據(jù)權(quán)利要求1所述的方法,其中,可執(zhí)行的查詢是XQuery語句。6.根據(jù)權(quán)利要求1所述的方法,其中,物理數(shù)據(jù)實體包括數(shù)據(jù)庫中的多個表。7.根據(jù)權(quán)利要求1所述的方法,進一步包括提供圖形用戶界面,其中,在圖形用戶界面中指定至少兩個結(jié)果字段。8.一種用于提供物理數(shù)據(jù)實體的物理字段的邏輯表示以方便查詢所述物理字段的方法,該方法包括提供邏輯模型以在邏輯上描述所述物理字段,所述邏輯模型包括對應于相應的物理字段的邏輯字段;接收相對于包括對應于相應的物理字段的邏輯字段的邏輯模型而定義的抽象查詢,所述抽象查詢包括條件和從邏輯模型的邏輯字段中選擇的至少兩個結(jié)果字段;以及將抽象查詢轉(zhuǎn)換為包含至少一個組合語句的可執(zhí)行的查詢,所述抽象查詢包括條件和從邏輯模型的邏輯字段中選擇的至少兩個結(jié)果字段,每一個結(jié)果字段都在可執(zhí)行的查詢的組合語句中具有可執(zhí)行的對應部分。9.根據(jù)權(quán)利要求8所述的方法,其中,物理數(shù)據(jù)實體包括數(shù)據(jù)庫中的多個表。10.根據(jù)權(quán)利要求8所述的方法,進一步包括提供圖形用戶界面,其中,在圖形用戶界面中指定至少兩個結(jié)果字段。11.一種用于允許構(gòu)建查詢的方法,包括提供一種圖形用戶界面,該界面允許用戶選擇和排列從在邏輯上定義數(shù)據(jù)的邏輯模型中選擇的邏輯結(jié)果字段,其中,用戶選擇的邏輯結(jié)果字段之間的預先確定的相對幾何排列定義用戶選擇的邏輯結(jié)果字段之間的組合關(guān)系。12.根據(jù)權(quán)利要求11所述的方法,其中,預先確定的相對幾何排列包括用戶選擇的邏輯結(jié)果字段的垂直排列。13.根據(jù)權(quán)利要求11所述的方法,其中,組合關(guān)系被表達為包含用戶選擇的邏輯結(jié)果字段的表示的查詢中的UNION語句。14.一種用于允許構(gòu)建查詢的方法,包括提供一種圖形用戶界面,該界面允許用戶選擇和排列從在邏輯上定義數(shù)據(jù)的邏輯模型中選擇的邏輯結(jié)果字段,其中,用戶選擇的邏輯結(jié)果字段之間的第一預先確定的相對幾何排列定義用戶選擇的邏輯結(jié)果字段之間的第一種組合關(guān)系,其中,用戶選擇的邏輯結(jié)果字段之間的第二預先確定的相對幾何關(guān)系定義用戶選擇的邏輯結(jié)果字段之間的第二種組合關(guān)系。15.根據(jù)權(quán)利要求14所述的方法,其中,第一預先確定的相對幾何排列包括選擇的邏輯結(jié)果字段的垂直排列,第二預先確定的相對幾何排列包括選擇的邏輯結(jié)果字段的水平排列。16.根據(jù)權(quán)利要求14所述的方法,其中,第一種組合關(guān)系是JOIN,第二種組合關(guān)系是UNION。17.一種用于允許構(gòu)建查詢的方法,包括提供一種圖形用戶界面,該界面允許用戶選擇和排列從在邏輯上定義數(shù)據(jù)的邏輯模型中選擇的邏輯結(jié)果字段,該圖形用戶界面包括表,該表包括多個單元,其中,相鄰的單元中的用戶選擇的邏輯結(jié)果字段之間的預先確定的相對幾何排列定義用戶選擇的邏輯結(jié)果字段之間的組合關(guān)系,所述組合關(guān)系是從中至少兩種不同類型的組合關(guān)系中選擇的。18.根據(jù)權(quán)利要求17所述的方法,其中,預先確定的相對幾何排列包括用戶選擇的邏輯結(jié)果字段的垂直排列。19.根據(jù)權(quán)利要求17所述的方法,其中,組合關(guān)系是UNION。20.根據(jù)權(quán)利要求17所述的方法,其中,組合關(guān)系是從UNION和JOIN中選擇的。21.一種用于構(gòu)建查詢的方法,包括提供邏輯模型以在邏輯上描述所述物理字段,所述邏輯模型包括對應于相應的物理字段的邏輯字段;提供一種圖形用戶界面,該界面允許用戶選擇和排列從邏輯模型中選擇的邏輯結(jié)果字段;接收用戶在圖形用戶界面中指定第一邏輯結(jié)果字段的選擇和位置的輸入;接收用戶在圖形用戶界面中指定第二邏輯結(jié)果字段的選擇和位置的輸入,其中,第一和第二邏輯結(jié)果字段具有相對幾何關(guān)系并定義抽象查詢的至少一部分;以及將抽象查詢轉(zhuǎn)換為包含至少一個組合語句并作為相對幾何關(guān)系的結(jié)果生成的可執(zhí)行的查詢,所述組合語句中包含第一和第二邏輯結(jié)果字段的表示。22.根據(jù)權(quán)利要求21所述的方法,其中,組合語句是UNION。23.根據(jù)權(quán)利要求21所述的方法,進一步包括在圖形用戶界面中顯示邏輯模型的每一個邏輯字段作為可選擇的邏輯結(jié)果字段。24.包含圖形用戶界面程序的計算機可讀取的介質(zhì),該程序在執(zhí)行時,執(zhí)行用于構(gòu)建相對于包括映射到數(shù)據(jù)的物理實體的物理字段的多個邏輯字段定義的邏輯模型而定義的抽象查詢的操作,該操作包括接收用戶在圖形用戶界面中指定第一邏輯結(jié)果字段的選擇和位置的輸入;其中,圖形用戶界面允許用戶從邏輯模型中選擇邏輯結(jié)果字段,并支持用戶選擇的邏輯結(jié)果字段之間的組合關(guān)系;以及接收用戶在圖形用戶界面中指定第二邏輯結(jié)果字段的選擇和位置的輸入,其中,第一和第二邏輯結(jié)果字段定義抽象查詢的至少一部分,所述抽象查詢被轉(zhuǎn)換成包含至少一個組合語句的可執(zhí)行的查詢,所述組合語句包含第一和第二邏輯結(jié)果字段的對應部分。25.根據(jù)權(quán)利要求24所述的方法,其中,組合語句是UNION。26.包含程序的計算機可讀取的介質(zhì),該程序在執(zhí)行時,執(zhí)行用于構(gòu)建相對于包括映射到數(shù)據(jù)的物理實體的物理字段的多個邏輯字段定義的邏輯模型而定義的抽象查詢的操作,該操作包括接收用戶在圖形用戶界面中指定第一邏輯結(jié)果字段的選擇和位置的輸入;其中,圖形用戶界面允許用戶選擇和排列從邏輯模型中選擇的邏輯結(jié)果字段;接收用戶在圖形用戶界面中指定第二邏輯結(jié)果字段的選擇和位置的輸入,其中,第一和第二邏輯結(jié)果字段具有相對幾何關(guān)系并定義抽象查詢的至少一部分;以及將抽象查詢轉(zhuǎn)換為包含至少一個組合語句并作為相對幾何關(guān)系的結(jié)果生成的可執(zhí)行的查詢,所述組合語句包含第一和第二邏輯結(jié)果字段的對應部分。27.根據(jù)權(quán)利要求26所述的計算機可讀取的介質(zhì),其中,組合語句是UNION。28.根據(jù)權(quán)利要求26所述的計算機可讀取的介質(zhì),其中,相對幾何關(guān)系是垂直。29.一種計算機系統(tǒng),包括存儲器和至少一個處理器,并進一步包括一種邏輯模型,該邏輯模型包括映射到數(shù)據(jù)的物理實體的物理字段的多個邏輯字段定義,從而,邏輯模型提供了數(shù)據(jù)的邏輯視圖;以及允許用戶選擇和排列從邏輯模型中選擇的邏輯結(jié)果字段的圖形用戶界面;其中,圖形用戶界面包括用于用戶選擇的邏輯結(jié)果字段的輸入單元,其中,單元之間的預先定義的幾何關(guān)系指定單元中的用戶選擇的邏輯結(jié)果字段是通過第一種組合語句類型還是通過第二種組合語句類型來相關(guān)聯(lián)的。30.根據(jù)權(quán)利要求29所述的系統(tǒng),其中,第一種組合語句類型是UNION,第二種組合語句類型是JOIN。31.根據(jù)權(quán)利要求29所述的系統(tǒng),其中,預先定義的幾何關(guān)系是垂直。32.根據(jù)權(quán)利要求29所述的系統(tǒng),其中,水平相鄰單元中的用戶選擇的邏輯結(jié)果字段被JOIN。33.根據(jù)權(quán)利要求29所述的系統(tǒng),進一步包括包含數(shù)據(jù)的物理實體的關(guān)系數(shù)據(jù)庫。全文摘要一種方法、設備和產(chǎn)品提供了用戶界面,該界面允許用戶選擇和排列在一個實施例中從邏輯模型所選擇的結(jié)果字段。在一個實施例中,用戶界面是圖形用戶界面(1400)并包括用于用戶選擇的邏輯結(jié)果字段的輸入單元(1402)。單元被排列以定義邏輯結(jié)果字段(1402)之間的幾何關(guān)系,該關(guān)系決定了組合語句類型,通過該類型,在查詢中將單元中的邏輯結(jié)果字段(1402)。文檔編號G06F17/30GK1823335SQ200480019860公開日2006年8月23日申請日期2004年7月1日優(yōu)先權(quán)日2003年7月11日發(fā)明者理查德·D.·得汀格,卡勒·T.·拉斯,理查德·J.·史蒂文斯申請人:國際商業(yè)機器公司