JADE + JenaJosé Ferdinandy Silva Chagas            ferdinandsc@gmail.com
Apresentação   JADE       Iniciando a plataforma;       Passando objetos para os agentes;       Criando uma plataforma...
JADE
Iniciando a plataforma   Aplicações geralmente não são compostas apenas por    agentes;   A aplicação interage com agent...
Iniciando a plataforma   Linha de comando:    # java jade.Boot -h localhost -agents Agente:pacote.Classe   Código Java (...
Passando objetos para agentes   Em uma aplicação os agentes podem acessar todas as    variáveis ou objetos;   Para isso ...
Passando objetos para agentes   Aplicação    ...    Runtime rt = Runtime.instance();    Profile p = new ProfileImpl();   ...
Passando objetos para agentes   Linha de comando:    # java jade.Boot -agents Agente:pacote.Classe arg1 arg2 arg3 ...   ...
Passando objetos para agentes   Código Java (Agente):    ...    Object[] args = getArguments();    String nome = (String)...
Criando uma plataforma distribuída   Podemos criar e utilizar um sistema multiagentes de    forma distribuída.;   Isso p...
Criando uma plataforma distribuída      Figura 1. Plataformas distribuídas
Criando uma plataforma distribuída   Linha de comando:    # java jade.Boot -host myhost                           (1)    ...
Ciclo de vida dos agentes       Figura 2. Ciclo de vida dos agentes
Ciclo de vida dos agentes   Métodos de transição       doWait – faz o agente parar todas as suas atividades (interno);  ...
Clonando agentes   É possível clonar agentes dentro da aplicação;   Os clones são criados em containers do JADE;   As i...
Movendo agentes   O JADE permite mover um agente de um container para    outro ou de uma plataforma para outra;   O proc...
Jena
Jena   O que é?       Framework Java para desenvolvimento e manipulação de        ontologias desenvolvidas nos padrões R...
Modelo interno   O Jena trabalha com um modelo interno que é a    representação em memória da base de conhecimento    que...
Modelo interno      Figura 3. Visualização de um modelo de ontologia no Jena
Especificações de modelos de ontologias
Uniform Resource Identifier (URI)   Identificador de recursos no modelo de conhecimento;   Tudo é considerado um recurso...
Exemplo simples   Código Java:    ...    //Criando um modelo interno    OntModel model = ModelFactory.createOntologyModel...
Modelo de Inferência       Figura 4. Estrutura do mecanismo de inferência do Jena
Exemplo de inferência       Figura 5. Exemplo de inferência
Exemplo de inferência   Código   Saída
Regras para inferência
Regras para inferência - Exemplo   Código
Validação da ontologia   Procura inconsistências no modelo resultante da    inferência;   Código
DEMONSTRAÇÃO
Referências   JADEProgramming Tutorial for beginners (Documentação do    JADE).   Bellifemine, F., Caire, G. and Greenwo...
Upcoming SlideShare
Loading in …5
×

JADE+JENA

1,028 views

Published on

Apresentação sobre a plataforma de agentes JADE e a API para manipulação de ontologias JENA

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,028
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

