Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

45
Comunicação entre Comunicação entre Agentes Agentes Inteligentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque < < [email protected] [email protected] > >

Transcript of Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Page 1: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Comunicação entre Comunicação entre Agentes InteligentesAgentes Inteligentes

Ryan Leite AlbuquerqueRyan Leite Albuquerque < < [email protected]@cesar.org.br > >

Page 2: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Motivação : UbiqüidadeMotivação : UbiqüidadeMotivação : UbiqüidadeMotivação : Ubiqüidade

Ubiqüidade: Do latim Ubiqüidade: Do latim “ubiquu”“ubiquu” O que está em todo lugar a toda horaO que está em todo lugar a toda hora

Ubiqüidade ComputacionalUbiqüidade Computacional Os serviços computacionais poderão ser usados Os serviços computacionais poderão ser usados

em toda parte e a qualquer horaem toda parte e a qualquer hora ““JetsonsJetsons”, “”, “Sexto DiaSexto Dia”, “”, “MatrixMatrix”. Algo familiar ?”. Algo familiar ?

CenárioCenário SeDiSeDi = Secretário Digital = Secretário Digital Júlia é Engenheira de TráfegoJúlia é Engenheira de Tráfego

Page 3: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Motivação : Cenário de um Motivação : Cenário de um SeDiSeDiMotivação : Cenário de um Motivação : Cenário de um SeDiSeDi Chegada ao AeroportoChegada ao Aeroporto

Visto de entradaVisto de entrada Caminho até o ponto de ônibus (óculos)Caminho até o ponto de ônibus (óculos)

A Caminho do HotelA Caminho do Hotel Deficiente visual ajudado pelo Deficiente visual ajudado pelo SeDiSeDi e o e o SeDiSeDi do ônibus do ônibus ComprasCompras

Localização e comparação das lojas que vendem o produtoLocalização e comparação das lojas que vendem o produto

ConferênciaConferência Nível de ansiedade (monitoramento)Nível de ansiedade (monitoramento)

Reprodução do CD da Reprodução do CD da EniaEnia Demonstrações Demonstrações onlineonline

Animações holográficasAnimações holográficas Conexão com as câmeras Conexão com as câmeras onlineonline nas avenidas nas avenidas

Page 4: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Motivação : Cenário de um Motivação : Cenário de um SeDiSeDiMotivação : Cenário de um Motivação : Cenário de um SeDiSeDi ComemoraçãoComemoração

Ninguém tem que combinar nadaNinguém tem que combinar nada Os Os SeDisSeDis decidem onde ir baseados nos perfis decidem onde ir baseados nos perfis

Pagamento Pagamento Automático. Sem estresse. Da melhor forma para Júlia.Automático. Sem estresse. Da melhor forma para Júlia.

Voltando pra casa...Voltando pra casa... Putz! E as compras?Putz! E as compras?

O presente já está sendo entregueO presente já está sendo entregue

Chegando em casaChegando em casa SuprimentosSuprimentos CurriculumCurriculum

Page 5: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Motivação : AgentesMotivação : AgentesMotivação : AgentesMotivação : Agentes

ReflexãoReflexão Cenário altamente dinâmicoCenário altamente dinâmico Integração de diversas mídias e dispositivosIntegração de diversas mídias e dispositivos

Como implemnetar?Como implemnetar? Sugestão: usar Sugestão: usar Agentes InteligentesAgentes Inteligentes

Agentes Agentes Conjunto de Conjunto de metáforasmetáforas, , técnicas técnicas e e ferramentasferramentas Ideal para aplicações Ideal para aplicações autônomasautônomas, , móveismóveis e inseridas em uma e inseridas em uma sociedadesociedade Naturalmente capazes de:Naturalmente capazes de:

ReagirReagir de forma autônoma e reativa de forma autônoma e reativa RaciocinarRaciocinar de forma pró-ativa de forma pró-ativa Adaptar-seAdaptar-se ao ambiente onde estão inseridos ao ambiente onde estão inseridos IteragirIteragir com outras entidades com outras entidades

