Universidade Federal de Pernambuco CIN – Centro de Informática Context: A Survey and Research Directions Vaninha Vieira Orientadora: Ana Carolina Salgado {vvs, acs}@cin.ufpe.br Recife – PE – Brasil Outubro - 2004 Porque Contexto? 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, 2004 3 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, 2004 4 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, 2004 5 Interações “pessoa-pessoa” Contexto direciona as nossas ações e comportamentos Context: A Survey and Research Directions : Out 8, 2004 6 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, 2004 7 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, 2004 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 ... ... ... Context: A Survey and Research Directions : Out 8, 2004 9 Formalizando Contexto como um Conceito Computacional Diversas Áreas da Computação – n Definições Inteligência Artificial “Contexto é o que restringe a solução de um problema, sem interferir nele explicitamente” [Brezillion, 2003] 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] Context: A Survey and Research Directions : Out 8, 2004 11 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, 2004 ? ? 12 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, 2004 13 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 Context: A Survey and Research Directions : Out 8, 2004 14 Contexto em Ação Exemplos de Aplicações Clássicas 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, 2004 16 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, 2004 17 The ParcTab System - Xerox Palo Alto (1992) http://sandbox.parc.com/parctab/ É 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, 2004 18 The Context Toolkit - Georgia Tech (1999) http://www.cs.berkeley.edu/~dey/context.html http://sourceforge.net/projects/contexttoolkit/ 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, 2004 19 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, 2004 20 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, 2004 21 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, 2004 22 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 Context: A Survey and Research Directions : Out 8, 2004 23 Desafios na implementação de Aplicações Context-Aware Muitos são os desafios... Captura (Aquisição) Representação Processamento Segurança e privacidade “Tunning” Context: A Survey and Research Directions : Out 8, 2004 25 Aquisição de Contexto Automática Manual Identificação das informações de contexto a serem consideradas Context: A Survey and Research Directions : Out 8, 2004 26 Representação do Contexto 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 Context: A Survey and Research Directions : Out 8, 2004 27 Representação do Contexto 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 Context: A Survey and Research Directions : Out 8, 2004 28 Alguns formatos de representação de contexto 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 Context: A Survey and Research Directions : Out 8, 2004 29 Processamento do Contexto 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 Context: A Survey and Research Directions : Out 8, 2004 30 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, 2004 31 “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, 2004 32 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, 2004 33 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 Context: A Survey and Research Directions : Out 8, 2004 34 Contexto no CIn Quem está trabalhando com Contexto IA Patricia Tedesco ([email protected]) BD Ana Carolina Salgado ([email protected]) Sandra Siebra ([email protected]) Vaninha Vieira ([email protected]) Rosalie Belian ([email protected]) HCI Alex Sandro Gomes ([email protected]) Genesio ([email protected]) Sistemas Distribuídos Carlos Ferraz ([email protected]) Nelson Rosa ([email protected]) Engenharia de Software (???) Context: A Survey and Research Directions : Out 8, 2004 36 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, 2004 37 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 Context: A Survey and Research Directions : Out 8, 2004 38 Alguns Projetos de Pesquisa Envolvendo Contexto No Brasil NCE/UFRJ Coordenador: Prof. Marcos Borges URL: http://chord.nce.ufrj.br 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: http://coweb.icmc.usp.br/coweb/mostra.php?ident=5 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, 2004 40 No Resto do Mundo Patrick Brézillon - LIP6 / Paris VI, França http://www-sysdef.lip6.fr/~brezil/Pages2/ContextPB.html Projeto: SYSDEF Modelagem e representação de contexto Gregory Abowd - Georgia Tech, USA http://www.cc.gatech.edu/fac/Gregory.Abowd/ Parceria projeto INCA/SERVE (USP-São Carlos) Computação context-aware Wolfgang Prinz – GMD, Alemanha http://orgwis.gmd.de/~prinz/ Cooperative Media Lab Contexto e Awareness em aplicações colaborativas Context: A Survey and Research Directions : Out 8, 2004 41 Quer saber mais? Referências CONTEXT: International web site http://context.umcs.maine.edu/ Link para muitos papers sobre context-awareness http://vvv.it.kth.se/edu/Ph.D/LocationAware/aware.vt98.html Coleção do Brézillon de Referências sobre contexto http://www-poleia.lip6.fr/~brezil/MUCA/Contexte.pdf Conferências específicas sobre contexto International and Interdisciplinary Conference on Modeling and Using Context [http://context-05.org/] Modeling and Retrieval of Context [http://www.mrc2004.de.ms/] International Workshop on Software Aspects of Context [http://diuf.unifr.ch/~kouadrim/iwsac04] Context: A Survey and Research Directions : Out 8, 2004 43 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 2004. 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. 1-34. Dey, A. K., 2001, "Understanding and Using Context". In: http://citeseer.nj.nec.com/dey01understanding.html, accessed in May 2004. 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. 300-313, Springer-Verlag Berlin, Heidelberg. Context: A Survey and Research Directions : Out 8, 2004 44 Frase de efeito “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 (?) http://groups.yahoo.com/group/context-ufpe/ Uso de Contexto 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 Context: A Survey and Research Directions : Out 8, 2004 46 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, 2004 47 Alguns exemplos de uso de Contexto 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 ????? Context: A Survey and Research Directions : Out 8, 2004 48 Exemplo: Contexto em Groupware Representação do contexto em vários níveis Individual Tarefa Equipe (Borges et al, 2004) 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 Context: A Survey and Research Directions : Out 8, 2004 49 Processo para promover contexto 1) mapeamento de eventos a contextos de origem 3) Verificação das preferências dos usuários Context: A Survey and Research Directions : Out 8, 2004 2) mapeamento de usuários a contextos de trabalho, a partir de suas atividades atuais (contexto mais apropriado) 50 Uma representação de contexto Context: A Survey and Research Directions : Out 8, 2004 51 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, 2004 52 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 Context: A Survey and Research Directions : Out 8, 2004 53