Comunicação em SMA
Ryan Albuquerque e Patricia Tedesco





Introdução
Conceitos Básicos
KQML
FIPA ACL
Exemplo
1
Motivação : Ubiqüidade

Ubiqüidade: Do latim “ubiquu”


Ubiqüidade Computacional



O que está em todo lugar a toda hora
Os serviços computacionais poderão ser usados
em toda parte e a qualquer hora
“Jetsons”, “Matrix”, “Minority Report”.
Cenário

SeDi = Secretário Digital

Júlia é Engenheira de Tráfego
2
Motivação : Cenário de um
SeDi

Chegada ao Aeroporto



Visto de entrada
Caminho até o ponto de ônibus (óculos)
A Caminho do Hotel


Deficiente visual ajudado pelo SeDi e o SeDi do ônibus
Compras


Localização e comparação das lojas que vendem o produto
Conferência

Nível de ansiedade (monitoramento)


Reprodução do CD da Enia
Demonstrações online


Animações holográficas
Conexão com as câmeras online nas avenidas
3
Motivação : Cenário de um
SeDi

Comemoração

Ninguém tem que combinar nada


Pagamento


Os SeDis decidem onde ir baseados nos perfis
Automático. Sem estresse. Da melhor forma para
Júlia.
Voltando pra casa...

Putz! E as compras?


O presente já está sendo entregue
Chegando em casa


Suprimentos
Curriculum
4
Motivação : Agentes

Reflexão



Como implementar?


Cenário dinâmico
Integração de diversas mídias e dispositivos
Sugestão: usar Agentes Inteligentes
Agentes


Ideal para aplicações autônomas, móveis e inseridas em
uma sociedade
Naturalmente capazes de:




Reagir de forma autônoma e reativa
Raciocinar de forma pró-ativa
Adaptar-se ao ambiente onde estão inseridos
Iteragir com outras entidades
5
Motivação : Agentes

Iteração


Solução compartilhada de problemas
Requisito básico

Mecanismo de Comunicação



Linguagem comum
Infra-estrutura
Mas como implementar?
6
Conceitos Básicos
7
Comunicação...
Relação dinâmica mediada por sinais, que
quando interpretados, afetam os
agentes envolvidos.
Possibilita... Cooperação e Coordenação
8
Tipos de comunicação

Telepatia

Acesso direto à uma Knowledge Base (KB)




Problemas



Lendo a mente...
Cada um com sua KB
KB compartilhada
Podem usar o mesmo símbolo para denotar coisas
diferentes
Podem usar símbolos diferentes para denotar a mesma
coisa
Linguagem de Comunicação de Agentes
(LCA)

Comum
9
Atos da Fala

Categorização das expressões humanas qto a



Existem aproximadamente 4600 atos de fala!


Intenção do locutor
Impacto do ato comunicativo no receptor
Não é esse o objetivo de uma LCA
Ajuda a decidir as primitivas das LCAs

Todo primitiva de uma LCA é um ato de fala
10
Atos da Fala

Linguagem Humana



Atos comunicativos são interpretados a partir
da mensagem e do contexto
Nem sempre esta interpretação é óbvia
Dificuldades




“Cale-se !” (Comando)
“Por favor, você pode se calar ?” (Pedido)
“Você vai se calar ou não ?” (Pergunta)
“Eu gostaria que você se calasse.” (Informação)
11
Atos da Fala : Categorias

Representativos




Expressam um Pedido ou
Comando
Ex: “Cale-se!”
Comissivos


Expressam Promessa ou
Ameaça
Ex: “Eu prometo doar
Expressivos

amanhã?”
Diretivos


Expressam uma Proposta
Ex: “Vamos jogar boliche



Declarativos



Expressam Desculpas ou
Agradecimentos
Ex: “Desculpe pelo atraso?”
Mudam o Estado do Mundo
Ex: “Eu os declaro marido
e mulher!”
Veredictos


