programacao baseado em agente

33
 See discussions, stats, and author profiles for this publication at: http://www.researchgate.net/publication/220162238 Linguagens de Programação Orientadas a Agentes: Uma Introdução Baseada em AgentSpeak(L).  ARTICLE · JANUARY 2003 Source: DBLP CITATIONS 3 DOWNLOADS 648 VIEWS 108 2 AUTHORS: Rafael H. Bordini Pontifícia Universidade Católica do Rio Gra… 162 PUBLICATIONS 2,421 CITATIONS SEE PROFILE Renata Vieira Pontifícia Universidade Católica do Rio Gra… 151 PUBLICATIONS 1,166 CITATIONS SEE PROFILE Available from: Rafael H. Bordini Retrieved on: 09 July 2015

Upload: halamassimon

Post on 04-Nov-2015

217 views

Category:

Documents


0 download

DESCRIPTION

Programação de Sistemas Inteligentes.

TRANSCRIPT

  • Seediscussions,stats,andauthorprofilesforthispublicationat:http://www.researchgate.net/publication/220162238

    LinguagensdeProgramaoOrientadasaAgentes:UmaIntroduoBaseadaemAgentSpeak(L).ARTICLEJANUARY2003Source:DBLP

    CITATIONS3

    DOWNLOADS648

    VIEWS108

    2AUTHORS:

    RafaelH.BordiniPontifciaUniversidadeCatlicadoRioGra162PUBLICATIONS2,421CITATIONS

    SEEPROFILE

    RenataVieiraPontifciaUniversidadeCatlicadoRioGra151PUBLICATIONS1,166CITATIONS

    SEEPROFILE

    Availablefrom:RafaelH.BordiniRetrievedon:09July2015

  • Linguagens de Programao Orientadas a Agentes:uma introduo baseada em AgentSpeak(L)

    Rafael H. Bordini 1 2Renata Vieira 3

    Resumo: Este artigo apresenta uma introduo ao paradigma de programao ori-entada a agentes com base em uma linguagem particular chamada AgentSpeak(L).Exemplos de agentes programados nessa linguagem so fornecidos para facilitar acompreenso da linguagem. Conceitos bsicos de sistemas multiagente e agentesinteligentes so dados de forma a fornecer ao leitor um material auto-contido. Oartigo apresenta ainda um apanhado geral dos diversos trabalhos de pesquisa sobreAgentSpeak(L) que esto em desenvolvimento, bem como referncias a diversas ou-tras linguagens de programao orientadas a agentes.Palavras-chave: Programao Orientada a Agents, Agentes Cognitivos, Arquite-tura BDI, AgentSpeak(L).

    Abstract: This paper presents an introduction to the paradigm of agent-orientedprogramming based on a particular language called AgentSpeak(L). Examples ofagents programmed in that language are given in order to facilitate the understandingof the language. Basic concepts on multi-agent systems and intelligent agents aregiven so as to provide the reader with a self-contained material. The paper also pre-sents an overview of the various research projects on AgentSpeak(L) currently underdevelopment, and it points to several other agent-oriented programming languages.Keywords: Agent-Oriented Programming, Cognitive Agents, BDI Architecture,AgentSpeak(L).

    1 Introduo

    A idia de Linguagens de Programao Orientadas a Agentes teve seu incio marcadopelo importante artigo de Yoav Shoham, intitulado Agent-Oriented Programming, que foipublicado em 1993 [55]. A proposta deste novo paradigma de programao foi inspiradana viso social de computao, discutida em profundidade pela comunidade de Intelign-cia Artificial Distribuda, e Sistemas Multiagente (SMA) em particular [65, 62]. O trabalho1Department of Computer Science, University of Liverpool, United Kingdom{[email protected]}2Programa de Ps-Graduao em Cincia da Computao, UFRGS, Brasil{[email protected]}3Programa Interdisciplinar de Ps-Graduao em Computao Aplicada, UNISINOS, Brasil{[email protected]}

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    na rea de SMA, em particular a arquitetura BDI (Beliefs-Desires-Intentions, ou crenas-desejos-intenes), introduzida na seo 2, a base da proposta de Shoham. Sua propostadefende que da mesma forma que noes mentalsticas (tais como crenas, desejos e inten-es) auxiliam o nosso raciocnio quotidiano sobre as atividades dos seres humanos, umacerta antropomorfizao da maneira como os programadores descrevem componentes (cha-mados agentes) de um sistema computacional deve, em princpio, facilitar a concepode sistemas complexos. De forma geral, os SMA tm como um de seus objetivos a con-cepo de sistemas complexos, naturalmente distribudos, situados em ambientes dinmicos,imprevisveis e parcialmente observveis. As vantagens desta forma de se conceber siste-mas computacionais discutida, por exemplo, em [68]; uma discusso mais especfica sobrelinguagens de programao orientadas a agentes pode ser encontrada em [43].

    A antropomorfizao da concepo de sistemas computacionais proposta pela reade SMA no para no nvel de um agente individual dentro do sistema, atribuindo-se noesmentalsticas a estes. No nvel social (i.e, do conjunto de agentes), as analogias continuam,de forma que noes de sociedades humanas como papis, grupos, organizaes, e assimpor diante [34] tambm devem ser utilizadas no projeto de sistemas computacionais. Istosugere a necessidade de uma completa reformulao do processo de engenharia de software,e no somente das linguagens de programao a serem utilizadas. Com isto, muitos traba-lhos acadmicos tem recentemente se concentrado no que se chama engenharia de softwareorientada a agentes4. Este artigo no abrange esse contexto, concentrando-se especifica-mente em linguagens de programao orientadas a agentes. No entanto, vale mencionar quea proposta mais conhecida para engenharia de software orientada a agentes a apresentadaem [67].

    Este artigo ir apresentar, em particular, a linguagem AgentSpeak(L), proposta ini-cialmente por [48] e posteriormente desenvolvida numa srie de trabalhos (mencionados naSeo 5.1). Essa linguagem inspirada na arquitetura BDI, e os conceitos utilizados nalinguagem so bastante fiis aos elementos dessa arquitetura, bem como s idias da teoriafilosfica que a embasam. A sintaxe da linguagem bastante elegante, consistindo de uma ex-tenso do paradigma de programao em lgica5 atravs uma notao muito clara. A lingua-gem AgentSpeak(L) usada aqui para introduzir conceitos que so utilizados, com algumasvariaes, na maioria das linguagens de programao orientadas a agentes. Ao apresentaruma linguagem particular em detalhes, possvel mostrar exemplos de programas utilizandoessa linguagem. Este artigo apresenta dois exemplos de programas AgentSpeak(L); os exem-plos so simples, servindo apenas para facilitar a compreenso das construes bsicas dalinguagem.

    4Existe uma srie de workshops com esse tema, cuja pgina web .5Este texto assume uma certa familiaridade do leitor com linguagens de programao em lgica, como Prolog porexemplo.

    8 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    Este texto est organizado da seguinte maneira. A prxima seo introduz alguns con-ceitos bsicos sobre agentes BDI, o tipo de agente cognitivo para o qual voltada a linguagemAgentSpeak(L), apresentada na Seo 3. A Seo 4 mostra dois exemplos de programas emAgentSpeak(L), com o objetivo de facilitar a compreenso dos componentes bsicos da lin-guagem. Antes de uma breve concluso, a Seo 5 sumariza vrios trabalhos recentes sobrea linguagem AgentSpeak(L), bem como fornece referncias para diversas outras linguagensde programao orientadas a agentes.

    2 Agentes BDI

    A linguagem AgentSpeak(L) foi projetada para a programao de agentes BDI. Estaseo introduz os conceitos bsicos da rea de agentes e sistemas multiagente e depoisconcentra-se em agentes BDI, provendo o conhecimento bsico da rea para a compreen-so de algumas noes da linguagem AgentSpeak(L). Uma verso bem mais detalhada destaintroduo pode ser encontrada em [11].

    2.1 Conceitos Bsicos

    A rea de sistemas multiagente ocupa-se da construo de sistemas computacionaisa partir da criao de entidades de software autnomas, denominadas agentes. Os agentesinteragem atravs de um ambiente compartilhado por outros agentes de uma sociedade, eatuam sobre esse ambiente, alterando seu estado.

    Como cada agente possui um conjunto limitado de capacidades especficas e objetivosprprios em relao aos estados do ambiente que quer atingir, mecanismos para a interaoe coordenao dessas entidades so necessrios, pois, em geral, os agentes no conseguematingir todos seus objetivos isoladamente. Por exemplo, atingir um acordo, para que doisou mais agentes cooperem na resoluo de um problema comum entre eles, uma forma decoordenar as atividades para atingir o objetivo comum da forma mais eficaz possvel. Dessaforma, possvel para os projetistas de sistemas computacionais a criao de sistemas com-plexos de forma naturalmente distribuda e bottom-up. Contudo, criar mecanismos genricospara a coordenao de tais agentes para que o sistema como um todo (em geral chamado deuma sociedade de agentes) funcione de forma adequada e eficiente um dos grandes desafiosda rea. Outro grande desafio a especificao interna de um agente, em que tipicamentese deseja uma representao simblica daquilo que o agente sabe sobre o ambiente (e sobreos outros agentes naquele ambiente), bem como daquilo que o agente pretende atingir (suamotivao).

    Existem dois grandes tipos de SMA: os reativos [23] e os cognitivos (como os quesero abordados ao longo deste texto). SMA reativos seguem a idia de que um comporta-

    RITA Volume 10 Nmero 1 2003 9

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    mento inteligente em um sistema emerge da interao entre um grande nmero de agentesmuito simples; a principal influncia nesse tipo de trabalho vem da entomologia (estudo dosinsetos). Nesses sistemas, os agentes no possuem uma representao explcita do estado doambiente e dos outros agentes, nem da histria de suas aes anteriores; eles tm compor-tamentos que podem ser descritos como autmatos finitos simples, e possuem um conjuntode regras que mapeiam percepes do ambiente diretamente em aes sobre este (os agentesagem sob um esquema estmulo-resposta). J os SMA cognitivos em geral possuem tipica-mente poucos agentes, dado que cada agente um sistema sofisticado e computacionalmentecomplexo.

    Outra diviso bem clara na comunidade de SMA est nos formalismos empregadospelos pesquisadores. De um lado, esto os pesquisadores que utilizam Teoria do Jogos para oprojeto e coordenao de agentes. De outro lado, existem os pesquisadores que usam lgicamatemtica (ou representaes baseadas em lgica) como a base de seus trabalhos. Teoriados Jogos uma rea da matemtica que possui ferramentas para a deciso de qual estratgiaem um jogo abstrato de dois ou mais jogadores a melhor para os jogadores. Essas ferra-mentas so muito usadas em Teoria da Deciso, na rea de Economia, e de l foram trazidaspara o contexto de coordenao de agentes em SMA [54]. Por outro lado, na abordagemde SMA baseada em lgica, utiliza-se, em geral, lgicas modais bastante complexas (veja,por exemplo, [64]) para o projeto e desenvolvimento de agentes. Nessa abordagem a coor-denao pode ser obtida atravs de um mecanismo de raciocnio social. Raciocnio social qualquer raciocnio realizado por um agente a cerca dos outros agentes na sociedade (umtrabalho recente na rea [53]). Os trabalhos sobre raciocnio social normalmente tem comobase o trabalho sobre dependncia social de Castelfranchi [15, 16].

    A pesquisa em SMA essencialmente de natureza multidisciplinar. Cada um destescampos de trabalho em SMA obteve inspirao em uma ou mais disciplinas alm de Cinciada Computao, tais como: psicologia, cincia cognitiva, sociologia, entomologia, econo-mia, teoria das organizaes, teoria dramtica, antropologia (veja [10]), entre outras. Emparticular, a inspirao em sociologia marca a transio de sistemas de inteligncia artificialtradicionais (que so monolticos) para sistemas multiagente. A inspirao deve-se correntefilosfica denominada pragmatismo filosfico que permeia todo o trabalho contemporneodas cincias sociais, e que concebe toda atividade humana, inclusive a cognio, como umaprtica social, ou seja, algo que somente se d em um processo de interao entre indiv-duos [39].

    Se do ponto de vista filosfico a motivao para os SMA a linha do pragmatismofilosfico, de um ponto de vista de engenharia de sistemas, a motivao para os SMA aforma natural para o projeto de grandes sistemas computacionais que resulta das metforasj introduzidas e que permitem analogias diretas com o mundo real e a forma como racioci-namos sobre ele. Assim, sistemas computacionais so vistos como formados de ambientes

    10 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    (em analogia a ambientes fsicos) onde os agentes atuam, havendo possivelmente a presenade objetos6. Nesses ambientes os agentes podem formar grupos, em um nvel mais alto deabstrao formando comunidades ou sociedades de agentes, e assim por diante.

    Do ponto de vista interno do agente tambm se buscam diversas metforas com es-tados mentais, tais como crenas, objetivos, intenes e compromissos. Agentes deliberamsobre que objetivos vo atingir, baseados em suas prprias motivaes, e com base nessesobjetivos e observaes do ambiente decidem que aes tomar, e que requisies feitas poroutros agentes aceitar (essas so algumas das caractersticas que diferenciam agentes de ob-jetos). Um agente de um sistema pode ser programado atravs de mltiplos sub-agentes,assim como agentes formam grupos, grupos formam sociedades e assim por diante. A essapropriedade, Demazeau [19] se refere como o princpio da recursividade em SMA.

    Note que o projeto de um sistema computacional complexo utilizando essas metfo-ras, faz uso de tcnicas automticas de decomposio de tarefas e computao distribuda,permitindo a implementao de forma mais direta e eficiente para aplicaes naturalmentedistribudas (em geral no existe controle centralizado em sistemas multiagente). Outra ca-racterstica de aplicaes para as quais os SMA representam uma alternativa interessante deimplementao so sistemas dinmicos, em que impossvel prever todos os casos que de-vem ser tratados. Nesse aspecto, a caracterstica de autonomia dos agentes fundamental:as pesquisas em SMA procuram mecanismos para que os agentes gerem e persigam seusprprios objetivos, permitindo assim a adaptao a situaes imprevistas.

    Um agente dito autnomo se ele somente realiza tarefas por deciso prpria, combase em uma representao de seus interesses individuais7. Uma classe de sistemas de in-teligncia artificial distribuda muito difundida na dcada de 80 chamada de resoluo deproblemas distribuda cooperativa (cooperative distributed problem solving) partia do princ-pio da benevolncia de agentes: como todos agentes tem um objetivo comum nesses sistemas,sempre que um agente solicita uma tarefa a outro, esse aceita e procura realizar a tarefa damelhor maneira possvel dentro de suas capacidades. Isto no necessariamente verdade emSMA, onde agentes so considerados autnomos e tm interesses prprios.

    Outro aspecto importante de agentes em SMA que os agentes possuem conheci-mento incompleto do seu ambiente e seguem o princpio da racionalidade limitada (boundedrationality); ou seja, os agentes no so necessariamente capazes de perceber tudo o que verdade no estado atual do ambiente (o que para algumas aplicaes essencial), e possuemuma capacidade e tempo de processamento limitado (i.e., no podem ficar raciocinando inde-finidamente sobre o problema at achar a melhor soluo). Esses so aspectos fundamentaisque permitem a utilizao de SMA para implementao de solues para problemas comple-

    6Ao contrrio dos agentes, objetos no so entidades autnomas, nem auto-motivadas.7Essa a noo mais simples de autonomia. O conceito de autonomia possui diversas conotaes diferentes, e muito debatido na literatura da rea.

    RITA Volume 10 Nmero 1 2003 11

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    xos e dinmicos.

    Dada essa breve introduo rea de SMA, apresentamos agora uma definio deagente no contexto deste artigo. A Figura 1 permite a visualizao de aspectos importantesde um agente, apresentando o modelo geral de agente proposto por Wooldridge [63].

    Percepo Ao

    Prximo Estado

    Agente

    Ambiente

    Figura 1. Modelo Geral de Agente (traduzido de [63])

    preciso explicar logo de incio que os pesquisadores da rea no possuem uma de-finio de consenso para o que um agente. Algumas definies ficaram bem conhecidas,como a de Wooldridge e Jennings [66] e a de Franklin [27]. Ao invs de citar essas definiesque so as mais aceitas, preferiu-se aqui mencionar algumas caractersticas que so impor-tantes (do ponto de vista dos autores) para o conceito de agente na concepo de SMA e queesto relacionadas com a linguagem AgentSpeak(L) apresentada a seguir. Note que, comouma rea da inteligncia artificial distribuda, trata-se aqui de sistemas que usam tcnicasde inteligncia artificial. Devido ao sucesso e grande ateno dada a essa rea na segundametade da dcada de 90, o termo agente se difundiu amplamente em diversas reas da Cin-cia da Computao. Nessa perspectiva, criou-se o termo agentes de software [28], em quepraticamente qualquer processo comunicante passa a ser denominado agente.

    So mencionados a seguir alguns aspectos importantes para a compreenso do que um agente no contexto de SMA cognitivos. Um agente, nesta concepo, um sistemacomputacional que capaz de:

    percepo: o agente capaz de perceber alteraes no ambiente (conforme ilustrado naFigura 1);

    12 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    ao: as alteraes no ambiente so provenientes das aes que os agentes realizam cons-tantemente no ambiente; um agente age sempre com o intuito de atingir seus objetivos(motivao), ou seja, com o intuito de transformar o ambiente de seu estado atual emum outro estado desejado pelo agente (veja motivao abaixo);

    comunicao: umas das aes possveis de um agente comunicar-se com outros agentesda sociedade (i.e., que compartilham o mesmo ambiente); como os agentes precisamcoordenar suas aes, a comunicao entre eles essencial8;

    representao: o agente possui uma representao simblica explcita daquilo que acreditaser verdade em relao ao ambiente e aos outros agentes que compartilham aqueleambiente;

    motivao: como em SMA os agentes so (ou podem ser) autnomos, essencial que existano s uma representao do conhecimento do agente, mas tambm uma representaodos desejos ou objetivos (i.e., aspectos motivacionais) daquele agente; em termos pr-ticos, isto significa ter uma representao de estados do ambiente que o agente almejaalcanar; como conseqncia, o agente age sobre o ambiente por iniciativa prpria parasatisfazer esses objetivos;

    deliberao: dada uma motivao e uma representao do estado atual do ambiente em quese encontra o agente, esse tem que ser capaz de decidir, dentre os estados de ambientepossveis de ocorrerem no futuro, quais de fato sero os objetivos a serem seguidos porele;

    raciocnio e aprendizagem: tcnicas de inteligncia artificial clssica para, por exemplo, ra-ciocnio e aprendizagem podem ser estendidas para mltiplos agentes, aumentando sig-nificativamente o desempenho desses, por exemplo no aspecto de deliberao; note quenem sempre se esperam essas caractersticas de raciocnio e aprendizagem de quaisqueragentes; a criao de mecanismos de aprendizagem especficos para ambientes multia-gente uma rea de pesquisa que ainda requer bastante investigao (existem, contudo,vrios trabalhos que aplicam aprendizagem por reforo em SMA [61]).

    A seguir, apresenta-se a arquitetura BDI, um modelo especfico para o desenvolvi-mento de agentes inteligentes que satisfazem os critrios usados na definio acima.

    8A comunicao uma caracterstica essencial em SMA cognitivos baseados em lgica. No enfoque de SMAbaseado em Teoria dos Jogos (mencionado anteriormente), possvel que os agentes prescindam de comunicaopara obter coordenao.

    RITA Volume 10 Nmero 1 2003 13

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    2.2 A Arquitetura BDI

    As mais importantes arquiteturas de agentes deliberativos so baseadas em um mo-delo de cognio fundamentado em trs principais atitudes mentais que so as crenas, osdesejos, e as intenes (abreviadas por BDI, beliefs, desires e intentions). A fundamentaofilosfica para esta concepo de agentes vem do trabalho de Dennett [20] sobre sistemasintencionais e de Bratman [12] sobre raciocnio prtico. A primeira implementao de umsistema baseado nessas idias foi o IRMA (Intelligent Resource-bounded Machine Architec-ture) [13]. Com base nessa experincia, foi criado outro sistema utilizando a arquitetura BDI,chamado PRS (Procedural Reasoning System) [29]; o PRS, por sua vez, tem como sucessorum sistema chamado dMARS [35, 21]. Baseando-se nesses trabalhos, Rao criou a linguagemde programao AgentSpeak(L). Georgeff e Rao foram os principais autores na elaboraode arquiteturas abstratas de agente baseadas no modelo BDI [51, 50], bem como na concep-o de lgicas BDI [52, 49]. Lgicas BDI so lgicas multimodais com um operador modalpara cada uma das atitudes mentais do modelo BDI, alm dos operadores usuais da lgicatemporal de tempo ramificado e da lgica de ao. Para uma apresentao sucinta de umalgica BDI com referncias para as lgicas modais nas quais ela se baseia, bem como para asemntica de mundos possveis normalmente utilizada para elas, veja [56].

    De forma esquemtica, a arquitetura BDI genrica est apresentada na Figura 2, con-forme proposto em [63].

    FRCGera

    Opes

    Ao

    Crenas

    Intenes

    Desejos

    Filtro

    SensorEntrada

    AoSada

    Figura 2. Arquitetura BDI Genrica (adaptado de [63])

    14 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    Resumidamente, esta arquitetura de agente est estruturada da seguinte forma. Ascrenas representam aquilo que o agente sabe sobre o estado do ambiente e dos agentes na-quele ambiente (inclusive sobre si mesmo). Os desejos representam estados do mundo que oagente quer atingir (dito de outra forma, so representaes daquilo que ele quer que passe aser verdadeiro no ambiente). Em tese, desejos podem ser contraditrios, ou seja, pode-se de-sejar coisas que so mutuamente exclusivas do ponto de vista de ao prtica. Normalmentese refere a objetivos como um subconjunto dos desejos que so todos compatveis entre si.As intenes representam seqncias de aes especficas que um agente se compromete aexecutar para atingir determinados objetivos.

    A funo de reviso de crenas (referenciada por FRC na figura) recebe a informa-o sensria (i.e., percebe propriedades do ambiente) e, consultando as crenas anteriores doagente, atualiza essas crenas para que elas reflitam o novo estado do ambiente9. Com essanova representao do estado do ambiente, possvel que novas opes fiquem disponveis(opes de estados a serem atingidos). A funo denominada na figura como Gera Opesverifica quais as novas alternativas de estados a serem atingidos, que so relevantes para osinteresses particulares daquele agente. Isto deve ser feito com base no estado atual do mundo(conforme as crenas do agente) e nas intenes com que o agente j est comprometido. Aatualizao dos objetivos se d, ento, de duas formas: as observaes do ambiente possivel-mente determinam novos objetivos do agente, e a execuo de intenes de mais alto nvelpode gerar a necessidade de que objetivos mais especficos sejam atingidos.

    Uma vez atualizado o conhecimento e a motivao do agente, preciso, em seguida,decidir que curso de aes especfico ser usado para alcanar os objetivos atuais do agente(para isso preciso levar em conta os outros cursos de aes com os quais o agente j secomprometeu, para evitar aes incoerentes, bem como eliminar intenes que j foram atin-gidas ou que se tornaram impossveis de ser atingidas). Esse o papel da funo Filtro, queatualiza o conjunto de intenes do agente, com base nas crenas e desejos atualizados e nasintenes j existentes. Esse processo realizado pela funo Filtro para determinar como atu-alizar o conjunto de intenes do agente normalmente chamado de deliberao10. Com oconjunto de intenes j atualizado, a escolha de qual ao especfica, entre aquelas preten-didas, ser a prxima a ser realizada pelo agente no ambiente feita pela funo Ao. Emcertos casos, em que no necessrio priorizao entre mltiplas intenes, a escolha podeser simples; ou seja, basta escolher qualquer uma entre as intenes ativas, desde que se ga-ranta que todas as intenes tero, em algum momento, a oportunidade de serem escolhidaspara execuo. Porm, alguns agentes podem precisar usar escolha de intenes baseadas em

    9Note que os mecanismos reais de percepo normalmente so imprecisos e/ou incompletos; ou seja, a percepopode ser falha, no sentido de no refletir a realidade do ambiente, ou pode no ser total, perdendo alguma informaosobre o ambiente.10Essa a origem do termo deliberativo muitas vezes utilizado para se referir a agentes cognitivos, j que a habilidadede realizar essa deliberao uma caracterstica muito importante para esse tipo de agente.

    RITA Volume 10 Nmero 1 2003 15

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    critrios mais sofisticados para garantir que certas intenes sejam priorizadas em relao aoutras em certas circunstncias.

    3 A Linguagem AgentSpeak(L)3.1 Noes Gerais

    A linguagem AgentSpeak(L) foi projetada para a programao de agentes BDI naforma de sistemas de planejamento reativos (reactive planning systems). Sistemas de plane-jamento reativos so sistemas que esto permanentemente em execuo, reagindo a eventosque acontecem no ambiente em que esto situados atravs da execuo de planos que seencontram em uma biblioteca de planos parcialmente instanciados.

    A linguagem de programao AgentSpeak(L) foi primeiramente apresentada em [48].A linguagem uma extenso natural e elegante de programao em lgica para a arquiteturade agentes BDI, que representa um modelo abstrato para a programao de agentes e temsido a abordagem predominante na implementao de agentes inteligentes ou racionais[64]. Um agente AgentSpeak(L) corresponde especificao de um conjunto de crenasque formaro a base de crenas inicial e um conjunto de planos. Um tomo de crena um predicado de primeira ordem na notao lgica usual, e literais de crena so tomosde crenas ou suas negaes. A base de crenas de um agente uma coleo de tomos decrena.

    AgentSpeak(L) distingue dois tipos de objetivos: objetivos de realizao (achieve-ment goals) e objetivos de teste (test goals). Objetivos de realizao e teste so predicados,tais como crenas, porm com operadores prefixados ! e ?, respectivamente. Objetivosde realizao expressam que o agente quer alcanar um estado no ambiente onde o predi-cado associado ao objetivo verdadeiro. Na prtica, esses objetivos iniciam a execuo desubplanos. Um objetivo de teste retorna a unificao do predicado de teste com uma crenado agente, ou falha caso no seja possvel a unificao com nenhuma crena do agente. Umevento ativador (triggering event) define quais eventos podem iniciar a execuo de um plano.Um evento pode ser interno, quando gerado pela execuo de um plano em que um subob-jetivo precisa ser alcanado, ou externo, quando gerado pelas atualizaes de crenas queresultam da percepo do ambiente. Eventos ativadores so relacionados com a adio e re-moo de atitudes mentais (crenas ou objetivos). Adio e remoo de atitudes mentais sorepresentadas pelos operadores prefixados (+) e (-).

    Planos fazem referncia a aes bsicas que um agente capaz de executar em seuambiente. Essas aes so definidas por predicados com smbolos predicativos especiais(chamados smbolos de ao) usados para distinguir aes de outros predicados. Um plano formado por um evento ativador (denotando o propsito do plano), seguido de uma conjuno

    16 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    de literais de crena representando um contexto. O contexto deve ser conseqncia lgica doconjunto de crenas do agente no momento em que o evento selecionado pelo agente parao plano ser considerado aplicvel. O resto do plano uma seqncia de aes bsicas ousubobjetivos que o agente deve atingir ou testar quando uma instncia do plano selecionadapara execuo.

    +concert(A,V) : likes(A) !book_tickets(A,V).

    +!book_tickets(A,V) : busy(phone) call(V);

    . . .;!choose_seats(A,V).

    Figura 3. Exemplos de planos AgentSpeak(L)

    A Figura 3 apresenta exemplos de planos AgentSpeak(L). O primeiro plano especificaque ao anncio de um concerto a ser realizado pelo artista A no local V (do Ingls venue),correspondendo a adio de uma crena concert(A,V) como conseqncia da percepodo ambiente. Se for o caso de o agente gostar do artista A, ento o agente ter como objetivo areserva dos ingressos para esse concerto. O segundo plano especifica que ao adotar o objetivode reservar ingressos, se for o caso de a linha telefnica no estar ocupada, ento o agentepode executar o plano que consiste de: executar a ao bsica de fazer contato telefnicocom o local do concerto V, seguido de um determinado protocolo de reserva de ingressos(indicado por . . .), e que termina com a execuo de um subplano para a escolha de acentosem eventos desse tipo naquele local. (Assume-se que fazer contato telefnico uma aobsica que o agente capaz de executar no ambiente em questo).

    3.2 Sintaxe Abstrata

    A especificao de um agente ag em AgentSpeak(L) deve ser feita de acordo com agramtica apresentada a seguir (adaptada de [45]). Em AgentSpeak(L), um agente especi-ficado por um conjunto de crenas bs (beliefs) correspondendo base de crenas inicial doagente, e um conjunto de planos ps que forma a biblioteca de planos do agente.

    RITA Volume 10 Nmero 1 2003 17

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    ag ::= bs psbs ::= b1 . . . bn (n 0)at ::= P(t1, . . . , tn) (n 0)ps ::= p1 . . . pn (n 1)p ::= te : ct hte ::= +at | at | +g | gct ::= at | at | ct ct | Th ::= a | g | u | h;ha ::= A(t1, . . . , tn) (n 0)g ::= !at | ?atu ::= +at | at

    As frmulas atmicas at da linguagem so predicados onde P um smbolo predica-tivo e t1, . . . , tn so termos padro da lgica de primeira ordem. Chamamos de crena umafrmula atmica at sem variveis e b meta-varivel para crenas. O conjunto inicial decrenas de um programa AgentSpeak(L) uma seqncia de crenas bs.

    Um plano em AgentSpeak(L) dado por p acima, onde te (triggering event) o eventoativador, ct o contexto do plano (uma conjuno de literais de crena) e h uma seqnciade aes, objetivos ou atualizaes de crenas. A construo te : ct dita a cabea do plano,e h o corpo do plano. O conjunto de planos de um agente dado por ps como uma lista deplanos.

    Um evento ativador te corresponde adio/remoo de crenas da base de crenasdo agente (+at e at, respectivamente), ou adio/remoo de objetivos (+g e g, res-pectivamente). O agente possui um conjunto de aes bsicas que utiliza para atuar sobreo ambiente. Aes so referidas por predicados usuais com a exceo de que um smbolode ao A usado no lugar do smbolo predicativo. Objetivos g podem ser objetivos de re-alizao (!at) ou de teste (?at). Finalmente, +at e at (no corpo de um plano) representamoperaes de atualizao (update) da base de crena u, atravs da adio ou remoo decrenas respectivamente.

    Note que uma frmula !g no corpo de um plano gera um evento cujo evento ativador +!g (este assunto ser tratado em maiores detalhes na prxima seo). Portanto, planosescritos pelo programador que tenha um evento ativador que possa ser unificado com +!grepresentam alternativas de planos que devem ser considerados no tratamento de tal evento.Planos com evento ativador do tipo +at eat so utilizados no tratamento de eventos que sogerados quando crenas so adicionadas ou removidas (tanto como conseqncia da percep-o do ambiente, como devido a alteraes de crenas explicitamente requisitadas no corpode um plano). Eventos ativadores do tipo !g so usados para o tratamento de falhas de pla-

    18 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    nos (mas no sero abordados neste texto), e eventos ativadores do tipo +?g e ?g no soutilizados na implementao atual da linguagem (maiores detalhes na Seo 5.1). A seoa seguir fornece mais detalhes sobre a gerao de eventos, e outros aspectos importantes dainterpretao de programas AgentSpeak(L).

    3.3 Semntica Informal

    Um interpretador abstrato para a linguagem AgentSpeak(L) precisa ter acesso basede crenas e biblioteca de planos, e gerenciar um conjunto de eventos e um conjunto deintenes. Seu funcionamento requer trs funes de seleo: a funo de seleo de eventos(SE) seleciona um nico evento do conjunto de eventos; uma outra funo (SAp) selecionauma opo (um plano aplicvel) entre o conjunto de planos aplicveis para um evento se-lecionado; e a terceira funo (SI ) seleciona uma inteno do conjunto de intenes. Asfunes de seleo so especficas para cada agente, sendo responsveis por parte significa-tiva do comportamento do agente. Essas funes, apesar de fazerem parte do interpretador,devem ser fornecidas pelo projetista do agente juntamente com o programa AgentSpeak(L),exceto nas situaes em que funes de seleo default11, que so muito simples, possam serutilizadas.

    Os trabalhos anteriores sobre AgentSpeak(L) no discutem como projetistas podemespecificar essas funes. Em princpio linguagens de programao tradicionais devem serusadas para a definio de funes de seleo ad hoc. A extenso de AgentSpeak(L) apre-sentada em [3] visava justamente esse problema, propondo a gerao automtica e eficientede funes de seleo de intenes. A linguagem estendida permite expressar relaes entreplanos, bem como critrios quantitativos para sua execuo. Usa-se, ento, escalonamentode tarefas baseado em teoria de deciso para guiar as escolhas feitas pela funo de seleode intenes.

    Como dito acima, duas estruturas importantes para o interpretador abstrato so o con-junto de eventos e o conjunto de intenes. Intenes so cursos de aes com os quaisum agente se compromete para tratar certos eventos. Cada inteno uma pilha de planosparcialmente instanciados.

    Eventos causam o incio da execuo de planos que tem eventos ativadores relevantes.Eventos podem ser externos, quando originados da percepo do ambiente (i.e., adio ouremoo de crenas resultantes do processo de reviso de crenas); ou internos, quando gera-dos pela execuo de planos do agente (um subobjetivo em um plano gera um evento do tipoadio de objetivo de realizao). No ltimo caso, o evento acompanhado da inteno11As funes de seleo default so as seguintes: SE seleciona eventos sem nenhuma prioridade, utilizando a ordemem que eles so inseridos no conjunto de eventos; a funo SAp utiliza a ordem em que os planos foram escritos noprograma fonte AgentSpeak(L) para a escolha entre diversos planos aplicveis; e a funo SI funciona, por assimdizer, como um escalonador round-robin, executando uma ao de cada uma das intenes ativas por vez.

    RITA Volume 10 Nmero 1 2003 19

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    que o gerou (o plano escolhido para aquele evento ser colocado no topo daquela inteno).Eventos externos criam novas intenes representando diferentes focos de ateno na atuaodo agente no ambiente.

    A seguir o funcionamento de um interpretador AgentSpeak(L) apresentado em deta-lhe, com o auxlio da Figura 4 (reproduzida de [42]). Na figura conjuntos de crenas, eventos,planos e intenes so representados por retngulos. Losangos representam a seleo de umelemento de um conjunto. Crculos representam alguns dos processos envolvidos na inter-pretao de programas AgentSpeak(L).

    A cada ciclo de interpretao de um programa AgentSpeak(L), a lista de eventos atualizada com o resultado do processo de reviso de crenas. Assume-se que as crenasso atualizadas pela percepo e que sempre que houverem mudanas na base de crenasdo agente, isso implica na insero de um evento no conjunto de eventos. Essa funo dereviso de crenas no parte de um interpretador AgentSpeak(L), mas um componenteque deve estar presente na arquitetura geral do agente (implementaes de interpretadoresAgentSpeak(L) tipicamente fornecem uma funo de reviso de crenas simples utilizadacomo default).

    Depois de SE selecionar um evento, o interpretador AgentSpeak(L) tem que unifi-car aquele evento com eventos ativadores nas cabeas dos planos presentes na bibliotecade planos. Isso gera um conjunto de todos os planos relevantes para o evento escolhido.Pela verificao dos contextos de planos que seguem logicamente das crenas do agente,AgentSpeak(L) determina o conjunto de planos aplicveis (planos que podem ser usados,na situao presente, para tratar o evento selecionado naquele ciclo). Depois, SAp escolhe,entre os planos do conjunto de planos aplicveis, um nico plano aplicvel que se torna omeio pretendido para o tratamento daquele evento, e coloca o plano no topo de uma intenoexistente (se o evento for interno), ou cria uma nova inteno no conjunto de intenes (seo evento for externo, i.e., gerado por percepo do ambiente), definindo um novo foco deateno do agente.

    Nesse estgio, resta apenas a seleo de uma nica inteno para ser executada nociclo. A funo SI seleciona uma inteno do agente (i.e. uma das pilhas de planos par-cialmente instanciados que se encontram dentro do conjunto de intenes, cada uma repre-sentando um dos focos de ateno do agente). No topo dessa inteno existe uma instnciade um plano da biblioteca de planos, e a frmula no incio do corpo do plano executada.Isso implica em uma ao bsica a ser realizada pelo agente no ambiente, na gerao de umevento interno (se a frmula selecionada for um objetivo de realizao) ou na execuo de umobjetivo de teste (atravs do acesso base de crenas). Caso a frmula seja um objetivo derealizao, simplesmente um evento do tipo adio de objetivo de realizao adicionadoao conjunto de eventos, acompanhado da inteno que gerou o evento. Essa inteno tem queser removida do conjunto de intenes, pois ela fica suspensa at que o evento interno seja

    20 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    BeliefBase

    SE

    SI

    InternalEvents

    RelevantPlans

    ApplicablePlans

    ExternalEvents

    UpdateIntention

    MeansIntended

    PlanLibrary

    Events

    Intentions

    BRF

    UnifyContext

    ExecuteIntention

    EventUnify

    Perception

    Action

    SelectedEvent

    Beliefs

    Intention

    Events

    Beliefs

    Beliefs

    Beliefs

    SO

    AgentSpeak(L) Agent

    Intentions

    Selected

    Plans

    ...New

    New

    IntentionNew

    SubplanPush

    65

    21

    3

    74

    Figura 4. Ciclo de interpretao de um programa AgentSpeak(L) [42].

    escolhido pela funo SE . Quando uma instncia de plano for escolhida como meio preten-dido para tratar este evento, o plano colocado no topo da pilha de planos daquela inteno,e ela retornada para o conjunto de intenes (podendo novamente ser selecionada por SI ).

    Se a frmula a ser executada a realizao de uma ao bsica ou a execuo de umobjetivo de teste, a frmula deve ser removida do corpo da instncia de plano que se encontrano topo da inteno selecionada. No caso da execuo de um objetivo de teste, a base decrenas ser inspecionada para encontrar um tomo de crena que unifica com o predicadode teste. Se uma unificao for possvel, instanciaes de variveis podem ocorrer no planoparcialmente instanciado; aps isto, o objetivo de teste pode ser removido do conjunto deintenes, pois j foi realizado. No caso de uma ao bsica a ser executada, o interpretadorsimplesmente informa ao componente da arquitetura do agente que responsvel pela atuaosobre o ambiente qual ao requerida, podendo tambm remover a ao12 do conjunto deintenes. Quando todas as frmulas no corpo de um plano forem removidas (i.e., tiverem12Em algumas implementaes, e.g. [3], o interpretador espera um retorno do ambiente simulado para saber se aao pode ser executada ou no. O plano falha caso o retorno do ambiente no seja positivo.

    RITA Volume 10 Nmero 1 2003 21

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    sido executadas), o plano removido da inteno, tal como o objetivo de realizao que ogerou, se esse for o caso, removido do incio do corpo do plano abaixo daquele na pilha deplanos daquele foco de ateno. O ciclo de execuo termina com a execuo de uma frmulado corpo de um plano pretendido, e AgentSpeak(L) comea um novo ciclo, com a verificaodo estado do ambiente aps a ao do agente sobre ele, a gerao dos eventos adequados, econtinuando a execuo de um ciclo de raciocnio do agente como descrito acima.

    O objetivo desta seo foi apresentar informalmente alguns aspectos importantes dasemntica da linguagem AgentSpeak(L). A semntica formal da linguagem pode ser encon-trada nos seguintes artigos [45, 7, 46] (o ltimo deles trata especificamente de aspectos decomunicao entre agentes).

    4 Estudos de Caso

    Esta seo mostra dois exemplos bem simples de programas escritos emAgentSpeak(L). O fato de os programas serem simples uma vantagem para a assimila-o dos conceitos bsicos da linguagem, porm dificultam a compreenso da importncia dasabstraes da arquitetura BDI em sistemas mais complexos. O objetivo aqui no mostraro tipo de sistema em que este paradigma particularmente apropriado, mas especificamentemostrar exemplos das construes bsicas da linguagem AgentSpeak(L). Ambos exemplosforam utilizados em trabalhos que propem o uso da tcnica de model checking (verifica-o de modelos) para a verificao formal de sistemas programados em AgentSpeak(L) (esteassunto discutido na Seo 5.1).

    4.1 Robs Coletores de Lixo em Marte

    O cenrio utilizado nesta seo foi apresentado em [14] e lembra tambm o cenrioutilizado em [48]; o cdigo apresentado aqui para este cenrio foi introduzido anteriormenteem [5]. Dois robs esto coletando lixo no planeta Marte. O rob r1 procura por lixosdepositados no solo do planeta e quando algum lixo encontrado, o rob coleta o lixo e o levapara o local onde r2 encontra-se, larga o lixo l e retorna ao local onde o lixo foi encontradopara continuar sua busca a partir daquela posio anterior. O rob r2 est posicionado aolado de um incinerador; todo o lixo levado por r1 colocado no incinerador. Os pedaos delixo so colocados randomicamente em uma grade que define o territrio do planeta13. Outrafonte de no-determinismo a impreciso do brao do rob em pegar os pedaos de lixo. Aao de pegar o lixo pode falhar, mas o mecanismo bom o suficiente para no falhar maisque duas vezes seguidas; ou seja, no pior caso r1 ir tentar apanhar o lixo trs vezes.13Cada posio da grade representa uma rea de territrio de tamanho limitado pelo alcance dos sensores do rob.Qualquer lixo dentro da rea de territrio representado por uma posio na grade instantaneamente percebido peloagente.

    22 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    O cdigo AgentSpeak(L) para r1 dado abaixo. No cdigo, cada plano anotadocom um label para que se possa referir ao plano no texto que segue. As aes que possuem umponto (.) em seu nome, denotam aes internas, uma noo introduzida em [3]. Essas aoso executadas internamente pelo agente, e no afetam o ambiente como as aes bsicas queo agente executa.

    Agent r1Beliefspos(r2,2,2).checking(slots).

    Plans

    +pos(r1,X1,Y1) : checking(slots) & not(garbage(r1)) (p1)

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    +!go(L) : true (p9)

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    Os planos p5 e p6 juntos asseguram que o rob ir continuar tentando pegar umpedao de lixo at que ele no possa mais perceber o lixo na grade (i.e., at que a ao decoleta seja realizada com sucesso). Lembre que o mecanismo de coleta impreciso, e o robpode ter que tentar algumas vezes at obter xito na execuo da ao.

    O plano p7 usado para que o agente continue a tarefa de verificar a existncia delixo na grade que representa o espao de territrio a ser limpo. O agente precisa atingir osubobjetivo de retornar para sua posio anterior (!go(back)), e uma vez l ele poderremover a nota que fez sobre aquela posio, lembrando que voltou ao estado de procura porlixo e, assim, procedendo para o prximo ponto na grade.

    Os ltimos dois planos so usados para atingir o objetivo de ir para uma posioespecfica na grade (representada pela constante com a qual a varivel L est instanciada).O plano p9 recupera a crena que o agente possui sobre a posio na grade em que fica alocalidade L, move-se uma posio na grade em direo ao ponto referente s coordenadas emquesto moveTowards(Xl,Yl), e volta a ter o objetivo de mover-se (continuar movendo-se) em direo a L; note que o plano recursivo. O plano p8 estabelece o fim da recursodizendo que no h mais o que fazer para atingir o objetivo de ir em direo a L se o agentej est naquela posio (o plano anterior no mais ser aplicvel neste caso).

    O agente r2 definido pelo cdigo AgentSpeak(L) abaixo. Tudo o que ele faz queimar os pedaos de lixo (burn(garb)) quando ele percebe que h lixo nessa posio(+garbage(r2)).

    Agent r2+garbage(r2) : true

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    Agent ag1+auction(N) : true

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    +auction(N) : myself(I) & winner(I)& ally(A) & not(alliance(I,A))

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    mente, as escolhas relacionadas funo de seleo de intenes de um agente.

    Em [45], uma semntica operacional para AgentSpeak(L) foi dada com base na abor-dagem estrutural de Plotkin [47], uma notao mais usual do que Z para dar semntica alinguagens de programao. Posteriormente, essa semntica operacional foi utilizada na es-pecificao de um framework para a construo de provas de propriedades BDI da linguagemAgentSpeak(L) [6]. A combinao dos princpios da tese da assimetria (assymetry the-sis) satisfeitos por um agente AgentSpeak(L) foi apresentado inicialmente em [6]; as provasdetalhadas dessas propriedades foram apresentadas em [7]. Esses princpios so relevan-tes para se assegurar a racionalidade dos agentes programados em AgentSpeak(L) com basenos princpios de racionalidade segundo a teoria BDI. Em [46], a semntica operacional deAgentSpeak(L) foi estendida para dar semntica comunicao entre agentes baseada nateoria dos atos de fala.

    Em [9] foi apresentado o uso de tcnicas de model checking para a verificao formalde programas AgentSpeak(L) atravs de um conjunto de ferramentas chamado CASP. CASPtraduz uma verso simplificada de AgentSpeak(L) em linguagens que podem ser utilizadasem verificadores de modelos para a lgica temporal linear [1]. A traduo para Promela foiapresentada em [4], e a traduo para Java em [5]. A verificao de modelo ento feitacom o uso de Spin [31] no primeiro caso, e com JPF2 [60] no segundo. Esse trabalho emverificao de modelos para programas AgentSpeak(L) usa as definies de modalidades BDIem termos da semntica operacional de AgentSpeak(L) apresentadas em [7] para mostrar deforma precisa como as especificaes BDI (a serem verificadas para sistemas com mltiplosagentes AgentSpeak(L)) so interpretadas.

    Poucas aplicaes foram desenvolvidas com AgentSpeak(L) at o momento, dado quea sua implementao prtica muito recente e ainda requer um trabalho mais aprofundadode experimentao para que se torne uma linguagem de programao poderosa. O mesmo seaplica a outras linguagens baseadas em agentes (veja a prxima seo). Apesar do trabalhona rea datar do incio dos anos 90, um grande nmero de questes est ainda em aberto.Entre as aplicaes existentes, desenvolvidas em AgentSpeak(L), podemos mencionar umasimulao de aspectos sociais do crescimento urbano [8] e um rob carregador encarregadodo armazm de uma fbrica, que funciona em um ambiente de realidade virtual [58]. O pri-meiro trabalho foi desenvolvido como um estudo de caso para a plataforma MAS-SOC14 desimulao social baseada em agentes em que cada agente de uma simulao implementadoem AgentSpeak(L). O segundo trabalho apresenta uma arquitetura de duas camadas com ointerpretador AgentSpeak(L) em um nvel, e, em outro nvel, um sistema articulado para amodelagem de personagens 3D em ambientes virtuais. Tal arquitetura tem por objetivo per-mitir o uso de agentes autnomos sofisticados em sistemas de realidade virtual ou outras

    14A URL do projeto MAS-SOC . Nesta pgina tambm podemser encontrados links para outros recursos relacionados linguagem AgentSpeak(L).

    28 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    aplicaes baseadas em animaes15 tridimensionais.

    5.2 Outras Linguagens de Programao Orientadas a Agentes

    Desde o artigo seminal em programao orientada a agentes de Shoham [55], vriasoutras linguagens nesse paradigma foram propostas, seguindo diferentes abordagens e in-fluncias. Naquele artigo, foi apresentada a linguagem Agent0, que inspirada na arquiteturaBDI com sintaxe baseada em LISP. A seguir, sero mencionadas algumas das outras lingua-gens orientada a agentes que apareceram na literatura de sistemas multiagente desde ento.

    Concurrent METATEM [24] baseada em lgica temporal executvel (essa lingua-gem, de fato, anterior ao trabalho de Shoham). Originalmente, a idia era de que cadaagente fosse executado diretamente de uma especificao em lgica temporal de tempo li-near. Trabalhos mais recentes adicionam outras modalidades linguagem, permitindo aosdesenvolvedores projetar agentes baseados em abstraes antropomrficas, de maneira si-milar a agentes BDI [25]. Outros trabalhos em Concurrent METATEM tm permitido aosusurios a especificao de grupos (aninhados) de agentes, com caractersticas interessantesde comunicao e acesso para os agentes em diferentes grupos [26].

    Uma linguagem recentemente introduzida na literatura da rea chama-se STA-PLE [38]. Essa linguagem baseada na teoria de intenes conjuntas de Cohen e Levesque,que formalizada na lgica apresentada em [17]. A plataforma IMPACT [57] tem comoobjetivo permitir a agentificao de cdigo legado, e a semntica de agentes IMPACT baseada em lgica deontolgica [2]. Algumas linguagens de programao apresentadas naliteratura estendem sistemas de programao que tem demonstrado grande aplicao em in-teligncia artificial de modo geral ao conceito de sistemas de mltiplos agentes situados. Umexemplo a linguagem ConGolog [18], uma linguagem de programao concorrente baseadaem clculo de situaes. Outro exemplo MINERVA, uma arquitetura de agente [41, 40]baseada em programao em lgica dinmica.

    Outras linguagens BDI, tais como 3APL [30], foram inspiradas em AgentSpeak(L)modificando-a de alguma maneira. 3APL, por exemplo, no inclui o conceito de evento oude uma estrutura intencional (como o conjunto de intenes em AgentSpeak(L)); isso faz comque 3APL se distancie um pouco da concepo original da arquitetura BDI. Por outro lado,a linguagem tem outras caractersticas, tais como regras especiais que operam nos objetivosdo agente durante sua execuo, que so teis, por exemplo, no tratamento de planos quefalham. Em trabalho recente, a linguagem Dribble [59] foi proposta, entendendo 3APL com anoo de objetivos declarativos. Outra abordagem a agentes BDI o clculo [36], baseadono clculo pi [44], com o objetivo de dar suporte terico para linguagens de programao15Exemplos de animaes realizadas com esta arquitetura podem ser encontrados na URL .

    RITA Volume 10 Nmero 1 2003 29

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    visuais [36, 37].

    Uma linguagem fortemente baseada em AgentSpeak(L), chamada AgentTalk, foi re-centemente disponibilizada pela Internet16. Tambm encontram-se disponveis na Inter-net, plataformas JAVA para o desenvolvimento de agentes BDI, tais como JAM17 [33]e JACK18 [32]. A grande diferena entre essas ferramentas e linguagens BDI comoAgentSpeak(L) e 3APL que essas ltimas tm semntica formal, o que possibilita a verifi-cao formal de sistemas programados com estas linguagens; alm disto, pode-se estabelecer,com rigorismo ainda maior, uma relao formal com a teoria BDI original, vinda da literaturade filosofia sobre raciocnio prtico e que influencia todo o trabalho em agentes racionais(atravs de trabalhos tericos que esto em desenvolvimento).

    6 Concluso

    Aps uma dcada desde a primeira publicao utilizando o termo programao ori-entada a agentes [55], pode-se dizer que as linguagens de programao orientadas a agentesencontram-se ainda em sua infncia. Muita pesquisa em aspectos formais dessas linguagensj foi desenvolvida, mas ainda h muitas questes em aberto. Alm disto, s recentementeestas linguagem com base formal e realmente substanciadas nas idias da rea de sistemasmultiagente tiveram interpretadores disponibilizados publicamente. Com isto, pouca experi-mentao prtica, com sistemas de grande porte, foi desenvolvida at o momento. As relaescom os demais nveis do processo de engenharia de software orientada a agente tambm noesto bem consolidadas ainda.

    De toda a forma, dado o grande sucesso recente da rea de sistemas multiagente, influ-enciando o trabalho nas mais diversas rea da computao, muito provvel que o prximogrande paradigma de programao seja o paradigma de orientao a agentes, alterando subs-tancialmente a forma como sistemas computacionais sero concebidos. As linguagens deprogramao com esta orientao certamente tero um papel importante nesse processo, masexatamente a forma como isto acontecer difcil prever. O objetivo deste texto foi dar umaviso geral de alguns conceitos que sero importantes nesse paradigma, e fornecer refern-cias para os trabalhos na rea, esperando que as idias apresentadas aqui ajudem tambm nacompreenso da significativa diferena desta forma de concepo de sistemas computacio-nais, desde o uso de noes mentalsticas at o uso de comunicao de alto nvel (baseada nateoria dos atos de fala), na concepo de entidades de software auto-motivadas e autnomas.

    16Essa linguagem tem um interpretador escrito na linguagem funcional Scheme. A nica referncia a esse trabalho a URL: .17URL: .18URL: .

    30 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    Agradecimentos

    Como pode ser observado pelas referncias relacionadas a AgentSpeak(L), este artigoderiva de vrios trabalhos (anteriores ou em andamento) realizados com a cooperao dediversos pesquisadores e alunos, e parcialmente financiados pelo CNPq e pela FAPERGS.Registramos nosso sincero agradecimento aos seguintes co-autores, em ordem alfabtica:Marcelo G. de Azambuja, Deniel M. Basso, Ana L.C. Bazzan, Antnio Carlos da RochaCosta, Guilherme Drehmer, Michael Fisher, Jomi F. Hbner, Rafael de O. Jannone, RomuloKrafta, Victor Lesser, Rodrigo Machado, lvaro F. Moreira, Fabio Y. Okuyama, Denise deOliveira, Carmen Pardavila, Mara R. Rodrigues, Rosa M. Vicari, Willem Visser, MichaelWooldridge.

    Referncias[1] E Allen Emerson. Temporal and modal logic. In Jan van Leeuwen, editor, Handbook

    of Theoretical Computer Science, volume B, chapter 16, pages 9971072. Elsevier Sci-ence, Amsterdam, 1990.

    [2] Lennart qvist. Deontic logic. In Dov M. Gabbay and Franz Gnthner, editors, Hand-book of Philosophical Logic: Volume II: Extensions of Classical Logic, chapter II.11,pages 605714. D. Reidel Publishing Company, 1984.

    [3] Rafael H. Bordini, Ana L. C. Bazzan, Rafael O. Jannone, Daniel M. Basso, Rosa M.Vicari, and Victor R. Lesser. AgentSpeak(XL): Efficient intention selection in BDIagents via decision-theoretic task scheduling. In Cristiano Castelfranchi and W. LewisJohnson, editors, Proceedings of the First International Joint Conference on Autono-mous Agents and Multi-Agent Systems (AAMAS-2002), 1519 July, Bologna, Italy, pa-ges 12941302, New York, NY, 2002. ACM Press.

    [4] Rafael H. Bordini, Michael Fisher, Carmen Pardavila, and Michael Wooldridge. Modelchecking AgentSpeak. In Jeffrey S. Rosenschein, Tuomas Sandholm, Wooldridge Mi-chael, and Makoto Yokoo, editors, Proceedings of the Second International Joint Con-ference on Autonomous Agents and Multi-Agent Systems (AAMAS-2003), Melbourne,Australia, 1418 July, pages 409416, New York, NY, 2003. ACM Press.

    [5] Rafael H. Bordini, Michael Fisher, Willem Visser, and Michael Wooldridge. Verifiablemulti-agent programs. In Proceedings of the First International Workshop on Program-ming Multiagent Systems: languages, frameworks, techniques and tools (PROMAS-03),to be held with AAMAS-03, 15 July, 2003, Melbourne, Australia, 2003. To appear.

    [6] Rafael H. Bordini and lvaro F. Moreira. Proving the asymmetry thesis principles fora BDI agent-oriented programming language. In Jrgen Dix, Joo Alexandre Leite,

    RITA Volume 10 Nmero 1 2003 31

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    and Ken Satoh, editors, Proceedings of the Third International Workshop on Com-putational Logic in Multi-Agent Systems (CLIMA-02), 1st August, Copenhagen, Den-mark, Electronic Notes in Theoretical Computer Science 70(5). Elsevier, 2002. URL:. CLIMA-02 was held as part ofFLoC-02. This paper was originally published in Datalogiske Skrifter number 93, Ros-kilde University, Denmark, pages 94108.

    [7] Rafael H. Bordini and lvaro F. Moreira. Proving BDI properties of agent-orientedprogramming languages: The asymmetry thesis principles in AgentSpeak(L). Annalsof Mathematics and Artificial Intelligence, 2003. Accepted for publication in a SpecialIssue on Computational Logic in Multi-Agent Systems.

    [8] Rafael H. Bordini, Fabio Y. Okuyama, Denise de Oliveira, Guilherme Drehmer, andRomulo C. Krafta. The MAS-SOC approach to multi-agent based simulation. In Gabri-ela Lindemann, Daniel Moldt, Mario Paolucci, and Bin Yu, editors, Proceedings of theFirst International Workshop on Regulated Agent-Based Social Systems: Theories andApplications (RASTA02), 16 July, 2002, Bologna, Italy, held with AAMAS02, LectureNotes in Artificial Intelligence, Berlin, 2003. Springer-Verlag. To appear.

    [9] Rafael H. Bordini, Willem Visser, Michael Fisher, Carmen Pardavila, and Michael Wo-oldridge. Model checking multi-agent programs with CASP. In Proceedgins of theFifteenth Conference on Computer-Aided Verification (CAV-2003), Boulder, CO, 812July, 2003. Tool description. To appear.

    [10] Rafael Heitor Bordini. Contributions to an Anthropological Approach to the CulturalAdaptation of Migrant Agents. PhD thesis, University of London, 1999.

    [11] Rafael Heitor Bordini, Renata Vieira, and lvaro Freitas Moreira. Fundamentos desistemas multiagentes. In Carlos Eduardo Ferreira, editor, Anais do XXI Congresso daSociedade Brasileira de Computao (SBC2001), Volume 2, XX Jornada de Atualizaoem Informtica (JAI), 30 de julho 3 de agosto, Fortaleza-CE, Brasil, chapter 1, pages341. Sociedade Brasileira de Computao, 2001.

    [12] Michael E. Bratman. Intentions, Plans and Practical Reason. Harvard University Press,Cambridge, MA, 1987.

    [13] Michael E. Bratman, David J. Israel, and Martha E. Pollack. Plans and resource-bounded practical reasoning. Computational Intelligence, 4:349355, 1988.

    [14] John A. Campbell and Mark dInverno. Knowledge interchange protocols. In Yves De-mazeau and Jean-Pierre Mller, editors, Decentralized A.I.Proceedings of the FirstEuropean Workshop on Modelling Autonomous Agents in a Multi-Agent World (MAA-MAW89), 1618 August, Cambridge, 1989, pages 6380. Elsevier Science B.V., Ams-terdam, 1990.

    32 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    [15] Cristiano Castelfranchi. Social power: a point missed in multi-agent DAI and HCI.In Yves Demazeau and Jean-Pierre Mller, editors, Decentralized A.I.Proceedings ofthe First European Workshop on Modelling Autonomous Agents in a Multi-Agent World(MAAMAW89), 1618 August, Cambridge, 1989, pages 4962. Elsevier Science B.V.,Amsterdam, 1990.

    [16] Cristiano Castelfranchi, Maria Miceli, and Amadeo Cesta. Dependence relations amongautonomous agents. In Eric Werner and Yves Demazeau, editors, Decentralized A.I.3Proceedings of the Third European Workshop on Modelling Autonomous Agents ina Multi-Agent World, 57 August, 1991, Kaiserslautern, Germany, pages 215227. El-sevier Science B.V., Amsterdam, 1992.

    [17] Philip R. Cohen and Hector J. Levesque. Intention is choice with commitment. ArtificialIntelligence, 42(3):213261, 1990.

    [18] Giuseppe de Giacomo, Yves Lesprance, and Hector J. Levesque. ConGolog: A con-current programming language based on the situation calculus. Artificial Intelligence,121:109169, 2000.

    [19] Yves Demazeau. From cognitive interactions to collective behaviour in agent-basedsystems. In Proceedings of the European Conference on Cognitive Science, Saint-Malo,April 1995.

    [20] Daniel C. Dennett. The Intentional Stance. The MIT Press, Cambridge, MA, 1987.

    [21] Mark dInverno, David Kinny, Michael Luck, and Michael Wooldridge. A formal spe-cification of dMARS. In Munindar P. Singh, Anand S. Rao, and Michael Wooldridge,editors, Intelligent Agents IVProceedings of the Fourth International Workshop onAgent Theories, Architectures, and Languages (ATAL-97), Providence, RI, 2426 July,1997, number 1365 in Lecture Notes in Artificial Intelligence, pages 155176. Springer-Verlag, Berlin, 1998.

    [22] Mark dInverno and Michael Luck. Engineering AgentSpeak(L): A formal computati-onal model. Journal of Logic and Computation, 8(3):127, 1998.

    [23] Jacques Ferber. Multi-Agent Systems: An Introduction to Distributed Artificial Intelli-gence. Addison-Wesley, 1999.

    [24] Michael Fisher. A survey of concurrent METATEMthe language and its applications.In Dov M. Gabbay and H. J. Ohlbach, editors, Temporal LogicsProceedings of theFirst International Conference, number 827 in Lecture Notes in Artificial Intelligence,pages 480505. Springer-Verlag, Berlin, 1994.

    RITA Volume 10 Nmero 1 2003 33

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    [25] Michael Fisher and Chiara Ghidini. The ABC of rational agent modelling. In CristianoCastelfranchi and W. Lewis Johnson, editors, Proceedings of the First InternationalJoint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS-2002), 1519 July, Bologna, Italy, pages 849856, New York, NY, 2002. ACM Press.

    [26] Michael Fisher, Chiara Ghidini, and Benjamin Hirsch. Organising logic-based agents.In Proceedings of the Second NASA/IEEE Goddard Workshop on Formal Approachesto Agent Based Systems (FAABS 2002), Greenbelt, MD, October 29-31, 2002.

    [27] Stan Franklin and Art Graesser. Is it an agent, or just a program?: A taxo-nomy for autonomous agents. In Jrg P. Mller, Michael J. Wooldridge, and Ni-cholas R. Jennings, editors, Intelligent Agents IIIProceedings of the Third In-ternational Workshop on Agent Theories, Architectures, and Languages (ATAL-96), ECAI96 Workshop, Budapest, Hungary, number 1193 in Lecture Notesin Artificial Intelligence, pages 2135. Springer-Verlag, Berlin, 1997. URL:http://www.msci.memphis.edu/franklin/aagents.html.

    [28] Michael R. Genesereth and Steven P. Ketchpel. Software agents.Communications of the ACM, 37(7):4853, July 1994. URL:http://logic.stanford.edu/sharing/papers/.

    [29] Michael P. Georgeff and A. L. Lansky. Reactive reasoning and planning. In Proceedingsof the Sixth National Conference on Artificial Intelligence (AAAI87), 1317 July, 1987,Seattle, WA, pages 677682, Manlo Park, CA, 1987. AAAI Press / MIT Press.

    [30] Koen V. Hindriks and Frank S. and de Boer. Formal semantics for an abstract agentprogramming language. In Munindar P. Singh, Anand S. Rao, and Michael Wooldridge,editors, Intelligent Agents IVProceedings of the Fourth International Workshop onAgent Theories, Architectures, and Languages (ATAL-97), Providence, RI, 2426 July,1997, number 1365 in Lecture Notes in Artificial Intelligence, pages 215229, Berlin,1998. Springer-Verlag.

    [31] Gerard J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall,1991.

    [32] Nick Howden, Ralph Rnnquist, Andrew Hodgson, and Andrew Lucas. JACK intelli-gent agentsTM summary of an agent infrastructure. In Proceedings of Second Inter-national Workshop on Infrastructure for Agents, MAS, and Scalable MAS, held with theFifth International Conference on Autonomous Agents (Agents 2001), 28 May 1 June,Montreal, Canada, 2001.

    [33] Marcus J. Huber. JAM: A BDI-theoretic mobile agent architecture. In Proceedingsof the Third International Conference on Autonomous Agents (Agents-99), 15 May,Seattle, WA, pages 236243. ACM Press, 1999.

    34 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    [34] Jomi Fred Hbner. Um Modelo de Reorganizao de Sistemas Multiagentes. PhDthesis, Universidade de So Paulo, Escola Politcnica, 2003.

    [35] David Kinny. The distributed multi-agent reasoning system architecture and languagespecification. Technical report, Australian Artificial Intelligence Institute, Melbourne,Australia, 1993.

    [36] David Kinny. The calculus: An algebraic agent language. In John-Jules Meyer andMilind Tambe, editors, Intelligent Agents VIII Proceedings of the Eighth InternationalWorkshop on Agent Theories, Architectures, and Languages (ATAL-2001), August 13,2001, Seattle, WA, number 2333 in Lecture Notes in Artificial Intelligence, pages 3250, Berlin, 2002. Springer-Verlag.

    [37] David Kinny. ViP: A visual programming language for plan execution systems. In Cris-tiano Castelfranchi and W. Lewis Johnson, editors, Proceedings of the First Internati-onal Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS-2002,featuring 6th AGENTS, 5th ICMAS and 9th ATAL), 1519 July, Bologna, Italy, pages721728, New York, NY, 2002. ACM Press.

    [38] Sanjeev Kumar, Philip R. Cohen, and Marcus J. Huber. Direct execution of team spe-cifications in STAPLE. In Cristiano Castelfranchi and W. Lewis Johnson, editors, Pro-ceedings of the First International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS-2002), 1519 July, Bologna, Italy, pages 567568, New York,NY, 2002. ACM Press. Short paper.

    [39] Jean Lave. Cognition in Practice: Mind, Mathematics and Culture in Everyday Life.Cambridge University Press, 1988.

    [40] Joo Alexandre Leite. Evolving Knowledge Bases: Specification and Semantics, vo-lume 81 of Frontiers in Artificial Intelligence and Applications, Dissertations in Artifi-cial Intelligence. IOS Press/Ohmsha, Amsterdam, 2003.

    [41] Joo Alexandre Leite, Jos Jlio Alferes, and Lus Moniz Pereira. MINERVAadynamic logic programming agent architecture. In John-Jules Meyer and Milind Tambe,editors, Intelligent Agents VIII Proceedings of the Eighth International Workshop onAgent Theories, Architectures, and Languages (ATAL-2001), August 13, 2001, Seattle,WA, number 2333 in Lecture Notes in Artificial Intelligence, pages 141157, Berlin,2002. Springer-Verlag.

    [42] Rodrigo Machado and Rafael H. Bordini. Running AgentSpeak(L) agents onSIM_AGENT. In John-Jules Meyer and Milind Tambe, editors, Intelligent Agents VIII Proceedings of the Eighth International Workshop on Agent Theories, Architectures,and Languages (ATAL-2001), August 13, 2001, Seattle, WA, number 2333 in LectureNotes in Artificial Intelligence, pages 158174, Berlin, 2002. Springer-Verlag.

    RITA Volume 10 Nmero 1 2003 35

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    [43] John-Jules Ch. Meyer. Agent languages and their relationship to other programmingparadigms. In Jrg P. Mller, Munindar P. Singh, and Anand S. Rao, editors, Intel-ligent Agents VProceedings of the Fifth International Workshop on Agent Theories,Architectures, and Languages (ATAL-98), held as part of the Agents World, Paris, 47 July, 1998, number 1555 in Lecture Notes in Artificial Intelligence, pages 113131,Heidelberg, 1999. Springer-Verlag. UCL-CS [RN/98/29].

    [44] Robin Milner, Joachim Parrow, and David Walker. A calculus for mobile processes(parts I and II). Information and Computation, 100(1):140 and 4177, September1992.

    [45] lvaro F. Moreira and Rafael H. Bordini. An operational semantics for a BDI agent-oriented programming language. In Proceedings of the Workshop on Logics for Agent-Based Systems (LABS-02), held in conjunction with the Eighth International Confe-rence on Principles of Knowledge Representation and Reasoning (KR2002), April 2225, Toulouse, France, pages 4559, 2002.

    [46] lvaro F. Moreira, Renata Vieira, and Rafael H. Bordini. Extending the operationalsemantics of a BDI agent-oriented programming language for introducing speech-actbased communication. In Proceedings of the Workshop on Declarative Agent Lan-guages and Technologies (DALT-03), held with AAMAS-03, 15 July, 2003, Melbourne,Australia, 2003.

    [47] Gordon D. Plotkin. A structural approach to operational semantics. Technical report,Computer Science Department, Aarhus University, Aarhus, 1981.

    [48] Anand S. Rao. AgentSpeak(L): BDI agents speak out in a logical computable lan-guage. In Walter Van de Velde and John Perram, editors, Proceedings of the SeventhWorkshop on Modelling Autonomous Agents in a Multi-Agent World (MAAMAW96),2225 January, Eindhoven, The Netherlands, number 1038 in Lecture Notes in Artifi-cial Intelligence, pages 4255, London, 1996. Springer-Verlag.

    [49] Anand S. Rao. Decision procedures for propositional linear-time belief-desire-intentionlogics. In Michael Wooldridge, Jrg P. Mller, and Milind Tambe, editors, IntelligentAgents IIProceedings of the Second International Workshop on Agent Theories, Ar-chitectures, and Languages (ATAL95), held as part of IJCAI95, Montral, Canada,August 1995, number 1037 in Lecture Notes in Artificial Intelligence, pages 3348,Berlin, 1996. Springer-Verlag.

    [50] Anand S. Rao and Michael P. Georgeff. An abstract architecture for rational agents.In Charles Rich, William R. Swartout, and Bernhard Nebel, editors, Proceedings of

    36 RITA Volume 10 Nmero 1 2003

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    the Third International Conference on Principles of Knowledge Representation and Re-asoning (KR92), 2529 October, Cambridge, MA, pages 439449, San Mateo, CA,October 1992. Morgan Kaufmann.

    [51] Anand S. Rao and Michael P. Georgeff. BDI agents: From theory to practice. InVictor Lesser and Les Gasser, editors, Proceedings of the First International Conferenceon Multi-Agent Systems (ICMAS95), 1214 June, San Francisco, CA, pages 312319,Menlo Park, CA, 1995. AAAI Press / MIT Press.

    [52] Anand S. Rao and Michael P. Georgeff. Decision procedures for BDI logics. Journal ofLogic and Computation, 8(3):293343, 1998.

    [53] Mara Ribeiro Rodrigues, Antnio Carlos da Rocha Costa, and Rafael Heitor Bordini.A system of exchange values to support social interactions in artificial societies. InProceedings of the Second International Joint Conference on Autonomous Agents andMulti-Agent Systems (AAMAS-2003), Melbourne, Australia, 1418 July, 2003. To ap-pear.

    [54] J.S. Rosenschein and G. Zlotkin. Rules of Encounter: Designing Conventions for Auto-mated Negotiation among Computers. MIT Press, Cambridge, MA, 1994.

    [55] Yoav Shoham. Agent-oriented programming. Artificial Intelligence, 60:5192, 1993.[56] Munindar P. Singh, Anand S. Rao, and Michael P. Georgeff. Formal methods in

    DAI: Logic-based representation and reasoning. In Gerhard Wei, editor, MultiagentSystemsA Modern Approach to Distributed Artificial Intelligence, chapter 8, pages331376. MIT Press, Cambridge, MA, 1999.

    [57] V. S. Subrahmanian, Piero Bonatti, Jrgen Dix, Thomas Eiter, Sarit Kraus, Fatma Oz-can, and Robert Ross. Heterogeneous Agent Systems. The MIT Press, 2000.

    [58] Jorge A. R. Torres, Luciana P. Nedel, and Rafael H. Bordini. Using the BDI architectureto produce autonomous characters in virtual worlds. In Proceedings of the Fourth Inter-national Conference on Interactive Virtual Agents (IVA 2003), Irsee, Germany, 1517September, Lecture Notes in Artificial Intelligence, Berlin, 2003. Springer-Verlag. Shortpaper, to appear.

    [59] Birna van Riemsdijk, Wiebe van der Hoek, and John-Jules Ch. Meyer. Agent program-ming in dribble: from beliefs to goals using plans. In Jeffrey S. Rosenschein, TuomasSandholm, Wooldridge Michael, and Makoto Yokoo, editors, Proceedings of the Se-cond International Joint Conference on Autonomous Agents and Multi-Agent Systems(AAMAS-2003), Melbourne, Australia, 1418 July, pages 393400, New York, NY,2003. ACM Press.

    RITA Volume 10 Nmero 1 2003 37

  • Linguagens de Programao Orientadas a Agentes: AgentSpeak(L)

    [60] Willem Visser, Klaus Havelund, Guillaume Brat, and SeungJoon Park. Model chec-king programs. In Proceedings of the Fifteenth International Conference on AutomatedSoftware Engineering (ASE00), 11-15 September, Grenoble, France, pages 312. IEEEComputer Society, 2000.

    [61] Gerhard Wei, editor. Distributed Artificial Intelligence Meets Machine LearningLearning in Multiagent Environments. Number 1221 in Lecture Notes in Artificial In-telligence. Springer-Verlag, Berlin, 1997.

    [62] Gerhard Wei, editor. Multiagent SystemsA Modern Approach to Distributed Artifi-cial Intelligence. MIT Press, Cambridge, MA, 1999.

    [63] Michael Wooldridge. Intelligent agents. In Gerhard Wei, editor, Multiagent SystemsA Modern Approach to Distributed Artificial Intelligence, chapter 1, pages 2777. MITPress, Cambridge, MA, 1999.

    [64] Michael Wooldridge. Reasoning about Rational Agents. The MIT Press, Cambridge,MA, 2000.

    [65] Michael Wooldridge. An Introduction to MultiAgent Systems. John Wiley & Sons, 2002.[66] Michael Wooldridge and Nicholas R. Jennings. Intelligent agents: Theory and

    practice. The Knowledge Engineering Review, 10(2):115152, 1995. URL:http://www.elec.qmw.ac.uk/dai/pubs.

    [67] Michael J. Wooldridge, Nicholas R. Jennings, and David Kinny. The Gaia methodologyfor agent-oriented analysis and design. Autonomous Agents and Multi-Agent Systems,3(3):285312, 2000.

    [68] Franco Zambonelli and H. Van Dyke Parunak. Signs of a revolution in computer scienceand software engineering. In Paolo Petta, Robert Tolksdorf, and Franco Zambonelli,editors, Proceedings of the Third International Workshop on Engineering Societies inthe Agents World (ESAW 2002), Madrid, Spain, 1617 September, number 2577 inLecture Notes in Artificial Intelligence, pages 1328, Berlin, 2003. Springer-Verlag.

    38 RITA Volume 10 Nmero 1 2003