Context: A Survey and Research Directions Universidade Federal de Pernambuco CIN – Centro de Informática Vaninha Vieira Orientadora: Ana Carolina Salgado {vvs, Recife – PE – Brasil Outubro
Porque Contexto?
Context: A Survey and Research Directions : Out 8, Toda comunicação requer contexto Nas mais diversas situações do mundo real, sempre fazemos uso de informações de contexto
Context: A Survey and Research Directions : Out 8, Interações “pessoa-pessoa” Contexto amplia a qualidade da conversação ajudando a compreender certas situações, ações ou eventos Xuxa?
Context: A Survey and Research Directions : Out 8, Interações “pessoa-pessoa” Contexto amplia a qualidade da conversação ajudando a compreender certas situações, ações ou eventos Abrir uma janela?
Context: A Survey and Research Directions : Out 8, Interações “pessoa-pessoa” Contexto direciona as nossas ações e comportamentos
Context: A Survey and Research Directions : Out 8, Interações “pessoa-computador” As aplicações convencionais, em geral, não levam em consideração o contexto atual do usuário Xuxa?
Context: A Survey and Research Directions : Out 8, Interações “pessoa-computador” Utilizando-se o contexto pode-se aumentar as formas de troca de informações entre o usuário e o computador A identificação do dispositivo usado pelo usuário pode permitir à aplicação habilitar/desabilitar determinadas funcionalidades, limitando ou expandindo recursos Conhecendo a localização do usuário pode-se oferecer informações relativas ao seu local atual. Ex.: GPS
Context: A Survey and Research Directions : Out 8, Em Resumo... Contexto ajuda a Ampliar a comunicação entre pessoas e entre pessoa e computador Diminuir ambiguidades e conflitos Aumentar a expressividade dos diálogos Ampliar os serviços oferecidos por uma aplicação Aumentar a satisfação do usuário Tornar as aplicações mais amigáveis, flexíveis, adaptáveis
Formalizando Contexto como um Conceito Computacional
Context: A Survey and Research Directions : Out 8, Diversas Áreas da Computação – n Definições Interface Homem Máquina (HCI) “Contexto é qualquer informação que pode ser utilizada para caracterizar e interpretar a situação na qual um usuário interage com uma aplicação em um dado momento” [Brezillion, 2002] Aplicações context-aware “Contexto é qualquer informação que caracteriza a situação de uma entidade. Entidade é uma pessoa, lugar ou objeto considerado relevante para a interação entre uma pessoa e uma aplicação” [Dey et al, 2001] Inteligência Artificial “Contexto é o que restringe a solução de um problema, sem interferir nele explicitamente” [Brezillion, 2003]
Context: A Survey and Research Directions : Out 8, ? ? ? Surge uma nova categoria de aplicações Aplicações context-aware Ou, aplicações “cientes de contexto” ou aplicações “sensíveis a contexto” “Um sistema é considerado sensível a contexto se ele utiliza o contexto de uso para fornecer informações/serviços relevantes para o usuário” [Dey et al, 2001]?? ?
Context: A Survey and Research Directions : Out 8, Categorias de Informações de Contexto Contexto primário (baixo nível) Identidade (quem é o usuário, de que grupo faz parte) Espacial (localização, orientação, velocidade) Temporal (dia, hora, estação do ano) Ambiente (temperatura, qualidade do ar, luz, som) Disponibilidade de recursos (bateria, largura de banda) Medidas fisiológicas (pressão sanguínea, batimento cardíaco, atividade muscular, tom de voz) Recursos próximos (dispositivos acessíveis, hosts) Atividade (falando, lendo, caminhando, correndo, escrevendo) Contexto complexo (alto nível) Atividade atual (etapa de um processo, passo em um workflow) Situações sociais complexas (com quem está, pessoas próximas) em uma reunião, ministrando aula, apresentação em workshop,... Agendas, calendários
Context: A Survey and Research Directions : Out 8, Informações de Contexto – 5Ws Who Informações relativas a pessoas When Informações temporais correntes e históricas Where Informações sobre o ambiente What Informações sobre atividades sendo desenvolvidas pelo usuário difícil detectar automaticamente Why Informações sobre motivos associados às ações dos usuários mais difícil ainda
Contexto em Ação Exemplos de Aplicações Clássicas
Context: A Survey and Research Directions : Out 8, Microsoft Windows e Office Help sensível ao contexto Menu e desktop contextual (frequência de acesso) Ajuste automático do idioma Área de transferência “inteligente” Agente Assistente “inteligente”
Context: A Survey and Research Directions : Out 8, Active Badge System -Olivetti Research Lab (1992) Permite localizar pessoas em um escritório As pessoas usam crachás que transmitem sinais IR (os active badges) Uma rede de sensores espalhada pelo prédio coleta os sinais os quais são enviados a um servidor central O recepcionista localiza onde a pessoa está e direciona a ligação para um ramal apropriado Outros experimentos Direcionamento automático das chamadas Identificação de pessoas próximas Privacidade Inicialmente um problema Informações de contexto: Localização Pessoas próximas, Tempo
Context: A Survey and Research Directions : Out 8, The ParcTab System - Xerox Palo Alto (1992) É um dispositivo móvel similar a um palm, conectado a um servidor central através de uma rede baseada em infra-vermelhos Funciona como um assistente de escritório pessoal móvel Dezenas de aplicações desenvolvidas para esse dispositivo Alguns serviços oferecidos: Apresentar informações sobre o local onde o usuário está Auxiliar o usuário a encontrar um recurso próximo (ex. impressora) Localização de outras pessoas Informações de contexto: Localização, Dispositivos próximos, Tempo
Context: A Survey and Research Directions : Out 8, The Context Toolkit - Georgia Tech (1999) Tese de Doutorado de Anind Dey Conjunto de classes desenvolvidas para facilitar a criação de aplicações sensíveis ao contexto Feito em Java Utiliza o mesmo conceito de widgets para GUI’s Diversas aplicações de exemplo construídas para validação
Context: A Survey and Research Directions : Out 8, InOut Board - Georgia Tech (1999) Aplicação Java que mostra se um usuário está ou não no escritório Obtém informações sobre funcionários que entram e saem do prédio Feito com a ajuda de iButtons Informações de contexto: Identificação, tempo
Context: A Survey and Research Directions : Out 8, DUMMBO - Georgia Tech (1999) Dynamic Ubiquitous Mobile Meeting Board Usa iButtons para detectar a presença de pessoas em uma reunião Quando duas pessoas indicam sua presença no iButton, o DUMMBO assume o início de uma reunião e começa a coletar o áudio e o que foi escrito no quadro Informações de contexto: Identificação, localização do quadro, tempo de chegada e saída
Context: A Survey and Research Directions : Out 8, Conference Assistant - Georgia Tech (1999) Auxilia participantes em conferências Ao se inscrever na conferência o participante informa dados pessoais, áreas de interesse e colegas com interesses similares que estarão na conferência e recebe o Conference Assistant para instalar em seu notebook ou PDA Funcionalidades: Exibe os eventos de interesse do usuário na conferência Ao entrar em uma sala onde está ocorrendo uma apresentação, ele exibe informações sobre o palestrante, e o material da apresentação (quando disponível), e permite que o usuário faça anotações Informações de contexto: Localização, tempo, atividade em uma dada localização e preferências do usuário
Context: A Survey and Research Directions : Out 8, Análise das aplicações context-aware disponíveis A maioria usa apenas uns poucos valores de contexto Localização Identificação Tempo Em geral, são protótipos de pesquisa (não-comerciais) Principal tipo de aplicação Serviços baseados em localização (guias, assistentes) Dificuldade em obter e processar informações de contexto Complexidade em desenvolver essas aplicações Tendem a consumir muitos recursos (monitoramento contínuo e/ou cálculos e análises complexas) Alto custo de desenvolvimento
Desafios na implementação de Aplicações Context-Aware
Context: A Survey and Research Directions : Out 8, Muitos são os desafios... Captura (Aquisição) Representação Processamento Segurança e privacidade “Tunning”
Context: A Survey and Research Directions : Out 8, Automática Aquisição de Contexto Manual Identificação das informações de contexto a serem consideradas
Context: A Survey and Research Directions : Out 8, Se tudo deve ser compreendido dentro de um contexto, como podemos compreender o contexto? Uma criança para falar precisa de uma referência O contexto deve ser sólido o suficiente para não ser modificado com a chegada de novas informações Definir que informação está em um determinado contexto Múltiplos contextos Representação do Contexto
Context: A Survey and Research Directions : Out 8, Armazenar o contexto junto às informações convencionais da aplicação? Necessidade de um formato de representação comum do contexto que permita A transferência de informações de contexto Que diferentes aplicações utilizem a mesma informação de contexto Representação do Contexto
Context: A Survey and Research Directions : Out 8, Pares chave-valor Modelo orientado a objetos Baseado em lógica : fatos/regras Grafos contextuais [Brézillon, 1999] Ontologia Web Semântica (RDF) Extensões à UML Alguns formatos de representação de contexto
Context: A Survey and Research Directions : Out 8, Alguma “inteligência” deve ser utilizada para processar a informação de contexto e deduzir seu significado Contexto geralmente é indireto ou é dedutível pela combinação de diferentes partes de informações de contexto Provavelmente o mais desafiador!! Exemplo: Se três pessoas se encontram em uma certa sala do escritório em um determinado horário, isso pode significar que é a reunião semanal estratégica Agentes Inteligentes Processamento do Contexto
Context: A Survey and Research Directions : Out 8, Segurança e privacidade Para aquisição do contexto é necessário a monitoração das ações dos usuários Isso pode violar regras de privacidade Garantia de segurança no uso dessas informações Usuário deve ser capaz de intervir no que deseja ser monitorado
Context: A Survey and Research Directions : Out 8, “Tunning” das aplicações context-aware Contexto consome muitos recursos da aplicação Tendência a diminuir o desempenho Necessário um ajuste fino Da granularidade das informações de contexto Da necessidade X satisfação do usuário em relação às reações do sistema ao contexto
Context: A Survey and Research Directions : Out 8, Outras Questões em Aplicações Context-Aware Soluções reutilizáveis Frameworks Framework Conceitual de Contexto em Groupware [Rosa et al, 2003] Toolkits Context Toolkit [Dey et al, 2001] Componentes Middleware Infra-estrutura Centralizado X Distribuído Computação móvel, ubíqua Sistemas multi-agentes
Context: A Survey and Research Directions : Out 8, Uma Classificação dos Trabalhos sobre Contexto Estudo do Conceito de Contexto Formalização: definição, representação, modelagem, processamento, inferência de modo genérico Inteligência Artificial, Banco de Dados Estudo de Aplicações Context-Aware Definições, captura, processamento Ferramentas de apoio à construção de aplicações Sistemas Distribuídos, HCI, Engenharia de Software Utilização de Contexto Identificação, captura, representação, processamento e uso de informações de contexto em domínio específico CSCW/CSCL, Computação Móvel e Ubíqua, HCI
Contexto no CIn
Context: A Survey and Research Directions : Out 8, Quem está trabalhando com Contexto IA Patricia Tedesco BD Ana Carolina Salgado Sandra Siebra Vaninha Vieira Rosalie Belian HCI Alex Sandro Gomes Genesio Sistemas Distribuídos Carlos Ferraz Nelson Rosa Engenharia de Software (???)
Context: A Survey and Research Directions : Out 8, Projetos de Pesquisa Projeto Integra Usando Contexto em Ambientes de Integração de Informações Rosalie Belian e Ana Carolina Salgado Projeto “Colabora” Usando Contexto em Ambientes de Aprendizado Colaborativo Sandra Siebra, Ana Carolina Salgado e Patrícia Tedesco Modelagem de Aplicações Colaborativas Ciente de Contexto Vaninha Vieira, Ana Carolina Salgado HCI Integração entre Análise de Contexto e Engenharia de Requisitos Genesio e Alex Sandro Gomes
Context: A Survey and Research Directions : Out 8, Projeto CAPES/COFECUB Colaboração Contextual: Métodos e Ferramentas para o Apoio ao Trabalho em Equipe Contexto aplicado a CSCW e a CSCL Parceria entre CIn / UFPE Coordenadora: Ana Carolina Salgado NCE / UFRJ Coordenador: Marcos Borges LIP6 / Paris VI / França Coordenador: Patrick Brézillon Status: Submetido e aguardando aprovação
Alguns Projetos de Pesquisa Envolvendo Contexto
Context: A Survey and Research Directions : Out 8, No Brasil NCE/UFRJ Coordenador: Prof. Marcos Borges URL: Projeto: Chord Inserindo Contexto em Groupware (M.Sc) Parceria com LIP6/Paris VI/França USP / São Carlos Coordenadora: Profa. Maria da Graça Pimentel URL: Projeto: INCA/SERVE Desenvolvimento de Aplicações Ciente de Contexto Parceria com Georgia Institute of Technology – EUA
Context: A Survey and Research Directions : Out 8, No Resto do Mundo Patrick Brézillon - LIP6 / Paris VI, França Projeto: SYSDEF Modelagem e representação de contexto Gregory Abowd - Georgia Tech, USA Parceria projeto INCA/SERVE (USP-São Carlos) Computação context-aware Wolfgang Prinz – GMD, Alemanha Cooperative Media Lab Contexto e Awareness em aplicações colaborativas
Quer saber mais?
Context: A Survey and Research Directions : Out 8, Referências CONTEXT: International web site Link para muitos papers sobre context-awareness Coleção do Brézillon de Referências sobre contexto Conferências específicas sobre contexto International and Interdisciplinary Conference on Modeling and Using Context [ Modeling and Retrieval of Context [ International Workshop on Software Aspects of Context [
Context: A Survey and Research Directions : Out 8, Mais Referências Borges, M.R.S., Brézillon, P., Pino, J.A., Pomerol, J.C. “Bringing Context to CSCW”, Proceedings of the 8th International Conference on Computer Supported Cooperative Work in Design. CSCWD´2004, Xiamen, China, May Siebra, S.A., Tedesco, P.C.A.R., Salgado, A.C., Brézillon, P., A Context-based Analytical Environment for CSCL, submetido ao CRIWG 2004 (2004). Brézillon P., “Context in problem solving: A survey”. The Knowledge Engineering Review, vol. 14, n°1, 1999, pp Dey, A. K., 2001, "Understanding and Using Context". In: accessed in May Huang, Q., 2002, Supporting Context-Aware Computing in Ad Hoc Mobile Environments. Technical Report WUCS-02-36, Washington University, Department of Computer Science and Engineering, St. Louis, Missouri. Rosa, M. G. P., Borges, M. R. S., Santoro, F. M., 2003, "A Conceptual Framework for Analyzing the Use of Context in Groupware". In: Proc. of CRIWG'03, v. LNCS 2806, pp , Springer-Verlag Berlin, Heidelberg.
” “A seleção natural gerou seres vivos capazes de se adaptar ao contexto (os que não se adaptam, não sobrevivem)” O mesmo tende a acontecer com o software (?) Frase de efeito
Context: A Survey and Research Directions : Out 8, Formas de Utilização Aplicação apenas apresenta informação de contexto Aplicação executa serviços a partir do contexto Aplicação transforma contexto em informação Ex.: anotações coletadas durante uma reunião Uso de Contexto
Context: A Survey and Research Directions : Out 8, Framework Conceitual de Contexto em Groupware Um framework conceitual é representado por quadros conceituais, cujo objetivo é fornecer diretrizes para pesquisa e desenvolvimento Proposto por Rosa et al (2003) Objetiva a identificação e a classificação dos elementos contextuais mais comuns nas ferramentas de groupware
Context: A Survey and Research Directions : Out 8, Similaridade Semântica Aplicações colaborativas Contexto do usuário, do grupo, das tarefas sendo desempenhadas Serviços Inteligentes GPS, Recomendação, Filtragem, etc. Engenharia de Software Auxiliar o engenheiro de domínio ou de aplicação Busca de componentes Medidas de desempenho dos desenvolvedores Personal Software Process Outros ????? Alguns exemplos de uso de Contexto
Context: A Survey and Research Directions : Out 8, Representação do contexto em vários níveis Individual Tarefa Equipe Não processar apenas o contexto individual, mas também o contexto do grupo Contexto do grupo envolve todo o conhecimento relativo ao grupo composição do grupo, regras, papéis, objetivos, estratégias, procedimentos de coordenação Exemplo: Contexto em Groupware (Borges et al, 2004)
Context: A Survey and Research Directions : Out 8, Processo para promover contexto 1) mapeamento de eventos a contextos de origem 2) mapeamento de usuários a contextos de trabalho, a partir de suas atividades atuais (contexto mais apropriado) 3) Verificação das preferências dos usuários
Context: A Survey and Research Directions : Out 8, Uma representação de contexto
Context: A Survey and Research Directions : Out 8, Outras Aplicações de Contexto Contexto aplicado a Web Services Prover clientes com um comportamento customizado e personalizado [Keidl & Kemper, 2004] Contexto aplicado a Web Services Prover clientes com um comportamento customizado e personalizado [Keidl & Kemper, 2004]
Context: A Survey and Research Directions : Out 8, Modelos de contexto em colaboração Analisa a situação atual em que diferentes usuários se encontram Compara a situação com as informações disponíveis Provê o usuário com informações mais relevantes naquela situação Estimula contatos, troca de informações e ajuda mútua entre os usuários em situações similares