AIML
AIML (Artificial Intelligence Markup Language) – język znaczników oparty na języku XML, służący do tworzenia baz wiedzy chatterbotów, opracowany pierwotnie przez hakera, dr. Richarda S. Wallace’a, a później rozwijany również przez społeczność wolnego oprogramowania ALICE w latach 1995-2000.
Spis treści |
Elementy języka AIML [edytuj]
Język AIML zawiera kilka różnych elementów. Najważniejsze z nich są opisane poniżej.
Category [edytuj]
Kategorie (<category>) są najważniejszymi znacznikami AIML. Kategorie składają się z przynajmniej dwóch elementów: znacznika <pattern> oraz znacznika <template>. Poniżej znajduje się prosty przykład zastosowania znacznika <category>:
<aiml version="1.0.1"> <category> <pattern>HELLO</pattern> <template>Witam.</template> </category> </aiml>
Baza wiedzy podana w przykładzie jest zgodna z wersją 1.0.1 dokumentacji języka AIML.
Pattern [edytuj]
Wzorzec (<pattern>) jest ciągiem znaków dopasowanych do jednego lub więcej zapytań użytkownika. Wzorzec w stylu:
ILE MASZ LAT
zawiera tylko jedno zapytanie, ignorując: „jak masz na imię”. Wzorce mogą również zawierać symbol wieloznaczny ('*'), który odpowiada jednemu lub kilku wyrazom. Wzorzec w stylu:
ILE MASZ *
dopasuje do skończonej liczby zapytań np.: „ile masz lat”, „ile masz zwierzaków”, „ile masz par butów” itd.
Pattern języka AIML jest prostszym i o wiele mniej skomplikowanym językiem dla wzorów niż wyrażenia regularne.
Template [edytuj]
Szablony (<template>) określają reakcje na wzorzec. Szablony mogą być całą odpowiedzią, np.
MAM NA IMIĘ ASIA.
W szablonach można używać również zmiennych np.
MAM NA IMIĘ <bot name="name"/>.
która zastąpi nazwę bota w zdaniu, lub
POWIEDZIAŁEŚ MI, ŻE MASZ <get name="user-age"/> LAT.
która zastąpi user-age (jeśli zostało to już wcześniej w rozmowie z botem podane) wiekiem użytkownika.
Znacznik template zawiera podstawowe elementy formatowania tekstu, odpowiedzi warunkowe (if-then/else) oraz losowe odpowiedzi.
Szablony mogą przekierowywać do innych wzorców przy użyciu znacznika <srai>. Może być to wykorzystywane w przypadku synonimicznych wzorców, jak w przykładzie poniżej
<category> <pattern>JAK MASZ NA IMIĘ</pattern> <template>MAM NA IMIĘ <bot name="name"/>.</template> </category> <category> <pattern>JAK SIĘ NAZYWASZ</pattern> <template> <srai>JAK MASZ NA IMIĘ</srai> </template> </category>
Pierwsza kategoria zawiera prostą odpowiedź na pytanie „jak masz na imię”, wstawiając w odpowiedzi nazwę bota. Druga kategoria przekieruje zapytanie „jak się nazywasz” do kategorii, zawierającej zapytanie „jak masz na imię” i zwróci odpowiedź. Oba wyrażenia są równoważne.
Linki zewnętrzne [edytuj]
- www.alicebot.org – strona domowa projektu