欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于對依存關(guān)系所給出的映射關(guān)系進行合成的系統(tǒng)和方法

文檔序號:6650905閱讀:612來源:國知局
專利名稱:用于對依存關(guān)系所給出的映射關(guān)系進行合成的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明涉及在數(shù)據(jù)庫模式之間構(gòu)造映射關(guān)系的系統(tǒng)和方法,其中所述映射是從若干現(xiàn)有映射合成的。
背景技術(shù)
諸如因特網(wǎng)等全球通信網(wǎng)絡的出現(xiàn)方便人們訪問大量的數(shù)據(jù)。世界充斥著各種信息源,在許多情況中,數(shù)據(jù)在不同數(shù)據(jù)源之間被以不同形式表示。如今在有線和無線領(lǐng)域中盛行的自由信息流要求在存儲和解釋數(shù)據(jù)以供使用的范圍內(nèi)源和目的是兼容的。如今公司和個人所面對的一個主要問題是存在于一種模型/模式的數(shù)據(jù)需要經(jīng)由另一種不同的模型/模式被訪問。但是,此類過程被很大程度上異類的并且不停改變的模型/模式集合所牽制。在數(shù)據(jù)倉庫式處理中可找到這樣一個例子,其中從許多不同的源接收數(shù)據(jù),用于存儲和從其它各種源進行快速訪問。將數(shù)據(jù)從一種模型轉(zhuǎn)換為另一種模型不僅耗費時間而且是占有大量資源的,但卻伴隨著各種轉(zhuǎn)換問題。
模式映射關(guān)系指定異類數(shù)據(jù)庫源之間的關(guān)系,并被用于支持數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)交換、模式進化、約束檢查、以及其它任務。映射關(guān)系合成是一種操作,它取模式A、B、C之間的兩個映射關(guān)系mapAB和mapBC作為輸入,并產(chǎn)生由合成的映射關(guān)系mapAB和mapBC所給出的、指定A和C之間同一組約束的單個映射關(guān)系mapAC。
為說明映射關(guān)系合成的用途,考慮以下模式進化情形。假定S1、S2、S3、S4是一個產(chǎn)品逐次發(fā)布中使用的模式的版本。映射關(guān)系map12用來將數(shù)據(jù)從模式S1的格式轉(zhuǎn)移到模式S2的格式。類似地,映射關(guān)系map23用來將數(shù)據(jù)從模式S2的格式轉(zhuǎn)移到模式S3的格式,最后,映射關(guān)系map34用來將數(shù)據(jù)從模式S3的格式轉(zhuǎn)移到模式S4的格式。將數(shù)據(jù)從版本S1的格式轉(zhuǎn)移到版本S4的常規(guī)方法是通過依此執(zhí)行map12、map23、map34,這是耗費時間并且成本高昂的。為了將數(shù)據(jù)從S1單步轉(zhuǎn)移到S4,則需要映射關(guān)系合成。映射關(guān)系map14可通過首先合成map12和map23,然后與map34合成最終映射關(guān)系。
現(xiàn)在假定V1是S1上所定義的視圖,且map1V1是一個函數(shù)。為將視圖V1從S1轉(zhuǎn)移到S2,再次使用合成。將映射關(guān)系map12的逆與map1V1合成以獲得從S2到V1的映射關(guān)系map2V1。
對于每個映射關(guān)系都是一個函數(shù)(即,將一個數(shù)據(jù)庫狀態(tài)精確映射到另一數(shù)據(jù)庫狀態(tài),且兩個映射關(guān)系都具有相同的方向性)的情況而言,用于進行映射關(guān)系合成的各種算法是公知的。但是,對于適用于其中兩個映射關(guān)系之一或兩者都不是函數(shù)的一類較寬泛的映射關(guān)系的算法仍有極大的未被滿足的需求。

發(fā)明內(nèi)容
以下給出本發(fā)明的簡化的概述,以提供對本發(fā)明的一些方面的基本理解。此概述不是本發(fā)明的詳盡綜覽。它不試圖標識本發(fā)明的關(guān)鍵性/決定性元素,或界定本發(fā)明的范圍。它唯一的目的是以簡化形式給出本發(fā)明的一些概念,作為對稍后給出的更詳細的描述的序言。
本發(fā)明是適用于合成一類較寬泛的映射關(guān)系的一種普遍算法,其中兩個映射關(guān)系之一或者兩者都不是函數(shù),而是諸如兩種模式之間的約束和函數(shù)之逆等。這允許通過合成兩個現(xiàn)有映射關(guān)系,來從其構(gòu)造兩個數(shù)據(jù)庫模式之間的映射關(guān)系。此用于合成的算法包括測試該合成算法是否將終止的程序。
在本文中所揭示和要求保護的本發(fā)明的一個方面包括一種便于對模式映射關(guān)系進行合成的系統(tǒng)。合成組件對若干異類數(shù)據(jù)源的現(xiàn)有模式映射關(guān)系進行合成,這些模式映射關(guān)系可由完全、嵌入、和二階依存關(guān)系中的至少一種來表達,其中二階依存關(guān)系無須是源到目標的形式。
在本發(fā)明的另一個方面,提供一種方法,用于通過以下動作來提供兩種模式映射關(guān)系的合成將由嵌入依存關(guān)系表達的模式映射關(guān)系斯柯倫化(Skolemize)以獲得由二階依存關(guān)系表達的模式映射關(guān)系;計算輸入和輸出簽名上所有約束的有窮公理,該公理可從給出這些模式映射關(guān)系的約束來推導;以及將有窮公理解除斯柯倫化(de-Skolemize)以獲得由嵌入依存關(guān)系表達的模式映射關(guān)系。
在本發(fā)明的又一個方面,提供一種方法,其中將有窮公理去斯柯倫化的動作還包括通過以下動作來將斯柯倫(Skolem)函數(shù)解嵌套以生成結(jié)論檢查結(jié)論中的所有變量是否都出現(xiàn)在斯柯倫函數(shù)的變量依存關(guān)系集合中;生成可通過統(tǒng)一在結(jié)論中出現(xiàn)的斯柯倫函數(shù)獲得的所有可能的子句;以及通過用新的存在變量代換每個斯柯倫項將每個子句單獨去斯柯倫化。
為實現(xiàn)前述及有關(guān)目的,本文中結(jié)合以下描述和附圖描述本發(fā)明的某些示例性方面。但是,這些方面僅僅示意可使用本發(fā)明原理的各種方法中的若干種,并且本發(fā)明旨在包括所有這些方面及其等效技術(shù)方案。當結(jié)合附圖考慮時,從以下對本發(fā)明的詳細描述,本發(fā)明的其它優(yōu)點和新穎特征將變得顯而易見。


