AIML
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 entre 1995 et 2002.
Fond[modifier]
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[1]. 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 à trois reprises, et a également été le champion du Chatterbox Challenge (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 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).
Les éléments de AIML[modifier]
AIML contient plusieurs éléments. Les plus importants sont décrits plus en détail ci-dessous.
Catégories (category)[modifier]
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]
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]
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]
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 AIML 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[2].
Références[modifier]
- ↑ (en) Lentin Joseph, « Getting started with AIML », dans ROS Robotics Projects (lire en ligne), p. 86
- ↑ Bruce Wilcox, Beyond Façade: Pattern Matching for Natural Language Applications
Annexes[modifier]
Bibliographie[modifier]
- (en) « AIML and Decision Trees in Chatterbot Creating », dans Artificial Intelligence and Soft Computing, Part II, , 711 p. (lire en ligne), p. 691
Lien externe[modifier]
- (en) « Ask Alice », sur alicebot.org
Erreur Lua dans Module:Catégorisation_badges à la ligne 170 : attempt to index field 'wikibase' (a nil value).Erreur Lua dans Module:Suivi_des_biographies à la ligne 189 : attempt to index field 'wikibase' (a nil value).
Cet Article wiki "AIML" est issu de Wikipedia. La liste de ses auteurs peut être visible dans ses historiques et/ou la page Edithistory:AIML.