Page 6: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Motivação : AgentesMotivação : AgentesMotivação : AgentesMotivação : Agentes

IteraçãoIteração Solução compartilhada de problemasSolução compartilhada de problemas Requisito básicoRequisito básico

Mecanismo de ComunicaçãoMecanismo de Comunicação Linguagem comumLinguagem comum Infra-estruturaInfra-estrutura

Mas como implementar?Mas como implementar?

Page 7: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

RoteiroRoteiroRoteiroRoteiro

Conceitos BásicosConceitos Básicos Tipos de ComunicaçãoTipos de Comunicação Atos da FalaAtos da Fala Linguagens de ComunicaçãoLinguagens de Comunicação Linguagens de ConteúdoLinguagens de Conteúdo OntologiasOntologias

KQMLKQML

FIPA ACLFIPA ACL

ExemploExemplo

FerramentasFerramentas

Page 8: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Conceitos BásicosConceitos Básicos

Page 9: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Tipos de comunicaçãoTipos de comunicaçãoTipos de comunicaçãoTipos de comunicação

TelepatiaTelepatia Acesso direto à uma Acesso direto à uma Knowledge Base (KB)Knowledge Base (KB)

Lendo a mente...Lendo a mente... Cada um com sua KBCada um com sua KB KB compartilhadaKB compartilhada

ProblemasProblemas Podem usar o mesmo símbolo para denotar coisas diferentesPodem usar o mesmo símbolo para denotar coisas diferentes Podem usar símbolos diferentes para denotar a mesma coisaPodem usar símbolos diferentes para denotar a mesma coisa

Linguagem de Comunicação de Agentes (LCA)Linguagem de Comunicação de Agentes (LCA) ComumComum

Page 10: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Atos da FalaAtos da FalaAtos da FalaAtos da Fala

Categorização das expressões humanas qto a Categorização das expressões humanas qto a Intenção do locutorIntenção do locutor Impacto ou reação do ato comunicativo causado no estado Impacto ou reação do ato comunicativo causado no estado

mental do receptormental do receptor

Existem aproximadamente 4600 atos de fala!Existem aproximadamente 4600 atos de fala! Não é esse o objetivo de uma ACLNão é esse o objetivo de uma ACL

Ajuda a decidir as primitivas das ACLsAjuda a decidir as primitivas das ACLs Todo primitiva de uma ACL é um ato de falaTodo primitiva de uma ACL é um ato de fala

Page 11: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Atos da FalaAtos da FalaAtos da FalaAtos da Fala

Linguagem HumanaLinguagem Humana Atos comunicativos são interpretados a partir da Atos comunicativos são interpretados a partir da

mensagemmensagem e do e do contextocontexto Nem sempre esta interpretação é óbviaNem sempre esta interpretação é óbvia

DificuldadesDificuldades ““Cale-se !” (Comando)Cale-se !” (Comando) ““Por favor, você pode se calar ?” (Pedido)Por favor, você pode se calar ?” (Pedido) ““Você vai se calar ou não ?” (Pergunta)Você vai se calar ou não ?” (Pergunta) ““Eu gostaria que você se calasse.” (Informação)Eu gostaria que você se calasse.” (Informação)

Page 12: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Atos da Fala : CategoriasAtos da Fala : CategoriasAtos da Fala : CategoriasAtos da Fala : Categorias

RepresentativosRepresentativos Expressam uma Expressam uma PropostaProposta Ex: Ex: “Vamos jogar boliche “Vamos jogar boliche

amanhã?”amanhã?”

DiretivosDiretivos Expressam um Expressam um PedidoPedido ou ou

ComandoComando Ex: Ex: “Cale-se!”“Cale-se!”

ComissivosComissivos Expressam Expressam PromessaPromessa ou ou

AmeaçaAmeaça Ex: Ex: “Eu prometo doar “Eu prometo doar

R$1.000,00.”R$1.000,00.”

