Сообщение, содержащиеся внутри протокола, может быть двусмысленно, может иметь более одного ответа, или может требовать разделения и помощи других агентов, однако сам коммуникационный протокол должен четко определять тип посылаемого сообщения.
2.2.6 Язык запроса и управления знаниями (KQML – knowledge query and manipulation language).
Фундаментальным решением во взаимодействии агентов является разделение семантики коммуникационного протокола (которая должна быть доменно-независима) и семантики, заключенной в сообщении (которая может зависеть от домена). Коммуникационный протокол должен быть универсально разделяем всеми агентами. Он должен быть лаконичным и иметь только ограниченное число элементарных коммуникационных действий.
Язык запроса и управления знаниями (KQML) это протокол обмена информацией и знаниями, как показано на рисунке 2.2. Элегантность KQML заключается в том, что вся информация, необходимая для понимания содержания сообщения, включена в сам процесс коммуникации. Базовый протокол определяется следующей структурой:
(KQML – performative
:sender <word>
:receiver <word>
:language <word>
:ontology <word>
:content <expression>
…)
Синтаксис похож на синтаксис Лисп; однако аргументы, определяемые ключевыми словами, начинаемые двоеточием, могут располагаться в любом порядке. Перформативы KQML созданы по образцу перформативов речевых действий. Таким образом, семантика перформативов KQML доменно независима, в то время как семантика сообщения определена полями :content (само сообщение), :language (язык в котором записано сообщение), :ontology (словарь «слов» в сообщении). В результате KQML «обертывает» сообщение в структуру, которая может быть понята любым агентом. (Для понимания самого сообщения, получатель должен понимать язык и иметь доступ к онтологии).
Термины :content, :language, :ontology описывают семантику сообщения. Другие аргументы, включая :sender, :receiver, :reply-with, :in-reply-to, является параметрами передачи сообщения. KQML предполагает асинхронную коммуникацию; поля :reply-with от отправителя и :in-reply-to от отвечающего агента связывают исходящее сообщение с ожидаемым ответом.
KQML является частью широкой исследовательской попытки разработать методологию для распределения информации между различными системами [35] Одна часть попытки включает определение формата обмена знаниями (KIF – knowledge interchange format), формального синтаксиса для представления знаний. Описанный в следующем разделе, KIF в значительной степени основывается на исчислении предикатов первого порядка. Другая часть попытки, определение общих концепций, атрибутов, и связей для различных подмножеств мира знаний. Определения онтологических терминов придает значение выражениям, представленным в KIF. Например в Block-World онтологии, если концепция деревянного блока данного размера представлена унарным предикатом Block, то факт, что блок A находится на вершине блока B, может быть сообщен:
(tell
:sender Agent1
:receiver Agent2
:language KIF
:ontology Block-World
:content (AND (Block A) (Block B) (On A B))
Язык в KQML сообщении не ограничивается KIF; другие языки, такие как Пролог, Лисп, SQL или любой другой определенный язык коммуникации агента может быть использован.
KQML-говорящие агенты представляются друг для друга как клиенты и серверы. Их коммуникация может быть как синхронной, так и асинхронной, как это проиллюстрировано на рисунке 2.3. Для синхронной коммуникации агент отправитель ждет ответа. При асинхронной коммуникации агент, отправивший сообщение, продолжает свое размышления и действия, которые в последствии будет прерваны приходом ответа.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.