Skip to content

Многабукаф

enthusiastic emoticon

Мы с Юджином разговаривали о синтаксисе языков программирования. Потом вспомнили украинский Бейсик на антикварном ПК “Львов-1″, где, если верить слухам, вместо let было нехай. А потом… оймама, что у нас получилось потом! И мы пока описали только одну треть системы. В общем, копирование со ссылкой на оригинал не возбраняется, а без ссылки — возбраняется: http://rn3aoh.net/archive/2007/05/15/mnogabukaf

Множество аффторов представляют собой структуру, аналогичную нейросети — если точнее, структуру из свободных интеллектуальных (кгхм…) агентов, которая может быть установлена поверх любого протокола, поддерживающего пакетную передачу данных и установление непосредственных связей между элементами. Узлами нейросети могут быть как люди, так и программы. Сообщения между аффтарами передаются при помощи протокола Многабукаф, но реакция на сообщения им не определяется — для этого есть свои собственные синтаксисы. Хотя все агенты по своей природе одинаковы, каждый из них программируется отдельно на двух других специализированных языках, один из которых отвечает за оценку сообщений, а другой — за их генерацию, об этих языках мы расскажем в другой раз. Естественным результатом работы протокола, снабженного соответствующими модулями оценки и генерации сообщений является возникновение самоорганизующейся сети аффтаров, осуществляющих создание, распределенное хранение и оценку т.н. “креатива”. Что они с этого имеют — спросите у теоретиков ИИ.

По своей структуре Многабукаф более всего похож на XML, но в отличие от XML, символ перевода строки в нем является значащим, хотя пробелы коллапсируют так же как и в XML. Хотя протокол предписывает определенное поведение агента, оно не определено в пределах самого протокола (как мы уже упомянули выше, это осуществляется иными методами) и носит рекомендательный характер. На агентов не накладывается никаких ограничений относительно сохранения в целости сообщений, рекомендованых к передаче другим агентам, и допустимо реагировать на любые сообщения, проходящие через агента.

В теле сообщений допускаются комментарии, которые могут находиться в любом месте строки, но не могут занимать больше одной строки:

(Ж комментарий Ж)  

Базовая форма широковещательной передачи сообщений по установленным связям выглядит так:

креатифф (:
  аффтар Фууу
  жжот привет
  вбабруйск 
  пешиисчо всем чмоке в этам чати
:)

Как нетрудно догадаться, в этом случае (да и во всех последующих) аффтар — уникальное имя агента-отправителя, жжот — идентификатор сообщения, а вбабруйск — метка широковещательного сообщения, которое рекомендуется к дальнейшей передаче. пешиисчо — ключевое слово, обозначающее начало тела сообщения.

В случае если агент пытается отправить сообщение конкретному адресату, в каковом случае оно должно быть передано соседями только непосредственным контактам:

креатифф (: 
  аффтар Фууу
  жжот привет
  первыйнах Барр
  +1
  пешиисчо всем чмоке в этам чати
:)

В этом случае, первыйнах — получатель, упомянутый по имени, а +1 — нечто вроде time to live, указывающее насколько далеко следует передавать сообщение, и может быть любым числом, уменьшаясь при каждой передаче на единицу.

Протокол допускает различные варианты реакции на сообщение. Самый простой вариант — это сообщение об отказе от дальнейшего распространения сообщения:

ниибет (:
   аффтар Барр
   первыйнах Фууу
   жжот привет
:)

Самый богатый возможностями ответ — это сообщение об успешном получении сообщения и наличии собственной рейтинговой его оценки:

фтему (:
  аффтар Барр
  жжот привет
  зачот
  бугога (Ж либо ацтой, ужоснах, кгам, ахтунг Ж) 
:)

Такой ответ передается только если рейтинговый модуль успешно его обработал, в противном случае, вместо зачот сообщается дайтедве, т.е. просьба о повторной передаче сообщения, и это в пакете будет последней строкой. бугога — одна из оценочных характеристик, которых может быть много:

  • бугога — агент рекомендует сообщение к дальнейшей передаче.
  • ацтой — агент не рекомендует сообщение к дальнейшей передаче
  • ужоснах — агент рекомендует сообщение к приоритетной передаче
  • кгам — агент категорически не рекомендует сообщение к дальнейшей передаче
  • ахтунг — агент сообщает об отказе дальнейшего распространения сообщения на основе его содержания по принципиальным соображениям, либо на основе рейтинговой оценки непосредственными соседями.