ExpressivosExpressivos Expressam Expressam DesculpasDesculpas ou ou

AgradecimentosAgradecimentos Ex: Ex: “Desculpe pelo atraso?”“Desculpe pelo atraso?”

DeclarativosDeclarativos Mudam o Mudam o Estado do MundoEstado do Mundo Ex: Ex: “Eu os declaro marido e “Eu os declaro marido e

mulher!”mulher!”

VeredictosVeredictos Expressam um Expressam um JulgamentoJulgamento Ex: Ex: “West é criminoso.”“West é criminoso.”

Page 13: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Atos da FalaAtos da FalaAtos da FalaAtos da Fala

Ato LocucionárioAto Locucionário Emissão da mensagemEmissão da mensagem

Efeito IlocucionárioEfeito Ilocucionário O que o locutor entende por algoO que o locutor entende por algo

Efeito PerlocucionárioEfeito Perlocucionário O real efeito do ato comunicativo no receptorO real efeito do ato comunicativo no receptor

IdealIdeal Efeito Efeito perlocucionário previsívelperlocucionário previsível Para um dado Ato Locucionário,Para um dado Ato Locucionário,

Efeito Ilocucionário = Efeito Perlocucionário.Efeito Ilocucionário = Efeito Perlocucionário. Em miúdos, prever a reação do receptor!Em miúdos, prever a reação do receptor!

Page 14: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Linguagens de ComunicaçãoLinguagens de ComunicaçãoLinguagens de ComunicaçãoLinguagens de Comunicação

Baseadas na Baseadas na Teoria dos Atos da FalaTeoria dos Atos da Fala Objetiva a troca de informações entre agentesObjetiva a troca de informações entre agentes

Transporte de mensagens na rede através de protocolos de baixo nívelTransporte de mensagens na rede através de protocolos de baixo nível SMTP, TCP/IP, IIOP ou HTTPSMTP, TCP/IP, IIOP ou HTTP

Esse transporte é transparente para o usuárioEsse transporte é transparente para o usuário

Para o KSE, uma LCA é dividida em:Para o KSE, uma LCA é dividida em: OntologiaOntologia Linguagem interna (lógica)Linguagem interna (lógica)

Codificação do conteúdoCodificação do conteúdo Linguagem externaLinguagem externa

Ato Locucionário (Performativa)Ato Locucionário (Performativa) Encapsulamento de infomações para o roteamentoEncapsulamento de infomações para o roteamento

Page 15: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

OntologiasOntologiasOntologiasOntologias

DefiniçãoDefinição É um É um vocabuláriovocabulário cujos cujos termostermos são relacionados a um certo são relacionados a um certo

domínio e precisamente definidos por textos como entradas domínio e precisamente definidos por textos como entradas de dicionário ou de enciclopédiasde dicionário ou de enciclopédias

Os Os relacionamentosrelacionamentos entre esses termos também são entre esses termos também são especificadas usando técnicas de modelagem formalespecificadas usando técnicas de modelagem formal

Uma vez especificada…Uma vez especificada… Pode-se construir uma KB relacionadas ao domínio coberto Pode-se construir uma KB relacionadas ao domínio coberto

pela ontologiapela ontologia Esta KB pode ser compartilhada com outros agentes Esta KB pode ser compartilhada com outros agentes

interessados em conhecimentos sobre este domíniointeressados em conhecimentos sobre este domínio

Page 16: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Linguagem Interna (LI)Linguagem Interna (LI)Linguagem Interna (LI)Linguagem Interna (LI)

O que é?O que é? Linguagem em que deve ser codificado o conhecimento que Linguagem em que deve ser codificado o conhecimento que

se deseja compartilhar com o destinatário da mensagemse deseja compartilhar com o destinatário da mensagem

ExemplosExemplos KIF ( KIF ( Knowledge Interchange Format Knowledge Interchange Format ))

Versão prefixada (“Versão prefixada (“LISP likeLISP like”) da lógica clássica de primeira ordem”) da lógica clássica de primeira ordem Não está totalmente implementada para uso comercialNão está totalmente implementada para uso comercial Produzida pelo KSEProduzida pelo KSE

