百科解釋
KQML有三大獨立性: 1. KQML獨立于網(wǎng)絡傳輸機制(即TCP/IP,SMTP,IIOP等); 2. KQML獨立于內容語言(即SQL,PROLOG等); 3. KQML獨立于內容實體; KQML消息的三層結構如下: 、賰热輰: 在程序開發(fā)語言中,包含有消息的實際內容,KQML支持ASCII碼語言和二進制符號 ②通信層: 實現(xiàn)消息特性,將低級的消息參數(shù),例如消息的傳送者和接受者,采用特定的標識符 進行標識. 、巯: KQML的核心,其基本功能是標識用以發(fā)送消息的協(xié)議,提供講話動作或執(zhí)行發(fā)送者 在內容中附加的行為,另外,消息層還包括一些用以描述內容層信息的可選部分,如語言,采用的術 語,通信主題描述符等,以便KQML對要傳遞的內容進行分析,路由和發(fā)送. (一) KQML語言規(guī)范 KQML的核心是預先定義的行為詞(performative).采用 ASCII字符串表示的行為詞(performative) 具有可讀性好,方便程序分析(特別是對許多知識庫程序) ,可以在許多內部應用消息調用機制的平臺之間 傳遞等優(yōu)點 .行為詞形式化定義如下: ::= ( { : } *) ::= | | | ( { } *) ::= * ::=''|'' ::= | |, | ( { } *) ::="*"| # *"* ::= | - - 注意在上述定義中, 是特殊的 ;在定長字符串中, 如:# 3"abc, 雙引號前的數(shù)字表明雙引號后的字符串的長度.行為詞的一些參數(shù)是可選的, 在調用參數(shù)時在前面注明 關鍵字, 因此和參數(shù)順序無關. 這些稱作參數(shù)名的關鍵字必須以冒號(:)開頭, 后面加上相應的參數(shù)值.KQML使用了一些關鍵字作 為行為詞的參數(shù)名, 如下表一: 參數(shù)名 參數(shù)類型 含義 :sender 請求的真實發(fā)送者 :receiver 請求的真實接受者 :form 使用forward轉發(fā)請求時 ,參數(shù) content內記錄的原始發(fā)送者 :to 使用 forward轉發(fā)請求時 ,參數(shù) content內記錄的原始接收者 :reply-with- 此消息 (回應消息)的標記 :in-reply-to 使用 reply- with所回應的前條消 息的標記 :language 參數(shù) content中使用的語言名稱 :ontology 參數(shù) content中使用的實體集的 名稱 :content 實際傳遞的信息 表一 行為詞(performative)的參數(shù)含義 KQML語言具有可擴展性, 針對不同應用領域的MAS系統(tǒng), 可以自己定義新的行為詞,如register , recommend,advertise等等,只要這些行為詞(performative)仍然符合KQML規(guī)范并具有一定的實際功能 即可. 下面是一個KQML的消息實例: Mark和 John分別是網(wǎng)絡上有協(xié)作關系的兩個節(jié)點的agent.Mark想知道中間人Annie的電話號碼. Mark接口主體將這一請求發(fā)送給自身的任務主體.任務主體在本節(jié)點內查詢,未能滿足請求時,自動 將請求通過通信主體發(fā)送給所有存在協(xié)作關系的其它通信主體.其中,發(fā)送給 John的代碼如表二 (ask- one: sender Mark :receiver John :language Prolog :ontology person :content "telephone(Annie,X)" :reply- with id1 ) 表二 在這一消息中ask-one是KQML的performative, 內容為"telephone(Annie,X)",實體被標記為 person,內容描述語言為Prolog,發(fā)送者為Mark,接受者為John.John一種可能的應答為表三所示: (tell : sender John :receiver Mark :language Prolog :ontology person :content"telephone(Annie,5586666)" :in- reply- to id1 ) 表三 這樣,tell成為KQML的performative,內容為"telephone(Annie,5586666)",實體依然被標 記為person,內容描述語言為Prolong.Mark的請求被透明地完成了,而不必了解復雜的實現(xiàn)過 程 如前文所述,在每個基于 KQML會話的 MAS系統(tǒng)中, 至少有一個agent處在稱作管理服務機構 的特殊地位,我們稱之為scheduler, 該agent能夠處理本系統(tǒng)中其他 agent請求的一些網(wǎng)絡通信服務 , 如:注冊/取消注冊 (register/unregister),轉交請求 (forward),推薦一個/或所有能夠解決某項請求的agent (rec-ommend-one/recommend-all),招募一個/或所有的代理解決某項請求后將結果返回 (recruit-one/ recruit-all).其他agent向scheduler發(fā)出advertise消息告知自己愿意接受并能正確處理的信息 .實際 系統(tǒng)中也可加入一些限制條件, 如:此agent僅處理來自特定位置的請求等.對于一個由多個域組成的 MAS系統(tǒng)(一個schedulerr 對應一個域) , agent之間可以通過scheduler通信, 也可以直接通信, 這就意 味著當一個scheduler在自身接受的advertise中找不到某個請求相應的回答時, 將向其他scheduler發(fā)出 請求.KQML為agent之間以及agent與人之間提供了一種簡便而統(tǒng)一的方法來查詢,修改.
移動通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團隊博客 | 免責聲明 | 關于詞典 | 幫助