Expressam um Julgamento
Ex: “West é criminoso.”
R$1.000,00.”
12
Atos da Fala

Ato Locucionário


Efeito Ilocucionário


O que o locutor entende por algo
 “Ele me pediu para fazer café”
Efeito Perlocucionário


Emissão da mensagem
 “Você poderia fazer um café?”
O real efeito do ato comunicativo no receptor
 “Ele me fez fazer café”
Ideal


Efeito perlocucionário previsível
Para um dado Ato Locucionário,


Efeito Ilocucionário = Efeito Perlocucionário.
Ou seja, prever a reação do receptor!
13
Linguagens de Comunicação


Baseadas na Teoria dos Atos da Fala (Searle, Austin)
Objetiva a troca de informações entre agentes

Transporte de mensagens na rede através de protocolos de baixo
nível



SMTP, TCP/IP, IIOP ou HTTP
Esse transporte é transparente para o usuário
Para o KSE, uma LCA é dividida em:


Ontologia
Linguagem interna (lógica)


Codificação do conteúdo
Linguagem externa


Ato Locucionário (Performativa)
Encapsulamento de infomações para o roteamento
14
Ontologias

Definição



Vocabulário cujos termos são relacionados a um
certo domínio e precisamente definidos.
Os relacionamentos entre esses termos também são
especificadas usando técnicas de modelagem formal
Uma vez especificada…


Pode-se construir uma KB relacionadas ao domínio
coberto pela ontologia
Esta KB pode ser compartilhada com outros agentes
interessados em conhecimentos sobre este domínio
15
Linguagem Interna (LI)

O que é?


Linguagem em que deve ser codificado o conhecimento
que se deseja compartilhar com o destinatário da
mensagem
Exemplos

KIF ( Knowledge Interchange Format )







Versão prefixada (“LISP like”) da lógica clássica de primeira
ordem
Não está totalmente implementada para uso comercial
Produzida pelo KSE
Linguagem natural
Prolog, SQL, LISP
Mensagem
RDF (Resource Description Framework)
XML
Ato Comunicativo
Conteúdo
16
Exemplo de uma Mensagem
KIF


(=(temperatura m1) (scalar 40
Celsius))
(defrelation solteiro (?x) :=
(and (man ?x)
(not(casado ?x))))
17
Linguagem Externa ( LE )

O que é ?

Linguagem que encapsula:


O ato comunicativo = ato locucionário = performativa
Informações para o roteamento






Agente receptor
Ontologia
Linguagem interna
Conteúdo
…
Exemplos


KQML
FIPA ACL
18
KQML
Knowledge Query and Manipulation
Language
19
KQML

Objetivo



Interoperabilidade entre agentes de software
em aplicações distribuídas e/ou heterogêneas
Pioneira ( KSE – 1994 )
Aplicações





eCommerce (negociação)
Jogos
BDs distribuídos e/ou heterogêneos
Integração de tecnologias
...
20
KQML : Características

Principais características da linguagem:

Independente de Linguagem Interna
Independente de Ontologia
Independente de Protocolos de Transporte de

Comunicação baseada nos atos da fala


Rede



Performativas
Sugere o uso de Agentes Facilitadores
Camadas:

Comunicação, Conteúdo e Mensagem
21
KQML : Sintaxe
( performativa
)
:sender
:receiver
:reply-with
:in-reply-to
:language
:ontology
:content
<word>
Camada de Comunicação
<word>
<word>
<word>
Camada de Mensagem
<word>
<word>
Camada de Conteúdo
<expression>
22
KQML : Performativas

Performativas Típicas





tell : informa que o conteúdo da mensagem está na KB do
locutor
ask-if : o locutor quer saber se o conteúdo de sua mensagem
é verdadeiro para o receptor
advertise : o locutor quer que o receptor saiba que ele pode
processar mensagens no modelo do seu conteúdo
insert : o locutor “pede” ao receptor que adicione o conteúdo
da mensagem à sua KB
Outras Performativas