Linguagem naturalLinguagem natural Prolog, SQL, LISPProlog, SQL, LISP RDF (Resource Description Framework)RDF (Resource Description Framework) XMLXML

Ato Comunicativo

ConteúdoMensagemMensagem

Page 17: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Linguagem Externa ( LE )Linguagem Externa ( LE )Linguagem Externa ( LE )Linguagem Externa ( LE )

O que é ?O que é ? Linguagem que encapsula:Linguagem que encapsula:

O ato comunicativo = ato locucionário = performativaO ato comunicativo = ato locucionário = performativa Informações para o roteamentoInformações para o roteamento

Agente receptorAgente receptor OntologiaOntologia Linguagem internaLinguagem interna ConteúdoConteúdo ……

ExemplosExemplos KQMLKQML FIPA ACLFIPA ACL

Page 18: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

KQMLKQML

Knowledge Query and Manipulation LanguageKnowledge Query and Manipulation Language

Page 19: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

KQMLKQMLKQMLKQML

ObjetivoObjetivo Interoperabilidade entre agentes de software em aplicações Interoperabilidade entre agentes de software em aplicações

distribuídas e/ou heterogêneadistribuídas e/ou heterogênea

Pioneira ( Pioneira ( KSEKSE – 1994 ) – 1994 ) AplicaçõesAplicações

eCommerce (negociação)eCommerce (negociação) JogosJogos BDs distribuídos e/ou heterogêneosBDs distribuídos e/ou heterogêneos Integração de tecnologiasIntegração de tecnologias ......

Page 20: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

KQML : CaracterísticasKQML : CaracterísticasKQML : CaracterísticasKQML : Características

Principais características da linguagem:Principais características da linguagem: Independente de Independente de Linguagem InternaLinguagem Interna Independente de Independente de OntologiaOntologia Independente de Independente de Protocolos deProtocolos de Transporte de RedeTransporte de Rede Comunicação baseada nos Comunicação baseada nos atos da falaatos da fala

PerformativasPerformativas

Sugere o uso de Agentes FacilitadoresSugere o uso de Agentes Facilitadores Camadas:Camadas:

Comunicação, Conteúdo e MensagemComunicação, Conteúdo e Mensagem

Page 21: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

KQML : SintaxeKQML : SintaxeKQML : SintaxeKQML : Sintaxe

( performativa ( performativa

:sender:sender <word><word>

:receiver:receiver <word><word>

:reply-with:reply-with <word><word>

:in-reply-to:in-reply-to <word><word>

:language:language <word><word>

:ontology:ontology <word><word>

:content:content <expression> <expression>

))

Camada de MensagemCamada de Mensagem

Camada de ConteúdoCamada de Conteúdo

Camada de ComunicaçãoCamada de Comunicação

Page 22: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

KQML : PerformativasKQML : PerformativasKQML : PerformativasKQML : Performativas

Performativas TípicasPerformativas Típicas tell tell : informa que o conteúdo da mensagem está na KB do : informa que o conteúdo da mensagem está na KB do

locutorlocutor ask-ifask-if : o : o locutorlocutor quer saber se o conteúdo de sua quer saber se o conteúdo de sua

mensagem é verdadeiro para o mensagem é verdadeiro para o receptorreceptor advertiseadvertise : o locutor : o locutor quer que o receptor saiba que ele pode quer que o receptor saiba que ele pode

processar mensagens no modelo do seu conteúdo processar mensagens no modelo do seu conteúdo insertinsert : o locutor “ : o locutor “pedepede” ao receptor que adicione o ” ao receptor que adicione o

conteúdo da mensagem à sua KBconteúdo da mensagem à sua KB

Outras PerformativasOutras Performativas achieve, ask-about, ask-all, ask-one, break, broadcast, achieve, ask-about, ask-all, ask-one, break, broadcast,

