專利名稱:企業(yè)信息集成平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式數(shù)據(jù)源的統(tǒng)一查詢,以及用于有效地恢復(fù)存儲在分布式數(shù)據(jù)源中的信息的方法。
背景技術(shù):
背景技術(shù):
企業(yè)數(shù)據(jù)系統(tǒng),特別是大的企業(yè),典型地包括多個數(shù)據(jù)源,其可以基于不同的數(shù)據(jù)模式(data schema),如-關(guān)系數(shù)據(jù)庫、-XML文檔、XML模式、XML文檔類型定義(DTD)、-web服務(wù)、-Adabas文件、-SGML文本、-界面描述語言(IDL)、-JAVA界面、-資源描述框架(RDF)、-統(tǒng)一建模語言(UML)、-本體web語言(OWL)、-對象角色建模、-主題映射、-等等作為若干IT生成和/或合并以及采集的結(jié)果,具有不同模式的若干數(shù)據(jù)庫可以包含關(guān)于不同業(yè)務(wù)領(lǐng)域的信息。例如,企業(yè)雇傭數(shù)據(jù)可以存儲在與第一關(guān)系數(shù)據(jù)庫模式相符合的關(guān)系數(shù)據(jù)庫,并且企業(yè)結(jié)算數(shù)據(jù)可以存儲在與第二關(guān)系數(shù)據(jù)庫模式相符合的關(guān)系數(shù)據(jù)庫中。通常這些多種數(shù)據(jù)源可能重疊,并且對于用戶而言,難于跨越企業(yè)數(shù)據(jù)源查詢。
因此,需要用于數(shù)據(jù)集成或者信息集成的工具,并且需要一種統(tǒng)一查詢工具,其使用戶能夠跨越與不同數(shù)據(jù)模式相符合的數(shù)據(jù)源查詢數(shù)據(jù)。當(dāng)單一的問題跨越多個數(shù)據(jù)源時,也需要統(tǒng)一查詢工具。
相關(guān)技術(shù)描述專利申請US 2004/0216030 A1、US 2004/0093559 A1、US2004/0093344 A1、US 2003/0179228 A1、US 2003/0177481 A1、US2003/0163597 A1、US 2003/0163450 A1、US 2003/0120665 A1和US2003/0101170 A1,其全部屬于一族,描述了將除包括其他外還包括關(guān)系數(shù)據(jù)庫模式和XML模式的數(shù)據(jù)模式映射到中心本體模型中,用于解決數(shù)據(jù)集成問題。(下文將更加詳細(xì)地描述本體。)不同數(shù)據(jù)模式的基本構(gòu)造映射到中心本體模型的類別和特性。因此,對于關(guān)系數(shù)據(jù)庫模式,通常將表映射到本體的類別,并且通常將表的字段映射到類別的特性。相似地,對于XML模式,通常將復(fù)合類型映射到本體的類別,并且通常將復(fù)合類型中的元素和特性映射到本體特性。
現(xiàn)有技術(shù)的方法的缺點(diǎn)在于其有限的靈活性。新數(shù)據(jù)模式的集成有規(guī)律地需要昂貴的新的編程。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于提供用于信息集成的靈活的裝置。
通過如獨(dú)立權(quán)利要求中所要求的本發(fā)明,實現(xiàn)了該目的。在所附權(quán)利要求中描述了有利的實施例,其公開內(nèi)容在此處并入作為參考。
盡管未給出多重引用的權(quán)利要求,但是權(quán)利要求中的特征的全部合理組合應(yīng)被公開。
根據(jù)第一示例性實施例,本發(fā)明包括一種系統(tǒng),其優(yōu)選地是計算機(jī)系統(tǒng),用于與不同數(shù)據(jù)模式相符合的分布式數(shù)據(jù)源的統(tǒng)一查詢。
該系統(tǒng)包括多個數(shù)據(jù)源,每個該數(shù)據(jù)源與給定的數(shù)據(jù)模式相符合。數(shù)據(jù)源的不同的數(shù)據(jù)模式可以是,例如關(guān)系數(shù)據(jù)庫、XML文本、web服務(wù)等。不同的數(shù)據(jù)源可以存儲在不同的存儲裝置中,存儲在網(wǎng)絡(luò)中的不同的計算機(jī)上,存儲在不同的設(shè)施處,或者存儲在一個計算機(jī)上或一個硬盤驅(qū)動器上。
每個數(shù)據(jù)模式具有用于組織數(shù)據(jù)和數(shù)據(jù)模式查詢語言(如SQL、XQuery、web服務(wù)的API的遠(yuǎn)程過程調(diào)用等)的構(gòu)造。
該系統(tǒng)還包括多個源本體,每個源本體對應(yīng)于一個數(shù)據(jù)源。每個源本體包括構(gòu)造組。通常,構(gòu)造組包括至少類別(class)和類別的特性(property)。有時在文獻(xiàn)中,類別被稱為“范疇”(categories),并且特性被稱為“屬性”(attribute)。通常,類別和特性繼承之間的對象特性(有時被稱為“關(guān)系”)也并入到本體中。除了對象特性之外,所謂的數(shù)據(jù)類型特性是以數(shù)據(jù)形式定義類別的特性的規(guī)范。
數(shù)據(jù)被稱為類別的實例。換言之類別是集合,而數(shù)據(jù)/實例是該集合的成員。類別的實例被稱為對象。
對象模型優(yōu)選地被實現(xiàn)為類別的分層結(jié)構(gòu)。在該分層結(jié)構(gòu)中,將預(yù)定層面中的類別分別分配給精確地一個高層面的類別,這意味著僅允許單繼承。通常,類別結(jié)構(gòu)還可以更一般地體現(xiàn)為允許多繼承的非循環(huán)圖。
關(guān)于類別的示例可以是類別“人”。關(guān)于類別“人”的特性的示例可以是人的“名字”。類別或數(shù)據(jù)可以經(jīng)由對象特性鏈接。例如,人A同人B“合作”。
定義每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射。通過映射的幫助,將數(shù)據(jù)源的數(shù)據(jù)模式的構(gòu)造映射到源本體的構(gòu)造。例如,對于關(guān)系數(shù)據(jù)模式,通常將表映射到源本體的類別,并且通常將表的字段映射到類別的特性。
使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射。規(guī)則聲明系統(tǒng)的一個重要的特征在于,規(guī)則的評估結(jié)果不取決于規(guī)則定義的次序。
該映射包括裝置,用于通過數(shù)據(jù)源的數(shù)據(jù)模式查詢語言查詢數(shù)據(jù)源。
而且,該系統(tǒng)包括至少一個集成本體。再次地,該集成本體包括構(gòu)造組,其通常至少是類別和特性。
在優(yōu)選實施例中,該集成本體具有與之關(guān)聯(lián)的本體查詢語言。集成本體的本體查詢語言不必與源本體的本體查詢語言相同,盡管出于實踐的原因,其是相同的。
該系統(tǒng)提供了每個源本體和集成本體之間的映射。直觀地說,集成本體是全局本體的頂層面。使用映射,將源本體的構(gòu)造映射到集成本體的構(gòu)造。由集成本體給出關(guān)于數(shù)據(jù)的統(tǒng)一視圖。其使得能夠進(jìn)行信息集成。
該映射不必將源本體的類別映射到集成本體的類別,并且不必將特性映射到特性。本體可以具有不同的值單位、不同的名稱、不同的結(jié)構(gòu),這使得其更加適于在個案中將特定的類別映射到特性。例如,一個源本體可以具有類別“激光打印機(jī)”,而集成本體可以具有類別“打印機(jī)”,其具有特性“類型”,其實例(實現(xiàn),數(shù)據(jù))可以是“激光打印機(jī)”。
再次地,使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)源本體和集成本體之間的映射。
該系統(tǒng)還包括查詢裝置,用于輸入與數(shù)據(jù)源的數(shù)據(jù)相關(guān)的查詢。
最后,存在至少一個基于謂詞邏輯的推理單元,用于在規(guī)則的幫助下評估查詢。由推理單元應(yīng)答查詢。為此,推理單元評估規(guī)則,其選擇適于應(yīng)答該問題的那些規(guī)則。在自頂而下的方法中,規(guī)則從集成本體連續(xù)地引導(dǎo)至相關(guān)的源本體。而且,將相關(guān)的源本體映射到對應(yīng)的數(shù)據(jù)源的規(guī)則包括裝置,用于通過該數(shù)據(jù)源的數(shù)據(jù)模式查詢語言查詢該數(shù)據(jù)源。這些裝置將查詢翻譯為數(shù)據(jù)模式的語言??梢詰?yīng)答這些查詢,并且返回結(jié)果。推理單元使用這些結(jié)果應(yīng)答在web服務(wù)層面上提出的查詢。因此,該推理單元用作用于應(yīng)答查詢的運(yùn)行時間單元。使用來自本體和規(guī)則的信息,其直接查詢下面的數(shù)據(jù)源。其是分立的單元,并且不是本體結(jié)構(gòu)的一部分。
該系統(tǒng)相比于現(xiàn)有技術(shù)的主要優(yōu)點(diǎn)在于用于映射的規(guī)則的強(qiáng)大的和靈活的能力。可以變換結(jié)構(gòu);可以重命名構(gòu)造;可以改變、變換或計算值。
基于本體和聲明規(guī)則的系統(tǒng)提供了對數(shù)據(jù)和專門知識建模的無與倫比的可行性。
而且,易于將具有新數(shù)據(jù)模式的新數(shù)據(jù)源集成到系統(tǒng)中。其足夠定義新的源本體和新的數(shù)據(jù)模式之間的映射。源本體和集成本體之間的映射不需要新的編程專門知識;純建模是足夠的。
為了實現(xiàn)該系統(tǒng)的優(yōu)點(diǎn),重要的是使該系統(tǒng)基于謂詞邏輯或者基于謂詞邏輯的規(guī)則,而非基于現(xiàn)有技術(shù)中經(jīng)常使用的業(yè)務(wù)規(guī)則。這可能需要某些解釋。如果將謂詞邏輯限制為具有否定的Horn邏輯(正常邏輯),則業(yè)務(wù)規(guī)則和正常邏輯規(guī)則至少從它們的表面表述(即從它們的語法)看起來是緊密相關(guān)的。相反地,它們的基礎(chǔ)背景理論是根本不同的。正常邏輯基于良好定義的理論謂詞邏輯的模型理論。Herbrand模型是事實的集合(其有時是無限的)。正常邏輯規(guī)則和事實的集合的含義是由唯一最小的Herbrand模型所定義的。因此,寬泛地講,正常邏輯規(guī)則和事實的集合是關(guān)于事實集合(最小Herbrand模型)的縮語。該最小Herbrand模型被定義為獨(dú)立于給定的規(guī)則次序,獨(dú)立于給定的規(guī)則主體次序無關(guān),并且獨(dú)立于用于計算該模型的推理算法。對于業(yè)務(wù)規(guī)則的含義,沒有可用的理論。業(yè)務(wù)規(guī)則集合的含義由簡單的推理算法給出Rete算法。該算法的結(jié)果強(qiáng)烈地取決于規(guī)則的次序、規(guī)則主體以及規(guī)則頭部中使用的操作的次序。因此不存在由規(guī)則集合表示的獨(dú)立的理論,而是須等待推理算法的應(yīng)答,以了解規(guī)則集合的行為。使事情變得更糟的是,每個業(yè)務(wù)規(guī)則系統(tǒng)的行為是不同的。
為了使系統(tǒng)更加易于使用,可以自動地生成對應(yīng)于數(shù)據(jù)源及其數(shù)據(jù)模式的源本體。其同樣可應(yīng)用于源本體及其對應(yīng)的數(shù)據(jù)源之間的映射的自動生成。
如所提及的,謂詞邏輯可用于以明確的方式定義本體以及本體之間的映射。然后可以以任何編程語言實現(xiàn)該定義。可以使用推理引擎直接執(zhí)行這些模型。因此,在實現(xiàn)階段的過程中不存在信息的丟失或信息的重復(fù)解釋,并且因此,該執(zhí)行對應(yīng)于原始含義,此外,該執(zhí)行可以立即開始。
為了加速該系統(tǒng)的工作,用作運(yùn)行時間引擎的推理單元在查詢的評估過程中可以動態(tài)地訪問規(guī)則和本體結(jié)構(gòu)。當(dāng)推理單元訪問其中存儲了模型的數(shù)據(jù)結(jié)構(gòu)時,給出了實現(xiàn)該操作的方法。這允許對數(shù)據(jù)集成動態(tài)建模,并且同時允許查詢所建模的結(jié)構(gòu)。因此,可以測試該模型。而且,知識工程師和系統(tǒng)用戶可以同時工作于該系統(tǒng)上。
在優(yōu)選實施例中,集成本體具有與其關(guān)聯(lián)的本體查詢語言,并且該系統(tǒng)包括裝置,用于將每個查詢翻譯為集成本體的本體查詢語言。
為了進(jìn)一步改善該系統(tǒng)的靈活性和性能,由基于謂詞邏輯的規(guī)則聲明系統(tǒng)補(bǔ)充至少一個本體,用于解釋額外的信息。
為了與廣泛的標(biāo)準(zhǔn)相符合,在優(yōu)選實施例中該系統(tǒng)包括至少一個查詢單元,其具有web服務(wù)的形式,用于輸入與數(shù)據(jù)源的數(shù)據(jù)相關(guān)的查詢。將該查詢從web服務(wù)輸入翻譯為集成本體的本體查詢語言,其允許分布式數(shù)據(jù)的統(tǒng)一查詢。通常,對于全部相關(guān)的查詢,定義單獨(dú)的web服務(wù)。
為了盡可能地利用數(shù)據(jù)模式查詢語言的能力并且加速查詢的評估,該系統(tǒng)包括裝置,用于識別查詢或者規(guī)則或規(guī)則組合,該查詢或者規(guī)則或規(guī)則組合能夠組合成數(shù)據(jù)源的數(shù)據(jù)模式查詢語言下的復(fù)合查詢;以及,裝置,用于將這些查詢或者規(guī)則或規(guī)則組合翻譯為數(shù)據(jù)源的數(shù)據(jù)模式查詢語言下的復(fù)合查詢的裝置。例如,對于關(guān)系數(shù)據(jù)庫,可以識別組合不同的表和字段及其條目的查詢,并且將其翻譯為對應(yīng)的SQL查詢。
為了進(jìn)一步加速運(yùn)行時間中的查詢評估,該系統(tǒng)包括裝置,用于動態(tài)地過濾那些對在web服務(wù)層面上提出的查詢的應(yīng)答沒有影響的數(shù)據(jù)或者規(guī)則或者查詢。
為了更好地服務(wù)于不同用戶群的需要,該系統(tǒng)可以包括多個集成本體,其集成不同的數(shù)據(jù)源或者集成相同的數(shù)據(jù)源,并且每個該集成本體表示關(guān)于數(shù)據(jù)的不同視圖。
本發(fā)明的目的還通過一種方法實現(xiàn)。在下文中,將更加詳細(xì)地描述方法的獨(dú)立步驟。不必以文中給出的順序執(zhí)行該步驟。而且,未明確敘述的另外的步驟也可以是該方法的一部分。
該方法包括選擇多個數(shù)據(jù)源,每個數(shù)據(jù)源與給定的數(shù)據(jù)模式相符合,每個數(shù)據(jù)模式具有用于組織數(shù)據(jù)和與之關(guān)聯(lián)的數(shù)據(jù)模式查詢語言的構(gòu)造。
創(chuàng)建多個源本體,每個源本體對應(yīng)于一個數(shù)據(jù)源,由此每個源本體包括構(gòu)造組,該構(gòu)造組通常包括至少類別和特性。
而且,定義每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射,其中將數(shù)據(jù)源的數(shù)據(jù)模式的構(gòu)造映射到源本體的構(gòu)造,并且其中該映射包括裝置,用于通過數(shù)據(jù)源的數(shù)據(jù)模式查詢語言查詢數(shù)據(jù)源,并且其中使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射。
而且,定義了集成本體,由此該集成本體包括構(gòu)造組,該構(gòu)造組通常包括至少類別和特性。
定義每個源本體和集成本體之間的映射,其中將源本體的構(gòu)造映射到集成本體的構(gòu)造,并且其中使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)源本體和集成本體之間的映射。
使用至少一個基于謂詞邏輯的推理單元,在規(guī)則的幫助下,提出關(guān)于數(shù)據(jù)源的數(shù)據(jù)的查詢,并且對其進(jìn)行評估。
而且,通過下述裝置實現(xiàn)本發(fā)明的目的
-計算機(jī),其可裝載數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)適于執(zhí)行根據(jù)本申請文件中描述的實施例之一的方法,并且該數(shù)據(jù)結(jié)構(gòu)是在計算機(jī)上執(zhí)行,-計算機(jī)程序,其中該計算機(jī)程序適于執(zhí)行根據(jù)本申請文件中描述的實施例之一的方法,并且該程序是在計算機(jī)上執(zhí)行,-計算機(jī)程序,其包括程序裝置,用于執(zhí)行根據(jù)本申請文件中描述的實施例之一的方法,并且在該計算機(jī)程序是在計算機(jī)上或者在計算機(jī)網(wǎng)絡(luò)上執(zhí)行,-計算機(jī)程序,其包括根據(jù)前面權(quán)利要求的程序裝置,其中該程序裝置存儲在計算機(jī)可讀存儲介質(zhì)上,-存儲介質(zhì),其中該數(shù)據(jù)結(jié)構(gòu)存儲在該存儲介質(zhì)上,并且其中該數(shù)據(jù)結(jié)構(gòu)適于在被裝載到計算機(jī)或計算機(jī)網(wǎng)絡(luò)的主存儲器和/或工作存儲器中之后,執(zhí)行根據(jù)本申請文件中描述的實施例之一的方法,-計算機(jī)程序產(chǎn)品,其具有程序代碼裝置,其中該程序代碼裝置可以存儲并且存儲在存儲介質(zhì)上,如果在計算機(jī)或計算機(jī)網(wǎng)絡(luò)上執(zhí)行該程序代碼裝置,則其執(zhí)行根據(jù)本申請文件中描述的實施例之一的方法,-操作系統(tǒng)、其上存儲了多個計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì)、協(xié)同處理設(shè)備、計算設(shè)備中的至少一個,并且所調(diào)制的數(shù)據(jù)信號承載計算機(jī)可執(zhí)行指令,用于執(zhí)行根據(jù)本申請文件中描述的實施例之一的方法。
通過結(jié)合附圖閱讀申請文件和所附屬權(quán)利要求,可以確知本發(fā)明的其他的目的和優(yōu)點(diǎn)。
附圖簡述為了更加完整地理解本發(fā)明,在結(jié)合附圖進(jìn)行描述之后,建立了參考,在附圖中
圖1示出了企業(yè)信息集成平臺的總體視圖;圖2示出了示例性數(shù)據(jù)結(jié)構(gòu);圖3示出了示例性系統(tǒng)圖;并且圖4示出了具有改進(jìn)的自底而上的評估的根據(jù)圖3的示例性系統(tǒng)示圖。
具體實施例方式
優(yōu)選實施例詳述內(nèi)容1.系統(tǒng)總體視圖2.F-Logic介紹3.映射3.1.數(shù)據(jù)庫映射3.1.1.關(guān)系數(shù)據(jù)庫到源本體的映射3.2.Adabas映射3.2.1.經(jīng)由規(guī)則語言內(nèi)建(built-in)進(jìn)行的通用Adabas文件訪問3.2.2.用于實現(xiàn)從本體實例到Adabas實例的實例映射的規(guī)則3.3.XML映射3.4.web服務(wù)映射4.外部視圖5.作為web服務(wù)發(fā)布6.應(yīng)答查詢6.1.示例6.2.查詢本體6.2.1.查詢表現(xiàn)(Expressiveness)6.2.2.查詢編輯處理和所生成查詢的語義6.2.3.查詢生成處理6.2.4.模塊名稱6.2.5.根類別6.2.6.數(shù)據(jù)類型特性6.2.7.對象特性6.2.8.可選特性6.2.9.列表值(List-valued)特性6.2.10.=-謂詞(等價謂詞)
6.2.11.其他謂詞6.2.12.完整示例6.3.web服務(wù)部署和執(zhí)行6.4.查詢測試7.推理附錄具有Adabas映射的示例本體(ontology)1.系統(tǒng)總體視1示出了企業(yè)信息集成平臺的總體視圖。示出了多個數(shù)據(jù)源XML、DB1、DB2和RPC,RPC表示遠(yuǎn)程過程調(diào)用,并且表示web服務(wù)。存在源本體100、102、104和106,其分別對應(yīng)于每個數(shù)據(jù)源。將源本體集成到集成本體108中。可以經(jīng)由預(yù)先定義的外部視圖V1、V2和V3訪問集成本體和下面的結(jié)構(gòu)。對應(yīng)于這些外部視圖的是web服務(wù)WS1、WS2和WS3。這些web服務(wù)可用于將查詢輸入到系統(tǒng)中。推理或運(yùn)行時間單元110用于應(yīng)答查詢。為此,其將經(jīng)由web服務(wù)輸入的查詢翻譯為集成本體108的查詢語言下的查詢。而且,其動態(tài)地訪問本體結(jié)構(gòu)100、102、104、106和108以及對應(yīng)的規(guī)則,以應(yīng)答查詢。部分規(guī)則是源本體100、102、104和106同獨(dú)立的數(shù)據(jù)源之間的映射。這些映射包含內(nèi)建(built-in),用于訪問數(shù)據(jù)源。運(yùn)行時間引擎110,在使用規(guī)則評估查詢的同時,直接訪問外部數(shù)據(jù)源。
2.F-Logic介紹對于查詢的表述,通常邏輯語言F-Logic是一種有用的本體查詢語言(參看,例如,J.Angele,G.Lausen″Ontologies in F-Logic″in S.Staab,R.Studer(Eds.)Handbook on Ontologies in Information Systems.International Handbooks on Information Systems,Springer,2003,page29)。為了獲得對F-Logic的功能的一定的直觀理解,可以使用下面的示例,其映射公知的圣經(jīng)人物之間的對象特性。
首先,我們定義本體,即,類別及其分層結(jié)構(gòu),以及某些要素
abraham:man.
sarah:woman.
isaac:man[fatherIs->abraham;motherIs->sarah].
ishmael:man[fatherIs->abraham;motherIs->hagar:woman].
jacob:man[fatherIs->isaac;motherIs->rebekah:woman].
esau:man[fatherIs->isaac;motherIs->rebekah].
顯然,定義了某些類別“man(男人)”和“woman(女人)”。例如,Abraham是man。類別“man”具有指出了父母的特性“fatherIs”和“motherIs”。例如,man Isaac具有父親Abraham和母親Sarah。在該特定情況中,特性是對象特性。
盡管F-Logic適于定義本體的類別結(jié)構(gòu),但是,在許多情況中,本體語言RDF或OWL用于這些目的。
而且,給出了某些規(guī)則,定義了類別之間的依賴關(guān)系FORALL X,Y X[sonIs->>Y]<-Y:man[fatherIs->X].
FORALL X,Y X[sonIs->>Y]<-Y:man[motherIs->X].
FORALL X,Y X[daughterIs->>Y]<-Y:woman[fatherIs->X].
FORALL X,Y X[daughterIs->>Y]<-Y:woman[motherIs->X].
使用F-Logic寫出的規(guī)則由規(guī)則報頭(左側(cè))和規(guī)則體(右側(cè))組成。因此,上文給出的示例中的第一規(guī)則意味著這樣的翻譯即如果Y是男人,其父親是X,則Y是X的兒子(son)中的一個(可能有多于一個兒子)。簡單箭頭“->”指出了,對于給定的數(shù)據(jù)類型或?qū)ο筇匦?,僅有一個值是可能的,而雙頭箭頭“->>”指出了,多于一個值可以分配給數(shù)據(jù)類型或?qū)ο筇匦浴?br>
最后,我們表述查詢,其詢問具有父親為Abraham的兒子的全部女人。換言之Abraham同哪些女人育有兒子?FORALL X,Y<-X:woman[sonIs->>Y[fatherIs->abraham]].
查詢的語法同規(guī)則的定義相似,但是略去了規(guī)則報頭。
應(yīng)答是X=sarahX=hagar3.映射3.1.數(shù)據(jù)庫映射對于數(shù)據(jù)庫的映射,定義專用的內(nèi)建。該內(nèi)建允許訪問數(shù)據(jù)庫。其創(chuàng)建了,例如,針對數(shù)據(jù)庫數(shù)據(jù)的SQL查詢。該內(nèi)建并入到映射規(guī)則中。
下面的示例說明了訪問MS SQLServer上的作為數(shù)據(jù)庫類型的數(shù)據(jù)庫,其在專用的計算機(jī)或者被稱為“主機(jī)”的端口上運(yùn)行。該數(shù)據(jù)庫包含表“person(人)”,其包含關(guān)于人的“Id”、其“name(姓名)”和其“town(城鎮(zhèn))”的信息。該映射規(guī)則具有以下形式X:Person[hasName->Y;livesInTown->Z]<-dbaccess(database,host,Person,f(Id,X,Name,Y,Town,Z)).
3.1.1.關(guān)系數(shù)據(jù)庫到源本體的映射關(guān)系數(shù)據(jù)庫由表的集合組成。每個表由固定數(shù)目的指定列組成。對于每個列,給出了數(shù)據(jù)類型。表的內(nèi)容必須同這些數(shù)據(jù)類型相符合。對于表中的行,可以給出(唯一的)密鑰(key),其以明確的方式識別一個行。該密鑰可以由某些列的值組成,或者可以是分立的額外的值,如數(shù)字。外密鑰定義了針對其他表的鏈接它們涉及其他表的密鑰,并且因此,表示關(guān)系或?qū)ο筇匦浴?br>
關(guān)系數(shù)據(jù)庫到其對應(yīng)的源本體的映射定義如下-每個表映射到本體中的類別。
-不表示外密鑰(即不表示關(guān)系)的表的每個列映射到對應(yīng)的本體類別的數(shù)據(jù)類型特性。
-表示外密鑰的每個列映射到二元關(guān)系或者本體的對象特性。
-表中的每個行映射到本體的實例。由行的密鑰,或者,如果不能獲得密鑰,則由線中的全部的值,生成實例的唯一標(biāo)識符。
-行中的值映射到所提及的屬性(attribute)值和對象特性。
可以以下列方式自動生成關(guān)于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)模式的源本體和映射-類別名稱是表名稱。
-數(shù)據(jù)類型和對象特性名稱是列的名稱。
-如果存在主密鑰,則自數(shù)據(jù)庫名稱、數(shù)據(jù)庫位置、表名稱加上主密鑰,生成關(guān)于實例的唯一標(biāo)識符。
-如果不存在唯一密鑰,則通過并置行中的全部值v1,...,vn,使用行中的該全部值v1,...,vn創(chuàng)建唯一密鑰。
-由行中的值直接給出實例的特性的值。
-由所提及的外密鑰的密鑰變換創(chuàng)建關(guān)系或?qū)ο筇匦浴?br>
讓我們給出以下示例表“person(人)”包含列“id”、“name(姓名)”、“city(城市)”、“street(街道)”、“zip(郵政分區(qū))”、“married(婚姻)”?!癷d”是密鑰。該表包含數(shù)據(jù)條目“1”、“Peter”、“New York”、“King street”、“12”、“2”。
對應(yīng)的源本體看起來如下(F-Logic)Person[name=>STRING;
city=>STRING;
street=>STRING;
zip=>NUMBER;
married=>Person].
通過下列規(guī)則給出表到概念“Person”的映射f(database,person,X):Person[id->X;name->Y;city->Z;street->U;zip->V;married->W]<-dbaccess(database,person,ac-cess(id,X,name,Y,city,Z,street,U,zip,V,married,W)).
因此,可以自動地生成源本體以及從表到源本體的映射。
3.2.Adabas映射我們定義從本體到Adabas定義的映射。Adabas數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型的擴(kuò)展。除了表結(jié)構(gòu)以外,其還允多值字段以及多個字段組,其可以再次包含多個字段。因此其可被視為嵌套關(guān)系模型的限制版本(NF2)。該嵌套被限制為兩個層面。
下面的表1是Adabas文件的示例Adabas file DDMTLDB Name F Leng S D Remark----------------------------------------------1 AA PERSONNEL-ID A8DHD=PERSONNEL/IDG 1 AB FULL-NAME2 AC FIRST-NAME A20 N2 AD MIDDLE-I A1N2 AD MIDDLE-NAMEA20 N2 AE NAME A20 D1 AF MAR-STAT A1F
HD=MARITAL/STATUS1 AG SEX A1FHD=S/E/X1 AH BIRTHN6.0 DHD=DATE/OF/BIRTHEM=99/99/99G 1 A1 FULL-ADDRESSM 2 AI ADDRESS-LINE A20 NHD=ADDRESS* OCCURENCES 1-62 AJ CITY A20 N D2 AK ZIP A10 NHD=POSTAL/ADDRESS2 AK POST-CODEA10 NHD=POSTAL/ADDRESS2 AL COUNTRY A3NG 1 A2 TELEPHONE2 AN AREA-CODEA6NHD=AREA/CODE2 AM PHONEA15 NHD=TELEPHONE.
.
.
表1Adabas映射由下列部分構(gòu)成-本體定義,其盡可能接近地表示特定的Adabas嵌套表結(jié)構(gòu)。
-單一的通用規(guī)則內(nèi)建,其允許訪問全部的Adabas實例。
-規(guī)則集合,其將每個本體類別定義映射到通用Adabas內(nèi)建。
根據(jù)下面的定義,Adabas模式定義自動地映射到等效的本體模式定義。
Adabas嵌套表映射到類別。
單值字段和多個字段以具有對應(yīng)的多重性映射到該類別的數(shù)據(jù)類型特性。
多個字段組映射到具有對象特性的額外的本體類別。該類別再次具有數(shù)據(jù)類型特性,其可以是多個。然而,該類別不具有對象特性。
關(guān)于全部的原子XML模式的數(shù)據(jù)類型的支持是本體語言的一部分。Adabas類型的系統(tǒng)具有下面的數(shù)據(jù)類型。它們映射到本體的指定的XML模式數(shù)據(jù)類型Alpha(字符)(A)-xs:string(串)Fixed(固定)(F)-xs:decimal(十進(jìn)制)Packed(壓縮)(P)-xs:decimal(十進(jìn)制)Unpacked(未壓縮)(U)-xs:decimal(十進(jìn)制)Binary(二進(jìn)制)(B)-xs:hexBinary(十六進(jìn)制二進(jìn)制)Float(浮點(diǎn))(G)-xs:double(雙)本體類別定義得自Adabas DDM定義,并且因此僅包含長字段名稱。對于上文的Adabas DDM,自動地生成了下面的本體類別#Personnel[#personnelid=>xsd#STRING;
#firstname=>xsd#STRING;
#middlename=>xsd#STRING;
#name=>xsd#STRING;
#marstat=>xsd#STRING;
#sex=>xsd#STRING;
#birth0>xsd#DATE;
#address-line=>>xsd#STRING;
#city=>>xsd#STRING;
#zip=>>xsd#STRING;
#postcode=>>xsd#DATE;
#country=>>xsd#STRING;
#areacode>xsd#DATE;
#phone=>xsd#STRING;
]3.2.1.經(jīng)由規(guī)則語言內(nèi)建的通用Adabas文件訪問通用Adabas內(nèi)建具有下列界面。其僅使用Adabas短名稱,用于訪問實例。
adaaccess("<adabasFileNumber>",F(ISN,"<adabasShortnamel>",X1,"<adabasShortname2>,X2,...,"<adabasShortnameN>",Xn),"adabasDBID")3.2.2.用于實現(xiàn)從本體實例到Adabas實例的實例映射的規(guī)則對于表示Adabas文件的每個本體類別定義,生成規(guī)則集合,其將這些類別定義映射到通用Adabas內(nèi)建的啟用。該規(guī)則還表示從長DDM字段名稱到Adabas短名稱的映射。該規(guī)則具有下面的形式FORALL VAR0,VAR1,VAR2,...,VARN
(id("http://mynamespace.org"#longAdabasFileName,VAR0):
"http://mynamespace.org"#longAdabasFileName["http://mynamespace.org"#longAadabasFieldName1->>VAR1;
"http://mynamespace.org"#longAadabasFieldName2->>VAR2;
....
"http://mynamespace.org"#longAdabasFieldNameN->>VARN]<-(adaaccess("adabasFileNumber",F(VAR0,"adabasShortName1",VAR1,"adabasShortName2",VAR2,...
"adabasShortNameN",VARN),"adabasDBID")附錄A包含具有對應(yīng)的Adabas映射的示例本體。
本體、映射和其他的規(guī)則優(yōu)選地被存儲為oxml文件。
源本體須總是“完全的”,即它們須包含關(guān)于每個參數(shù)的構(gòu)造或者下面的數(shù)據(jù)源或web服務(wù)的構(gòu)造。否則,某些數(shù)據(jù)將是不可訪問的。
對于集成本體,不必是這樣。如果集成本體包含所關(guān)注的構(gòu)造,則這是足夠的。
3.3.XML映射需要XML實例和F-Logic實例之間或者源本體的構(gòu)造之間的映射。
對于XML文檔,可以生成XML模式,其包含XML文檔中包含的數(shù)據(jù)的數(shù)據(jù)類型定義。使用該XML模式,可以驗證對應(yīng)的XML文檔,即,在是否同正確的數(shù)據(jù)類型相符合的方面,檢查文檔中的數(shù)據(jù)。驗證處理生成了XML文檔的帶有批注的版本,針對每個數(shù)據(jù)或者XML實例包含PSVI實例(PSVI=后模式驗證信息集),其是關(guān)于來自XML模式的適當(dāng)?shù)臄?shù)據(jù)類型的引用。PSVI實例包含關(guān)于XML實例的數(shù)據(jù)類型的信息。
我們考慮具有XML模式的XML實例,其在設(shè)計時具有固定的模式。給出了具有PSVI實例的XML實例,其批注了來自具體詞匯的XML表述的類型信息和摘要。
映射應(yīng)盡可能地保存信息。然而,可接受的是,如果由于保存信息的嘗試代價過高,因此丟失了某些信息,例如,-經(jīng)由嵌套次序、選擇或全部模型組的復(fù)合內(nèi)容的模型的約束。
-關(guān)于如0、1和無界的其他基數(shù)的MinOccurs和MaxOccurs約束。
不支持未提供任何示意信息的XML模式特征,如通配符。
存在具有相關(guān)聯(lián)的XML模式構(gòu)造的XML元素節(jié)點(diǎn)到本體實例和模式的模式驅(qū)動的映射。
該映射如下定義-簡單內(nèi)容的XML元素聲明映射到關(guān)于數(shù)據(jù)類型特性的本體特性定義(如來自表的列)。
-XML復(fù)合類型定義映射到本體類別定義。
-復(fù)合類型的XML元素聲明映射到本體的對象特性定義。
通過下面的實例說明了映射。在圖2中說明了該示例的XML模式。
<xs:schema elementFormDefault="qualified"targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ProductDetails"type="tns:productDetailsType"/>
<xs:complexType name="productDetailsType">
<xs:sequence>
<xs:element name="Weight"type="xs:int"/>
<xs:element name="WeightUnit" type="xs:string"/>
<xs:element name="Dimensions"type="tns:dimensionsType"/>
<xs:element name="DimensionsUnit"type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="dimensionsType">
<xs:sequence>
<xs:element name="Height"type="xs:int"/>
<xs:element name="Width"type="xs:int"/>
<xs:element name="Depth"type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
其遵循同該模式配合的示例XML文檔。
<ProductDetails xmlns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsdCatalog.xsd">
<Weight>24</Weight>
<WeightUnit>pounds</WeightUnit>
<Dimensions>
<Height>24</Height>
<Width>21</Width>
<Depth>26</Depth>
</Dimensions>
<DimensionsUnit>inches</DimensionsUnit>
</ProductDetails>
對于具有簡單和復(fù)合類型元素聲明的該XML模式,生成了下面的本體-對于該示例,用語言F-Logic表達(dá)<nsontons="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"ontons:odt="http://schema.ontoprise.com/datatypes"ontons:xsd="http://www.w3.org/2001/XMLSchema">
//ONTOLOGY_METADATA--------------------//CONCEPTS-------------------#productDetailsType::#DEFAULT_ROOT_CONCEPT.
#dimensionsType::#DEFAULT_ROOT_CONCEPT.
#productDetailsType[#Weight=>xsd#INTEGER;
#WeightUnit=>xsd#STRING;
#Dimensions=>>#dimensionsType;
#DimensionsUnit=>xsd#STRING].
#dimensionsType[#Heigh=>xsd#INTEGER;
#Width=>xsd#INTEGER;
#Depth=>xsd#STRING].
</ns>
這里“#Dimensions=>>#dimensionsType”表示針對所需用于XML復(fù)合類型“dimensionsType”的映射的類別“dimensionsType”的對象特性。
對于示例XML文檔,自動映射處理將生成下面的本體實例<nsontons="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"ontons:odt="http://schema.ontoprise.com/datatypes"ontons:xsd="http://www.w3.org/2001/XMLSchema">
//INSTANCES--------------------#instance2productDetailsType:#productDetailsType.
#instanee2productDetailsType[#Weight->>"24,6";
#WeightUnit->>"pounds";
#Dimensions->>#instance4dimenstionsType;
#DimensionsUnit->>"inches"].
#instance4dimensionsType:#dimensionsType.
#instanee4dimensionsType[#Width->>24.0;
#Depth->>21.0;
#Height->>26.0].
</ns>
這是通過通用內(nèi)建實現(xiàn)的,其具有XML模式信息及其針對本體定義的映射,作為輸入。因此,通過訪問XML實例,該內(nèi)建具有用于構(gòu)造對應(yīng)的本體實例的全部信息,該本體實例是作為關(guān)于本體模式信息的變量給出的。這是根據(jù)上文指定的模式驅(qū)動的映射實現(xiàn)的。
基于該通用XML內(nèi)建,通過所生成的F-Logic映射規(guī)則實現(xiàn)該映射,其借助于該XML內(nèi)建,將生成的本體類別和特性映射到對應(yīng)的XML構(gòu)造。下面是該生成規(guī)則的示例FORALL VAR0,VAR1,VAR2,VAR3,VAR4(id("productDetailsType”,VAR0):
#productDetailsType[#Weight->>VAR1;
#WeightUnit->>VAR2;
#Dimensions->>VAR3;
#DimensionsUnit->>VAR4]<-XMLBuiltin("datasource-URL",VAR0"XMLSchemaDefiniton","MappingToOntology",F(VAR1,VAR2,VAR3,VAR4))該內(nèi)建生成XQuery。根據(jù)該規(guī)則,將該Xquery的XML結(jié)果映射到本體實例。
3.4.web服務(wù)映射web服務(wù)可被視為遠(yuǎn)程過程調(diào)用(RPC),其具有輸入?yún)?shù)的列表和輸出參數(shù)的列表,其包含結(jié)果。
例如,傳遞城市的當(dāng)前溫度的web服務(wù)可以具有作為輸入?yún)?shù)的郵政分區(qū)編碼和作為輸出參數(shù)的溫度。對應(yīng)的源本體將具有類別“地點(diǎn)”,其具有兩個特性“郵政分區(qū)代碼”和“溫度”。
僅考慮文檔風(fēng)格的web服務(wù),其中全部的輸入?yún)?shù)包含在輸入消息的單一的XML元素中,并且全部的輸出參數(shù)包含在輸出消息的單一的XML元素中。該XML元素由XML模式定義描述。Web服務(wù)由WSDL(web服務(wù)描述語言)描述,其引用XML模式定義。
Web服務(wù)映射被定義如下-web服務(wù)操作映射到本體類別。
-輸入消息的元素和輸出消息的元素映射到對象特性。
-輸入和輸出消息的內(nèi)容映射到本體定義,如上文的XML映射中指定的。
下面的示例定義了web服務(wù)getProductDetail,其使用具有相同模式的元素,該模式是我們在XML映射的描述中使用的。<wsdl:definitionsxmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:cat="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.wsdl">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:importnamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"schemaLocation="Catalog.xsd"/>
<xs:element name="ProductNumber"type="xs:integer"/>
</xs:schema>
</wsdl:types>
<wsdl:message name="getProductDetailsRequest">
<wsdl:part name="request"element="ProductNumber"/>
</wsdl:message>
<wsdl:message name="getProductDetailsResponse">
<wsdl:part name="Body"element="cat:ProductDetails"/>
</wsdl:message>
<wsdl:portType name="CatalogPortType">
<wsdl:operation name="getProductDetails">
<wsdl:input name="getDetailsRequest"message="tns:getProductDetailsRequest"/>
<wsdl:output name="getDetailsResponse"message="tns:getProductDetailsResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CatalogSoapBinding"type="tns:CatalogPortType">
<soap:binding style="document"transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getProductDetails">
<soap:operation/>
<wsdl:input>
<soap:body parts="request"use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body parts="Body"use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:definitions>
該web服務(wù)映射將導(dǎo)致下面的本體定義。
//Ontology<nsontons="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd"
ontons:odt="http://schema.ontoprise.com/datatypes"ontons:xsd="http://www.w3.org/2001/XMLSchema">
//ONTOLOGY_METADATA--------------------//CLASSES--------------------#getProductDetailsOperation::#DEFAULT_ROOT_CONCEPT#productDetailsType::#DEFAULT_ROOT_CONCEPT.
#dimensionsType::#DEFAULT_ROOT_CONCEPT.
#getProductDetailsType::#DEFAULT_ROOT_CONCEPT.
//PROPERTIES--------------------#getProductDetailsOperation[#ProductNumber=>#ProductNumberType;
#ProductDetails=>#productDetailsType].
#productDetailsType[#Weight=>xsd#INTEGER;
#WeightUnit=>xsd#STRING;
#Dimensions=>>#dimensionsType;
#DimensionsUnit=>xsd#STRING].
#dimensionsType[#Height=>xsd#INTEGER;
#Width=>xsd#INTEGER;
#Depth=>xsd#STRING].
下面是根據(jù)給出的WSDL定義的示例SOAP請求。SOAP表示“簡單對象訪問協(xié)議”;其是輕量級的基于XML的消息交換協(xié)議,用于對web服務(wù)請求中的信息編碼,并且在網(wǎng)絡(luò)上發(fā)送消息之前響應(yīng)該消息。
輸入消息如下<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ProductNumberxmlns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2003-07/Catalog.xsd">
60500</ProductNumber>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
輸出消息如下<SOAP-ENV:Enyelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body><ProductDetails xmlns="http://www.ws-i.org/SampleApplicationa/SupplyChainManagement/2003-07/Catalog.xsd">
<Weight>24.6</Weight>
<WeightUnit>pounds</WeightUnit>
<Dimensions>
<Height>26</Height>
<Width>24</Width>
<Depth>21</Depth>
</Dimensions>
<DimensionUnit>inches</DimensionUnit>
</ProductDetails>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
web服務(wù)映射將上文的web服務(wù)的該SOAP請求映射到下面的本體實例。應(yīng)當(dāng)注意,僅有第一實例專門用于web服務(wù)映射。全部其他的實例與XML映射示例相同。
#instancelGetProductDetailsOperation:#getProductDetailsOperation.
#instancelGetProductDetailsOperation[#ProductNumber->>605001;
#ProductDetails->>#instance2productDetailsType].
#instance2productDetailsType:#productDetailsType.
#instance2productDetailsType[#Weight->>"24,6";
#WeightUnit->>"pounds";
#Dimensions->>#instance4dimenstionsType;
#DimensionsUnit->>"inches"].
#instance4dimenstionsType:#dimensionsType.
#instance4dimenstionsType[#Width->>24.0;
#Depth->>21.0;
#Height->>26.0].
</ns>
根據(jù)上文指定的映射,通用內(nèi)建“webservice”實現(xiàn)了從對應(yīng)的SOAP請求到本體實例的變換。該內(nèi)建獲得了WSDL描述及其針對本體定義的映射,作為輸入。由此,其從SOAP請求的結(jié)果構(gòu)造了本體實例。
基于該通用web服務(wù)內(nèi)建,通過所生成的F-Logic映射規(guī)則實現(xiàn)了映射,其將所生成的本體類別和特性映射到該web服務(wù)內(nèi)建。下面是該生成規(guī)則的示例FORALL PN,PDgetProductDetailsOperation(PN):getProductDetailsOperation[ProductNumber->PN;ProductDetails->PD]<-webservice("http://www.example.com/Products",input("ProductNumber",PN),output("ProductDetails",PD))4.外部視圖通過指定預(yù)先定義的查詢,可以定義關(guān)于集成數(shù)據(jù)的不同的外部視圖。它們可被理解為針對集成本體提出的、并且用集成本體的查詢語言表述的預(yù)先定義的參數(shù)化查詢。
5.作為web服務(wù)發(fā)布對于每個外部視圖,可以定義針對系統(tǒng)的對應(yīng)web服務(wù)訪問,其允許對應(yīng)的針對系統(tǒng)的查詢。在最一般的情況中,該web服務(wù)采用XML文檔作為輸入,并且生成XML文檔,作為輸出或應(yīng)答。該web服務(wù)被稱為“文檔風(fēng)格的web服務(wù)”。
因此,例如,輸入的XML文檔如下<Name>
Rebekah</Name>
輸出如下<Children>
<Son>Jacob</Son>
<Son>Esau</Son>
</Children>
下文將給出更加詳細(xì)的解釋。
6.應(yīng)答查詢下面的示例說明了該系統(tǒng)如何工作以確定某個人所生活的地點(diǎn)的溫度??梢越?jīng)由web服務(wù)訪問該溫度,而該人是存儲在數(shù)據(jù)庫中的。
系統(tǒng)包含web服務(wù)“溫度”,如果給出了郵政分區(qū)代碼作為輸入,則其給出了該地點(diǎn)的溫度。該web服務(wù)內(nèi)建是webservice(<uri>,<input>,<output>)
<uri>表示互聯(lián)網(wǎng)中的web服務(wù)的位置。該示例中的<input>是郵政分區(qū)代碼。該示例中的<output>是以攝氏度為單位的溫度。以下面的方式實現(xiàn)數(shù)據(jù)庫到類別“person”的映射FORALL X,Y,Z X:Person[hasName->Y;hasZipCode->Z]<-dbac-cess("MS SQL","Person",F(id,X,name,Y,zip,Z)).
dbaccess是內(nèi)建。該規(guī)則照常確保了數(shù)據(jù)庫和源本體之間的映射。對于映射web服務(wù),我們定義了下面的規(guī)則FORALL X,Z,T X[hasTemperature->T]<-X:Person[hasZipCode->Z]and webservice("http://a.b.c/temperature",Z,T)其具有內(nèi)建“webservice”。下面的查詢給出了全部的人生活的地點(diǎn)的溫度FORALL X,T,N<-X:Person[hasName->N;hasTemperature->T].
6.1.示例讓我們考慮在web服務(wù)輸入層面上提出的查詢將如何被轉(zhuǎn)移到web服務(wù)數(shù)據(jù)源層面。再一次地,將考慮上文給出的web服務(wù)getProductDetails的示例。
該系統(tǒng)可以呈現(xiàn)瀏覽器界面,用于輸入產(chǎn)品編號,例如,123。該瀏覽器前端基于文檔風(fēng)格的web服務(wù)。通過推理引擎將查詢翻譯為如下的集成本體的查詢語言(F-Logic)中的查詢Forall X,Y,Z,U<-X:getProductDetails[ProductNumber->123;getProductDetails->Y[Weight->Z;WeightUnit->U]].
其意味著適當(dāng)?shù)募杀倔w。出于對該示例簡化的原因,如果我們假設(shè)源本體同集成本體相同,則我們須將該本體映射到返回產(chǎn)品細(xì)節(jié)的文檔風(fēng)格的web服務(wù)。映射規(guī)則須創(chuàng)建web服務(wù)的XML輸入,并且同時,定義輸出XML文檔到本體的映射。該規(guī)則如下
Forall X,Y,Z,UX:getProductDetailsOperation[ProductNumber->Y;getProductDetails-> <-x:getProductDetailsOperation[ProductNumber->Y]andwsaccess("http://a.b.c/products/","<ProductNumber>"+Y+"</ProductNumber>",<ProductDetails>
<Weight>+Z+</Weight>
<WeightUnit>+U+</WeightUnit>
</ProductDetails>)對于輸入和輸出XML文檔,可以定義變量,其是在應(yīng)答查詢時動態(tài)構(gòu)造的。
然后,可以將應(yīng)答(例如,60kg,即,Z=60和U=kg)傳遞到更高的層面,并且顯示在輸出瀏覽器前端中。
6.2.查詢本體在優(yōu)選實施例中,借助于內(nèi)建功能和F-Logic規(guī)則,系統(tǒng)描述源本體和集成本體。該系統(tǒng)需要提供查詢機(jī)制,以允許檢索由該本體描述的數(shù)據(jù)。
對此,可以使用規(guī)則語言。不具有規(guī)則報頭的規(guī)則返回評估為有效結(jié)果的關(guān)于規(guī)則體的全部變量結(jié)合。本質(zhì)上,沒有必要使規(guī)則語言還用作查詢語言。但是具有相同的語言及其用于描述和用于查詢數(shù)據(jù)的實現(xiàn)方案避免了同數(shù)據(jù)類型處理及操作語義的許多可能的沖突。
6.2.1.查詢表現(xiàn)謂詞邏輯中的規(guī)則,特別是F-Logic中的規(guī)則,可以描述數(shù)據(jù)對象的特性以及數(shù)據(jù)對象之間的關(guān)系(對象特性)。例如,描述邏輯特性的規(guī)則是“如果X是德國出租車,則X的顏色是淺乳白色”。用于描述結(jié)構(gòu)關(guān)系的示例是“isSonOF”、“hasSons”。推理引擎推斷了對象的這些組合,其中除了邏輯條件以外,還保存了查詢中指定的結(jié)構(gòu)關(guān)系。
由于集成本體中的所述集成數(shù)據(jù)將被提供用于web服務(wù)中的應(yīng)用,因此某些額外的考慮是必要的。
-在使用web服務(wù)作為針對集成本體的界面時,用戶期望web服務(wù)返回web服務(wù)風(fēng)格的結(jié)果,其是包括全部結(jié)構(gòu)關(guān)系的單一的XML文檔。
示例關(guān)于具有至少一個孩子“rebekah”的全部男人的查詢返回了孩子的列表FORALL X,Y<-X:man[sonIs->>Y]and Y[motherIs->rebekah].
同時推理引擎返回兩個結(jié)果X=isaac Y=jacobX=isaac Y=esauWeb服務(wù)應(yīng)典型地返回XML對象的嵌套結(jié)構(gòu)<man="isaac">
<sonIs name="jacob"/>
<sonIs name="esau"/>
</man>
-推理引擎返回關(guān)于查詢中指定條件的、導(dǎo)致有效結(jié)果的全部變量結(jié)合。僅當(dāng)存在關(guān)于全部變量的結(jié)合時,將返回結(jié)果。需要專用的查詢表述,以表達(dá)“給出全部可獲得的信息”。
示例返回全部的女人及其母親的列表FORALL X,Y<-X:woman[motherIs->Y].
推理引擎不返回任何結(jié)果,這是因為在數(shù)據(jù)中不存在關(guān)于女人的母親的信息,即,不存在關(guān)于Y的結(jié)合。然而,可以關(guān)注數(shù)據(jù)中存在的女人(sarah、hagar、rebekah)列表中的應(yīng)用。
-為了暴露web服務(wù)中的查詢功能,必需的是,這些查詢可被參數(shù)化,即,在web服務(wù)的執(zhí)行時間之前,將不指定關(guān)于查詢謂詞的具體值。
6.2.2.查詢編輯處理和所生成查詢的語義系統(tǒng)優(yōu)選地隱藏關(guān)于本體和查詢語言的細(xì)節(jié)。因此,需要一種查詢編輯器,其允許獨(dú)立于查詢所指定的語言。
系統(tǒng)的查詢編輯器開始于一個選定的類別。其遞歸地允許沿關(guān)系或?qū)ο筇匦詫?dǎo)航到另外的類別。該處理跨越具有關(guān)系或?qū)ο筇匦宰鳛檫B接的類別節(jié)點(diǎn)的分層結(jié)構(gòu)(被稱為樹)。對于樹中的每個類別節(jié)點(diǎn),可以指定限制和投影。
目前的查詢編輯器實現(xiàn)了關(guān)于一個特定的限制和投影語義的查詢生成,如下文所述。實際上,其他的語義是可能的,并且可被實現(xiàn)。
查詢編輯器在分立的窗口方框中示出了樹中的每個類別。這些方框分為三個部分-一般信息(Id查詢名稱,Namespace查詢對象的命名空間)-數(shù)據(jù)類型特性
-對象特性(關(guān)系)現(xiàn)將更加詳細(xì)地解釋最后兩個部分。
數(shù)據(jù)類型特性部分列出了類別的全部數(shù)據(jù)類型特性。對于每個特性,可以選擇該特性是否將被投影,即,是否是查詢輸出的一部分。
與投影無關(guān),你可以可選地指定限制子句。列表框示出了限制的可能的類型(例如,=、>、>=、<、<=、contains、startswith、!=、not contains、not startswith)。在文本框中,可以指定關(guān)于限制的值。如果不希望使用恒定值,而是希望在執(zhí)行查詢時取決于應(yīng)用指定該值,則可以定義所謂的“外部變量”。如果文本框中的值是開始和結(jié)束于$字符的字符串,則該值表示外部變量。可以在查詢的不同地點(diǎn)中,甚至在不同的類別節(jié)點(diǎn)中使用相同的外部變量。
如果存在滿足指定限制的至少一個數(shù)據(jù)類型特性值,則查詢僅返回類別的結(jié)果實例。因此,如果你具有針對多個數(shù)據(jù)類型特性的限制,則它們需要至少一個匹配值;否則對象將被丟棄。
將僅返回那些滿足限制的數(shù)據(jù)類型特性值。這意味著,如果數(shù)據(jù)類型特性是列表值特性,則那些不與該限制匹配的值將不出現(xiàn)在查詢結(jié)果中。
關(guān)系或?qū)ο筇匦圆糠至谐隽祟悇e的全部對象特性。在點(diǎn)擊對象引用按鈕時,將打開具有對引用類別的描述的新的方框。對于該類別,遞歸地繼續(xù)查詢定義。
如果對于具有一個或多個限制(其自身或其派生)的每個引用類別,存在滿足這些限制的至少一個引用對象,則當(dāng)前的對象僅屬于查詢結(jié)果。因此,如果你具有針對多個對象特性的限制,則它們?nèi)啃枰ヅ渲?;否則該對象被丟棄。
如果存在關(guān)于所引用類別或其派生的數(shù)據(jù)類型特性的任何限制,則在結(jié)果中僅出現(xiàn)那些滿足這些限制的對象??梢灾貜?fù)地使用相同的對象引用(模擬某些關(guān)于引用類別的“或”運(yùn)算的限制形式,然而必需存在關(guān)于全部這些引用的至少一個匹配)。
6.2.3.查詢生成處理系統(tǒng)使用內(nèi)部數(shù)據(jù)結(jié)構(gòu)描述如查詢編輯器中指定的查詢。該內(nèi)部數(shù)據(jù)結(jié)構(gòu)將用于進(jìn)一步的處理步驟-如果所描述的查詢將作為web服務(wù)導(dǎo)出,則生成WSDL(web服務(wù)描述語言)的web服務(wù)描述。
-以給定的查詢語言(例如F-Logic)自身生成查詢。
還可以持久存儲該內(nèi)部數(shù)據(jù)結(jié)構(gòu)的實例。存儲該內(nèi)部數(shù)據(jù)結(jié)構(gòu)允許在系統(tǒng)重新啟動后的重新使用和進(jìn)一步發(fā)展。
待生成的查詢需要支持如前面部分中描述的表現(xiàn)。而且,所生成的查詢實現(xiàn)了如前面部分中描述的語義。
6.2.4.模塊名稱關(guān)于對象及其內(nèi)容的知識可能跨越多種模塊,并且對象引用可能跨越具有不同命名空間和模塊名稱的獨(dú)立本體中的對象。
因此,查詢不能作出關(guān)于這樣的模塊的任何靜態(tài)假設(shè),即在該模塊中作出了關(guān)于對象、類別等的敘述。因此,系統(tǒng)須將全部的模塊名稱視為未知的,并且其對于全部的斷言潛在地是不同的。
對于正在生成的查詢,這意味著,對于每個如下的謂詞X:classname@module_variable,X[property_name->>Y]@module_variable
系統(tǒng)在每個地點(diǎn)使用不同的變量,其中須指定模塊。
6.2.5.根類別對于每個查詢的開始點(diǎn),系統(tǒng)需要結(jié)合到查詢的根類別的實例的變量,即,其中查詢定義開始的類別。關(guān)于其的謂詞如下rootclass_variable:classname@module_variable此外,查詢生成創(chuàng)建了結(jié)果投影,即,其定義了關(guān)于有資格對象的結(jié)果輸出的描述的框架。在F-Logic中,該框架是FORALL XRESULTVAR<-EXISTS...
unify(XRESULTVAR,result(classname,rootclass_variable,[content_description])).
orderedby XRESULTVAR“XRESULTVAR”是輸出變量名稱。其意味著,最后,該變量將結(jié)合到包含查詢結(jié)果對象的描述的F-Logic項。
-“classname”是根類別名稱。
-“rootclass_variable”是根類別謂詞中使用的、用于表示根類別對象的變量。
-“content_description”是待生成的、關(guān)于將出現(xiàn)在查詢結(jié)果對象中的根類別對象特性的投影列表。
每個F-Logic查詢結(jié)束于句點(diǎn)。每個默認(rèn)的F-Logic查詢返回導(dǎo)致有效結(jié)果的全部變量結(jié)合。這典型地導(dǎo)致了很多的復(fù)本,例如,在構(gòu)造列表時,該列表中的每個單一的成員是關(guān)于列表成員變量的有效結(jié)合。
為了減少輸出量,并且由于僅關(guān)注于針對根元素生成的投影中的應(yīng)用,系統(tǒng)使用所使用的F-Logic查詢語言的“orderedby”擴(kuò)展。“orderedby”不是F-Logic的直接部分,反之,其是句點(diǎn)之后的待附加的部分?!皁rderedby”可以跟隨有一個或多個變量名稱,其指出了哪個變量將以哪個順序出現(xiàn)在結(jié)果元組(tuple)中。
6.2.6.數(shù)據(jù)類型特性對于需要結(jié)合到變量的數(shù)據(jù)類型特性,系統(tǒng)生成如下的謂詞X[property_name->>property_variable]@module_variable.
對于待示出在查詢結(jié)果中的全部特性,可以找到特性項。對于數(shù)據(jù)類型特性,該特性項如下property(property_name,property_datatype,property_variable,[])-“property_name”是如待示出的數(shù)據(jù)類型特性的本體中定義的名稱。
-“property_datatype”是如本體中定義的該特性的類型。對于所使用的數(shù)據(jù)類型,其通常與針對XML模式數(shù)據(jù)類型定義的數(shù)據(jù)類型相同,這些名稱具有命名空間“http//www.w3.org/2001/XMLSchema”。
-“property_variable”是特性謂詞中使用的、用于表示所使用的特性的值的變量。
由于數(shù)據(jù)類型特性不具有子段對象,因此這些特性具有空的子段對象列表(“[]”)。
6.2.7.對象特性對于用于從一個類別導(dǎo)航至引用類別的對象特性,系統(tǒng)生成如下的謂詞X[property_name->>property_variable]@modulevariable.
對于待示出在查詢結(jié)果中的全部特性,可以找到特性項。對于對象特性,該特性項如下property(property_name,class_name,property_variable,[...])-“property_name”是如待示出的對象特性的本體中定義的名稱。
-“class_name”是如本體中定義的該特性的類型。其是引用對象的類別的名稱。
-“property_variable”是特性謂詞中使用的、用于表示所使用的特性的值的變量。
如果存在待投影的至少一個子段對象,或者如果存在待返回的至少一個對象的數(shù)據(jù)類型特性,則對象特性僅出現(xiàn)在結(jié)果中,因此它們從不具有空的子段(children)列表,該子段在第四特性成分(component)中描述(“[...]”)。
如果相同的特性被單獨(dú)地使用了多于一次(經(jīng)由相同的對象特性的獨(dú)立引用),則property_name自身不足以描述哪個引用被用于引用結(jié)果對象。在這些情況中,property_name將獲得附錄,其使每個引用是唯一的(“_”+次序編號)。這必須同WSDL模式生成同步進(jìn)行(參看下文)。
6.2.8.可選特性作為邏輯編程語言的F-Logic返回導(dǎo)致有效結(jié)果的全部變量結(jié)合。為了是有效的,全部變量需要值的結(jié)合。如果變量不能同值結(jié)合,則其他的結(jié)合是可忽略的,并且對查詢結(jié)果沒有貢獻(xiàn)。
然而,在集成的情況中,用戶希望查詢對象并接收全部可獲得的信息,并且他們不希望在意不存在的值。這必須是顯式處理的。
這僅在系統(tǒng)生成空值表述時是可行的(由F-Logic的觀點(diǎn)來看,這些是正常值)。對于(一個或多個)所選擇的空值(null value)表述,參看下文。此外,系統(tǒng)須生成區(qū)分給出了值以及其中未給出值的情況的謂詞。待生成的謂詞的類型是(((not EXISTS VAR1,VAR2X[property_name->>VAR1]@VAR2)and(equal(module_variable,NULLVALUE))and(equal(property_variable,NULLVALUE)))or(X[property_name->>property_variable]@module_variable))-“X”表示已結(jié)合的變量。
-“property_name”是此處處理的可選特性。
-“VAR1”和“VAR2”是僅用于檢查特性是否存在的局部變量?!癡AR2”僅用于模塊名稱。
如果所涉及的特性不存在,則兩個后繼等價謂詞將值“NULLVALUE”結(jié)合到關(guān)于特性謂詞的兩個全局變量。在評估了該復(fù)合謂詞之后,變量“module_variable”和“property_variable”結(jié)合到現(xiàn)存值或者結(jié)合到空值表述。
6.2.9.列表值特性當(dāng)數(shù)據(jù)類型或?qū)ο筇匦詫⒎峙浣o變量時(例如,X[property_name->>property_variable]@modulevariable),則每一次僅有單一的值結(jié)合到該變量。對于每個值,F(xiàn)-Logic評估獨(dú)立地處理關(guān)于這些結(jié)合的謂詞。顯然,對于單一的值特性,這是所期望的,但是對于列表值特性,其也被保存。
如“表現(xiàn)”部分中已解釋的,用戶期望具有相關(guān)子段對象列表的XML文檔,并且他們不希望具有關(guān)于每個獨(dú)立的子段對象的分立的XML文檔(如果在結(jié)果中父段具有多于一個列表值特性,則由于復(fù)制了從根到子段的父段的整個分層,并且會顯現(xiàn)出一類笛卡兒積,因此其將導(dǎo)致高度的冗余)。
因此,F(xiàn)-Logic的列表內(nèi)建被用于生成子段列表。為了確保列表被獨(dú)立建立用于每個父段節(jié)點(diǎn),系統(tǒng)須首先生成關(guān)于每個列表的密鑰。關(guān)于該密鑰的模板是unify(listkey_variable,ID(list of object ids))-“l(fā)istkey_variable”是采用密鑰值的變量。
-“l(fā)ist of object ids”是從根對象到當(dāng)前對象的全部對象標(biāo)識符的排序列表,其具有關(guān)于待創(chuàng)建的新列表的特性。
一旦描述了該密鑰,系統(tǒng)可以自身生成列表list(listkey_variable,property_description,list_variable).
-“l(fā)istkey_variable”是如上文解釋的列表密鑰。
-“l(fā)ist_variable”是將存儲待構(gòu)造的列表的變量。
-“property_description”包含列表條目特征的說明。有關(guān)細(xì)節(jié)參看“數(shù)據(jù)類型特性”和“對象特性”部分,其表述了數(shù)據(jù)類型和對象特性是如何示出在查詢結(jié)果中的。
6.2.10.=-謂詞(等價謂詞)如果用戶指定了關(guān)于數(shù)據(jù)類型特性的=-比較,并且同時該特性將成為查詢結(jié)果的一部分(所示出的),則系統(tǒng)需要關(guān)于該特性的變量,以便于將同該變量結(jié)合的值移至查詢結(jié)果中。在該情況中,F(xiàn)-Logic提供了兩個語義上不同的方式,用于表達(dá)某類關(guān)于數(shù)據(jù)類型特性的某種等價性。
X[attr->>val]和X[attr->>Y]:
這意味著,X將具有至少一個數(shù)據(jù)類型特性,其名稱為“attr”,具有值“val”,并且(如果是)將全部現(xiàn)存值(以一次一個的方式)結(jié)合到變量Y。
X[attr->Y]and equal(Y,val):
這意味著,變量Y將同全部現(xiàn)存值(以一次一個的方式)結(jié)合,并且然后濾出具有值“val”的全部的Y。
為了正確地調(diào)用web服務(wù)內(nèi)建,我們需要使用第一表述。為了正確地執(zhí)行關(guān)于“數(shù)據(jù)類型特性”部分中的說明的查詢處理,我們需要具有第二表述。因此,如果用戶指定了關(guān)于數(shù)據(jù)類型特性的具有=-比較的查詢,其名稱為“attr”,具有值“val”,則我們生成如下類型的謂詞X[attr->>Y]and X[attr->>val]and equal(Y,val)如果特性不屬于查詢輸出,則由于系統(tǒng)僅需要檢查存在至少一個該值,因此足夠具有X[attr->>val]謂詞。
6.2.11.其他謂詞盡管通過同X[attr->>val]的統(tǒng)一可以直接表達(dá)=-比較,但是這對于其他的謂詞是不可行的。這些將在內(nèi)建功能中處理。這里,有必要生成下面風(fēng)格的謂詞X[attr->>Y]and builtin(Y,val).
第一部分將全部值結(jié)合到Y(jié),隨后過濾那些滿足內(nèi)建(例如,greater、greaterorequal、contains、startswith等)的Y。
這確切地是具有等價(..)過濾器的用于=-比較的語義。另一語義可被定義為,例如測試是否存在滿足條件的值,并且如果存在至少一個該值,則返回全部值。這對于=-比較(X[attr->>val]and X[attr->>Y])是容易的。對于全部其他的謂詞,這將是更加復(fù)合的(EXISTS ZX[attr->>Z]and builtin(Z,val)and X[attr->>Y])。
6.2.12.完整示例下面是一個完整的查詢,其包含-關(guān)于待示出在結(jié)果中的特性的具有外部變量“var”的=-比較。
-關(guān)于未示出在結(jié)果中的特性的恒定的=-比較(“egon”)。
-列表值特性的投影。
-列表值對象/數(shù)據(jù)類型特性。
-投影中的列表值可選特性。
FORALL XRESULTVAR<-EXISTS EII_class2_0,EII_class1_op11_0,EII_class1_dp0nint_0,EII_MVN_0,EII_class1_LISTKEY_0.
EII_class1_LIST_0,EII_class1_dp11int_0,EII_MVN_2,EII_MVN_3,EII_MVN_4,EII_MVN_5unify(XRESULTVAR,result("http://test.ns"#class2,EII_class2_0,[property("http://test.ns"#op11,"http://test.ns"#class1,EII_class1_op11_0,[EII_class1_LIST_0,
property("http://test.ns"#dp11int,"http://www.w3.org/2001/XMLSchema"#integer,EII_class1_dp11int_0,[])])]))and(EII_class2_0:"http://test.ns"#class2@EII_MVN_5)and(EII_class2_0["http://test.ns"#op11->>
EII_class1_op11_0]@EII_MVN_4)and(((((not EXISTS EII_class1_dp0nint_1,EII_MVN_1EII_class1_op11_0["http://test.ns"#dp0nint->>EII_class1_dp0nint_1]@EII_MVN_1))and(equal(EII_class1_dp0nint_0,NULLVALUE))and(equa1(EII_MVN_0,NULLVALUE)))or(EII_class1_op11_0["http://test.ns"#dp0nint->>EII_class1_dp0nint_0]@EII_MVN_0)))and(unify(EII_class1_LISTKEY_0,ID(EII_class2_0,EII_class1_op11_0)))and(list(EII_class1_LISTKEY_0,property("http://test.ns"#dp0nint,"http://www.w3.org/2001/XMLSchema"#integer,EII_class1_dp0nint_0,[]),EII_class1_LIST_0))and(EII_class1_op11_0["http://test.ns"#dp11int->>EII_class1_dp11int_0]@EII_MVN_2)and (EII_class1_op11_0["http://test.ns"#dp11int->><parameterref=′var′/>]@EII_MVN_2)and(equal(EII_class1_dp11int_0,<parameterre ref=′var′/>))and(EII_class1_op11_0["http://test.ns"#dp11string->>"egon"]@EII_MVN_3).
orderedby XRESULTVAR6.3.web服務(wù)部署和執(zhí)行在完成查詢說明之后,可以使查詢暴露在web服務(wù)中。
在將查詢部署為web服務(wù)之前,系統(tǒng)須生成web服務(wù)描述,其由兩個部分組成。
-生成關(guān)于輸入?yún)?shù)的XML模式的描述因此,該生成處理解析內(nèi)部查詢描述數(shù)據(jù)結(jié)構(gòu),搜索外部變量,并且創(chuàng)建關(guān)于這些外部變量的元素描述。
-生成關(guān)于輸出文檔的描述因此,該生成處理解析內(nèi)部查詢描述數(shù)據(jù)結(jié)構(gòu),搜索輸出特性,并且創(chuàng)建關(guān)于數(shù)據(jù)類型特性和對象引用的元素描述。
Web服務(wù)描述生成和查詢生成是在相同的內(nèi)部數(shù)據(jù)結(jié)構(gòu)上完成的。重要的是使這兩個處理步驟保持同步。特別地,這保持了結(jié)果中的元素的順序。盡管web服務(wù)描述暗示了在XML模式序列中這些元素的順序和多重性,但是查詢生成須構(gòu)造F-Logic項,其將變換到匹配的XML文檔。
在接受web服務(wù)描述、查詢描述和輸入?yún)?shù)的通用架構(gòu)中實現(xiàn)web服務(wù)執(zhí)行。最后,web服務(wù)傳遞如web服務(wù)的WSDL中描述的查詢結(jié)果。
查詢描述是XML文檔,其包含濃縮有外部參數(shù)描述的所選查詢語言的查詢串。
Web服務(wù)架構(gòu)的職責(zé)在于,將查詢描述中的外部變量更換為實際的輸入值。Web服務(wù)將把結(jié)果查詢串發(fā)送到指定的推理引擎。
最后,如自推理引擎?zhèn)鬟f的結(jié)果F-Logic項結(jié)構(gòu)將變換為如下的XML結(jié)果文檔-該結(jié)果的根元素將是已被用作關(guān)于查詢生成的開始點(diǎn)的類別的局部名稱。
-待示出的每個數(shù)據(jù)類別型特性將被翻譯為具有特性名稱的XML元素。將不存在關(guān)于值的列表的元素嵌套。
-對于每個對象引用,將生成嵌套XML元素。通常,該元素接收對象引用的名稱。如果在查詢定義過程中相同的對象引用已被使用了多次,則該對象引用的名稱將被附加“_”加上順序編號。
-F-Logic查詢結(jié)果項可以包含指出了值或?qū)ο蟛淮嬖诘拇?。至XML的變換將跳過該條目,并且將不生成關(guān)于這些的任何XML元素。
可以返回得到的XML文檔,作為web服務(wù)調(diào)用結(jié)果。
6.4.查詢測試由于對于用戶而言,在測試web服務(wù)之前總是首先創(chuàng)建和部署該web服務(wù)是令人筋疲力盡的,因此系統(tǒng)提供了允許直接執(zhí)行指定查詢的功能。對話窗口詢問關(guān)于查詢將被發(fā)送到的服務(wù)器的細(xì)節(jié)。該對話窗口還詢問查詢參數(shù)的值。
如前面部分中已經(jīng)解釋的,得到的結(jié)果項將被變換為XML結(jié)構(gòu)。系統(tǒng)可以顯示得到的XML文檔。
7.推理本體,以及關(guān)于聲明規(guī)則的語言,可以是不同的。在本發(fā)明的一個示例性實現(xiàn)方案中,對象模型具有類型OWL,而F-Logic用作規(guī)則語言。未來OWL將被擴(kuò)展為包括用于定義規(guī)則的能力。
為了處理詢問,通過輸入web服務(wù)生成查詢命令。取決于查詢,在推理單元中處理一系列聲明規(guī)則。由于基于謂詞邏輯的聲明規(guī)則通常是聲明系統(tǒng),因此關(guān)于聲明規(guī)則的定義的順序是不重要的。
下面說明了推理單元評估規(guī)則以應(yīng)答查詢的方式。
關(guān)于F-Logic的最廣泛發(fā)布的推理方法是交互固定點(diǎn)過程[A.VanGelder,K.A.Ross,and J.S.Schlipf:″The well-founded semantics forgeneral logic programs″;Journal of the ACM,38(3)620-650,July 1991]。這是前向鏈接方法(參看下文),其計算關(guān)于規(guī)則集合的整體模型,即關(guān)于全部事實的整體模型,或者更精確地,關(guān)于真的和已知的事實的集合的整體模型。為了應(yīng)答查詢,(如果可能)必需計算整體模型,并且隨后得到用于應(yīng)答查詢的變量代換。
前向鏈接意味著將規(guī)則應(yīng)用于數(shù)據(jù),并且只要能夠推出新的數(shù)據(jù),就將規(guī)則應(yīng)用于所得到的數(shù)據(jù)??商鎿Q地,可以使用后向鏈接。后向鏈接意味著,評估把查詢當(dāng)作開始點(diǎn),并且尋找這樣的規(guī)則,即該規(guī)則在其頭部中具有同查詢實體的原子(atom)相匹配的適當(dāng)?shù)闹^詞。該過程持續(xù)地遞歸。后向鏈接還尋找具有適當(dāng)?shù)闹^詞符號的事實。
關(guān)于用于F-Logic表達(dá)Y[fatherIs->X]的謂詞的示例是father(X,Y),其意味著X是Y的父親,“father”是謂詞符號。F-Logic術(shù)語比謂詞邏輯更加直觀。然而,謂詞邏輯更適于計算。因此,在評估查詢之前,在內(nèi)部用謂詞邏輯重寫本體和查詢的F-Logic表達(dá)。
在優(yōu)選實施例中,推理引擎執(zhí)行前向和后向鏈接的混合體,以計算用于應(yīng)答查詢的(最小的可能的)模型的子集。在大多數(shù)情況中,這比簡單的前向或后向鏈接評估策略更加有效。
推理和評估算法針對被稱為系統(tǒng)圖的數(shù)據(jù)結(jié)構(gòu)工作(參看例如,圖3)。該圖表示規(guī)則集合及其依賴關(guān)系。規(guī)則的每個原子(即,頭部或主體,左手側(cè)或右手側(cè),或者體的一部分)被表示為圖的頂點(diǎn)。規(guī)則主體中的全部原子-其可以僅通過AND連接-通過連接或邊緣而連接到規(guī)則的頭部原子(報頭)。接下來,每個頭部原子通過相同的謂詞符號向上連接到全部主體原子。讓我們看如下示例/*rules*/FORALL X,Y r(X,Y)<-p(X,Y)AND r(Y,b).
FORALL X,Y r(X,Y)<-s(X,Y).
/*facts*/q(a).p(b,b).p(a,b).r(a,a).r(b,b).s(e,f).
/*query*/FORALL Y<-r(a,Y).
在圖3中說明了該示例。
使用系統(tǒng)圖的自底而上的評估可被視為從源(事實)到匯點(diǎn)(sink)(查詢)的沿圖的邊緣的數(shù)據(jù)流。
如果事實q(a1,...,an)(沿實心箭頭)從規(guī)則r的頭部原子流動到規(guī)則r′的主體原子q(b1,...,bn),則發(fā)生匹配操作。這意味著規(guī)則r′的主體原子須同規(guī)則r產(chǎn)生的事實相統(tǒng)一。關(guān)于主體原子的全部變量代換形成了關(guān)系的基數(shù),其被分配給主體原子。該關(guān)系的每個基數(shù)提供了關(guān)于主體原子中的每個變量的基項(無變量項)。為了評估規(guī)則,連結(jié)主體原子的全部關(guān)系,并且使用得到的關(guān)系產(chǎn)生關(guān)于頭部原子的新的事實的集合。這些事實再次地在系統(tǒng)圖中向上流動。
對于第一規(guī)則FORALL X,Y r(X,Y)<-p(X,Y)AND r(Y,b)存在4個可能的輸入組合,關(guān)于p(X,Y)的兩個事實,即p(b,b)和p(a,b)乘以關(guān)于r(Y,b)的兩個事實,即r(a,a)和r(b,b)。僅有事實r(b,b)匹配于規(guī)則中的r(Y,b),其導(dǎo)致了Y成為規(guī)則中的b。對于Y成為b,存在匹配于p(X,Y),即p(b,b)和p(a,b)的兩個可能的事實。因此,由左手側(cè)的第一規(guī)則可以得到兩個新的事實,即r(b,b)<-p(b,b)AND r(b,b),和r(a,b)<-p(a,b)AND r(b,b)。
在根據(jù)圖3的系統(tǒng)圖的右手側(cè),看到了應(yīng)用第二規(guī)則,事實s(e,f)導(dǎo)致了r(e,f)。然而,由于a不與e匹配,因此r(e,f)不能被代換到查詢FORALL Y<-r(a,Y)中。
僅有通過第一規(guī)則得到的事實r(a,b)同導(dǎo)致應(yīng)答Y=b的查詢匹配。
該評估策略對應(yīng)于自然(naive)評估[J.D.Ullman″Principles ofDatabase and Knowledge-Base Systems″;vol.I,Computer Sciences Press,Rockville,Maryland,1988],并且是用于上文提及的交互固定點(diǎn)過程的基礎(chǔ)。由于系統(tǒng)圖可以包含循環(huán)(在規(guī)則集合中的遞歸的情況中),將半自然(semi naive)評估[J.D.Ullman″Principles of Database andKnowledge-Base Systems″;vol.I,Computer Sciences Press,Rockville,Maryland,1988]應(yīng)用于優(yōu)選實施例中,以提高效率。
在圖4中示出了所提及的示例的改進(jìn)的自底而上的評估(前向鏈接)。在附于頂點(diǎn)的框中示出了流動到頂點(diǎn)的事實。
圖4例示了創(chuàng)建關(guān)于頂點(diǎn)的事實,盡管它們對于應(yīng)答所提出的查詢而言是無用的。例如,由于在查詢r(a,Y)中僅有等于常數(shù)a的變量X的實例是有關(guān)的,因此流動到主體頂點(diǎn)p(X,Y)(頂點(diǎn)2)的事實p(b,b)(頂點(diǎn)11)不能以任何方式對應(yīng)答作出貢獻(xiàn)。這樣,該無用的事實在隨后的評估中接下來產(chǎn)生了新的無用的事實。
優(yōu)選實施例的關(guān)鍵思想是通過將所謂的阻塞器附于圖的頭部-主體邊緣,盡可能早地使無用的事實流異常中止(abort)(即,盡可能地同圖的源接近)。該阻塞器由原子集合組成。如果阻塞器中存在與事實相匹配的原子,則阻塞器使該事實通過。
例如,頂點(diǎn)1和頂點(diǎn)2之間的阻塞器B1,2,B1,2={p(a,Y)}防止了事實p(b,b)流動到頂點(diǎn)2。此外,通過頂點(diǎn)7和頂點(diǎn)3之間的對應(yīng)的阻塞器B7,3(未示出),防止了關(guān)于頂點(diǎn)3的事實r(b,b)的創(chuàng)建。相似地,頂點(diǎn)4和頂點(diǎn)5之間的阻塞器B4,5={s(a,Y)}阻塞了系統(tǒng)圖的右手側(cè)上的事實的流動。
因此,盡管流過圖的事實量減少,但是對所提出的查詢r(a,Y)的應(yīng)答保持相同。
通過在圖中向下傳播查詢中的、規(guī)則中的或者已評估的事實中的常數(shù),創(chuàng)建系統(tǒng)圖邊緣處的阻塞器。例如,使用查詢r(a,Y)的第一變元(argument)位置處的常數(shù)a確定了阻塞器B1,2={p(a,Y)}。由于對于應(yīng)答而言,僅有包含′a′作為第一變元的頂點(diǎn)3處的事實是有用的,因此該阻塞器是有效的。因此第一規(guī)則中的變量X必需通過′a′例示,以便用于查詢。
在評估處理的過程中,以下面的方式創(chuàng)建系統(tǒng)圖的邊緣處的阻塞器。首先,查詢中的以及規(guī)則中的常數(shù)在圖中向下傳播。從查詢或者主體原子開始,它們傳播到連接到該原子的全部頭部原子。它們從頭部原子傳播到對應(yīng)規(guī)則的第一主體原子,并且從該處以相同的方式向下傳播。在常數(shù)的向下傳播中,它們產(chǎn)生了關(guān)于源處的阻塞器的新的阻塞器原子(atoms)。
可替換地,還可以在系統(tǒng)圖的上面的層中應(yīng)用阻塞器,但是這未導(dǎo)致性能的改善。因此,僅在圖源處應(yīng)用阻塞器。
盡管結(jié)合多個具體實施例描述和說明了本發(fā)明,但是本領(lǐng)域的技術(shù)人員應(yīng)認(rèn)識到,在不偏離如此處說明、描述和要求的本發(fā)明的原理的前提下,可以進(jìn)行變化和修改。在不偏離本發(fā)明的精神或本質(zhì)特征的前提下,本發(fā)明可以體現(xiàn)為其他的具體形式。所描述的實施例在任何意義上均應(yīng)被視為說明性的而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求指出,而非由前面的描述指出。全部涵蓋于權(quán)利要求的等同物的含義和范圍中的變化均包含在其范圍中。
參考XML數(shù)據(jù)源DB1數(shù)據(jù)源DB2數(shù)據(jù)源RPC遠(yuǎn)程過程調(diào)用并且代表web服務(wù)100源本體102源本體104源本體106源本體108集成本體V1外部視圖V2外部視圖V3外部視圖WS1 web服務(wù)WS2 web服務(wù)WS3 web服務(wù)110運(yùn)行時間單元引用參考US 2004/0216030 A1US 2004/0093559 A1US 2004/0093344 A1US 2003/0179228 A1US 2003/0177481 A1US 2003/0163597 A1US 2003/0163450 A1US 2003/0120665 A1US 2003/0101170 A1J.Angele,G.Lausen″Ontologies in F-Logic″in S.Staab,R.Studer(Eds.)Handbook on Ontologies in Information Sys-tems.InternationalHandbooks on Information Systems,Springer,2003,page 29 ff..
A.Van Gelder,K.A.Ross,and J.S.Schlipf″The well-foundedsemantics for general logic programs″;Journal of the ACM,38(3)620-650,July 1991.
J.D.Ullman″Principles of Database and Knowledge-BaseSys-tems″;vol.I,Computer Sciences Press,Rockville,Maryland,1988.
附錄A//Ontology generated by OntoEdit<oxml:ontologyxmlns:xs="http://www.w3.org/2001/XMLSchema#"xmlns:b="http://mynamespace.org#"xmlns:oxml="http://schema.ontoprise.com/oxml/core/2.1#"xmlns:a="http://mymodule.org#"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://schema.ontoprise.com/oxml/core/2.1#oxml2.1.xsd"id="http://mymodule.org#"><oxml:conceptid="http://mynamespace.org#MYADABASFILENAME"/><oxml:relation id="http://mynamespace.org#A1"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#sthng"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#UM"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#U4"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#U1"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#PM"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#P4"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#P1"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#G8"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#G4"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#F4"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#F2"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#B4"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#B1"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#number"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#AM"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#string"minCard="1.0"maxCard="1.0"/><oxml:relation id="http://mynamespace.org#A4"domain="http://mynamespace.org#MYADABASFILENAME"range="http://www.w3.org/2001/XMLSchema#string"minCard="1.0"maxCard="1.0"/><oxml:axiom id="http://mynamespace.org#dbrule">
<oxml:text language="flogic">RULE"http://mynamespace.org"#dbrule@"http://mymodule.org"#"":FORALLVAR0,VAR1,VAR2,VAR3,VAR4,VAR5,VAR6,VAR7,VAR8,VAR9,VAR10,VAR11,VAR12,VAR13,VAR14,VAR15(c("http://mynamespace.org"#MYADABASFILENAME,VAR0):"http://mynamespace.org"#MYADABASFILENAME["http://mynamespace.org"#A1->>VAR1;"http://mynamespace.org"#A4->>VAR2;"http://mynamespace.org"#AM->>VAR3;"http://mynamespace.org"#B1->>VAR4;"http://mynamespace.org"#B4->>VAR5;"http://mynamespace.org"#F2->>VAR6;"http://mynamespace.org"#F4->>VAR7;"http://mynamespace.org"#G4->>VAR8;"http://mynamespace.org"#G8->>VAR9;"http://mynamespace.org"#P1->>VAR10;"http://mynamespaceorg"#P4->>VAR11;"http://mynamespace.org"#PM->>VAR12;"http://mynamespace.org"#U1->>VAR13;"http://mynamespace.org"#U4->>VAR14;"http://mynamespace.org"#UM->>VAR15])<-(adaaccess("62",F(VAR0,"A1",VAR1,"A4",VAR2,"AM",VAR3,"B1",VAR4,"B4",VAR5,"F2",VAR6,"F4",VAR7,"G4",VAR8,"G8",VAR9,"P1",VAR10,"P4",VAR11,"PM",VAR12,"U1",VAR13,"U4",VAR14,"UM",VAR15),"218")).</oxml:text></oxml:axiom></oxml:ontology>
權(quán)利要求
1.一種系統(tǒng),用于與不同數(shù)據(jù)模式相符合的分布式數(shù)據(jù)源的統(tǒng)一查詢,包括a)多個數(shù)據(jù)源,每個該數(shù)據(jù)源與給定的數(shù)據(jù)模式相符合,a1)每個數(shù)據(jù)模式具有用于組織數(shù)據(jù)的構(gòu)造,并且a2)每個數(shù)據(jù)模式具有與之關(guān)聯(lián)的數(shù)據(jù)模式查詢語言;b)多個源本體(100、102、104、106),每個源本體對應(yīng)于一個數(shù)據(jù)源,b1)由此每個源本體包括構(gòu)造組,c)每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射c1)其中該數(shù)據(jù)源的該數(shù)據(jù)模式的構(gòu)造被映射到該源本體的構(gòu)造,并且c2)其中該映射包括裝置,用于通過該數(shù)據(jù)源的該數(shù)據(jù)模式查詢語言查詢該數(shù)據(jù)源,并且c3)其中使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射d)集成本體(108),d1)由此該集成本體包括構(gòu)造組,e)每個源本體和該集成本體之間的映射e1)其中該源本體的構(gòu)造被映射到該集成本體的構(gòu)造,并且e2)其中使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)該源本體和該集成本體之間的該映射;f)查詢裝置,用于輸入與該數(shù)據(jù)源的該數(shù)據(jù)相關(guān)的查詢;和g)至少一個基于謂詞邏輯的推理單元(110),用于在該規(guī)則的幫助下評估該查詢。
2.權(quán)利要求1的系統(tǒng),包括裝置,用于自動生成對應(yīng)于數(shù)據(jù)源及其數(shù)據(jù)模式的源本體(100、102、104、106)。
3.權(quán)利要求1的系統(tǒng),包括裝置,用于自動生成源本體及其對應(yīng)的數(shù)據(jù)源之間的映射。
4.權(quán)利要求1的系統(tǒng),包括裝置,用于在查詢評估過程中,使推理單元(110)能夠動態(tài)地訪問該規(guī)則和該本體結(jié)構(gòu)。
5.權(quán)利要求1的系統(tǒng),由此該集成本體具有與之關(guān)聯(lián)的本體查詢語言;并且該系統(tǒng)包括裝置,用于將該查詢翻譯為該集成本體的該本體查詢語言。
6.權(quán)利要求1的系統(tǒng),其特征在于由基于謂詞邏輯的規(guī)則聲明系統(tǒng)補(bǔ)充至少一個該本體,用于表達(dá)額外的信息。
7.權(quán)利要求1的系統(tǒng),其特征在于該查詢裝置包括至少一個查詢單元,其具有web服務(wù)的形式,用于輸入與該數(shù)據(jù)源的該數(shù)據(jù)相關(guān)的查詢。
8.權(quán)利要求1的系統(tǒng),包括裝置,用于識別查詢、或者規(guī)則、或規(guī)則組合,該查詢或者規(guī)則或規(guī)則組合能夠組合成該數(shù)據(jù)源的該數(shù)據(jù)模式查詢語言下的復(fù)合查詢,以及裝置,用于將這些查詢、或者規(guī)則、或規(guī)則組合翻譯為該數(shù)據(jù)源的該數(shù)據(jù)模式查詢語言下的復(fù)合查詢。
9.權(quán)利要求1的系統(tǒng),包括裝置,用于動態(tài)地過濾對在web服務(wù)層面上提出的該查詢的應(yīng)答沒有影響的那些數(shù)據(jù)、或者規(guī)則、或者查詢。
10.權(quán)利要求1的系統(tǒng),包括多個集成本體,其集成不同的數(shù)據(jù)源或者集成相同的數(shù)據(jù)源,并且每個該集成本體表示關(guān)于數(shù)據(jù)的不同視圖。
11.一種方法,用于與不同數(shù)據(jù)模式相符合的分布式數(shù)據(jù)源的統(tǒng)一查詢,包括以下步驟a)選擇多個數(shù)據(jù)源,每個該數(shù)據(jù)源與給定的數(shù)據(jù)模式相符合,a1)每個數(shù)據(jù)模式具有用于組織數(shù)據(jù)的構(gòu)造,并且a2)每個數(shù)據(jù)模式具有與之關(guān)聯(lián)的數(shù)據(jù)模式查詢語言;b)創(chuàng)建多個源本體(100、102、104、106),每個該源本體對應(yīng)于一個數(shù)據(jù)源,b1)由此每個源本體包括構(gòu)造組,c)定義每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射c1)其中該數(shù)據(jù)源的該數(shù)據(jù)模式的構(gòu)造被映射到該源本體的構(gòu)造,并且c2)其中該映射包括裝置,用于通過該數(shù)據(jù)源的該數(shù)據(jù)模式查詢語言查詢該數(shù)據(jù)源,并且c3)其中使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)每個數(shù)據(jù)源及其對應(yīng)的源本體之間的映射d)定義集成本體(108),d1)由此該集成本體包括構(gòu)造組,e)定義每個源本體和該集成本體之間的映射e1)其中該源本體的構(gòu)造被映射到該集成本體的構(gòu)造,并且e2)其中使用基于謂詞邏輯的規(guī)則聲明系統(tǒng)實現(xiàn)該源本體和該集成本體之間的該映射;f)輸入與該數(shù)據(jù)源的該數(shù)據(jù)相關(guān)的查詢;和g)使用至少一個基于謂詞邏輯的推理單元(110),在該規(guī)則的幫助下評估該查詢。
12.一種計算機(jī)可裝載的數(shù)據(jù)結(jié)構(gòu),其適于執(zhí)行根據(jù)所述方法權(quán)利要求的所述方法,并且該數(shù)據(jù)結(jié)構(gòu)是在計算機(jī)上執(zhí)行。
13.一種計算機(jī)程序,其中該計算機(jī)程序適于執(zhí)行根據(jù)所述方法權(quán)利要求的所述方法,并且該計算機(jī)程序是在計算機(jī)上執(zhí)行。
14.一種計算機(jī)程序,其包括程序裝置,用于執(zhí)行根據(jù)所述方法權(quán)利要求的所述方法,并且該計算機(jī)程序是在計算機(jī)上或者在計算機(jī)網(wǎng)絡(luò)上執(zhí)行。
15.計算機(jī)程序,其包括根據(jù)所述方法權(quán)利要求的程序裝置,其中該程序裝置存儲在計算機(jī)可讀存儲介質(zhì)上。
16.一種存儲介質(zhì),其中數(shù)據(jù)結(jié)構(gòu)存儲在該存儲介質(zhì)上,并且其中該數(shù)據(jù)結(jié)構(gòu)適于在被裝載到計算機(jī)或計算機(jī)網(wǎng)絡(luò)的主存儲器和/或工作存儲器中之后,執(zhí)行根據(jù)所述方法權(quán)利要求的所述方法。
17.計算機(jī)程序產(chǎn)品,其具有程序代碼裝置,其中該程序代碼裝置可以存儲并且存儲在存儲介質(zhì)上,如果在計算機(jī)或計算機(jī)網(wǎng)絡(luò)上執(zhí)行該程序代碼裝置,則其執(zhí)行根據(jù)所述方法權(quán)利要求的所述方法。
18.操作系統(tǒng)、其上存儲了多個計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì)、協(xié)同處理設(shè)備、計算設(shè)備中的至少一個,并且所調(diào)制的數(shù)據(jù)信號承載計算機(jī)可執(zhí)行指令,用于執(zhí)行根據(jù)所述方法權(quán)利要求的所述方法。
全文摘要
描述了一種用于企業(yè)信息集成的系統(tǒng)。該系統(tǒng)基于不同的層數(shù)據(jù)源;源本體,其對應(yīng)于數(shù)據(jù)源的數(shù)據(jù)模式;集成本體,其集成了不同的源本體;查詢輸入的層面,其優(yōu)選地具有web服務(wù)的形式。在層面之間,使用映射規(guī)則。這些映射規(guī)則和整體系統(tǒng)是基于謂詞邏輯。使用基于謂詞邏輯的推理,在規(guī)則的幫助下,應(yīng)答查詢。
文檔編號G06F17/30GK1811772SQ20061000626
公開日2006年8月2日 申請日期2006年1月25日 優(yōu)先權(quán)日2005年1月25日
發(fā)明者于爾根·安格勒, 于爾根·哈巴特, 哈拉爾德·舍寧, 韋爾特·沃特菲爾德, 凱·溫克勒, 比約恩·布勞爾 申請人:翁托普里塞有限公司, 軟件公開股份有限公司