35
Banco de dados e Contexto Mestrado em Ciência da Computação, CIn UFPE Bruno Felipe [email protected]

Banco de Dados e Contexto

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

Page 1: Banco de Dados e Contexto

Banco de dados e Contexto

Mestrado em Ciência da Computação, CIn – UFPE

Bruno Felipe

[email protected]

Page 2: Banco de Dados e Contexto

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;

Page 3: Banco de Dados e Contexto

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.

Page 4: Banco de Dados e Contexto

Pesquisa no Google (1/3)

Pesquisa realizada em Recife por Bruno, em 12/05/11 às 20:10

Page 5: Banco de Dados e Contexto

Pesquisa no Google (2/3)

Pesquisa realizada em João Pessoa por Mariana, em 12/05/11 às 20:16

Page 6: Banco de Dados e Contexto

Pesquisa no Google (3/3)

Pesquisa realizada em Belém por Carlos, em 12/05/11 às 20:40

Page 7: Banco de Dados e Contexto

Facebook

Page 8: Banco de Dados e Contexto

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.

Page 9: Banco de Dados e Contexto

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.

Page 10: Banco de Dados e Contexto

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].

Page 11: Banco de Dados e Contexto

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).

Page 12: Banco de Dados e Contexto

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.

Page 13: Banco de Dados e Contexto

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!!!

Page 14: Banco de Dados e Contexto

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.

Page 15: Banco de Dados e Contexto

Arquitetura em Camadas

Consideram também, informações contextuais coletadas de outras fontes e mudam o comportamento a partir destas fontes.

Page 16: Banco de Dados e Contexto

Um exemplo de aplicação

Sistema UbiBus de Transporte Inteligente

Page 17: Banco de Dados e Contexto

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.

Page 18: Banco de Dados e Contexto

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

Page 19: Banco de Dados e Contexto

UbiBus – Protótipos de Interface (1/2)

Page 20: Banco de Dados e Contexto

UbiBus – Protótipos de Interface (2/2)

Page 21: Banco de Dados e Contexto

Banco de dados e Contexto

Page 22: 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.

Page 23: Banco de Dados e 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.

Page 24: Banco de Dados e Contexto

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.

Page 25: Banco de Dados e Contexto

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.

Page 26: Banco de Dados e Contexto

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.

Page 27: Banco de Dados e Contexto

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.

Page 28: Banco de Dados e Contexto

Proposta de um esquema de contexto

Possibilidades de fazer consultas do tipo: todos produtos que tenham um VAT alto.

Page 29: Banco de Dados e Contexto

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:

Page 30: Banco de Dados e Contexto

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:

Page 31: Banco de Dados e Contexto

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.

Page 32: Banco de Dados e Contexto

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?);

Page 33: Banco de Dados e 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;

Page 34: Banco de Dados e Contexto

Dúvidas

?

Page 35: Banco de Dados e Contexto

Banco de dados e Contexto

Mestrado em Ciência da Computação, CIn – UFPE

Bruno Felipe

[email protected]