Anda di halaman 1dari 8

CDD: 006.

35

UM EXEMPLO DE USO DO PADRO XML NA DEFINIO DE UMA LINGUAGEM ESPECIALIZADA PARA A INTELIGNCIA ARTIFICIAL

AN EXAMPLE OF THE USE OF THE XML STANDARD IN THE DEFINITION OF A SPECIALIZED LANGUAGE FOR ARTIFICIAL INTELLIGENCE
Ewerton Jos Wantroba, Juliano Ratusznei, Luclia de Souza, Sandra Mara Guse Scs Venske
Departamento de Cincia da Computao - Universidade Estadual do Centro-Oeste UNICENTRO, Caixa Postal 3010, CEP 85015-430, Guarapuava-PR, Brasil; e-mails: ewerton.irati, julianojules, luceliadsz, sandravenske@gmail.com Recebido para publicao em 19/07/2008 Aceito para publicao em 10/10/2008

RESUMO
O artigo descreve um exemplo de uso do padro XML na denio de uma linguagem especializada para a Inteligncia Articial, a AIML, Articial Intelligence Markup Language. Tambm relata um estudo de caso envolvendo o desenvolvimento de um prottipo de um agente conversacional em linguagem natural, com o objetivo de atuar como um sistema de ajuda durante a interao de usurios em sistemas colaborativos. Palavras-chave: Chatterbot. AIML. Processamento linguagem natural. Editores AIML. Interpretadores AIML.

ABSTRACT This article describes an example in the use of standards XML in the denition of a language specialized for Articial Intelligence Markup Language. Also described by a study envolving the development of a prototype of a conversation agent in natural language with the objective to act like a system to help during the interaction of users in collaborated systems. Keywords: chatterbot, AIML. Processing of natural language. AIML editors. AIML interpreters.

Publ. UEPG Ci. Exatas Terra, Ci. Agr. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

