1) O documento apresenta uma proposta de arquitetura para sistemas multiagentes baseados em ontologias, abordando questões de persistência e acesso concorrente às bases de conhecimento.
2) A arquitetura inclui um Agente Bibliotecário responsável por persistir as ontologias de forma centralizada e distribuir atualizações para as cópias locais mantidas pelos demais agentes.
3) A implementação do protótipo utilizou o framework DiSEN Agency e o triple store Jena TDB para avaliar a viabilidade da proposta.
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
Estudo de técnicas de persistência e acesso concorrente a ontologias
1. Estudo de técnicas de
persistência e acesso
concorrente a ontologias
Trabalho de graduação
Helio Henrique Lopes Costa Monte Alto
Orientadora: Elisa Hatsue Moriya Huzita
2. Tópicos
• Introdução e apresentação do problema
• Revisão bibliográfica
• Armazenamento de ontologias
• Arquitetura
• Conclusões e trabalhos futuros
4. Introdução
• Novas abordagens para projetar e construir software de
natureza complexa e distribuída:
• Sistemas multiagentes (SMA)
• Ontologias
• Construção de sistemas inteligentes
• Ex: sistemas sensíveis ao contexto; aplicações para web
semântica; sistemas colaborativos; etc.
5. SMAs e ontologias
• Agentes devem interagir entre si e com o ambiente a fim de
obter o conhecimento necessário para tomar decisões e agir;
• Solução: ontologias;
• Representação e compartilhamento de conhecimento;
• Comunicação;
• Raciocínio lógico e dedutivo (processos de inferência);
6. Apresentação do problema
• A instanciação de uma ontologia constitui uma base de
conhecimento (BC);
• Supondo que haja uma BC centralizada, os agentes devem
acessar e manipular o conhecimento nessas bases;
• A BC deve ser persistida para que o conhecimento não seja
perdido;
• Problemas:
• Como persistir a BC?
• Como controlar o acesso e a atualização concorrente à BC de
modo a não gerar inconsistências?
• Como garantir que os diversos agentes da aplicação possuam o
conhecimento necessário atualizado?
7. Proposta
• Objetivo geral: investigar mecanismos e técnicas que
possibilitem o armazenamento persistente e o acesso
concorrente a ontologias por meio de agentes de software;
• Objetivos específicos:
• Explorar os principais conceitos e tecnologias existentes sobre
agentes e ontologias, principalmente no que tange à persistência
de ontologias e ao acesso concorrente;
• Construir um protótipo de aplicação para exemplificar o uso das
técnicas encontradas para tratamento de persistência e acesso
concorrente a ontologias, utilizando agentes de software.
9. Agentes de software
• Entidades de software que possuem como principais
características:
• Autonomia
• Habilidade social
• Reatividade
• Pró-atividade
• Conceitos atribuídos a humanos: conhecimento, crença,
intenção e obrigação (WOOLDRIDGE; JENNINGS, 1995).
• Agentes lógicos (ou agentes baseados em conhecimento)
(RUSSEL; NORVIG, 2003)
10. Sistemas multiagentes
• Sistema onde dois ou mais agentes interagem entre si e
trabalham cooperativamente a fim de atingir seus objetivos
• Principais características:
• Paralelismo
• Escalabilidade
• Divisão em problemas menores
• Infraestruturas de apoio à construção de SMAs:
• SemantiCore
• JADE
11. Ontologias
• Conjunto de definições de conceitos, propriedades, relações,
restrições, axiomas, processos e eventos que descrevem certo
domínio de discurso (FREITAS et al., 2005);
• Ferramentas de suporte a ontologias:
• Frameworks de manipulação e armazenamento de ontologias:
Jena e Sesame
• Editores de ontologias: Protégé
• Linguagens de consulta e atualização de ontologias: SPARQL ;
• Motores de inferência: Pellet; mecanismo de inferência do Jena;
12. Lógicas de Descrição (DL)
• Principal formalismo para a construção de ontologias;
• Representação de um domínio de aplicação (um mundo)
• Divididas em duas partes
• Tbox: conhecimento intencional
• Abox: conhecimento extensional
13. Resource Description Framework
(RDF)
• Linguagem declarativa para metadados (descrição de
recursos)
• Modelo RDF: tripla <S,P,O> (sujeito, predicado, objeto)
• Conjunto de triplas RDF: grafo RDF
• RDF Schema (RDFS)
• Linguagem de ontologias
• Classes, domínio e imagem, conjuntos, etc.
14. Web Ontology Language (OWL)
• Linguagem de ontologias
• Baseada em RDF e RDFS
• Construções baseadas em DL: maior poder de expressividade
• Ex: restrições, enumerações e operadores de conjunto
• OWL 1 possui três dialetos:
• OWL Lite
• OWL DL *
• OWL Full
• OWL 2: extensão da OWL, também possui 3 sublinguagens:
OWL 2 EL, OWL 2 QL e OWL 2 RL
16. Visão geral
• Duas abordagens: formatos de serialização e repositórios
semânticos (triple stores)
• Formatos de serialização
• Arquivos de texto
• Troca de informações na Web (XML – eXtensible Markup Language)
• Triple stores
• Banco de dados para grafos RDF
• Bases de conhecimento persistentes
• Mecanismos de processamento de consultas e transações, estruturas
de tabelas e índices
18. RDF/XML
• Problemas:
• Formato não indexado -> baixa escalabilidade
• Consulta requer processamento de boa parte do arquivo
• Processamento de inferência
• Requer que a ontologia esteja carregada em memória
• Várias serializações diferentes para o mesmo grafo
19. Triple stores nativos
• Técnicas similares às de SGBDs relacionais e de objetos
• Tabelas, índices, processamento de consultas, etc.
• Problemas:
• Falta de recursos disponíveis em SGBDs existentes
• Ex: Falta de processamento de transações -> controle de
concorrência mais difícil
20. Triple stores baseados em
SGBDs
• Utiliza SGBDs existente para armazenar grafos RDF
• Recursos implementados e amplamente testados
• Otimizações de consultas
• Processamento de transações
• Controle de acesso
• Logging
• Recuperação
• Problemas:
• Semântica do BD conflita com flexibilidade do RDF
• Conversão de consultas em grafos RDF (ex: SPARQL) para
consultas SQL (semânticas distintas)
21. Triple stores
• Vantagens
• Eficiência de consultas
• Indexação: tempo de resposta rápido e constante
• Alta escalabilidade
• Utilização de recursos de SGBDs
• Alguns exemplos:
• Jena (RDB, SDB e TDB)
• Sesame (SAILs diversas)
• OWLIM
23. Jena RDB
• Operações por meio da API
• Traduzidas em operações em SGBDs relacionais
• Layout híbrido (normalizado / desnormalizado)
• Equilíbrio entre espaço e tempo de busca
• Normalização apenas para recursos grandes
• Pode ser configurado pelo desenvolvedor
• Obsoleto: não utiliza SPARQL
24. Jena RDB
Schema desnormalizado do Jena2 (WILKINSON et al., 2003)
25. Jena SDB
• Sucessor direto do RDB
• SGBDs suportados: Oracle 10g, IBM DB2, PostgreSQL, MySQL,
Apache Derby, etc.
• Consultas SPARQL
S P O Hash / Id Lex ...
• Layout:
12 24 35 40 dc:title
14 40 35 14 <book1>
13 40 11 35 dc:Title1
14 40 41 41 dc:Title2
13 <book2>
Tabela de triplas
11 dc:Title3
Tabela de nós
26. Jena TDB
• Triple store nativo
• Metas: alto desempenho e escalabilidade
• BD dedicado a grafos RDF
• Não há necessidade de conversões entre SPARQL e SQL
• Desvantagem: sem processamento transacional
• Três índices compostos (árvore B+):
• SPO, POS e OSP
• Nós (NodeIDs): identificadores de 64 bits
• 8 bits: tipo do nó;
• 56 bits: endereço em disco;
• Otimização de consultas
27. Jena TDB
• Solução para o problema do acesso concorrente:
• API do Jena: bloqueio exclusivo/compartilhado (ou multiple-
reader/single-writer)
28. Sesame
• Manipulação e
armazenamento de RDF
• Sem suporte nativo à OWL
• SAIL (Storage and Inference
Layer)
• Suporte a dois repositórios
por padrão (RDF e RDFS
apenas):
• Baseado em SGBD (MySQL
e PostgreSQL)
• Sesame Native
Arquitetura do Sesame (ADUNA, 2011)
29. OWLIM
• Triple store nativo
• Compatível com Sesame (SAIL) e Jena (adaptador)
• Um dos repositórios semânticos mais escaláveis
• Motor de inferência: RDFS, OWL 2 RL e OWL Lite
• Foco:
• Manipulação de bilhões de fatos;
• Otimização de consultas;
• Gerenciamento de transações;
• Inferência multi-threaded;
30. UMA ARQUITETURA DE SISTEMAS
MULTIAGENTES BASEADOS EM
CONHECIMENTO PERSISTENTE
31. Justificativa
• Garantir:
• Persistência
• Consistência
• Compartilhamento
• Atualização
• Cenário: qualquer agente pode atualizar BC diretamente
• Problemas:
• Atualização das BCs locais
• Consistência da BC
32. O Agente Bibliotecário
• Agente bibliotecário (AB), ou OntologyAgent
• Persistir e publicar conhecimento
• Broker entre agentes da aplicação e BC
• Objetivos:
• Evitar problemas com acesso concorrente
• Isolamento de responsabilidades do sistema
• Atualização das BCs locais
33. O Agente Bibliotecário
• Fluxo de execução
básico:
1. Receber fatos;
2. Homologar fatos;
3. Atualizar e
persistir BC;
4. Publicar fatos
persistidos;
Ciclo de vida do AB
34. Distribuição de conhecimento
• Publicar BC inteira após persistência
• Inviável
• Solução: Publicação apenas do conhecimento recém-persistido
• Agentes lógicos da aplicação
• Cópias locais parciais da BC
• Acesso mais rápido
• Operações de consulta e inferência mais rápidas
• Questões de projeto:
• Como o AB deve extrair partes do conhecimento?
• Como o conhecimento deve ser mesclado às BCs locais?
35. Particionamento de ontologias
• Extração dinâmica de subconjuntos de ontologias
• Realizada pelo AB
• De acordo com os interesses dos agentes da aplicação
• Carga adicional, mas não tão custosa
• Feita apenas quando agente faz requisição de conhecimento
• É possível utilizar cache
• Atualização da BC local
• Variante da rotina para atualização da BC central
40. Implementação
• Implementação do OntologyAgent e adição dos mecanismos
de atualização nos agentes lógicos da aplicação
• Afeta aplicação DiSEN User Rating
• Cache na ação de extração de módulos
• Classe abstrata PersistenceAction
• Ex:
42. Estudo de caso: ContextP-GSD
• Mecanismo multiagente de processamento de contexto para o
DiSEN
Conjunto de agentes do mecanismo ContextP-GSD (BIASÃO, 2011).
43. Estudo de caso: ContextP-GSD
• Problemas:
• Persistência é feita em arquivo RDF/XML
• Escalabilidade, confiabilidade e desempenho em um ambiente
distribuído
• A BC inteira é publicada e mantida localmente
• Soluções: mecanismos de armazenamento
• Tamanho máximo da BC do DiSEN?
• Provavelmente não chegaria a centenas de milhões de triplas;
• Jena TDB e SDB podem ser suficientes
• Grau de concorrência de acessos à BC?
• Com AB: TDB (com implementação simples de bloqueio
compartilhado/exclusivo pela API do Jena), SDB, OWLIM
• Sem AB: SDB, OWLIM
44. Estudo de caso: ContextP-GSD
• Mapeamento sobre a arquitetura proposta:
46. Conclusões
• Tecnologias para a web semântica em constante evolução
• Padrões relacionados a ontologias
• Repositórios semânticos mais escaláveis e confiáveis
• Aprimoramento das capacidades de inferência
• Arquitetura de software em SMAs baseados em conhecimento
• Comportamento e interação entre os agentes
• Distribuição e compartilhamento de conhecimento eficientes
• Gerenciamento da BC
• Implementação: pode ser utilizada em diversas aplicações
47. Trabalhos futuros
• Aprimoramento do ContextP-GSD
• Refatoração utilizando DiSEN Agency
• Aprimoramentos na implementação da arquitetura
• Melhorar gerência das BCs locais
• Mesma BC mantida localmente por vários agentes
• Balanceamento de carga
• AB pode se tornar um gargalo
• Possível solução: AB se duplicar/clonar dinamicamente
48. Referências
• ADUNA. User Guide for Sesame 2.3. 2011. Acessado em Agosto de
2011. Disponível em: <http://www.openrdf.org/>.
• BECKETT, D. Recommendation, RDF/XML Syntax Specification
(Revised). 2004. W3C Recommendation. Acessado em Junho de
2011. Disponível em: <http://www.w3-.org/TR/rdf-syntax-
grammar/>.
• BIASÃO, A. B. Um mecanismo de processamento de informações
contextuais em um ambiente de desenvolvimento distribuído de
software. Dissertação (Mestrado) —Universidade Estadual de
Maringa, 2011.
• BIZER, C.; SCHULTZ, A. The berlin SPARQL benchmark. Int. J.
Semantic Web Inf. Syst, v. 5, n. 2, p. 1–24, 2009. Disponível em:
http://www.igi-global.com/articles-/details.asp?ID=35035>.
• BIZER, C.; SCHULTZ, A. BSBM V3 Results (February 2011). 2011.
Acessado em Agosto de 2011. Disponível em:
http://www4.wiwiss.fuberlin.de/bizer/BerlinSPARQLBenchmark/res
ults/V6/index.html>.
49. Referências
• FIPA. FIPA Specifications. 2005. Acessado em Junho de 2011. Disponível em:
<http://www.fipa.org/specifications/index.html>.
• FREITAS, F. L. G. de; STUCKENSCHMIDT, H.; NOY, N. F. Ontology issues and appli-
cations - guest editors’ introduction. J. Braz. Comp. Soc., v. 11, n. 2, p. 5–16,
2005.
• MONTE ALTO, H. H. L. C. Investigação de Recursos de Comunicação e
Colaboração na Infraestrutura SemantiCore. Relatório Técnico, Universidade
Estadual de Maringá, Departamento de Informática, 2011.
• RUSSEL, S.; NORVIG, P. Artificial Intelligence: A Modern Approach. 2a. ed. [S.l.]:
Pearson Education Inc., 2003.
• WILKINSON, K. et al. Efficient RDF storage and retrieval in Jena2. In: Proc. First
International Workshop on Semantic Web and Databases. [s.n.], 2003.
Disponível em: <http://www.cs.uic.edu/˜ifc/SWDB/papers/Wilkinson etal.pdf>.
• WOOLDRIDGE, M.; JENNINGS, N. R. Intelligent agents: Theory and practice.
Knowledge Engineering Review, v. 10, n. 2, p. 115–152, 1995.
• ZAMBONELLI, F. et al. Agent-Oriented Software Engineering for Internet
Applications. Springer Verlag, 2001. 326–346 p. Disponível em:
<http://eprints.ecs.soton.ac.uk-/3749/>.