Articulo de referencia

Lenguaje de marcado de inteligencia artificial

El lenguaje de marcado de inteligencia artificial ( AIML ) es un dialecto XML para crear agentes de software de lenguaje natural . Historia El dialecto XML llamado AIML fue desa...

El lenguaje de marcado de inteligencia artificial ( AIML ) es un dialecto XML para crear agentes de software de lenguaje natural .

Historia

El dialecto XML llamado AIML fue desarrollado por Richard Wallace y una comunidad mundial de software libre entre 1995 [ cita requerida ] y 2002. AIML formó la base para lo que inicialmente fue un Eliza altamente extendido llamado " ALICE " ("Artificial Linguistic Internet Computer Entity"), que ganó el Concurso Anual del Premio Loebner en Inteligencia Artificial [3] tres veces, y también fue el Campeón del Chatterbox Challenge [4] en 2004.

Debido a que el conjunto AIML de ALICE fue lanzado bajo la GPL , y debido a que la mayoría de los intérpretes AIML se ofrecen bajo una licencia libre o de código abierto , se han creado muchos "clones de Alicebot" basados ​​en la implementación original del programa y su base de conocimiento AIML. Se han desarrollado conjuntos AIML gratuitos [5] en varios lenguajes y se han puesto a disposición de la comunidad de usuarios. Hay intérpretes AIML disponibles en Java , Ruby , Python , C++ , C# , Pascal y otros lenguajes (ver más abajo [ enlace muerto ‍ ] ). Hay disponible una especificación semiformal [6] y un esquema XML W3C para AIML [7] .

Desde principios de 2013, la Fundación ALICE ha estado trabajando en un borrador de especificación para AIML 2.0. [8]

Elementos de AIML

AIML contiene varios elementos. Los más importantes se describen con más detalle a continuación.

Categorías

Las categorías en AIML forman la unidad fundamental de conocimiento. Una categoría consta de al menos dos elementos más: los elementos de patrón y de plantilla . A continuación se muestra una categoría sencilla:

<category> 
<pattern> ¿CUAL ES TU NOMBRE? </pattern> <template> Mi nombre es Michael N.S Evanious. </template> </category>     
       

Cuando se carga esta categoría, un bot AIML responderá a la entrada "¿Cuál es tu nombre?" con la respuesta "Mi nombre es Michael NS Evanious".

Patrones

Un patrón es una cadena de caracteres que se pretende que coincida con una o más entradas del usuario. Un patrón literal como

CÓMO TE LLAMAS

coincidirá solo con una entrada, ignorando mayúsculas y minúsculas: "¿cuál es tu nombre?". Pero los patrones también pueden contener comodines, que coinciden con una o más palabras. Un patrón como

¿CUAL ES TU *

coincidirá con un número infinito de entradas, incluyendo "¿cuál es tu nombre?", "¿cuál es tu talla de calzado?", "¿cuál es tu propósito en la vida?", etc.

La sintaxis de patrones de AIML es un lenguaje de patrones muy simple, sustancialmente menos complejo que las expresiones regulares y, como tal, de nivel inferior al 3 en la jerarquía de Chomsky . Para compensar las capacidades simples de coincidencia de patrones , los intérpretes de AIML pueden proporcionar funciones de preprocesamiento para expandir abreviaturas, eliminar errores ortográficos, etc.

La sintaxis AIML en sí es al menos tan compleja como las máquinas de estados finitos y, como tal, al menos de nivel 3 en la jerarquía de Chomsky . Esto se debe a que un estado se correlaciona con un tema . Para implementar ese comportamiento, el tema debe tener un patrón "*" para asegurarse de que el estado no se abandone accidentalmente. Un tránsito de estado se implementa con la etiqueta. De esta manera, el bot podrá "recordar" el tema del que se habló o incluso los privilegios de usuario, que se obtienen durante el chat. <think><set name="topic">state2</set></think>

Plantillas

Una plantilla especifica la respuesta a un patrón coincidente. Una plantilla puede ser tan simple como un texto literal, como

Mi nombre es John.

Una plantilla puede utilizar variables, como el ejemplo

Mi nombre es <bot name="name"/>.

que sustituirá el nombre del bot en la oración, o

Me dijiste que tienes <get name="user-age"/> años.

que sustituirá la edad del usuario (si se conoce) en la oración.

Los elementos de la plantilla incluyen formato de texto básico, respuesta condicional (si-entonces/sino) y respuestas aleatorias.

Las plantillas también pueden redirigir a otros patrones, utilizando un elemento llamado srai (Reducción simbólica en inteligencia artificial). Esto se puede utilizar para implementar la sinonimia, como en este ejemplo (donde se utiliza CDATA para evitar la necesidad de escape XML ):

<category> 
<pattern> ¿CÓMO TE LLAMAS? </pattern> <template> < ![CDATA[Mi nombre es <bot name="name"/>.]]> </template> </category> <category> <pattern> ¿CÓMO TE LLAMAS ? </pattern> <template> <srai> ¿ CÓMO TE LLAMAS? </srai> </template> </category>     
  


     
  
       
  

La primera categoría simplemente responde a la pregunta "¿cómo te llamas?" con una declaración del nombre del bot. La segunda categoría, sin embargo, dice que la pregunta "¿cómo te llamas?" debe ser redirigida a la categoría que coincida con la pregunta "¿cómo te llamas?"; en otras palabras, dice que las dos frases son equivalentes.

Las plantillas pueden contener otros tipos de contenido, que pueden ser procesados ​​por cualquier interfaz de usuario a través de la cual se comunique el bot. Por ejemplo, una plantilla puede usar etiquetas HTML para el formato, que pueden ser ignoradas por los clientes que no admiten HTML.

Referencias

  1. ^ "Comunicado de prensa: Se aprobó el estándar AIML 1.0 (ALICE AI Foundation)". alicebot.org . San Francisco CA. 16 de julio de 2001. Archivado desde el original el 15 de julio de 2007 . Consultado el 1 de diciembre de 2013 .
  2. ^ ab "AIML 2.1 (Fundación AIML)". aiml.foundation/ . Archivado desde el original el 14 de mayo de 2019 . Consultado el 11 de junio de 2022 .
  3. ^ "loebner.net - Información sobre el tema loebner". loebner.net . 26 de octubre de 2007. Archivado desde el original el 30 de diciembre de 2010 . Consultado el 10 de noviembre de 2010 .
  4. ^ "Chatterbox Challenge". chatterboxchallenge.com . Archivado desde el original el 25 de marzo de 2006. Consultado el 10 de noviembre de 2010 .
  5. ^ "Conjuntos AIML gratuitos - aitoold.org". aitools.org . 17 de mayo de 2006. Archivado desde el original el 9 de octubre de 2006.
  6. ^ "AIML 1.0.1 (ALICE AI Foundation)". alicebot.org . 13 de octubre de 2011. Archivado desde el original el 18 de noviembre de 2013 . Consultado el 1 de diciembre de 2013 .
  7. ^ "AIML.xsd". aitools.org . Archivado desde el original el 17 de marzo de 2006 . Consultado el 10 de noviembre de 2010 .
  8. ^ "Publicado el borrador de especificación de AIML 2.0". alicebot.blogspot.com . 16 de enero de 2013. Archivado desde el original el 18 de mayo de 2013 . Consultado el 19 de junio de 2014 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Lenguaje_de_marcado_de_inteligencia_artificial&oldid=1264116077"