專利名稱:使用推理邏輯的協(xié)同處理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用推理邏輯(inference logic)電子處理對于結(jié)果的請求的方法和設(shè)備。在特定的實(shí)施例中,它針對使用基于計算機(jī)的推理邏輯協(xié)同處理來自多方的輸入的方法和設(shè)備,其中,各方的專用輸入不公開給其它方。
背景技術(shù):
在本說明書的結(jié)尾提供這里使用的一些術(shù)語的術(shù)語表。提供在術(shù)語表中包含的例子和解釋是為了澄清或解釋的目的,不是為了限制。
由于推理規(guī)則的宣示性的本性意味著它們可很容易地限定商業(yè)規(guī)則,并且推理規(guī)則可被迅速修改以反映變化的商業(yè)要求,因此,商業(yè)正越來越多地使用推理邏輯以使處理自動化。簡單而言,推理是通過在工作區(qū)(workspace)中應(yīng)用推理規(guī)則從已知的事實(shí)得出新的事實(shí)的過程。在本上下文中,‘事實(shí)’表示實(shí)體的已知值(例如,“CUSTOMER=Company-A”,這里,‘Company-A’可以是簡單值或復(fù)雜結(jié)構(gòu)的當(dāng)前狀態(tài)),而‘規(guī)則’表示事實(shí)之間的關(guān)系,并且一般采用“如果A,那么B”的形式(例如,“如果CUSTOMER=Company-A,那么DISCOUNT=10%”)。
更一般地,推理邏輯通過解析(resolve)一般是事實(shí)和規(guī)則但也可包含工作區(qū)中的其它構(gòu)造(例如,約束)的推理目標(biāo)得出結(jié)果?!肮ぷ鲄^(qū)”是存儲器中對于給定計算解析推理目標(biāo)的區(qū)域。推理邏輯確定目標(biāo)以根據(jù)已解析的初始輸入和目標(biāo)解析下一個,并在該結(jié)果所需要的所有目標(biāo)都已被解析時產(chǎn)生結(jié)果。這意味著,如果一個或更多個所需要的目標(biāo)不能被解析,那么不產(chǎn)生結(jié)果。推理邏輯從一般包含一個或更多個數(shù)據(jù)倉庫(data store)的知識庫檢索目標(biāo),但是其它的實(shí)現(xiàn)是可能的。推理邏輯可作為常被稱為推理引擎(inference engine)的專用邏輯被實(shí)現(xiàn),或者可以作為諸如應(yīng)用程序的更大的邏輯塊的一部分被包含。Adrian A.Hopgood在Intelligent Systems for Engineers andScientists(CRC出版社,2000年,第2版)提供了推理邏輯的介紹和基于知識的系統(tǒng)(以及其它智能系統(tǒng))的實(shí)際應(yīng)用。
諸如因特網(wǎng)的通信網(wǎng)絡(luò)越來越多地被各合作方(cooperatingparty)使用,用于信息的交換和用于協(xié)同任務(wù)(undertaking)和處理。使這些協(xié)同處理自動化常常需要計算任務(wù)基于多于一方的輸入的合作計算。
常規(guī)的命令式編程可被用于實(shí)現(xiàn)自動化的協(xié)同處理。命令式編程描述程序狀態(tài)方面的計算和改變程序狀態(tài)的語句。命令式程序(例如,以諸如COBOL、C、C++、Java等的語言寫成的程序)是計算機(jī)執(zhí)行的一系列命令。方法(recipe)是常見的類推法;各個步驟是指令并且實(shí)體世界保持該狀態(tài)。使用命令式編程,控制計算的邏輯被嵌入各單個系統(tǒng)的代碼中。
這些系統(tǒng)的主要缺點(diǎn)由于程序邏輯包含許多或全部商業(yè)規(guī)則而產(chǎn)生。這意味著,每當(dāng)商業(yè)規(guī)則改變到它們在如何處理方面需要改變的程度時,程序邏輯必須被重新評價、被修改和被重新測試。由于改變系統(tǒng)以匹配新的商業(yè)規(guī)則會根據(jù)系統(tǒng)代碼以及實(shí)現(xiàn)改變的難度花費(fèi)幾個月或者甚至幾年,因此使系統(tǒng)與商業(yè)規(guī)則保持一致需要一些先見之明。
由于命令式編程基于狀態(tài),因此輸入和輸出依據(jù)一般以參數(shù)(名稱,值對(value pair))表示的值。使用命令式編程實(shí)現(xiàn)定制的自動化的協(xié)同處理方案要求系統(tǒng)之間的通信依據(jù)參數(shù)。參數(shù)在被定義時必須使得它們在不同的系統(tǒng)中具有相同的意思,并且它們必須在系統(tǒng)之間被傳送并在系統(tǒng)之間被映射。
由于各個系統(tǒng)在與其連接的其它系統(tǒng)如何工作方面具有非常精確的期望值,因此這些系統(tǒng)被“緊密耦合”。這意味著,希望使協(xié)同處理自動化的各方必須一般在它們的系統(tǒng)的設(shè)計、購買和實(shí)現(xiàn)中合作以保證它們是相容的。當(dāng)一方希望與大量的其它方協(xié)作時,它必須規(guī)定、購買和安裝大量的不同系統(tǒng),或者在單一標(biāo)準(zhǔn)系統(tǒng)上與其它方達(dá)成一致。這些緊密耦合的系統(tǒng)還對變化十分敏感。常常是,如果一方更新其系統(tǒng),那么被更新的系統(tǒng)將不再與其它系統(tǒng)中的一些或全部相容。對大量各方組織同時的更新會是極其困難的,或者甚至是不可能的。實(shí)際上,這些方案只對于少量的合作方是可行的,并且通常僅由與它們的幾個長期伙伴連接的較大的組織使用。
一種簡化通信過程的方式是使用用于描述交易的標(biāo)準(zhǔn)化的格式,例如電子數(shù)據(jù)交換(EDI)。EDI為貿(mào)易伙伴之間的商業(yè)對商業(yè)交易提供通信方案。該標(biāo)準(zhǔn)指定在諸如采購定單、貨運(yùn)單據(jù)和發(fā)票的商業(yè)文件和帳票的交換中使用的格式、字符集和數(shù)據(jù)元素。該標(biāo)準(zhǔn)規(guī)定對特定文件哪些信息是強(qiáng)制的以及哪些是任選的,并對文件的結(jié)構(gòu)給出規(guī)則。貿(mào)易伙伴仍然必須對要被傳送的特定信息以及應(yīng)如何對其使用達(dá)成一致,并且這需要伙伴之間的詳細(xì)的程序和技術(shù)協(xié)議。典型的EDI布署需要6~18個月以共同設(shè)計、同意和實(shí)現(xiàn)將只在兩個公司之間使用的交易定義。雖然EDI幫助伙伴以標(biāo)準(zhǔn)化、自動化的方式通信,但交易以非常剛性的條件被限定,并且計算化的談判不被支持。
推理邏輯是用于實(shí)現(xiàn)自動化的協(xié)同處理的命令式編程時的顯然的替代方案。使用推理邏輯具有商業(yè)規(guī)則不被嵌入程序邏輯中的優(yōu)點(diǎn)。與改變用命令式編程實(shí)現(xiàn)的系統(tǒng)相比,可更容易、更迅速和更可靠地被結(jié)合新的商業(yè)規(guī)則。
另外,推理規(guī)則固有地非常靈活,因此它們很好地適于描述商業(yè)交易。仍需要對用于描述交易的基本項(fundamental term)達(dá)成一致,但各方可使用規(guī)則以限定這些議定項如何與該方有關(guān)。另外,由于規(guī)則表達(dá)關(guān)系,不是如命令式編程中那樣只表達(dá)各值,因此它們可表達(dá)可談判項,并且計算化的談判是可能的。
存在用于使用推理邏輯進(jìn)行協(xié)同處理的提議。在電子商務(wù)的背景中,例如,電子市場(拍賣)被視為可通過使用推理邏輯被自動化的應(yīng)用。例如,Benjamin N.Grosof,Daniel Reeves和Michael P.Wellman在Proceedings of the Fifth International Conference on AutomatedAgents,2001中的題目為“Automated Negotiation and DeclarativeContract Descriptions”的文章中略述了用于通過使用推理引擎使經(jīng)濟(jì)合同自動化和商議這些經(jīng)濟(jì)合同并將合同描述成商業(yè)規(guī)則組的方法。但是,由于如果失去所需的目標(biāo)則已知的推理處理技術(shù)不能實(shí)現(xiàn)(resolve)結(jié)果,因此這些提議需要在事實(shí)上意味著一個推理引擎的一個工作區(qū)中執(zhí)行協(xié)同處理。因此,要通過使用已知的推理邏輯執(zhí)行協(xié)同處理,一方必須檢索和/或被發(fā)送來自所有協(xié)作方的輸入。如果任何一方都不能足夠確信知道所有的輸入,或者對被公開的專用輸入存在法律障礙,那么協(xié)同處理不能被完成,并且這些提議是不實(shí)際的。
密碼理論提出安全的分布式協(xié)議,以在不公開它們的值的情況下共享用于處理的專用輸入。這些協(xié)議依賴于可證實(shí)的秘密共享以提供仿效的被信任的第三方。由于表示加密的秘密所需要的相對大量的數(shù)據(jù)和預(yù)計的兩個通信圓(communication round)的最小值,因此一般存在相當(dāng)數(shù)量的與安全協(xié)議有關(guān)的網(wǎng)絡(luò)開銷。另外,復(fù)雜的加密計算導(dǎo)致較高的計算開銷。
在向商業(yè)應(yīng)用添加功能的背景中,普通的經(jīng)驗法則是,新功能的開銷大于50%表示實(shí)現(xiàn)的可行性應(yīng)被懷疑,并且100%的開銷意味著實(shí)現(xiàn)是不可接受的。安全協(xié)議顯著增加計算開銷,其增加量一般大于六個數(shù)量級(100,000,000%)。例如,Ioannis Ioannidis和AnanthGrama在Proceedings of the 36thHawaii International Conference onSystem Sciences,2003中的題目為“An Efficient Protocol for Yao’sMillionaires’Problem”的文章中,給出用于比較兩個數(shù)的有效協(xié)議并報告了用于通過使用Pentium III/450Mhz計算機(jī)比較兩個20位數(shù)的290毫秒的計算開銷。即使考慮100個CPU周期用于在沒有安全協(xié)議的情況下比較兩個(32位)數(shù),這也是每秒約3.5比每秒4,500,000的比例,該比例表示超過一百萬比一的開銷。
安全協(xié)議因此對于許多要求在短時幀中或者在更極端的情況下以接近實(shí)時的方式實(shí)施多個多方計算的商業(yè)應(yīng)用是不實(shí)際的。當(dāng)在地理分散的主機(jī)之間實(shí)施處理時,該問題得到解決。安全協(xié)議一般試圖提供“理想的”安全級,這等于由受信任的第三方執(zhí)行計算的情況。在真實(shí)世界中,如果理想的安全性對于實(shí)際使用不是足夠有效的,那么可優(yōu)選提供可接受的安全級的方案。犧牲一些安全性或公開一些關(guān)于專用數(shù)據(jù)的有限信息在實(shí)際中常常是可接受的。
本發(fā)明的目的在于,提供用于通過使用推理邏輯協(xié)同處理多方的輸入的實(shí)際方法和系統(tǒng),其中,對于一方不需要知道所有的輸入并且各方的專用輸入不向其它方公開。
發(fā)明內(nèi)容
在一種寬泛的形式中,本發(fā)明提供一種用使用推理邏輯的協(xié)同引擎(collaborative engine)電子處理對結(jié)果的請求的方法,其中,該方法包括根據(jù)一個或更多個未解析的(unresolvable)目標(biāo)產(chǎn)生部分結(jié)果的步驟。
一般地,提供不充分的目標(biāo)以解析請求,并且產(chǎn)生部分結(jié)果。
部分結(jié)果一般包含至少一個能夠部分解析被請求的結(jié)果的目標(biāo)。
該方法可包括識別能夠部分解析對于結(jié)果的請求的未解析的目標(biāo)的步驟,并且,部分結(jié)果根據(jù)識別的未解析的目標(biāo)產(chǎn)生。
該方法可包括檢索至少一個可檢索的目標(biāo)的步驟。每個可檢索的目標(biāo)是可通過對于目標(biāo)的請求被協(xié)同引擎檢索的目標(biāo)。每個個目標(biāo)可包含可被推理邏輯使用以解析對于結(jié)果的請求的事實(shí)、規(guī)則或其它結(jié)構(gòu)。對于結(jié)果的請求根據(jù)目標(biāo)被處理。如果提供不充分的目標(biāo),那么產(chǎn)生被請求的結(jié)果。
一般地,推理邏輯包含基于規(guī)則的邏輯。
在本說明書中,術(shù)語“推理引擎”意圖在于意味著尋求從數(shù)據(jù)庫或其它知識庫導(dǎo)出希望的信息的過程或執(zhí)行過程的設(shè)備。一般地,設(shè)備是計算裝置或計算系統(tǒng),并且過程由軟件驅(qū)動?!畢f(xié)同引擎’是適于處理來自或送往一般具有防止其間的信息的完全流通的一些安全限制的多個域或系統(tǒng)的信息的推理引擎。
根據(jù)一個或更多個未解析的目標(biāo)產(chǎn)生部分結(jié)果的步驟可包括產(chǎn)生一組未解析的目標(biāo)和未解析的目標(biāo)依賴的任何目標(biāo),以及將該組包含于部分結(jié)果中。該組未解析的目標(biāo)的子集可進(jìn)一步被產(chǎn)生并被包含于部分結(jié)果中。
產(chǎn)生部分結(jié)果的步驟還可包含屏蔽部分結(jié)果中的至少一個目標(biāo)。這可包含改變目標(biāo)或涉及該目標(biāo)的一個或更多個目標(biāo);和/或用僅對執(zhí)行屏蔽的協(xié)同引擎已知的產(chǎn)生的目標(biāo)或值或在與該引擎相同的安全域中的處理代替該目標(biāo)或該目標(biāo)中的值。
協(xié)同引擎可包含發(fā)送協(xié)同引擎、接收協(xié)同引擎或收發(fā)協(xié)同引擎。
在發(fā)送協(xié)同引擎的情況下,該方法還可包括以下步驟(i)包含具有對于結(jié)果的另一請求的部分結(jié)果并將另一請求傳送給至少一個另外的協(xié)同引擎或邏輯的執(zhí)行段;或(ii)存儲部分結(jié)果。在傳送另一請求前,可以從一個或更多個可檢索的目標(biāo)產(chǎn)生動態(tài)驗證標(biāo)志,用于包含該另一請求。產(chǎn)生的動態(tài)驗證標(biāo)志應(yīng)以前沒有作為動態(tài)驗證標(biāo)志被傳送給其它協(xié)同引擎。
在接收協(xié)同引擎的情況下,如果對于結(jié)果的請求包含至少一個能夠部分解析請求的結(jié)果的目標(biāo)并且該目標(biāo)不是可檢索的目標(biāo),那么對于結(jié)果的請求根據(jù)可檢索的目標(biāo)和包含于對于結(jié)果的請求中的至少一個目標(biāo)處理對于結(jié)果的請求。請求可包括用于確認(rèn)的動態(tài)驗證標(biāo)志。如果動態(tài)驗證標(biāo)志被確認(rèn),則對于請求的處理可前進(jìn)。否則,如果確認(rèn)失敗,則終止處理。
在收發(fā)協(xié)同引擎的情況下,如果對于結(jié)果的請求包含至少一個能夠部分解析請求的結(jié)果的目標(biāo),則根據(jù)可檢索的目標(biāo)和包含于對于結(jié)果的請求中的至少一個目標(biāo)處理請求。否則,根據(jù)可檢索的目標(biāo)處理請求。
在本發(fā)明的一個實(shí)施例中,用兩個或更多個協(xié)同引擎處理對于結(jié)果的請求。如果在可檢索的目標(biāo)內(nèi)提供不充分的目標(biāo),并且,如果包含于對于結(jié)果的請求中的至少一個目標(biāo)是可應(yīng)用的以使得協(xié)同引擎能夠解析被請求的結(jié)果,那么產(chǎn)生部分結(jié)果。該部分結(jié)果被包含于被傳送給至少一個另外的協(xié)同引擎的對于結(jié)果的另一請求內(nèi)。
本發(fā)明因此使得能夠通過使用推理邏輯多方處理一般的計算。通過使用“工作區(qū)鏈”,一個協(xié)同引擎的工作區(qū)可用的輸入盡可能地被解析,并且,基于該處理的部分結(jié)果產(chǎn)生并被傳送,用于在另一協(xié)同引擎的工作區(qū)中進(jìn)一步處理。對于可參于該鏈的工作區(qū)的數(shù)量沒有理論上的限制。另外,協(xié)同引擎可將響應(yīng)從啟動的協(xié)同引擎接收的部分結(jié)果產(chǎn)生的新的部分結(jié)果傳送回啟動的協(xié)同引擎。這樣,延長的商議可被有效支持。
由于部分結(jié)果一般只包含在特定計算中包含的一組目標(biāo)的子集,并且包含于特定計算中的一組目標(biāo)一般大大小于能夠解析計算的一組目標(biāo),因此引擎之間的各數(shù)據(jù)傳送的大小保持較小。另外,即使當(dāng)里面的值被屏蔽時,也常常是在兩個協(xié)同引擎之間只需要單一的傳送。這是對現(xiàn)有技術(shù)的顯著改進(jìn)。已知的推理技術(shù)必須傳送可包含于計算中的所有目標(biāo),或者在單獨(dú)的傳送中傳送各個目標(biāo)。安全協(xié)議必須傳送加密形式的附加數(shù)據(jù)并使用兩個或更多個傳送。
與計算最終結(jié)果相比,導(dǎo)出部分結(jié)果的計算開銷較少。這是因為將未解析的目標(biāo)添加到列表中然后遍歷(traverse)該列表的開銷比識別、檢索和解析這些目標(biāo)的開銷低。類似地,在屏蔽部分結(jié)果中包含的處理比用于完成幾乎大多數(shù)瑣碎的推理計算的處理少。因此,屏蔽部分結(jié)果的開銷一般明顯小于實(shí)際計算的處理。在最壞的情況下它也在其數(shù)量級內(nèi)。這是對屏蔽的開銷通常比處理計算大幾個數(shù)量級的安全協(xié)議的實(shí)質(zhì)性改進(jìn)。
本發(fā)明的另一益處在于,部分結(jié)果可被保存到例如磁盤或磁帶的永久存儲器中,然后,在另一輸入可用時被執(zhí)行。這允許推理處理暫停以等待要被發(fā)現(xiàn)的事實(shí),或重復(fù)使用一個部分結(jié)果以產(chǎn)生兩個或更多個隨后的被請求的結(jié)果。
本發(fā)明的另一益處在于,需要大量資源的計算可在多個協(xié)同設(shè)備之間被分開。本發(fā)明提供用于通過產(chǎn)生部分結(jié)果并將它們轉(zhuǎn)送給其它協(xié)同設(shè)備以繼續(xù)處理分開推理處理的一般機(jī)制。很容易理解,這種分開的布局可任意地復(fù)雜,使得接收另一處理的部分結(jié)果的任何協(xié)同設(shè)備可進(jìn)一步將該處理的多個部分委托給一個或更多其它協(xié)同設(shè)備。
在一些實(shí)施例中,根據(jù)可檢索的目標(biāo)和包含于對于結(jié)果的請求中的至少一個目標(biāo)處理對于結(jié)果的請求可包含在可檢索的目標(biāo)和包含于對于結(jié)果的請求中的目標(biāo)之間進(jìn)行區(qū)分,并可包含在處理中使用這種區(qū)分。
部分結(jié)果的產(chǎn)生可作為對于結(jié)果的請求的一部分或通過由推理邏輯推理被規(guī)定或禁止。如果部分結(jié)果被禁止,并且不是所有的被識別為能夠部分解析結(jié)果的目標(biāo)被解析,那么會產(chǎn)生錯誤。
本發(fā)明的方法可被應(yīng)用于許多實(shí)際應(yīng)用中。例如,對于結(jié)果的請求可以是以下請求(i)送往或來自通信網(wǎng)絡(luò)的用戶的對于電子通信用路由選擇通路的請求(并且該方法可包括檢索作為與為該用戶處理電子通信有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟);(ii)對于電話連接用路由選擇通路的請求(并且該方法可包括檢索作為與為該用戶確定電話連接用路由選擇通路有關(guān)的事實(shí)或規(guī)則的至少一個目標(biāo)的步驟);(iii)來自或送往網(wǎng)絡(luò)的用戶的對于通信消息用路由選擇通路的請求(并且該方法可包括檢索作為與為該用戶確定通信消息用路由選擇通路有關(guān)的事實(shí)或規(guī)則的至少一個目標(biāo)的步驟);(iv)對于電子數(shù)據(jù)網(wǎng)絡(luò)的部件的管理動作的請求(并且該方法可包括檢索作為與管理該部件有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟);(v)對于商業(yè)交易的請求(并且該方法可包括檢索作為與處理商業(yè)交易有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟);或者(vi)對于執(zhí)行辦公自動化、工作流程、日程表或文件管理處理的請求(并且該方法可視情況而定包括檢索作為與辦公自動化、工作流程、日程表或文件管理處理有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟)。
在另一方面中,本發(fā)明提供用使用推理邏輯的協(xié)同引擎電子處理對結(jié)果的請求的方法,其中,該方法包括根據(jù)一個或更多個可檢索的目標(biāo)處理部分結(jié)果的步驟。
在另一寬泛的形式中,本發(fā)明提供一種通過使用推理邏輯電子處理對于結(jié)果的請求的協(xié)同引擎,其中,協(xié)同引擎包含用于根據(jù)一個或更多個未解析的目標(biāo)產(chǎn)生部分結(jié)果的裝置。協(xié)同引擎適于在沒有足夠的目標(biāo)可用于解析請求的情況下產(chǎn)生部分結(jié)果。
在另一形式中,本發(fā)明提供一種通過使用推理邏輯電子處理對于結(jié)果的請求的協(xié)同引擎,其中,對于結(jié)果的請求包含部分結(jié)果,其中,協(xié)同引擎包含用于處理部分結(jié)果的裝置。
本發(fā)明的設(shè)備可被應(yīng)用于許多實(shí)際應(yīng)用中。例如,(i)協(xié)同引擎可與至少一個通信網(wǎng)絡(luò)連接并適于處理送往或來自通信網(wǎng)絡(luò)的用戶的對于電子通信用路由選擇通路的請求(在這種情況下,協(xié)同引擎可檢索作為與為該用戶處理電子通信有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo));(ii)協(xié)同引擎可與至少一個電子數(shù)據(jù)網(wǎng)絡(luò)連接并適于處理用于確定關(guān)于該網(wǎng)絡(luò)的至少一個部件的管理動作的請求(在這種情況下,協(xié)同引擎可檢索作為與網(wǎng)絡(luò)的該部件的管理有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo));(iii)協(xié)同引擎可與至少一個電子數(shù)據(jù)網(wǎng)絡(luò)連接并適于處理用于為與該網(wǎng)絡(luò)連接的用戶確定商業(yè)交易的請求(在這種情況下,協(xié)同引擎可檢索作為與為該用戶處理商業(yè)交易有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo));或者(iv)協(xié)同引擎可與至少一個電子數(shù)據(jù)網(wǎng)絡(luò)連接并適于為與該網(wǎng)絡(luò)連接的用戶處理用于執(zhí)行辦公自動化、工作流程、日程表或文件管理處理的請求(在這種情況下,協(xié)同引擎可視情況而定為該用戶檢索作為與辦公自動化、工作流程、日程表或文件管理處理有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo))。
為了幫助理解和實(shí)現(xiàn)本發(fā)明,現(xiàn)在參照附圖通過例子說明其實(shí)施例,在這些附圖中,類似的附圖標(biāo)記表示類似的元件。
圖1a~1c示出現(xiàn)有技術(shù)中的推理邏輯。
圖2a~2c示出本發(fā)明的推理邏輯的基本例子。
圖3是包含根據(jù)本發(fā)明執(zhí)行多方處理的兩個互連協(xié)同設(shè)備的分布式數(shù)據(jù)處理系統(tǒng)的框圖。
圖4是示出在圖3的各協(xié)同設(shè)備中執(zhí)行的推理邏輯的流程圖。
圖5、圖6和圖7是用于描述圖4的邏輯的規(guī)則和事實(shí)的例子。
圖8解釋其中多個協(xié)同設(shè)備根據(jù)本發(fā)明執(zhí)行多方處理的分布式數(shù)據(jù)處理系統(tǒng)。
具體實(shí)施例方式
理解現(xiàn)有技術(shù)中的推理邏輯有利于理解本發(fā)明。已知的推理邏輯的基本原理是識別和處理確定希望的結(jié)果所需要的目標(biāo)。在本文中,目標(biāo)可限定一些信息的值,或者可以限定如何可從一個或更多個目標(biāo)解析一個或更多個其它目標(biāo)。限定某值的目標(biāo)常被稱為“事實(shí)”并可限定簡單的值(例如‘10’)或復(fù)雜的狀態(tài)(例如客戶記錄或?qū)ο?object)的狀態(tài))。限定如何解析其它目標(biāo)的目標(biāo)常被稱為‘規(guī)則’并且可以限定事實(shí)之間的關(guān)系(例如,“如果CUSTOMER =Customer-A,那么DISCOUNT=10%”);約束事實(shí)(例如,“10%<DISCOUNT<15%”);或限定事實(shí)和規(guī)則的組合之間的關(guān)系(例如,“如果CUSTOMER=Customer-A,那么10%<=DISCOUNT<=15%”)。推理邏輯的實(shí)現(xiàn)改變,并且目標(biāo)的準(zhǔn)確性質(zhì)由實(shí)現(xiàn)確定。類似地,對于結(jié)果的請求的性質(zhì)隨推理邏輯的實(shí)現(xiàn)改變。例如,根據(jù)實(shí)現(xiàn),對于結(jié)果的請求可包含要求一個或更多個值、斷言(assert)一個或更多個新值、它們的組合或其它的形式。
推理邏輯識別確定結(jié)果所需要的目標(biāo),然后識別和檢索解析已得到識別的目標(biāo)所需要的其它目標(biāo)。從一個目標(biāo)移動到下一個目標(biāo)的過程可被稱為鏈(chaining),并且存在兩種本領(lǐng)域中公知的主要鏈形式正向鏈(Forward chaining,也稱“演繹法”)和反向鏈(Backwardchaining,也稱“歸納法”)。在正向鏈中,解析第一目標(biāo)會影響一個或更多個二次目標(biāo),從而導(dǎo)致它們也被解析。在反向鏈中,解析第一目標(biāo)被延遲直到一個或更多個二次目標(biāo)得到解析,使得二次目標(biāo)的結(jié)果對于解析第一目標(biāo)是可用的。
雖然推理過程能夠例如通過外部命令早早被終止,但該過程一般繼續(xù),直到希望的結(jié)果被解析或沒有其它目標(biāo)可被識別。如果推理過程由于沒有其它目標(biāo)可被發(fā)現(xiàn)在結(jié)果被確定之前停止,那么不產(chǎn)生結(jié)果。這表明沒有足夠的目標(biāo)可被用于確定結(jié)果并且常被推理邏輯表示為錯誤。
在推理的過程中,邏輯會識別它發(fā)現(xiàn)由于不能被檢索或由于依賴于不能被解析的二次目標(biāo)而不能被解析的目標(biāo)。推理邏輯將所有這些目標(biāo)標(biāo)記為無法解析,這保證邏輯將不再準(zhǔn)備解析這些目標(biāo)。如果無法解析目標(biāo)沒有這樣被標(biāo)記,那么推理邏輯會試圖重新解析它們,并會因此永久循環(huán)下去。由于已知的推理邏輯不能使用這些未解析的目標(biāo)確定結(jié)果,因此未解析的目標(biāo)被舍棄。
因此,已知的推理邏輯的兩種特性是,未解析的目標(biāo)被識別和舍棄,以及,當(dāng)沒有新的未被解析的目標(biāo)可被識別時,處理可能在不產(chǎn)生結(jié)果的情況下停止。
在圖1a~1c中示出現(xiàn)有推理邏輯的簡單例子。在這些圖示中,參照這里列于下表1中的統(tǒng)稱為目標(biāo)的示例性規(guī)則和事實(shí)。
表1
參照表1,示例性規(guī)則R1和R2具有類似的形式(如果X和Y,那么Z),但是很容易理解,規(guī)則可采取推理邏輯可理解的任何形式。
參照圖1a,通過使用反向鏈在推理工作區(qū)W1中從事實(shí)A、B和D解析結(jié)果E。如果結(jié)果E被請求,那么邏輯推斷規(guī)則R2可解析該請求。邏輯進(jìn)一步推斷,規(guī)則R1可解析由規(guī)則R2需要的事實(shí)C,因此,通過解析規(guī)則R2和R1,結(jié)果E被解析。
參照圖1b,通過使用正向鏈在推理工作區(qū)W1中從事實(shí)A、B和D解析結(jié)果E。如果對比如說事實(shí)A斷言新值,那么邏輯推斷規(guī)則R1受事實(shí)A影響,并解析該規(guī)則(還需要事實(shí)B)。解析規(guī)則R1對事實(shí)C斷言新值,這導(dǎo)致邏輯處理規(guī)則R2,(還需要事實(shí)D),這樣,通過解析規(guī)則R1和R2,結(jié)果E被解析。
圖1a和圖1b中的邏輯圖之間的主要差別在于箭頭的方向,該方向表示推理的方向。在反向鏈中推理遠(yuǎn)離結(jié)果鏈,而在正向鏈中它們向結(jié)果鏈。應(yīng)用于推理邏輯的一般方法可被應(yīng)用于正向和反向鏈以及兩者的組合。
現(xiàn)在參照圖1c,由于事實(shí)D不能被解析,因此結(jié)果E不能被解析。在本例子中,由于不存在可產(chǎn)生D的規(guī)則目標(biāo),并且沒有用于D的值可在工作區(qū)W1中被檢索,因此事實(shí)D不能被解析??紤]圖1a和圖1b中的邏輯,如果用于事實(shí)D的值不能在與規(guī)則R2相同的工作區(qū)中被解析,那么規(guī)則R2不能被解析,因此,只有用于事實(shí)D的值可在工作區(qū)W1中被檢索,已知的推理邏輯才能解析結(jié)果E。存在用于在工作區(qū)W1中定位和檢索用于事實(shí)D的值的方法,但是,這些方法不針對事實(shí)D例如由于代表另一工作區(qū)專用的數(shù)據(jù)不能被檢索的情況。
參照圖1c,與可被稱為“可檢索的”目標(biāo)A、B、R1和R2相反,目標(biāo)D可被稱為“不可檢索的”。對于本文件,可檢索的目標(biāo)是可在請求時從知識庫在工作區(qū)中檢索的目標(biāo)。如果推理邏輯可向知識庫發(fā)送對目標(biāo)的請求,并作為答復(fù)接收該請求的目標(biāo),那么該目標(biāo)是可檢索的。
現(xiàn)在結(jié)合表1參照圖2a~2c說明本發(fā)明的推理邏輯的簡單例子。它們示出在兩個單獨(dú)的工作區(qū)W1和W2中解析的結(jié)果E,其中,事實(shí)A和B沒有在工作區(qū)W1之外被公開,并且事實(shí)D沒有在工作區(qū)W2之外被公開。
參照圖2a,在工作區(qū)W1和W2中使用反向鏈以解析結(jié)果E。事實(shí)C在工作區(qū)W1中從事實(shí)A和B被解析,但事實(shí)D不能在工作區(qū)W1中被解析。從包含事實(shí)C的工作區(qū)W1的內(nèi)容產(chǎn)生部分結(jié)果,而不是在不產(chǎn)生結(jié)果的情況下停止。在本例子中,事實(shí)C已屏蔽事實(shí)A和B,使得部分結(jié)果可在沒有修改的情況下、在不公開事實(shí)A和B的情況下被傳遞給工作區(qū)W2。來自部分結(jié)果的事實(shí)C與規(guī)則R2和事實(shí)D結(jié)合使用以解析工作區(qū)W2中的結(jié)果E。
參照圖2b,示出相同的方案,只是在兩個工作區(qū)中使用正向鏈而不是反向鏈。如果向工作區(qū)W1斷言用于事實(shí)A的新值,那么規(guī)則R1將被解析,這將斷言用于事實(shí)C的新值。規(guī)則R2受事實(shí)C影響,但是,由于事實(shí)D不能在工作區(qū)W1中被解析,因此規(guī)則R2也不能被解析。在本例子中,包含事實(shí)C的部分結(jié)果被傳遞給工作區(qū)W2。向工作區(qū)W2斷言來自部分結(jié)果的C的值,這使規(guī)則R2乃至結(jié)果E被解析。很容易理解,反向鏈和正向鏈的組合也是可能的。
參照圖2c,如圖2a那樣使用反向鏈解析結(jié)果E,但處理的次序相反。在本例子中,規(guī)則R2不能在工作區(qū)W2中被解析,因此產(chǎn)生包含事實(shí)D和規(guī)則R2的部分結(jié)果。這可被傳遞給工作區(qū)W1,但這同時公開事實(shí)D和規(guī)則R2。通過將已知的事實(shí)D從部分解析的規(guī)則R2中提出(factor),事實(shí)D和規(guī)則R2可被屏蔽。在本例子中,事實(shí)D已知為真實(shí)的,因此規(guī)則R2“如果C和D,那么E”被重構(gòu)(refactor)為新規(guī)則R3“如果C,那么E”。包含R3的部分結(jié)果然后被傳送給工作區(qū)W1。在工作區(qū)W1中,事實(shí)C從事實(shí)A和B被解析,然后,通過使用來自部分結(jié)果的規(guī)則R3,結(jié)果E被解析。
規(guī)則R3對于工作區(qū)W1或W2中的任一個都不是可檢索的目標(biāo)。由于在物理上在知識庫中不存在規(guī)則R3,因此諸如“檢索R3”的請求不能返回結(jié)果。不存在可被用于檢索規(guī)則R3的標(biāo)識符“R3”或其它選擇準(zhǔn)則。相反,規(guī)則R2是可檢索的目標(biāo)。諸如“檢索解析E并依賴于D的所有目標(biāo)”的請求可在工作區(qū)W2中檢索規(guī)則R2。只有規(guī)則R2被允許向工作區(qū)W1公開,規(guī)則R2才對于工作區(qū)W1是可檢索的目標(biāo)。諸如“檢索解析E的所有目標(biāo)”的請求可在工作區(qū)W2中檢索一組目標(biāo)(在本例子中,為規(guī)則R2和事實(shí)D),但不檢索規(guī)則R3。如果該組中的目標(biāo)之一對于工作區(qū)W1是不可檢索的(由于例如它是專用的并且不被允許向工作區(qū)W1公開),那么整個組對于工作區(qū)W1是不可檢索的。規(guī)則R3是在對于結(jié)果的特定請求的背景中處理該組目標(biāo)的結(jié)果。因此,對于規(guī)則R3的請求必須采取對于結(jié)果的請求的形式,例如,“返回試圖解析E的結(jié)果”。這種對于結(jié)果的請求不是對于來自知識庫的目標(biāo)的請求;這是對于處理的請求。
很容易理解,也可以通過使用與圖2c相同的技術(shù)屏蔽圖2a和圖2b中的部分結(jié)果。在這種情況下,被解析的事實(shí)C從規(guī)則R2中被提出,因此,規(guī)則R2“如果C和D,那么E”被重構(gòu)以產(chǎn)生新規(guī)則例如“如果D,那么E”。該新規(guī)則然后在部分結(jié)果中被傳遞給工作區(qū)W2,該工作區(qū)W2然后使用該新規(guī)則以解析結(jié)果E。還容易理解,該新規(guī)則,諸如事實(shí)C,不是可檢索的目標(biāo)。
圖2a~2c所示的邏輯可被用于通過“工作區(qū)鏈”處理多個推理工作區(qū)中的單個計算,其中,一個工作區(qū)可用的輸入被解析,并且產(chǎn)生基于該處理的部分結(jié)果。該部分結(jié)果然后被傳遞給第二工作區(qū)用于通過使用包含部分結(jié)果的第二工作區(qū)可用的輸入進(jìn)一步處理。
參照圖3,協(xié)同設(shè)備100和105可分別為通用計算設(shè)備,諸如服務(wù)器、工作站、膝上型電腦等,或可以為通過使用具有相關(guān)存儲器和輸入/輸出設(shè)備的微處理器實(shí)現(xiàn)的專用設(shè)備,或者可以是諸如一個或更多個集成電路的電子電路系統(tǒng)和相關(guān)硬件。有利的是,協(xié)同設(shè)備100和105被配置為能夠例如通過時間分割或多個處理器同時處理多個協(xié)同計算。
通信端口50被用于將各個協(xié)同設(shè)備連接到包含其它協(xié)同設(shè)備的外部部件上,并且,本文件中提到的與其它設(shè)備或引擎(engine)通信的協(xié)同設(shè)備或協(xié)同引擎暗指使用這種通信的通信端口50。通信端口50可以為本領(lǐng)域公知的以太網(wǎng)端口、USB端口和/或串行端口等。各協(xié)同設(shè)備可從和向諸如個人、計算機(jī)程序、計算機(jī)邏輯的執(zhí)行件的外部方或能夠發(fā)送請求和/或接收結(jié)果的任何其它代理接收請求和發(fā)送結(jié)果。另外,關(guān)于諸如時間、日期或特定狀態(tài)的一些事件,協(xié)同計算可被協(xié)同設(shè)備自動啟動。
協(xié)同設(shè)備100和105一般實(shí)現(xiàn)為獨(dú)立的設(shè)備,但也可實(shí)現(xiàn)為與一個或更多個其它設(shè)備耦合的部件,例如實(shí)現(xiàn)為要被插入兼容計算設(shè)備中的電路板,或?qū)崿F(xiàn)為要與其它集成電路連接的一個或更多個集成電路。
協(xié)同設(shè)備100和105分別包含協(xié)同引擎20和25,該協(xié)同引擎20和25執(zhí)行本發(fā)明的邏輯并可體現(xiàn)為一個或更多個計算機(jī)程序、計算機(jī)可執(zhí)行代碼的庫、用于微處理器的機(jī)器碼或諸如一個或更多個集成電路的電子電路。協(xié)同引擎20和25可分別訪問一個或更多個工作區(qū)(未示出)。工作區(qū)是由本發(fā)明的邏輯使用以解析推理目標(biāo)的存儲器的區(qū)域。用于工作區(qū)的存儲器可體現(xiàn)為一個或更多個專用集成電路,或可被保持在協(xié)同設(shè)備的存儲器中。用于管理工作區(qū)的邏輯可實(shí)現(xiàn)為本發(fā)明的邏輯的一部分,一個或更多個計算機(jī)程序、計算機(jī)可執(zhí)行代碼的庫、用于微處理器的機(jī)器碼、或諸如一個或更多個集成電路的電子電路系統(tǒng)。
協(xié)同引擎20和25分別與數(shù)據(jù)倉庫30和35連接,以檢索用于推理處理的目標(biāo)。數(shù)據(jù)倉庫30和35可體現(xiàn)為諸如索引文件或數(shù)據(jù)庫的一個或更多個計算機(jī)程序,或替代性地體現(xiàn)為非易失性存儲器和相關(guān)的控制邏輯。數(shù)據(jù)倉庫30和35可以如圖所示分別在協(xié)同設(shè)備100和105內(nèi)部,或可以在它們外部。
通過向已知的推理邏輯添加三種特征,各協(xié)同引擎實(shí)現(xiàn)能夠在多個引擎之間分布單個計算的處理的推理邏輯。
1)當(dāng)未解析的目標(biāo)被識別時,它不被舍棄而被添加到未解析的目標(biāo)的列表中。由于協(xié)同引擎會另外永遠(yuǎn)循環(huán)下去,因此未解析的目標(biāo)如已知的推理邏輯那樣被標(biāo)記為無法解析。未解析的目標(biāo)列表可實(shí)現(xiàn)為元件的矢量或陣列、動態(tài)陣列或類似的結(jié)構(gòu)。
2)當(dāng)沒有新的未被解析的目標(biāo)可被識別時,會產(chǎn)生部分結(jié)果。部分結(jié)果根據(jù)未解析的目標(biāo)產(chǎn)生,這些目標(biāo)是當(dāng)前在工作區(qū)中的那些和在可不解析的目標(biāo)的列表中的那些,因此它們均已知為可解析最終結(jié)果的目標(biāo)。因此,假定第二協(xié)同引擎可從部分結(jié)果解析未被解析的目標(biāo)中的一個或更多個,那么部分結(jié)果代表第二協(xié)同引擎可使用以解析希望的最終結(jié)果的知識。一般地,部分結(jié)果包含被編碼成協(xié)同引擎可接受的形式的未被解析的目標(biāo)和它們所依賴的目標(biāo)。存在許多本領(lǐng)域公知的用于推理目標(biāo)的編碼,包含諸如RuleML的非專有編碼。
3)當(dāng)部分結(jié)果被接收時,其中的目標(biāo)被解碼并使得對推理邏輯可用,因此,它們可以以通常的方式用于推理過程中。諸如詞法分析器和分析程序的解碼技術(shù)是本領(lǐng)域中公知的。解碼的目標(biāo)一般通過使用與已用于例示在工作區(qū)中檢索目標(biāo)的邏輯相同或類似的邏輯被例示為推理邏輯可理解的形式。被解碼的目標(biāo)可以以使得推理邏輯可隨時檢索它們的形式被存儲在協(xié)同引擎內(nèi)的臨時數(shù)據(jù)倉庫或知識高速緩存中。臨時數(shù)據(jù)倉庫中的目標(biāo)一旦不再被需要就可被去除。
可以理解,實(shí)現(xiàn)所有三種修改的協(xié)同引擎能夠同時發(fā)送和接收部分結(jié)果(即,它是“收發(fā)型”協(xié)同引擎)。其它的實(shí)施例可實(shí)現(xiàn)這三種修改的子集。例如,可以通過僅實(shí)現(xiàn)修改1和2構(gòu)造只發(fā)送協(xié)同引擎,由此制造能夠產(chǎn)生和發(fā)送但不接收部分結(jié)果的引擎。類似地,可以通過只實(shí)現(xiàn)修改3構(gòu)造只接收協(xié)同設(shè)備。
優(yōu)選地,當(dāng)產(chǎn)生部分結(jié)果時,協(xié)同引擎還可屏蔽該部分結(jié)果中的目標(biāo)。有利的是,其邏輯體現(xiàn)為可被協(xié)同引擎理解的一組目標(biāo),但它也可體現(xiàn)為諸如計算機(jī)程序、微處理器機(jī)器碼或一個或更多個集成電路的離散邏輯。屏蔽某一目標(biāo)的方法可以為通過修改該目標(biāo)本身(例如,可通過修改事實(shí)的值屏蔽事實(shí)目標(biāo)),或通過修改涉及該目標(biāo)的目標(biāo)(例如,規(guī)則目標(biāo)可使事實(shí)或規(guī)則被提出(factor out))。但是,不是所有的目標(biāo)都必須被屏蔽??梢岳斫?,以下觀察適用。
如果某一目標(biāo)不能被檢索,或者如果它涉及一個或更多個不能被解析的二次目標(biāo),那么該目標(biāo)是未解析的。
不能在工作區(qū)中被檢索的目標(biāo)不能被屏蔽,也不能為該工作區(qū)所專用。
如果不涉及二次目標(biāo)的目標(biāo)(例如事實(shí)目標(biāo))不能被檢索,那么它只能是未解析的,在這種情況下,它是如上面的圖所示的目標(biāo)。
被解析的目標(biāo)可總是被提出涉及它的任何目標(biāo),因此不再需要包含于部分結(jié)果中。
涉及一個或更多個二次目標(biāo)的目標(biāo)可使解析的二次目標(biāo)被修改和/或被重構(gòu)和/或被提出,并使二次目標(biāo)被提入(factor in)。
從這些觀察可以理解,以下四種屏蔽技術(shù)足以在需要時(例如,由于目標(biāo)或其涉及的目標(biāo)是專用的)屏蔽部分結(jié)果中的目標(biāo)a)被解析的二次目標(biāo)可通過被修改而被屏蔽。例如,可以通過沿算子的方向?qū)χ颠M(jìn)行取整(rounding),修改“如果A<$993.02,那么C”中的“993.02”,從而導(dǎo)致例如“如果A<$950,那么C”。
b)被解析的二次目標(biāo)可通過被提出而被屏蔽。例如,“如果A和B,那么C”中的B可被提出,從而根據(jù)B的被解析的值導(dǎo)致“如果A,那么C”或“不是C”。
c)被解析的二次目標(biāo)可通過被重構(gòu)而被屏蔽。例如,“如果A>100,那么A=100”可被重構(gòu)為將直接引用(等算子)變?yōu)殚g接引用(小于等于算子)的“A<=100”。
d)涉及一個或更多個二次目標(biāo)的目標(biāo)可使被解析和/或未解析的目標(biāo)被提入和/或被提出。例如,根據(jù)存在什么涉及A和B的其它目標(biāo),“如果A<B+C,那么D”可被重構(gòu)為“如果A<X,那么D”或“如果A+Y<Z,那么D”。
可以理解,用于屏蔽多個值的其它技術(shù)可根據(jù)在協(xié)同引擎中使用的目標(biāo)的表示法被實(shí)現(xiàn)。另外,應(yīng)用專用信息可被用于屏蔽多個值。例如,專用值“100”可由唯一標(biāo)識符“abc”代替。如果標(biāo)識符“abc”在隨后遇到訪問原始專用數(shù)據(jù)的過程,那么標(biāo)識符“abc”可由原始值“100”代替。還可以理解,實(shí)施例可對于專用數(shù)據(jù)不能被屏蔽的情況規(guī)定該行為,例如,可產(chǎn)生錯誤,可包含不被屏蔽的數(shù)據(jù),或者可以調(diào)用替代性的處理。
優(yōu)選地,協(xié)同引擎可在從接收的部分結(jié)果解碼的目標(biāo)和從數(shù)據(jù)倉庫檢索的目標(biāo)之間進(jìn)行區(qū)分,并可在處理中使用這種區(qū)分,同時總是允許通過推理邏輯透明訪問所有目標(biāo)。透明訪問所有目標(biāo)保證所有適當(dāng)?shù)哪繕?biāo)不管它們的來源(origin)如何都被推理邏輯使用。區(qū)分的能力允許協(xié)同引擎在處理中包含目標(biāo)的來源,從而例如使目標(biāo)之間的沖突的解析自動化。存在許多在目標(biāo)之間實(shí)現(xiàn)區(qū)分的方式,諸如,用其來源標(biāo)記各例示的目標(biāo)、或保持目標(biāo)及其來源之間的相關(guān)關(guān)系,使用散列表或類似的結(jié)構(gòu)。
可以通過修改已知的推理引擎,或通過構(gòu)建包含本發(fā)明的特定特征的新的推理引擎,構(gòu)建協(xié)同引擎。已知的推理引擎的邏輯可以識別未解析的目標(biāo);檢測沒有其它的目標(biāo)可被識別;和響應(yīng)輸入啟動處理。因此,對于本發(fā)明的邏輯,可以很容易地在現(xiàn)有的邏輯或新的設(shè)計內(nèi)識別定位。例如,可以通過改變適當(dāng)?shù)念惖倪m當(dāng)方法、通過限定新導(dǎo)出的類或通過產(chǎn)生其它方法和/或類,改變體現(xiàn)為以諸如Java或C++的面向?qū)ο蟮木幊陶Z言寫成的計算機(jī)程序中的現(xiàn)有推理引擎??梢允褂孟鄳?yīng)的技術(shù)以修改機(jī)器碼實(shí)現(xiàn)或電子電路設(shè)計。存在硬件和計算機(jī)軟件形式的推理引擎的許多現(xiàn)有實(shí)現(xiàn)。這些實(shí)現(xiàn)可以是專用的或公共可自由獲得的實(shí)現(xiàn)。
現(xiàn)在參照圖3的設(shè)備和對于結(jié)果的請求即請求41被協(xié)同設(shè)備100接收的示例性例子討論圖4中的邏輯。協(xié)同設(shè)備100根據(jù)從數(shù)據(jù)倉庫30檢索的目標(biāo)在協(xié)同引擎20中處理請求41,從而導(dǎo)致在對于結(jié)果的請求中產(chǎn)生并包含于其中的部分結(jié)果45被發(fā)送到協(xié)同設(shè)備105用于進(jìn)一步的計算。協(xié)同設(shè)備105根據(jù)部分結(jié)果45中的目標(biāo)和從數(shù)據(jù)倉庫35檢索的目標(biāo)在協(xié)同引擎25中處理該請求,從而產(chǎn)生最終結(jié)果49。在本例子中,最終結(jié)果49通過各協(xié)同設(shè)備被傳送給外部方(未示出)。在圖3中,箭頭線代表元件之間的數(shù)據(jù)通信。
邏輯通過接收請求41的協(xié)同引擎20在塊2010中開始。通過對用請求41算出的任何部分結(jié)果解碼并通過詢問數(shù)據(jù)倉庫30檢索目標(biāo),協(xié)同引擎20例示(在塊2010中)與請求41有關(guān)的推理目標(biāo)。優(yōu)選地,協(xié)同引擎20在完成這一點(diǎn)時使得它可以在來自部分結(jié)果的目標(biāo)和從數(shù)據(jù)倉庫30檢索的目標(biāo)之間進(jìn)行區(qū)分(從而例如解析目標(biāo)之間的沖突),同時允許推理邏輯透明訪問所有目標(biāo)。在本例子中,不存在用由協(xié)同引擎20接收的請求算出的部分結(jié)果。
協(xié)同引擎20通過使用推理邏輯在其工作區(qū)中處理(在塊2020中)例示的目標(biāo)。推理邏輯通過從數(shù)據(jù)倉庫30檢索解析任何當(dāng)前目標(biāo)所需要的其它目標(biāo)對它們進(jìn)行例示,并且作為解析各目標(biāo)的結(jié)果執(zhí)行零個或更多個動作。推理邏輯是本領(lǐng)域公知的,并可包含正向或反向鏈邏輯、它們的組合或其它推理邏輯。
如果協(xié)同引擎20確定(在塊2022中)目標(biāo)不能被解析,那么它將未被解析的目標(biāo)添加(在塊2024中)到未解析的目標(biāo)的列表中。
如果協(xié)同引擎20確定(在塊2029中)存在至少一個未被解析且不是未解析的下一目標(biāo),那么邏輯后退到塊2020。
如果不存在下一目標(biāo),那么,由于沒有其它的目標(biāo)可被識別,因此可應(yīng)用于該計算的所有目標(biāo)都已被協(xié)同引擎20識別和處理,從而導(dǎo)致工作區(qū)狀態(tài)42,該工作區(qū)狀態(tài)42可包含解析的目標(biāo)和現(xiàn)在已知是未解析的未被解析的目標(biāo)這兩種目標(biāo)。
協(xié)同引擎20確定(在塊2030中)是否產(chǎn)生部分結(jié)果45。如果請求41需要的一個或更多個目標(biāo)未被解析,并且如果部分結(jié)果不被禁止,那么協(xié)同引擎20確定產(chǎn)生部分結(jié)果45。部分結(jié)果可明確通過請求41或隱含地通過與請求41相關(guān)的目標(biāo)的處理被規(guī)定或禁止。如果協(xié)同引擎20確定(在塊2030中)不產(chǎn)生部分結(jié)果,那么邏輯前進(jìn)到塊2090,在該塊2090中最終結(jié)果被傳送。在這種情況下,如果一個或更多個目標(biāo)未被解析,那么最終結(jié)果會是錯誤。如果協(xié)同引擎確定產(chǎn)生部分結(jié)果,那么邏輯產(chǎn)生空的部分結(jié)果45,并前進(jìn)到塊2040。
協(xié)同引擎20對于作為當(dāng)前在工作區(qū)狀態(tài)42中的那些和在未解析的目標(biāo)的列表中的那些的各個未被解析的目標(biāo)將一組目標(biāo)添加(在塊2040中)到部分結(jié)果45中。該邏輯遞歸地向部分結(jié)果添加各未被解析的目標(biāo)提到的所有目標(biāo)加上已在部分結(jié)果中的任何未被解析的目標(biāo)提到的所有目標(biāo)。該邏輯可體現(xiàn)為可由協(xié)同引擎解析的推理目標(biāo)。并且,邏輯或推理目標(biāo)可另外被用于優(yōu)化、整理或重構(gòu)(refactor)部分結(jié)果中的目標(biāo)。在一些實(shí)施例中,邏輯首先將所有當(dāng)前未被解析的目標(biāo)添加到未解析的目標(biāo)的列表中,然后將未解析的目標(biāo)的列表中的所有目標(biāo)加上它們涉及的那些目標(biāo)添加到部分結(jié)果中。
如果協(xié)同引擎20確定(在塊2049中)存在下一個未被解析的目標(biāo),那么邏輯前進(jìn)到塊2040。
協(xié)同引擎20識別(在塊2050中)專用的部分結(jié)果45中的任何目標(biāo)。協(xié)同引擎可以通過詢問數(shù)據(jù)倉庫30以確定各目標(biāo)上的任何訪問限制完成這一點(diǎn)。協(xié)同引擎20然后通過修改各專用目標(biāo)和/或重構(gòu)涉及專用目標(biāo)的任何目標(biāo)屏蔽專用數(shù)據(jù)。
協(xié)同引擎20可任選地將限定部分結(jié)果45中的包含可能的沖突或不定性的目標(biāo)可如何被處理的其它目標(biāo)添加(在塊2050中)到部分結(jié)果45中。可通過導(dǎo)出例如通過使用存儲在數(shù)據(jù)倉庫30中的度量或目標(biāo)的形式的優(yōu)先級信息限定一個目標(biāo)相對于另一個目標(biāo)的優(yōu)先級的度量或約束目標(biāo)完成這一點(diǎn)。推理邏輯中的優(yōu)先級目標(biāo)和度量是本領(lǐng)域公知的。
協(xié)同引擎20將部分結(jié)果遞送(在塊2090中)到一個或更多個下一個協(xié)同引擎。協(xié)同引擎20通過直接從請求41或通過解析推理目標(biāo)識別至少一個下一個協(xié)同設(shè)備并將部分結(jié)果遞送給該協(xié)同設(shè)備用于通過與該設(shè)備相關(guān)的協(xié)同引擎進(jìn)行處理,完成這一點(diǎn)。在本例子中,用對于協(xié)同引擎25使用剛才說明的邏輯處理的傳送給協(xié)同設(shè)備105的結(jié)果的請求算出部分結(jié)果45。
協(xié)同引擎25例示(在塊2010中)來自部分結(jié)果45的目標(biāo)以及來自數(shù)據(jù)倉庫35的目標(biāo)。協(xié)同引擎25解析產(chǎn)生請求的結(jié)果所需要的所有目標(biāo),并因此在其未解析的目標(biāo)的列表中不具有任何未被解析的目標(biāo)。協(xié)同引擎25因此決定(在塊2030中)不產(chǎn)生部分結(jié)果,并因此前進(jìn)到產(chǎn)生并傳輸最終結(jié)果49的塊2090。
圖4中所示的邏輯能夠按照收發(fā)兩用協(xié)同引擎同時發(fā)送和接收部分結(jié)果。在不同的例子中,邏輯可從協(xié)同引擎25接收對于結(jié)果的請求開始,并且,如果(在塊2030中)產(chǎn)生結(jié)果所需要的一個或更多個目標(biāo)未被解析,那么協(xié)同引擎25可產(chǎn)生部分結(jié)果,該部分結(jié)果然后被遞送到協(xié)同引擎20進(jìn)行進(jìn)一步的處理??梢岳斫猓话l(fā)送或只接收協(xié)同引擎使用一部分被去除的類似的邏輯,因此不背離本發(fā)明的范圍。
圖5和圖6示出分別被Company-A和Company-B使用的協(xié)同引擎20和25的目標(biāo)的例子。在本例子中,目標(biāo)包含規(guī)則和事實(shí)??梢岳斫猓@是簡化的例子,并且規(guī)則僅是解釋性的,并可以采取協(xié)同引擎20和25可理解的任何形式。參照圖5,數(shù)據(jù)集31和規(guī)則集32被存儲在數(shù)據(jù)倉庫30中,并為Company-A關(guān)于購買分別示出示例性的事實(shí)和規(guī)則。工作區(qū)狀態(tài)42代表特定時間點(diǎn)上的協(xié)同引擎20內(nèi)的狀態(tài),并且部分結(jié)果45示出協(xié)同引擎20產(chǎn)生的部分結(jié)果。參照圖6,數(shù)據(jù)集36和規(guī)則集37被存儲在數(shù)據(jù)倉庫35內(nèi),并為Company-B關(guān)于銷售分別示出示例性的事實(shí)和規(guī)則。工作區(qū)狀態(tài)47和48代表特定時間點(diǎn)上的協(xié)同引擎25內(nèi)的狀態(tài),并且最終結(jié)果49示出由協(xié)同引擎25產(chǎn)生的示例性請求的結(jié)果。
參照包含的圖3~6說明Company-A從Company-B自動購買某一數(shù)量的螺栓的例子。響應(yīng)購買請求41,協(xié)同引擎20設(shè)定“價格”和“數(shù)量”作為其目標(biāo),并通過使用數(shù)據(jù)集31和規(guī)則集32進(jìn)行下去。協(xié)同引擎20到達(dá)工作區(qū)狀態(tài)42中示出的狀態(tài),其中,可解析“價格”和“數(shù)量”的那些規(guī)則已在工作區(qū)中被檢索,可從數(shù)據(jù)倉庫31檢索的那些規(guī)則提到的事實(shí)也已被解析,并且沒有其它的目標(biāo)可被識別。由于規(guī)則4201、4202和4203涉及未被解析的目標(biāo)“價格”和“數(shù)量”,因此它們在工作區(qū)狀態(tài)42中是未被解析的。協(xié)同引擎20因此產(chǎn)生部分結(jié)果45,并將未被解析的目標(biāo)4201、4202和4203添加到部分結(jié)果中。在本例子中,在到達(dá)工作區(qū)狀態(tài)42之前沒有目標(biāo)被識別為是未解析的,因此未解析的目標(biāo)的列表是空的。另外,未被解析的目標(biāo)只涉及被解析的二次目標(biāo),因此在部分結(jié)果中不包含其它的目標(biāo)。
協(xié)同引擎20然后檢查數(shù)據(jù)倉庫30,以確定部分結(jié)果45中的任何目標(biāo)是否是專用的。不管規(guī)則3201是否是專用的,事實(shí)3102都是專用的,因此,涉及它的任何目標(biāo),包含規(guī)則4203,也是這樣。由于規(guī)則4203涉及專用事實(shí),因此協(xié)同引擎20通過從規(guī)則4203導(dǎo)出新規(guī)則4501修改部分結(jié)果。通過屏蔽在這種情況下為公開銀行存款余額3102的值$997.56的專用數(shù)據(jù)產(chǎn)生規(guī)則4501。通過從規(guī)則提出條件子句屏蔽該值。這樣做時,條件子句中的大于算子被重構(gòu)為使其“被逆轉(zhuǎn)”的則子句中,從而導(dǎo)致小于等于算子。在本例子中,“如果價格×量>$997.56,那么價格×量=997.56”被重構(gòu)為“價格×量<=997.56”。由于該規(guī)則不再包含等算子,因此它不再是對專用值的直接引用。
通過沿算子的方向?qū)⑵淙≌?rounding)為一些合理值的倍數(shù),該值可被進(jìn)一步屏蔽。在本例子中,該值被取整為$50的倍數(shù),從而導(dǎo)致值$950.00。在該過程后,部分結(jié)果45不包含對專用數(shù)據(jù)的直接或間接引用。在本例子中,屏蔽邏輯在推理規(guī)則(未示出)中被實(shí)現(xiàn)。
協(xié)同引擎25接收部分結(jié)果45,并且前進(jìn)以通過使用數(shù)據(jù)集36和規(guī)則集37解析部分結(jié)果。在處理規(guī)則集37中的規(guī)則后,協(xié)同引擎25具有解析的“數(shù)量”值(1000;與部分結(jié)果45中的規(guī)則一致的值)折扣值(10%)和價格值($1.08),從而導(dǎo)致工作區(qū)狀態(tài)47所示的狀態(tài)。但是,當(dāng)協(xié)同引擎25考慮規(guī)則4701時,由于1000×$1.08大于$950,因此新的“數(shù)量”值將被解析。對此響應(yīng),協(xié)同引擎25解析新的“折扣”值,從而到達(dá)工作區(qū)狀態(tài)48所示的狀態(tài)。由于請求的目標(biāo)“價格”和“數(shù)量”現(xiàn)在被解析,并且工作區(qū)狀態(tài)48中的所有值都與所有規(guī)則一致,因此協(xié)同引擎25產(chǎn)生它可返回協(xié)同引擎20的最終結(jié)果49。
很容易理解,協(xié)同引擎20和25已在不向其它協(xié)同引擎公開專用目標(biāo)的情況下通過使用推理邏輯商議多方計算結(jié)果。在本例子中,部分結(jié)果45內(nèi)的目標(biāo)允許在不需要通信的第二交換的情況下進(jìn)行商議。由于協(xié)同引擎25不能解析所有的目標(biāo),因此它可向協(xié)同引擎20發(fā)送第二部分結(jié)果進(jìn)行進(jìn)一步處理。這樣,延長的商議被支持。
可以理解,對于在這種計算中包含的協(xié)同引擎的數(shù)量沒有理論限制。在不同的例子中,協(xié)同引擎25解析一些而不是全部的未解析目標(biāo),并產(chǎn)生部分結(jié)果以發(fā)送給第三協(xié)同引擎(未示出)。通過規(guī)定是否可產(chǎn)生部分結(jié)果,各協(xié)同引擎可對什么時候產(chǎn)生最終結(jié)果進(jìn)行控制。例如,協(xié)同引擎20可通知協(xié)同引擎25需要部分結(jié)果,由此保證協(xié)同引擎25不產(chǎn)生最終結(jié)果,使得第三協(xié)同引擎也可被包含于計算中。類似地,協(xié)同引擎20可通知協(xié)同引擎25需要最終結(jié)果,從而強(qiáng)制協(xié)同引擎25產(chǎn)生最終結(jié)果,或者,如果這是不可能的,產(chǎn)生錯誤。
部分結(jié)果也可被發(fā)送給另一協(xié)同設(shè)備以外的目的地。部分結(jié)果可被發(fā)送給邏輯的執(zhí)行段(executing piece),用于被轉(zhuǎn)發(fā)給一個或更多個協(xié)同設(shè)備,或用于其它處理。部分結(jié)果也可被存儲在暫時存儲器(例如要在協(xié)同設(shè)備之中共享)中和/或從其中被檢索,或者可被保存到諸如磁盤或磁帶的永久存儲器中。
在另一實(shí)施例中,本發(fā)明被應(yīng)用于智能網(wǎng)絡(luò)(IN)通信網(wǎng)絡(luò)中的電話呼叫的通路選擇。
如果通信網(wǎng)絡(luò)可考慮呼叫方和被叫方雙方的偏好,那么會對顧客存在顯著的附加益處。這會使得能夠進(jìn)行比孤立考慮各方的偏好的已知技術(shù)更好地匹配雙方的組合偏好的呼叫路由決定。對于包含呼叫轉(zhuǎn)移的呼叫,如果組合確定在發(fā)端網(wǎng)絡(luò)上是可用的,那么還會在信息通路的更有效路由和更有效使用方面有顯著的益處。這會使得呼叫能夠被直接發(fā)送到它們的最終目的地。使用常規(guī)的呼叫轉(zhuǎn)移,呼叫通過呼叫方的網(wǎng)絡(luò)被路由到被叫方的網(wǎng)絡(luò),該被叫方的網(wǎng)絡(luò)然后將呼叫轉(zhuǎn)移到最終目的地。這種呼叫轉(zhuǎn)移的第二支路(leg)包含一般由最初的被叫方承擔(dān)的第二呼叫。
已知的推理邏輯要求在單一的推理引擎中產(chǎn)生推理結(jié)果,但用戶偏好會包含不可與其它網(wǎng)絡(luò)共享的諸如電話號碼和詳細(xì)聯(lián)系方式的專用信息。同時,電話網(wǎng)絡(luò)一般需要每秒解析幾十個、幾百個或者甚至幾千個路由選擇通路,并且,對于完成路由選擇的總時間存在嚴(yán)格約束。例如,對于路由選擇通路的詢問的響應(yīng)會需要少于250毫秒。本發(fā)明通過使用呼叫方和被叫方雙方的偏好提供用于使用推理邏輯以計算路由選擇通路的實(shí)際方案。
例子將考慮呼叫方Alice和被叫方Bob之間的電話呼叫的路由選擇。在本例子中,Alice使用其移動電話呼叫作為業(yè)務(wù)聯(lián)系人的Bob,在Bob的電話上為下午6:00。Alice和Bob是不同移動網(wǎng)絡(luò)的客戶。Alice知道她的業(yè)務(wù)聯(lián)系人中的一些在家里工作,并且有時將他們的移動呼叫轉(zhuǎn)接到他們的住宅電話。雖然Alice喜歡她的電話在上班時間轉(zhuǎn)接到住宅電話,但是,如果接收人的當(dāng)?shù)貢r間晚于下午5:30,那么她希望它們轉(zhuǎn)接到語音郵件。Bob希望能夠激活將打給他的手機(jī)的所有電話轉(zhuǎn)接到他的住宅電話的“在家”模式。他還希望使來自特定的重要呼叫者的電話以外的所有電話在下午9:00后轉(zhuǎn)接到語音郵件。
參照圖7,表示為規(guī)則和事實(shí)的Alice和Bob的偏好分別被存儲在知識庫33和38中。例如,依次地,規(guī)則3302規(guī)定Alice的在下午5:30以后對業(yè)務(wù)聯(lián)系人的呼叫被路由到他們的語音郵件系統(tǒng)而不是他們的住宅電話的偏好,以及規(guī)則3801規(guī)定Bob的當(dāng)“AT-HOME”模式激活時對于其手機(jī)的呼叫被路由到他的住宅電話或語音郵件系統(tǒng)的偏好??梢岳斫猓@是簡化的例子,并且規(guī)則也僅是解釋性的。
還參照圖3,Alice的移動網(wǎng)絡(luò)與協(xié)同設(shè)備100連接,而Bob的移動網(wǎng)絡(luò)與協(xié)同設(shè)備105連接。知識庫33被存儲在數(shù)據(jù)倉庫30中,而知識庫38被存儲在數(shù)據(jù)倉庫35中。當(dāng)Alice拔打Bob的號碼時,Alice的移動網(wǎng)絡(luò)對呼叫處理指令啟動IN詢問。該詢問作為對于結(jié)果的請求被轉(zhuǎn)發(fā)給在協(xié)同引擎20中對其處理的協(xié)同設(shè)備100。應(yīng)當(dāng)注意,在圖3或圖4中沒有示出本例子中的對于結(jié)果的請求、部分結(jié)果和最終結(jié)果。
參照圖4的邏輯,協(xié)同引擎20解析“RECIPIENT is BUSINESS”,但是,由于“DESTINATION”不能被解析,因此規(guī)則3302是未解析的。由于沒有其它的可被解析的規(guī)則,因此協(xié)同引擎20產(chǎn)生部分結(jié)果44。在本例子中,事實(shí)3301是專用的,因此規(guī)則3302被重構(gòu)以去除事實(shí)3301,從而導(dǎo)致新的規(guī)則4401。協(xié)同設(shè)備100然后將對于包含部分結(jié)果44的結(jié)果的請求發(fā)送給在協(xié)同引擎25中對其處理的協(xié)同設(shè)備105。
協(xié)同引擎25接收部分結(jié)果44并進(jìn)行下去。在本例子中,Bob使其“AT-HOME”模式被激活,因此,協(xié)同引擎25從規(guī)則3801解析“DESTINATION=HOME,VOICEMAIL”。協(xié)同引擎25現(xiàn)在可從部分結(jié)果44解析規(guī)則4401,這解析“DESTINATION=1234 987654”。協(xié)同引擎25現(xiàn)在可產(chǎn)生最終結(jié)果46。在本例子中,協(xié)同設(shè)備105將最終結(jié)果46發(fā)送給協(xié)同設(shè)備100,該協(xié)同設(shè)備100可作為對最初詢問的響應(yīng)返回它,從而提供路由選擇通路。
存在許多實(shí)現(xiàn)允許Alice的偏好改變Bob的偏好的邏輯的方式。在本例子中,協(xié)同引擎25在來自部分結(jié)果44的目標(biāo)和從數(shù)據(jù)倉庫38檢索的目標(biāo)之間進(jìn)行區(qū)分,并且,Alice的規(guī)則4401如果規(guī)定當(dāng)前Bob的偏好也可接受的DESTINATION則只被允許修改Bob的。由于Alice的規(guī)則4401規(guī)定“DESTINATION=VOICEMEAIL”,并且Bob的規(guī)則3801也將VOICEMAIL規(guī)定為可接受的DESTINATION,因此,Alice的修改可被接受。替代性的實(shí)現(xiàn)可以以私密性的次序列出目的地,并且只允許從Alice的選擇私密性相同或更小私密性的目的地的規(guī)則進(jìn)行修改。這樣,從住宅電話向語音郵件系統(tǒng)的改變可被接受,而從住宅電話向移動電話的改變不能被接受。理想情況下,這種邏輯也會作為規(guī)則被實(shí)現(xiàn),因此它可由備用戶定制。在任意實(shí)現(xiàn)中,如果規(guī)則沖突使得沒有DESTINATION可被選擇,那么不能進(jìn)行連接,并且返回發(fā)起端網(wǎng)絡(luò)的結(jié)果可指示播放通告以通知Alice此時不能完成該呼叫。
在前面的例子中,如果Alice在下午5:30之前進(jìn)行了呼叫,那么返回協(xié)同設(shè)備100的最終結(jié)果會是Bob的住宅電話號碼,并且Alice的呼叫會被直接路由到Bob的住宅電話。使用常規(guī)的呼叫轉(zhuǎn)移,Alice的呼叫會被路由到Bob的移動網(wǎng)絡(luò),如果呼叫轉(zhuǎn)移被啟用,那么該移動網(wǎng)絡(luò)與PSTN上的Bob的住宅電話進(jìn)行第二次連接。在這種情況下,對于呼叫的持續(xù)過程,用于兩次呼叫的網(wǎng)絡(luò)資源被消耗。
通過在不公開專用信息的情況下使用Alice和Bob雙方的偏好,兩者之間的呼叫的路由選擇通路被有效計算。產(chǎn)生和屏蔽部分結(jié)果44的處理開銷較少,并且網(wǎng)絡(luò)傳輸開銷也較少。只存在一次從協(xié)同設(shè)備100到協(xié)同設(shè)備105的傳輸,并且其內(nèi)容部分結(jié)果44較小(通常明顯小于Alice的偏好)。從協(xié)同設(shè)備105到協(xié)同設(shè)備100的單一答復(fù)傳輸包含最終結(jié)果46,該最終結(jié)果46也較小(通常比部分結(jié)果44小)。諸如作為規(guī)則或參數(shù)傳輸Alice或Bob的偏好中的全部的替代性技術(shù)包含較多的傳輸開銷,并且可能比處理開銷多。由于路由選擇通路必須在受限制的時幀中被計算,因此具有較高的計算和網(wǎng)絡(luò)開銷的已知的安全協(xié)議不能被用于保護(hù)Alice和Bob的偏好。
很容易理解,Alice的網(wǎng)絡(luò)不需要知道最終結(jié)果46包含來自Alice的偏好以外的任何偏好的信息。從網(wǎng)絡(luò)的觀點(diǎn),進(jìn)行詢問并接收響應(yīng)。在IN網(wǎng)絡(luò)的情況下,不需要改變網(wǎng)絡(luò)邏輯或操作模式。這意味著協(xié)同設(shè)備可以以最少的集成工作被加入現(xiàn)有的網(wǎng)絡(luò)中。
還很容易理解,如果只有呼叫中包含的網(wǎng)絡(luò)中的一個使用協(xié)同設(shè)備,那么,雖然沒有協(xié)同處理的益處,但該網(wǎng)絡(luò)仍享有使用推理邏輯用于處理偏好的益處。當(dāng)各方的網(wǎng)絡(luò)使用協(xié)同設(shè)備時,實(shí)現(xiàn)協(xié)同處理的附加益處,包括更好地匹配雙方的組合偏好的路由選擇通路以及協(xié)同引擎之間的商議的可能性。并且,在這種協(xié)同處理中可包含多于兩個的協(xié)同設(shè)備,并由此可包含多于兩個的網(wǎng)絡(luò)。
使用協(xié)同推理處理產(chǎn)生路由選擇通路是極其靈活的。例如,Bob的規(guī)則和/或網(wǎng)絡(luò)可禁止輸出Bob的電話號碼中的一些或全部。協(xié)同引擎25可替代性地向Alice的網(wǎng)絡(luò)返回虛擬電話號碼。當(dāng)Alice的網(wǎng)絡(luò)與Bob的網(wǎng)絡(luò)上的該虛擬號碼產(chǎn)生連接時,Bob的網(wǎng)絡(luò)進(jìn)行IN詢問以為該虛擬號碼確定正確的目的地,從而導(dǎo)致如前面由協(xié)同引擎25確定的那樣給該呼叫定路線。
在另一例子中,Bob具有規(guī)定“if DESTINATION is VOICEMAILand CALLER is BUSINESS then VOICEMAIL.MESSAGE=BUSINESS-MESSAGE”的附加規(guī)則。由于Alice的網(wǎng)絡(luò)對Bob的語音郵件系統(tǒng)沒有控制,因此解析該規(guī)則(在協(xié)同引擎25中)以產(chǎn)生“VOICEMAIL.MESSAGE=BUSINESS-MESSAGE”導(dǎo)致必須在Bob的網(wǎng)絡(luò)中處理的信息。其一種實(shí)現(xiàn)方式是,協(xié)同引擎25解析屬于Bob的網(wǎng)絡(luò)的虛擬電話號碼的目的地,例如,“DESTINATION=1234555555”。當(dāng)Alice的網(wǎng)絡(luò)將呼叫路由到Bob的網(wǎng)絡(luò)上的12345時,Bob的網(wǎng)絡(luò)使用IN詢問的結(jié)果以將該呼叫路由到Bob的語音郵件系統(tǒng)并播放適當(dāng)?shù)南ⅰ?br>
很容易理解,諸如短消息服務(wù)(SMS)、電子郵件和即時消息收發(fā)的其它形式的電信可以以類似的方式被路由,并且任一方的推理規(guī)則可包含各種輸入而不僅是例子中示出的那些。
本發(fā)明針對解決多于一個的工作區(qū)中的推理邏輯的問題提供一般方案。與已知的多方推理處理相比,由于部分結(jié)果不需要包含僅由其它被解析目標(biāo)涉及的被解析目標(biāo),也不需要包含在計算中不被涉及的數(shù)據(jù)倉庫中的目標(biāo),因此本發(fā)明大大減少引擎之間的各傳輸中的數(shù)據(jù)的量。這是對必須將包含不會被使用的目標(biāo)的所有可能目標(biāo)傳送給單一推理引擎或在駐留在遠(yuǎn)程數(shù)據(jù)倉庫中的各個新目標(biāo)被識別時執(zhí)行多個網(wǎng)絡(luò)傳輸?shù)囊阎评磉壿嫷膶?shí)質(zhì)性改進(jìn)。
由于部分結(jié)果一般只包含對于某一計算解析的目標(biāo)的子集,因此在部分結(jié)果中不包含許多專用目標(biāo)。在部分結(jié)果中包含的專用目標(biāo)可被有效屏蔽,以避免公開它們。另外,不是專用的但是是“位置相關(guān)的”輸入可在本地被多個互連的協(xié)同引擎中的一個處理,由此使得能夠產(chǎn)生結(jié)果。由于輸入對于傳輸來說太大或者會在傳輸中受損,因此它們可以是位置相關(guān)的。
本發(fā)明的一些實(shí)施例可以不屏蔽部分結(jié)果中的專用值。但是,這些實(shí)施例保留本發(fā)明的其它益處,諸如,協(xié)商被延長和引擎之間的傳輸開銷減少。
很容易理解,可以通過添加諸如新規(guī)則的新目標(biāo)或通過完全將一組目標(biāo)改變?yōu)榱硪唤M,改變協(xié)同引擎20和25的行為。因此,協(xié)同引擎是可編程的,并可被配置為根據(jù)與其相關(guān)的規(guī)則和事實(shí)執(zhí)行一種類型或許多不同類型的計算。
有利的是,協(xié)同引擎20和25還可保護(hù)它們之間傳遞的部分結(jié)果的內(nèi)容。由于部分結(jié)果可包含間接涉及專用數(shù)據(jù)的目標(biāo),因此,如果可獲得足夠的相互關(guān)聯(lián)的部分結(jié)果,那么惡意方可在一些方案中重構(gòu)專用數(shù)據(jù)。惡意方可因此試圖為此目的導(dǎo)致產(chǎn)生多個相互關(guān)聯(lián)的部分結(jié)果??梢允褂枚喾N現(xiàn)有技術(shù)以應(yīng)對這種可能性,包括對請求進(jìn)行審計、對任意方限制某一時間周期內(nèi)的請求的次數(shù)、和通過使用諸如密碼的靜態(tài)驗證標(biāo)志(static authentication token)對各方進(jìn)行驗證。雖然這些技術(shù)均可有利地單獨(dú)或以組合的方式與本發(fā)明一起使用,但本發(fā)明的優(yōu)選實(shí)施例提供一方通過使用作為雙方都知道的專用事實(shí)的動態(tài)驗證標(biāo)志向另一方動態(tài)驗證自身的另一技術(shù)。由于專用事實(shí)已被接收方知道,因此這不代表專用事實(shí)的公開。各個新的動態(tài)驗證優(yōu)選地基于將成功驗證的次數(shù)限制為共享的專用事實(shí)的數(shù)量的不同事實(shí)或其一些功能使用新的驗證標(biāo)志。
在一個優(yōu)選實(shí)施例中,通過使用來自由兩個引擎協(xié)同解析的以前的計算的事實(shí),在兩個協(xié)同引擎之間實(shí)現(xiàn)動態(tài)驗證。因此,可產(chǎn)生驗證標(biāo)志的一組事實(shí)在結(jié)果產(chǎn)生時連續(xù)增長,但是,如果大量的驗證在不產(chǎn)生結(jié)果的情況下產(chǎn)生,那么該組事實(shí)將被耗盡。已知的推理邏輯被用于識別這種來自以前的協(xié)同計算的事實(shí),并從其中導(dǎo)出動態(tài)驗證標(biāo)志。該標(biāo)志通過與專用事實(shí)相比較被驗證。由于本實(shí)施例需要來自以前的計算的事實(shí),因此對于第一個這種計算將不存在可用的事實(shí)。在這種情況下,邏輯可允許來自以前被驗證的協(xié)同引擎的第一驗證請求為空的標(biāo)志,并且可能用有限的特權(quán)對其進(jìn)行驗證。作為替代方案,初始標(biāo)志被提供給各協(xié)同引擎以使得第一動態(tài)驗證能夠成功。通過防止來自一個協(xié)同計算的事實(shí)被用于對緊挨著下面的協(xié)同計算進(jìn)行驗證,可以獲得更大的安全性。
有利的是,為了更大的安全性,常規(guī)的驗證技術(shù)可與動態(tài)驗證組合。
并且,可以使用安全傳輸協(xié)議以保護(hù)驗證標(biāo)志和部分結(jié)果的傳輸。諸如SSL和IPSec的安全傳輸協(xié)議在本領(lǐng)域中是公知的。
現(xiàn)在參照圖4~6說明動態(tài)驗證的例子??紤]與以前參照這些圖說明的例子相同的例子,協(xié)同引擎20確定(在圖4中的塊2090中)要被用作動態(tài)驗證標(biāo)志的專用事實(shí)。在本例子中,這是事實(shí)3101(lastorder=PO1234),協(xié)同引擎20確定該事實(shí)3101是與與Company-B的以前的交易相關(guān)的事實(shí)。協(xié)同引擎20包含該事實(shí)作為具有部分結(jié)果45的動態(tài)驗證標(biāo)志。協(xié)同引擎25通過確認(rèn)驗證事實(shí)不涉及Company-A并且它與數(shù)據(jù)集36中的相應(yīng)事實(shí)3601匹配,動態(tài)地驗證(在圖4中的塊2010中)部分結(jié)果45。
(本發(fā)明的其它應(yīng)用)協(xié)同設(shè)備可被用于各種各樣的應(yīng)用中。除了前面所述的電子商務(wù)和通信路由例子,協(xié)同設(shè)備可被配置和編程為執(zhí)行特定的任務(wù)或廣泛的協(xié)同和協(xié)商。
圖8示出多個計算設(shè)備如這里說明的那樣執(zhí)行多方處理的分布式數(shù)據(jù)處理系統(tǒng)。
如圖8所示,分布式數(shù)據(jù)處理系統(tǒng)可包含多個網(wǎng)絡(luò),諸如局域網(wǎng)LAN 50和LAN 55,這些局部網(wǎng)中的每一個可包含多個單個計算設(shè)備。很容易理解,各個LAN可被諸如公司的單獨(dú)實(shí)體擁有,并且,LAN可在地理上被分開并通過因特網(wǎng)或其它網(wǎng)絡(luò)被連接。
各單個計算設(shè)備可以是諸如服務(wù)器100、101和105的服務(wù)器(共享計算設(shè)備)或諸如客戶機(jī)200、201、205、206和207的客戶機(jī)。各單個客戶機(jī)可以是具有使得用戶能夠啟動處理的用戶接口外設(shè)(例如,鍵盤和監(jiān)視器)的工作站、筆記本計算機(jī)或個人計算機(jī)等。諸如數(shù)據(jù)倉庫30和35的數(shù)據(jù)倉庫可與服務(wù)器或客戶機(jī)耦合,并且可被用于存儲包含推理目標(biāo)的數(shù)據(jù)。
由實(shí)體擁有的各LAN上的計算設(shè)備可運(yùn)行多個計算機(jī)化的應(yīng)用,用于為該實(shí)體執(zhí)行某一范圍的協(xié)同任務(wù)。這些應(yīng)用可包含工作流程、商業(yè)對商業(yè)電子商務(wù)、辦公自動化、設(shè)計和群件應(yīng)用,并可在客戶機(jī)和/或服務(wù)器上運(yùn)行。參照圖8,協(xié)同應(yīng)用60在LAN 50上的計算設(shè)備上運(yùn)行,并且協(xié)同應(yīng)用65在LAN 55上的計算設(shè)備上運(yùn)行。各協(xié)同應(yīng)用實(shí)例可被配置通過使用一個或更多個協(xié)同引擎20和25用一個或更多個相應(yīng)的協(xié)同應(yīng)用實(shí)例協(xié)同處理。
服務(wù)器和/或客戶機(jī)可以是運(yùn)行協(xié)同引擎的協(xié)同設(shè)備。執(zhí)行協(xié)同引擎的邏輯的服務(wù)器以下稱為協(xié)同服務(wù)器。協(xié)同服務(wù)器100和101分別使用單獨(dú)的協(xié)同引擎20,并且,通過將規(guī)則添加到數(shù)據(jù)倉庫30中的一個或更多個規(guī)則集中,可被編程為執(zhí)行特定的協(xié)同任務(wù)。協(xié)同服務(wù)器101還執(zhí)行協(xié)同應(yīng)用60中的一些或全部的其它邏輯。協(xié)同服務(wù)器105使用協(xié)同引擎25,并且,通過將規(guī)則添加到數(shù)據(jù)倉庫35中的一個或更多個規(guī)則集中,可被編程為執(zhí)行特定的協(xié)同任務(wù)。
客戶機(jī)200和205也是協(xié)同設(shè)備。客戶機(jī)200執(zhí)行協(xié)同引擎20的邏輯,而客戶機(jī)205執(zhí)行協(xié)同引擎25的邏輯。
很容易理解,協(xié)同應(yīng)用和協(xié)同引擎可被松散地耦合(例如,協(xié)同應(yīng)用使用在單獨(dú)的計算設(shè)備上運(yùn)行的協(xié)同引擎),可在邏輯級上被緊密地耦合(例如,協(xié)同引擎僅與特定的協(xié)同應(yīng)用通信),或者可在物理級上被緊密耦合并在同一計算設(shè)備上運(yùn)行(例如,協(xié)同引擎被嵌入?yún)f(xié)同應(yīng)用中)。分布式數(shù)據(jù)處理系統(tǒng)或包含分布式數(shù)據(jù)處理系統(tǒng)的一部分的網(wǎng)絡(luò)可包含任意或所有形式。
還可以理解,諸如一些工作流程和商業(yè)對商業(yè)電子商務(wù)應(yīng)用的一些應(yīng)用可完全以協(xié)同引擎可理解的目標(biāo)被實(shí)現(xiàn),并因此可被配置在不運(yùn)行協(xié)同應(yīng)用的一個或更多個協(xié)同服務(wù)器上。作為例子,擁有LAN 50的公司可從擁有LAN 55的公司購買供應(yīng)品。響應(yīng)數(shù)據(jù)倉庫30中的規(guī)則,協(xié)同服務(wù)器100可用協(xié)同服務(wù)器105執(zhí)行協(xié)同計算。這種計算可被自動化,并且可以是周期性的,或者響應(yīng)由協(xié)同服務(wù)器檢測的事件,諸如在庫存較低時自動購買。
其它應(yīng)用可包含其它邏輯,諸如協(xié)同應(yīng)用60和65。協(xié)同應(yīng)用60和65可以是辦公自動化應(yīng)用或諸如設(shè)計、機(jī)械建模、財務(wù)建模等的更加為商業(yè)專有的處理。這些協(xié)同應(yīng)用可接觸代表應(yīng)用執(zhí)行計算的協(xié)同服務(wù)器,或者可在應(yīng)用邏輯中包含協(xié)同引擎,以使應(yīng)用增加協(xié)同能力。
作為例示,參照圖8●一個或更多個客戶機(jī)200和/或201分別執(zhí)行協(xié)同應(yīng)用60的實(shí)例,以與在一個或更多個客戶機(jī)205和/或206上運(yùn)行的一個或更多個協(xié)同應(yīng)用65協(xié)作,以產(chǎn)生協(xié)同結(jié)果??梢允褂脜f(xié)同服務(wù)器100和/或105和/或客戶機(jī)200和205的協(xié)同引擎以計算協(xié)同結(jié)果。
●一個或更多個客戶機(jī)201上的一個或更多個協(xié)同應(yīng)用60用對于協(xié)同計算的請求訪問協(xié)同服務(wù)器100。協(xié)同服務(wù)器100在與一個或更多個協(xié)同引擎20或25的協(xié)作中完成計算,從而產(chǎn)生請求的結(jié)果。
●客戶機(jī)200上的協(xié)同應(yīng)用60使用在同一客戶機(jī)計算設(shè)備上運(yùn)行的協(xié)同引擎,以與在一個或更多個客戶機(jī)205上運(yùn)行的相應(yīng)應(yīng)用65的一個或更多個實(shí)例協(xié)作,以完成協(xié)同計算。
協(xié)同計算也可由不執(zhí)行協(xié)同應(yīng)用的瘦客戶端(thin client)請求。瘦客戶端可包含網(wǎng)絡(luò)測覽器、Java程序(Java applet)或遠(yuǎn)程命令解釋程序(remote command shell)(例如telnet或rsh)中的網(wǎng)絡(luò)形式。例如,用戶可通過使用客戶機(jī)207向協(xié)同服務(wù)器105提交對于協(xié)同計算的請求,這可在與協(xié)同服務(wù)器100和/或一個或更多個協(xié)同引擎20的協(xié)作中確定結(jié)果。
在另一應(yīng)用(未示出)中,協(xié)同引擎和數(shù)據(jù)倉庫可被加入網(wǎng)絡(luò)管理電路中,并且通過數(shù)據(jù)倉庫中的目標(biāo)被編程,以產(chǎn)生能夠與其它協(xié)同網(wǎng)絡(luò)管理電路協(xié)同執(zhí)行錯誤檢測、服務(wù)水平管理和網(wǎng)絡(luò)管理任務(wù)的協(xié)同網(wǎng)絡(luò)管理電路。例如,網(wǎng)絡(luò)的主段上的一個或更多個協(xié)同網(wǎng)絡(luò)管理電路可與另一網(wǎng)絡(luò)的主段上的一個或更多個協(xié)同網(wǎng)絡(luò)管理電路協(xié)同,以在各段之一中的部件失效的情況下重新配置業(yè)務(wù)用通路。電路可實(shí)現(xiàn)自動化的、多方的、基于規(guī)則的錯誤檢測和包括例如附加帶寬的協(xié)商的業(yè)務(wù)重新路由選擇。目標(biāo)可實(shí)現(xiàn)反映諸如服務(wù)水平協(xié)議(SLA)的商業(yè)考慮的商業(yè)規(guī)則。
應(yīng)用的其它領(lǐng)域包括金融,其中,例如,兩個或更多個金融機(jī)構(gòu)可使用本發(fā)明以在不公開包含的各方的財務(wù)細(xì)節(jié)的情況下確定財務(wù)計算。這些機(jī)構(gòu)可包含一般在公開信息方面受到法律限制的銀行、信用卡供應(yīng)商和稅務(wù)部門。
很容易理解,在所有情況下,對某一域?qū)S玫臄?shù)據(jù)可被屏蔽或通過相關(guān)的協(xié)同引擎或引擎保持專用。域邊界不需要與物理邊界一致。例如,可以在網(wǎng)絡(luò)或數(shù)據(jù)倉庫中存在多個域(例如,每個域用于各個公司部門),和/或在域內(nèi)存在多個網(wǎng)絡(luò)或數(shù)據(jù)倉庫(例如,公司的多個LAN或數(shù)據(jù)倉庫)。
(顯著優(yōu)點(diǎn))本發(fā)明使得能夠在不需要將用于計算的所有輸入都在單一推理工作區(qū)中檢索的情況下通過使用推理邏輯處理該計算。這使得專用或位置相關(guān)輸入在不被傳送到其它方的情況下并且以大大少于常規(guī)技術(shù)的網(wǎng)絡(luò)和計算開銷被用于多方計算。協(xié)同引擎可體現(xiàn)為離散的設(shè)備,因此容易被添加到現(xiàn)有的基礎(chǔ)結(jié)構(gòu)上,并且允許協(xié)同及其管理在協(xié)同設(shè)備級上在中心被限定和控制。還支持用于分布基于推理的計算的附加模型,包括保存部分結(jié)果用于后面的延拓(continuation),以及通過使用多個協(xié)同設(shè)備歸納并行處理復(fù)雜計算。
以上僅說明了本發(fā)明的一些實(shí)施例,并且,在不背離本發(fā)明的范圍的條件下,可以利用對本領(lǐng)域技術(shù)人員來說顯而易見的修改和添加。
(術(shù)語表)目標(biāo)推理的目標(biāo)。推理邏輯將目標(biāo)的解析設(shè)定為其當(dāng)前的任務(wù),并進(jìn)行下去。解析該目標(biāo)的過程將常常導(dǎo)致揭示要被解析的其它目標(biāo)。在正向鏈推理中,這些其它的目標(biāo)作為解析第一目標(biāo)的結(jié)果被解析。在反向鏈推理中,這些其它的目標(biāo)作為解析第一目標(biāo)的先決條件被解析。
目標(biāo)常被再分為事實(shí)和規(guī)則,這里,事實(shí)是用于一些指定實(shí)體的值,規(guī)則是一些關(guān)系,通常采取“如果X,那么Y”的形式。由于規(guī)則只是曾經(jīng)被檢索以解析事實(shí),因此反向鏈趨于僅將事實(shí)看作目標(biāo)。由于解析一個規(guī)則會導(dǎo)致其它規(guī)則被識別和解析,因此正向鏈趨于將規(guī)則視為目標(biāo)。
還存在其它形式的推理邏輯,諸如“基于約束的邏輯”,其一種形式是使用正向推理的類型,其中經(jīng)典規(guī)則和事實(shí)目標(biāo)增加了作為沒有“如果X”謂項(predicate)的正向鏈規(guī)則(例如“10<Y<100”)的約束目標(biāo)。
需要注意,所有目標(biāo)可被有效表示為一個或更多個規(guī)則目標(biāo)a)(事實(shí))如果X沒有值,那么X=100;b)(約束)如果Y<=10,那么斷言Y=11;如果Y>=100,那么斷言Y=99未解析的目標(biāo)推理邏輯確定不能被解析的目標(biāo)。通常這是因為缺少解析該目標(biāo)所需要的一些事情。例如,推理邏輯可試圖跟隨推理到達(dá)目標(biāo)X,但發(fā)現(xiàn)它不能從任何可用的來源檢索目標(biāo)X。在這種情況下,目標(biāo)X被視為是未解析的。并且,第二目標(biāo)即目標(biāo)Y可直接依賴于目標(biāo)X。在這種情況下,作為X未解析的結(jié)果,目標(biāo)Y也是未解析的。第三目標(biāo)即目標(biāo)W可間接依賴于目標(biāo)X(例如,通過直接依賴于目標(biāo)Y)。在這種情況下,如果從W到X的間接通路為或變?yōu)榻馕瞿繕?biāo)W的僅有的方式,那么目標(biāo)W也變?yōu)槭俏唇馕龅摹?br>
例如目標(biāo)X是事實(shí)目標(biāo),例如購買的折扣率(X=?);
目標(biāo)Y是規(guī)則目標(biāo),例如依賴于折扣的規(guī)則,并且目標(biāo)W是通過規(guī)則目標(biāo)Y依賴于X的事實(shí)目標(biāo)(如果X>10%,那么W=W*1.5)。
假定是上述情況,那么,如果不能對X檢索或另外確定某值,那么X是未解析的。規(guī)則目標(biāo)Y因此是未解析的。如果規(guī)則Y是僅有的可解析W的規(guī)則,或者如果W的所有其它剩余的規(guī)則都依賴于X或其它未解析的目標(biāo),那么W因此也是未解析的。
可檢索的目標(biāo)可通過使用推理邏輯發(fā)起的對于目標(biāo)源的請求、而不是例如推理邏輯響應(yīng)由該源發(fā)起的呼入通信提出的請求,由推理邏輯檢索的目標(biāo)。
可檢索目標(biāo)是可根據(jù)請求在工作區(qū)中被檢索的目標(biāo)。因此,如果協(xié)同引擎A可請求來自目標(biāo)源的目標(biāo)并且作為答復(fù)接收該被請求的目標(biāo),那么該目標(biāo)是可檢索的。
部分結(jié)果能夠部分地解析請求但本身不足以解析該請求的與對于結(jié)果的請求相關(guān)的一個或更多個目標(biāo)的組。
部分結(jié)果中的目標(biāo)中的至少一個是不可檢索的目標(biāo)。由于部分結(jié)果中的不可檢索的目標(biāo)是處理其它目標(biāo)的結(jié)果,因此它不能從任何知識庫中被檢索。(由于部分結(jié)果中的不可檢索的目標(biāo)是從其它已知的目標(biāo)動態(tài)產(chǎn)生而不是從靜態(tài)存儲器中被檢索,因此也可被描述為“動態(tài)”目標(biāo),或者,由于它與持續(xù)存在于知識庫中的現(xiàn)有目標(biāo)不同是根據(jù)需要產(chǎn)生的臨時目標(biāo),因此可被描述為“瞬時”目標(biāo))。
這意味著以下方面c)這種不可檢索的目標(biāo)在物理上不存在于任何知識庫中。由于目標(biāo)X不存在于任何知識庫中,因此協(xié)同引擎A的請求“送我目標(biāo)X”不能導(dǎo)致這種目標(biāo)(事實(shí)上,由于目標(biāo)不存在于任何知識庫中,因此不存在可用于檢索它的標(biāo)識符‘X’);d)這種不可檢索的目標(biāo)不能單個地通過單一請求被檢索。協(xié)同引擎A可發(fā)送請求“發(fā)送解析X的所有目標(biāo)”。對該請求的響應(yīng)是多個目標(biāo)的組,不是單一目標(biāo)。
e)這種不可檢索的目標(biāo)只能在特定請求的背景中被算出。如果響應(yīng)的引擎確實(shí)響應(yīng)請求“發(fā)送解析X的所有目標(biāo)”,那么結(jié)果將不與相應(yīng)的部分結(jié)果中的一組目標(biāo)相同。通過取得該請求的結(jié)果并在用于特定請求的特定的一組值的背景中處理這些目標(biāo),會有效形成部分結(jié)果;f)檢索部分結(jié)果的目標(biāo)的請求因此不是對于目標(biāo)的請求,而是對于結(jié)果的請求。例如,推理引擎A可發(fā)送請求“發(fā)送可解析X的所有目標(biāo),假定A=1,B=2,C=3”。首先,這不是對于目標(biāo)的簡單的請求-它是目標(biāo)的交換。第二,所返回的是結(jié)果而不是目標(biāo)。這是用請求處理提供的目標(biāo)并作為發(fā)送協(xié)同引擎的保護(hù)動作產(chǎn)生部分或最終結(jié)果的結(jié)果。
權(quán)利要求
1.一種用使用推理邏輯的協(xié)同引擎電子處理對結(jié)果的請求的方法,其特征在于,該方法包括根據(jù)一個或更多個未解析的目標(biāo)產(chǎn)生部分結(jié)果的步驟。
2.如權(quán)利要求1所述的方法,其中,提供不充分的目標(biāo)以解析請求。
3.如權(quán)利要求1或2所述的方法,其中,部分結(jié)果包含至少一個能夠部分解析被請求的結(jié)果的目標(biāo)。
4.如權(quán)利要求1~3中的任一項所述的方法,包括檢索至少一個可檢索目標(biāo)的步驟。
5.如權(quán)利要求1~4中的任一項所述的方法,還包括識別能夠部分解析對于結(jié)果的請求的未解析的目標(biāo)的步驟,并且其中,部分結(jié)果根據(jù)識別的未解析的目標(biāo)產(chǎn)生。
6.如權(quán)利要求1~5中的任一項所述的方法,其中,根據(jù)一個或更多個未解析的目標(biāo)產(chǎn)生部分結(jié)果的步驟包括產(chǎn)生一組未解析的目標(biāo)和未解析的目標(biāo)依賴的任何目標(biāo)并將所述組包含于部分結(jié)果中。
7.如權(quán)利要求1~5中的任一項所述的方法,其中,根據(jù)一個或更多個未解析的目標(biāo)產(chǎn)生部分結(jié)果的步驟包括產(chǎn)生一組未解析的目標(biāo)的子集和已在子集中的任何目標(biāo)所依賴的任何目標(biāo),并將所述子集包含于部分結(jié)果中。
8.如任一項前面的權(quán)利要求所述的方法,其中,產(chǎn)生部分結(jié)果的步驟還包含屏蔽部分結(jié)果中的至少一個目標(biāo)。
9.如權(quán)利要求8所述的方法,其中,屏蔽目標(biāo)的步驟包括(i)改變目標(biāo)或涉及所述目標(biāo)的一個或更多個目標(biāo);和/或(ii)用僅對執(zhí)行屏蔽的協(xié)同引擎已知的產(chǎn)生的目標(biāo)或值或在與所述引擎相同的安全域中的其它處理代替所述目標(biāo)或所述目標(biāo)中的值。
10.如任一項前面的權(quán)利要求所述的方法,其中,協(xié)同引擎包含發(fā)送協(xié)同引擎,該方法還包括以下步驟(i)包含具有對于結(jié)果的另一請求的部分結(jié)果并將所述另一請求傳送給至少一個另外的協(xié)同引擎或邏輯的執(zhí)行段;或(ii)存儲部分結(jié)果。
11.如權(quán)利要求10所述的方法,其中,從一個或更多個可檢索目標(biāo)產(chǎn)生動態(tài)驗證標(biāo)志并包含具有要被傳送給至少一個另外的協(xié)同引擎的對于結(jié)果的另一請求的動態(tài)驗證標(biāo)志的步驟在傳送對于結(jié)果的另一請求的步驟之前。
12.如權(quán)利要求11所述的方法,其中,產(chǎn)生的動態(tài)驗證標(biāo)志以前沒有作為動態(tài)驗證標(biāo)志被傳送給所述至少一個另外的協(xié)同引擎。
13.一種用使用推理邏輯的協(xié)同引擎電子處理對結(jié)果的請求的方法,其中,協(xié)同引擎包含接收協(xié)同引擎,并且,對于結(jié)果的請求包含至少一個能夠部分解析對于結(jié)果的請求并且不是可檢索的目標(biāo)的目標(biāo),該方法包括根據(jù)可檢索的目標(biāo)和包含于對于結(jié)果的請求中的至少一個目標(biāo)處理對于結(jié)果的請求的步驟。
14.如權(quán)利要求13所述的方法,其中,對于結(jié)果的請求還包括動態(tài)驗證標(biāo)志,該方法還包括以下步驟確認(rèn)包含的驗證標(biāo)志,并且,如果確認(rèn)成功,則前進(jìn),否則,如果確認(rèn)失敗,則終止處理。
15.如權(quán)利要求1~14中的任一項所述的方法,其中,協(xié)同引擎包含收發(fā)協(xié)同引擎,該方法包括以下步驟(i)如果對于結(jié)果的請求包含至少一個能夠部分解析請求的結(jié)果的目標(biāo),則根據(jù)可檢索的目標(biāo)和包含于對于結(jié)果的請求中的至少一個目標(biāo)處理對于結(jié)果的請求;或者(ii)否則,根據(jù)可檢索的目標(biāo)處理對于結(jié)果的請求。
16.如任一項前面的權(quán)利要求所述的方法,其中,(i)用兩個或更多個協(xié)同引擎處理對于結(jié)果的請求,(ii)如果在可檢索的目標(biāo)內(nèi)提供不充分的目標(biāo),并且,如果包含在對于結(jié)果的請求中的至少一個目標(biāo)可應(yīng)用于解析被請求的結(jié)果,那么產(chǎn)生部分結(jié)果,(iii)如果產(chǎn)生部分結(jié)果,那么包含部分結(jié)果的對于結(jié)果的另一請求被傳送給至少一個另外的協(xié)同引擎。
17.如任一項前面的權(quán)利要求所述的方法,其中,推理邏輯包含基于規(guī)則的邏輯。
18.如任一項前面的權(quán)利要求所述的方法,其中,對于結(jié)果的請求是送往或來自通信網(wǎng)絡(luò)的用戶的用于電子通信的路由選擇通路的請求。
19.如權(quán)利要求18所述的方法,包括檢索作為與為該用戶處理電子通信有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟。
20.如權(quán)利要求18所述的方法,其中,對于結(jié)果的請求是用于電話連接的路由選擇通路的請求。
21.如權(quán)利要求20所述的方法,包括檢索作為與為該用戶確定用于電話連接的路由選擇通路有關(guān)的事實(shí)或規(guī)則的至少一個目標(biāo)的步驟。
22.如權(quán)利要求18所述的方法,其中,對于結(jié)果的請求是來自或送往該網(wǎng)絡(luò)的用戶的用于通信消息的路由選擇通路的請求。
23.如權(quán)利要求22所述的方法,包括檢索作為與為該用戶確定用于通信消息的路由選擇通路有關(guān)的事實(shí)或規(guī)則的至少一個目標(biāo)的步驟。
24.如權(quán)利要求1~17中的任一項所述的方法,其中,對于結(jié)果的請求是對于電子數(shù)據(jù)網(wǎng)絡(luò)的部件的管理動作的請求。
25.如權(quán)利要求24所述的方法,包括檢索作為與管理該部件有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟。
26.如權(quán)利要求1~17中的任一項所述的方法,其中,對于結(jié)果的請求是對于商業(yè)交易的請求。
27.如權(quán)利要求26所述的方法,包括檢索作為與處理商業(yè)交易有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟。
28.如權(quán)利要求1~17中的任一項所述的方法,其中,對于結(jié)果的請求是用于執(zhí)行辦公自動化、工作流程、日程表或文件管理處理的請求。
29.如權(quán)利要求28所述的方法,包括檢索作為與辦公自動化、工作流程、日程表或文件管理處理有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)的步驟。
30.一種通過使用推理邏輯電子處理對于結(jié)果的請求的協(xié)同引擎,其特征在于,協(xié)同引擎包含用于根據(jù)一個或更多個未解析的目標(biāo)產(chǎn)生部分結(jié)果的裝置。
31.如權(quán)利要求30所述的協(xié)同引擎,其中,對于結(jié)果的請求包含部分結(jié)果,所述協(xié)同引擎還包含用于處理部分結(jié)果的裝置。
32.如權(quán)利要求30或31所述的協(xié)同引擎,其中,協(xié)同引擎適于在沒有足夠的目標(biāo)可用于解析請求的情況下產(chǎn)生部分結(jié)果。
33.一種通過使用推理邏輯電子處理對于結(jié)果的請求的協(xié)同引擎,其中,對于結(jié)果的請求包含部分結(jié)果,其特征在于,協(xié)同引擎包含用于處理部分結(jié)果的裝置。
34.如權(quán)利要求30~33中的任一項所述的協(xié)同引擎,其中,協(xié)同引擎與至少一個通信網(wǎng)絡(luò)連接并適于處理送往或來自通信網(wǎng)絡(luò)的用戶的用于電子通信的路由選擇通路的請求。
35.如權(quán)利要求34所述的協(xié)同引擎,其特征在于,協(xié)同引擎適于檢索作為與為該用戶處理電子通信有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)。
36.如權(quán)利要求30~33中的任一項所述的協(xié)同引擎,其中,協(xié)同引擎與至少一個電子數(shù)據(jù)網(wǎng)絡(luò)連接并適于處理用于確定關(guān)于該網(wǎng)絡(luò)的至少一個部件的管理動作的請求。
37.如權(quán)利要求36所述的協(xié)同引擎,其特征在于,協(xié)同引擎適于檢索作為與該網(wǎng)絡(luò)的至少一個部件的管理有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)。
38.如權(quán)利要求30~33中的任一項所述的協(xié)同引擎,其中,協(xié)同引擎與至少一個電子數(shù)據(jù)網(wǎng)絡(luò)連接并適于處理用于為與網(wǎng)絡(luò)連接的用戶確定商業(yè)交易的請求。
39.如權(quán)利要求38所述的協(xié)同引擎,其特征在于,協(xié)同引擎適于檢索作為與為該用戶處理商業(yè)交易有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)。
40.如權(quán)利要求30~33中的任一項所述的協(xié)同引擎,其中,協(xié)同引擎與至少一個電子數(shù)據(jù)網(wǎng)絡(luò)連接并適于為與該網(wǎng)絡(luò)連接的用戶處理用于執(zhí)行辦公自動化、工作流程、日程表或文件管理處理的請求。
41.如權(quán)利要求40所述的協(xié)同引擎,其特征在于,協(xié)同引擎適于為該用戶檢索作為與辦公自動化、工作流程、日程表或文件管理處理有關(guān)的事實(shí)或規(guī)則的至少一個可檢索目標(biāo)。
42.如權(quán)利要求30~41中的任一項所述的協(xié)同引擎,其中,推理邏輯使用基于規(guī)則的邏輯。
43.一種用使用推理邏輯的協(xié)同引擎電子處理對結(jié)果的請求的方法,其特征在于,該方法包括根據(jù)一個或更多個可檢索的目標(biāo)處理部分結(jié)果的步驟。
全文摘要
本發(fā)明涉及使用推理邏輯的協(xié)同處理。協(xié)同引擎通過使用推理邏輯電子處理對于結(jié)果的請求。如果提供不充分的目標(biāo)以解析請求,那么根據(jù)一個或更多個未解析的目標(biāo)產(chǎn)生部分結(jié)果??梢酝ㄟ^使用工作區(qū)鏈用兩個或更多個協(xié)同引擎處理對于結(jié)果的請求,以處理來自/送往具有防止其間的信息的完全流通的安全限制的多個域或系統(tǒng)。一個協(xié)同引擎的工作區(qū)可用的輸入盡可能地被解析,并且,基于該處理的部分結(jié)果產(chǎn)生并被傳送,用于在另一協(xié)同引擎的工作區(qū)中進(jìn)一步處理。本發(fā)明可用于確定送往/來自通信網(wǎng)絡(luò)的用戶的數(shù)據(jù)或電話通信的路由選擇通路,或用于處理電子數(shù)據(jù)網(wǎng)絡(luò)的部件的管理動作或商業(yè)交易。
文檔編號G06N5/00GK101080734SQ200580043421
公開日2007年11月28日 申請日期2005年10月24日 優(yōu)先權(quán)日2004年10月22日
發(fā)明者尼古拉斯·馬克·特里瓦林-瓊斯 申請人:99有限公司