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