| ファイル名拡張子 | .aiml |
|---|---|
| 開発者 | リチャード・S・ウォレス博士 |
| 初回リリース | 2001年7月16日[1] |
| 最新リリース | 2.1 [2] (rev 1.0.2.22 [要出典] ) 2018年6月20日[2] |
| フォーマットの種類 | 人工知能 |
| 延長 | テキスト |
| オープンフォーマット? | はい |
| Webサイト | 原文はこちら |
人工知能マークアップ言語( AIML ) は、自然言語ソフトウェア エージェントを作成するためのXML方言です。
歴史
AIMLと呼ばれるXML方言は、リチャード・ウォレスと世界中のフリーソフトウェアコミュニティによって1995年[要出典]から2002年にかけて開発されました。AIMLは、当初は高度に拡張されたElizaである「ALICE」(「Artificial Linguistic Internet Computer Entity」)の基礎を形成し、毎年開催されるLoebner Prize Competition in Artificial Intelligence [3]で3回優勝し、2004年にはChatterbox Challenge [4]のチャンピオンにもなりました。
ALICE AIMLセットはGPLの下でリリースされており、ほとんどのAIMLインタープリタは無料またはオープンソースライセンスで提供されているため、プログラムの元の実装とAIML知識ベースに基づいて多くの「Alicebotクローン」が作成されています。いくつかの言語で無料のAIMLセット[5]がユーザーコミュニティによって開発され、利用可能になっています。Java 、Ruby、Python、C ++ 、 C #、Pascal、およびその他の言語で利用可能なAIMLインタープリタがあります(下記[リンク切れ ]を参照)。準形式仕様[6]とAIML用のW3C XMLスキーマ[7]が利用可能です。
2013年初頭から、ALICE財団はAIML 2.0の仕様草案の作成に取り組んできました。[8]
AIMLの要素
AIML にはいくつかの要素が含まれています。最も重要な要素については、以下で詳しく説明します。
カテゴリー
AIML のカテゴリは知識の基本単位を形成します。カテゴリは、パターン要素とテンプレート要素という少なくとも 2 つの要素で構成されます。以下は単純なカテゴリです。
<category>
<pattern>あなたの名前は何ですか</pattern> <template>私の名前はMichael N.S Evaniousです。</template> </category>
このカテゴリが読み込まれると、AIML ボットは「あなたの名前は何ですか」という入力に対して「私の名前は Michael NS Evanious です」と応答します。
パターン
パターンとは、1つ以上のユーザー入力に一致する文字列です。次のようなリテラルパターンは、
あなたの名前は何ですか
は、大文字と小文字を区別せずに、1つの入力にのみ一致します。「あなたの名前は何ですか?」。ただし、パターンにはワイルドカードを含めることもできます。ワイルドカードは1つ以上の単語に一致します。次のようなパターンは、
あなたの*は何ですか
「あなたの名前は何ですか」「あなたの靴のサイズは何ですか」「あなたの人生の目的は何ですか」など、無限の数の入力と一致します。
AIML パターン構文は非常に単純なパターン言語であり、正規表現よりも大幅に複雑ではなく、チョムスキー階層のレベル 3 未満です。単純なパターン マッチング機能を補うために、AIML インタープリタは略語の展開、スペルミスの削除などの前処理機能を提供できます。
AIML 構文自体は、有限状態マシンと同等かそれ以上に複雑で、チョムスキー階層では少なくともレベル 3です。これは、状態が 1 つのトピックと相関しているためです。この動作を実装するには、トピックに「*」パターンを持たせて、状態が誤って終了しないようにする必要があります。状態遷移はタグで実装されます。このようにして、ボットは、チャット中に話されたトピックやユーザー権限を「記憶」できるようになります。
<think><set name="topic">state2</set></think>
テンプレート
テンプレートは、一致したパターンに対する応答を指定します。テンプレートは、次のような単純なリテラルテキストである場合もあります。
私の名前はジョンです。
テンプレートでは、次の例のように変数が使用されることがあります。
私の名前は<bot name="name"/>です。
ボットの名前を文中に代入します。
あなたは <get name="user-age"/> 歳だと言いました。
これにより、ユーザーの年齢(わかっている場合)が文に代入されます。
テンプレート要素には、基本的なテキスト書式、条件付き応答 (if-then/else)、ランダム応答が含まれます。
テンプレートは、 srai (Symbolic Reduction in Artificial Intelligence)と呼ばれる要素を使用して、他のパターンにリダイレクトすることもできます。この例のように、これを使用して同義性を実装できます (ここでは、XML エスケープの必要性を回避するためにCDATAが使用されています)。
<category>
<pattern>あなたの名前は何ですか</pattern> <template> <![CDATA[私の名前は <bot name="name"/> です。]]> </template> </category> <category> <pattern>あなたの名前は何ですか</pattern> <template> <srai>あなたの名前は何ですか</srai> </template> </category>
最初のカテゴリは、「あなたの名前は何ですか」という入力に対して、ボットの名前を単に返答します。ただし、2 番目のカテゴリは、「あなたの名前は何ですか」という入力を、「あなたの名前は何ですか」という入力に一致するカテゴリにリダイレクトする必要があることを示しています。つまり、2 つのフレーズは同等であることを示しています。
テンプレートには他の種類のコンテンツを含めることができ、ボットが使用しているユーザー インターフェイスによって処理される可能性があります。たとえば、テンプレートでは書式設定に HTML タグが使用されることがありますが、これは HTML をサポートしていないクライアントでは無視される可能性があります。
参考文献
- ^ 「プレスリリース: AIML 1.0 標準が承認されました (ALICE AI Foundation)」。alicebot.org。サンフランシスコ、カリフォルニア州。2001 年 7 月 16 日。2007 年 7 月 15 日時点のオリジナルよりアーカイブ。2013年12 月 1 日に閲覧。
- ^ ab “AIML 2.1 (AIML Foundation)”. aiml.foundation/ . 2019年5月14日時点のオリジナルよりアーカイブ。2022年6月11日閲覧。
- ^ "loebner.net - Informationen zum Thema loebner". loebner.net . 2007年10月26日. 2010年12月30日時点のオリジナルよりアーカイブ。 2010年11月10日閲覧。
- ^ 「Chatterbox Challenge」。chatterboxchallenge.com。2006年3月25日時点のオリジナルよりアーカイブ。2010年11月10日閲覧。
- ^ 「Free AIML sets - aitoold.org」。aitools.org。2006年5月17日。2006年10月9日時点のオリジナルよりアーカイブ。
- ^ 「AIML 1.0.1 (ALICE AI Foundation)」。alicebot.org。2011年10月13日。2013年11月18日時点のオリジナルよりアーカイブ。2013年12月1日閲覧。
- ^ "AIML.xsd". aitools.org . 2006年3月17日時点のオリジナルよりアーカイブ。2010年11月10日閲覧。
- ^ 「AIML 2.0 ドラフト仕様がリリースされました」。alicebot.blogspot.com。2013年1月16日。2013年5月18日時点のオリジナルよりアーカイブ。2014年6月19日閲覧。