broker-all, broker-one, deny, delete, delete-all, delete-one, broker-all, broker-one, deny, delete, delete-all, delete-one, discard, eos, error, evaluate, forward, generator, monitor, …discard, eos, error, evaluate, forward, generator, monitor, …

Page 23: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

ExemploExemploExemploExemplo

A1A1 envia a seguinte mensagem para envia a seguinte mensagem para A2A2 ... ...( advertise( advertise

:sender:sender A1A1

:receiver:receiver A2A2

:reply-with:reply-with id1id1

:language:language KQMLKQML

:ontology:ontology kqml-ontologykqml-ontology

:content:content ( ask-if( ask-if

:sender:sender A2A2

:receiver:receiver A1A1

:in-reply-to:in-reply-to id1id1

:language:language PrologProlog

:ontology:ontology CInCIn

:content:content “Professor(X,Y)”))“Professor(X,Y)”))

Page 24: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

ExemploExemploExemploExemplo

A2A2 pergunta então a pergunta então a A1A1 ... ...( ask-if( ask-if

:sender:sender A2A2

:receiver:receiver A1A1

:in-reply-to:in-reply-to id1id1

:reply-with:reply-with id2id2

:language:language PrologProlog

:ontology:ontology CInCIn

:content:content “Professor(X, ‘Agentes’)”“Professor(X, ‘Agentes’)”

))

Page 25: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

ExemploExemploExemploExemplo

A1A1 responde ao agente responde ao agente A2A2 ... ...( tell( tell

:sender:sender A1A1

:receiver:receiver A2A2

:in-reply-to:in-reply-to id2id2

:reply-with:reply-with id3id3

:language:language PrologProlog

:ontology:ontology CInCIn

:content:content “X = Geber, X = Flávia, “X = Geber, X = Flávia, X = Jacques...” X = Jacques...”

))

Page 26: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

KQML : ProblemasKQML : ProblemasKQML : ProblemasKQML : Problemas

Ambigüidade e Termos VagosAmbigüidade e Termos Vagos O significado de performativas reservadas é pouco claro. O significado de performativas reservadas é pouco claro.

Normalmente estão associadas à intuição e ao domínio da Normalmente estão associadas à intuição e ao domínio da linguagem natural do intérpretelinguagem natural do intérprete

Performativas com nomes inadequadosPerformativas com nomes inadequados Algumas performativas têm nomes que Algumas performativas têm nomes que nãonão correspondem correspondem

diretamente ao ato comunicativo a ela associadodiretamente ao ato comunicativo a ela associado Ex: “Ex: “telltell””

Ausência de performativasAusência de performativas Alguns atos comunicativos não estão representados entre Alguns atos comunicativos não estão representados entre

as performativas disponíveisas performativas disponíveis

Page 27: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

FIPAFIPA

Foundation for Intelligent Physical AgentsFoundation for Intelligent Physical Agents

Page 28: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

FIPA : HistóricoFIPA : HistóricoFIPA : HistóricoFIPA : Histórico

FIPA é uma associação sem fins FIPA é uma associação sem fins lucrativos fundada em 1996 e localizada lucrativos fundada em 1996 e localizada em Genebra na Suíçaem Genebra na Suíça

Objetiva promover o sucesso das Objetiva promover o sucesso das aplicações, serviços e equipamentos aplicações, serviços e equipamentos baseados em agentesbaseados em agentes

Provê especificações para maximizar a Provê especificações para maximizar a interoperabilidade entre aplicações, interoperabilidade entre aplicações, serviços e equipamentos baseados em serviços e equipamentos baseados em agentesagentes

Page 29: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

FIPAFIPAFIPAFIPA

FIPA x KQMLFIPA x KQML Ao contrário do KQML, as especificações FIPA têm uma Ao contrário do KQML, as especificações FIPA têm uma

grande preocupação com a grande preocupação com a modelagem semânticamodelagem semântica

Linguagem de Comunicação de AgentesLinguagem de Comunicação de Agentes FIPA ACLFIPA ACL

