Upload
bruno-felipe
View
1.880
Download
1
Embed Size (px)
DESCRIPTION
Uma passagem por Contexto, aplicações sensíveis ao contexto até a inserção de contexto dentro de banco de dados.
Citation preview
Banco de dados e Contexto
Mestrado em Ciência da Computação, CIn – UFPE
Bruno Felipe
Agenda
Exemplos de Contexto;
Definindo Contexto;
Computação Sensível ao Contexto;
Quando usar Contexto;
Comparativo: Aplicações Tradicionais e Sensíveis ao Contexto;
Um Exemplo de Aplicação;
Banco de Dados e Contexto;
Motivação;
Uma Definição;
Exemplo de um SGBD Sensível ao Contexto: Chameleon;
Proposta de Esquema de Contexto;
Personalização de Consultas;
Desafios na área;
Referências;
Cenário da Computação Atual
Como apoiar usuários na
execução de tarefas diárias
e na tomada de decisões?
Mudança no uso de sistemas computacionais:
De aplicativos de apoio organizacional
Para aplicativos de apoio à tarefas pessoais diárias.
Pesquisa no Google (1/3)
Pesquisa realizada em Recife por Bruno, em 12/05/11 às 20:10
Pesquisa no Google (2/3)
Pesquisa realizada em João Pessoa por Mariana, em 12/05/11 às 20:16
Pesquisa no Google (3/3)
Pesquisa realizada em Belém por Carlos, em 12/05/11 às 20:40
O que essas aplicações têm em comum?
ContextoConhecimento que ajuda a identificar o que é ou não é relevante em um dado momento.
Sistema sensível ao Contexto (CSS).
Aplicação que usacontexto para oferecer serviços e informaçõesmais relevantes.
Celular no cinema
• Seu celular pode perceber que você entrou em uma sala de cinema, que as luzes estão diminuindo e que portanto a sessão vai começar.
• Ele mesmo se coloca no modo silencioso.
• Ao sair do cinema o celular volta ao modo normal, de forma que você não perca ligações.
Definindo contexto
Contexto é qualquer informação que caracteriza a situação de uma entidade (pessoa, lugar ou objeto) considerada relevante para interação entre uma pessoa e uma aplicação [Dey 2001].
Computação Sensível ao Contexto
Definição [Dey e abowd, 2000]
“Sistemas que utilizam o contexto para fornecer informações e/ou serviçosrelevantes para o usuário, onde relevância depende da tarefa do usuário”.
O termo computação sensível ao contexto (context-awarecomputing) foi proposto por Schilit et al. (1994).
Aplicações cientes do contexto
• Podem se adaptar automaticamente a mudanças no ambiente
e as necessidades correntes do usuário sem exigir a sua atenção.
• Podem explorar características do ambiente tais como a posição
do usuário, pessoas próximas, hora do dia, níveis de ruídos, ilu-
minação e etc. para fornecer informações e serviços adequados
ao contento.
Mas usar contexto é sempre bom?
• Word
• Funcionalidades de auto-correção e auto-formatação
• Tenta ser sensível ao contexto ajudando o usuário ao corrigir automaticamente termos de grafia, gramática ou formatação.
• Usuário não tem controle
• O sistema não aprende.
• Clippy
• Muitas vezes provê dicas e informações totalmente inúteis.
• Intrusivo.
Cuidado com a experiência do usuário, é fundamental!!!
Um comparativo entre Sistemas Tradicionais e
Sensíveis ao contexto
Executam ações com base em informações fornecidas explicitamente pelo usuárioe agem da mesma forma, independente do usuário.
Consideram também, informações contextuais coletadas de outras fontes e mudam o comportamento a partir destas fontes.
Arquitetura em Camadas
Consideram também, informações contextuais coletadas de outras fontes e mudam o comportamento a partir destas fontes.
Um exemplo de aplicação
Sistema UbiBus de Transporte Inteligente
Motivação
Falta de pontualidade dos ônibus e ausência de informações que apóiem o passageiro em suas decisões sobre o uso de transporte urbano.
Visão geral da arquitetura do sistema
Contexto
Localização e velocidade do ônibus
Localização dos terminais
Localização dos passageiros
Presença e intensidade do congestionamento
UbiBus – Protótipos de Interface (1/2)
UbiBus – Protótipos de Interface (2/2)
Banco de dados e Contexto
Motivação
Não haver a necessidade de banco de dados especializados, e.g., banco de dados temporais, banco de dados espaciais, pela razão de espaço, tempo e entidade serem tratados como contexto;
Representar uniformemente, armazenar e gerenciar informações sobre entidades com diferentes valores ou mesmo diferentes esquemas em várias circunstâncias definidas pelo contexto.
Melhorar a formulação de consultas a um banco de dados, agregando informações relevantes; Tempo;
Criação de frameworks de preferências de usuários;
Enriquecer à semântica dos banco de dados;
Adaptação à computação móvel, computação ubíqua, ambientes inteligentes e aplicações sensíveis ao contexto.
Banco de dados e contexto: uma definição
Banco de dados e contexto vem a ser o uso de informações para descrever entidades dentro de um SGBD oferecendo assim mais semântica. Por este meio, enriquecendo à interaçãocom o usuário, bem como, oferecendo resultados melhores e mais adaptados a sua necessidade.
Chameleon
Um protótipo de gerenciador de banco de dados, construído a partir do PostgreSQL.
Principal característica: modelagem de contexto.
Visa a partir de um banco de dados previamente construído, adicionar características de contexto, ao invés de, construir um banco de dados específico para um domínio.
Chameleon: exemplo
Considere um banco de dados sobre livros. A tabela livro tem o seguinte esquema: livro(id, autor, categoria, preço).
O usuário emite a seguinte consulta Q: SELECT * FROM livro WHERE livro.categoria
O usuário tem a preferência por livros de computação.
Uma solução é adicionar um objeto contexto modelando informações sobre categoria de livros.
O Chameleon então, cria um contexto do usuário apenas com categoria computação.
Chameleon: exemplo (cont.)
Este contexto é modelado a seguir:
Quando o usuário envia à consulta Q a chave binding é usada para unir a tabela livros com a tabela contexto. Apenas livros da categoria computação irão ser retornados.
Chameleon: exemplo
Criação de novos contextos por meio da cláusula object context.
Por exemplo, se quiséssemos adicionar um atributo chamado época à tabela livro, mas não tivéssemos permissão.
Com base na consulta anterior, o usuário agora pode ter livros na categoria computação que foram lançados em uma determinada época.
Proposta de um esquema de contexto
Possibilidades de fazer consultas do tipo: todos produtos que tenham um VAT alto.
Personalização de Consultas
Considere o banco de dados com o seguinte esquema:
Considere agora dois usuários, Maria e José enviando uma consulta perguntando sobre o que estará passando hoje à noite:
Personalização de Consultas (cont.)
Contudo, Maria gosta de filmes de terror e comédia enquanto José gosta de sci-fi e da atriz Julia Roberts.
Cada preferência do usuário pode ser armazenada em perfil (profile) do usuário. Deste modo o banco de dados pode automaticamente integrá-lo na consulta original, agregando mais valor à consulta e retornando informações mais adaptadas ao perfil do usuário.
Uma consulta mais interessante para José seria:
Um Banco de Dados Personalizado
A proposta anterior sobre consultas personalizadas é alcançada a partir de um sistema de banco de dados personalizado, ou seja, um banco de dados com alguns módulos além dos tradicionais que rodeiam um sistema de acesso a conteúdo;
User profile - informações colhidas do usuário de forma explícita ou implícita;
Um sistema de banco de dados personalizado.
Desafios na área
Propor uma linguagem de consulta, bem como, modelo de dados para banco de dados com informações contextuais;
Deixar o usuário ter controle sobre informações de contexto, principalmente aquelas em que podem causar aborrecimentos;
Segurança e privacidade;
Otimização do desempenho do sistema (custo computacional extra);
Representação dos elementos do contexto (como representá-los?);
Elicitação dos requisitos do contexto (O que considerar como contexto?);
Referências
Chameleon: Context-Awareness Inside DBMSs;
Technical Report: A Model for Context Aware Relational Databases 2008;
Towards a Better Understanding of Context and Context-Awareness 2000;
The Anatomy of a Context-Aware Application;
And What can Context do for Data? 2009;
Personalization of Queries in Database Systems;
Palestra Contexto, Vaninha Vieira 2011 (v6);
Computação Sensível ao Contexto, Fabrício J. Barth 2004;
Dúvidas
?
Banco de dados e Contexto
Mestrado em Ciência da Computação, CIn – UFPE
Bruno Felipe