Язык разметки искусственного интеллекта
![]() | |
Расширение имени файла | .aiml |
---|---|
Разработано | Доктор Ричард С. Уоллес |
Первоначальный выпуск | 16 июля 2001 г [ 1 ] |
Последний выпуск | |
Тип формата | Искусственный интеллект |
Расширено с | XML |
Открытый формат ? | Да |
Веб-сайт | www |
Язык разметки искусственного интеллекта ( AIML ) — это диалект XML для создания программных агентов на естественном языке .
История
[ редактировать ]Диалект XML под названием AIML был разработан Ричардом Уоллесом и мировым сообществом свободного программного обеспечения в 1995 году. [ нужна ссылка ] и 2002. AIML лег в основу того, что первоначально было расширенной версией Элизы под названием « АЛИСА » («Искусственный лингвистический компьютерный объект Интернета»), которая выиграла ежегодный конкурс премии Лебнера в области искусственного интеллекта. [ 3 ] три раза, а также был Chatterbox Challenge [ 4 ] Чемпион 2004 года.
Поскольку набор ALICE AIML был выпущен под лицензией GPL и поскольку большинство интерпретаторов AIML предлагаются по бесплатной лицензии или лицензии с открытым исходным кодом , многие «клоны Alicebot» были созданы на основе исходной реализации программы и ее базы знаний AIML. Бесплатные наборы AIML [ 5 ] на нескольких языках были разработаны и предоставлены сообществом пользователей. Существуют интерпретаторы AIML, доступные для Java , Ruby , Python , C++ , C# , Pascal и других языков (см. ниже). [ мертвая ссылка ] ). Полуформальная спецификация [ 6 ] и XML-схема W3C для AIML. [ 7 ] доступны.
С начала 2013 года фонд ALICE работает над проектом спецификации AIML 2.0. [ 8 ]
Элементы AIML
[ редактировать ]AIML содержит несколько элементов. Наиболее важные из них более подробно описаны ниже.
Категории
[ редактировать ]Категории в AIML образуют фундаментальную единицу знаний. Категория состоит как минимум из двух дополнительных элементов: элементов шаблона и шаблона . Вот простая категория:
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template>My name is Michael N.S Evanious.</template>
</category>
Когда эта категория загружена, бот AIML ответит на ввод «Как вас зовут» ответом «Меня зовут Майкл Н. С. Эваниус».
Узоры
[ редактировать ]Шаблон — это строка символов, предназначенная для соответствия одному или нескольким введенным пользователем данным. Буквальный шаблон, подобный
WHAT IS YOUR NAME
будет соответствовать только одному вводу, игнорируя регистр: «как тебя зовут». Но шаблоны также могут содержать подстановочные знаки, соответствующие одному или нескольким словам. Шаблон вроде
WHAT IS YOUR *
будет соответствовать бесконечному количеству входных данных, включая «как вас зовут», «какой у вас размер обуви», «какова ваша цель в жизни» и т. д.
Синтаксис шаблонов AIML — это очень простой язык шаблонов, существенно менее сложный, чем регулярные выражения , и поэтому ниже уровня 3 в иерархии Хомского . Чтобы компенсировать возможности простого сопоставления с образцом , интерпретаторы AIML могут предоставлять функции предварительной обработки для расширения сокращений, удаления орфографических ошибок и т. д.
Синтаксис AIML по крайней мере так же сложен, как и конечные автоматы , и поэтому относится как минимум к третьему уровню иерархии Хомского . Это происходит потому, что состояние соотносится с одной темой . Чтобы реализовать такое поведение, тема должна иметь шаблон «*», чтобы гарантировать, что состояние не будет случайно оставлено. Государственный транзит осуществляется с <think><set name="topic">state2</set></think>
Ярлык. Таким образом, бот сможет «запомнить» обсуждаемую тему или даже привилегии пользователя, полученные во время чата.
Шаблоны
[ редактировать ]Шаблон определяет ответ на соответствующий шаблон. Шаблон может быть простым, например, буквальным текстом, например
My name is John.
Шаблон может использовать переменные, как в примере
My name is <bot name="name"/>.
который заменит имя бота в предложении, или
You told me you are <get name="user-age"/> years old.
который заменит в предложении возраст пользователя (если он известен).
Элементы шаблона включают базовое форматирование текста, условный ответ (если-то/иначе) и случайные ответы.
Шаблоны также могут перенаправляться на другие шаблоны, используя элемент под названием srai (Символическое сокращение в искусственном интеллекте). Это можно использовать для реализации синонимии, как в этом примере (где CDATA используется, чтобы избежать необходимости экранирования XML ):
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template><![CDATA[My name is <bot name="name"/>.]]></template>
</category>
<category>
<pattern>WHAT ARE YOU CALLED</pattern>
<template>
<srai>what is your name</srai>
</template>
</category>
Первая категория просто отвечает на ввод «как вас зовут» с указанием имени бота. Вторая категория, однако, говорит, что ввод «как вас зовут» должен быть перенаправлен в категорию, которая соответствует вводу «как вас зовут» — другими словами, это говорит о том, что эти две фразы эквивалентны.
Шаблоны могут содержать другие типы контента, которые могут обрабатываться любым пользовательским интерфейсом, через который разговаривает бот. Так, например, шаблон может использовать для форматирования HTML-теги, которые могут игнорироваться клиентами, не поддерживающими HTML.
Ссылки
[ редактировать ]- ^ «Пресс-релиз: Стандарт AIML 1.0 принят (Фонд ALICE AI Foundation)» . alicebot.org . Сан-Франциско, Калифорния. 16 июля 2001 года. Архивировано из оригинала 15 июля 2007 года . Проверено 1 декабря 2013 г.
- ^ Jump up to: а б «AIML 2.1 (Фонд AIML)» . цель.основание / . Архивировано из оригинала 14 мая 2019 года . Проверено 11 июня 2022 г.
- ^ "loebner.net - Informationen zum Thema loebner" . loebner.net . 26 октября 2007 г. Архивировано из оригинала 30 декабря 2010 г. Проверено 10 ноября 2010 г.
- ^ «Вызов болтуна» . http://chatterboxchallenge.com . Архивировано из оригинала 25 марта 2006 года . Проверено 10 ноября 2010 г.
- ^ «Бесплатные наборы AIML — aitoold.org» . aitools.org . 17 мая 2006 г. Архивировано из оригинала 9 октября 2006 г.
- ^ «AIML 1.0.1 (Фонд ALICE AI)» . alicebot.org . 13 октября 2011 года. Архивировано из оригинала 18 ноября 2013 года . Проверено 1 декабря 2013 г.
- ^ "AIML.xsd" . aitools.org . Архивировано из оригинала 17 марта 2006 года . Проверено 10 ноября 2010 г.
- ^ «Выпущен проект спецификации AIML 2.0» . alicebot.blogspot.com . 16 января 2013 года. Архивировано из оригинала 18 мая 2013 года . Проверено 19 июня 2014 г.