1. Banco de dados e Contexto Mestrado em Ciência da Computação, CIn – UFPE Bruno Felipe bffs@cin.ufpe.br
2. 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;
3. 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.
4. Pesquisa no Google (1/3) Pesquisa realizada em Recife por Bruno, em 12/05/11 às 20:10
5. Pesquisa no Google (2/3) Pesquisa realizada em João Pessoa por Mariana, em 12/05/11 às 20:16
6. Pesquisa no Google (3/3) Pesquisa realizada em Belém por Carlos, em 12/05/11 às 20:40
8. O que essas aplicações têm em comum? Contexto Conhecimento 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çoseinformaçõesmais relevantes.
12. Computação Sensível ao Contexto O termo computação sensível ao contexto (context-aware computing) foi proposto por Schilitet al. (1994). 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”.
22. Um comparativo entre Sistemas Tradicionais e Sensíveis ao contexto Executam ações com base em informações fornecidas explicitamente pelo usuário e 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.
23. Arquitetura em Camadas Consideram também, informações contextuais coletadas de outras fontes e mudam o comportamento a partir destas fontes.
24. Um exemplo de aplicaçãoSistema UbiBus de Transporte Inteligente
25. 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.
33. 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.
34. 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ção com o usuário, bem como, oferecendo resultados melhores e mais adaptados a sua necessidade.
35. 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.
36. 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.
37. 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.
38. Chameleon: exemplo Criação de novos contextos por meio da cláusula objectcontext. 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.
39. Proposta de um esquema de contexto Possibilidades de fazer consultas do tipo: todos produtos que tenham um VAT alto.
40. 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:
41. Personalização de Consultas (cont.) Contudo, Maria gosta de filmes de terror e comédia enquanto José gosta de sci-fie 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:
42. 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; Userprofile- informações colhidas do usuário de forma explícita ou implícita; Um sistema de banco de dados personalizado.
43. 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?);
44. Referências Chameleon: Context-AwarenessInsideDBMSs; TechnicalReport: A Model for ContextAwareRelational 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;