JADE+JENA

  1. 1. JADE + JenaJosé Ferdinandy Silva Chagas ferdinandsc@gmail.com
  2. 2. Apresentação JADE  Iniciando a plataforma;  Passando objetos para os agentes;  Criando uma plataforma distribuída;  Ciclo de vida dos agentes;  Clonando agentes;  Movendo agentes. Jena  Modelo interno;  Criando um modelo interno;  Especificações de modelos de ontologias;  Uniform Resource Identifier (URI);  Exemplo simples;  Modelo de inferência;  Exemplo de inferência;  Regras de inferência;  Validação da ontologia. Demonstração JADE + Jena
  3. 3. JADE
  4. 4. Iniciando a plataforma Aplicações geralmente não são compostas apenas por agentes; A aplicação interage com agentes instanciados em uma plataforma JADE externa a aplicação.; Aplicações externas podem iniciar o JADE de duas formas:  Criando um container principal;  Criando um container adicional.
  5. 5. Iniciando a plataforma Linha de comando: # java jade.Boot -h localhost -agents Agente:pacote.Classe Código Java (Aplicação): ... Runtime rt = Runtime.instance(); Profile p = new ProfileImpl(); ContainerController cc = rt.createMainContainer(p); AgentController ac = cc.createNewAgent(“Agente”,”pacote.Classe”, args); ac.start(); ...
  6. 6. Passando objetos para agentes Em uma aplicação os agentes podem acessar todas as variáveis ou objetos; Para isso eles precisam receber essas variáveis ou objetos através da aplicação; Variáveis podem ser passadas para os agentes através da linha de comando ou do próprio código da aplicação.
  7. 7. Passando objetos para agentes Aplicação ... Runtime rt = Runtime.instance(); Profile p = new ProfileImpl(); ContainerController cc = rt.createMainContainer(p); String nome = “Ferdinand”; Object[] obj = new Object[3]; obj [0] = nome; AgentController ac = cc.createNewAgent(“Agente”,”pacote.Classe”, obj); ac.start(); ...
  8. 8. Passando objetos para agentes Linha de comando: # java jade.Boot -agents Agente:pacote.Classe arg1 arg2 arg3 ... Código Java (Aplicação): ... Runtime rt = Runtime.instance(); Profile p = new ProfileImpl(); ContainerController cc = rt.createMainContainer(p); String nome = “Ferdinand”; Object[] args = new Object[3]; args[0] = nome; AgentController ac = cc.createNewAgent(“Agente”,”pacote.Classe”, args); ac.start(); ...
  9. 9. Passando objetos para agentes Código Java (Agente): ... Object[] args = getArguments(); String nome = (String) args[0]; System.out.println(“Olá “+nome+”! Meu nome é “+getLocalName()); ...
  10. 10. Criando uma plataforma distribuída Podemos criar e utilizar um sistema multiagentes de forma distribuída.; Isso permite o compartilhamento de recursos entre agentes, aplicações, sistemas, etc. Requisitos Mínimos:  Container principal;  Container adicional (1... N).
  11. 11. Criando uma plataforma distribuída Figura 1. Plataformas distribuídas
  12. 12. Criando uma plataforma distribuída Linha de comando: # java jade.Boot -host myhost (1) # java jade.Boot -container -host myhost -port 1099 (2) Código Java: ... Runtime rt = Runtime.instance(); Profile p = new ProfileImpl(); p.setParameter(Profile.MAIN_HOST,”myhost”); p.setParameter(Profile.MAIN_PORT,”1099”); ContainerController cc = rt.createAgentContainer(p); AgentController ac = cc.createNewAgent(“Agente”,”pacote.Classe”, args); ac.start(); ...
  13. 13. Ciclo de vida dos agentes Figura 2. Ciclo de vida dos agentes
  14. 14. Ciclo de vida dos agentes Métodos de transição  doWait – faz o agente parar todas as suas atividades (interno);  doWake – faz o agente retomar suas atividades;  doMove – transporta o agente de um container pra outro;  doActivate – retoma as atividades do agente;  doSuspend – suspende as atividades (externo/interno);  doDelete – destrói o agente;  doClone – cria o clone do agente;
  15. 15. Clonando agentes É possível clonar agentes dentro da aplicação; Os clones são criados em containers do JADE; As informações necessárias para realizar a clonagem são:  Local onde será gerado o clone (Container);  Nome do clone . Código Java (Agente): ... doClone(local, “AgenteClone”); ...
  16. 16. Movendo agentes O JADE permite mover um agente de um container para outro ou de uma plataforma para outra; O processo composto pelo estado do agente irá migrar para outro container; Chamada do método doMove:  doMove(local);  local é a variável que armazena o endereço do container para o qual o agente será transportado
  17. 17. Jena
  18. 18. Jena O que é?  Framework Java para desenvolvimento e manipulação de ontologias desenvolvidas nos padrões RDF, OWL, etc. Qual utilidade?  Criar, manter e utilizar bases de conhecimento para Web Semântica especificadas por ontologias utilizando a linguagem Java. Principais recursos:  Métodos para leitura, escrita e manipulação de ontologias;  Possui uma máquina de inferência baseada em regras que permite estender as ontologias.
  19. 19. Modelo interno O Jena trabalha com um modelo interno que é a representação em memória da base de conhecimento que será manipulada; Os modelos são criados com base em especificações dos padrões utilizados para criação de ontologias (RDF, SRDF, OWL, etc); As especificações descrevem as características ou limitações das operações para cada padrão de representação de ontologias.
  20. 20. Modelo interno Figura 3. Visualização de um modelo de ontologia no Jena
  21. 21. Especificações de modelos de ontologias
  22. 22. Uniform Resource Identifier (URI) Identificador de recursos no modelo de conhecimento; Tudo é considerado um recurso; Exemplo:  http://www.owl-ontologies.com/Ontology1250705464.owl#  http://www.owl-ontologies.com/Ontology1250705464.owl#Livro
  23. 23. Exemplo simples Código Java: ... //Criando um modelo interno OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_DL_MEM); //Lendo uma ontologia no formato OWL model.read("file:C:UsersFerdinandDesktopOntologiaBibliotecaBiblioteca.owl"); //Especificando URI de domínio String URI = model.getNsPrefixURI(""); String URIObjeto = URI+"Livro"; OntClass dominio = model.getOntClass(URIObjeto); //Criando instância de Livro Individual instancia = dominio.createIndividual(); //Salvando modelo interno File file = new File("C:UsersFerdinandDesktopOntologiaBibliotecaBibliotecaInf.owl"); model.write(new FileOutputStream(file); ...
  24. 24. Modelo de Inferência Figura 4. Estrutura do mecanismo de inferência do Jena
  25. 25. Exemplo de inferência Figura 5. Exemplo de inferência
  26. 26. Exemplo de inferência Código Saída
  27. 27. Regras para inferência
  28. 28. Regras para inferência - Exemplo Código
  29. 29. Validação da ontologia Procura inconsistências no modelo resultante da inferência; Código
  30. 30. DEMONSTRAÇÃO
  31. 31. Referências JADEProgramming Tutorial for beginners (Documentação do JADE). Bellifemine, F., Caire, G. and Greenwood, D. (2007) Developing multi-agent systems with JADE. Inglaterra: John Wiley & Sons, Ltd. Jena – Documentação oficial disponível em: http://jena.sourceforge.net/documentation.html

×