Artificial Intelligence Markup Language
テンプレートはマッチしたパターンに対する応答を指定する。テンプレートには以下のような単純なテキストを使うこともできる。
テンプレートには変数を使って以下のように表記することもできる。
こうすると、ボット名が文の中に組み込まれる。
この場合、ユーザーの年齢が既にわかっていれば、それを応答の中で使うことができる。
テンプレートでは基本的なテキスト形式が使え、条件付応答(if-then/else)やランダムな応答も設定できる。
テンプレートで srai という要素を使って他のパターンにリダイレクトすることができる。これは、意味が同じで表現が異なる場合に対応する。以下に例を示す。
1つめのカテゴリは単に "what is your name" という質問に答えている。2番目のカテゴリでは "what are you called" と入力されたときに "what is your name" と入力されたときと同じ応答をするように指定している。つまり、この2つの文はこのシステムでは等価に扱われる。
テンプレートは応答を指定しているものであるため、表示形式などをHTMLで指定するといったことも可能である。
AIML は Richard Wallece と世界的なフリーソフトウェア・コミュニティにより、1995年から2002年にかけて開発された。当初の目的はELIZAを高度に拡張した "A.L.I.C.E." と呼ばれるシステム向けであり、同システムはローブナー賞を3回受賞し、2004年にはChatterbox Challengeで優勝している。
A.L.I.C.E. のAIMLはGNU GPLライセンスでリリースされたため、多数のAIMLインタプリタがフリーソフトウェアまたはオープンソースで作られ、A.L.I.C.E. のクローンも多数作成された。いくつかの言語用のセット(Free AIML sets)も作られ、ユーザーコミュニティによって利用可能となっている。最近では、JavaベースのProgram DというAIMLインタプリタの開発が活発である。他にも、Ruby、Python、C++、C#、Pascalなどの言語向けにフリーまたはオープンソースのAIMLインタプリタが開発されている。