圖1示出根據(jù)本發(fā)明通過合成數(shù)據(jù)庫模式之間兩個現(xiàn)有映射關(guān)系來構(gòu)造結(jié)果映射關(guān)系的示意圖。
圖2示出根據(jù)本發(fā)明給出的邏輯約束映射關(guān)系合成的示意圖。
圖3示出根據(jù)本發(fā)明的一種合成依存關(guān)系的方法。
圖4示出根據(jù)本發(fā)明的一種合成方法,該方法強加條件并使用檢查來確定合成是否終止于正確的答案。
圖5示出根據(jù)本發(fā)明一種方法,該方法執(zhí)行對有窮公理進行解除斯柯倫化以獲得嵌入依存關(guān)系。
圖6示出根據(jù)本發(fā)明的三個以上數(shù)據(jù)源模式上的多重合成的示意圖。
圖7示出根據(jù)本發(fā)明可通過使用算法的單次調(diào)用來執(zhí)行的多重映射關(guān)系的合成,以獲得輸出映射關(guān)系。
圖8示出根據(jù)本發(fā)明的一種用于解除斯柯倫化的方法。
圖9示出可用于執(zhí)行所揭示體系結(jié)構(gòu)的計算機的框圖。
圖10示出根據(jù)本發(fā)明的一種示例性計算環(huán)境的示意性框圖。
具體實施例方式
現(xiàn)在參考附圖描述本發(fā)明,貫穿所有附圖使用相同的標號來指相同的元素。在以下描述中,為解釋目的,闡述許多具體細節(jié)以提供對本發(fā)明的詳盡理解。但是,顯然無需這些具體細節(jié)也可實施本發(fā)明。在其它實例中,公知的結(jié)構(gòu)和設備以框圖形式示出以便于描述本發(fā)明。
如本申請中所使用,術(shù)語“組件”和“系統(tǒng)”意指計算機有關(guān)的實體,無論是硬件、硬件和軟件的結(jié)合、軟件、或執(zhí)行中的軟件。例如組件可以是,但不限于,處理器上運行的進程、處理器、對象、可執(zhí)行代碼、執(zhí)行的線程、程序、和/或計算機。作為示例,服務器上運行的應用程序和該服務器都可以是組件。一個或多個組件可駐留在進程和/或執(zhí)行線程的內(nèi)部,且一個組件可局限在一個計算機上和/或分布在兩個或多個計算機之間。
映射關(guān)系的合成
本發(fā)明是一種適用于對一類較寬泛的映射關(guān)系進行合成的普遍算法,其中兩個映射關(guān)系之一或兩者都不是函數(shù),而是諸如兩種模式之間的約束(諸如map12、map23、map34等)和函數(shù)之逆(諸如map12的逆等)等。
圖1示出根據(jù)本發(fā)明通過合成數(shù)據(jù)庫模式(未示出)之間兩個現(xiàn)有映射關(guān)系(104和106)來構(gòu)造結(jié)果映射關(guān)系102的示意圖100。提供第一模式映射關(guān)系104(記為模式映射關(guān)系12),它可以是函數(shù)或非函數(shù)。類似地,提供第二模式映射關(guān)系106(記為模式映射關(guān)系23),它可以是函數(shù)或非函數(shù)。對于每個映射關(guān)系都是函數(shù)的情形而言,用于映射關(guān)系合成的各種算法是公知的。因此,本發(fā)明僅解決兩個映射關(guān)系模式(104和106)之一或兩者是非函數(shù)的實例。
如虛線所示,解決以下情形當?shù)谝荒J接成潢P(guān)系104是函數(shù),第二模式映射關(guān)系106是非函數(shù)的時候;當?shù)谝荒J接成潢P(guān)系104是非函數(shù),第二模式映射關(guān)系106是函數(shù)的時候;以及,當?shù)谝荒J接成潢P(guān)系104是非函數(shù),第二模式映射關(guān)系106是非函數(shù)的時候。使用合成算法組件108來合成模式映射關(guān)系(104和106),以生成結(jié)果映射關(guān)系102(記為模式映射關(guān)系13)。合成組件108使用一種推論程序來獲得所有需要在合成映射關(guān)系中出現(xiàn)的約束的有窮公理。這在下文詳細描述。
在這三種非函數(shù)映射關(guān)系的任何一種中,映射關(guān)系可由邏輯約束或子句來表示。圖2示出根據(jù)本發(fā)明的邏輯約束映射關(guān)系合成的示意圖。圖中提供三種數(shù)據(jù)庫模式202(記為S1、S2和S3),從這三種模式可推導出第一和第二模式映射關(guān)系(204和206)(分別記為映射關(guān)系12和映射關(guān)系23)。
合成組件208(類似于組件108)便于將兩個模式映射關(guān)系(204和206)合成為結(jié)果模式映射關(guān)系210(記為映射關(guān)系13)。所考慮的約束語言包括完全依存關(guān)系(CQ0=映射關(guān)系)、嵌入依存關(guān)系(CQ=映射關(guān)系)、或二階依存關(guān)系(SOCQ=映射關(guān)系,也稱為二階元組生成依存關(guān)系)。因此,第一和第二映射關(guān)系(204和206)中的每一個都可包括完全、嵌入和/或二階依存關(guān)系的約束。給定兩個不一定是函數(shù)的有窮CQ0=、CQ=或SOCQ=映射關(guān)系map12和map23,難題是找到指定map12和map23合成的結(jié)果映射關(guān)系210的CQ0=、CQ=或SOCQ=映射關(guān)系。
現(xiàn)在參考圖3,圖中示出根據(jù)本發(fā)明的一種合成依存關(guān)系的方法。盡管出于解釋簡單的目的,本文中例如以流程圖的形式示出的一種或多種方法是作為一系列動作來示出和描述的,但是要理解并意識到,本發(fā)明不受動作順序的限制,因為根據(jù)本發(fā)明,一些動作可按不同次序發(fā)生和/或與本文中所示出和描述的其它動作同時發(fā)生。例如,本領(lǐng)域技術(shù)人員將理解并意識到,一個方法可被替換地表示為諸如狀態(tài)圖中的一系列相互關(guān)聯(lián)的狀態(tài)或事件。此外,不是所有示出的動作都是實現(xiàn)根據(jù)本發(fā)明的方法所必須的。
合成以三個步驟來計算將CQ0=映射關(guān)系斯柯倫化以取得二階依存關(guān)系(SOCQ=)映射關(guān)系。斯柯倫化是從公式中移除存在量詞的一種方法。接下來,找到輸入和輸出簽名上的所有約束的有窮公理,該有窮公理可從給出映射關(guān)系的約束推導出來。最后,將有窮公理解除斯柯倫化以取得CQ=映射關(guān)系。據(jù)此,提供一種方法,以使在300,嵌入的依存關(guān)系被斯柯倫化以獲得二階依存關(guān)系。在302,輸入和輸出簽名上的所有約束的有窮公理被找到。該公理可從給出映射關(guān)系的約束推導出來。在304,有窮公理被解除斯柯倫化以獲得嵌入依存關(guān)系。
在CQ0=映射關(guān)系和SOCQ=映射關(guān)系的實例中,僅圖3的動作302適用。據(jù)此,圖4示出根據(jù)本發(fā)明的一種合成方法,該方法強加條件并使用檢查來確定合成是否終止于正確的答案。在400,運行“合成”算法。以下算法“合成”假定,輸入映射關(guān)系map12由模式S1和S2之間的有窮組CQ0=依存關(guān)系∑12指定,輸入映射關(guān)系map23由模式S2和S3之間的∑23指定,而輸出映射關(guān)系map13由模式S1和S3之間的∑13給出。(用于CQ0=和SOCQ=映射關(guān)系的這一基本算法的概括在下文給出)。算法合成(∑12,∑23)
設∑=∑12∪∑23
重復
設∑′=
對于∑中的每一對子句,ψ
如果存在,ψ的σ2-消解式xi
并且∑中沒有xi的變體
則設∑′=∑′∪{xi}
設∑=∑∪∑′
直至∑′=
返回∑13=∑中僅引用S1,S3的符號的約束
當“合成”終止時,證明該算法給出正確答案。但是,“合成”可能不終止。在402,強加條件來檢查該算法的終止。以下條件可被包括,來測試算法“合成”終止的充分性。如在404所示,通過運行合成(∑12,∑23)的k-1次迭代,然后檢查∑中是否出現(xiàn)(z),R(y)→R(x)形式的約束,可在多項式時間檢查這些條件,其中k是S2中關(guān)系符號的個數(shù)
(1)(z)是S1∪S3上原子的“邏輯乘”;
(2){x}不是{y}的子集;并且
(3)R是S2中的關(guān)系符號。
在406,一旦滿足了這些條件,合成算法即帶著正確答案終止。
為了獲得嵌入依存關(guān)系,如圖3的動作304(步驟3)所示,提供一種給出正確結(jié)果的算法。據(jù)此,圖5示出根據(jù)本發(fā)明的一種方法,該方法對有窮公理進行解除斯柯倫化以獲得嵌入依存關(guān)系。在500,使用“等同”對斯柯倫函數(shù)進行解嵌套來得出結(jié)論。在502,進行檢查以確保結(jié)論中的所有變量都在每個斯柯倫函數(shù)的變量依存關(guān)系集合中出現(xiàn)。在504,如果結(jié)論中的所有變量都在變量依存關(guān)系中出現(xiàn),則流程流向506,生成可通過統(tǒng)一結(jié)論中出現(xiàn)的斯柯倫函數(shù)獲得的所有可能的子句。在508,通過用新的存在變量代換每個斯柯倫項將每個子句單獨去斯柯倫化。但是,在504,如果不是所有的變量都出現(xiàn),則流程流向510,斯柯倫化失敗,進程結(jié)束。
圖6示出根據(jù)本發(fā)明的三個以上數(shù)據(jù)源模式602上的多重合成的示意圖600。每對數(shù)據(jù)源模式602(記為S1、S2、S3、……、SN)都與一個一階模式映射關(guān)系604(記為M12、M23、……M(N-1)(N))相關(guān)聯(lián)。每對一階模式映射關(guān)系604進而由合成組件(記為CN)合成。即,使用第一合成組件606(記為C1)合成第一對一階模式映射關(guān)系(M12和M23)以生成結(jié)果二階模式映射關(guān)系M13。然后使用一不同的合成組件C2(或相同合成組件C1)將結(jié)果二階模式映射關(guān)系M13與下一個一階模式映射關(guān)系M34合成。該過程繼續(xù)直至沒有其它一階模式映射關(guān)系604可用來合成,并在輸出處生成結(jié)果模式映射關(guān)系M1N。
替換地,或者作為對圖6的算法的補充,圖7示出便于通過使用算法的單次調(diào)用來執(zhí)行的多重映射關(guān)系的合成以獲得輸出映射關(guān)系M1N的系統(tǒng)700。此處,合成組件704接收多個一階模式映射關(guān)系702(記為M12、M23、……M(N-1)(N))的輸入,處理這些映射關(guān)系702,并在輸出處一次性生成結(jié)果模式映射關(guān)系M1N。
以此方式,下文所考慮的所有算法及其變體可適用于多重映射關(guān)系。具體而言,圖6中給出的算法可被擴展成圖7的算法,并且如下所示,甚至在圖6的逐步程序失敗時,仍能產(chǎn)生正確的合成并終止。
算法合成(∑12,∑23,...,∑(n-1)n)
設∑=∑12∪∑23∪...∪∑(n-1)n
重復
設∑′=
對于∑中的每一對子句,ψ
如果存在,ψ的σ2-消解式xi其中2≤k<n
并且∑中沒有xi的變體
則設∑′=∑′∪{xi}
設∑=∑∪∑′
直至∑′=
返回∑13=∑中僅引用S1,Sn的符號的約束
合成和非函數(shù)映射關(guān)系的分析
術(shù)語“映射關(guān)系”已在數(shù)據(jù)庫文獻中確立,它指諸如數(shù)據(jù)庫狀態(tài)或XML文檔等實例上的二元關(guān)系。一種稱為模型管理、用于管理映射關(guān)系的一般框架研究映射關(guān)系上,以及稱為摸型的實例集合上的一般算子。在這些算子之間,有諸如域、范圍、合成、求逆等基本算子。
如果映射關(guān)系是函數(shù),則稱其為函數(shù)性的。非函數(shù)性的映射關(guān)系在許多上下文中出現(xiàn),特別是在數(shù)據(jù)集成和數(shù)據(jù)交換中。有許多非函數(shù)性映射關(guān)系的自然源。例如,非單射的函數(shù)性映射關(guān)系的逆是非函數(shù)性的映射關(guān)系。
對約束所給出的映射關(guān)系和模型,特別是嵌入依存關(guān)系所給出的、以及完全依存關(guān)系所給出的映射關(guān)系的開發(fā)在本領(lǐng)域中引起了極大關(guān)注。這些映射關(guān)系分別被稱為CQ=-映射關(guān)系和CQ0=-映射關(guān)系,因為它們是由具有等同的邏輯乘查詢(CQ=)的蘊含和具有等同、但沒有存在量化的邏輯乘查詢(CQ0=)的蘊含給出的。類似地,由嵌入依存關(guān)系和完全依存關(guān)系給出的模型分別稱為CQ=-模型和CQ0=-模型的。
對于關(guān)系型設置中的基本算子,考察若干基本問題。令Λ為模型和映射關(guān)系所用的語言。給定算子O以及Λ-模型和Λ-映射關(guān)系作為輸入(1)輸出總是Λ-模型或Δ-映射嗎?(即,Λ在O下是閉合的);(2)如果不是,則有決策程序來確定何時輸出是Δ-模型或Λ-映射?;以及(3)在輸出是Δ-模型或Δ-映射的情形中,找到輸出的表達式的困難程度如何?
此描述至少解決Δ是CQ0=、CQ=或SOCQ=時的情形。對于許多算子(例如,恒等、交、和笛卡爾積)而言,可以看到(1)的答案為‘是’,并且(3)的答案為‘非常簡單’(見下文命題3)。對于一些其它算子(例如,范圍、域、和合成)而言,可示出(1)和(2)的答案為‘否’。此外,引入CQ0=、CQ=和SOCQ=的大子類,對其而言,(1)的答案為‘是’,(3)的答案為‘簡單’。
可以看出,域、范圍和合成是密切相關(guān)的,并且可相互歸約(見以下命題4)。因此,研究合成和求逆就足夠了。如果對定義映射關(guān)系的語言設置對稱約束則后者是很簡單的。另一方面,合成證明是很困難的。
本領(lǐng)域中已經(jīng)研究了映射關(guān)系的合成。在一項研究中,引入一類源到目標二階元組生成依存關(guān)系(ST SO tgds),并顯示ST SO tgds所給出的映射關(guān)系類在合成下是閉合的。此外,找到若干示例,示出若干較小的映射關(guān)系類在合成下不是閉合的實例。特別地,可顯示甚至在進一步限制于源到目標依存關(guān)系時,CQ=映射關(guān)系在合成下也不是閉合的。
本發(fā)明在若干方向擴展了現(xiàn)有技術(shù)的成果。本文中,SO tgds給出的映射關(guān)系稱為SOCQ=-映射關(guān)系。注意,斯柯倫化的CQ=-映射關(guān)系給出SOCQ=-映射關(guān)系。因此,解決了三大類映射關(guān)系的合成,其中每一類都恰當?shù)匕惹暗念?br> 1.CQ0=-映射關(guān)系(完全依存關(guān)系)
2.CQ=-映射關(guān)系(嵌入依存關(guān)系)
3.SOCQ=-映射關(guān)系(SO tgds)
所關(guān)注的一種情形是嵌入依存關(guān)系(CQ=-映射關(guān)系)的情況。計算此類模式映射關(guān)系的合成的一種方法,如上文在圖3中所引用,是(1)將CQ=-映射關(guān)系斯柯倫化以取得SOCQ=-映射關(guān)系,(2)找到輸入和輸出簽名上的所有約束的有窮公理,該公理可從給出這些映射關(guān)系的約束推導出來,以及最后(3)將有窮公理解除斯柯倫化以取得CQ=-映射關(guān)系。困難來自步驟2和3。
本發(fā)明擴展為在求逆下獲得閉合所考慮的語言約束,在源到目標的約束的情形中,求逆下不能獲得閉合,因為源到目標的約束的逆是目標到源的約束。
提供CQ0=、CQ=和SOCQ=的子類,它們在合成和求逆下是閉合的,并且理想情況下包括從CQ0=和CQ=查詢引起的約束,已知它們在合成下是閉合的。
希望具有可廣泛適用的、多項式時間可檢查的、充分的條件,以使兩個CQ0=-映射關(guān)系(CQ=、SOCQ=)的合成成為CQ0=-映射關(guān)系(CQ=、SOCQ=)。此外,較佳的是知道是否有可計算的必要性和充分的條件,或問題是否是不可判定的。
概括本文中所提供的一些方面,示出CQ0=-映射關(guān)系在合成下不是閉合的。確定兩個CQ0=-映射關(guān)系的合成是否是CQ0=-映射關(guān)系的問題示出是不可判定的。這些結(jié)果轉(zhuǎn)入CQ=-映射關(guān)系和SOCQ=-映射關(guān)系的情況。此外,提供合成的若干等效(無效)條件。
引入合成的多項式-時間-可檢查充分條件,它包括約束由查詢給出的情形。此外,標識出CQ0=、CQ=和SOCQ=的子類,它們在合成和求逆下是閉合的,且它們包括約束由查詢給出的情形。最后,給出一種多項式-時間算法,用于計算滿足以上條件的CQ0=、CQ=和SOCQ=映射關(guān)系的合成。
預備信息
簽名σ={R1,R2,...,RN}是一組關(guān)系符號。關(guān)系型原子是R(t1,...,tm)類型的公式,其中ti是變量或常量。等同原子是t1=t2類型的公式,其中ti是諸如變量或常量等項。CQ定義為邏輯乘查詢集合,即
類型的公式,
其中是邏輯乘關(guān)系型或等同原子的邏輯乘,且自由變量y1,...,yn中的每一個都發(fā)生在某個關(guān)系型原子中。CQ0是具有邏輯乘、但沒有存在量詞的查詢集合(即,當m=0時,也稱為選擇-連結(jié)查詢)。給定查詢類Λ,Λ=是還包括等同的對應查詢類。
Skolem(Q)定義為通過用斯柯倫函數(shù)代換存在量詞從Q獲得的公式;它是聲明斯柯倫函數(shù)的存在、并且不具有一階存在量詞的存在二階公式。例如,如果

