sexta-feira, 22 de outubro de 2010

AIML

Aiml, que  significa Artificial Intelligence Markup Language, é uma linguagem especializada na área de inteligência artificial no padrão XML.
Muito utilizada para simular um conversa entre um agente computacional e um ser humano, conhecido como chatterbots (robôs de conversação).
A criação de um arquivo AIML é feita através de tags. O exemplo abaixo mostra as principais tags de um arquivo AIML.

<?xml version="1.0" encoding="ISO-8859-1"?>
    <aiml>
        <category>
            <pattern>
                Você é um robô?
            </pattern>
            <template>
                Sim, e você?
            </template>
        </category>
    </aiml>

<?xml version="1.0" encoding="ISO-8859-1"?>:  A primeira linha é o cabeçalho do arquivo indicando a versão do xml.

<aiml></aiml>:  Marca o início e fim do arquivo.

<category></category>: Unidade de conhecimento, um arquivo aiml geralmente contém várias tags <catagory>. Essa Tag é composta mais duas tags a <pattern> e <template>.

<pattern></pattern>: A pergunta o usuário. Identifica o que o usuário pode perguntar.

<template></template>: A resposta do bot.

Cada <category> tem um <pattern> contendo o que o usuário pergunta e um <template> com a resposta a ser mostrada para o usuário. Sendo assim simulando uma conversa seria da seguinte forma:

Usuário: Você é um robô?
Bot: Sim, e você?

Mas e se o usuário responder  “Não”? Esse tipo de resposta pode ser para tantas perguntas!!! Para isso existe no AIML uma outra tag para ligar uma pergunta anterior a uma nova resposta.
A tag é <that> amplamente utiliza na criação dos aiml, é uma forma de dar continuidade a um assunto, na conversa com o chatterbot.

Continuando a construção do nosso arquivo, segue abaixo um exemplo do uso da tag <that>:

<?xml version="1.0" encoding="ISO-8859-1"?>
    <aiml>
        <category>
            <pattern>
                Você é um robô?
            </pattern>
            <template>
                Sim, e você?
            </template>
        </category>
     
        <category>
            <pattern>
                Não
            </pattern>
            <that>
    Sim, e você?
            </that>
            <template>
                O que você é?
            </template>
        </category>

    </aiml>

<that></that> : Identifica a última resposta do robô para dar continuidade a conversa.

Nesse caso se o usúario responder  “Não” e a última mensagem do robô for “Sim, e você?” ele responderá “O que você é”. Sendo assim nossa conversa ficará da seguinte forma:

Usuário: Você é um robô?
Bot: Sim, e você?
Usuário: Não
Bot: O que você é?

Links de chatterbots:

Nenhum comentário:

Postar um comentário