200
1 Introduo
A necessidade de interao usurio-sistema por meio da comunicao em linguagem natural usando interfaces computacionais vem crescendo como alvo de pesquisas (TORRES, 2004); (LEONHARDT, 2005); (NETO, 2006); (DA SILVA, 2007); (PRIMO et al, 2008); (CONPET, 2008). Nesse contexto, a forma como as informaes esto estruturadas torna-se essencial uncia natural de uma conversa, assim como para o acesso gil s categorias de informaes que necessitam ser criadas. Atualmente o desenvolvimento da Inteligncia Articial (IA) permite a criao de bots de conversao, conhecidos como chatbots ou chatterbots (chat = conversa, bot = rob), os quais so programas de computador que usam tcnicas de IA, com o propsito de simular a habilidade de conversao de um agente computacional com um ser humano (WALLACE, 2005). Os bots so baseados em rotinas de estmuloresposta, ou seja, quando o usurio pergunta, ele responde com base nos termos utilizados durante a conversao. Estes programas so utilizados em ambientes onde a interao em linguagem natural facilita a comunicao usurio-sistema. As aplicaes envolvendo bots incluem: educao distncia, como o chatterbot Jnior, que voltado para o ensino de crianas e adolescentes e apresentando uma linguagem e interface voltada para este pblico (PRIMO et al, 2008); turismo, como o chatterbot Balbinus, cuja funo fornecer informaes e responder perguntas sobre o litoral alagoano (DA SILVA, 2007); bibliotecas digitais, por exemplo o chatterbot, que utilizado para o servio de referncia digital de uma biblioteca, mais precisamente a Biblioteca da Procuradoria Regional do Trabalho da 13 Regio (NETO, 2006); entretenimento, como o chatterbot, cujo objetivo informar detalhes de um ambiente virtual, no qual a interao ocorre por meio de comandos de texto (TORRES, 2004); meio ambiente, como o chatterbot Ed, que conversa sobre a preservao de energia e de outros recursos naturais (CONPET, 2008). Outros exemplos de bots envolvem conversas sobre um tema especco, como o chatterbot utilizado para fornecer informaes sobre o estado atual de uma rede de computadores para o treinamento de prossionais (LEONHARDT, 2005). Tambm podem atuar fazendo propagandas, como o caso do bot Sete Zoom da marca Close Up (SETE ZOOM, 2008), e at mesmo podem falar sobre horscopo (DA SILVA, 2002). Como caracterstica, um chatterbot pode inclusive apresentar personalidade, como o caso do Vitor-P, que pode interromper um dilogo, caso algum o aborrea em uma conversao (CANUTO, 2005). Existem na literatura trs geraes de bots que utilizam diferentes tcnicas quanto implementao. A primeira gerao representada pelo software Eliza (anos 60), que foi utilizado por psiclogos para auxiliar no diagnstico de seus pacientes. Sua implementao consistiu do uso de casamento de padres e regras gramaticais (CANUTO, 2005). A segunda gerao de bots marcada pelo chatterbot Jlia, projetado utilizando redes neurais (tambm chamadas redes conversacionais), apresentando um sistema que simula o raciocnio do crebro humano para estabelecer um dilogo mais prximo da linguagem natural (TORRES, 2004). O bot Alice marca a terceira gerao, com um dilogo mais estimulante que seus antecessores, utilizando a linguagem AIML (Articial Intelligence Markup Language, Linguagem de Marcao da Inteligncia Articial), derivada da XML (eXtensible Markup Language, Linguagem de Marcao Extensvel) (TITTEL, 2008). A escolha da sintaxe XML permite integrao com ferramentas j existentes para este m, tais como editores XML. Como forma de investigar como as aplicaes utilizam a linguagem AIML, o presente trabalho apresenta um prottipo de bot, denominado HelpBot, com a inteno de apoiar a interao de usurios em sistemas colaborativos. Nesse sentido, alm da AIML, outras tecnologias tambm so utilizadas para o desenvolvimento do bot, como o Program D (BUSH, 2008), que o programa para edio das categorias AIML, e o GaitoBot (SPRINGWALD, 2008), para interpretao das tags criadas. Este artigo est assim organizado: a segunda seo apresenta a linguagem AIML e suas aplicaes. A terceira seo apresenta as principais ferramentas disponveis para o desenvolvimento (tanto para a edio, mais especificamente sobre o GaitoBot,

Publ. UEPG Exact Earth Sci., Agr. Sci. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

201
quanto para as ferramentas para interpretao, como o Program D). Na quarta seo, o prottipo desenvolvido apresentado. Finalmente na ltima seo, so apresentadas algumas concluses e propostas de trabalhos futuros. padres <pattern>, que armazenam a entrada que um humano digitar em uma conversa com o bot. A tag <template> armazena a resposta para a entrada, ou seja, registra o que o bot responderia, caso lhe fosse feita essa pergunta. Uma das tags mais utilizadas no desenvolvimento de um bot tag <that>, cuja nalidade dar continuidade conversao. Por exemplo, considerando o Quadro 1 em sua base, o bot, alm de responder a pergunta, pode fazer outra pergunta para a pessoa com quem est conversando, como E voc, como vai?, e, quando a mesma responder, por exemplo, Eu vou bem, deve-se prever como o bot ir se comportar, j que ele s consegue entender apenas uma frase por vez. Sabendo que o bot armazena a ltima sentena respondida em uma varivel chamada topic, a tag <that> consulta essa varivel e compara com o que est contido na tag, conforme o Quadro 2, supondo que o bot j possui a categoria do Quadro 1 na sua base de conhecimento.

2 AIML: conceitos principais