Linguagens InternaLinguagens Interna FIPA Content Language Library (FIPA-CLL)FIPA Content Language Library (FIPA-CLL) FIPA-SL, FIPA-RDF, FIPA-CCL, FIPA-KIF, …FIPA-SL, FIPA-RDF, FIPA-CCL, FIPA-KIF, … Mas também é independente de LIMas também é independente de LI

Page 30: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

FIPA ACLFIPA ACLFIPA ACLFIPA ACL

SintaxeSintaxe Praticamente igual ao KQMLPraticamente igual ao KQML Conjunto de performativas menorConjunto de performativas menor

accept-proposal, agree, cancel, cfp, confirm, disconfirm, accept-proposal, agree, cancel, cfp, confirm, disconfirm, failure, inform, inform-if, inform-ref, not-understood, failure, inform, inform-if, inform-ref, not-understood, propose, query-if, query-ref, refuse, reject-proposal, propose, query-if, query-ref, refuse, reject-proposal, request, request-when, request-whenever, subscriberequest, request-when, request-whenever, subscribe

E só estes!E só estes!

SemânticaSemântica Definida precisamenteDefinida precisamente

Page 31: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

FIPA ACL x KQMLFIPA ACL x KQMLFIPA ACL x KQMLFIPA ACL x KQML

IgualdadesIgualdades Independência de IL e de ontologiasIndependência de IL e de ontologias Sintaxe idênticaSintaxe idêntica

DiferençasDiferenças Visível principalmente na semânticaVisível principalmente na semântica Performativas são diferentesPerformativas são diferentes Os agentes de FIPA ACL são proibido de manipular Os agentes de FIPA ACL são proibido de manipular

diretamente a KB de outros agentesdiretamente a KB de outros agentes Tratamento diferente do gerenciamento dos agentes e das Tratamento diferente do gerenciamento dos agentes e das

primitivas de administraçãoprimitivas de administração Em FIPA ACL Em FIPA ACL register, unregister, ...register, unregister, ..., são tratados por um módulo a , são tratados por um módulo a

parteparte

Page 32: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

FIPA ACL x KQMLFIPA ACL x KQMLFIPA ACL x KQMLFIPA ACL x KQML

Diferenças (situação fictícia)Diferenças (situação fictícia) Em KQMLEm KQML

Mensagem de A para B: Mensagem de A para B: achieve goal Xachieve goal X Usa todo o vocabulário da LCA (performativa “achieve”)Usa todo o vocabulário da LCA (performativa “achieve”)

Em FIPA ACLEm FIPA ACL Mensagem de A para B: Mensagem de A para B: tell ( tell ( achieve goal Xachieve goal X ) ) A A LCALCA não entende! A não entende! A LILI sim! sim! Elimina a necessidade da performativa Elimina a necessidade da performativa achieveachieve na LCA na LCA

Questão ainda em aberto!Questão ainda em aberto!

ConteúdoConteúdo

Page 33: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

ExemploExemplo

A simple one...A simple one...

Page 34: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Agente SomadorAgente SomadorAgente SomadorAgente Somador

LinguagensLinguagens JavaJava KQMLKQML

FerramentasFerramentas SACI (SACI (Simple Agent Communication InfrastructureSimple Agent Communication Infrastructure))

Page 35: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

SociedadeSociedade

Agente SomadorAgente SomadorAgente SomadorAgente Somador

Agente ServidorAgente Servidor Agente ClienteAgente Cliente

FacilitadorFacilitador(1) Advertise(1) Advertise (2) Get Possible Servers(2) Get Possible Servers

(3) Forward(3) Forward(5) Forward(5) Forward(4) Ask One(4) Ask One

(6) Tell(6) Tell

Page 36: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Plus ServerPlus ServerPlus ServerPlus Server

