Виктор Казаринов

AIGod Personal Assistant

Version 0.0.4

Введение

AIGod Personal Assistant предназначен для организации систем поддержки принятия решений, получения энциклопедической информации, создания текстовых и речевых интерфейсов человек-машина, создания умных вещей, роботов, автоматизации в различных сферах человеческой деятельности.

Текущая версия программы не предполагает наличия какого-либо механизма выработки осмысленного ответа на полученное от пользователя сообщение.

Решаемой на данном этапе задачей является проверка степени адекватности нашим представлениям преобразования входного текстового сообщения во внутренний онтологический граф.

Иными словами, программа должна относительно успешно анализировать простейшие предложения и создавать в памяти небольшую сеть, узлами которой являются элементы онтологии, описывающей мир.

Все это необходимо для создания устойчивого канала связи на естественном языке между человеком и программной системой с целью разработки других элементов AIGod Personal Assistant.

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

Общая структура

AIGod Personal Assistant является частью более общей программной системы AIGod, которая для каждого пользовательского запроса создает отдельный контекст - программного агента Personal Assistant с набором онтологий: WordNet, SUMO и др.

Доступ пользователей к программе организован через HTML страницу:

AIGod Personal Assistant

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

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

Общее описание функционирования

Программа текущей версии осуществляет:

  1. Прием текста от пользователя.
  2. Синтаксический анализ текста.
  3. Семантический анализ входящих сообщений.
  4. Создание тестового ответа - исходящего сообщения.
  5. Передача пользователю исходящего сообщения.

Речевой API

Интеллектуальные агенты, включая человека, могут общаться с AIGod Personal Assistant на определенном подмножестве естественного языка в зависимости от версии программы. Детализация диалоговой формы речи будет приведена здесь позже. Сейчас же упрощенно примем, что слитная речь разбивается на отдельные элементарные сообщения.

Элементарные типы сообщений

Согласно RoboBrain Interchange Language при взаимодействии интеллектуальных агентов возможны следующие 22 типа сообщений:

  1. accept-proposal
  2. agree
  3. cancel
  4. cfp
  5. confirm
  6. disconfirm
  7. failure
  8. inform
  9. inform-if
  10. inform-ref
  11. not-understood
  12. propagate
  13. propose
  14. proxy
  15. query-if
  16. query-ref
  17. refuse
  18. reject-proposal
  19. request
  20. request-when
  21. request-whenever
  22. subscribe

Подробное описание данных типов приведено в: FIPA Communicative Act Library Specification

Входящие сообщения

Доступные типы входящих сообщений

Доступные типы входящих сообщений текущей версии программы:

  1. inform
  2. request

Примеры типов входящих сообщений

Inform - информирование

Received message:

 Ваш текст: человек идет по улице

 Анализ:

  Ваше высказывание:

   Тип: класс; Субъект: human;

   Предикат: walking; Число: единственное; Время: настоящее; От: 3 лица;

   Тип: класс; Объект: roadway;

OK

Где:

  1. Ваш текст: - текст, созданный пользователем и поступивший на вход программы для обработки.
  2. Анализ: - все что ниже данной строки, является выводом внутренней информации программы.
  3. Ваше высказывание: - высказывание представлено в виде SVO (см в википедии “Типология порядка слов”). S - субъект; V - глагол (предикат); O - объект. Ниже этой строки будут выведены три строки, соответствующие S, V, O.
  4. Строка Субъект. Тип: класс; Субъект: human; Здесь первым указан тип субъекта. Тип бывает класс, индивид. human - название класса на русском или на английском языке в случае, если в онтологии отсутствует название на русском.
  5. Строка Предикат. Здесь будет название предиката на русском или английском языке, число, время, от какого лица было высказано.
  6. Строка Объект. Здесь все аналогично субъекту.

Request - запрос на поиск суперкласса.

Received message:

 Ваш текст: что такое рыба ?

 Ответ:

  рыба это:

   холоднокровное позвоночное;

OK

Где:

  1. Ваш текст: - текст, созданный пользователем и поступивший на вход программы для обработки.
  2. Ответ: - название на русском или английском языке найденного в онтологии понятия, являющегося суперклассом для искомого понятия. В данном случае класс “холоднокровное позвоночное” включает в себя субкласс “рыба”.

Request - запрос на поиск класса, субкласса или индивида.

Received message:

 Ваш текст: какие бывают животные ?

 Ответ:

  животные это:

   беспозвоночный; позвоночный;...

OK

Исходящие сообщения

Список известных багов

  1. Многие глаголы вместо настоящего времени определяются в будущем времени.

История версий

  1. 0.0.4. Начальная публичная версия.