Existem vrias tags AIML cuja finalidade permitir que a conversa com o bot seja a mais prxima de uma conversa real, fazendo com que o humano que est interagindo tenha a impresso de estar conversando com outra pessoa. Alan Turing (TURING, 1936) props o que cou conhecido Teste de Turing, cujo objetivo foi vericar se uma pessoa seria capaz de dizer se as respostas s suas perguntas esto sendo dadas por programa computacional ou por um ser humano. Um arquivo AIML possui o formato segundo o Quadro 1. Os principais A conversa ficaria assim: elementos da AIML segundo <category> <pattern> humano> Como vai voc? EU VOU BEM Wallace (2005) so: </pattern> <aiml>: enderea o bot> Eu vou bem, obrigado. E <that> voc, como vai? Eu vou bem, obrigado. E voc, incio e m do documento. como vai? humano> Eu vou bem. </that> <category>: d e n o t a <template> uma unidade na base de cobot> Que bom que voc tambm Que bom que voc tambm est est bem. bem. nhecimento. </template> <pattern>: armazena </category> o que um usurio pode dizer Quadro 2 - Exemplo de uso da tag <that>. ou escrever para o bot (destacado no Quadro 1 em letras maisculas). <template>: contm a resposta para uma Outros aspectos que se percebem durante uma entrada do usurio (destacado no Quadro 1 em letras conversa so as muitas maneiras da mesma pergunta minsculas). ser formulada. Por exemplo, a pergunta Como vai voc? j foi denida no Quadro 1. No sentido da <?xml version="1.0" encoding="ISO-8859-1"?> <aiml version="1.0.1"> mesma resposta ser utilizada para a pergunta em <category> formatos diferentes (Como voc est?), seria neces<pattern> COMO VAI VOCE srio responder novamente algo que j foi denido. </pattern> <template> Para resolver este problema, utiliza-se a tag Eu vou bem, obrigado. E voc, como vai? <srai> , que evita a redundncia de informaes, </template> </category> sendo responsvel por redirecionar a resposta de uma </aiml> determinada questo categoria que a respondeu Quadro 1 - Exemplo de uso da linguagem AIML. (Quadro 3). O arquivo inicia com um cabealho que indica as verses XML e AIML e dividido em tags ou categorias <category>, em que cada categoria possui
Publ. UEPG Ci. Exatas Terra, Ci. Agr. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

202
<category> <pattern> COMO VOCE EST </pattern> <template> <srai> COMO VAI VOCE </srai> </template> </category>

Quadro 3 - Exemplo de uso da tag <srai>.

A criao de arquivos AIML por bot-masters (pessoas que gerenciam bots), em editores textuais puros, diculta a incluso e o gerenciamento das inmeras tags necessrias para o andamento de uma conversa que exige um conhecimento razovel. Para realizao desta tarefa, existem editores grcos especcos para AIML, entretanto, dentre os pesquisados, destaca-se o editor GaitoBot (SPRINGWALD, 2008), conforme descrito na prxima seo.

A AIML prov a substituio de qualquer cadeia de caracteres fazendo uso do smbolo asterisco (*), que, para alguns interpretadores, pode ser substitudo pela tag <star> (Quadro 4).

3 Ferramentas para o desenvolvimento do prottipo


Esta seo dividese na apresentao de alguns editores AIML, seguida da descrio de alguns programas interpretadores.

<category> <pattern> EU ME CHAMO * </pattern> <template> Prazer em conhec-lo *! <!-- onde * substitui o nome da pessoa --> </template> </category>

Quadro 4 - Exemplo de uso do asterisco * .

Caso seja necessrio armazenar o nome do usurio para uso futuro na conversa, a linguagem AIML permite a criao de variveis utilizando as tags <set> (para armazenar ou alterar o valor de uma varivel) e <get> (para ler o valor de uma varivel). Essa operao deve ser transparente ao usurio. Para tanto, a tag <think> responsvel por realizar as operaes internas do bot (Quadro 5).
<category> <pattern> EU ME CHAMO * </pattern> <template> <think> <set="nome">*</set> </think> Muito prazer <get="nome">. </template> </category>

Quadro 5 - Exemplo de uso das tags <set> e <get>.