設SkΛ={Skolem(Q)Q∈Λ}。給定簽名σ1∪σ2上的約束的集合ψ,ψ|σ1是ψ中僅包含σ1中的關(guān)系符號的約束的集合。在前提或結(jié)論中包含來自σ1的關(guān)系符號的約束稱為σ1-約束。
模型和映射關(guān)系。模型是實例集合。模型可用諸如SQL、DDL、XML模式等具體語言表達。例如,關(guān)系型模式表示數(shù)據(jù)庫狀態(tài)的集合;XML模式表示XML文檔的集合;工作流定義表示工作流實例的集合;編程接口表示與接口一致的實現(xiàn)的集合。映射關(guān)系是實例上的關(guān)系。除非另有聲明,否則假定所有映射關(guān)系都是二元的,即,它們在兩個模型之間有效。映射關(guān)系可用諸如SQL、DML、XSLT等具體語言表達。
用于指定映射關(guān)系的約束。約束是布爾查詢。約束的集合用大寫希臘字母表示,單個約束用小寫希臘字母表示。要考慮的約束在下式中
IC(Λ)={x(Q1(x)→Q2(y))Q1,Q2∈Λ}其中{x)是Q1中的自由變量集合,{y){x},且
這些稱為Λ上的查詢蘊含約束。這些類型的約束表達Q1被包含在Q2中,并且在Λ是CQ=的情形中被稱為嵌入依存關(guān)系,在Λ是CQ0=的情形中被稱為完全依存關(guān)系。還考慮下式中的約束
其中{x}是Q1中的自由變量集合,{y}{x}),且Q1、Q2是類似CQ0=查詢,不同之處是它們還可有從函數(shù)符號f構(gòu)造的項。類似地定義了IC(SOCQ),其中Q1、Q2是類似CQ0查詢。
給定查詢語言Λ,映射關(guān)系
與每個以下形式的表達式相關(guān)聯(lián)
(σ1,σ2,∑12)
其中∑12是簽名σ1∪σ2上的IC(Λ)的有窮子集。σ1是輸入(或源)簽名,σ2是輸出(或目標)簽名。不失一般性,假定σ1,σ2是不相交的或完全相同的。
如果對應于E的映射關(guān)系是m,則可以說m是由表達式E紿紿定的。此外,如果m是由表達式(σ1,σ2,∑12)給定的,且∑12是IC(Λ)的有窮子集,則m是Λ-映射關(guān)系。
合成。給定兩個映射關(guān)系m12和m23,合成m12·m23是唯一映射關(guān)系
推論和跟蹤
以下提供附加預備信息以解釋以下各部分中的算法和正確性證明。以下確定一種具體的推論系統(tǒng),定義、
DC(·)和chase(·)的標準記號,并給出命題1和2。
IC(SOCQ=)中的約束被寫為以下形式的規(guī)則
Q1(x)→Q2(x)
使斯柯倫函數(shù)上的二階量詞和最外面的一階通用量詞x被隱式包含。稱Q1(x)為前提Q2(x)為結(jié)論。如果前提為空,則僅寫結(jié)論。稱Q2(c)形式的規(guī)則為論據(jù),其中c是約束元組。
定義1.從∑出發(fā)的推論是一規(guī)則序列,其中每個規(guī)則都是用以下三種方法中的一種獲得
1.通過從∑復制,
2.通過擴展和/或重命名先前在序列中出現(xiàn)的規(guī)則,或者
3.通過對先前在序列中出現(xiàn)的兩個規(guī)則上應用消解。
這些規(guī)則分別被稱為公理規(guī)則,擴展/重命名規(guī)則和消解規(guī)則。
推導程序是使用推論來推導新規(guī)則的程序。如果推論由n行組成,則該推論有長度n。從規(guī)則r′擴展/重命名所獲得的規(guī)則r在前提中可能具有額外的原子,其變量可能被任意項一致代換,并且在結(jié)論中可能有與前提中的等式一致的代換。例如,
R(xy),y=f(xy)→S(xy)
是對R(uv)→S(uf(uv))應用擴展/重命名的有效結(jié)果。
當存在使兩個公式句法上完全相同的變量代換時,這兩個公式可被統(tǒng)一。消解是一種完全邏輯推論程序,當一個規(guī)則的前提的一個原子可與另一個規(guī)則的結(jié)論中的一個原子統(tǒng)一時,該程序從兩個給定規(guī)則推導出新規(guī)則。例如,
R(xy),S(yz)→S(xz)
是對以下規(guī)則應用消解的結(jié)果
R(xy)→S(xy)
S(xy),S(yz)→S(xz)
此例說明一種稱為肯定前件式假言推理(modus pones)的消解的特殊情形。通過將肯定前件式假言推理應用于規(guī)則r′獲得規(guī)則r,r″包含r″中的結(jié)論和r′中的前提原子,以及r″中那些未出現(xiàn)在r′的結(jié)論中的前提原子。
通過按升序?qū)σ?guī)則進行編號,并通過向每一行添加表示如何獲得該行的理由來對推論進行注釋。僅用兩個編號便足以證明消解規(guī)則正確,用單個編號和一個變量賦值便足以證明擴展/重命名規(guī)則正確。公理規(guī)則可通過缺少任何其它注釋來表示。變量賦值是一個x=y(tǒng)形式的項的列表,其中x是一個變量,而y是一個項。
示例1.給定
Δ={R(1,1)}且
∑={R(xy)→S(xy),S(zz)→T(zz)},
以下是從∑∪Δ的有效推論
1.R(1,1)
2.R(xy)→S(xy)
3.R(1,1)→S(1,1)[2]x=1,y=1
4.S(1,1) [1,3]
5.S(zz)→T(zz)
6.S(1,1)→T(1,1)[5]z=1
7.T(1,1) [4,6]
此處,規(guī)則1、2和5是公理,3和6是擴展/重命名,而4和7是消解。
在推論之內(nèi),如果消解是通過統(tǒng)一來自簽名σ2的原子來執(zhí)行的,則該消解步驟稱為σ2-消解。通過σ2-消解獲得的規(guī)則ξ′稱為σ2-消解式。如果不使用消解即可從ξ′推導出規(guī)則ξ,則ξ是ξ′的變體。
以下是對證明合成算法和不可判定性結(jié)果的正確性的先決條件的介紹。
如果有來自一約束集合∑的推論,其中最后一行包含約束ξ,則可以說ξ是從∑推導出來的,寫成∑ξ。∑的Λ-推論閉合是
DC(Λ,∑)={ξ∈Λ∑ξ}。
當Δ從上下文中消去時寫成DC(∑)。如果∑中的所有約束在D中均為真,則寫成
如果對于所有實例,
隱含
則寫成
可以檢查得出,如果
則還有
即,該推論系統(tǒng)是健全的。如果一推論系統(tǒng)確保如果一個句子的集合是不可滿足的,那么它將導出矛盾的話,則該推論系統(tǒng)被稱為完整的。推論證明,所推導出的規(guī)則是由公理規(guī)則隱含的。
命題1.如果Δ是一個論據(jù)集合,那么以下是等價的
1.∑∪Δφ。
2.存在ξ使∑ξ且Δ,ξφ。
證明.如果(2)成立,則存在推論和證明γ′和γ″證明∑ξ且Δ,ξφ。那么通過將γ″拼接到γ′,獲得證明∑∪Δφ的γ。現(xiàn)在假定(1)成立,且γ證明∑∪Δφ。除了以下替換以外,設γ′為γ,以下替換由從γ中的第一個規(guī)則到最后一個規(guī)則做成的規(guī)則
1.如果規(guī)則r是來自Δ的公理規(guī)則,則將其移除。
2.如果規(guī)則r不是來自Δ的公理規(guī)則,則按原樣將其保留。
3.如果規(guī)則r是通過從規(guī)則i擴展/重命名而獲得,則用對應的變量vc替換r中和r的變量賦值中的每個常量c。
4.如果規(guī)則r是通過從規(guī)則i和j消解而獲得,且規(guī)則i是來自Δ的公理規(guī)則,則用來自規(guī)則j的一般擴展/重命名取代r。
5.如果規(guī)則r是通過從規(guī)則i和j消解而獲得,且規(guī)則i不是來自r的公理規(guī)則,則用將消解應用于新規(guī)則i和j所得的結(jié)果替換r。
示例2.給定從示例1的推論γ。γ′為
1.<空行>
2.R(xy)→S(xy)
3.R(v1v1)→S(v1v1) [2]x=v1 y=v1
4.R(v1v1)→S(v1v1)[3]
5.S(zz)→T(zz)
6.S(v1v1)→T(v1v1)[5]z=v1
7.R(v1v1)→T(v1v1)[4,6]
為每個規(guī)則進行以下替換
1.來自Δ的公理根據(jù)1移除。
2.來自∑的公理根據(jù)2不改變。
3.擴展重命名根據(jù)3用v1替換1。
4.對1、3的消解根據(jù)4一般的擴展/重命名。
5.來自∑的公理根據(jù)2不改變。
6.擴展重命名根據(jù)3用v1替換1。
7.對4、6的消解根據(jù)5消解。
因為來自Δ的公理不再被使用,并且以上的替換1到5確保從先前替換的規(guī)則正確推導出規(guī)則R,所以γ′是證明∑ξ的有效推論。此外,Δ、ξR(c)由推論γ″證明,推論γ″由以下序列組成,
-來自Δ、被從γ移除以獲得γ′的那些公理,
-ξ緊接著ξ′,其中ξ′是通過將每個變量vc重命名為對應常量c而從ξ獲得的。
-使用每個來自Δ的公理,并以ξ′開始的一系列消解步驟。
定義2.給定實例D,用約束∑IC(SOCQ=)和斯柯倫函數(shù)F的組來跟蹤D的結(jié)果簡寫為chase(D,Σ,F(xiàn)),并由從下式獲得的數(shù)據(jù)庫D″來表示
D′={Ri(c)∑∪Δ∪ΦRi(c)}
其中
c是常量元組,
Δ是D所給定的論據(jù)集合
且Φ是F所給定的論據(jù)集合
Φ={f(c)=af∈F,f(c)=a}如下。當且僅當∑∪Δ∪Φc0=c1,定義c0≡c1。
現(xiàn)在要從D′獲得D″,從每個等價類中選擇一個常量c0,并用c0替換該等價類中的每一個常量。即,D″=D′/≡。要求F中的所有函數(shù)都具有相同的域。如果它們是有窮的,則chase(D,∑,F(xiàn))是有窮的。此定義是常規(guī)定義的變體,在其中,函數(shù)F是在跟蹤過程中構(gòu)造的。
命題2.
證明.設
且假定對于某個ξ∈∑,
這意味著在前提中必定有對變量x的某個常量c的賦值使得ξ中的前提成立,而結(jié)論不成立。假定結(jié)論由單個關(guān)系型原子R(y)或單個等式y(tǒng)1=y(tǒng)2組成,其中y是一系列x上的項。通過用對應常量c替換x中的每個變量,將y′設成從y獲得的一系列項。如果前者成立,則Δ∪Φ,ξR(y′)成立,且R(y′)不在D′中。因為ξ∈∑,所以命題1隱含∑∪Δ∪ΦR(y′)成立,這與D′中的定義矛盾。如果后者成立,則Δ∪Φ,ξy′1=y(tǒng)′2和y′1=y(tǒng)′2成立。因為ξ∈∑,所以命題1隱含∑∪Δ∪Φy′1=y(tǒng)′2成立,這與≡和D″的定義矛盾。
CQ0=映射關(guān)系合成
通過研究CQ0-映射關(guān)系和CQ0=-映射關(guān)系的合成,開始以下對合成的描述。稍后,所介紹的處理這些實例的技術(shù)將擴展至處理SOCQ=和CQ=-映射關(guān)系。給出將兩個CQ0=-映射關(guān)系合成為一個CQ0=-映射關(guān)系的充要的、不可計算的條件(見以下定理1)。然后,示出CQ0和CQ0=在合成下不是閉合的(見以下示例3),此外,確定兩個CQ0=-映射關(guān)系的合成是否是CQ0=-映射關(guān)系是不可確定的(見以下定理2)。給出一種用于合成的(CQ0=合成)算法,它在滿足下面定理3的條件的CQ0=映射關(guān)系上正確工作,它可在多項式時間被檢查。同樣,定義在多項式時間可識別的CQ0=子集,稱為好CQ0=,該子集在合成下閉合(見以下定理4)。
(σ1,σ2,∑12)和(σ2,σ3,∑23)所給定的兩個CQ0=-映射關(guān)系的合成可使用以下算法來計算
算法CQ0=合成(∑12,∑23)
設∑=∑12∪∑23
重復
設∑=
對于每一對φ,ψ∈∑
如果存在φ,ψ的σ2-消解ξ
且∑中沒有ξ的變體
則設∑′=∑∪{ξ}
設∑=∑∪∑′
直至∑′=
返回∑13=∑|σ13
下一個步驟是驗證該算法的正確性,以及研究該算法終止的條件。注意CQ0和CQ0=在合成下不是閉合的,如下例所示。
示例3.考慮(σ1,σ2,∑12)和(σ2,σ3,∑23)所給定的CQ0-映射關(guān)系m12和m23,其中∑12是
R(xy)→S(xy)
S(xy),S(yz)→S(xz)
且∑23是
S(xy)→T(xy)
并且其中σ1,={R},σ2,={S},且σ3,={T}??傊?,這些約束說明RST以及S在傳遞閉包下是閉合的。這隱含tc(R)T,其中tc(R)表示R的傳遞閉包??梢钥吹剑挥性赗和T之間成立的CQ0=-映射關(guān)系才是以下形式的約束
R(X,v1),R(v1,v2),...,R(vi-1,vi),R(vi,y)→T(xy)但其任何有窮集合都不表達tc(R)T。
實際上,合成m12·m23甚至在FO(一階邏輯)中都是不可表達的。否則,給定FO語句φ以使
當且僅當
時,<R,T>∈m12·m23可創(chuàng)建FO公式ψ(xy),它是通過用x≠u ∨y≠v替換φ中的每一個出現(xiàn)的T(uv)來獲取的。然后給定帶有RD2的域D
當且僅當
當且僅當tc(R)D2-<a,b>
當且僅當<a,b>∈tc(R)有
因此,(x,y)﹁ψ(x,y)說明R是連通圖,它不能在FO中被表達。
兩個CQ0=-映射關(guān)系的合成何時是CQ0=-映射關(guān)系?本文中的定理1給出充要條件。合成要成為CQ0=-映射關(guān)系的一個障礙可能是遞歸,但是遞歸不總是問題。在定理3中,提供可被有效檢查的充分條件,在定理4中,示出好CQ0=,即以下定義的CQ0=的子集,在合成下是閉合的。所有這些結(jié)果對CQ0也成立。
定理1.如果CQ0=-映射關(guān)系m1、m2是由(σ1,σ2,∑12)和(σ2,σ3,∑23)給出的,且有∑123=∑12∪∑23和σ13=σ1∪σ3,則以下是等價的
(1)存在簽名σ13上的有窮約束集合使m=m1·m2由(σ1,σ3,∑13)給定。
(2)存在簽名σ13上的有窮約束集合使
(3)存在m,使對于簽名σ13上滿足∑123ξ的每個ξ,都有最多使用m個σ2-消解的來自∑123的ξ的推論。
證明.證明使用以下引理1和2。證明首先示出(1)和(2)的等價,然后示出(2)和(3)的等價。
假定(2)成立。則
當且僅當
(根據(jù)·的定義)
當且僅當
(根據(jù)引理1)
當且僅當
(因為(1)成立)
當且僅當
(根據(jù)DC的健全性)
<A,C>∈m1·m2。這顯示(1)成立。
反過來,假定(1)成立。則
當且僅當
(根據(jù)引理1)
當且僅當<A,B>∈m1·m2 (根據(jù)·的定義)
當且僅當
(因為(2)成立)
當且僅當
(根據(jù)DC的健全性)
這顯示(2)成立。
現(xiàn)在假定(3)成立。設∑為DC(CQ0=,∑123)|σ13中所有約束的集合,這可最多使用m個σ2-消解而無需其它任何消解來導出?!浦械拿總€約束可通過從有窮子集∑13∑擴展/重命名來獲得??梢燥@示(2)成立。
假定有推論γ證明∑123ξ。因為(3)成立,所以可以假定γ有m′個σ2-消解。根據(jù)引理2,存在也帶有m′個σ2-消解的證明z123ξ的推論γ,且它們?nèi)慷荚谌魏纹渌庵俺霈F(xiàn)。因為γ的最后一行不包含任何來自σ2的符號,所以可以假定在最后一個σ2-消解以后,γ不包含任何包含來自σ2的符號的行。
將γ′分成兩部分γ′1是到并包括最后一個σ2-消解的γ的起始部分;而γ′2是γ′的其余部分。根據(jù)∑的定義,γ1中的每個約束ψ都必須在∑中,因此∑13ψ成立。γ′2中的每個約束ψ都不包含任何來自σ2的符號和這隱含∑13ψ。因此,如所期望有E13ξ。
反過來,假定(2)成立。取m為從∑123推導每個ψ∈∑13所需σ2-消解的總數(shù)。假定∑123ξ。則存在推論γ證明∑13ξ。很明顯,γ沒有σ2-消解。從γ,通過將∑13中的每個約束的推論拼接到γ,并用一來自∑13的公理的推論結(jié)束處的行的空擴展/重命名來替換使用該公理處的每一行,可獲得證明∑123ξ的γ′。這示出(3)成立。
引理1.在定理1的假設之下,以下是等效的
1.
2.
證明.假定對于某個B有

