СПОСОБ ДИАЛОГА МЕЖДУ МАШИНОЙ, ТАКОЙ КАК ГУМАНОИДНЫЙ РОБОТ, И СОБЕСЕДНИКОМ-ЧЕЛОВЕКОМ, КОМПЬЮТЕРНЫЙ ПРОГРАММНЫЙ ПРОДУКТ И ГУМАНОИДНЫЙ РОБОТ ДЛЯ ОСУЩЕСТВЛЕНИЯ ТАКОГО СПОСОБА
METHOD FOR DIALOGUE BETWEEN MACHINE, SUCH AS HUMANOID ROBOT, AND HUMAN INTERLOCUTOR, COMPUTER PROGRAM PRODUCT AND HUMANOID ROBOT FOR IMPLEMENTING SUCH METHOD

Настоящее изобретение относится к способу диалога между машиной и человеческим существом. Машина может быть любым устройством обработки данных, таким как компьютер, процессор «смартфона» или роботом, в частности гуманоидным, содержащим, по меньшей мере, один встроенный процессор, а диалог может осуществляться в устной форме. Изобретение также относится к компьютерному программному продукту и роботу, предпочтительно гуманоидному, для осуществления такого способа.
«Гуманоидный робот» может быть определен как робот, демонстрирующий некоторые атрибуты внешнего вида и функций человеческого существа, таких как туловище, голова, руки, ноги, способность устно общаться с человеческим существом с использованием средств распознавания и синтеза речи и т.д. Этот тип робота направлен на снижение когнитивного расстояния между человеком и машиной. Одной из наиболее важных особенностей гуманоидного робота является его способность, как можно более естественно, поддерживать диалог с собеседником-человеком. Эта способность является важной для разработки «роботов компаньонов», предназначенных для помощи пожилым людям, больным или просто одиноким в повседневных нуждах, и обеспечения этим людям приемлемой замены присутствию личного помощника- человека.
Способы диалога для гуманоидных роботов известные из предшествующего уровня техники не удовлетворительны, поскольку они приводят к повторяющимся и стереотипным диалогам, в любом случае неестественным.
Статья S. Rosenthal и M.Veloso «Mixed-Initiative Long-Term Interactions with an All-Day-Companion Robot»(«Длительные взаимодействия со смешанной-инициативой с постоянным компаньоном роботом»), в Dialogs with Robots: Доклады с AAAI Fall Symposium (FS-10-05), страницы 97–102, описывает робота способного указывать дорогу человеку во время посещения, например, департамента робототехники университета. Робот запрограммирован избегать повторений во время диалога; но двум различным собеседникам-людям будут предложены, по существу, идентичные диалоги.
В документе US 7,539,656 описан способ, с помощью которого машина ведет диалог с собеседником-человеком, чтобы получить информацию необходимую для предоставления услуги - например, принятия заказа на завтрак. Такой диалог очень стереотипен и не подразумевает воспроизведение разговора. Поэтому, способ не подходит для реализации эффективных «роботов компаньонов».
Документ US 7,987,091 описывает способ, при котором машина ведет «персонализированный» и «развивающийся» диалог с одним или несколькими собеседниками. Диалог является персонализированным, так как машина ведет диалог на основе различной информации о собеседниках, хранящейся в ее памяти. Он является развивающимся, так как машина приобретает новую информацию в ходе диалога. Тем не менее, диалог остается неестественным, поскольку этапы приобретения и использования информации, четко разделены.
Изобретение направлено на преодоление вышеуказанных недостатков предшествующего уровня техники путем обеспечения способа диалога с машиной – в частности роботом – более приближающегося к естественному диалогу с другим человеческим существом. В частности, изобретение должно сделать возможным установление диалога, адаптированного к собеседнику (не стереотипного), развивающегося и естественного, позволяя установление настоящей эмоциональной связи между собеседником-человеком и роботом. Развитие подразумевается, как в рамках одного и того же диалога (или «диалоговой сессии»), так и между двумя последовательными диалогами, даже разделенными во времени, с тем же самым собеседником-человеком.
Объектом изобретения, позволяющим достичь этой цели, является способ диалога между машиной и по меньшей мере одним собеседником-человеком, включающий в себя следующие этапы, выполняемые указанной машиной, на которых:
идентифицируют указанного собеседника-человека;
извлекают из базы данных профиль собеседника, содержащий множество переменных диалога, причем по меньшей мере одно значение присвоено по меньшей мере одной из указанных переменных диалога;
получают и анализируют по меньшей мере одну фразу от указанного собеседника, анализируют указанную или каждую указанную фразу от указанного собеседника для извлечения из нее по меньшей мере одного значения для присвоения по меньшей мере одной переменной диалога указанного профиля собеседника и регистрируют указанное или каждое указанное значение в указанном профиле собеседника; и
формулируют и передают по меньшей мере одну ответную фразу в зависимости от по меньшей мере указанной фразы, полученной и интерпретированной на этапе c) и от указанной переменной диалога указанного профиля собеседника.
Идентификация собеседника и использование профиля собеседника для формулирования ответных фраз обеспечивает персонализацию диалога. Термин «ответ» следует толковать в широком смысле, чтобы охватить любую фразу, выданную в ответ на возбудитель, а не прямо в качестве значения «ответ на вопрос».
Анализ ответов позволяет машине дополнить профиль собеседника во время диалога, или в течение последовательных диалогов. Можно сказать, что она все лучше и лучше узнает своего собеседника, и использует свои знания для уточнения диалога.
Кроме того, диалог не стереотипен, поскольку ответ машины зависит одновременно от профиля собеседника и от, по меньшей мере, одной фразы, которую последний только что произнес. В отличие от того, что происходит в способе согласно патенту US 7,987,091, упомянутому выше, не существует никакого разделения между «диалогом получения» (информации) и «диалогом использования» (информации). В соответствии с изобретением, во время одного и того же диалога машина использует информацию о своем собеседнике, которой она уже обладает, и получает новую информацию, которая может быть использована немедленно или позднее.
Анализ указанной или по меньшей мере одной фразы от указанного собеседника и формулировка указанной или по меньшей мере одной ответной фразы могут быть осуществлены посредством множества моделей фраз («шаблонов» («patterns»)) представленных соответствующими синтаксическими деревьями.
Преимущественно, по меньшей мере, некоторые из упомянутых моделей фраз содержат, по меньшей мере один, указатель на переменную диалога указанного профиля собеседника. При формулировании ответа, машина заменяет указатель на значение переменной диалога, хранящейся в профиле собеседника. С другой стороны, при анализе полученной фразы, машина интерпретирует конкретное слово этой фразы - занимающее место, которое, в модели, занято указателем - как значение, которое подлежит сохранению в профиле собеседника как значение соответствующей переменной диалога.
Преимущественно, по меньшей мере некоторые из указанных моделей фраз могут содержать как минимум один указатель на по меньшей мере одну совокупность взаимозаменяемых терминов в фразе, называемых «понятие» («concept»).
Указанный этап d) может быть выполнен с помощью множества правил, связывающих по меньшей мере одну модель фразы от указанного собеседника и по меньшей мере одну модель ответной фразы. Эти правила, в свою очередь, могут быть представлены в виде структур типа «дерево».
В данном случае, во время указанного этапа d), по меньшей мере одно, указанное правило может связать с одной и той же моделью фразы от указанного собеседника множество моделей фраз, которые могут служить в качестве ответных фраз; кроме того, среди указанных моделей ответных фраз, могут быть исключены те, что содержат указатель на переменную диалога, которой не присвоено никакое значение в указанном профиле собеседника. Таким образом, машина может выбрать свой ответ в зависимости от того, что она знает – или не знает – о своем собеседнике.
Предпочтительно, по меньшей мере, одно указанное правило может быть отмечено меткой («tag»), идентифицирующей тему разговора и, во время указанного этапа d), правило или правила, отмеченные по меньшей мере одной меткой, идентифицирующей определенную тему разговора, могут быть активированы или деактивированы в зависимости от по меньшей мере одного параметра диалога (значение – или отсутствие данных - одной или нескольких переменных диалога, контекстный параметр, история диалога...). В целом тут идет речь о техническом способе реализации развития диалога.
Указанный профиль собеседника может также включать в себя историю диалога и, на указанном этапе d), указанный или, по меньшей мере один упомянутый ответ может быть также сформулирован в зависимости от упомянутой истории диалога. Это обеспечивает развитие диалога и позволяет избежать повторения.
Во время указанного этапа d), указанный или по меньшей мере один указанный ответ также может быть сформулирован в зависимости от контекстного параметра, полученного или определенного указанной машиной. В частности, этот параметр может быть временем, определенным по часам: так, например, при приближении полдня, разговор может идти об обеде. Также, параметр может быть датой, определенной по календарю, температурой или освещенностью полученной с помощью датчика, и т.д.
Во время указанного этапа a), указанный собеседник-человек может быть идентифицирован с помощью устройства захвата изображений, такого как камера, путем распознавания лица или путем считывания графического кода, представленного указанной камере. Также возможны другие формы идентификации (биометрия, код, введенный с помощью клавиатуры, распознавание голоса ...).
Во время указанного этапа b), машина может иметь доступ к удаленному серверу посредством коммуникационной сети и дистанционно загружать указанный профиль собеседника из указанной базы данных, что хранится на указанном удаленном сервере. Также, машина может, имея доступ к указанному удаленному серверу через коммуникационную сеть, загружать в указанную базу данных профиль собеседника, обновленный путем регистрации по меньшей мере одного значения, присвоенного по меньшей мере одной переменной диалога, извлеченной, во время указанного этапа c), из по меньшей мере одной фразы от указанного собеседника. В качестве альтернативы, база данных может храниться локально.
Предпочтительно указанная машина содержит процессор, встроенный в гуманоидного робота. Однако, возможны другие варианты осуществления; например, машина может быть настольным компьютером, «смартфоном», бортовым компьютером транспортного средства и т.д.
Другим объектом настоящего изобретения является компьютерный программный продукт (то есть компьютерная программа в исполняемом формате, хранимая на материальном носителе данных, таком как постоянная или энергозависимая память на полупроводниках, или диск типа CD-ROM или жесткий диск) для осуществления такого способа.
Еще одним объектом настоящего изобретения является гуманоидный робот, содержащий встроенный процессор, запрограммированный для осуществления такого способа. Преимущественно, такой гуманоидный робот может также включать в себя:
- устройство захвата изображений, такое как камера, взаимодействующее с указанным встроенным процессором для идентификации собеседника-человека;
- устройства захвата звука, такое как микрофон или микрофонная решетка, взаимодействующее с указанный встроенным процессором для получения по меньшей мере одной фразы, произнесенной указанным собеседником-человеком; и
- устройство передачи звука, такое как громкоговоритель, взаимодействующее с указанным встроенным процессором для передачи указанной ответной фразы.
Другие особенности, детали и преимущества изобретения станут очевидными при прочтении описания сделанного со ссылкой на прикладываемые чертежи, приведенные в виде примеров, и которые демонстрируют, соответственно:
фиг. 1 - гуманоидный робот общающийся с собеседником-человеком и сообщающийся с удаленным сервером в соответствии с одним вариантом осуществления настоящего изобретения;
фиг. 2 - блок-схема способа согласно варианту осуществления изобретения; и
фиг. 3A, 3B, 3C и 3D - древовидные структуры, используемые для осуществления способа согласно изобретению.
Фиг. 1 представляет гуманоидного робота RT взаимодействующего с собеседником-человеком INT. Робот содержит, кроме гибкого тела воспроизводящего форму человека:
- встроенный процессор или компьютер OE, расположенный, например, в голове робота, осуществляющий способ диалога согласно изобретению; это может быть процессор, специализированный для выполнения этой задачи, или выполняющий также другие задачи и, в крайнем случае, контролирующий самого робота;
- одно или несколько устройств захвата изображений (камеры) DAI, расположенные в голове робота, например, в его рту и/или на его лбу, для получения изображения собеседника INT;
- устройство передачи звука (громкоговоритель) DES, расположенное, например, по бокам головы робота, чтобы позволить ему «говорить»; и
- одно или несколько устройств захвата звука DAS (микрофоны), расположенные, например, на верхней поверхности головы робота, чтобы позволить последнему слышать.
Устройства захвата изображения и захвата звука предоставляют входящие данные процессору OE, и в частности:
- по меньшей мере одно изображение, полученное устройствами DAI, позволяющее идентификацию собеседника; это может быть изображение лица указанного собеседника, или графический код, показанный последним с целью облегчения идентификации (например, QR-код, полученный благодаря специальному приложению на «смартфоне»);
- звуки, что могут представлять фразы, сказанные собеседником, которые должны быть распознаны и проанализированы.
Процессор OE хранит в памяти и выполняет программное обеспечение распознавания изображений и распознавания голоса (известные сами по себе) для обработки этих входных данных. В качестве альтернативы, программное обеспечение, или некоторое из них может быть сохранено во внешней базе данных, как это будет объяснено далее.
Устройство излучения звука DES управляется процессором OE.
Робот RT соединяется, через сеть RC (например, Internet к которому он получает доступ через соединение Wi-Fi), с удаленным сервером SVD, который хранит базу данных «профилей собеседников».
Робот передает на сервер SVD идентификационные данные INT_ID собеседника INT, полученные применением алгоритма распознавания изображений (распознавание лица или графического кода) к изображениям, полученным через средства DAI. В некоторых случаях, эти данные могут быть непосредственно изображением, в таком случае этап идентификации осуществляется удаленным сервером. Например, в частном варианте осуществления пользователь регистрируется на сервере SVD с помощью своего «смартфона»; сервер ему отправляет, на указанный смартфон, QR-код; пользователь выводит этот код на экран смартфона и демонстрирует его роботу показывая его перед одной из его камер; робот передает изображение QR-кода на сервер, который связывает указанное изображение с пользователем, который становится в этот момент идентифицированным собеседником. В других вариантах осуществления, идентификация осуществляется на основании изображения лица собеседника, путем распознавания его голоса или просто на основании фразы представления произнесенной в начале диалога, такой как «Добрый день, я - Жан».
На основании полученных идентификационных данных, сервер SVD извлекает из базы данных BDD профиль собеседника IN_PR и передает его роботу RT через сеть RC. Профиль собеседника является файлом, содержащим список переменных, которые связаны с одним (или несколькими) значениями в зависимости от пользователя. Выдержка из профиля собеседника «Жан Дюпон» может быть, например, следующими персональными данными:
Идентификатор собеседника: 00011
Имя: Жан
Возраст: 35
Профессия: Инженер
Интересы: плавание; бег; езда на велосипеде
Домашние животные:
Родной язык: французский
Другие языки:
Эта выдержка содержит восемь переменных: Идентификатор собеседника, «Имя», «Фамилию», «Возраст», «Профессию», «Интересы», «Домашние животные», «Родной язык» и «Другие языки». Четыре первые переменные принимают единственное значение, которое им в действительности назначено. Переменная «Интересы» может принимать несколько значений в одно и тоже время; в нашем случае ей присвоены значения «плавание», «бег» и «езда на велосипеде». Переменная «Домашние животные» может принимать несколько значений, но они не указаны. «Родной язык» (единственное значение: "Французский") и "Других языков" (возможны несколько значений, тут не указаны) являются особенно важными. Действительно, в многоязычной версии способа, процессор может использовать значения этих переменных, чтобы определить, на каком языке обращаться к собеседнику (когда робот будет говорить первым) или какие параметры языка использовать для распознавания и анализа услышанных фраз.
Процессор OE робота использует значения, присвоенные переменным (или факт, что они не известны) для генерации диалога с собеседником INT, как это будет подробно описано далее. По этой причине переменные называются «диалоговые переменные».
Как это будет подробно описано далее, процессор OE также может изменять содержимое профиля собеседника на основании диалога. Например, он может узнать, что Жан Дюпон говорит также по-английски, и присвоить значение «английский» переменной «Другие языки» его профиля. Это обучение осуществляется на основе анализа фраз, произнесенных собеседником (в ответ на вопрос робота, после не вопросительного предложения, выданного роботом, или даже спонтанно). После такого обновления (непосредственно после, или в конце диалога, или через определенные промежутки времени...), затем процессор передает на сервер SVD модифицированную версию профиля собеседника, которая записывается в базу данных BDD. В качестве альтернативы, база данных BDD может храниться локально, в этом случае соединение с сетью RC не является необходимым.
Пример диалога, в котором робот использует информацию, содержащуюся в профиле собеседника, и дополняет этот же самый профиль, представлен далее. Собеседник - Жан (идентификатор 00011), профиль которого в начале диалога представлен выше. Фразы, произнесенные роботом и собеседником-человеком, выделены курсивом; слова, соответствующие переменным диалога (использованным или полученным) или историческим данным прошлых диалогов (также записанных в профиль собеседника), подчеркнуты.
Робот определяет вхождение человека в поле зрения камеры (или одной из его камер) и идентифицирует его лицо, как лицо собеседника «00011». Он загружает в память соответствующий профиль собеседника и использует информацию «Имя», чтобы персонализировать частично предварительно подготовленную фразу приветствия. Робот также использует информацию, относящуюся к истории диалогов: факт, что вчера имел место еще один диалог с тем же собеседником.
Робот: Добрый день, Жан! Спасибо, что пришел меня проведать, мне очень приятно! Как ты поживаешь со вчерашнего дня?
Собеседник отвечает вопросом:
Человек: Хорошо, а ты?
Вопрос, заданный собеседником («а ты?»), вызывает ответ, который в данном случае является стереотипным:
Робот: Спасибо, очень хорошо!
Чтобы продолжить диалог, робот использует контекстные данные: дату – в нашем случае, 9 мая, День Европы (эта информация хранилась в памяти робота):
Робот: Скажи мне, знал ли ты, что сегодня День Европы? Я считаю, это здорово, эти страны, что объединяются, все с разными языками и культурами. Впрочем, я говорю на нескольких европейских языках! А ты, Жан, ты говоришь на других языках кроме французского?
Использование контекстных данных объясняется детальнее далее.
Для персонализации фразы выше (основная структура или «модель» которой предварительно подготовлена, как это будет детальнее объяснено далее) робот использует три типа данных из профиля собеседника: его имя («Жан»), значение («французский») переменной «Родной язык» и факт, что переменная «Другие языки» не указана. Ответ собеседника позволяет роботу дополнить его профиль, назначая значение «английский» этой переменной:
Человек: Да, я свободно говорю на английском.
Реплика робота использует это новое сохраненное значение, значение («Инженер»), которое было ранее присвоено переменной «Профессия» и «правило» - зарегистрированное в его памяти – связывая некоторые значения переменной «Другие языки» и некоторые значения переменной «Профессия»:
Робот: О, это хорошо, действительно, английский язык очень полезен для профессии инженера.
Робот также может предложить собеседнику продолжить общение на языке, что был только что зарегистрирован в профиле:
Робот: Ты хочешь немного поговорить по-английски?
Человек: Ok, это даст мне попрактиковаться.
Робот: Nice, let’s go!
Положительный ответ собеседника вызвал диалог на английском (предполагается, что робот запрограммирован для диалога на этом языке).
в конце диалога, профиль собеседника изменился, поскольку значение «английский» было присвоено переменной «Другие языки»:
Идентификатор собеседника: 00011
Имя: Жан
Возраст: 35
Профессия: Инженер
Интересы: плавание; бег; езда на велосипеде
Домашние животные:
Родной язык: французский
Другие языки: английский
Блок-схема на фиг. 2 более детально иллюстрирует осуществление способа согласно варианту реализации изобретения.
Этап a) идентификации собеседника-человека содержит два под-этапа:
- под-этап a1 захвата изображения, что, как описано выше, может быть изображением лица собеседника или также графическим идентификационным кодом;
- под-этап a2 идентификации собеседника распознаванием вышеуказанного изображения; как объяснено выше, этот этап может быть осуществлен локально или удаленным сервером.
Также возможны другие варианты идентификации.
Этап b) содержит извлечение профиля собеседника INT_PR, соответствующего собеседнику, идентифицированному на этапе a), из базы данных хранящейся локально или на удаленном сервере.
Опционально, после этапа b), робот может брать инициативу в диалоге, например, приветствуя собеседника и называя его по его имени (если эта переменная задана в профиле собеседника, что должно быть в обычно случае). Этот этап не представлен, чтобы не перегружать фигуру.
Этап c) содержит четыре под-этапа:
- под-этап c1 принятия звуков от указанного пользователя с помощью средств одного или нескольких микрофонов DAS;
- под-этап c2 распознавания голоса, осуществляемого над звуками, полученными во время под-этапа c1 с помощью известных алгоритмов, для извлечения фраз;
- под-этап c3 анализа фразы; этот под-этап будет описан более детально с помощью фиг. 3A-3D;
- если анализ, осуществленный на под-этапе c3, привел к идентификации нового значения для присвоения переменной профиля, этап c содержит под-этап c4 обновления указанного профиля.
В более простых вариантах осуществления, в которых диалог осуществляется в письменном виде, посредством клавиатуры и экрана, под-этапы c1 и c2 заменяются простым получением текста.
Этап d) ответа содержит три под-этапа:
- под-этап d1, опциональный, извлечения контекстуальных данных: даты, времени дня, метеорологических данных, присутствия других людей...;
- под-этап d2 формулировки ответной фразы; этот под-этап описан более детально с помощью фигур 3A-3D; и
- под-этап d3 выдачи ответной фразы, произведенной на под-этапе d2; этот под-этап реализован с использованием известных алгоритмов синтеза речи и одного или нескольких громкоговорителей DES.
Таким образом, способ повторяется, начиная с под-этапа c1, робот находится в ожидании новой фразы от пользователя.
Алгоритм может оканчиваться по прошествии максимального времени ожидания. Кроме того, анализ фразы, осуществляемый на под-этапе c3, может указывать роботу, что собеседник желает положить конец диалогу (например, такое желание может быть заключено из обнаружения такой фразы как «я должен уйти»; «до свидания»; «пока»...). Также, в случае исчезновения собеседника из поля зрения камер DAI (под-этап D1) робот может решить прекратить диалог. Эти варианты не показаны, чтобы избежать перегрузки чертежа.
Как анализ (под-этап c3), так и формулировка (под-этап d2) фраз процессором робота применяют «модели» или «шаблоны» (по-английски «patterns»). Модель фразы состоит из слов, указателей на переменные, «понятий» и «меток», а также индикаторов действий, связанных с одним или несколькими логическими операторами. Модели фраз могут быть представлены в виде древовидной структуры, называемой «синтаксическое дерево».
Фигура 3A демонстрирует первый пример синтаксического дерева AS1 соответствующего модели MDP используемой, во время реализации под-этапа c3 способа, для анализа фразы, произнесенной собеседником-человеком. Эта модель описывается скриптовым языком, разработанным для этой цели:
«mon nom est _~Liste-prénoms »
Она содержит три слова («mon» («мое»), «nom» («имя»), «est» («есть»)) и одного понятия («~Liste-prénoms» («~Список-имен»)). Тильда «~» идентифицирует понятие, символ «_» обозначает, что понятие должно храниться.
Слова и понятие - ссылка CPT - формируют листья синтаксического дерева AS, связанные логическим оператором «ET» формируя корень дерева.
Понятие состоит из множества семантически близких и взаимозаменяемых слов в предложении - тут, это список имен. Понятие «Liste-prénoms» также представлено деревом (фиг 3B), листья которого являются взаимозаменяемыми словами («Джон», «Питер», «Пол», «Жак», ...), а корень логическим оператором «ИЛИ». Если собеседник говорит, например, «Меня зовут Джон», процессор робота проверяет, что эта фраза соответствует шаблону и сохраняет (команда #stokage# (#хранение#), что соответствует символу «_» в шаблоне, символ «диез» - # - указывает на то, что это не имя, которое должно быть произнесено) значение «Джон» во временной переменной памяти робота.
Фиг. 3C иллюстрирует другой пример синтаксического дерева соответствующего модели MDP, используемой, во время осуществления под-этапов c4 (обновление профиля собеседника) и d2 (формулировка ответной фразы). Эта модель описывается:
«c’est un joli nom $1 ! $INT/Prénom=$1»
Она содержит четыре слова («c’est» («это»), «un», «joli» («красивое»), «nom» («имя»)), маркер интонации («!») и указатель на временную переменную, в которой хранится имя собеседника («$1» - символ «$» обозначает переменные). Она также содержит операцию присваивания диалоговой переменной VD «$INT/Prénom» значения, содержащегося во временной переменной $1. Операция присваивания, также представленная деревом (внизу фиг. 3B), связывающая переменную «INT/Prénom» и указатель «$1» посредством оператора равенства «=».
Правила позволяют процессору связывать входы (фразы, произнесенные собеседником) и выходы (ответные фразы, выдаваемые роботом). Фиг. 3D иллюстрирует дерево R представляющее такое правило. Речь идет об очень простом правиле, которое связывает модель, представленную деревом AS1 (вход) с моделью представленной деревом AS2 (выход). Таким образом, применяя это правило, когда собеседник говорит «меня зовут Жан», робот отвечает «это красивое имя, Жан!» - «Жан» может быть заменено любым другим именем перечисленном в понятии «Liste- prénoms». Дополнительно, как описано выше, процессор обновляет профиль пользователя, регистрируя информацию, что имя - «Жан», и может использовать эту информацию в дальнейшем во время диалога.
Правила могут быть гораздо более сложными, например, выход может выбираться среди многих альтернативных вариантов в зависимости от значения, присвоенного нескольким переменным и/или контекстным данным (например, даты, как, например, в диалоге, представленном выше). Таким же образом, несколько альтернативных моделей могут быть предусмотрены на входе, связанные с одним или одними же выходами.
Дерево R правил содержит также метку («tag», по-английски) TG: «#Présentation#». В этом случае метка позволяет прикрепить правило к «теме разговора» («topic», на английском языке), которая включает в себя семантически близкие правила - тут, тема разговора состоит из представлений собеседников. В зависимости от значения некоторых переменных, истории зарегистрированного диалога в профиле собеседника и/или контекстных данных, правила, отмеченные некоторыми метками, могут быть активированы или деактивированы. Например, правила, обозначенные меткой «Рождество», могут быть активированы только в период с 1 декабря по 15 января (контекстные данные); правила, отмеченные меткой «домашние животные» могут быть деактивированы, если профиль указывает на то, что собеседник их не имеет; когда применяется некоторое количество правил с меткой, можно считать, что тема будет обработана достаточно и эти правила могут быть деактивированы на некоторое время.
История диалога, предшествующего, содержит список предыдущих диалогов с их датами, список ответов и вопросов, озвученных роботом (уже заданные вопросы деактивируются для избегания повторения), список меток с их состоянием (активированы/деактивированы) и список тем, что уже были обработаны - с опциональным измерением глубины каждой темы. Эта история представлена в виде списка ключей и значений.
Все эти особенности способствуют персонализации и развитию диалога.