SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
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
Tópicos
•   Introdução e apresentação do problema
•   Revisão bibliográfica
•   Armazenamento de ontologias
•   Arquitetura
•   Conclusões e trabalhos futuros
INTRODUÇÃO E APRESENTAÇÃO DO
PROBLEMA
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.
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);
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?
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.
REVISÃO BIBLIOGRÁFICA
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)
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
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;
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
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.
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
ARMAZENAMENTO DE ONTOLOGIAS
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
RDF/XML
• Exemplo de código XML
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
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
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)
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
Jena – Visão geral
• Ferramenta open-source
• API: abstrai grafos RDF
  • Ontology API: RDFS e OWL


• Subsistemas de
  persistência:
  • RDB (Jena Relational
    Database)
  • SDB (Jena SPARQL
    Database)
  • TDB (Jena Tuple Database)



                                Arquitetura do Jena (WILKINSON et al.,2003)
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
Jena RDB




    Schema desnormalizado do Jena2 (WILKINSON et al., 2003)
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
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
Jena TDB
• Solução para o problema do acesso concorrente:
  • API do Jena: bloqueio exclusivo/compartilhado (ou multiple-
    reader/single-writer)
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)
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;
UMA ARQUITETURA DE SISTEMAS
MULTIAGENTES BASEADOS EM
CONHECIMENTO PERSISTENTE
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
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
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
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?
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
Particionamento de ontologias
• Algoritmo:
  (pseudocódigo
  )
Consistência de ontologias
•
Arquitetura




       Visão geral da arquitetura proposta
Implementação
• Aprimoramento do DiSEN Agency




          Visão geral do DiSEN Agency (MONTE ALTO, 2011)
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:
Implementação
Exemplo de execução: DiSEN User Rating com 8 RaterAgents
Estudo de caso: ContextP-GSD
• Mecanismo multiagente de processamento de contexto para o
  DiSEN




      Conjunto de agentes do mecanismo ContextP-GSD (BIASÃO, 2011).
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
Estudo de caso: ContextP-GSD
• Mapeamento sobre a arquitetura proposta:
CONCLUSÕES E TRABALHOS FUTUROS
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
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
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>.
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/>.

Contenu connexe

Similaire à Estudo de técnicas de persistência e acesso concorrente a ontologias

Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos Raquel Machado
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Bancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosBancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosGlaucio Scheibel
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017Renato Groff
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetosDaiana de Ávila
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para phpFabio B. Silva
 
Web Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e TecnologiasWeb Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e Tecnologiassergiocrespo
 
Brnosql luciano ramalho-modelosricos
Brnosql luciano ramalho-modelosricosBrnosql luciano ramalho-modelosricos
Brnosql luciano ramalho-modelosricosJean Lopes
 

Similaire à Estudo de técnicas de persistência e acesso concorrente a ontologias (20)

Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Mongo db
Mongo dbMongo db
Mongo db
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Bancos de Dados Orientados a Objetos
Bancos de Dados Orientados a ObjetosBancos de Dados Orientados a Objetos
Bancos de Dados Orientados a Objetos
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetos
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para php
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
Web Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e TecnologiasWeb Semântica: Conceitos e Tecnologias
Web Semântica: Conceitos e Tecnologias
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Brnosql luciano ramalho-modelosricos
Brnosql luciano ramalho-modelosricosBrnosql luciano ramalho-modelosricos
Brnosql luciano ramalho-modelosricos
 

Plus de Helio Henrique L. C. Monte-Alto

Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Helio Henrique L. C. Monte-Alto
 
Introdução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaIntrodução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaHelio Henrique L. C. Monte-Alto
 
Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...Helio Henrique L. C. Monte-Alto
 
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...Helio Henrique L. C. Monte-Alto
 
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoSistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoHelio Henrique L. C. Monte-Alto
 
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTOESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTOHelio Henrique L. C. Monte-Alto
 

Plus de Helio Henrique L. C. Monte-Alto (14)

Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
Context Awareness e Sistemas Multiagentes para o Suporte a Ambientes de Traba...
 
Teoremas da Incompletude de Gödel
Teoremas da Incompletude de GödelTeoremas da Incompletude de Gödel
Teoremas da Incompletude de Gödel
 
Suporte à Programação Orientada a Objetos
Suporte à Programação Orientada a ObjetosSuporte à Programação Orientada a Objetos
Suporte à Programação Orientada a Objetos
 
Introdução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando JavaIntrodução à Programação Orientada a Objetos Usando Java
Introdução à Programação Orientada a Objetos Usando Java
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 
Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...Multi-agent applications in a context-aware global software development envir...
Multi-agent applications in a context-aware global software development envir...
 
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
Investigação de Recursos de Comunicação e Colaboração na Infraestrutura Seman...
 
Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)
 
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao ContextoSistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
Sistemas Multiagentes e Sistemas Distribuídos Sensíveis ao Contexto
 
Ferramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projetoFerramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projeto
 
Rmi (remote method invocation)
Rmi (remote method invocation)Rmi (remote method invocation)
Rmi (remote method invocation)
 
ESTUDO DE MOBILIDADE DE AGENTES EM APLICAÇÕES SENSÍVEIS AO CONTEXTO
ESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTOESTUDO DE MOBILIDADE DE AGENTES EM  APLICAÇÕES SENSÍVEIS AO CONTEXTO
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
  • 17. RDF/XML • Exemplo de código XML
  • 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
  • 22. Jena – Visão geral • Ferramenta open-source • API: abstrai grafos RDF • Ontology API: RDFS e OWL • Subsistemas de persistência: • RDB (Jena Relational Database) • SDB (Jena SPARQL Database) • TDB (Jena Tuple Database) Arquitetura do Jena (WILKINSON et al.,2003)
  • 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
  • 36. Particionamento de ontologias • Algoritmo: (pseudocódigo )
  • 38. Arquitetura Visão geral da arquitetura proposta
  • 39. Implementação • Aprimoramento do DiSEN Agency Visão geral do DiSEN Agency (MONTE ALTO, 2011)
  • 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:
  • 41. Implementação Exemplo de execução: DiSEN User Rating com 8 RaterAgents
  • 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/>.