(根據(jù)健全性),因此
因為在DC(CQ0=,∑123)|σ13中B未被提及。
反過來,假定
設(A′,B′,C′)=chase((A,,C),∑123)。如果跟蹤終止,且有A=A′和C=C′,則根據(jù)命題2有
這蘊含

如所期望。
很明顯跟蹤終止,因為沒有新的常量被引入。為得到矛盾,現(xiàn)在假定A≠A′且C≠C′。設ΔAC為A和C所給定的論據(jù)集合。則,
∑123∪ΔACR(c)其中R是不包含c的A或C的關(guān)系,或者
∑123∪ΔACc0=c1其中c0、c1是A或C中不同的常量。
考慮前一種情況,后一種情況是類似的。如果∑123∪ΔACR(c)則根據(jù)命題1存在ξ使∑123ξ且ΔAC,ξR(c)。因為
所以得出
且這與初始假定矛盾。
引理2.在定理1的假設之下,如果有推論γ最多用m個σ2-消解證明∑123ξ,則存在γ′最多用m個σ2-消解證明∑123ξ,并且所有σ2-消解都在所有其它消解之前出現(xiàn)。
證明.假定k<m且γk,l用以下各項證明∑123ξ
1.恰好m個σ2-消解,
2.其中前k個消解是σ2-消解,且
3.其中在第k+1個σ2-消解之前或該推論結(jié)束處恰好有l(wèi)個非σ2-消解。
該證明接下來對k和l和進行歸納。給定γk.l且有l(wèi)>0,該證明示出如何獲得γk,l-1。為了證明l=0的情形,簡單地設γk+1,l′=γk,0,其中l(wèi)′滿足以上條件。一旦為某個l′獲得γm,l′,即設γ′=γm,l′,該引理得證。
考慮第s行包含δ,例如第i和j行的γk,l中的第(k+1)個σ2-消解分別包含α和β。還考慮第r行包含λ,例如第r1和r2行的γk,l中的第l個σ2-消解分別包含λ1和λ2。
現(xiàn)在考慮若干情形。如果i,j<r<s,則通過將第s行恰好移到r之前來獲得γk,l-1。如果第i、j行不是從第r行導出,則通過首先重新排列γk,l到γ′k,l以使i,j<r<s,然后如上進行來獲得γk,l-1。
否則,或者α或者β是通過從第r行的擴展/重命名獲得的。為簡化表示,假定兩者都是通過從第r行的單次擴展/重命名獲得的(另一種情形是類似的)?,F(xiàn)在存在r<i,j<s。通過在需要的情況下重新排列γk,l,假定i=r+1,j=r+2且s=r+3。因為α和β可通過擴展/重命名從r獲得,α1、α2和β1、β2通過擴展和重命名分別從r1、r2獲得,使得α為α1、α2的消解,而β為β1、β2的消解。用以下7行替換4個相連行r、i、j、s。
r α1[r1]
r+1α2[r2]
r+2β1[r1]
r+3β2[r2]
r+4δ1[r+1,r+2]
r+5δ2[r+4]
r+6δ[r+5,r+3]
很重要的一點是,因為α和β必需通過σ2酌關(guān)系符號消解所以α2和β1也必須如此,因此第r+4行如今包含一個σ2-消解。注意δ在第r+6行上,因為α1、α2、β1和β2上消解的結(jié)果與α和β上消解的結(jié)果是相同的(這是因為消解是“相關(guān)的”)。
推定1.在定理1的假設之下,無論CQ0=合成(∑12,∑23)何時終止,它都產(chǎn)生∑13以使m12·m23由(σ1,σ3,∑13)給定。
注意在主循環(huán)的第m次迭代以后,∑將包含能最多使用m個σ2-消解步驟來推導的每個約束的變體。示例3的約束未能滿足定理1的(3),因此,當如示例3中的∑12和∑23作為輸入時,CQ0=合成(∑12,∑23)將不會終止。相反,從以下的確滿足定理1的(3)的示例,CQ0=合成(Σ12,∑23)將會在∑12、∑23上終止,因此遞歸不總是壞的。
示例4.考慮(σ1,σ2,∑12)和(σ2,σ3,∑23)所給定的CQ0-映射關(guān)系m12和m23,其中∑12是
R(xy)→S(xy)
S(xy),S(yz)→R(xz),而∑23是
S(xy)→T(xy),并且其中σ1={R},σ2={S},且σ3={T)??傊?,這些約束說明RST,R和S在傳遞閉包下是閉合的(因為以下約束
S(xy),S(yz)→S(xz)
R(xy),R(yz)→R(xz)可從以上約束中導出),且只要S(xy)、S(yz)成立,R(xz)就成立。以下約束
R(xy),R(yz)→R(xz)
R(xy)→T(xy)準確地表達合成m1·m2,且恰好是CQ0=合成(∑12,∑23)所找到的。
定理2.檢查兩個CQ0-映射關(guān)系的合成是否是CQ0-映射關(guān)系是不可確定的(實際上是coRE-hard)。用CQ0=替換CQ0后仍成立。
證明.該證明將Post的對應問題(PCP)——已知為不可確定的——歸納為確定m12·m23是否是CQ0-映射關(guān)系的問題,其中m12和m23是CQ0-映射關(guān)系。給定一PCP問題,定義m23以使當且僅當m12·m23不是CQ0-映射關(guān)系時,該PCP問題有解(m12不依賴于PCP問題)。
該CQ0-映射關(guān)系m12·m23由(σ1,σ2,∑12)和(σ2,σ3,∑23)給定,其中
·σ1={A,B,O,Z},

