AIML (Artificial Intelilgence Mark-up Language) es un lenguage de programación que está basado en XML. Se diseñó para ayudar en la creación del primer chatbot online, A.L.I.C.E. Básicamente se trata de un robot con el que se puede chatear de una forma fluida. AIML está indicado en la creación de todo tipo agentes software con lenguage natural.


Fue desarrollado por el Dr. Richard Wallace junto con colaboradores de la comunidad opensource entre los años 1995 y 2000. Ha ganado varios premios como el Loebner Prize Contest o The Most Human. En estos concursos, un juez chatea en dos pantallas: en una contesta un humano, mientras que en la otra un chatbot. El objetivo es que el juez sea incapaz de diferenciar cual es cual. Esto indicaría que el chatbot es tan inteligente como el humano, y que ha pasado el famoso test de Turing. Lo cierto es que todavía no se ha conseguido, y se calcula que se conseguirá en el año 2039.

AIML contiene muchos elementos en su programación. Los más importantes son los siguientes:

Categories (categorías): son las unidades fundamentales de conocimiento. Una categoría consiste en al menos dos elementos más, que son los componentes pattern y template, que normalmente se programan en ese orden.

Patterns (patrones): cuando se chatea con el bot, este buscará patrones y responderá según como se le haya programado.

Templates (plantillas): si un patrón coincide con una categoría, y si es ése el patrón que más concuerda, entonces a la respuesta se añade una plantilla específica de la categoría. Esta plantilla puede contener otros componentes de AIML, que permiten personalizar dicha respuesta.

Se ofrecen muchos sets AIML con licencia GPL. Al fin y al cabo, un set AIML es la inteligencia del chatbot al completo ¿Por qué comenzar a programar desde cero, si alguien ya lo ha hecho? Mejorémoslos y compartámos. Podéis encontrar sets en A.L.I.C.E.

Por otro lado, tan importante como el cerebro del chatbot.. es el entorno en el que lo ejecutaremos, más conocido como el interprete. Existen multitud de intérpretes: programados en PHP, Java, Perl, Ruby, Python, C++, .. Conócelos también en A.L.I.C.E.

En nuestro laboratorio de AIML y voiceXML experimentaremos e intentaremos dotar de inteligencia a un chatbot. Como intérprete hemos elegido para empezar el Program O. Tendremos que ir pensando un nombre para el bot..

Fuente