AIML

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L’Artificial Intelligence Markup Language (AIML) est un langage dérivé de XML utilisé pour gérer la connaissance des avatars et bots (robots virtuels). Ce langage utilise une vingtaine de balises de base. Le AIML a été développé par Richard Wallace (en) entre 1995 et 2002.

Fond[modifier | modifier le code]

Le langage XML appelé AIML a été développé par Richard Wallace et par la communauté mondiale du logiciel libre entre les années 1995 et 2002. Il a formé la base pour ce qui était initialement une extension d'Eliza appelée « A.L.I.C.E. » (Artificial Linguistic Internet Computer Entity), qui a remporté le concours annuel du Prix Loebner d'Intelligence Artificielle[1] à trois reprises, et a également été le champion du Chatterbox Challenge[2] (Concours de Chatterbox) en 2004.

Parce que le programme AIML A.L.I.C.E. a été publié sous la licence GNU GPL et parce que la plupart des interpréteurs AIML sont sous licence libre ou open source, de nombreux « clones d'Alicebot » ont été créés sur la base de l'implémentation initiale du programme et de sa base de connaissances AIML. Des programmes AIML gratuits[3] en plusieurs langages ont été développés et mis à disposition par la communauté des utilisateurs. Il y a des interprètes AIML disponibles en Java, Ruby, Python, C++, C#, Pascal, et d'autres langages (voir ci-dessous). Une spécification semi-formelle[4] et un schéma XML du W3C pour AIML[5] sont disponibles.

Les éléments de AIML[modifier | modifier le code]

AIML contient plusieurs éléments. Les plus importants sont décrits plus en détail ci-dessous.

Catégories (category)[modifier | modifier le code]

Les catégories dans AIML sont l'unité fondamentale de la connaissance. Une catégorie est constituée d'au moins deux éléments principaux : le motif (pattern) et les modèles (template). Voici une catégorie simple :

<category>
  <pattern>QUEL EST VOTRE NOM</pattern>
  <template>Mon nom est Jean.</template>
</category>

Lorsque cette catégorie est chargée, un bot AIML répondra à l'entrée « Quel est votre nom » par la réponse : « Mon nom est Jean ».

Motifs (pattern)[modifier | modifier le code]

Un motif est une chaîne de caractères destinée à répondre à une ou plusieurs entrées de l'utilisateur. Un motif littéral comme

 QUEL EST VOTRE NOM

correspondra à une seule entrée, en ignorant la casse: « quel est votre nom ». Mais les motifs peuvent également contenir des caractères génériques, qui correspondent à un ou plusieurs mots. Un modèle comme

 QUEL EST VOTRE *

correspondra à un nombre infini d'entrées, y compris « quel est votre nom », « quelle est votre pointure de chaussure », « quel est votre but dans la vie », etc.

La syntaxe du modèle AIML est très simple, beaucoup moins complexe que les expressions régulières et en tant que telle d'un niveau inférieur à 3 dans la hiérarchie de Chomsky. Pour compenser la simple capacité de mise en correspondance des motifs, les interpréteurs AIML peuvent fournir des fonctions de prétraitement pour développer les abréviations, supprimer les fautes d'orthographe, etc.

Modèles (template)[modifier | modifier le code]

Un modèle spécifie la réponse à un motif correspondant. Un modèle peut être aussi simple qu'un texte littéral, comme

  Mon nom est Jean.

Un modèle peut utiliser des variables, comme dans l'exemple suivant

 Mon nom est <bot name="name"/>.

qui remplacera le nom du bot dans la phrase, ou

 Vous m'avez dit que vous avez <get name="user-age"/> ans.

qui remplacera l'âge de l'utilisateur (s'il est connu) dans la phrase.

Les éléments de modèles incluent le formatage du texte de base, les réponses conditionnelles (if-then/else), et les réponses aléatoires.

Les modèles peuvent également rediriger vers d'autres modèles, en utilisant un élément appelé « srai ». Ceci peut être utilisé pour mettre en œuvre la synonymie, comme dans cet exemple (où CDATA est utilisé pour éviter les caractères d'échappement XML) :

<category>
  <pattern>QUEL EST VOTRE NOM</pattern>
  <template><![CDATA[Mon nom est <bot name="name"/>.]]></template>
</category>
<category>
  <pattern>Comment t'appelles-tu</pattern>
  <template>
    <srai>Quel est votre nom</srai>
  </template>
</category>

La première catégorie répond simplement une entrée « quel est votre nom » avec une déclaration du nom du bot. La deuxième catégorie, cependant, dit que l'entrée « Comment t'appelles-tu » doit être redirigé vers la catégorie qui correspond à l'entrée « quel est ton nom » — en d'autres termes, elle dit que les deux phrases sont équivalentes.

Les modèles peuvent contenir d'autres types de contenu, qui peuvent être traités par n'importe quelle interface au travers de laquelle le bot parle. Ainsi, par exemple, un modèle peut utiliser des balises HTML pour le formatage, qui peut être ignoré par les clients qui ne supportent pas HTML.

Critiques[modifier | modifier le code]

AIML est considéré comme intelligent et simple, et un bon début pour les débutants écrivant des robots simples.[réf. nécessaire] Cependant, il est difficile de maintenir et d'écrire des robots plus complexes et il[Qui ?] est doté de faibles capacités pour traiter les correspondances. Pourtant, A.L.I.C.E. est un chatbot élaboré arrivé 2e au concours Loebner de 2010[6].

Implémentations Open Source AIML[modifier | modifier le code]

Actifs
Dormants

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

References[modifier | modifier le code]

  1. Loebner.net
  2. Chatterboxchallenge.com
  3. AItools.org
  4. AItools.org
  5. AItools.org
  6. Bruce Wilcox, Beyond Façade: Pattern Matching for Natural Language Applications

Références externes[modifier | modifier le code]