·σ3={T}
其中A、B是一元的,所有其它關(guān)系都是二元的,且∑12和∑23如下所述。為σ1上的以下原子集寫成x0011y
A(x),Z(xa),Z(ab),O(bc),O(cy),B(y),它對應于從A經(jīng)Z、O到B的路徑(Z表示“0”,O表示“1”)。類似地,σ2上的原子集
寫成
∑12包含以下約束
A(x),Z(xy),A(x′),以及對于所有組合AO、ZZ、ZO、OZ、OO、ZB、OB的所有對應約束。這些約束隱含可為任意串S導出
根據(jù)∑23中約束對每個PCP“多米諾(domino)”進行編碼如下。例如,將多米諾0011/011編碼為以下約束
最后,將以下約束添加到∑23中
現(xiàn)在假定PCP問題對{0,1}*上的串S有解。然后推導出無窮多個以下形式的約束
xSky,x′Sky′→T(xy)其中,Sk是串S如下重復k次。注意這些約束是在σ1∪σ3上,且其中沒有哪一個能從任何其它約束獲得。
對于k=1(其它情形是類似的),首先通過使用∑12中的約束獲得
然后按序使用∑23中對應于獲得S所需的塊序列的規(guī)則,通過消解獲得
xSy,x′SyS→A(xx′),A(yy′),B(yy′)。
最后使用∑23中的最后約束獲得
xSy,x′SyS→T(x,y)
反過來,如果PCP問題在無解,在σ1∪σ3中的前提無推論,則以下結(jié)論是可能的
因為這是匹配σ1∪σ3中的結(jié)論的唯一前提,所以沒有導出σ1∪σ3中的任何約束。在此情形中,∑13=給出合成m12·m23。
來自定理2的coRE-hardness隱含即使當合成是CQ0=-映射關(guān)系時,算法CQ0=合成也可能不終止。例如在以下實例中發(fā)生此情況。
示例5.考慮(σ1,σ2,∑12)和(σ2,σ3,∑23)所給出的CQ0-映射關(guān)系m12和m23,其中∑12是
R(xy)→S(xy)
R(xy),R(yz)→R(xz),R′(y)
S(xy),S(yz)→S(xz),S′(y)
而∑23是
S(xy)→T(xy)
并且其中σ1,={R,R′},σ2={S,S′},且σ3={T}。以下約束
R(xy),R(yz)→R(xz),R(y)
R(xy)→T(xy)準確地表達合成m1·m2,但算法CQ0=合成將永不終止,因為它將推導出無窮多個其在示例3中所推導出的約束。
以下是算法CQ0=合成終止的充分條件。如下,這些條件可在多項式時間檢查。運行CQ0=合成(∑12,∑23)的kσ2-1次迭代,并檢查∑中是否出現(xiàn)以下所給出形式的約束,其中kσ2是σ2中關(guān)系符號的個數(shù)。
定理3.在定理1的假設之下,如果僅使用σ2-統(tǒng)一不能從∑123推導出φ(z),S(y)→S(x)形式的約束(這被稱為壞約束),其中
1.φ(z)是σ123上原子的邏輯乘,
2.φ(z)中沒有滿足{x}{w}的原子S(w),
3.
并且
4.S是σ2中的關(guān)系符號,則CQ0=合成(∑12,∑23)終止,因此m1·m2是CQ0=-映射關(guān)系。對于CQ0-映射關(guān)系同樣成立。
證明.假定假設成立。考慮任何僅使用σ2-統(tǒng)一證明∑123ξ的推論γ,其中ξ在結(jié)論中包含一σ2原子。不失一般性,假定首先執(zhí)行所有重命名操作,接下來進行所有消解操作。還假定γ中的每個規(guī)則在其結(jié)論中包含單個原子,且每個規(guī)則至多在一個消解步驟中使用。
這一推論能以樹T來表示,其中每個節(jié)點都是一個原子。T中每個非葉節(jié)點都是某個規(guī)則r的結(jié)論。r的子節(jié)點是規(guī)則r的前提中的原子。ξ的前提由T的所有葉節(jié)點和組成,且其結(jié)論是T的根節(jié)點。
為每個節(jié)點檢查T的任何子樹T(包含T中其所有子節(jié)點或不包含任何子節(jié)點)是否能被轉(zhuǎn)換成證明∑123ξ′的推論γ′是很簡單的,其中ξ的前提由T的所有葉節(jié)點組成,且其結(jié)論為T′的根節(jié)點。
因為該假設成立,所以沒有這樣的子樹可包含S(x)為其根節(jié)點,并包含S(y)為葉節(jié)點,其中S是σ2中的關(guān)系符號且
因此,T中從葉節(jié)點到根節(jié)點的、包含節(jié)點S(y)的任何路徑至多僅可能包含具有S個原子的2rr!8個其它節(jié)點,其中r是S的數(shù)量(arity)。這意味著任何此類路徑必須具有由kσ22rσ2rσ2!界定的長度,其中kσ2是σ2中關(guān)系符號的個數(shù),而rσ2是σ2中關(guān)系符號的最大數(shù)量。結(jié)果是,取決于變體數(shù),通過σ2-統(tǒng)一僅可獲得有窮個數(shù)的∑123的結(jié)論,且這隱含CQ0=合成(∑12,∑23)終止。
定義3.如果CQ0=-映射關(guān)系由(σ1, σ2,∑12)給定且僅使用σ1-統(tǒng)一或僅使用σ2-統(tǒng)一不能從∑123推導出任何滿足以下各項的φ(z),S(y)→S(x)形式的約束
1.φ(z)是σ1∪σ2上原子的邏輯乘,
2.φ(z)中沒有滿足{x}{w}的原子S(w),
3.
并且
4.S和S=″均為σ1中的關(guān)系符號,或均為σ2中的關(guān)系符號。則CQ0=-映射關(guān)系是好CQ0=-映射關(guān)系。類似地定義好CQ0。
定理4.好CQ0=和好CQ0在合成和求逆下都是閉合的。
注釋1.CQ0=查詢包括在好CQ0=-映射關(guān)系中。注意總的和滿射的CQ0=-映射關(guān)系在合成下不是閉合的。
示例6.考慮(σ1,σ2,∑12)和(σ2,σ3,∑23)所給定的CQ0-映射關(guān)系m12和m23,其中∑12是
R(xy)→S(xy)
R(xy),S(yz)→S(xz)而∑23是
S(xy)→T(xy)并且其中σ1={R},σ2={S},且σ3={T}。此處m12和m23是總的和滿射的,且其合成說明示例5中可見的tc(R)T甚至不能在FO中表達。
SOCQ=映射關(guān)系的合成
這部分的焦點是SOCQ=映射關(guān)系的合成。為了處理CQ=-映射關(guān)系中的存在量詞,首先將CQ=-映射關(guān)系約束轉(zhuǎn)換為斯柯倫形式,這產(chǎn)生SOCQ=映射關(guān)系。以下定理5示出,SOCQ=映射關(guān)系在合成下是閉合的,因為它能使用存在量化的函數(shù)符號來聲明中間簽名σ2中關(guān)系的存在。
以下有關(guān)問題也很重要
如果SOCQ=映射關(guān)系m12、m23由(σ1,σ2,∑12)和(σ2,σ3,∑23)給定,是否有(σ1,σ3,∑13)所給定的SOCQ=映射關(guān)系m13滿足m13=m12·m23以使∑13SOCQ=除了∑12∪∑23中所出現(xiàn)的那些函數(shù)符號或常量以外,沒有其它函數(shù)符號或常量。如果是,則說m12和m23具有保守合成。
保守合成是很重要的,因為最終需要消除所有函數(shù)符號以獲取CQ=-映射關(guān)系,并且如何消除在等同中引入的函數(shù)符號(諸如以下定理5的證明中所使用的函數(shù)符號等)是未知的。以上部分的定理1和2示出,SOCQ和SOCQ=在保守合成下不是閉合的,且確定兩個SOCQ=-映射關(guān)系的保守合成是否為SOCQ=-映射關(guān)系是不可決定的。如在CQ0=-映射關(guān)系的情況,對具有保守合成的兩個SOCQ=-映射關(guān)系給出充要的不可計算的條件,并給出可有效檢查的保守合成的充分條件。給出一種保守合成的算法(SOCQ=合成),它在SOCQ=-映射關(guān)系上正確工作,從而滿足這些條件。此外,定義好SOCQ=為SOCQ=的多項式時間子集,它在保守合成下是閉合的。與前一部分相反,在此情況中證明,等式是必不可少的,因此這些結(jié)果對于SOCQ是不成立的。
在前進至結(jié)果以前,簡要描述IC(SOCQ=)約束的語義。問題是,函數(shù)可取值的域是什么,即,它們所允許的范圍什么?直觀地,此問題是關(guān)于存在量化的中間數(shù)據(jù)庫的域。所有數(shù)據(jù)庫都被要求是有窮的(即,所有關(guān)系都是有窮的),但具有隱式的可數(shù)無窮域。函數(shù)被允許從此隱式域中取任何值,只要它們的范圍是有窮的。這些假定確保第2部分中所介紹的推論系統(tǒng)對于IC(SOCQ=)而言是健全的,這是以下定理6所需要的。
定理5.SOCQ=-映射關(guān)系在合成下是閉合的。
證明.如果SOCQ=-映射關(guān)系m12和m23由(σ1,σ2,∑12)和(σ2,σ3,∑23)給定,獲得∑13以使合成m12·m23由(σ1,σ2,∑23)如下給定。設∑13=∑′12∪∑′23,其中∑′12和∑′23是通過用fin(x),gR(x)=hR(x)替換原子R(x)的每個出現(xiàn)而獲得的,其中R∈σ2,fin(x),gR(x)=hR(x),其中fin(x)=_Λx∈{x}x=f(x),且f,gR,hR是新函數(shù)符號。
然后,如果<A,C>∈m12·m23,則存在B使
當且僅當通過使用來自該域的任意兩個值,對于σ2中的每個關(guān)系R都有R(c)在B中成立,則設gR(c)=hR(c)。此外,如果c在B的有效域中則設f(c)=c,否則設f(c)=c′,其中c′是來自該域的某個值。從而
反過來,如果
則為σ2中的每個關(guān)系R設R={cfin(c),gR(c)=hR(c)}以獲得B,以使
fin(x)是有窮謂詞,因為f的范圍是有窮的。因此,B中的每個關(guān)系R都是有窮的。
定理6.如果SOCQ=-映射關(guān)系m12和m23由(σ1,σ2,∑12)和(σ2,σ3,∑23)給定,并且有∑123=∑12∪∑23和σ13=σ1∪σ3,則以下是等價的
1.簽名σ13上存在有窮約束集合E13IC(SOCQ=)使m=m12·m23由(σ1,σ3,∑13)給定,其中除了∑123中所出現(xiàn)的那些函數(shù)符號或常量以外,∑13沒有其它任何函數(shù)符號或常量。
2.簽名σ13上存在有窮約束集合∑13IC(SOCQ=)使其中除了∑123中所出現(xiàn)的那些函數(shù)符號或常量以外,∑13沒有其它任何函數(shù)符號或常量。
3.存在k使得對于σ13上滿足∑123ξ的每一個ξ,都有最多使用k個σ2-消解從∑123的ξ的推論。
證明.本質(zhì)上和定理3的證明一樣,使用以下引論3代替引論1。
引論3.在定理6的假設之下,以下是等價的
1.
2.
定理6提出本質(zhì)上和CQ0=-合成相同的SOCQ=-映射關(guān)系合成算法,稱為SOCQ=合成。它們之間僅有的區(qū)別是SOCQ=合成對IC(SOCQ=)約束進行操作,而CQ0=-合成對IC(CQ0=)約束進行操作。如同為CQ0=一樣,為SOCQ=定義SOCQ=合成的正確性、其終止的充分條件、以及好SOCQ=-映射關(guān)系。
CO=-映射關(guān)系的合成
這部分考慮如何將SOCQ=-映射關(guān)系轉(zhuǎn)換回CQ=-映射關(guān)系??紤]CQ-映射關(guān)系和CQ=-映射關(guān)系的情形。為了計算(σ1,σ2,∑12)和(σ2,σ3,∑23)所給定的兩個CQ=-映射關(guān)系m12、m23的合成,進程由如下三個步驟組成。
過程CQ=合成(∑12,∑23)
1.∑′12=斯柯倫化(∑12) ∑′23=斯柯倫化(∑23)
2.∑′13=SOCQ=合成(∑′12,∑′23)
3.返回 解除斯柯倫化(∑′13)
第一步斯柯倫化,是很簡單的。第二步SOCQ=合成,已在前面部分討論過。對于第三步解除斯柯倫化,以下給出一種示出為正確的(見定理7)算法。事實表明,即使第二步成功,也可能找不到∑13IC(CQ=)以使∑′13≡E13(見示例4)。因此,標識第三步成功的充要多項式時間可檢查的條件(見命題2)。解除斯柯倫化可能產(chǎn)生與其輸入的大小成指數(shù)比例的大小的結(jié)果。事實表明,在一般情況中,這是不可避免的(見定理8),但提供多項式時間可檢查的條件,以供解除斯柯倫化在多項式時間內(nèi)以其輸入的大小運行(見命題2)。
以下來自現(xiàn)有技術(shù)的示例表明,解除斯柯倫化不總是可能的。
示例7.考慮(σ1,σ2,∑12)和(σ2,σ3,∑23)所給定的CQ=-映射關(guān)系m12和m23,其中
∑12是E(x,y)→F(x,y)
∑23是F(x,y),C(x,u),C(y,v)→D(u,v)
并且其中σ1={E},σ2={F,C},且σ3={D}。此處,CQ=合成的步驟1和2成功,但無論對其使用什么算法,步驟3都失敗,因為m12·m23不是CQ=-映射關(guān)系,如現(xiàn)有技術(shù)中所示。
以下給出的算法解除斯柯倫化依賴于*,它是
的某種多項式時間近似。即,如果∑*φ,則
反過來可能不成立。有已知的實例,其中存在此類*并且還是完整的(即,反過來也成立)。例如,當∑具有分層證明時即為一例。為簡單起見,不描述實現(xiàn)*的選擇。解除斯柯倫化對于滿足以上條件的任何*有效更完全的*是解除斯柯倫化成功的較大輸入集合。由此,圖8示出根據(jù)本發(fā)明的一種去斯柯倫化的方法。
過程解除斯柯倫化(∑)
在800,啟動解嵌套的過程。設Λ1={φ′φ∈∑},其中φ′等價于φ,并且是通過“解嵌套”和消除來自關(guān)系型原子和來自結(jié)論的項從φ中獲得的,以使在′中
(a)函數(shù)符號僅在前提中的等式中出現(xiàn)。
(b)每個項f(u)僅在一個原子中出現(xiàn)。
(c)每個等式都是關(guān)于某個變量v(f的一項變量)、函數(shù)f、以及變量序列u(定義等式)或是兩項變量u和v的v=u的形式(限制等式)。
(d)結(jié)論至多包含一個原子,該原子不是定義等式。
其中發(fā)生項變量的關(guān)系型原子稱為限制原子。如果A是其中發(fā)生v的限制關(guān)系型原子或限制等式,其中v是的項變量,則被稱為f-限制原子。如果約束在前提中有限制原子,則稱該約束為受限制的。
在802,進行環(huán)路的檢查。對于每個φ∈Λ1,構(gòu)造圖Gφ,其中邊是φ中的變量,并且當且僅當有v=f(...u...)形式的等式時,存在邊(v,u)。如果Gφ有環(huán)路,則中止。否則設Δ2=Λ1。
在804,進行自變量兼容性的檢查。對于每個φ∈Δ2,檢查是否φ不包含兩個具有相同函數(shù)符號的原子。如果有,則中止。否則設Δ3=Λ2。
在806,將變量對齊。重命名Λ3中的變量以獲得Λ4滿足
(a)對于Λ4中的每一個函數(shù)符號f以及任意兩個v=f(u)和y=f(x)形式的等式,v是和y相同的變量,且u是和x相同的變量序列。
(b)對于每兩個不同的函數(shù)符號f和g,以及Δ4中任意兩個v=f(u)和y=g(x)形式的等式,v和y是不同的變量。
如果這不可能,則中止。
在808,消除限制原子。選擇Λ4中函數(shù)符號的某種排序f1,...,fk。設Δ0=Λ4。對于n=1,...,k-1,設Δn+1={φ′φ∈Δn},其中φ′是如下從φ獲得。設ψ為從前提中移除fn+1-限制原子后的φ。如果Δn*ψ,設φ′=ψ;否則設φ′=φ。無論在哪種情形中,都有Δn+1≡Δn。設Λ5=Δk。
在801,消除具有限制原子的約束。設Δ6為根據(jù)以下測試不能被消除的約束集合φ∈Λ5如果
(a)φ在前提中包含f-限制原子,并且
(b)不存在結(jié)論中有f-限制原子且在前提中沒有f-限制原子的約束ψ∈Λ5,則φ能被消除。
在812,進行受限制約束的檢查。設Λ為Λ6中不受限制的約束集合。如果存在任何φ∈Λ6使
則中止。否則設Λ7=Λ。
在814,進行依存關(guān)系的檢查。對于每個φ∈Λ7和φ中每個變量v,定義Dφ,v如下。如果v不是項變量,則設Dφ,v={v}。如果v是項變量且v=f(u)是其在φ中的定義等式,則設Dφ,v=∪u∈{u}Dφ, u。直觀地,Dφ,v是v所依賴的變量集合。設Vφ=在φ的結(jié)論中出現(xiàn)的變量集合。對于Vφ中每個項變量v,檢查是否Dφ,v=∪u∈VφDφ,u。如果此檢查失敗,則中止。否則設Λ8=Λ7。
在816,合并依存關(guān)系。設Λ9={ψΦ≠ΦΛ8},其中ψΦ定義如下。如果存在出現(xiàn)在每個∈Φ中的函數(shù)f,則ψΦ的前提由Φ中所有前提中的原子組成,且ψΦ的結(jié)論由Φ的所有結(jié)論中的原子組成(移除重復的原子)。否則,ψΦ是Φ中的某個約束。注意Λ9Λ8,因為ψ{φ}=φ。
在818,移除冗余約束。選擇某個集合Λ10Λ9使對于每個φ∈Λ9都有Λ10φ,并使此對Λ10的任意本征子集不成立。
此外,在818,具有
變量的函數(shù)被替換。設Λ11={φ′φ∈Λ10},其中φ′的前提是移除其中所有等式后的的φ前提,且φ′的結(jié)論是φ中的等同的左邊所出現(xiàn)的所有變量被存在地量化后的φ的結(jié)論。
在802,消除非必要的
變量。設Λ12={φ′φ∈Λ11),并返回Λ12,其中φ′類似于φ,但其中未在結(jié)論原子中出現(xiàn)的被存在地量化的變量(以及其對應的存在量詞)已被移除。
示例8.考慮算法解除斯柯倫化(∑13i)對于i∈{1,2,3)的三次運行。令為以下(已解嵌套的)SOCQ=-依存關(guān)系集合
γ1R1(y),R2(x),y=f(x)→T1(x)
γ2R2(x),y=f(x)→T2(y)
γ3R2(x),y=f(x)→R1(y)
為完整性起見,注意每個∑13i是通過首先解除斯柯倫化由∑12i和∑23i所給定的如下所示的CQ=-映射關(guān)系,然后調(diào)用SOCQ=合成
依存關(guān)系α1、α2、α3、β1、β2被指定為
α1R1(x)→S1(x)
α2
α3S2(zy)→R1(z)
β1S2(zy)→T2(z)
β2S1(x),S2(xy)→T1(y)
在解除斯柯倫化(∑13i)的所有三次運行中,過程802和804通過,因為γ1、γ2、γ3中的每一個都是無環(huán)路的,并且沒有多個具有同一函數(shù)符號的原子。過程806沒有效果,因為依存關(guān)系的變量名已被對齊。其余過程在以下解釋。
在解除斯柯倫化({γ1})的運行中,過程808沒有效果,因為{γ1}是單元素集合。其唯一的成員γ1在過程810中被消除,因為{γ1}中沒有在結(jié)論中具有f-限制原子的規(guī)則。直觀地,γ1是重言式的,因為可構(gòu)建其范圍與R1不相交的f。因此,{γ1}等價于空約束集合,這在IC(CQ)中是平凡的。
在解除斯柯倫化({γ1,γ2})的運行中,γ2在其結(jié)論中包含f-限制原子T2。因此,受限制的約束γ1不能在過程810中被消除,因此解除斯柯倫化在過程812中止。
在解除斯柯倫化({γ1,γ2,γ3})的運行中,盡管有γ2,解除斯柯倫化仍是可能的。在過程808,Δ0={γ1,γ2,γ3}。通過考慮唯一函數(shù)符號f,取Δ1{ψ,γ2,γ3}≡Δ0,其中ψ是通過從γ1的前提中如下消除限制原子R1(y)來獲得的
ψ=R2(x),y=f(x)→T1(x)。
很明顯,Δ0*ψ,因為Δ0{γ1,γ3}*ψ。Δ1沒有限制約束,所以過程810沒有效果,且過程812通過。過程814成功,并有Λ8=Λ7={ψ,γ2,γ3},因為Δ1中的每個依存關(guān)系在其結(jié)論中至多有一個項變量y。例如,對γ3進行計算產(chǎn)生Vγ3={x,y},Dγ3,x=Dγ3,y=∪u∈Vγ3 Dγ3,u={x}。在過程816中,為Φ=Λ8合并依存關(guān)系產(chǎn)生
γ4=R1(y),R2(x),y=f(x)→T1(x),T2(y),R1(y)(合并由Λ8的本征子集產(chǎn)生,為簡化起見未示出。)在過程818中,包括ψ、γ2、γ3的冗余約束被移除,因為它們和γ4有相同的前提,且它們的結(jié)論為γ4的結(jié)論所包含;結(jié)果是Λ10={γ4}。最后,在818,用γ4中的存在變量替換函數(shù)f產(chǎn)生
因此,解除斯柯倫化({γ1,γ2,γ3})IC(CQ)
定理7.如果解除斯柯倫化(∑)在輸入∑IC(SOCQ=)上成功,則Σ′=解除斯柯倫化(∑)滿足
∑′IC(CQ=)且∑′≡∑。
以下從該算法的描述推出。
命題3.
1.當且僅當解除斯柯倫化(∑)到達過程816時,它在輸入∑IC(SOCQ=)上成功,這可在大小為∑的多項式時間中檢查。
2.此外,如果對于某個獨立于∑的變量l,對于Λ8中的每個函數(shù)符號,f至多在Λ8中的l個規(guī)則中發(fā)生,則解除斯柯倫化(∑)在大小為∑的多項式時間中運行。
從命題3的第一部分,推出CQ=合成(∑12,∑23)能在多項式時間中被成功檢查的充分條件,因為斯柯倫化的結(jié)果的大小與其輸入的大小是多項式關(guān)系,還因為可在多項式時間為SOCQ=合成(∑′12,∑′23)的中止檢查充分條件。
因為解除斯柯倫化(∑)由于過程816而可能產(chǎn)生和∑的大小成指數(shù)比例的大小的結(jié)果,所以CQ=合成(∑12,∑23)可能產(chǎn)生和∑12∪∑23的大小成指數(shù)比例的大小的結(jié)果。以下示例示出在一般情形這是不可避免的。但是,命題3的第二部分示出,我們能夠有效檢查不但確保解除斯柯倫化成功,還確保其在多項式時間內(nèi)中止的更具限制性的條件。
定理8.對于任何亞指數(shù)函數(shù)f,都有(σ1,σ2,∑12)和(σ2,σ3,∑23)給定的源到目標的CQ-映射關(guān)系m12和m23,使得對于任何大小小于f(s)的∑13,m13=m12·m23是并非由(σ1,σ3,∑13)給定的CQ-映射關(guān)系,其中s是∑12∪∑23的大小。
證明.(概述)選擇足夠大的k,使f(2kl)<2k,其中l(wèi)是以下最長約束的大小(其中9的長度大約是18+logk個字符)。這一k必定存在,因為f是亞指數(shù)的。設[k]={1,...,k)??紤](σ1,σ2,∑12)和(σ2,σ3,∑23)所給定的CQ=-映射關(guān)系m12和m23,其中
∑12是
Ri(x)→Si(x)
∑23是S0(xy),Si(x)→Ti(y)i∈[k],并且其中σ1={Rii∈{0,...,k}}、σ2={Sii∈{0,...,k}}、且σ3={Tii∈[k]}。合成m13=m12·m13是由以下約束的集合∑13所給定
以使Z[k],其中RZ(x)=i∈ZRi(x),對于TZ也是類似的。另一方面,m13不是由任何(σ1,σ3,∑)所給定的,其中∑有少于2k-1個約束。
域、范圍和其它算子
合成是取模型和/或映射關(guān)系作為輸入,并給出模型和/或映射關(guān)系作為輸出的算子之一。合成可使用組合或其它算子來執(zhí)行,這些算子進而可使用如上簡述的類似技術(shù)來實現(xiàn)。這些其它算子包括
域 dom(m)
范圍rng(m)
交集A∩B
恒等id(A)
叉乘A×B
交 m1∩m2
逆 m-1
這些算子定義如下。
A∩B={AA∈A,A∈B}。
id(A)={<A,A>A∈A}。
A×B={<A,B>A∈A,B∈B}。
m1∩m2={<A,B><A,B>∈m1<A,B>∈m2}。
m-1={<B,A>(A,B>∈m}。
在具有簽名的關(guān)系型情形中,簽名與每個模型相關(guān)聯(lián),且輸入和輸出簽名與每個映射關(guān)系相關(guān)聯(lián),并且這些算子上的明顯簽名兼容性是必須的。
命題4.每個ΛCQ0在恒等、叉乘和交集下是閉合的。
證明.如果m12和m34是由(σ1,σ2,∑12)和(σ3,σ4,∑34)給定的,且A和B是由(σ1,∑1)和(σ2,∑2)給定的,則
·A×B由(σ1,σ2,∑1∪∑2)給定。
·A∩B由(σ1,∑1∪∑2)給定(此處σ1=σ2)。
·m12∩m34由(σ1,σ2,∑12∪∑x)給定(此處σ1=σ3,且σ2=σ4)。
為表達恒等,參考第三輔助簽名σ2′(通常被忽略),對于σ2中的每個關(guān)系符號R,它包含相同元數(shù)的關(guān)系符號。在此實例中,σ1=σ2,因此
·id(A)由(σ1,σ1,σ1′,∑1∪∑)給定,其中對于σ1中的每個R,∑由以下形式的兩個約束組成
(x)(Rx→R′x)
(x)(R′x→Rx)
命題5.算子、合成、范圍和域的每一個都能被相互約簡。
證明.假設
·m12由(σ1,σ2,∑12)給定,
·m23由(σ2,σ3,∑23)給定,

·m1由(σ1 ∪σ3,σ2,∑12∪∑23)給定,
·m2由(σ2,σ1∪σ3,∑12∪∑23)給定,
·dom(m1)由(σ1∪σ3,∑1)給定,且
·rng(m2)由(σ1∪σ3,∑2)給定,
則m12·m23由(σ1,σ3,∑1)并由(σ1,σ3,∑2)給定。
這證明合成可由域或范圍來表達。
反過來,假設
·m12由(σ1,σ2,∑12)給定。

·m21由(σ2,σ1,)給定
·m12·m21由(σ1,σ1,∑1)給定,且
·m21·m12由(σ2,σ2,∑2)給定,
則dom(m12)和rng(m12)分別由以下兩者給定
(σ1,∑1)和(σ2,∑2)
這證明域和范圍可由合成表達。
所考慮的所有語言都滿足命題4的前提。因此,命題5表明在合成和求逆下,注意力可集中在閉合上。注意,如果Λ-映射關(guān)系m由(σ1,σ2,∑12)給定,則其逆由(σ2,σ1,∑12)給定。但是,Λ上的約束可能使第二表達式不再給出Λ-映射。例如,“源到目標”表達式出現(xiàn)這種情況。相反,CQ0=、CQ=和SOCQ=映射關(guān)系在求逆下是閉合的,所以研究組合就足夠了。
命題5隱含可用來實現(xiàn)域和范圍的任何算法過程可被用來實現(xiàn)合成。這可以通過調(diào)用以上給出的算法來直接實現(xiàn),或通過首先執(zhí)行域和范圍算子,然后使用其結(jié)果獲得合成來間接實現(xiàn)。
計算環(huán)境
現(xiàn)在參考圖9,圖示出可用于執(zhí)行所揭示的體系結(jié)構(gòu)的計算機的框圖。為了給本發(fā)明的各個方面提供其它上下文,圖9和以下討論旨在提供可在其中實現(xiàn)本發(fā)明的各個方面的合適的計算環(huán)境900的簡要的一般描述。盡管以上在可在一個或多個計算機上運行的計算機可執(zhí)行指令的通用上下文中描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員可以認識到,本發(fā)明還可結(jié)合其它程序模塊,和/或作為硬件和軟件的結(jié)合來實現(xiàn)。
一般而言,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)、等等。此外,本領(lǐng)域技術(shù)人員將會理解,本發(fā)明方法可用其它計算機系統(tǒng)配置來實施,包括單處理器或多處理器計算機系統(tǒng)、小型計算機、大型計算機、以及個人計算機、手持式計算設備、基于微處理器的或可編程的消費者電子設備、等等,其中每一個操作上都可被耦合到一個或多個相關(guān)聯(lián)的設備。
所示出的本發(fā)明的方面還可在分布式計算環(huán)境中實施,其中某些任務是由通過通信網(wǎng)絡連結(jié)的遠程處理設備來執(zhí)行的。在分布式計算環(huán)境中,程序模塊可位于本地和遠程記憶存儲設備中。
計算機通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能由計算機訪問的任何可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù),CD-ROM、數(shù)字視頻盤(DVD)或其它光盤存儲,磁帶盒、磁帶、磁盤存儲或其它磁存儲設備,或可用來存儲所需信息并可由計算機訪問的任何其它介質(zhì)。
通信介質(zhì)通常具體化為諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制信號”指以在信號中對信息編碼的方式設置或改變其一個或多個特征的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡或直接連線連接等有線介質(zhì),及諸如聲學、RF、紅外及其它無線介質(zhì)等無線介質(zhì)。以上的任意組合也應被包括在計算機可讀介質(zhì)的范疇內(nèi)。
再次參考圖9,圖示出包括計算機902的用于實現(xiàn)本發(fā)明的各個方面的示例性環(huán)境900,計算機902包括處理單元904、系統(tǒng)存儲器906和系統(tǒng)總線908。系統(tǒng)總線908將包括,但不限于,系統(tǒng)存儲器906在內(nèi)的系統(tǒng)組件耦合到處理單元904。處理單元904可以是各種市場上可購買的處理器中的任何一種。雙微處理器和其它多處理器體系結(jié)構(gòu)也可作為處理單元904使用。
系統(tǒng)總線908可以是若干類型的總線結(jié)構(gòu)中的任何一種,該總線結(jié)構(gòu)還可被互連到存儲器總線(帶或不帶存儲器控制器)、外圍總線、和使用各種市場上可購買的總線體系結(jié)構(gòu)中的任何一種的局部總線。系統(tǒng)存儲器906包括只讀存儲器(ROM)910和隨機存取存儲器(RAM)912?;据斎?輸出系統(tǒng)(BIOS)存儲在諸如ROM、EPROM、EEPROM等非易失性存儲器910中,BIOS包含諸如在啟動期間幫助在計算機902內(nèi)部各元件之間傳遞信息的基本例程。RAM 912還可包括諸如用于高速緩存數(shù)據(jù)的靜態(tài)RAM等高速RAM。
計算機902還包括內(nèi)置硬盤驅(qū)動器(HDD)914(例如,EIDE、SATA)(內(nèi)置硬盤驅(qū)動器914還可被配置成在合適的機箱(未示出)中的外置使用)、軟磁盤驅(qū)動器(FDD)916(例如,讀或?qū)懣梢苿哟疟P918)和光盤驅(qū)動器920(例如,讀CD-ROM盤922,或者讀或?qū)懼T如DVD等其它高容量光介質(zhì))。硬盤驅(qū)動器914、磁盤驅(qū)動器916和光盤驅(qū)動器920可分別由硬盤驅(qū)動器接口924、磁盤驅(qū)動器接口926和光盤驅(qū)動器接口928連接到系統(tǒng)總線908。供外置驅(qū)動器實現(xiàn)使用的接口924包括通用串行總線(USB)和IEEE 1394接口技術(shù)中的至少一種或兩種。
各驅(qū)動器及其相關(guān)聯(lián)的計算機可讀介質(zhì)提供數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機可執(zhí)行指令等的非易失性存儲。對于計算機902而言,各驅(qū)動器及介質(zhì)容納適當數(shù)字格式的任何數(shù)據(jù)的存儲。盡管以上對計算機可讀介質(zhì)的描述指HDD、可移動軟盤、和諸如CD或DVD等可移動光盤,但是本領(lǐng)域技術(shù)人員應當理解,計算機可讀的其它類型的介質(zhì),諸如zip驅(qū)動器、磁帶、閃存卡、卡式磁帶盒等,也可在示例性操作環(huán)境中使用,此外,任何此類介質(zhì)可包含用于執(zhí)行本發(fā)明的方法的計算機可執(zhí)行指令。
若干程序模塊可被存儲在各驅(qū)動器和RAM 912中,包括操作系統(tǒng)930、一個或多個應用程序932、其它程序模塊934和程序數(shù)據(jù)936。操作系統(tǒng)、應用程序、模塊、和/或數(shù)據(jù)的全部或部分可被高速緩存在RAM 912中。應理解,本發(fā)明可用各種市場上可購買的操作系統(tǒng)或若干種操作系統(tǒng)的組合來實現(xiàn)。
用戶可通過例如鍵盤938和諸如鼠標940等定位設備等一個或多個有線/無線輸入設備,將命令和信息輸入到計算機902中。其它輸入設備(未示出)可包括話筒、IR遙控、操縱桿、游戲墊、記錄筆、觸摸屏、等等。這些及其它輸入設備常常通過耦合到系統(tǒng)總線908的輸入設備接口942連接到處理單元904,但也可通過諸如并行接口、IEEE 1394串行端口、游戲端口、USB端口、IR接口等其它接口連接。
監(jiān)視器944或其它類型的顯示設備也經(jīng)由諸如視頻適配器946等接口連接到系統(tǒng)總線908。除了監(jiān)視器944以外,計算機通常包括諸如揚聲器、打印機等其它外圍輸出設備(未示出)。
計算機902可使用經(jīng)由有線和/或無線通信到諸如遠程計算機948等一個或多個遠程計算機的邏輯連接,在聯(lián)網(wǎng)環(huán)境中工作。遠程計算機948可以是工作站、服務器計算機、路由器、個人計算機、便攜式計算機、基于微處理器的娛樂裝置、對等設備或其它普通網(wǎng)絡節(jié)點,并通常包括以上相對于計算機902所描述的許多或所有元件,盡管出于簡化目的,僅示出一記憶存儲設備950。所示邏輯連接包括到局域網(wǎng)(LAN)952或例如廣域網(wǎng)(WAN)954等較大網(wǎng)絡的有線/無線連接。此類LAN和WAN網(wǎng)絡環(huán)境常見于辦公室和公司,并便于實現(xiàn)諸如內(nèi)聯(lián)網(wǎng)等企業(yè)范圍的計算機網(wǎng)絡,所有這些網(wǎng)絡可連接到例如因特網(wǎng)等全球通信網(wǎng)絡。
當在LAN網(wǎng)絡環(huán)境中使用時,計算機902通過有線和/或無線通信網(wǎng)絡接口或適配器956連接到局域網(wǎng)952。適配器956可便于到LAN 952的有線或無線通信,LAN 952還可包括布置在其上的無線接入點,用于與無線適配器956進行通信。
當在WAN網(wǎng)絡環(huán)境中使用時,計算機902可包括調(diào)制解調(diào)器958,或者被連接到WAN 954上的通信服務器,或具有通過WAN 954建立通信的其它裝置,諸如通過因特網(wǎng)??梢允莾?nèi)置的或外置的、有線或無線設備的調(diào)制解調(diào)器958經(jīng)由串行端口接口942連接到系統(tǒng)總線908。在聯(lián)網(wǎng)環(huán)境中,相對于計算機902所描述的程序模塊或其部分可存儲在遠程存儲器/存儲設備950中??梢岳斫?,所示網(wǎng)絡連接是示例性的,且可使用在計算機之間建立通信鏈路的其它裝置。
計算機902可用于與操作上布置在無線通信中的任何無線設備或?qū)嶓w通信,例如,打印機、掃描儀、臺式和/或便攜式計算機、便攜式數(shù)據(jù)助理、通信衛(wèi)星、與無線可檢測標簽相關(guān)聯(lián)的任何設備或位置(例如,電話亭、報攤、休息室)、以及電話。這至少包括Wi-Fi和BluetoothTM(藍牙)無線技術(shù)。因此,通信可以是如常規(guī)網(wǎng)絡等預定義的結(jié)果,或僅僅是至少兩個設備之間的特定通信。
Wi-Fi,或稱無線保真,允許從家里的靠椅、酒店房間的床、工作處的會議室到因特網(wǎng)的無線連接。Wi-Fi類似于蜂窩電話中所使用的無線技術(shù),它所使用的無線技術(shù)使例如計算機等設備在基站范圍內(nèi)的任何地方在室內(nèi)或室外發(fā)送和接收數(shù)據(jù)。Wi-Fi網(wǎng)絡使用稱為IEEE 802.11(a、b、g等)無線電技術(shù)來提供安全、可靠、快速的無線連接。Wi-Fi網(wǎng)絡可用于將計算機連接到其它計算機、因特網(wǎng)和有線網(wǎng)絡(使用IEEE 802.3的有線網(wǎng)絡或以太網(wǎng))。Wi-Fi網(wǎng)絡以例如11Mbps(802.11a)或54Mbps(802.11b)的數(shù)據(jù)率在未注冊的2.4和5GHz無線電波段工作,或用包含兩個波段(雙波段)的產(chǎn)品工作,因此該網(wǎng)絡能提供類似于在許多辦公室中使用的10BaseT有線以太網(wǎng)的實際性能。
現(xiàn)在參考圖10,圖示出根據(jù)本發(fā)明的示例性計算環(huán)境1000的示意性框圖。系統(tǒng)1000包括一個或多個客戶機1002??蛻魴C1002可以是硬件和/或軟件(例如,線程、進程、計算設備)。客戶機1002可通過使用本發(fā)明來容納例如cookie和/或相關(guān)聯(lián)的上下文信息。
系統(tǒng)1000還包括一個或多個服務器1004。服務器1004也可以是硬件和/或軟件(例如,線程、進程、計算設備)。例如,服務器1004可通過使用本發(fā)明來容納執(zhí)行轉(zhuǎn)換的線程。客戶機1002和服務器1004之間一種可能的通信可以是適用于在兩個或多個計算機進程之間被發(fā)送的數(shù)據(jù)分組的形式。數(shù)據(jù)分組可包括例如cookie和/或相關(guān)聯(lián)的上下文信息。系統(tǒng)1000包括通信框架1006(例如,諸如因特網(wǎng)等全球通信網(wǎng)絡),該通信框架1006可用來便于在客戶機1002和服務器1004之間的通信。
經(jīng)由有線(包括光纖)和/或無線技術(shù),可促進通信??蛻魴C1002操作上連接到一個或多個客戶機數(shù)據(jù)存儲1008,它們可用來將信息本地存儲到客戶機1002中(例如,cookie和/或相關(guān)聯(lián)的上下文信息)。類似地,服務器1004操作上連接到一個或多個服務器數(shù)據(jù)存儲1010,它們可用來將信息本地存儲到服務器1004。
以上所述包括本發(fā)明的若干示例。當然,出于描述本發(fā)明的目的,要描述組件和方法的每一種可構(gòu)想的組合是不可能的,但是本領(lǐng)域普通技術(shù)人員可以認識到,本發(fā)明的許多其它組合和變更是可能的。因此,本發(fā)明旨在包括所有這些落入所附權(quán)利要求書范圍之內(nèi)的替換、修改和變體。此外,在詳細描述或權(quán)利要求書中使用術(shù)語“包括”的意義上,此類術(shù)語意圖如術(shù)語“包含”那樣為包含性的,如“包含”在權(quán)利要求書中用作過渡詞所解釋的。
權(quán)利要求
1.一種便于數(shù)據(jù)映射的系統(tǒng),包括
合成組件,它使用推論過程合成輸入模式映射關(guān)系,以獲得需要在所述合成映射關(guān)系中出現(xiàn)的所有約束的有窮公理。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述推論過程是包括消解的完整推論過程。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述推論過程就中止和產(chǎn)生正確結(jié)果受到檢查。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述輸入模式映射關(guān)系是由嵌入的依存關(guān)系來表達的,并被斯柯倫化以獲得由二階依存關(guān)系表達的模式映射關(guān)系。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述公理包括有窮二階公理,所述有窮二階公理被解除斯柯倫化以獲得由一階約束所表達的模式映射關(guān)系。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述由嵌入依存關(guān)系表達的輸入模式映射關(guān)系被斯柯倫化以獲得由二階依存關(guān)系表達的中間模式映射關(guān)系。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述有窮公理是對輸入和輸出簽名上的所有約束計算的,所述簽名可從給出所述中間模式映射關(guān)系的約束推導出。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,執(zhí)行檢查以確定在所述有窮公理中是否出現(xiàn)(z),R(y)→R(x)形式的約束,以使
(z)是S1∪S3上原子的邏輯乘;
(z)中沒有滿足{x}{w}的原子R(w);
{x}不是{y}的子集;并且
R是模式S2中的關(guān)系符號。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,第一過程計算算子域和算子范圍中的至少一個,以使所述輸入模式映射關(guān)系是使用所述第一過程來合成的。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述推導過程是在合成三個或更多映射關(guān)系的序列時實際上同時對所述輸入模式映射關(guān)系中存在的所有約束執(zhí)行的。
11.一種計算機可讀介質(zhì),其上存儲如權(quán)利要求1所述的組件。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述模式映射關(guān)系是由完全、嵌入、和二階依存關(guān)系中的至少一個表達的,其中所述二階依存關(guān)系無需是源到目標的形式。
13.一種映射數(shù)據(jù)的方法,包括
通過使用一種推論過程,用一種合成組件來合成輸入模式映射關(guān)系,以獲得在所述合成映射關(guān)系中需要出現(xiàn)的所有約束的有窮公理。
14.如權(quán)利要求13所述的方法,其特征在于,還包括對有窮二階公理進行解除斯柯倫化,以獲得由一階約束表達的模式映射關(guān)系。
15.如權(quán)利要求14所述的方法,其特征在于,所述對有窮公理進行解除斯柯倫化的動作還包括對二階依存關(guān)系進行解嵌套的動作。
16.如權(quán)利要求14所述的方法,其特征在于,所述對有窮公理進行解除斯柯倫化的動作還包括重命名約束中的變量,以使包含同一函數(shù)符號的所有項被統(tǒng)一。
17.如權(quán)利要求16所述的方法,其特征在于,還包括通過考慮所有約束對來重命名所述變量,這可以在多項式時間中完成。
18.如權(quán)利要求14所述的方法,其特征在于,所述對有窮公理進行解除斯柯倫化的動作還包括消除包含被界定到斯柯倫項的變量的原子的動作。
19.如權(quán)利要求13所述的方法,其特征在于,還包括以下動作
對由嵌入依存關(guān)系表達的所述輸入模式映射關(guān)系進行斯柯倫化,以獲得由二階依存關(guān)系表達的中間模式映射關(guān)系;
計算輸入和輸出簽名上的所有約束的有窮公理,所述簽名可從給出所述中間模式映射關(guān)系的約束中推導出;以及
對所述有窮公理進行解除斯柯倫化,以獲得由嵌入依存關(guān)系表達的模式映射關(guān)系。
20.一種便于數(shù)據(jù)映射的系統(tǒng),包括
用于使用推論過程用合成組件合成輸入模式映射關(guān)系,以獲得需要在所述合成映射關(guān)系中出現(xiàn)的所有約束的有窮公理的裝置;
用于對由嵌入依存關(guān)系表達的所述輸入模式映射關(guān)系進行斯柯倫化,以獲得由二階依存關(guān)系表達的模式映射關(guān)系的裝置;以及
用于對有窮二階公理進行解除斯柯倫化,以獲得由一階約束表達的模式映射關(guān)系的裝置。
全文摘要
一種便于對模式映射關(guān)系進行合成的系統(tǒng)。提供一種用于合成一類寬泛的映射關(guān)系的一般算法,其中兩個映射關(guān)系之一或兩者不是函數(shù),而是諸如兩種模式之間的約束和函數(shù)之逆等的約束。一種合成組件對若干異類數(shù)據(jù)源的模式映射關(guān)系進行合成,這些模式映射關(guān)系可由完全、嵌入和二階依存關(guān)系中的至少一種來表達,其中二階依存關(guān)系無須是源到目標的形式。此用于合成的算法還包括測試該合成算法是否將終止的過程。
文檔編號G06F17/30GK1790323SQ20051012502
公開日2006年6月21日 申請日期2005年11月14日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者A·P·納什, P·A·伯恩斯泰因, S·梅爾尼克 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
仁化县| 古丈县| 尚义县| 历史| 图们市| 泸定县| 黎平县| 高台县| 张家界市| 深水埗区| 南京市| 阿拉善左旗| 儋州市| 阜平县| 江西省| 朝阳市| 神池县| 瑞丽市| 博爱县| 丹阳市| 宁蒗| 昌吉市| 宁乡县| 通辽市| 西和县| 泌阳县| 鄢陵县| 安化县| 报价| 云浮市| 庆云县| 常德市| 临湘市| 句容市| 井陉县| 河东区| 日喀则市| 贺兰县| 山阳县| 清新县| 石河子市|