Примеры
Основы
Язык
Интерфейс
Шаблоны
Ниже приведены несколько реальных историий, где Агенты оказываются полезны.
В общем, для каждой вещи (то есть - темы), интересной человеку, может быть один или несколько веб-сайтов,
потенциально содержащих полезную информацию, которая может появиться там в непредсказуемый
момент времени. Мы используем понятие "вещь", которое может означать как некую общую "тему",
представляющую интерес для пользователя, так и конкретный объект, событие или лицо,
относящиеся к данной теме и имеющие какие либо свойства.
Для каждой вещи, может быть одно или несколько выражений в форме текста (текстовых шаблонов), включающих описание ее самой, с ее свойствами и атрибутами.
Подробное описание идеи приводится в
другом документе,
а ниже мы рассмотрим ряд живых типичных примеров.
- Мама, у которой ребенок болезненно реагирует на погодные изменения, страдает головными болями в связи с перепадами дваления или магнитными бурями вследствие вспышек на солнце.
Ей нужно получать извещения о подобных явлениях, как только они публикуются на соответствующих сайтах.
Тут можно использовать вещь, заданную шаблоном "вспышка балла $class $starttime $maxtime $endtime" для сайта "http://www.tesis.lebedev.ru/sun_flares.html".
- Брокер по недвижимости. Ему нужно получать своевременные извещения о продажах определенной недвижимости
по мере появления онлайн публикаций о таких продажах в городских интернет-источниках.
К примеру, для района Kowloon в Гон Конге, может подойти шаблон вещи вида
"kowloon gross area $grossarea saleable area $saleablearea price: $price $priceunit"
применительно к сайту "http://www.squarefoot.com.hk".
- Владелец мелкого бизнеса по перепродаже гаджетов.
Ему нужно быстро получать обновления о предложениях по продаже бывшей в употреблении техники на местных
электронных досках объявлений. В данном случае, например, для мегаполиса Лондона подойдет
шаблон вещи вроде "iphone $description contact $contact $price" в связке с сайтом
"http://www.hallo.co.uk/london/c/mobiles-tablets-handhelds".
- Директор по маркетингу высоко-технологической компании.
Ей нужно постоянно быть в курсе любых новостей и релизов компаний-конкурентов, опубликованных
на их сайтах или сайтах новостных агрегаторов по данной тематике. Для этого, например, подойдет
шаблон типа "google $topic" используемый с сайтом "http://www.wired.com".
- Юрист, специализирующийся на делах определенного характера в своем регионе или районе.
Ей может быть полезен инструмент для получения своевремнной информации о публичных слушаниях по
соответствующим делам, готовящимся к рассмотрению, опубликованных в местных интернет-изданиях.
В данном случае, можно использовать шаблон "$description public hearing $dayandtime", скажем,
где-нибудь во Флориде для сайта "http://www.broward.org/legislative/pages/publichearingschedule.aspx".
- Политик или журналист.
Ему нужна оперативная информация о событиях, связанных с теми или иными публичными фигурами, возглавляющими
противостоящие партии или социальные группы, публикуемая местными новостными интернет-порталами.
Для одного из штатов в Индии, к примеру, тут может быть использован такой сложный шаблон, как
"narendra modi {[{quit, quits, leave, leaves} $leave], [{deal, deals, did, does, do, has, had} $action], [{retain, retains, save, saves} $keep], [{say, says, tell, tells, told, said} $talk]}" в связке с сайтом "http://indianexpress.com/elections".
Распределенная сеть Агентов состоит из ячеек, где каждая ячейка представляет одного
программного агента, обычно обслуживающего своего хозяина - пользователя, обладающего
устройством, где запущена ячейка Агента.
- Ячейка Агента может работать на разных устройствах под различными операционными системами
(Windows, Android, iOS, Mac/OSX, Web, итд.).
- Каждая ячейка может соединяться с пользователями-людьми и равными им другими агентами по
различным каналам общения (HTTP-протокол, TCP/IP через telnet, обычная электронная почта,
SMS-сообщения, итд.).
- Конфигурация ячейки, то есть свойства самого агента включают его имя, место (путь на файловой системе)
для хранения данных и частоту сохранения данных, парметры соединение по HTTP и TCP/IP, а также данные
соединения с сервером электронной почты.
- Как только ячейка Агентов запущена, с ней можно общаться на Языке Агентов по любому
из сконфигурированных каналов общения.
- Для доступа по HTTP или TCP/IP (telnet), в дополнение к конфигурации свойства самой ячейки Агентов,
может дополнительно потребоваться разрешить доступ к соответствующим портам на уровне операционной системы.
- Доступ к ячейке Агентов может осуществляться по электронной почте. Для этого надо сконфигурировать адрес
самой ячейки и параметры соответствующего почтового сервера - в свойствах самой ячейки. При этом, если этот адрес
не пересекается ни с одним из адресов корреспондентов (вашим или друзей), он считается собственным адресом ячейки
Агентов и используется для ответа на входящую почту (с очисткой почтового ящика входящих сообщений).
Если же адрес электронной почты в свойствах самой ячейки совпадает с адресом вас или одного из друзей, то
данная учетная запись электронной почты используется только для отправки извещений.
- Работа с Агентами по любому из каналов требует авторизации пользователей (друзей Агентов),
причем каждый пользователь идентифицируется уникальной комбинацией адреса электронной почты, имени и фамилии.
Подтверждение авторизации осуществляется парой - секретный вопрос и
секретный ответ - указанными пользователем при регистрации.
- Важно отметить, что по определению ячейка Агентов не конфигурируется для хранения какой-либо информации
на удаленном сервере или "в облаке", так что хозяин устройства, на котором запущен агент, является полновластным
хозяином своих собственных данных и несет полную ответственность за их сохранность и конфиденциальность,
в соответствии с лицензионным соглашением.
Внимание: Текущая верися Агентов предназначена пока только для публичного тестирования,
в связи с чем абсолютно не гарантируется, что созданые или полученные данные будут поддерживаться
в целостном виде по ходу работы и будут сохранены при обновлении прграммного агента на следующую версии.
Настоятельно рекомендуется, до появления официальной стабильной версии Агентов,
самостоятельно сохранять на каком-либо носителе записи о своих сайтах, вещах и новостях,
а также свойствах - своих собственных и самой ячейки Агентов.
Для взаимодействия пользователей с Агентами, для общения между ячейками Агентов в сети,
а также для обеспечения работы графического пользовательского интерфейса используется
искусственный Язык Агентов. То есть, любое действие, выполняемое с помощью графического пользовательского
интерфейса, может быть исполнено посредством выражения на Языке. Однако, Язык Агентов позволяет дает гораздо
больше возмжностей, чем пользовательский интерфейс - через диалог с Агентом через "Беседу", электронную почту
или консоль telnet можно сказать и узнать гораздо больше, чем через простой графический интерфейс в существующей версии.
Используя Язык Агентов, можно расширять базу данных своего Агента, рассказывая ему об интересующих сайтах,
вещах и их свойствах, давать ему каоманды, а также - задавать вопросы. В свою очередь, сам Агент может
сообщать информацию и задавать встречные вопросы на этом же языке.
Стандарт и формальное описание языка пока что официально не опубликованы, однако его идея подробно
описана в другом документе.
Как правило, выражения языка представлены повествовательными и вопросительными конструкциями,
передающими новые сведения для усваивания Агентами либо вопрошающими об этих сведениях.
По-простому, структура высказывания на Языке включает субъект,
за которым следует список из одного или более свойств (или глаголов), каждое из которых
может иметь список из одного или более значений свойств (или объектов глаголов).
К примеру, высказывание
'My sites "http://google.com", "http://microsoft.com", knows search engines, desktop applications.'
('Мои сайты "http://google.com", "http://microsoft.com", знания "поисковые системы", "настольные приложения".')
является нормальным высказыванием на Языке Агентов.
В рамках указанной структуры Языка, могут существовать высказывания, включающие лексикон любого человеческого языка
(английского, русского, китайского). Однако, в данной версии Агентов, предусмотрен базовый лексикон (включающий такие слова
как my, your, sites, knows, things, login, name, surname, no, not, what, is, has) только для английского языка.
Повествовательные высказывания заканчиваются точкой и содержат три части - субъект, свойство и значение (или субъект, глагол и объект).
Вопросительные высказывания начинаются со слова "what", кончаются вопросительным знаком и содержат только части
субъекта и свойства (или субъекта и глагола), чтобы значения (или объекты) были заполнены в повествовательном
выражении, полученном в ответ на заданный вопрос.
В повествовательных высказываниях субъект может быть обозначен как "my" (мой, моя, мои) - указывая на пользователя
общающегося с агентом, "your" (твой, твоя, твои) - указывая на самого агента, либо имя вещи (ранее указанное посредством свойством "name")
или список пар свойство-значение (глагол-объект) - обозначающие предмет повествования.
Таким образом, высказывания вроде "My email john@doe.org", "John email john@doe.org" или "Name john email john@doe.org"
равнозначны.
В вопросительных высказываниях, значения "Your" и "My" меняются по смыслу местами, как в нормальной человеческой речи.
Значения свойства (или объект глагола) могут быть представлены любым сочетанием слов, разделенных пробелами.
Если какие-либо из слов в сочетании совпадают с уже существующими именами вещей или их свойств или содержат специальные
символы вроде кавычек или скобок, все сочетание слов следует брать в кавычки (одинарные либо двойные, причем те или дургие можно
использовать в зависимости от того, есть ли уже кавычки в самом сочетании).
Графический интерфейс пользователя Агентов для настольных, портативных и мобильных устройств
работает на основе Языка Агентов, во взаимодействии с ячейкой Агентов.
Для всех устройст и операционных систем это работает примерно одинаково, с использованием
следующих элементов управления.
- Закладки сверху нужны, чтобы выбрать, с чем мы работаем – Сайтами (Sites), Темами (Things), Новостями (News),
Другими (Peers) или Беседой (Talks).
- Кнопки снизу нужны, чтобы совершить одно из следующих действий, в зависимости от выбранной закладки.
- добавить Сайт или Тему;
- открыть Сайт или редактировать свои собственные свойства;
- удалить Сайт, Тему или Новость;
- ввести высказываение на Языке Агентов в разговор или очистить историю общения;
- редактировать свойства самой работающей ячейки Агентов.
Род работы с агентом выбирается соответствующим закладками и позволяет делать следующее.
- Things - Темы (Вещи).
Перетащить мышью и бросить или ввести с калвиатуры и добавить текстовое описание интересной вещи или
ее текстового шаблона или редактировать это по двойному нажатию.
- Sites - Сайты.
Перетащить мышью и бросить ссылку на интересный сайт или редактировать ее по двойному нажатию,
также - открыть ссылку на сайт (в системном браузере) длительным нажатием.
- News - Новости.
Следить за новостями, найденными Агентами и отметить подходящие, чтобы в будущем Агенты смогли точнее учитывать интересы пользователя или удалить неподходящие новости, также - открыть ссылку на сайт новости длинным нажатием.
- Peers - Другие (Друзья).
Пользователи - люди или другие агенты, подсоединяющиеся к ячейке Агентов, включая текущего пользовтеля, которого
можно открыть для изменения его свойств длительным нажатием.
- Talks - Беседа.
Для продвинутых пользоватлей - просмотреть историю переговоров пользовательского интерфейса
или самого пользователя с Агентом, а также напрямую ввести новую информацию повествовательным
высказыванием или задать новый вопрос - вопросительным,
используя Язык Агентов (в обход обычного пользовательского интерфейса).
- Properties - Свойства.
Списки свойств могут заполняться и редактироваться в различных ситуациях, включая следующие.
- Ввод данных авторизации и регистрации, таких как имя, фамилия, адрес электронной почты и дата рождения пользователя,
а также его секретные вопрос и ответ, используемые для подвтерждения личности;
- Просмотр и изменение свойств самой ячейки Агентов;
- Просмотр и изменение свойств самого авторизованного пользователя (причем просмотр и изменение свойств других друзей или пользователей не разрешается).
Для каждой вещи, интересной пользователю, можеть быть множество текстовых шаблонов, по которым вещь
может быть обнаружена на том или ином сайте, ему интересном.
-
Простейшим неявно заданным шаблоном вещи является непосредственно ее название или текстовое описание.
То есть, последовательность слов, обозначающих саму вещь, будет автоматически искаться в тексте на страницах веб-сайтов
-
У вещи может быть множество альтернативных шаблонов, явно привязанных к ней свойством "patterns".
В терминах Языка Агентов, шаблоны могут быть привязаны к вещи высказыванием вроде
"John patterns 'John Doe', 'Johnatan Doe', 'Doe John'".
-
Каждая вещь может иметь ряд атрибутов или переменных, заполняемых автоматически, когда вещь находится в тексте по шаблону.
Переменные обозначаются как одиночные слова с приставкой в виде знака доллара, как в примерах вроде
"Лошади едят $food, Волга впадает в $sea." или "John birth date $dob, place of birth $birthplace."
-
Переменные могут относиться к тому или иному типу, ограничиваюшему возможность использования для их
заполнения определенными последовательостями символов.
К примеру, в текущей версии Агентов предусмотрены такие типы, как word (одно отдельное слово),
time (текстовое или текстово-численное представление времени), number (целое или вещественное число)
и money (число с префиксом в виде символа той или иной мировой валюты).
Тип привязывается к переменной через Язык Агентов выражениями вроде
"When is time." (для шаблона "Встреча в $when") или "Price is money" (для шаблона "Sale $price").
-
В шаблонах могут использоваться альтернативные наборы слов или значений, такие как "набор синонимов" ("syn-set"),
заключенные в фигурные скобки {}, с перечислением вариантов через запятую.
В таком случае, любой из перечисленных в скобках альтернативных вариантов, будучи встречен в тексте,
обеспечит выделение вещи по шаблону из текста, как в случае шаблонов
"John {go, went, gone}" или "Ваня {речет, говорит, произносит, объявляет}".
Каждый из этих шаблонов имеет два элемента - слово (имя, в данном случае) и следующий за ним набор альтернатив
-
Кроме того, что сам шаблон предполагает неявно указанный порядок слов в нем, возможно также явное
указание слов, следующих друг за другом в определенном порядке - "последовательность" (N-gram),
используя квадратные скобки [], как в случае шаблона "Маша [{съела, слопала, скушала, проглотила} $food]".
В последнем шаблоне из двух элементов первый элемент явлется словом (именем),
а второй последоватльеностью из двух элементов (набора альтернатив и "переменной").
-
Как наборы синонимов, так и последовательности могут быть использованы для
построения сложных иерархических шаблонов, включающих как друг друга, так и обычные слова и переменные,
как в примерах "John {[{announce, announced} $product], [{publich, published} $article]}"
или "{[{президент, директор} $person {[{объявляет, объявил} $product], [{анонсировал, анонсирует} $release]}],
[{команиния, корпорация} $company {[{объявила, объявляет} $product], [{анонсировала, анонсирует} $release]}]}".
Внимание: Текущая версия Агентов предназначена пока только для публичного тестирования,
поэтому сохраняется небольшая вероятность, что то, как шаблоны работают в данный момент, будет
несколько изменено в последующих версиях.
Настоятельно рекомендуется, до появления стабильной версии Агентов, после очередного обновления версии - проверять, что
шаблоны работают в соответствии с ожиданиями.
Авторские права 2016 Антон Колонин