摘 要:? 提出一種基于會(huì)話策略的多主體交互協(xié)議描述方法。交互協(xié)議中的消息用言語(yǔ)動(dòng)作來(lái)表示,這些言語(yǔ)動(dòng)作被描述為WS-Agreement的schema,;會(huì)話策略則描述了消息傳遞的流程以及交互過(guò)程中的上下文信息,如參與者屬性,、時(shí)間閾值等等,所有這些會(huì)話策略組成了一個(gè)多主體交互協(xié)議,;采用本體描述語(yǔ)言O(shè)WL作為會(huì)話策略的表示語(yǔ)言,。這種方法使得主體在一個(gè)開(kāi)放、動(dòng)態(tài)的環(huán)境中可以靈活地選擇交互協(xié)議,。
關(guān)鍵詞: 多主體系統(tǒng),; 交互協(xié)議; 本體,; 會(huì)話策略
?
多主體系統(tǒng)MAS(Multi-Agent System)由一組相對(duì)自治的主體組成,。交互是多主體系統(tǒng)的一個(gè)基本特性,使得多主體系統(tǒng)表現(xiàn)出了任何單個(gè)主體都不具有的復(fù)雜行為,。主體交互的一個(gè)非常有效的方式是會(huì)話,,會(huì)話是多主體系統(tǒng)中主體合作活動(dòng)的基石。為了結(jié)構(gòu)化主體間的會(huì)話過(guò)程,,有關(guān)交互協(xié)議的研究熱情日益高漲,。
主體使用結(jié)構(gòu)化主體通信語(yǔ)言ACL(Agent Communication Language)進(jìn)行通信。許多基于言語(yǔ)動(dòng)作的ACL已經(jīng)研究出來(lái),,如KQML[1],、FIPA ACL[2],但是決定何時(shí)使用交互協(xié)議,、傳遞什么信息以及如何描述會(huì)話結(jié)構(gòu)等問(wèn)題還是留給了多主體系統(tǒng)的設(shè)計(jì)者,。對(duì)于封閉的多主體系統(tǒng),可以直接編碼,,因?yàn)橄到y(tǒng)中用到的交互協(xié)議都可以事先預(yù)料并設(shè)計(jì)好。隨著多主體系統(tǒng)理論和實(shí)踐研究的日益深入,,多主體系統(tǒng)和Internet平臺(tái)的融合趨勢(shì)日益明顯,。在Internet這樣一個(gè)開(kāi)放,、動(dòng)態(tài)環(huán)境中,主體之間的交互是一件復(fù)雜而困難的事情,,每個(gè)主體對(duì)于交互(Interaction)都有著不同的理解和不同的要求,。而且,根本無(wú)法預(yù)料到所有的交互協(xié)議,,因?yàn)橛泻芏嗲闆r都會(huì)產(chǎn)生新的交互協(xié)議,,如新實(shí)體的加入、新服務(wù)的加入等,。顯而易見(jiàn):任何一個(gè)特定的交互協(xié)議都無(wú)法適用于所有的場(chǎng)景,,滿(mǎn)足所有主體的需求。
針對(duì)這一問(wèn)題,,本文提出一種開(kāi)放多主體系統(tǒng)交互協(xié)議的表示方法,,用描述性的語(yǔ)言表示多主體交互協(xié)議。交互協(xié)議中的消息用言語(yǔ)動(dòng)作表示,,這些言語(yǔ)動(dòng)作被描述為WS-Agreement的schema,;會(huì)話策略則描述了消息傳遞的流程以及交互過(guò)程中的上下文信息,如參與者屬性,、時(shí)間閾值等,,所有這些會(huì)話策略就組成了一個(gè)多主體交互協(xié)議;采用本體描述語(yǔ)言O(shè)WL作為會(huì)話策略的描述語(yǔ)言,。因此從形式上,,一個(gè)主體交互協(xié)議就是一些用OWL語(yǔ)言表示的會(huì)話策略。利用這種方法,,擔(dān)當(dāng)服務(wù)提供者角色的主體使用OWL描述并發(fā)布與自己交互的協(xié)議,,即若干會(huì)話策略;而對(duì)服務(wù)請(qǐng)求者的主體來(lái)說(shuō),,只要能夠理解這些基于OWL的會(huì)話策略,,就可以與之進(jìn)行交互?;贠WL的描述特性,,主體的通信模塊與交互協(xié)議的耦合度大大降低,主體可以根據(jù)自己的需求發(fā)布任何形式的交互協(xié)議,,而其他主體可以參加任何形式的交互(只要它能夠理解其他主體的協(xié)議描述語(yǔ)言),,不僅極大地提高了靈活性,而且簡(jiǎn)化了軟件主體的結(jié)構(gòu),。
1 消息描述
為了定義一個(gè)多主體交互協(xié)議,,一方面必須定義消息的表示方法,因?yàn)橄⑹墙换ミ^(guò)程中基本的信息單元。在FIPA的言語(yǔ)動(dòng)作庫(kù)[3]中規(guī)定了一些基本的言語(yǔ)動(dòng)作,,如request,、propose、accept,、reject等,,語(yǔ)義豐富而靈活,能夠支持主體之間的靈活交互,。另一方面,,WS-Agreement[4]是一種基于XML的語(yǔ)言,具有描述性的特點(diǎn),。因此,,本文擴(kuò)展WS-Agreement的Schema已包括這些言語(yǔ)動(dòng)作,用這些言語(yǔ)動(dòng)作表示一個(gè)多主體交互協(xié)議中的個(gè)體消息,。
邏輯上,,一個(gè)消息的結(jié)構(gòu)為:
Message = Speech Act (sender, receiver, proposal)
Speech Act定義了消息的類(lèi)型,表達(dá)了消息的意圖,。言語(yǔ)動(dòng)作是根據(jù)消息的語(yǔ)義來(lái)劃分的,,交互協(xié)議就是由這些基本的言語(yǔ)動(dòng)作組合而成的。sender和receiver表示了這個(gè)言語(yǔ)動(dòng)作的參與者,;proposal則是這個(gè)言語(yǔ)動(dòng)作的內(nèi)容,,描述了sender對(duì)服務(wù)的期望。
可以用擴(kuò)展WS-Agreement的Schema來(lái)表示這些言語(yǔ)動(dòng)作,。例如,,offer消息是一個(gè)“take-it-or-leave-it”的提議,接收者或者接受這個(gè)提議,,或者拒絕,,而不能回應(yīng)另一個(gè)提議。一個(gè)offer消息類(lèi)型可以表示為:
其中,,Speech Act規(guī)定了消息的語(yǔ)義;而Wsag:Terms這個(gè)tag則封裝了主體交互過(guò)程中的一個(gè)提議,,表達(dá)了對(duì)服務(wù)的期望。
其他Speech act可以以同樣的方式予以定義,。
2 交互協(xié)議描述
在主體交互過(guò)程中,,為了進(jìn)行有組織的信息交換,僅僅定義個(gè)體消息是不夠的,,還必須定義主體交互過(guò)程中的消息傳遞流程以及交互的上下文信息,,即主體交互協(xié)議。形式上,,一個(gè)多主體交互協(xié)議就是一個(gè)會(huì)話的過(guò)程,,本文采用會(huì)話策略來(lái)描述這些多主體交互協(xié)議,。
會(huì)話是多個(gè)主體為了達(dá)到一定的目標(biāo)而交換的言語(yǔ)動(dòng)作序列。為了使會(huì)話有意義,,會(huì)話必須遵守一定的規(guī)約:(1)必須規(guī)定言語(yǔ)動(dòng)作的交換順序,,例如,當(dāng)收到一個(gè)Request消息,,可以回應(yīng)一個(gè)Accept或者Reject消息;(2)必須規(guī)范會(huì)話的上下文信息,如消息的內(nèi)容,、通信動(dòng)作的發(fā)送者和接收者的屬性,、時(shí)間約束等。而會(huì)話策略[5]則是一些描述性的規(guī)約,,這些規(guī)約起著約束主體之間消息交換的作用,,并且對(duì)所有參與者公開(kāi)。更確切地講,,一個(gè)會(huì)話策略就是一個(gè)細(xì)粒度的約束集合,,針對(duì)主體會(huì)話的某一特定方面。這些約束是公開(kāi)的,、共享的和標(biāo)準(zhǔn)的,,并能以不同的方式組合。不同的會(huì)話適用不同的策略集合,。當(dāng)主體為了交互而同意遵守某些會(huì)話策略時(shí),,也就意味著它們接受這些約束集合來(lái)管理它們之間的交互。
策略規(guī)則是策略的基本單元,。一個(gè)策略規(guī)則表示為參與交互的主體特定條件下被允許(permission),、禁止(prohibition)或強(qiáng)制(obligation)發(fā)送的言語(yǔ)動(dòng)作,其邏輯結(jié)構(gòu)表示為:
Deontic(Actor,,Speech Act,,Conditions)
其中,Deontic表示了允許,、禁止或強(qiáng)制等概念,;Actor是策略規(guī)則的約束對(duì)象,Speech Act是被約束對(duì)象的動(dòng)作,;Conditions表示Actor能夠發(fā)送Speech Act的前置條件,。例如,一個(gè)策略規(guī)則“任何一方在收到對(duì)方的accept消息后,,必須回應(yīng)一個(gè)Acknowledge消息”,,可以表示為:
Obligation(X, Acknowledge(X, Y, Proposal), Y. Accepted)
其中,X,、Y是兩個(gè)變量,,分別表示Acknowledge這個(gè)Speech Act的發(fā)送者和接收者,;Y. Accepted表示當(dāng)前狀態(tài)是Y接受了X的一個(gè)提議。
一個(gè)會(huì)話策略是一個(gè)策略規(guī)則的集合,,通常對(duì)應(yīng)主體交互過(guò)程中的某一方面的全部或部分特征,,如終止、同步,、異常處理,,等等;這也符合“一個(gè)會(huì)話策略就是一個(gè)細(xì)粒度的約束集合”的概念,。所有描述多主體交互過(guò)程的會(huì)話策略共同定義了一個(gè)多主體交互協(xié)議,。
一個(gè)策略的邏輯結(jié)構(gòu)如下所示:
CP= Operator {r1,r2,…,rn}
其中,Operator是一個(gè)邏輯操作符,。如果Operator是“All”,,則所有策略規(guī)則都生效;如果Operator是“ExactlyOne”,,則只有一個(gè)策略規(guī)則生效,;如果Operator是“OneOrMore”,則至少一個(gè)規(guī)則生效,;ri是一個(gè)策略規(guī)則,。
采用本體語(yǔ)言O(shè)WL作為會(huì)話策略的描述語(yǔ)言,會(huì)話策略相關(guān)的概念被定義為OWL的class,,所有class組成一個(gè)本體,。會(huì)話策略上層本體如圖1所示。
?
Policy,,即會(huì)話策略,,定義了對(duì)主體交互過(guò)程的某些約束。一個(gè)Policy可能包含多個(gè)策略規(guī)則,,并且用“All”,、“ExactlyOne”和“OneOrMore”等邏輯操作符組合成這些策略規(guī)則;
一個(gè)策略規(guī)則就是一個(gè)Deontic concept,,定義了特定條件下某個(gè)主體被允許(Permission),、禁止(Prohibition)或強(qiáng)制(Obligation)發(fā)出的Speech Act,其邏輯結(jié)構(gòu)是一個(gè)“Condition-action”的聲明,。一個(gè)策略規(guī)則可能具有一個(gè)優(yōu)先級(jí)屬性,,用以解決可能發(fā)生的沖突;而且,,Actor可以是一個(gè)變量,;
Speech Act定義了一個(gè)發(fā)送消息的行為: Performative表征了消息的語(yǔ)義,Sender和Receiver表示參與者,,Proposal表示消息的內(nèi)容并且由特定的領(lǐng)域本體來(lái)描述,,而Grounding將這個(gè)Speech Act映射到一個(gè)具體的用WS-agreement schema定義的消息,。根據(jù)具體需要,可以將Propose,、Accept,、Reject、Inform等具體的言語(yǔ)行為定義為Speech Act的子類(lèi),。
Condition定義了行動(dòng)的前置條件,,其邏輯形式是一個(gè)(Subject,Predicate,,Object)的三元組,。比如,條件“Mike是電子工程系的學(xué)生”定義為(Mike,,StudentOf,EE),。
3 示例:FIPA提議協(xié)議
作為一個(gè)示例,,用基于本體和會(huì)話策略的方法來(lái)描述FIPA提議協(xié)議(FIPA Propose Protocol),如圖2所示,。
主體Initiator向主體Participant發(fā)送一個(gè)Propose消息,,而Participant可以回應(yīng)一個(gè)Accept或者Reject消息。這三個(gè)消息都可以用WS-Agreement schema來(lái)定義,,如第2節(jié)所述,。
對(duì)圖1的上層本體進(jìn)行擴(kuò)展,將Propose,、Accept和Reject三個(gè)言語(yǔ)行為定義為類(lèi)Speech Act的子類(lèi),。則FIPA提議協(xié)議可以用同步策略和終止策略來(lái)表示。
3.1 同步策略
Permission (Initiator, Propose (Initiator, Participant, Proposal),-);
Obligation (Participant, Speech Act, Initiator.proposed);
Permission (Participant, Reject-proposal (Participant, Initiator, Proposal), Initiator.proposed);
Permission (Participant, Accept-proposal (Participant, Initiator, Proposal), Initiator.proposed);
這個(gè)策略包括4條策略規(guī)則,,用and操作符連接:
(1) 主體Initiator隨時(shí)可以給主體Participant發(fā)送Propose消息,;
(2) 主體Participant收到Propose消息后必須回應(yīng);
(3) 主體Participant收到Propose消息后可以回應(yīng)Accept消息,;
(4) 主體Participant收到Propose消息后可以回應(yīng)Reject消息,。
3.2? 終止策略
Prohibition (Participant, Speech Act, Participant.rejected);
Prohibition (Participant, Speech Act, Participant.rejected);
Prohibition (Initiator, Speech Act, Participant.rejected);
Prohibition (Initiator, Speech Act, Participant.accepted);
這個(gè)策略同樣包含4個(gè)規(guī)則,用and操作符聯(lián)結(jié):
(1) 主體Participant發(fā)送Reject消息后不能再發(fā)送消息,;
(2) 主體Participant發(fā)送Accept消息后不能再發(fā)送消息,;
(3) 主體Initiator收到Accept消息后不能再發(fā)送消息,會(huì)話過(guò)程終止,;
(4) 主體Initiator收到Reject消息后不能再發(fā)送消息,,會(huì)話過(guò)程終止。
主體Initiator使用OWL語(yǔ)言描述這兩個(gè)會(huì)話策略,,即描述這個(gè)提議協(xié)議(由于篇幅所限,,本文不再給出協(xié)議的OWL表示),,并發(fā)布出去。任何一個(gè)其他主體,,只要能夠理解OWL,,就可以通過(guò)這個(gè)提議協(xié)議和Initiator進(jìn)行交互。
研究人員在多主交互協(xié)議方面已經(jīng)作了大量工作,,取得了許多有代表性的階段性成果[6-7],。
隨著多主體系統(tǒng)和互聯(lián)網(wǎng)平臺(tái)的融合[8],需要一種全新的方法,,在互聯(lián)網(wǎng)這樣一個(gè)開(kāi)放,、動(dòng)態(tài)環(huán)境中描述多主體協(xié)議, 使得主體能夠靈活地參與多種形式的交互,。本文用描述性的方法來(lái)表示一個(gè)主體交互協(xié)議,。交互協(xié)議中的個(gè)體消息被表示為WS-agreement Schema,交互協(xié)議則被描述為一個(gè)會(huì)話策略集合,,采用描述性的本體語(yǔ)言O(shè)WL作為會(huì)話策略的表示語(yǔ)言,,將主體的內(nèi)部結(jié)構(gòu)和具體的交互協(xié)議完全解耦合。主體可以自由地選擇,、發(fā)布交互協(xié)議,,使得主體間的交互具有最大限度的靈活性。
參考文獻(xiàn)
[1]?GENESERETH M R,, KETCHPEL S P. Software agents[J], Comm. of the ACM, 1994, 37(7): 49-53.
[2] ?FIPA. FIPA agent communication language specifications.?http://www.fipa.org/repository/aclspecs.html, 1998.
[3]? FIPA. FIPA communicative act library specification.www.fipa.org/specs/fipa00037/SC00037J.pdf, 2002.
[4]? ANDRIEUX A, CZAJKOWSKI C, DAN A, et al. Web?services agreement specification(WS-Agreement), June?29th 2005.
[5]? ?GREAVES M, HOLMBACK H, BRADSHAW J. What is a ?conversation policy[C]. Autonomous Agents ’99 Workshop?on Specifying and Implementing Conversation Policies,1999.
[6]? 趙志崑,,盛秋戩,高翔,,等. 多主體交互協(xié)議的表示和實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用,,2004(24):8-11.
[7]? 楊建池,張新宇,,黃柯棣. 本體論在Agent 間通信中的應(yīng)用[J]. 系統(tǒng)仿真學(xué)報(bào), 2007,19(6):1199-1201.
[8] ?伍春暉,龔正虎. Web服務(wù)與Agent技術(shù)結(jié)合的研究[J].微處理機(jī), 2006,27(4):96-98.