Но в случае если сообщение не соответствует установленному формату Многабукаф, агент может отправить и такой ответ:

ниасилил (:
  аффтар Фууу
  первыйнах Барр
:)

Очевидно, что такая система предусматривает многократное дублирование сообщений, и в протоколе предусмотрены различные средства борьбы с перегрузкой каналов связи. Например, если агент не в состоянии справиться с потоком сообщений, он просит всех соседей прекратить передачу:

убейсибяапстену (::)

Он также может сделать это адресно:

выпейиаду (:
  аффтар Барр
  первыйнах Фууу
:)

В случае если сообщение опознано как дубликат, агент может сообщить об этом отправителю:

боян (:
  аффтар Барр
  первыйнах Фууу
  жжот привет
:)

Может быть использована альтернативная конструкция [:|||:], которая передается безадресно и только по прямому каналу связи, где количество | означает количество раз, которые сообщение уже проходило через агента. Оба варианта такого ответа не накладывают ни на отправителя ни на получателя ограничений по дальнейшей передаче сообщения, т.е. он может передать сообщение дальше даже если оно боян.

Структура сети агентов — самоорганизующаяся, и Многабукаф предоставляет различные средства установления связи между агентами. Например, агент может запросить у любого конкретного агента список агентов, с которыми тот имеет двухстороннюю связь:

кисатыскаковагорода (:
  аффтар Барр
  первыйнах Фууу
:)

Ответ на такой запрос будет выглядеть так:

кисатыскаковагорода (:
  аффтар Фууу
  второйнах Барр Базз 
:)

Адресный запрос о наличии связи с конкретным третьим агентом подается в другой форме:

покажисиськи (:
  аффтар Фууу
  первыйнах Барр
  второйнах Базз
:)

Ответы тоже:

темасисек (:
  аффтар Барр
  первыйнах Фууу
  второйнах Базз
  раскрыта (Ж или как вариант - нераскрыта Ж)
:)

Составив представление о структуре связей непосредственных соседей, агент может подать запрос об установлении прямой двухсторонней связи:

кисакуку (:
  аффтар Фууу
  первыйнах Барр
:)

Ответом на такой запрос может быть пакет о согласии на установление такой связи:

вмемориз (:
  аффтар Барр
  первыйнах Фууу
  подкат http://foo.livejournal.com/
:)

В этом случае подкат — некий уникальный идентификатор, позволяющий связь установить, им может быть как URL, так и любой другой способ прямой адресации, например, email-адрес. Запрашивающий связь агент должен ответить на него таким же сообщением вмемориз. Но в случае если контрагент не намерен устанавливать непосредственную связь, он может ответить отказом:

фтопку (:
  аффтар Барр
  первыйнах Фууу
:)

В случае если агент по какой-то причине не желает поддерживать двухстороннюю связь, ему рекомендуется сообщить об этом контрагенту следующим образом:

кисаобиделась (:
  аффтар Барр
  первыйнах Фууу
:)

Кроме того, агент также может распространить рекомендацию разорвать связь с любым поименованным агентом:

вгазенваген (:
  аффтар Барр
  первыйнах Фууу
  +1 (Ж или "вбабруйск" Ж)
:)

Как видите, Многабукаф обеспечивает широкие возможности коммуникации интеллектуальных агентов. О том, что именно позволяет им выносить оценочные суждения по сообщениям друг друга, и как это программируется, а также о том, как сообщения создаются, мы расскажем в другой раз — потому что для этого есть еще два специализированных языка.

3 Comments

  1. Gernsback wrote:

    Меня поимело в моск.

    Wednesday, May 16, 2007 at 06:39 | Permalink
  2. Merlin wrote:

    ниасилил (: аффтар Мерлин первыйнах Многабукаф :)

    Wednesday, May 16, 2007 at 17:19 | Permalink
  3. mmv-ru wrote:

    Забавно. Похоже на транспортный протокол передачи рейтингов для системы вроде Bouilon или Paranoia.

    Wednesday, February 23, 2011 at 22:06 | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*