Você está na página 1de 10

<star index=n/>

La n significa la posicin del * en la entrada del usuario <pattern>

Ejemplo:

<category>
<pattern> El * es una *. </pattern>
<template>
Estas seguro que el <star index="1" /> es una <star index="2" />?
</template>
</category>

Humano: El platano es una verdura


Maquina: Estas seguro que el platano es una verdura?

<srai>
Es una etiqueta multipropsito ya que define diferentes objetivos para la misma
plantilla.

Sintaxis:

<srai> pattern </srai>

Se utiliza para las siguientes situaciones:

Reduccin simblica
Divide y vencers
Resolucin de sinnimos
Deteccin de palabras claves

Reduccin simblica
Human: Quien fue Steve Jobs?
Robot: Steve Jobs fue el fundador de Apple.
Human: Quien fue Dennis Ritchie?
Robot: Dennis Ritchie fue el creador de C y Unix

Y si las preguntas fueran asi:

Human: Conoces a Steve Jobs?


Human: Conoces a Dennis Ritchie?
El AIML quedara as:

<category>
<pattern>Quien fue Steve Jobs?</pattern>
<template>Steve Jobs fue el fundador de Apple.</template>
</category>
<category>
<pattern>Quien fue Dennis Ritchie</pattern>
<template>Dennis Ritchie fue el creador de C y Unix</template>
</category>

Las categoras genricas quedaran as:

<category>
<pattern>Conoces a *?</pattern>
<template>
<srai>Quien fue <star/></srai>
</template>
</category>

Divide y vencers
Para reusar sub sentencias y reduce la definicin de mltiples categoras

Conversacin de ejemplo:

Human: Bye
Robot: GoodBye!
Human: Bye Alice!
Robot: GoodBye!

AIML:

<category>
<pattern>adios</pattern>
<template>Hasta pronto</template>
</category>

<category>
<pattern>adios *</pattern>
<template>
<srai>adios</srai>
</template>
</category>
Resolucin de sinnimos
Para responder de la misma forma a palabras similares

Conversacin de ejemplo:

Human: Universidad
Robot: Un centro de estudios
Human: Colegio
Robot: Un centro de estudios

AIML:

<category>
<pattern>UNIVERSIDAD</pattern>
<template>Un centro de estudios</template>
</category>

<category>
<pattern>COLEGIO</pattern>
<template>
<srai>UNIVERSIDAD</srai>
</template>
</category>
Deteccin de palabras clave
Para lograr una respuesta simple si el usuario escribe una palabra clave especifica.

Conversacin de ejemplo:

Human: Me gusta recibir la clase de IA.


Robot: Que Bueno, la IA es una rama de la informatica muy interesante
Human: La IA es mi pasion
Robot: Que Bueno, la IA es una rama de la informatica muy interesante

AIML:

<category>
<pattern>IA</pattern>
<template>Que Bueno, la IA es una rama de la informatica muy interesante</template>
</category>

<category>
<pattern>* IA</pattern>
<template>
<srai>IA</srai>
</template>
</category>
<category>
<pattern>* IA *</pattern>
<template>
<srai>IA</srai>
</template>
</category>
<random>
Utilizada para obtener respuestas aleatorias. <random> es utilizada con <li>.

Sintaxis:

<random>
<li> pattern1 </li>
<li> pattern2 </li>
...
<li> patternN </li>
</random>

Conversacin de ejemplo:

Human: hola
Robot: hola
Human: hola
Robot: hola! Mucho gusto!

AIML:

<category>
<pattern>hola</pattern>
<template>
<random>
<li>Hola</li>
<li>Hola!, mucho gusto! </li>
</random>
</template>
</category>
<set> y <get>
Utilizadas para trabajar con variables en AIML

Sintaxis:

<set name = "nombre-variable">valor-de-la-variable</set>

<get name = "nombre-variable" />

Conversacin de ejemplo:

Human: Soy Josu


Robot: Hola Josu!
Human: Buenas noches
Robot: Buenas noches Josu! Gracias por la conversacin!

AIML:

<category>
<pattern>soy *</pattern>
<template>
Hola <set name="nombre"><star /></set>!
</template>
</category>

<category>
<pattern>Buenas noches</pattern>
<template>
Buenas noches <get name="nombre" />! Gracias por la conversacin!
</template>
</category>
<that>
Es utilizada para responder basado en el contexto.

Sintaxis:

<that> template </that>

Conversacin de ejemplo:

Human: Hola Harvey, preguntame algo de IA


Robot: Te gusta programar en AIML?
Human: Si
Robot: Ohh! Que Bueno, mi cerebro funciona con AIML.

AIML:

<category>
<pattern>HOLA HARVEY PREGUNTAME ALGO DE IA</pattern>
<template>Te gusta programar en AIML?</template>
</category>

<category>
<pattern>SI</pattern>
<that>Te gusta programar en AIML</that>
<template>Ohh! Que Bueno, mi cerebro funciona con AIML.</template>
</category>

<category>
<pattern>NO</pattern>
<that>Te gusta programar en AIML</that>
<template>Que mal :(</template>
</category>
<topic>
Para almacenar un contexto y posteriormente usarlo en la conversacin.

Para definir un tema (topic) se utiliza la etiqueta <set>

Sintaxis:

<template><set name="topic-name">topic</set></template>

<topic name="topic-name">
<category>
...
</category>
</topic>

Conversacin de ejemplo:

Human: Hablemos sobre peliculas


Robot: Si, peliculas :D
Human: Las peliculas de comedia son buenas para ver
Robot: Mirar buenas peliculas refrescan nuestra mente
Human: Me gustan las de comedia
Robot: A mi tambien :)

AIML:

<category>
<pattern>HABLEMOS SOBRE PELICULAS</pattern>
<template>Si, <set name="topic">peliculas</set> :D</template>
</category>

<topic name="peliculas">
<category>
<pattern> * </pattern>
<template>Mirar buenas peliculas refrescan nuestra mente</template>
</category>

<category>
<pattern>Me gustan las de comedia</pattern>
<template>A mi tambien :)</template>
</category>
</topic>
<think>
Utilizada para almacenar variables sin notificar al usuario.

Sintaxis:

<think> <set name="variable-name"> variable-value </set></think>

Conversacin de ejemplo:

Human: Mi nombre es Josu


Robot: Hola!
Human: Adios
Robot: Adios Josu, gracias por la conversacin

AIML:

<category>
<pattern>Mi nombre es *</pattern>
<template>
Hola!<think><set name="nombre"><star /></set></think>
</template>
</category>

<category>
<pattern>Adios</pattern>
<template>
Adios <get name="nombre"/>, gracias por la conversacin
</template>
</category>
<condition>
Similar a switch en otros lenguajes de programacin.

Sintaxis:

<condition name="variable-name" value="variable-value"/>

Conversacin de ejemplo:

Human: Como te sientes hoy?


Robot: Estoy feliz!

AIML:

<category>
<pattern>COMO TE SIENTES HOY</pattern>
<template>
<think><set name="estado">feliz</set></think>
<condition name="estado" value="feliz">
Estoy feliz!
</condition>
<condition name="state" value="triste">
Estoy triste!
</condition>
</template>
</category>

Você também pode gostar