public static void main(String[] args) {public static void main(String[] args) {

Agent a = new PlusServer();Agent a = new PlusServer();

if (a.enterSoc("APlusServer")) {if (a.enterSoc("APlusServer")) {

mbox.advertise("ask-one", "algebra", "matematica", mbox.advertise("ask-one", "algebra", "matematica", "X+Y")"X+Y");;

a.run(); a.run(); // Fica lendo o Mailbox// Fica lendo o Mailbox

}}

}}

Page 37: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Plus ServerPlus ServerPlus ServerPlus Server

public void run() {public void run() {

while (running) {while (running) {

Message m = mbox.Message m = mbox.pollingpolling();();

if (m.get("if (m.get("performativeperformative").equals("").equals("forwardforward")) {")) {

m = new Message(m.get("content").toString());m = new Message(m.get("content").toString());

}}

if (m.get("if (m.get("performativeperformative").equals("").equals("ask-oneask-one")) {")) {

Message r = new Message("Message r = new Message("(tell)(tell)");");

r.put("r.put("receiverreceiver", ", m.get("sender")m.get("sender")););

r.put("r.put("in-reply-toin-reply-to", ", m.get("reply-with")m.get("reply-with")););

r.put("r.put("contentcontent", ", calcula( (String)m.get("content") )calcula( (String)m.get("content") ) ););

mbox.forward(r)mbox.forward(r);;

} else {} else { System.out.println("ignorando a mensagem");System.out.println("ignorando a mensagem"); }}

}}

}}

Page 38: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Plus ClientPlus ClientPlus ClientPlus Client

public static void main(String[] args) {public static void main(String[] args) {

PlusClient a = new PlusClient();PlusClient a = new PlusClient();

if (a.enterSoc("AClient")) {if (a.enterSoc("AClient")) {

a.run(args[0]);a.run(args[0]);

}}

}}

Page 39: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Plus ClientPlus ClientPlus ClientPlus Client

public void run(String exp) {public void run(String exp) {

String ag String ag = =

mbox.consultYP("ask-one", "algebra", "matematica", "X+Y");mbox.consultYP("ask-one", "algebra", "matematica", "X+Y");

Message m = new Message("(ask-one :content \""+ exp + "\")");Message m = new Message("(ask-one :content \""+ exp + "\")");

m.put("receiver", m.put("receiver", agag););

m.put("reply-with", "m.put("reply-with", "rSomarSoma");");

mbox.forward(m);mbox.forward(m);

Message resposta = Message resposta = mbox.polling();mbox.polling();

if (resposta.get("if (resposta.get("performativeperformative").equals("").equals("forwardforward")) {")) {

resposta = new Message(resposta.get("content").toString());resposta = new Message(resposta.get("content").toString());

}}

if ( ((String)resposta.get("if ( ((String)resposta.get("in-reply-toin-reply-to")).equals("")).equals("rSomarSoma")) {")) {

System.out.println("\n\n>>>>>>>>> Resposta de “System.out.println("\n\n>>>>>>>>> Resposta de “ ++

resposta.get("sender")resposta.get("sender") + " foi “+ " foi “ ++ resposta.get("content")resposta.get("content")););

}}

mbox.disconnect();mbox.disconnect();

}}

Page 40: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Ferramentas de AuxílioFerramentas de Auxílio

AnáliseAnálise

Page 41: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

CritériosCritériosCritériosCritérios

Ferramentas escritas em Ferramentas escritas em JavaJava

Com Com downloaddownload disponível disponível

Manuais de instalação e configuraçãoManuais de instalação e configuração O mínimo necessárioO mínimo necessário

DivisãoDivisão Ambientes CompletosAmbientes Completos Bibliotecas de Classes Java (API)Bibliotecas de Classes Java (API)

Page 42: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Nome Vs AnoMec.

Transp.ACL Onto. Facil. Documet. Tipo OBS

AgentBuilder Lite

1.3 1999 RMI, TCP/IP KQML Sim Não Excelente!

Ambiente Completo -

Bond - 1998 Shadow KQML Não Não Razoável Biblioteca -

JACK 2.1 2000 UDP/IP - Sim Sim Excelente!Ambiente Completo -

