AIML
AIML (англ. Artificial Intelligence Markup Language) — мова розмітки для штучного інтелекту. AIML — діалект XML і призначається для створення віртуальних співрозмовників.
Першим віртуальним співрозмовником була програма Еліза, створена у 1966 році. Її розробник, Джозеф Вейценбаум, побудував базу знань програми за принципом шаблонних відповідей. Подібний метод також був використаний у програмі A.L.I.C.E. в 1995 році, але тепер база знань стала структурованою. Для побудови такої бази якраз і була створена мова розмітки AIML. AIML розробив Річард Воллес, ініціатор проекту ALICE, і всесвітнім співтовариством вільного програмного забезпечення з 1995 по 2002 рік.
Версія AIML, яка використовується в ALICE, розповсюджується під ліцензією GNU GPL, тому існує багато вільних реалізацій цієї мови та різноманітних інтерпретаторів.
Категорії (англ. category) в AIML — основна структурна одиниця. Категорія складається принаймні із двох елементів: зразка (англ. pattern) і шаблона (англ. template). Простий приклад:
<category> <pattern>Як вас звуть?</pattern> <template>Я - Олег</template> </category>
Якщо ця категорія міститься в базі знань, інтерпретатор на питання «Як вас звуть?» відповідатиме «Я — Олег».
Зразок — символьний рядок, відповідний одному або декільком призначеним для користувача запитам. Такі зразки як:
ЯК ВАС ЗВУТЬ
співвідноситимуться тільки з одним питанням (причому без урахування регістра). Проте зразки можуть містити символи узагальнення, що замінюють одне або декілька слів. Зразок:
ЯК ВАС *
відповідатиме безлічі питань, наприклад: «Як вас звуть», «Як вас величати» і т. д.
Подібний синтаксис набагато простіший, ніж регулярні вирази. Він відповідає потребам програм-співбесідників, а якщо все ж таки його не вистачає, самі інтерпретатори можуть надати додаткові функції по обробці запитів.
Шаблони позначають відповіді на розпізнані зразки. Шаблон може бути простим:
Моє ім'я - Олег.
а може й містити змінні:
Моє ім'я - <bot name="ім'я"/>.
Ви сказали, що Вам <Get name="вік користувача"/> років.
У першому випадку інтерпретатор підставить своє «ім'я», а в другому — вік користувача (якщо вік відомий).
- www.alicebot.org — сайт, присвячений ALICE.