achieve, ask-about, ask-all, ask-one, break, broadcast,
broker-all, broker-one, deny, delete, delete-all, delete-one,
discard, eos, error, evaluate, forward, generator, monitor, …
23
Exemplo

A1 envia a seguinte mensagem para A2 ...
( advertise
:sender
:receiver
:reply-with
:language
:ontology
:content
A1
A2
id1
KQML
kqml-ontology
( ask-if
:sender
A2
:receiver
A1
:in-reply-to id1
:language
Prolog
:ontology
CIn
:content
“Professor(X,Y)”))
24
Exemplo

A2 pergunta então a A1 ...
( ask-if
:sender
:receiver
:in-reply-to
:reply-with
:language
:ontology
:content
)
A2
A1
id1
id2
Prolog
CIn
“Professor(X, ‘Agentes’)”
25
Exemplo

A1 responde ao agente A2 ...
( tell
:sender
:receiver
:in-reply-to
:reply-with
:language
:ontology
:content
A1
A2
id2
id3
Prolog
CIn
“X = Geber, X = Flávia,
X = Jacques...”
)
26
KQML : Problemas

Ambigüidade e Termos Vagos


Performativas com nomes inadequados



O significado de performativas é pouco claro.
Algumas performativas têm nomes que não
correspondem diretamente ao ato comunicativo a
ela associado
Ex: “tell”
Ausência de performativas

Alguns atos comunicativos não estão representados
entre as performativas disponíveis
27
FIPA
Foundation for Intelligent Physical Agents
www.fipa.org
28
FIPA : Histórico



FIPA é uma associação sem fins lucrativos
fundada em 1996 e localizada em Genebra
na Suíça
Objetiva promover o sucesso das aplicações,
serviços e equipamentos baseados em
agentes
Provê especificações para maximizar a
interoperabilidade entre aplicações, serviços
e equipamentos baseados em agentes
29
FIPA

FIPA x KQML

Ao contrário do KQML, as especificações FIPA
têm uma grande preocupação com a modelagem
semântica

Linguagem de Comunicação de Agentes


FIPA ACL
Linguagens Internas



FIPA Content Language Library (FIPA-CLL)
FIPA-SL, FIPA-RDF, FIPA-CCL, FIPA-KIF, …
Mas também é independente de LI
30
FIPA ACL

Sintaxe


Praticamente igual ao KQML
Conjunto de performativas menor



accept-proposal, agree, cancel, cfp, confirm,
disconfirm, failure, inform, inform-if, inform-ref, notunderstood, propose, query-if, query-ref, refuse,
reject-proposal, request, request-when, requestwhenever, subscribe
E só estes!
Semântica

Definida precisamente
31
FIPA ACL x KQML

Igualdades



Independência de IL e de ontologias
Sintaxe idêntica
Diferenças




Visível principalmente na semântica
Performativas são diferentes
Os agentes de FIPA ACL são proibido de
manipular diretamente a KB de outros agentes
Tratamento diferente do gerenciamento dos
agentes e das primitivas de administração

Em FIPA ACL register, unregister, ..., são tratados
por um módulo a parte
32
FIPA ACL x KQML

Diferenças (situação fictícia)

Em KQML



Mensagem de A para B: achieve goal X
Usa todo o vocabulário da LCA (performativa
“achieve”)
Conteúdo
Em FIPA ACL



Mensagem de A para B: inform ( achieve goal X )
A LCA não entende! A LI sim!
Elimina a necessidade da performativa achieve na LCA
33
Exemplo

