當前位置:股票大全官網 - 基金投資 - KQML和ACL的區別

KQML和ACL的區別

FIPA ACL是由智能物理代理基金會(FIPA)完成的代理通信語言標準化工作。這個ACL在語法上非常類似於KQML。它定義了20個語用詞來幫助理解消息的內容,但它沒有壹個與KIF等效的語言來像KQML壹樣描述消息的內容。例如,FIPA ACL的壹個示例:

(通知

:發件人代理1

:接收方代理2

:內容(價格商品2 150)

:語言sl

:本體HPL-拍賣

)

從這個例子可以看出,KQML和FIPA ACL的消息結構是壹樣的,兩者最重要的區別在於語用詞的收集。此外,更重要的是,FIPA ACL的開發者通過壹種叫做SL的形式語言給出了這種語言的形式語義。SL允許表達壹個代理的信念、願望和意圖,以及這個代理執行的動作。簡單來說,如果要發送定義明確的消息,消息發送方必須滿足壹定的約束條件,這些約束條件稱為可行條件。此外,語義還用SL定義了消息的目的,即代理通過發送消息想要達到的目的,稱為動作的合理結果。消息的壹致性要求發送代理滿足可行條件,但不壹定有合理的結果(因為合理的結果終究只是發送代理的壹廂情願)。

以下是inform(簡化版)的語義:

& ltI,inform(j,p)>

可行條件:BiP而不是Bi(IjfjP或UifjP)

合理的結果:人民黨

BiP的意思是“代理人I相信P”;BifiP的意思是“代理人I有這樣或那樣的方法來確定P是真是假”;UifiP的意思是代理I“不確定”P,這樣,代理I向代理J發送內容為P的消息到FIPA ACL的語義是,如果它相信P,而不存在這種情況,即它相信J相信P是真還是假,或者J不能確定P是真還是假。如果代理成功執行inform,那麽消息代理j將相信p。

有了語義的形式語義,就可以測試通信過程的壹致性。根據Wooldridge的總結,給定壹個Agent和壹種具有完善語義定義的Agent通信語言,壹致性測試的目的是確定Agent無論何時通信都遵循這種語言的語義。雖然問題很明確,但是很難構造壹個外部程序來測試壹個Agent程序是否遵守這種語言的語義(相當於通過通信之外的手段準確知道Agent的內部狀態)。

在多智能體系統的通信需求下,美國國防部高級研究計劃局(DARPA)於20世紀90年代建立了自己的知識共享計劃(KSE ),旨在解決以下問題:

“[開發]壹個用於在自治信息系統之間表達知識的交換協議。”

KSE當時受到言語行為理論的影響,並在此基礎上建立了智能體交流語言。簡單來說,言語行為理論來源於我們日常的語言交流,句子本身並不能真正表達我想表達的意思。此外,還需要壹定的言語行為,如詢問、回答、命令、請求和承諾。言語行為理論認為,雖然使用自然語言的所有可能方式都是無限的,但言語所能執行的行為類型是有限的。言語行為可以從語言的具體內容中分離出來,並進行分類研究。這使得我們可以假設有壹個標準的(或大致可確定的)言語行為集,可以用來定義組織中常見的溝通行為。KSE形成了這種認識,其兩個主要文件是:

知識查詢和操作語言KQML

知識交換格式

其中,KQML相當於定義了Agent通信的“信封”格式,不管Agent之間的通信是基於什麽領域知識,也不管通信內容使用什麽語言。KIF主要是“寫信”的替代語言。

麻醉品

KIF嚴格基於壹階謂詞邏輯,但語法上和Lisp差不多(可能Lisp在人工智能中太普及了_)。當我們理解了壹階謂詞邏輯的表達能力,我們就能理解KIF的表達能力。使用KIF,代理可以表示:

壹個物體具有某種性質(如“老王肥胖”——老王具有“肥胖”的性質)

對象之間有壹定的關系(如“小張和陳驍是夫妻”,表示有婚姻關系)

所有物體的壹般性質(如“每個人都有母親”)

為了表達這些知識,KIF提供了固定的結構,以及壹階謂詞邏輯的常用連詞,如and、or、not等。,全稱量詞forall和existence twice,以及常見的數據類型、數字、字符、字符串和壹些標準函數。

例如,汽車A停在停車位X:

(=(位置carA) (park_pos x))

此外,KIF還可以定義新的謂詞,比如定義單身漢,也就是未婚男性可以這樣做:

(defrelation單身漢(?x)) :=

(還有(男人?x)

(不是(結婚了?x))))

可以看出,這樣就可以用簡單的概念構造非常復雜的謂詞。

KQML

KQML定義了信息的公共格式。每條消息包括壹個實用詞和幾個參數。

KQML的壹個例子:

(提問壹

:內容(價格IBM?價格)

:接收庫存-服務器

:語言LPROLOG

:本體NYSE-TICKS

)

這句話的直觀含義是向股票服務器詢問IBM的股票價格。其中,ask-one是KQML中定義的壹個語用詞,而壹些參數名用冒號標記。用冒號標記的部分和緊隨其後的塊形成壹個“屬性/值”對。這樣的壹對表示這個動作的參數。因為參數按名稱匹配,所以參數出現的順序無關緊要。

上面由KQML定義的消息參數如下:

:內容是消息本身的內容。

:force消息的發送者會拒絕消息的內容嗎?

:reply-發送方是否希望得到答復,如果是,則給出壹個答復標識符。

:回復至引用回復至

:發送者消息的發送者

:receiver消息的接收者。

過去有幾個不同版本的KQML,每個版本都有不同的語用詞。也有幾個多代理系統采用了KQML並取得了成功。不過KQML還是有不盡如人意的地方。

KQML的語用詞使用自然語言來描述它們的意義,這使得它們的意義具有模糊性。

KQML的最低通信層沒有嚴格定義,所以即使兩個代理都使用KQML,也不能保證它們可以通信。

KQML的語用詞也不全,至少缺少“承諾”這種語用詞。

KQML的初衷是建立壹個與內容無關的代理通信規範。然而結果只是聊勝於無的交流語言。首先,言語行為是壹種完整表達語義的研究。語用詞本身就是理解語義不可或缺的壹部分,所以把語用詞作為交際原語是違背初衷的。如果把所有與語義理解相關的語用詞都放在消息中或者參數中,也就是增加壹個施為參數,那麽KQML語言的實現會更簡單(當然也可能導致標準不壹致)。