JACKAL 3.1 1999 TCP/IP KQML Não Não Razoável Biblioteca -

JADE 2.01 - RMI FIPA Sim Não Boa Biblioteca Suporte a JSP e JESS

JATLite 0.4b - TCP/IP KQML Não Sim Razoável Biblioteca -

JKQML 5.1a - KTP, ATP, OTP KQML Sim Sim Boa Biblioteca -

Madkit 2.0.1 2000 ??? KQML Não Não Boa Biblioteca Ambiente de Execução

SACI RC3 2000 RMI KQML Não Sim Boa Biblioteca -

FIPA OS 1.3.2 2000 RMI, CORBA FIPA Não Não Ruim Biblioteca -

ZEUS 1.05 2000 TCP/IP FIPA Sim Sim Excelente!Ambiente Completo -

Page 43: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Referências Referências Referências Referências

KQML KQML http://www.cs.umbc.edu/kqml/http://www.cs.umbc.edu/kqml/

FIPAFIPA http://www.fipa.org/http://www.fipa.org/

SACISACI http://www.lti.pcs.usp.br/saci/http://www.lti.pcs.usp.br/saci/

FIPA x KQMLFIPA x KQML http://www.objs.com/agility/tech-reports/9807-comparing-http://www.objs.com/agility/tech-reports/9807-comparing-

ACLs.htmlACLs.html

Page 44: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Referências Referências Referências Referências

Finin, Tim and Labrou, Yannis. A Proposal for a new Finin, Tim and Labrou, Yannis. A Proposal for a new KQML Specification; KQML Specification;

Finin, Tim., Labrou, Yannis and Mayfield, James. KQML as na Finin, Tim., Labrou, Yannis and Mayfield, James. KQML as na communication language. communication language.

Finin, Tim and Fritzon, Rich. KQML - A language and Protocol Finin, Tim and Fritzon, Rich. KQML - A language and Protocol for Knowledge and Information Exchange. for Knowledge and Information Exchange.

Finin, Tim and Labrou, Yannis. Semantics and Conversations Finin, Tim and Labrou, Yannis. Semantics and Conversations for na Agent Communication Languagefor na Agent Communication Language

Patil, Ramesh S., Fikes Richard E., Patel-Schneider Peter F. ., Patil, Ramesh S., Fikes Richard E., Patel-Schneider Peter F. ., Don Mckay, Finnin, Tim., Gruber, Thomas and Neches Robert. Don Mckay, Finnin, Tim., Gruber, Thomas and Neches Robert. The DARPA Knowledge Sharing Effort : Progress ReportThe DARPA Knowledge Sharing Effort : Progress Report

Page 45: Comunicação entre Agentes Inteligentes Ryan Leite Albuquerque Ryan Leite Albuquerque.

Referências Referências Referências Referências

Hübner, Jomi and Sichman, Jaime, "Hübner, Jomi and Sichman, Jaime, "SACI: Uma Ferramenta SACI: Uma Ferramenta para Implementação e Monitoração da Comunicação entre para Implementação e Monitoração da Comunicação entre AgentesAgentes", IBERAMIA'2000, SBIA'2000, Atibaia-SP, novembro de ", IBERAMIA'2000, SBIA'2000, Atibaia-SP, novembro de 2000 (http://www.lti.pcs.usp.br/saci/) 2000 (http://www.lti.pcs.usp.br/saci/)

Andrew C. Huang, Benjamin C. Ling, Shankar Ponnekanti, Andrew C. Huang, Benjamin C. Ling, Shankar Ponnekanti, Armando Fox. “Armando Fox. “Pervasive Computing: What Is It Good ForPervasive Computing: What Is It Good For?. In ?. In proceedings of the Workshop on Mobile Data Management (proceedings of the Workshop on Mobile Data Management (MobiDEMobiDE) in conjunction with ACM ) in conjunction with ACM MobiComMobiCom '99 '99, Seattle, WA, , Seattle, WA, September 1999 (forthcoming)September 1999 (forthcoming)