A1 envia a seguinte mensagem para A2 ...
( inform
:sender
:receiver
:reply-with
:language
:content
A1
A2
id1
...
:ontology
...
((= available-service A1)
(set(provide Professor(X,Y))))”
34
Exemplo

A2 pergunta então a A1 ...
( query-ref
:sender
:receiver
:in-reply-to
:reply-with
:language
:ontology
:content
)
A2
A1
id1
id2
Prolog
CIn
“Professor(X, ‘Agentes’)”
35
Exemplo

A1 responde ao agente A2 ...
( inform
:sender
:receiver
:in-reply-to
:reply-with
:language
:ontology
:content
A1
A2
id2
id3
Prolog
CIn
“X = Geber, X = Flávia,
X = Jacques...”
)
36
Exemplo
A simple one...
37
Agente Somador

Linguagens



Java
KQML
Ferramentas

SACI (Simple Agent Communication
Infrastructure)
38
Agente Somador
(1) Advertise
(4) Ask One
(5) Forward
Facilitador
Agente Servidor
(2) Get Possible Servers
(3) Forward
(6) Tell
Agente Cliente
Sociedade
39
Plus Server
public static void main(String[] args) {
Agent a = new PlusServer();
if (a.enterSoc("APlusServer")) {
mbox.advertise("ask-one", "algebra", "matematica", "X+Y");
a.run(); // Fica lendo o Mailbox
}
}
40
Plus Server
public void run() {
while (running) {
Message m = mbox.polling();
if (m.get("performative").equals("forward")) {
m = new Message(m.get("content").toString());
}
if (m.get("performative").equals("ask-one")) {
Message r = new Message("(tell)");
r.put("receiver", m.get("sender"));
r.put("in-reply-to", m.get("reply-with"));
r.put("content", calcula( (String)m.get("content") ) );
mbox.forward(r);
} else { System.out.println("ignorando a mensagem"); }
}
}
41
Plus Client
public static void main(String[] args) {
PlusClient a = new PlusClient();
if (a.enterSoc("AClient")) {
a.run(args[0]);
}
}
42
Plus Client
public void run(String exp) {
String ag =
mbox.consultYP("ask-one", "algebra", "matematica", "X+Y");
Message m = new Message("(ask-one :content \""+ exp + "\")");
m.put("receiver", ag);
m.put("reply-with", "rSoma");
mbox.forward(m);
Message resposta = mbox.polling();
if (resposta.get("performative").equals("forward")) {
resposta = new Message(resposta.get("content").toString());
}
if ( ((String)resposta.get("in-reply-to")).equals("rSoma")) {
System.out.println("\n\n>>>>>>>>> Resposta de “ +
resposta.get("sender") + " foi “ + resposta.get("content"));
}
mbox.disconnect();
43
Referências

KQML


FIPA


http://www.fipa.org/
SACI


http://www.cs.umbc.edu/kqml/
http://www.lti.pcs.usp.br/saci/
FIPA x KQML

http://www.objs.com/agility/techreports/9807-comparing-ACLs.html
44
Referências





Finin, Tim and Labrou, Yannis. A Proposal for a
new
KQML Specification;
Finin, Tim., Labrou, Yannis and Mayfield, James.
KQML as na communication language.
Finin, Tim and Fritzon, Rich. KQML - A language
and Protocol for Knowledge and Information
Exchange.
Finin, Tim and Labrou, Yannis. Semantics and
Conversations for na Agent Communication
Language
Patil, Ramesh S., Fikes Richard E., PatelSchneider Peter F. ., Don Mckay, Finnin, Tim.,
Gruber, Thomas and Neches Robert. The DARPA
45
Referências


Hübner, Jomi and Sichman, Jaime, "SACI: Uma
Ferramenta para Implementação e Monitoração
da Comunicação entre Agentes",
IBERAMIA'2000, SBIA'2000, Atibaia-SP,
novembro de 2000
(http://www.lti.pcs.usp.br/saci/)
Andrew C. Huang, Benjamin C. Ling, Shankar
Ponnekanti, Armando Fox. “Pervasive Computing:
What Is It Good For?. In proceedings of the
Workshop on Mobile Data Management (MobiDE)
in conjunction with ACM MobiCom '99, Seattle,
WA, September 1999 (forthcoming)
46
Download

SMA_comunic