3.1 Editores AIML Para o gerenciamento de categorias do bot, alguns editores podem ser citados: AutoAIML (http:// aiml.harrybailey.com/beta/); MakeAIML (http:// makeaiml.aihub.org/); TSL AIML Parser/Chatbot editor (http://www.nabble.com/TSL-AIML-ParserChatbot-editor-to3733275.html); CHAT4D (http:// www.toolbox.free.fr/cariboost2/crbst_3.html); GaitoBot (http://www. A conversa ficaria assim: gaitobot.de/). pessoa > Eu me chamo Pedro Dentre as ferramentas supra-citadas, bot > Muito prazer Pedro. para o desenvolvimento deste projeto, foi utilizado o editor GaitoBot, dada a documentao escassa disponvel referente aos outros editores.

A tag <random> busca uma expresso aleatria dentre as especicadas para responder ao usurio, conforme o Quadro 6.

<category> <pattern>

COMO VAI VOCE </pattern> <template> <random> <li>Eu vou bem, obrigado.</li> <li>Hoje no estou muito bem.</li> <li>Tenho estado bem ultimamente.</li> <li>Tudo certo comigo.</li> </random> Quadro 6 - Exemplo de uso da tag </template> <random>. </category>

Publ. UEPG Exact Earth Sci., Agr. Sci. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

203
O GaitoBot foi desenvolvido pela Springwald Software e, apesar de ser um editor comercial, disponibiliza uma primeira verso beta pblica (freeware), que permite criar as tags AIML em uma interface grca amigvel, armazenando as tags de forma organizada, conforme a Figura 1. baseado na plataforma .NET da Microsoft e disponibilizado para testes em Windows 2000 e XP (SPRINGWALD, 2008). Possui seu prprio interpretador AIML, gerando, na verso servidor, arquivos de log de todos os dilogos, o que facilita a depurao no caso de erros. Possui um workow view que permite ter uma viso ampla, at mesmo para grandes projetos. Como desvantagem, o GaitoBot ainda no suporta todas as tags AIML, mas consiste em uma plataforma que est em desenvolvimento (WALLACE, 2005). Program E:, escrito em PHP (Hypertext Preprocessor), utiliza como gerenciador de banco de dados MySQL e apresenta algumas interfaces de chat: HTML (HyperText Markup Language, Linguagem de Marcao de Hipertexto), Flash e XML-R (XML Reader) (http://sourceforge.net/projects/programe/); o Program R:, implementado com base no trabalho do Dr Wallace (WALLACE, 2005) e escrito na linguagem Ruby (http://aiml-programr.rubyforge.org/); o Program P: caracteriza-se como um interpretador AIML free, escrito em Delphi (http://www.sweb.cz/ alicebot/introduction.html). Dentre as ferramentas pesquisadas, para o desenvolvimento deste projeto, foi utilizado o interpretador Program D, que atualmente encontra-se na verso 4.6, caracterizando-se como o interpretador recomendado para o trabalho com AIML, pois preserva funcionali-dades, relata um nmero considervel de bugs, trazendo melhorias em sua arquitetura. Utiliza a extenso de servidor da aplicao web .war e pode interagir com um cliente web usando tecnologias Ajax. Muitas otimizaes tm aumentado o nmero de bots que o Program D pode tratar, aumentando taxas de respostas e reduzindo o uso da memria. Para bots que compartilham arquivos AIML, o Program D ainda pode detectar isto, alm de usar um atalho para adicionar rapidamente uma associao com arquivos AIML para o novo bot, sem necessitar fazer uma entrada de re-parsing no arquivo AIML. A interface shell apresenta novos comandos: /memory, que fornece estatsticas de uso da memria e /category, que mostra o nmero de categorias adicionadas.

Figura 1 - Tela inicial do editor AIML GaitoBot.

3.2 Interpretadores AIML Dentre os vrios interpretadores AIML existentes, algumas ferramentas podem ser citadas: o

Publ. UEPG Ci. Exatas Terra, Ci. Agr. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

204
Portanto, para o desenvolvimento do bot foram utilizados, alm da AIML, o editor de tags GaitoBot e o interpretador Program D, por considerar estes os mais viveis atualmente para uso em conjunto, levando em considerao a documentao disponvel. guage) (http://www.vhml.org/), tambm derivada da XML, que uma linguagem para tratar os vrios aspectos da Interao Humano-Computador, considerando animao facial e corporal, produo de texto em fala, representao emocional, entre outras. A especicao at o momento contempla o arquivo saudaes.aiml do bot (Figura 3) e outros que se relacionam com a execuo de tarefas em sistemas colaborativos (a serem ampliadas). Para especicao das categorias de saudaes.aiml , foram utilizadas variveis para aprimoramento da conversa, tornando-a mais personalizada. Por exemplo, em uma saudao em que o bot responde Boa noite [nome-usurio], a varivel nome-usurio armazena o nome de quem est conversando.

4 Prottipo do HelpBot

Aps levantamento bibliogrco, observou-se a diculdade de se disponibilizar atualmente um bot que no faa uso da linguagem AIML, visto que o trabalho despendido para a estruturao da conversa, alm de demandar muito tempo, montono. Dessa forma, o objetivo do presente projeto a especicao e o desenvolvimento de um prottipo de um bot conversacional, utilizando linguagem natural por meio da criao/traduo de determinadas categorias AIML. Deniu-se como foco de atuao sistemas de ajuda, visto que at o momento no foram encontrados relatos de uso de bots para esse m. Considerando o contexto de sistemas colaborativos web , apesar da Figura 2 - Tela do prottipo do HelpBot em desenvolvimento com o Program-D. demanda de utilizao, muitos usurios podem ser apoiados por um bot conversacional que os direcionem para uma correta interao a m de realizarem suas tarefas. Um exemplo que pode ser citado so as ferramentas de e-group, em que usurios com conhecimento bsico em Informtica podem no usufruir de todas as suas funcionalidades. Assim, o usurio poderia solicitar ajuda on-line ao bot, que o instruiria passo a passo Figura 3 - Uma categoria do arquivo Saudaes do HelpBot, visualizada no editor. sobre como completar a tarefa. Outra situao quando o bot responde Boa A Figura 2 apresenta o prottipo do HelpBot noite, tratando o caso de ser no incio da conversa (Chatterbot de Ajuda) em desenvolvimento, visto ou no nal, por meio da criao de uma varivel que, para a criao de sua interface, ser estudado utilizada dentro de uma categoria acessada com a a linguagem VHML (Virtual Human Markup Lantag <condition> no incio da conversa.
Publ. UEPG Exact Earth Sci., Agr. Sci. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

205
A Figura 3 apresenta parte do conhecimento do prottipo HelpBot, mais precisamente uma categoria de saudao editada no GaitoBot. Aps cada saudao, o bot toma a iniciativa de perguntar qual a dvida do usurio atravs da tag <srai>AJUDA</ srai>, que redireciona categoria AJUDA, que, por sua vez, contm vrias formas de se fazer essa pergunta atravs de uma tag <random>. Faz-se uma outra observao quanto ao entendimento de algumas tags, como <that> e <condition>, que apresentam variaes na especicao entre editor e interpretador AIML. A seguir sero apresentadas algumas concluses referentes ao trabalho e propostas de trabalhos futuros.

A literatura escassa a respeito da criao de novas tags, como, por exemplo, para a criao de links web a serem disponibilizados pelo bot durante a conversao. A existncia de diferena nos testes da especicao de uma categoria entre a execuo com o editor e o interpretador AIML. A necessidade da incluso e/ou traduo de um nmero excessivo de categorias (AliceBot tem aproximadamente 41.000 categorias) na base de conhecimento do bot para tratar a linguagem natural.

5 Concluses
O trabalho objetivou demonstrar um exemplo de uso do padro XML na denio da linguagem AIML, por meio da especicao de um prottipo de um bot, com a inteno de atuar como sistema de ajuda durante a interao de usurios em sistemas colaborativos. Dentre as ferramentas de edio e interpretao citadas para o desenvolvimento, deniu-se o GaitoBot devido s caractersticas de interface grca e amigvel, agilidade no gerenciamento das tags e execuo de testes. Por outro lado, vericou-se que, se um interpretador aceitar tags extra no-padro, isto somente serve para o incentivo da criao de tags no portveis em AIML, o que no acontece com o Program D, escolhido neste projeto. Outro ponto considerado tambm foi a diculdade de instalao, congurao de verses e compatibilidade entre editor-interpretador, que foi bastante facilitada pela escolha do Program D. Dentre as diculdades encontradas na especicao e desenvolvimento das categorias AIML, destacam-se:

A relao entre editor e interpretador AIML. Muitas vezes, o teste de conversao acontece no editor GaitoBot, mas no executado pelo interpretador Program D. Um exemplo a tag <img>, tratada pelo editor, mas no presente no interpretador Program D. Dentre as vantagens de uso da linguagem AIML, cita-se que uma linguagem eciente para a criao de bots, fato que se justica pela utilizao no desenvolvimento da maioria dos bots atuais. Como trabalhos futuros, pretende-se aumentar o conhecimento do bot por meio da continuidade da especicao das tags e desenvolver uma interface grca para controlar a animao facial e corporal do bot. Para tanto, pretende-se fazer um estudo de viabilidade de utilizao da linguagem VHML (Virtual Human Markup Language) (VHML, 2008).

Agradecimentos Os autores agradecem bolsa institucional BIC/UNICENTRO. REFERNCIAS


BUSH, N. Program D. Disponvel em: <http://aitools.org/ Program_D_Release_Notes# What.27s_New>. Acesso em: maio 2008. CANUTO, E. P. Victor-P: um CVA-chatterbot com personalidade. Trabalho de Graduao. Or.: Flvia de A. B. Universidade Federal de Pernambuco, 2005. Disponvel em: <www. cin.ufpe.br/~tg/2005-1/epc.doc>. Acesso em: jun. 2008. CONPET Petrobrs. Bot Ed. Disponvel em: <http://www. inbot.com.br/ed/>. Acesso em: jun. 2008.

Apesar das vantagens proporcionadas pelo uso da AIML, o processamento em linguagem natural ainda uma tarefa complexa, dada a ocorrncia frequente de ambiguidades na gramtica nativa.

Publ. UEPG Ci. Exatas Terra, Ci. Agr. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

206
DA SILVA, A. B. Um chatterbot em AIML plus que conversa sobre horscopo. Trabalho de Graduao, 2002. Or. prof Flvia Almeida Barros. Universidade Federal de Pernambuco. DA SILVA, A.; COSTA, E. Barros. Um chatterbot aplicado ao turismo: um estudo de caso no litoral alagoano e na cidade de Macei. Escola Regional de Informtica, ERI-PR, 14. Guarapuava, 2007. Disponvel em: <http://www.sbc.org. br/ bibliotecadigital/download.php?paper=698>. Acesso em: maio 2008. LEONHARDT, M. D. DOROTY: um chatterbot para treinamento de prossionais atuantes no gerenciamento de redes de computadores. Dissertao de Mestrado. Porto Alegre: PPGC da UFRGS, 2005. Acesso em: abr. 2008. NETO, G. H. N. Chatbots no servio de referncia online: uma ferramenta para a gesto da biblioteca da PRT 13 Regio. Monograa. Curso de Especializao em Gesto de Unidades de Informao do Centro de Cincias Sociais Aplicadas. Or. Dr. Guilherme A. Dias. Universidade Federal da Paraba, 2006. Disponvel em: <http://eprints.rclis.org/ archive/00008853/01/mono_gustavo_corrigida.pdf>. Acesso em jun. 2008. PRIMO et al. Jnior, um chatterbot para educao a distncia. Simpsio Internacional de Informtica Educativa, 10. RIBIe, 2008. Disponvel em: <http://lsm.dei.uc.pt/ribie/ docles/txt200372912710J%C3%BAnior.pdf>. Acesso em: maio 2008. SETE ZOOM. Sete zoom bot. Disponvel em: <http://www. inbot.com.br/sete/>. Acesso em mar/2008. SPRINGWALD Software. Gaito bot. Disponvel em: <http:// www.gaito.de>. Acesso em: maio 2008. TITTEL, Ed. Teoria e problemas de XML. Porto Alegre: Bookman Coleo Schaum, 2003. TORRES, D. G. Um chatterbot em XBotML para MUDs. Trabalho de graduao. Or. Flvia A. Barros, 2004. Disponvel em: <www.cin.ufpe.br/~dgt/TG/dissertacaoTG_DGT_nal.doc>. Acesso em: jul. 2008. TURING, A. On computable numbers, with an application to the entscheidungsproblem, Proceedings of the London Mathematical Society, Series 2, Volume 42, 1936. VHML. Virtual human markup language. Disponvel em: <www.vhml.org/>. Acesso em: jul. 2008. WALLACE, R. Alice: articial intelligence foundation. Disponvel em: <http://www.pandorabots.com/pandora/ talk?botid=f5d922d97e345aa1>. Acesso em: fev. 2008.

Publ. UEPG Exact Earth Sci., Agr. Sci. Eng., Ponta Grossa, 14 (3): 199-206, dez. 2008

Anda mungkin juga menyukai