SKTP - Simple Knowledge Transfer Protocol. Первые две реализации SKTP были написаны на языках Common Lisp и Пролог соответственно. В настоящее время разрабатываются интерфейсы на других языках. SKTP - это реализация стека протокола KQML. Как и KQML, SKTP состоит из нескольких уровней: содержимого, сообщений и коммуникации. Коммуникации между приложениями происходят на языке приложений, поддержку данного процесса обеспечивает уровень содержимого (content layer). Выражения, помеченные для передачи, “обертываются” в сообщения - это т.н. уровень сообщений (message layer) , реализуемый с помощью интерфейса библиотеки посредника (Facilitator Interface Library - FIL). Уровень, отвечающий за стратегию передачи сообщений (multicast, broadcast и т.д.) называется коммуникационным и реализован в виде отдельного агента, называемого посредником (facilitator). На самом нижнем уровне, реально несущем структурированные данные между посредниками, находится протокол TCP/IP.
KIF - это язык для обмена знаниями между различными программами, написанными различными людьми, на разных языках и в разное время. Он имеет декларативную семантику (значение выражений, представленных на этом языке, может быть понято без обращения к специальному интерпретатору); он логически полон (обеспечивает выражение произвольных предложений логики предикатов первого порядка), обеспечивает представление знаний о представлении знаний; обеспечивает представление немонотонных правил вывода, определение объектов, функций и отношений.
KIF не претендует на звание языка для внутреннего представления знаний (хотя и может быть использован для этих целей). Обычно программа получает внешние знания, выраженные на языке KIF, затем транслирует их во внутреннее представление (списки, фреймы и т.д) и выполняет все вычисления, используя эти внутренние представления. KIF используется при коммуникациях с внешними программами. Цель языка KIF аналогична цели языка Postscript - он не является языком, достаточно эффективным для представления внутренних знаний программ, но тем не менее он удобен для независимой разработки программ, работающих со знаниями.
Перечислим основные свойства языка KIF.
1. Язык является декларативным, чем отличается от языков типа Prolog и Emycin.
2. Язык является логически полным.
3. Язык является транслируемым (translatability) - он предполагает значения для трансляции декларативных баз знаний в/из типичных языков представления знаний.
4. Язык является хорошо читаемым, что упрощает его использование разработчиком баз знаний.
5. Язык может быть использован как язык представления знаний.
Существуют две разновидности языка KIF: линейный и структурированный. В линейном варианте все его выражения - это строки ASCII-символов, что удобно для хранения на устройствах с последовательным доступом. В структурированном варианте языка правильные выражения - это структурированные объекты. Структурированный язык удобен для использования при коммуникациях программ, работающих в одном адресном пространстве. Между линейным и структурированным представлениями одной и той же сущности существует взаимно-однозначное соответствие.
Соответствие между линейным и структурированным представлениями определяется следующим образом: строка ASCII-символов будет правильным выражением линейного варианта языка KIF тогда и только тогда, когда (1) она допускается интерпретатором языка Common Lisp, и (2) структура, порожденная интерпретатором Common Lisp будет правильным выражением структурированного KIF.
В структурированном KIF определены следующие синтаксические конструкции: word, expression, operator, constant, term, sentence, definition, rule и т.д.
Применимость KIF в рамках разработки агентов видится следующим образом. Ядро агента, а именно: подсистемы управления памятью, планирования, база знаний и т.д. пишутся на С++ или на одном из языков Java, Telescript (если нас интересует способность агента к мигрированию по сетям), а KIF используется как язык для обмена знаниями/данными с другими агентами (для этого агент должен иметь подсистему перетрансляции с языка внутреннего представления знаний на KIF). Язык KIF можно также использовать и как язык представления собственных знаний агента, в этом случае отпадает надобность в упомянутом выше трансляторе.
April: Agent Process Interaction Language. Это язык высокого уровня, который предлагает простой интерфейс к другим языкам программирования типа C. April ориентирован на реализацию многоагентных систем. Однако, April не является языком программирования агентов в том смысле, что он не предлагает таких высокоуровневых возможностей, как планировщики, механизмы вывода на основе правил и системы представления знаний. April скорее является объектно-ориентированным языком со средствами поддержки параллельного выполнения задач и рассматривающим объекты как процессы. Он является подходящей основой расширений для задач распределенного искусственного интеллекта и для прикладного программирования многоагентных систем.
Do'stlaringiz bilan baham: |