gerenciamento de contexto em sistemas colaborativosvvs/cemantika/docs/2006_qualify... ·...

117
Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de Qualificação e Proposta de Tese de Doutorado Recife – PE Maio de 2006 Pós-Graduação em Ciência da Computação

Upload: others

Post on 11-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

Gerenciamento de Contexto

em Sistemas Colaborativos

Vaninha Vieira dos Santos

Monografia de Qualificação e

Proposta de Tese de Doutorado

Recife – PE

Maio de 2006

Pós-Graduação em Ciência da Computação

Page 2: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

Universidade Federal de Pernambuco

Centro de Informática

Vaninha Vieira dos Santos

Gerenciamento de Contexto em

Sistemas Colaborativos

Trabalho apresentado ao Programa de Pós-graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de Doutor em Ciência da Computação.

Orientadora: Profa. Ana Carolina Salgado

Co-Orientadora: Profa. Patrícia A. C. R. Tedesco

Recife - PE

Maio de 2006

Page 3: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

iii

Resumo

Entender o contexto em que ocorre uma determinada interação é fundamental para que os

indivíduos possam responder de maneira apropriada à situação. No trabalho colaborativo,

onde a qualidade do trabalho produzido depende diretamente da interação entre os

indivíduos, conhecer o contexto é ainda mais importante. Uma funcionalidade desejada dos

sistemas computacionais é que eles se adaptem ao contexto corrente do usuário para oferecer

informações e serviços relevantes naquele instante. Em sistemas colaborativos não apenas o

contexto dos indivíduos deve ser considerado, mas também o contexto do grupo, da tarefa

em desenvolvimento, do projeto associado, entre outros. A aplicação de contexto à área de

Trabalho Cooperativo Apoiado por Computador ainda é um tópico em aberto, e necessita de

maiores investigações sobre o que exatamente considerar como contexto e como o mesmo

pode ser usado para melhorar o trabalho em grupo. A criação de sistemas cientes de contexto

não é trivial. Muitas tarefas relacionadas ao gerenciamento da informação contextual devem

ser implementadas. Para reduzir a complexidade inerente ao desenvolvimento desses

sistemas alguns trabalhos propõem mecanismos genéricos de gerenciamento do contexto. No

entanto, poucas pesquisas abordam mecanismos de gerenciamento de contexto em sistemas

colaborativos e, nesses casos, o contexto se confunde com o conceito de percepção. Falta,

também, uma representação formal do contexto voltada para o trabalho colaborativo. Nesse

cenário, este trabalho propõe um framework para gerenciamento de contexto e uma ontologia

para representação das informações contextuais em sistemas colaborativos. O gerenciador de

contextos é responsável por perceber o foco de trabalho corrente do usuário e prover

mecanismos de raciocínio e inferência que permitam identificar qual o contexto

correspondente a esse foco, a partir da manutenção de uma base de conhecimento contextual.

A ontologia propõe o uso de um vocabulário comum, genérico, para os contextos, que

permita a integração de informações contextuais provenientes de fontes diversas de contexto.

Palavras-chave: Contexto, Computação Ciente de Contexto, CSCW, Groupware, Ontologia

Page 4: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

iv

Abstract

Understanding the context that surrounds an interaction is fundamental for individuals to

answer in an appropriate way to that situation. In collaborative work, where the quality of

the produced work strongly depends on the interaction between individuals, the knowledge

about the context is more crucial. A functionality desired in computational system is that

they adapt themselves to the users’ context in order to offer relevant information and

services to that user in his/her current situation. In collaborative systems not only users’

context must be considered but also the group context, the task context, the project context,

and so on. The usage of context in Computer Supported Cooperative Work area is still an

open issue. More investigations need to be done in order to identify what exactly to consider

as context and how the context can be used to improve group work. The development of

context-aware systems is not a trivial task. To reduce the complexity inherent in building

those systems, some work propose the use of generic mechanisms for context management.

However, few research propose context management mechanisms for collaborative systems,

and in those cases the concept of context is mixed with the concept of awareness. It, also,

lacks a formal representation of context related to the collaborative work. In this light, this

work proposes a framework for context management in collaborative systems and an

ontology for formal representation of contextual information applied to the collaborative

work. The context manager aims to perceive the user current focus of attention and to

provide reasoning mechanisms that allow the identification of corresponding context, related

to the focus and to a set of contextual knowledge stored in a knowledge base. The ontology

proposes the use of a common, generic, vocabulary for contextual information that enables

the integration of context acquired from diverse context sources.

Keywords: Context, Context-Awareness Computing, CSCW, Groupware, Ontology

Page 5: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

v

Sumário

1 Introdução .................................................................................................................. 1

2 Sistemas Colaborativos.............................................................................................. 4 2.1. Trabalho Cooperativo Apoiado por Computador .......................................................... 4 2.2. Requisitos dos Sistemas Colaborativos ......................................................................... 5 2.3. Percepção....................................................................................................................... 8

2.3.1. Classificação e Representação das Informações de Percepção ........................................9 2.3.2. Benefícios em Prover Percepção....................................................................................10 2.3.3. Fatores que Influenciam a Percepção .............................................................................11 2.3.4. Percepção Periférica e Sobrecarga de Informações........................................................12 2.3.5. Mecanismos Genéricos de Percepção ............................................................................13

2.4. Considerações Finais ................................................................................................... 16 3 Contexto Computacional......................................................................................... 18

3.1. Definições de Contexto................................................................................................ 19 3.2. Computação Ciente de Contexto ................................................................................. 20 3.3. Requisitos para Desenvolvimento de Sistemas Cientes de Contexto .......................... 21

3.3.1. Processo para a Construção de Sistemas Cientes de Contexto.......................................21 3.3.2. Identificação dos Elementos de Contexto ......................................................................22 3.3.3. Modelo de Classificação do Contexto............................................................................24 3.3.4. Aquisição do contexto....................................................................................................25 3.3.5. Modelagem e Representação dos Elementos de Contexto .............................................26 3.3.6. Processamento e raciocínio sobre contexto ....................................................................27 3.3.7. Segurança e privacidade.................................................................................................28 3.3.8. Qualidade do Contexto...................................................................................................29 3.3.9. Desempenho do Sistema Ciente de Contexto.................................................................30

3.4. Sistemas de Gerenciamento de Contexto..................................................................... 30 3.5. Considerações Finais ................................................................................................... 31

4 Abordagens para Representação do Contexto...................................................... 32 4.1. Modelo Baseado em Pares de Chave-Valor................................................................. 32 4.2. Modelo Baseado em Linguagens de Marcadores ........................................................ 33 4.3. Modelo Baseado em Representações Gráficas ............................................................ 34 4.4. Modelo Orientado a Objetos........................................................................................ 36 4.5. Modelo baseado em lógica .......................................................................................... 37 4.6. Modelo baseado em Grafos Contextuais ..................................................................... 39 4.7. Modelo baseado em Mapas de Tópicos ....................................................................... 40 4.8. Modelo Baseado em Ontologias .................................................................................. 42

4.8.1. Exemplos de Ontologias de Contexto ............................................................................44 4.9. Considerações Finais ................................................................................................... 45

5 Mecanismos de Gerenciamento de Contexto......................................................... 47

Page 6: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

vi

5.1. Categorias de Abordagens para Gerenciamento de Contexto...................................... 47 5.2. Mecanismos para Gerenciamento de Contexto............................................................ 49

5.2.1. SOPHIE..........................................................................................................................49 5.2.2. SOCAM .........................................................................................................................50 5.2.3. CoBrA ............................................................................................................................52 5.2.4. CXMS ............................................................................................................................54 5.2.5. Context Toolkit - CTK ...................................................................................................55 5.2.6. Middleware de Contexto do Gaia...................................................................................56 5.2.7. Framework de Contexto.................................................................................................58 5.2.8. Kernel Semântico de Contexto.......................................................................................59 5.2.9. Framework Conceitual de Contexto para Groupware....................................................61

5.3. Considerações Finais ................................................................................................... 63 6 Colaboração Contextual.......................................................................................... 65

6.1. Sistemas Colaborativos Cientes de Contexto .............................................................. 65 6.2. Percepção x Contexto .................................................................................................. 67 6.3. Identificação dos Elementos de Contexto.................................................................... 67 6.4. Processamento do Contexto......................................................................................... 70 6.5. Outras Questões Associadas a Contexto no Trabalho em Grupo ................................ 71

6.5.1. Contexto Compartilhado ................................................................................................71 6.5.2. Descasamento de Contexto ............................................................................................72 6.5.3. Perda de Contexto ..........................................................................................................73

6.6. Uso de Contexto em Sistemas Colaborativos .............................................................. 73 6.6.1. Mecanismos de Percepção Contextual ...........................................................................73 6.6.2. CO2DE...........................................................................................................................77 6.6.3. ConChat .........................................................................................................................77 6.6.4. Contexto em Sistemas Colaborativos Móveis ................................................................79 6.6.5. Serviços de Recomendação Sensíveis ao Contexto........................................................80

6.7. Considerações Finais ................................................................................................... 81 7 Um Framework para Gerenciamento de Contexto em Sistemas Colaborativos83

7.1. Motivação e Objetivos do trabalho............................................................................. 83 7.2. Conceitos Utilizados .................................................................................................... 84

7.2.1. Agentes Inteligentes .......................................................................................................85 7.2.2. Foco de Atenção.............................................................................................................85 7.2.3. Elementos de Contexto...................................................................................................85

7.3. Framework para Gerenciamento de Contexto Aplicado a Sistemas Colaborativos .... 86 7.3.1. Arquitetura .....................................................................................................................86 7.3.2. Ontologia para Representação de Contexto em Sistemas Colaborativos .......................90

7.4. Metodologia................................................................................................................. 94 7.4.1. Especificação de Cenários Reais de Colaboração ..........................................................94 7.4.2. Modelagem da CoMGroup-Ont .....................................................................................95 7.4.3. Modelagem do Framework CoMGroup.........................................................................95 7.4.4. Implementação de um Protótipo do CoMGroup ............................................................96 7.4.5. Estudo de Caso...............................................................................................................96 7.4.6. Escrita.............................................................................................................................96

7.5. Atividades Realizadas.................................................................................................. 97 7.5.1. Artigos Publicados e Submetidos para Avaliação..........................................................97

7.6. Cronograma de Atividades .......................................................................................... 97 7.7. Contribuições Esperadas.............................................................................................. 98

Page 7: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

vii

Lista de Figuras

Figura 2.1 - Esquema geral dos aspectos do trabalho em grupo (Araújo, 2000)......................................................... 6 Figura 2.2 – O modelo 3C de colaboração (Gerosa, 2006) ......................................................................................... 6 Figura 2.3 – Formas de comunicação entre membros de um grupo ............................................................................ 7 Figura 2.4 – Ilustração da percepção sobre ações realizadas em um artefato compartilhado.................................... 9 Figura 2.5 – Visão geral da arquitetura da infra-estrutura NESSIE (Prinz, 1999).................................................... 14 Figura 2.6 - Ciclo Registro-Ocorrência-Notificação do Framework BW (Kirsch-Pinheiro et al., 2002) .................. 15 Figura 2.7 - Processo de gerenciamento das informações de percepção usado em Ariane (Vieira, 2003)................ 16 Figura 3.1 – Tipos de Contexto e suas Dinâmicas (Santoro et al., 2005) .................................................................. 24 Figura 3.2 – Regras de raciocínio de contexto em lógica de primeira ordem (Wang et al., 2004) ............................ 28 Figura 3.3 – Exemplo de geração de contexto de alta ordem usando redes bayesianas (Korpipää et al., 2003) ...... 29 Figura 3.4 – Ontologia de Qualidade de Contexto e Instância de Exemplo (Gu et al., 2004c).................................. 30 Figura 4.1 - Exemplo de uso da representação de contexto por par chave-valor ...................................................... 33 Figura 4.2 - Exemplo de Perfil usando CSCP (Strang e Linnhoff-Popien, 2004) ...................................................... 34 Figura 4.3 – Exemplo de caso de uso genérico para um sistema ciente de contexto (Bauer, 2003) .......................... 35 Figura 4.4 – Modelo CML (Henricksen et al., 2002).................................................................................................. 36 Figura 4.5 – Exemplo de regras de contexto na Teoria da Situação Estendida (Strang e Linnhoff-Popien, 2004) ... 38 Figura 4.6 – Representação de procedimentos e contextos em um grafo contextual (Brézillon, 2003b) ................... 40 Figura 4.7 – Representações Visuais de Mapas de Contexto (Goslar e Schill, 2004) ................................................ 41 Figura 4.8 – Aplicações de Ontologia (Mika e Akkermans, 2005) ............................................................................. 42 Figura 5.1 - Modelo de Contexto (Belotti, 2004)........................................................................................................ 49 Figura 5.2 - Arquitetura do SOPHIE (Belotti, 2004).................................................................................................. 50 Figura 5.3 - Visão parcial da ontologia de alto nível do CONON (Wang et al., 2004) ............................................. 51 Figura 5.4 – Visão Geral da Arquitetura do SOCAM (Gu et al., 2005) ..................................................................... 52 Figura 5.5 – Representação Gráfica da Ontologia CoBrA-Ont (Chen et al., 2003a) ................................................ 53 Figura 5.6 – Visão Geral da Arquitetura do CoBrA (Chen, 2004)............................................................................. 54 Figura 5.7 - Arquitetura do CXMS (Zimmermann et al., 2005a)................................................................................ 55 Figura 5.8 – Hierarquia de Componentes e Arquitetura do CTK (Dey et al., 2001).................................................. 56 Figura 5.9 – Visão geral do middleware de contexto do GAIA (Ranganathan e Campbell, 2003) ............................ 57 Figura 5.10 - Arquitetura do Framework de Contexto (Henricksen e Indulska, 2005) .............................................. 59 Figura 5.11 - Visão Geral da Arquitetura do SCK (Bulcão Neto e Pimentel, 2005) .................................................. 60 Figura 5.12 – Visão geral do modelo de contexto (Bulcão Neto e Pimentel, 2005) ................................................... 61 Figura 5.13 – Framework Conceitual de Contexto para Groupware (Rosa, 2004) ................................................... 62 Figura 5.14 – Diagrama de classes com um modelo conceitual preliminar do contexto (Rosa, 2004)...................... 63 Figura 6.1 – Níveis de contexto em ambientes colaborativos (Brézillon et al., 2004)................................................ 68 Figura 6.2 – Composição do contexto de uma atividade (Rosa, 2004) ...................................................................... 69 Figura 6.3 – Representação de contexto proposta por Kirsch-Pinheiro et al. (Kirsch-Pinheiro et al., 2004) ........... 70 Figura 6.4 – Processamento do contexto no trabalho em grupo (Borges et al., 2004) .............................................. 71 Figura 6.5 – Construção do contexto compartilhado na interação entre dois participantes (Brézillon, 2003a) ....... 72 Figura 6.6 – Exemplos de situações de trabalho onde usuários podem receber informações de percepção relacionadas a um documento (Mark et al., 1997) ............................................................. Erreur ! Signet non défini. Figura 6.7 – Passos para inclusão do contexto de percepção no ENI (Gross e Prinz, 2003) .................................... 76 Figura 6.8 - Arquitetura do ConChat (Ranganathan et al., 2002) ............................................................................. 79 Figura 6.9 – Interface do ConChat (Ranganathan et al., 2002) ................................................................................. 79 Figura 6.10 – Inclusão do contexto ao Modelo 3C no AulaNetM (Filippo et al., 2005) ............................................ 80 Figura 6.11 – Propaganda sensível ao contexto no GMail ........................................................................................ 81 Figura 7.1 – Visão geral da arquitetura do CoMGroup............................................................................................. 87 Figura 7.2 - Visão Geral e Parcial da Hierarquia de Classes da Ontologia de Contexto ......................................... 92 Figura 7.3 – Visão geral dos relacionamentos entre os conceitos ............................................................................. 93 Figura 7.4 – Instância da ontologia de contexto usada no CoWS (Zarate, 2006)...................................................... 94

Page 8: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

viii

Lista de Tabelas

Tabela 3.1 - Classificação das informações contextuais (Henricksen, 2003)............................................................. 25 Tabela 4.1 – Atributos (chaves) de Contextos de Percepção (Gross e Prinz, 2003)................................................... 33 Tabela 4.2 – Diagramas da UML e sua finalidade na modelagem do contexto ......................................................... 35 Tabela 4.3 – Resumo das Abordagens de Representação de Contexto....................................................................... 45 Tabela 5.1 – Resumo das Abordagens para Gerenciamento de Contextos................................................................. 64 Tabela 7.1 – Cronograma de Atividades ................................................................................................................... 98

Page 9: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

1

CAPÍTULO 1

Introdução

Mudanças nas necessidades de negócios, com tarefas e projetos mais complexos e prazos de execução

menores, vêm demandando alterações na forma de trabalho das organizações, com a substituição do

esforço individual pela utilização de equipes, interagindo colaborativamente. É cada vez mais comum que

as equipes de trabalho sejam formadas por pessoas dispersas geograficamente, ou que, mesmo

fisicamente próximas, tenham uma flexibilidade de horário, trabalhando em turnos distintos. Para que a

realização do trabalho em equipe funcione de maneira eficaz, é necessário que haja cooperação entre os

indivíduos envolvidos, facilidades de comunicação, entendimento dos objetivos e papéis de cada um

dentro do grupo, bem como acompanhamento do que ocorre no âmbito das atividades do grupo.

A área de Trabalho Cooperativo Apoiado por Computador (CSCW – Computer Supported

Cooperative Work) estuda o modo como as pessoas trabalham em equipe e procura descobrir como os

computadores podem auxiliá-las na realização de suas tarefas (Ellis et al., 1991). As pesquisas

desenvolvidas em CSCW deram origem a uma nova categoria de sistemas, chamada “sistemas

colaborativos”, ou “groupware”. Esses sistemas objetivam aumentar o potencial dos grupos, fazendo com

que o produto resultante das interações apresente melhor qualidade do que a soma das contribuições

individuais de cada membro do grupo. Para isso, o groupware deve oferecer recursos que facilitem a

comunicação entre os participantes, a cooperação e compartilhamento de informações e recursos, a

coordenação das atividades colaborativas, a percepção das interações realizadas no contexto do grupo, e

a verificação de interações passadas mantidas em uma memória do grupo.

A percepção refere-se ao entendimento de um indivíduo sobre o que ocorre dentro do grupo que

seja relevante para a realização de suas atividades. A memória do grupo provê um entendimento sobre o

histórico de interações do grupo, como o grupo se comporta, como toma suas decisões e desenvolve seu

trabalho. É importante que os indivíduos compreendam o trabalho dos outros sem muito esforço, e em um

curto espaço de tempo, para otimizar o andamento dos trabalhos.

Contexto pode ser definido como qualquer informação que pode ser utilizada para caracterizar a

situação de uma entidade, onde uma entidade é uma pessoa, lugar ou objeto considerado relevante para a

interação entre um usuário e uma aplicação (Dey, 2001). Sistemas cientes de contexto, ou sensíveis a

contexto, são aquelas que utilizam o contexto do usuário para prover informações e serviços relevantes

para o usuário naquela situação (Dey, 2001).

As pessoas utilizam, diariamente, informações contextuais para tomar decisões, fazer julgamentos

ou interagir com outras pessoas. Entender o contexto em que ocorre uma determinada interação é

fundamental para que os indivíduos possam responder de maneira apropriada à situação. No trabalho

colaborativo, onde a qualidade do trabalho produzido depende diretamente da interação entre os

Page 10: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

2

indivíduos, conhecer o contexto é ainda mais importante. O contexto é um instrumento poderoso para

viabilizar a disseminação de informações relevantes, pois considerando a situação atual do usuário, a

informação pode ser filtrada de acordo com o que é mais importante para o usuário naquela situação.

Brézillon argumenta que a informação deve ser adquirida e mantida com o seu contexto associado para

permitir uma melhor compreensão dessa informação, uma vez que ela assume um significado dentro do

seu contexto (Brézillon, 2005).

Em sistemas colaborativos não apenas o contexto dos indivíduos deve ser considerado, mas

também o contexto do grupo, da tarefa em desenvolvimento, do projeto associado, entre outros. A

aplicação de contexto à área de CSCW ainda é um tópico em aberto que necessita maiores investigações

sobre o que exatamente considerar como contexto e como o mesmo pode ser usado para melhorar o

trabalho em grupo. Alguns trabalhos vêm explorando esse tema {Alarcón, 2005 5 /id;Gross, 2003 112

/id;Borges, 2004 31 /id;Kirsch-Pinheiro, 2005 200 /id}. O conhecimento sobre o contexto no qual ocorre

uma determinada interação pode ser útil para apoiar o trabalho colaborativo, através do provimento de

informações e serviços relevantes para aquela situação. Essa adaptabilidade ao contexto é fundamental

para que o apoio ao trabalho em grupo seja efetivo e, com isso, aumente a usabilidade desses sistemas

(Borges et al., 2004).

Conhecer o contexto em que ocorre uma interação, embora pareça simples no mundo real, mostra-

se bastante difícil em sistemas computacionais. Construir sistemas sensíveis a contexto não é uma tarefa

trivial. Inicialmente, é preciso definir o que exatamente considerar como contexto, onde este se aplica e

que informações são necessárias para descrevê-lo. É preciso viabilizar formas de adquirir o contexto do

usuário o mais automático possível, sem que o mesmo tenha que ser questionado insistentemente sobre o

contexto em que se encontra, possivelmente por meio de técnicas de monitoramento. A aquisição

automática exige que mecanismos de raciocínio e inferência sejam implementados, pois nem todo tipo de

contexto pode ser obtido diretamente das variáveis passíveis de monitoramento disponíveis em um

ambiente. Para essa inferência, questões como incerteza devem ser consideradas, bem como um modelo

formal para representação do contexto. O monitoramento traz outras questões como a necessidade do

usuário manter sua segurança e privacidade.

Para reduzir a complexidade inerente ao desenvolvimento desses sistemas alguns trabalhos

propõem mecanismos genéricos para gerenciamento de contexto, que desacoplem do sistema ciente de

contexto tarefas como aquisição, representação, raciocínio e manipulação do contexto. No entanto,

poucas pesquisas abordam mecanismos de gerenciamento de contexto em sistemas colaborativos e, nesses

casos, o contexto se confunde com o conceito de percepção (Dourish e Bellotti, 1992). Falta, também,

uma representação formal do contexto voltada para o trabalho colaborativo que permita o uso de

contextos provenientes de fontes diversas.

Nesse cenário, o objetivo deste trabalho é propor: (1) um framework para gerenciamento de

contexto e (2) uma ontologia para representação das informações contextuais em sistemas colaborativos.

O gerenciador de contextos é responsável por perceber o foco de trabalho corrente do usuário e prover

Page 11: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

3

mecanismos de raciocínio e inferência que permitam identificar qual o contexto correspondente a esse

foco, a partir da manutenção de uma base de conhecimento contextual. A ontologia propõe o uso de um

vocabulário comum e genérico para os contextos que permita a utilização de informações contextuais

provenientes de diferentes fontes de contexto.

O restante desta monografia está organizado como segue:

No Capítulo 2 são discutidos os conceitos associados a sistemas colaborativos, com destaque

para o conceito de percepção;

O Capítulo 3 define o que é contexto computacional e descreve os requisitos e desafios para o

desenvolvimento de sistemas cientes de contexto;

O Capítulo 4 discute o problema da representação de contexto e apresenta algumas abordagens

para representá-lo;

O Capítulo 5 aborda mecanismos para gerenciamento de contextos, define as categorias em que

esses mecanismos se inserem, e apresenta algumas abordagens encontradas na literatura;

Os Capítulos 3 a 5 apresentam como o contexto vem sendo estudado nas diversas áreas, com

ênfase na área da Computação Ubíqua, onde os estudos aplicados de contexto estão mais

avançados. Assim, o Capítulo 6 revisa a área de CSCW para identificar como o contexto vem

sendo proposto para uso nos sistemas colaborativos. São discutidas as diferenças e similaridades

entre os conceitos de contexto e percepção, categorias para identificação dos elementos

contextuais nesses sistemas e exemplos do uso do contexto em alguns sistemas colaborativos;

Finalmente, o Capítulo 7 apresenta a proposta desta tese, bem como a motivação para a

pesquisa, o escopo e objetivos do trabalho, a arquitetura do framework proposto, seu modelo de

representação de contexto, baseado em ontologias, a metodologia a ser seguida, as atividades

realizadas, o cronograma das próximas atividades e as contribuições esperadas com o trabalho.

Page 12: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

4

CAPÍTULO 2

Sistemas Colaborativos

Grupos são importantes entidades organizacionais. Ao trabalhar em grupo, os indivíduos têm a

oportunidade de obter feedback sobre suas ações, expor-se a diferentes pontos de vista e explorar os

próprios limites de modo a corresponder às responsabilidades assumidas com os colegas (Tedesco, 2001).

Dessa maneira, grupos podem ser mais efetivos, em termos de produção de soluções melhores e mais

rápidas, do que pessoas trabalhando individualmente. Sistemas colaborativos são categorias de aplicações

voltadas para apoiar os grupos na realização dos seus trabalhos, quebrando barreiras de tempo e espaço,

ou seja, com indivíduos distantes geograficamente e com diferentes horários de trabalho.

Este capítulo descreve os conceitos relacionados aos sistemas colaborativos. Inicialmente é

apresentada a área de pesquisa de trabalho cooperativo apoiado por computador, de onde esses sistemas

originam-se. A seguir são descritos requisitos envolvidos na construção de sistemas colaborativos,

segundo o modelo 3C (Comunicação, Coordenação e Cooperação) {Ellis, 1991 95 /id}{Fuks, 2002 298

/id}, sendo detalhado o requisito de percepção, devido à sua relevância para este trabalho.

2.1. TRABALHO COOPERATIVO APOIADO POR COMPUTADOR

A área de Trabalho Cooperativo Apoiado por Computador (CSCW – do inglês Computer Supported

Cooperative Work) estuda como as pessoas interagem para a realização do trabalho cooperativo e como a

tecnologia dos computadores pode auxiliá-las nessa interação (Ellis et al., 1991). CSCW é uma área

multidisciplinar com origens nas ciências sociais, envolvendo disciplinas como Antropologia, Sociologia

e Psicologia, e nas tecnologias de computadores, envolvendo profissionais de áreas como Engenharia de

Software, Banco de Dados, Interação Homem-Máquina, Inteligência Artificial e Redes de Computadores.

Encontrar uma definição precisa de trabalho cooperativo não é fácil. Em (Ramampiaro e Nygard,

1999) é citada uma definição apresentada por Karl Marx que diz que “quando vários trabalhadores

trabalham em conjunto, lado a lado, de acordo com um plano, em um mesmo processo, ou diferentes, mas

conectados, essa forma de trabalho é chamada cooperação”. Outra definição, mais genérica, diz que

cooperação é “um processo de trabalho envolvendo diversas pessoas agindo em conjunto, em um

contexto compartilhado, para realizar tarefas com objetivo comum” (Ramampiaro e Nygard, 1999).

Os termos trabalho cooperativo e trabalho colaborativo são muitas vezes utilizados como

sinônimos. No entanto, existem grupos que fazem distinção entre eles, baseado no grau de divisão das

tarefas. No trabalho cooperativo, os parceiros dividem o trabalho, resolvem sub-tarefas individualmente e

então juntam os resultados parciais em um produto final; enquanto que no trabalho colaborativo, os

participantes do grupo desenvolvem juntos cada sub-tarefa (Dillenbourg et al., 1996). O modelo 3C de

Page 13: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

5

colaboração, proposto por Ellis et al. (Ellis et al., 1991), diz que a colaboração é composta por três

atividades inter-relacionadas: cooperação, coordenação e comunicação. Dessa forma, esse modelo vê a

cooperação como uma das atividades que constituem a colaboração.

A interação entre os participantes pode ocorrer, basicamente, de três formas: síncrona, assíncrona e

multi-síncrona. Interação síncrona é aquela em que os participantes trabalham juntos sobre uma

determinada tarefa no mesmo instante de tempo, como ocorre em reuniões. Na interação assíncrona, os

participantes trabalham em diferentes instantes de tempo na tarefa, como ocorre com autores e revisores

na escrita colaborativa, ou em grupos de discussão, onde um participante escreve uma mensagem que

pode levar dias até ser respondida por um outro participante. A interação multi-síncrona, segundo Molli et

al. (Molli et al., 2002), ocorre principalmente no desenvolvimento cooperativo de software, onde cada

membro do grupo tem uma cópia do dado compartilhado e modifica suas cópias em paralelo, as quais são,

posteriormente, reunidas em uma versão única.

As pesquisas desenvolvidas em CSCW deram origem a uma nova categoria de aplicações,

chamadas sistemas colaborativos, ou sistemas de groupware. Essas aplicações objetivam aumentar o

potencial dos grupos, fazendo com que o produto resultante das interações apresente melhor qualidade do

que a soma das contribuições individuais (Araújo, 2000). Além disso, elas auxiliam a manutenção do

conhecimento corporativo através de uma infra-estrutura, conhecida como memória organizacional, ou

memória do grupo, capaz de manter o conhecimento sobre o negócio da organização, através do

armazenamento das interações entre os participantes (Araújo, 2000).

A tecnologia de groupware apóia o trabalho em grupo através da criação de um ambiente virtual

compartilhado onde os membros do grupo podem compartilhar conhecimento, informações e artefatos

diversos (como textos, documentos, objetos de software, descrições) (Alarcón et al., 2005a). Groupware

reflete uma mudança na ênfase em usar o computador para resolver problemas utilizando-o para facilitar a

interação humana (Ellis et al., 1991).

2.2. REQUISITOS DOS SISTEMAS COLABORATIVOS

Os requisitos que devem ser observados por desenvolvedores de sistemas colaborativos envolvem,

basicamente, quatro aspectos principais e inter-relacionados (Figura 2.1): (i) a comunicação entre os

membros do grupo; (ii) a coordenação de suas atividades; (iii) o armazenamento e recuperação do

conhecimento comum através da memória do grupo; e (iv) a percepção do contexto do trabalho do grupo

por seus membros (Araújo, 2000; Borges e Pino, 2000).

Uma outra classificação para os requisitos de sistemas colaborativos é o modelo 3C (Ellis et al.,

1991), apresentado na Figura 2.2. Esse modelo divide a atividade colaborativa em três sub-atividades, co-

relacionadas: comunicação, coordenação e cooperação. A comunicação envolve a troca de mensagens e

a negociação de compromissos. A cooperação é a produção conjunta dos membros do grupo em um

espaço compartilhado. A coordenação permite que pessoas, atividades e recursos sejam gerenciados para

Page 14: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

6

lidar com conflitos e evitar a perda de esforços e desmotivações. Mecanismos de percepção permitem que

o indivíduo obtenha feedback de suas ações e feedthrough das ações de seus colegas (Gerosa, 2006).

Figura 2.1 - Esquema geral dos aspectos do trabalho em grupo (Araújo, 2000)

Neste trabalho, são adotadas as definições propostas no modelo 3C, acrescido da noção de memória

do grupo. Devido à relevância para este trabalho, o conceito de percepção será tratado em detalhes na

próxima seção.

2.2.1. Comunicação

O primeiro obstáculo ao trabalho colaborativo virtual é vencer o isolamento e a distância entre os

membros da equipe de trabalho, estabelecendo a comunicação entre as partes envolvidas. Essa

comunicação pode se dar de maneira direta ou indireta, como ilustra a Figura 2.3. A comunicação direta

ocorre por iniciativa dos próprios participantes, por meio de dispositivos como programas de áudio ou

vídeo conferência, correio eletrônico ou programas de mensagem instantânea. Nesse caso, o usuário

contacta diretamente e abre um canal de comunicação com os usuários com quem deseja interagir, e usa a

forma oral ou textual para debater idéias, tirar dúvidas, dividir tarefas ou tomar conhecimento do

andamento das tarefas realizadas pelos outros participantes.

Figura 2.2 – O modelo 3C de colaboração (Gerosa, 2006)

A comunicação indireta ocorre, especialmente, nas interações assíncronas e se caracteriza pela

manipulação de informações existentes nos artefatos compartilhados, como mensagens deixadas por

Page 15: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

7

outros participantes relatando suas ações sobre o artefato, ou o histórico de ações realizadas sobre o

artefato. Artefato compartilhado é qualquer tipo de produto, ou partes de um produto, que seja produzido

pelo grupo, tais como objetos de software, documentos textuais, arquivos de áudio, vídeo, imagem,

porções de texto, mensagens textuais, mensagens de áudio, entre outros.

Figura 2.3 – Formas de comunicação entre membros de um grupo

O registro persistente da manipulação dos artefatos compartilhados pelo grupo compõe a memória

do grupo, ou memória organizacional. A memória do grupo permite conhecer o que houve e o que está

acontecendo ao artefato e, conseqüentemente, dentro do grupo. Em (Dourish, 1997), o artefato

compartilhado é visto, essencialmente, como o único espaço compartilhado disponível aos participantes,

representando a informação chave na colaboração assíncrona. Nesse caso, os indivíduos não se

comunicam diretamente uns com os outros, mas através do registro histórico de suas ações (geralmente

realizado de forma automática pelo próprio groupware) ou através de anotações e comentários deixados

pelo usuário anexados aos artefatos compartilhados.

2.2.2. Coordenação

A coordenação refere-se ao acompanhamento da execução do processo de trabalho, à especificação de

como ocorrerão as interações, à definição de regras e prazos, à delegação de responsabilidades, e ao

controle do desenvolvimento das tarefas. A coordenação visa garantir a produtividade e o sucesso dos

objetivos do grupo, mantendo o grupo coeso, os participantes cientes do seu papel perante o grupo e

focados em seus objetivos específicos e no objetivo geral do grupo. Sem uma boa coordenação as chances

de sucesso do grupo são pequenas e há alta probabilidade de desmotivação, desânimo e trabalhos

conflitantes. Exemplos de ferramentas que apóiam o coordenador são ferramentas de workflow, como o

Lotus Notes (IBM, 2006), de gerência de projetos, como o MSProject (Microsoft, 2005), ferramentas

gerenciais sobre a participação dos membros do grupo, como “participômetro”, “contributômetro” e

“impactômetro” apresentadas em (Borges e Pino, 1999), e ferramentas de consultas analíticas, como o

cubo de percepção (Vieira et al., 2004).

2.2.3. Cooperação

A cooperação está diretamente associada à execução conjunta de tarefas por membros do grupo. Para

isso, é necessário um ambiente que permita gerar e manipular artefatos compartilhados, essenciais para o

Page 16: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

8

cumprimento dos objetivos das tarefas. Ambientes de cooperação incluem espaços de trabalho

compartilhados (Gutwin e Greenberg, 2002) e ferramentas de co-autoria adequados à tarefa em execução.

Por exemplo, se a tarefa for a escrita cooperativa de um texto, é necessário que o grupo tenha à disposição

um editor de texto cooperativo. Se a tarefa for o desenvolvimento cooperativo de um software, faz-se

necessário um sistema de controle de versões, como o CVS (CVS, 2006).

2.3. PERCEPÇÃO

Mecanismos de apoio à percepção é considerada uma das principais funcionalidades das aplicações

cooperativas e um fator relevante para ampliar a usabilidade dessas aplicações (Gutwin e Greenberg,

2002). Esse tema tem recebido considerável atenção por parte dos pesquisadores das áreas de CSCW e

Interação Humano-Computador (IHC). Sua importância é evidenciada por diversos trabalhos de pesquisa

(Dourish e Bellotti, 1992; Sohlenkamp, 1998; Borges e Pino, 1999; Araújo, 2000; Kirsch-Pinheiro, 2001;

Gutwin e Greenberg, 2002; Redmiles et al., 2002; Kirsch-Pinheiro et al., 2003; Vieira et al., 2004; David,

2004; Gross et al., 2005) e workshops, em importantes conferências, dedicados ao tema (CHI’97,

CSCW’00, CHI’00).

Uma das mais referenciadas definições é a proposta por Dourish e Bellotti, para os quais:

“Percepção é uma compreensão das atividades dos outros, que provê um contexto para

atividades próprias. Esse contexto é utilizado para garantir que as contribuições individuais

sejam relevantes para as atividades do grupo como um todo, e para avaliar as ações

individuais em relação aos objetivos e progresso do grupo” (Dourish e Bellotti, 1992).

Uma outra definição, proposta por Sohlenkamp diz que:

“Percepção é uma compreensão do estado de um sistema, incluindo atividades passadas,

estado atual e opções futuras, e um estado mental de um usuário (abrangendo a

compreensão, o conhecimento, e o “estar atento”), o qual envolve a atividade dos outros e

provê um contexto para atividades próprias” (Sohlenkamp, 1998).

De uma forma geral, pode-se entender percepção como o conhecimento e a compreensão de tudo o

que ocorre dentro e fora de um grupo que sejam relevantes para o desenvolvimento das atividades dos

seus participantes, no desempenho dos seus diferentes papéis. O sistema inclui todo o contexto do grupo,

os artefatos compartilhados, os aspectos sociais e organizacionais do grupo (que pessoas compõem o

grupo, quais são suas atribuições e habilidades) (Vieira, 2003).

Os termos percepção e mecanismos de percepção são, muitas vezes, empregados de forma similar

na literatura, como se fossem o mesmo conceito. Entretanto, deve-se fazer uma diferenciação entre os

dois. O primeiro é um estado mental do usuário, enquanto o segundo corresponde às técnicas empregadas

por um sistema para oferecer informações de percepção que auxiliem os membros do grupo a alcançar

esse estado mental (Sohlenkamp, 1998). Como exemplo dessa diferença, considere a situação onde um

Page 17: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

9

usuário entra em uma sala virtual de chat. A informação de percepção é “o usuário X entrou na sala”. Os

mecanismos de percepção são os meios providos pela aplicação para que os membros do grupo recebam

essa informação. A percepção é alcançada quando as demais pessoas presentes na sala recebem,

processam e compreendem essa informação.

2.3.1. Classificação e Representação das Informações de Percepção

Em termos gerais, para compreender totalmente uma interação da qual faz parte, um indivíduo deve

conhecer as pessoas que compõem o seu grupo (percepção social), deve ter uma visão geral das

atividades desenvolvidas pelo grupo, compreendendo onde suas próprias atividades se inserem dentro do

contexto global (percepção de atividades), e deve ser informado sobre mudanças que venham a ocorrer

no espaço de trabalho compartilhado, no decorrer das interações do grupo (percepção do espaço de

trabalho) (Araújo, 2000; Gutwin e Greenberg, 2002).

Uma classificação para as informações de percepção é conhecida como 5W+1H (Gutwin, 1997;

McCaffrey e L., 1998) e identifica seis questões básicas que devem ser respondidas quando se deseja

contextualizar um indivíduo sobre algo que o mesmo não tenha conhecimento. Elas permitem responder

quem (Who) fez o que (What), onde (Where), em que momento (When), por qual motivo (Why) e de que

maneira (How). Esta classificação aparece em diversos trabalhos para representar as informações de

percepção (Tam, 2002; Vieira, 2003). Algumas variações excluem a questão Why ou a questão How da

representação devido à complexidade de sua identificação automática. A Figura 2.4 ilustra o uso dessas

questões para prover percepção a um Usuário A sobre alterações feitas pelo Usuário B em um artefato

compartilhado.

O que aconteceu?O que aconteceu?

Como aconteceu?Como aconteceu?

Quem está aqui?Quem está aqui?

Quando?

Porque?

Onde?

5W + 1H

Quando?

Porque?

Onde?

5W + 1H

Artefato Compartilhado

Usuário A

Usuário B

Artefato Compartilhado

Usuário AUsuário A

Usuário BUsuário B

Figura 2.4 – Ilustração da percepção sobre ações realizadas em um artefato compartilhado

A maioria dos mecanismos de percepção baseia-se nas facilidades do modelo de eventos para

representar as informações de percepção (Fussel et al., 1995; Prinz, 1999; Sohlenkamp et al., 2000;

Kirsch-Pinheiro et al., 2002; Vieira et al., 2004). Eventos são pequenas mensagens estruturadas que

contêm informações sobre mudanças de estado dos artefatos armazenados e que são propagadas pelo

ambiente de modo a prover percepção (Trevor et al., 1993).

Page 18: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

10

2.3.2. Benefícios em Prover Percepção

Segundo Gutwin e Greenberg (Gutwin e Greenberg, 2002), a percepção é vista como fator determinante

para o sucesso da utilização dos sistemas colaborativos. Manter os usuários atentos ao que ocorre dentro

do grupo é fundamental para um bom andamento das atividades individuais e para a coordenação do

trabalho como um todo.

A percepção é essencial para o fluxo e a naturalidade do trabalho, auxiliando a diminuir as

sensações de trabalho impessoal e de distância, comuns nos ambientes virtuais (Gerosa et al., 2001).

Através dessas informações, os participantes podem montar o contexto de suas atividades em relação às

dos demais, coordenando-se para que os esforços de comunicação e de trabalho sejam revertidos em

cooperação. Além disso, o coordenador do grupo pode valer-se dessas informações, que lhe fornecerá

uma visão geral do andamento dos trabalhos e o estado de cada atividade, para motivar e organizar as

pessoas dentro do grupo, encorajando a cooperação (Gerosa et al., 2001).

Ao trabalhar sozinho, de forma isolada, um usuário ao retornar para uma tarefa em que estava

trabalhando pode, sem muita dificuldade, buscar em sua memória as mudanças significativas realizadas

em uma sessão anterior, relembrando o que ele alterou nos objetos e o que ainda necessita ser feito. Por

outro lado, ao trabalhar colaborativamente com outras pessoas, o usuário pode encontrar mudanças

realizadas por outras pessoas em artefatos compartilhados em que estava trabalhando anteriormente.

Nesse caso, ele não tem como adivinhar o que foi feito, o que mudou e o que ainda está por fazer. No

entanto, ele necessita dessa informação para compreender as influências dessas mudanças sobre seu

trabalho e como ele deverá agir desse ponto em diante.

Quando decisões e êxitos dependem da integração de diferentes membros de um grupo, torna-se

importante que cada um conheça o progresso do trabalho dos companheiros, como o que falta para o

término de suas atividades ou quais os resultados preliminares. Sem tal contexto, os indivíduos não

possuem meios de medir a qualidade do seu próprio trabalho em relação aos objetivos e progresso do

grupo (Dourish e Bellotti, 1992).

As informações de percepção tornam a colaboração mais eficiente, permitindo aos participantes

evitar a duplicidade de trabalho e reduzir os conflitos. Prover facilidades adequadas para a percepção é

essencial para colaborações suportadas por computador efetivas, uma vez que na falta dessas informações

o usuário é obrigado a supor o que os outros estão fazendo, causando perda de tempo em atividades não

produtivas (Prakash et al., 1999).

A falta de percepção em um grupo gera diversos problemas, como redundância nas tarefas,

inconsistências e contradições, acarretando em um trabalho sem coesão de idéias ou incompleto,

prejudicando seu resultado em termos de qualidade e eficiência, podendo, até, em casos extremos, não

atingir seus objetivos. Além disso, a falta de informações de percepção, principalmente nas interações

assíncronas, pode gerar um estado de solidão e inércia nos membros do grupo, agravado pelo

Page 19: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

11

desconhecimento da importância de suas atividades para o grupo, de seus prazos ou do andamento do

trabalho (Kirsch-Pinheiro, 2001).

A percepção é importante, também, para apoiar a coordenação de atividades individuais ou

coletivas, a comunicação informal e indireta e o uso de convenções (Sohlenkamp, 1998). Comunicação

informal é a interação oportunista, espontânea e não planejada entre as pessoas.

2.3.3. Fatores que Influenciam a Percepção

A forma como as informações de percepção devem ser coletadas e apresentadas pode variar de acordo

com alguns critérios, como o modo de interação e o papel desempenhado pelo usuário dentro do grupo.

Modo de interação: síncrono X assíncrono

A percepção é importante tanto nas interações síncronas quanto assíncronas. Entretanto, o tipo de

informação de percepção e os mecanismos correspondentes são diferentes nas duas formas de interação.

Por exemplo, em relação à granularidade das informações tratadas, ao fornecimento dessas informações

aos usuários finais e à durabilidade das mesmas.

Usuários que interagem de forma síncrona estão interessados em eventos que estejam ocorrendo no

espaço de trabalho compartilhado no momento atual e com notificação imediata dos mesmos. Essa

percepção possibilita que os usuários tenham uma mesma visão da área de trabalho (WYSIWIS – What

You See Is What I See) (Gutwin e Greenberg, 2002). Assim, os eventos estão relacionados a ações de

movimentação dos usuários pelo espaço de trabalho, sua disponibilidade para interação, e ações de baixa

granularidade tais como movimentações do mouse e cursor e alterações na posição da barra de rolagem.

As informações de percepção geradas para apoiar esse tipo de interação são efêmeras, necessitando baixa

ou nenhuma persistência. Seu armazenamento é apenas na memória dos participantes da interação ou na

gravação para reprodução posterior.

No modo de trabalho assíncrono, os participantes geralmente são informados sobre interações das

quais os mesmos não tenham participado, em um momento posterior à ocorrência das mesmas. O suporte

à percepção é derivado de uma interpretação resumida de uma seqüência completa de eventos ocorridos

no espaço de tempo (Fussel et al., 1995). As informações geradas devem estar em um nível mais macro,

respondendo a questões do tipo “quem está responsável por uma atividade”, “qual o prazo limite para o

término da mesma”, ou um resumo das últimas ações executadas sobre um determinado artefato. Para

possibilitar notificação posterior, as informações de percepção necessitam de alta persistência, pelo

menos até que todos os indivíduos que tenham interesse nas mesmas tenham sido notificados.

Como os usuários em sistemas colaborativos costumam alternar momentos de interação síncrona e

assíncrona, um mecanismo de percepção efetivo deve se preocupar com as questões de percepção

relativas aos dois modos de interação.

Page 20: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

12

Papel desempenhado pelo participante no grupo

Um papel é um conjunto de privilégios e responsabilidades atribuídas a uma pessoa ou, algumas vezes, a

um módulo de um sistema (Ellis et al., 1991). Os participantes em uma equipe de trabalho, normalmente,

possuem atribuições e responsabilidades diferenciadas, e assumem uma determinada posição hierárquica

dentro do grupo. De uma forma geral, analisando-se equipes de trabalho, sem estabelecer um domínio

específico, identificam-se três níveis hierárquicos de papéis que podem ser atribuídos aos usuários:

Nível operacional: composto pelos usuários responsáveis pela execução do trabalho;

Nível tático: formado por coordenadores, cuja responsabilidade é acompanhar, controlar e

gerenciar as atividades executadas pelos operadores, estimular a interação, resolver possíveis

conflitos e garantir que o grupo siga uma metodologia de trabalho;

Nível estratégico: ocupado por pessoas que definem metas e objetivos para o grupo, traçam

processos e estratégias de ação, e identificam boas práticas ou práticas a ser evitadas pelo grupo,

com base em análises sobre o histórico de ações do grupo.

A necessidade de percepção de cada um desses usuários é bastante diferente. Operadores desejam

receber informações relacionadas às suas próprias atividades e a artefatos de seu interesse. Assim,

necessitam saber, por exemplo, o que aconteceu nos artefatos em que estavam trabalhando em períodos

de ausência, e quem modificou ou acessou os artefatos (Kirsch-Pinheiro, 2001).

Por outro lado, os coordenadores não têm interesse em informações muito detalhadas sobre cada

atividade executada por cada participante dentro do grupo. Esses usuários desejam visões de alto nível

dos dados, através de resumos e agregações, de modo a reduzir a sobrecarga de informação e possibilitar

reflexão sobre mudanças nas ações, preferências, comportamento e desempenho do grupo (Borges e Pino,

1999; David e Borges, 2001). Através de uma distribuição gráfica das contribuições dos participantes, o

coordenador pode identificar aqueles que estão trabalhando mais intensamente no processo. Taxas altas

ou baixas de contribuição devem ser analisadas pelo coordenador, de modo a motivar ou inibir novas

contribuições a determinados assuntos.

Já os analistas estratégicos atuam em um nível acima dos demais, numa posição de observador do

que ocorre, em geral, sobre mais de um grupo de trabalho. Nos sistemas colaborativos pode-se alcançar

esse tipo de percepção através de consultas analíticas sobre os dados históricos de interação do grupo,

usando, por exemplo, ferramentas de processamento analítico (OLAP) sobre data warehouses que

contenham informações de percepção, como o cubo de percepção proposto em (Vieira, 2003).

2.3.4. Percepção Periférica e Sobrecarga de Informações

Ser notificado sobre tudo e qualquer coisa que aconteça no contexto do grupo pode provocar problemas

como a sobrecarga de informações ou o desvio constante da atenção do usuário e, conseqüente, perda de

foco. Sistemas colaborativos devem prover mecanismos que permitam que as informações de percepção

sejam passadas aos usuários de forma não perturbadora. Os usuários não devem ter que se focar de

Page 21: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

13

maneira explícita na informação apresentada, nem interromper sua atividade atual para ver o que está

acontecendo. Deve ser algo intuitivo, e ao mesmo tempo informativo. Como ocorre com os pilotos de

avião ou motoristas de carro. A tarefa principal de um motorista é guiar o carro, seguindo um

determinado trajeto para chegar a um destino. Durante a realização dessa tarefa, no entanto, ele precisa

ser notificado sobre diversas informações relativas ao seu contexto atual e ao contexto de sua tarefa. Por

exemplo, ele observa placas de trânsito que indicam situações da pista, direções, localidades e distâncias,

e informações do próprio carro como nível do combustível, velocidade e quilometragem percorrida. Em

uma situação específica, como na presença de um radar eletrônico de velocidade, ele recebe a notificação

da presença do radar e o indicativo da velocidade máxima permitida. Imediatamente, ele olha para o

velocímetro e conduz o carro a uma velocidade abaixo da máxima permitida. Percebe-se, nesse exemplo,

que o motorista é submetido a um grande número de informações com a finalidade de auxiliá-lo em sua

tarefa principal: dirigir. Percebe-se, ainda, que essas informações são passadas ao motorista de forma

rápida, fácil e intuitiva, visando desviá-lo minimamente de sua atenção à pista e ao controle do carro: seus

focos principais de atenção. Isso é possível porque essas informações são submetidas à visão periférica do

usuário. O mesmo deve ocorrer nos sistemas colaborativos em relação às informações de percepção. Daí

o termo percepção periférica.

Para alcançar uma percepção periférica efetiva os sistemas devem reforçar padrões e convenções,

oferecendo dicas na interface com o usuário, como uso de cores, tamanho dos objetos ou

aproximação/afastamento de artefatos (Mark et al., 1997). Filtrar informações irrelevantes para o usuário

e garantir a percepção periférica tem uma relação muito direta com o contexto atual do usuário (quem ele

é e o que está fazendo) e com o contexto da tarefa em curso.

2.3.5. Mecanismos Genéricos de Percepção

Uma abordagem promissora em mecanismos de percepção é a de infra-estrutura de percepção genérica e

extensível que inclua mecanismos simples e leves para a geração e apresentação de notificações

configuráveis aos usuários e que possam ser reutilizados por diferentes sistemas colaborativos em

situações diversas (Prinz, 1999). Algumas propostas de mecanismos genéricos de percepção incluem a

infra-estrutura NESSIE (Prinz, 1999), o framework BW (Kirsch-Pinheiro et al., 2002) e o mecanismo

Ariane (Vieira et al., 2004), descritos a seguir.

NESSIE

NESSIE (awareNESS envIronmEnt) (Prinz, 1999) é uma infra-estrutura genérica de percepção,

independente de um sistema colaborativo específico, que inclui mecanismos para geração e apresentação

de notificações configuráveis aos usuários. Uma questão de projeto estabelecida pelos pesquisadores da

NESSIE é que eventos relevantes sobre as atividades do usuário possam ser externalizados de uma

aplicação e promovidos para outras aplicações. Dessa maneira, NESSIE funciona como uma ponte para

diferentes aplicações e configurações.

Page 22: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

14

A Figura 2.5 apresenta uma visão geral da arquitetura da NESSIE. As informações relativas à

atividade colaborativa, para fins de percepção, são capturadas por meio da geração de eventos. A

aquisição e geração dos eventos são habilitadas através da implementação de sensores, associados a atores

ou artefatos compartilhados. Os sensores são os responsáveis pela criação dos eventos. Após a criação,

um evento é transmitido para o servidor de percepção, o qual é responsável pela propagação,

transformação e notificação dos eventos. Diferentes sensores podem ser usados para integração a outras

aplicações.

Figura 2.5 – Visão geral da arquitetura da infra-estrutura NESSIE (Prinz, 1999)

NESSIE utiliza o método baseado em perfis de interesse para especificar a informação de

percepção que alguém está interessado. Estudos empíricos mostram que perfis de interesse constituem

uma boa abordagem para a seleção de informações de percepção (Sohlenkamp et al., 2000). A

apresentação da informação é feita através de indicadores configuráveis. Os eventos de atividade são

mapeados a indicadores apropriados.

NESSIE concentra-se no apoio a eventos de ações relevantes que aumentam a percepção social e a

percepção de tarefas relativas à colaboração. Eventos técnicos do tipo movimentação do mouse ou da

barra de rolagem não são tratados. Uma interface CGI/HTTP permite a comunicação entre aplicações e o

servidor NESSIE, de modo que qualquer aplicação possa reportar eventos ou receber notificações do

servidor. A principal desvantagem dessa abordagem é que a aplicação deve dirigir-se explicitamente ao

servidor NESSIE para informar a ocorrência de eventos ou para consumir novos eventos. Desse modo, os

eventos são gerados através de chamadas explícitas da aplicação monitorada ou através de um cliente

NESSIE específico.

BW (Big Watcher)

O BW (Kirsch-Pinheiro et al., 2002) é um framework de apoio à percepção de eventos ocorridos no

passado, voltado para interações assíncronas. BW utiliza percepção baseada em notificação de eventos

executada segundo um ciclo em três fases: registro-ocorrência-notificação (Figura 2.6). Na primeira fase,

o sistema colaborativo registra no framework os tipos de eventos que têm interesse para os propósitos de

Page 23: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

15

percepção, passando, para isso, uma instância de exemplo de cada evento desejado para ser usado pelo

BW. Na segunda fase, os usuários interagem com o sistema para execução de suas atividades. O sistema

monitora as atividades de interesse para fins de percepção, gera os eventos correspondentes a cada

atividade monitorada e envia esses eventos para o BW. Na última fase do ciclo, os eventos ocorridos são

repassados do BW para o sistema colaborativo para que as informações de percepção sejam enviadas e

apresentadas aos usuários. Para minimizar a sobrecarga de informação, o BW utiliza filtros baseados em

perfis de interesse.

Figura 2.6 - Ciclo Registro-Ocorrência-Notificação do Framework BW (Kirsch-Pinheiro et al., 2002)

Ariane

Ariane (Vieira et al., 2004) é uma infra-estrutura de apoio à percepção que visa ampliar a oferta de

informações de percepção em sistemas colaborativos a partir do monitoramento do seu processo de

persistência. Para isso, ela utiliza a abordagem de monitoramento baseado em sensores, os quais são

acoplados ao mecanismo de persistência da aplicação. Ariane baseia-se na notificação de eventos para

prover a percepção. Ações ocorridas no ambiente colaborativo são convertidas em mensagens que contêm

as informações de percepção 5W+1H. O processo de gerenciamento das informações de percepção

consiste de quatro etapas: produção, distribuição, consumo e análise de eventos as quais se dividem em

dez atividades, como mostra a Figura 2.7.

A produção dos eventos ocorre com o monitoramento da comunicação entre a aplicação e o banco

de dados e captura de ações executadas pelos usuários (chamados produtores da informação de

percepção). A ação capturada é convertida em um evento no formato 5W+1H e armazenado em um banco

de dados de eventos. A etapa de distribuição consiste na notificação dos eventos gerados a componentes

de percepção previamente registrados. A etapa de consumo é o uso e apresentação da informação de

percepção pela aplicação aos demais usuários do grupo (denominados consumidores da informação de

percepção). Por fim, a etapa de análise implica em preparar os eventos persistidos para uso por

ferramentas de processamento analítico (OLAP - On-Line Analytical Process). Para isso, os eventos

passam pelo processo ETL (Extract-Transform-Load) e são extraídos do BD de eventos, transformados

Page 24: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

16

para o modelo multidimensional e carregados em uma estrutura chamada cubo de percepção. Sobre o

cubo de percepção, ferramentas OLAP podem permitir que usuários analistas realizem consultas

analíticas sobre as ações realizadas pelos participantes do grupo e que técnicas de mineração de dados

sejam utilizadas sobre o histórico de eventos.

Figura 2.7 - Processo de gerenciamento das informações de percepção usado em Ariane (Vieira, 2003)

Os sensores, em Ariane, foram implementados como aspectos. Essa abordagem possibilita uma

maior interoperabilidade, permitindo que os sensores possam ser acoplados a diferentes aplicações, de

forma não intrusiva. Aspectos fazem parte do paradigma de desenvolvimento de aplicações chamado

Programação Orientada a Aspectos (AOP – Aspect Oriented Programming) (Kiczales et al., 1997) e

representam as características que atravessam as funcionalidades básicas de um sistema, ou seja, estão

presentes em diversos componentes do sistema.

2.4. CONSIDERAÇÕES FINAIS

Este capítulo apresentou alguns conceitos relacionados a sistemas colaborativos. O objetivo foi definir a

área da computação onde este trabalho se insere e prover uma base para a compreensão dos conceitos

que serão tratados a seguir. Foi apresentado o modelo 3C de colaboração que divide o suporte ao trabalho

colaborativo em três vertentes: comunicação, coordenação e cooperação. A questão da percepção em

groupware foi detalhada com discussão sobre definições, benefícios e desafios envolvidos, e alguns

mecanismos genéricos para tratamento da informação de percepção foram abordados.

A sub-seção que trata sobre percepção utiliza muitas vezes a palavra contexto para indicar sobre o

que a percepção se refere (“contextualizar os usuários”) ou para restringir a informação de percepção

Page 25: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

17

(percepção periférica). Percebe-se, assim, uma forte relação entre os conceitos de percepção e contexto,

embora essa relação não seja explícita e não referencie os estudos sobre contexto realizados em outras

áreas, como Inteligência Artificial (Brézillon, 1999a) Computação Ciente de Contexto (Dey e Abowd,

2000) e Interface Humano-Computador (Dourish, 2001).

O próximo capítulo descreve contexto como um conceito computacional considerando os estudos

realizados nessas outras áreas.

Page 26: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

18

CAPÍTULO 3

Contexto Computacional

Nas mais diversas situações do dia a dia as pessoas fazem uso do conhecimento do contexto para

delimitar e direcionar ações e comportamentos. As mensagens trocadas para comunicação trazem junto

um contexto associado que apóia a compreensão do seu conteúdo. Contexto ajuda a melhorar a qualidade

da conversação e a compreender certas situações, ações ou eventos. Comumente, a palavra contexto é

usada para restringir a situação da qual se está falando. Por exemplo, ao falar sobre Xuxa, sem conhecer o

contexto da conversa, não se sabe se o assunto em questão é a apresentadora de televisão, o nadador ou

um animal de estimação. Se o contexto considerado é relativo a esportes, provavelmente o assunto é o

Fernando Scherer, o Xuxa, o nadador. Uma ação de “abrir uma janela” pode levar a ambigüidade na

compreensão da mensagem caso não fique claro se a janela em questão trata-se de uma janela física do

mundo real, ou uma janela virtual de um ambiente gráfico de computador.

Contexto é o que está por trás da habilidade de discriminar o que é ou não é importante e permite

que os indivíduos enriqueçam seu conhecimento sobre uma determinada situação através de suas

memórias e experiências relacionadas a essa situação (Belotti et al., 2004a). Dessa forma, o contexto

permite gerenciar a grande quantidade de informação que cerca os indivíduos em um dado instante.

Embora seja um conceito presente e conhecido nas interações entre pessoas, contexto ainda é um

tópico pouco explorado nas interações entre pessoas e computadores. Os sistemas computacionais, em

geral, não levam em consideração o contexto do usuário com quem estão interagindo, e atuam de uma

mesma maneira, pré-programada, sem discriminar as necessidades e restrições correntes do usuário. Por

exemplo, se uma criança e um esportista consultam um mesmo engenho de busca procurando por

informações sobre Xuxa, muito provavelmente receberão o mesmo conjunto de respostas. O

conhecimento do contexto permite que o sistema ofereça serviços e informações relevantes para o

usuário. Se o engenho de busca do exemplo conhecesse o contexto de cada usuário, poderia priorizar

informações sobre Xuxa, o nadador, na consulta feita pelo esportista.

Contexto desempenha um papel importante em qualquer domínio que envolva requisitos como

compreensão, raciocínio, resolução de problemas ou aprendizado (Santoro et al., 2005). Contexto é uma

importante ferramenta para apoiar a comunicação entre pessoas e sistemas computacionais pois ajuda a

diminuir ambigüidades e conflitos, aumenta a expressividade dos diálogos, e possibilita a melhoria dos

serviços e informações oferecidos pela aplicação. Com isso, a tendência é que as aplicações se tornem

mais amigáveis, flexíveis e fáceis de usar.

O reconhecimento da importância do contexto motivou pesquisadores de diversas áreas da

computação, como Inteligência Artificial, Interface Homem-Máquina, Computação Ubíqua, Engenharia

de Software, Banco de Dados e Sistemas Colaborativos, a estudar esse conceito e entender como o

Page 27: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

19

mesmo pode ser formalizado e utilizado nos sistemas computacionais. Assim, este capítulo apresenta

contexto como um conceito computacional, discute definições para contexto e para computação ciente de

contexto e aborda alguns requisitos e desafios na construção de sistemas que tratem o contexto dos

usuários.

3.1. DEFINIÇÕES DE CONTEXTO

A definição do que é contexto e o que ele engloba, pensando em sistemas computacionais, ainda não é um

consenso entre os pesquisadores. Existem várias definições para esse conceito, algumas complementares,

outras limitadas à área da computação que buscam apoiar. Bazire e Brézillon (Bazire e Brézillon, 2005)

coletaram um conjunto de aproximadamente 150 definições de contexto, vindas de diferentes domínios e

chegaram a duas conclusões principais desses trabalhos: (1) o contexto atua como um conjunto de

restrições que influenciam o comportamento de um sistema embutido em uma dada tarefa; e (2) a

definição de contexto depende da área de conhecimento à qual pertence.

Uma definição clássica e bastante referenciada é proposta por Dey e Abowd, para os quais:

“Contexto é qualquer informação que caracteriza a situação de uma entidade, onde uma

entidade é uma pessoa, lugar ou objeto considerados relevantes para a interação entre um

usuário e uma aplicação, incluindo o próprio usuário e a aplicação. O contexto é tipicamente

a localização, a identidade, e o estado das pessoas, grupos e objetos físicos e

computacionais” (Dey e Abowd, 2000).

Na área da Inteligência Artificial, Brézillon define contexto como “o que restringe a solução de um

problema, sem entretanto interferir nele explicitamente” (Brézillon, 1999a) ou “uma coleção de condições

relevantes e influências que tornam uma situação única e compreensível” (Brézillon, 1999b).

Gross e Prinz, na área de Sistemas Colaborativos, definem contexto como “as condições (i.e.,

circunstâncias como tempo e localização) inter-relacionadas (i.e., algum tipo de continuidade no sentido

mais amplo) na qual alguma coisa (e.g., um usuário, um grupo ou um artefato) existe (e.g., presença) ou

ocorre (e.g., uma ação executada por um ator)” (Gross e Prinz, 2003).

Rittenbruch, em seu trabalho sobre o uso de contexto para percepção seletiva, define contexto

como “uma descrição complexa de conhecimento compartilhado sobre circunstâncias físicas, sociais,

históricas e outras dentro das quais uma ação ou evento ocorre” (Rittenbruch, 1999; Rittenbruch, 2002).

Alarcón et al. argumentam que a pesquisa sobre contexto concorda em dois aspectos: primeiro, o

contexto é relativo a tudo que cerca alguma coisa, onde essa coisa é uma situação, uma atividade, uma

idéia, porém não a coisa em si. Segundo, o contexto compreende um conjunto de elementos inter-

relacionados que mantém um relacionamento coerente, onde tal relacionamento traz um significado

específico para a coisa, por exemplo uma situação, uma atividade, uma idéia (Alarcón et al., 2005a).

Page 28: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

20

Quanto aos elementos que o contexto engloba, Greenberg diz que o contexto deve ser visto como

uma construção dinâmica e deve ser analisado segundo cinco dimensões: tempo, episódios de uso,

interações sociais, objetivos internos e influências locais (Greenberg, 2001). Em algumas situações os

elementos de contexto são estáveis, previsíveis e compreensíveis. Porém, existem situações em que

elementos muito semelhantes caracterizam contextos bem diferentes, como é o caso quando considerada a

dimensão tempo. Dois contextos exatamente iguais, porém que ocorram em instantes diferentes de tempo,

podem não possuir o mesmo significado e devem exigir um tratamento diferenciado.

3.2. COMPUTAÇÃO CIENTE DE CONTEXTO

Os estudos sobre contexto motivaram o surgimento de uma nova comunidade preocupada com o projeto e

desenvolvimento de aplicações e sistemas cientes de contexto (context-aware). Esse termo foi cunhado

pela primeira vez, associado à área de computação móvel, no trabalho de Schilit et al. (Schilit et al., 1994)

e refere-se a sistemas que “utilizam o contexto para fornecer informações e/ou serviços relevantes para o

usuário, onde relevância depende da tarefa do usuário” (Dey e Abowd, 2000). Um ponto crítico nessa

definição é o que exatamente considerar como contexto e como identificar a relevância.

Dentre as funcionalidades que um sistema ciente de contexto deve apoiar estão a apresentação de

serviços e informações relevantes a um usuário, a execução automática de um serviço e a ligação de

contexto a informações para apoiar recuperações posteriores (Morse et al., 2000).

A computação ciente de contexto vem atraindo a atenção de diversos pesquisadores desde que foi

proposta. Diversos sistemas cientes de contexto foram desenvolvidos, principalmente no domínio da

computação ubíqua, onde o uso do contexto é fundamental para garantir os requisitos de computação

disponível no lugar certo e na hora certa. Exemplos desses sistemas incluem: ferramentas de apoio a

ambientes de escritório, como Active Badges (Want et al., 1992) e ParcTab (Schilit e Want, 1995); guias

turísticos, como Travel Mate (Furtado et al., 2005) e GUIDE (Cheverst et al., 2000); guia de participantes

em conferências e eventos, como Conference Assistant (Dey et al., 1999a) e CoBrA (Chen, 2003);

assistentes inteligentes em ambientes hospitalares (Muñoz et al., 2003; Bardram, 2004); e serviços para

dispositivos em casas inteligentes (Wang et al., 2004).

Existe um interesse crescente em aplicar o conceito de contexto a outros domínios, como sistemas

colaborativos. Isso pode ser observado em diversos trabalhos recentes que abordam o assunto {Borges,

2006 32 /id;Brézillon, 2004 43 /id;Santoro, 2005 235 /id;Rosa, 2005 228 /id;Alarcón, 2005 5 /id;Kirsch-

Pinheiro, 2005 200 /id;Gross, 2003 112 /id;Vieira, 2005 268 /id;Vieira, 2005 269 /id}. O conceito de

contexto já aparece há bastante tempo nas pesquisas sobre CSCW, porém sob a forma de outros conceitos

como informações de percepção e memória do grupo (Borges et al., 2004).

A construção de sistemas cientes de contexto ainda é uma tarefa complexa e que consome bastante

tempo. A modelagem, representação e uso de contexto parece ser o desafio dos próximos anos,

especialmente quando considerado problemas muito complexos e grandes bases de conhecimento

Page 29: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

21

(Brézillon, 1999b). Diversos são os requisitos e desafios no desenvolvimento desse tipo de aplicação, os

quais serão discutidos na próxima seção.

3.3. REQUISITOS PARA DESENVOLVIMENTO DE SISTEMAS CIENTES DE CONTEXTO

O desenvolvimento de sistemas cientes de contexto apresenta diversos desafios, dentre eles: (i) a

caracterização dos elementos de contexto para uso na aplicação; (ii) a aquisição do contexto a partir de

fontes heterogêneas, tais como sensores físicos, bases de dados, agentes e aplicações; (iii) a representação

de um modelo semântico formal de contexto; (iv) o processamento e interpretação das informações de

contexto adquiridas; (v) a disseminação do contexto a entidades interessadas de forma distribuída e na

hora certa; (vi) o tratamento da qualidade da informação contextual; (vii) o tratamento de questões como

segurança e privacidade; e (viii) o tratamento do desempenho do sistema, uma vez que a inclusão do

contexto demanda um custo computacional extra para a aplicação.

As próximas subseções apresentam um processo para construção de sistemas cientes de contexto

seguido da discussão sobre os requisitos inerentes ao desenvolvimento desses sistemas.

3.3.1. Processo para a Construção de Sistemas Cientes de Contexto

Um processo para a construção de sistemas cientes de contexto foi proposto por Dey e visa facilitar a

compreensão das dificuldades inerentes à construção desses sistemas (Dey, 2000). O processo é composto

por 5 etapas principais, como descrito a seguir:

1. Especificação: visa especificar o problema a ser resolvido e propor uma solução de alto nível

1.1. Especificar que comportamento ciente de contexto deve ser implementado;

1.2. Determinar que elementos de contexto são necessários para que esses comportamentos sejam

executados, utilizando mecanismos existentes de aquisição de contexto.

2. Aquisição: determinar que sensores são necessários para prover o contexto

2.1. Instalar o sensor;

2.2. Compreender que tipo de dado é provido pelo sensor;

2.3. Caso não exista uma interface de programação de aplicações (API), escrever o programa que

permita se comunicar com o protocolo utilizado pelo sensor;

2.4. Se existir a API, aprender a usá-la para se comunicar com o sensor;

2.5. Determinar como consultar o sensor e como ser notificado quando mudanças ocorrerem;

2.6. Armazenar o contexto;

2.7. Interpretar o contexto, se aplicável.

3. Disseminação: prover métodos para apoiar a disseminação do contexto a uma ou mais aplicações,

possivelmente remotas.

4. Recepção: adquirir e trabalhar com o contexto

4.1. Determinar onde estão os sensores relevantes e como se comunicar com eles;

4.2. Requisitar e receber o contexto;

Page 30: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

22

4.3. Converter o contexto em uma forma utilizável através de interpretação;

4.4. Analisar a informação para determinar sua utilidade.

5. Ação: verificar se o contexto é útil e executar o comportamento ciente de contexto

5.1. Analisar o contexto, tratando-o como uma variável independente ou combinando-o com outras

informações coletadas;

5.2. Escolher o comportamento ciente de contexto a executar.

Esse processo possui algumas limitações, como: (i) não explora a importância de existir um modelo

de representação global do contexto e a necessidade de converter dados locais adquiridos pelos sensores

para se adequar aos elementos definidos nesse modelo; (ii) é dada pouca ênfase à etapa de interpretação

do contexto que, no entanto, é fundamental para seu tratamento; (iii) considera apenas a aquisição do

contexto por sensores, o que é muito limitante, pois muitas informações contextuais podem ser obtidas de

dados históricos persistidos em modelos da aplicação, ou podem ser providos pelo próprio usuário, por

meio do preenchimento de perfis ou outros formulários.

3.3.2. Identificação dos Elementos de Contexto

Um grande desafio ao desenvolver um sistema ciente de contexto é delimitar as ações dependentes de

contexto nesses sistemas e identificar os elementos contextuais que caracterizam a situação na qual essas

ações são executadas. Estudos mostram que a identificação dos elementos de contexto depende

fortemente do tipo da tarefa e domínio em questão (Öztürk e Aamodt, 1997). Por outro lado, o papel que

o contexto desempenha pode ser generalizado sobre tarefas e domínios específicos.

O contexto é uma construção dinâmica e, embora em algumas situações o contexto seja

relativamente estável e previsível, existem muitas outras onde isso não acontece. Na maioria dos casos é

muito difícil, ou mesmo impossível, para o projetista de uma aplicação ciente de contexto enumerar o

conjunto de estados contextuais que podem existir na aplicação, identificar que informação pode

determinar com precisão um estado contextual desse conjunto, e definir que ações devem ser executadas

em um estado particular (Greenberg, 2001).

Algumas classificações para as informações contextuais foram propostas na literatura com o

propósito de apoiar a identificação dos elementos de contexto. Uma dessas classificações divide as

informações contextuais em: (1) contexto primário, ou básico, ou de baixo nível; e (2) contexto complexo,

ou de alto nível (Wang et al., 2004). A primeira indica elementos contextuais que podem ser percebidos,

automaticamente, por sensores físicos ou lógicos, e a segunda refere-se a informações de contexto

fornecidas pelo próprio usuário ou deduzidas, por motores de inferência, a partir de um conjunto de

informações de contexto de baixo nível.

Exemplos de contextos básicos incluem identidade (de atores ou dispositivos), atividade atual (que

pode ser uma etapa em um processo ou um passo em um workflow), localização (geográfica ou virtual),

tempo (ex. dia, hora, estação do ano), condições ambientais (ex. temperatura, qualidade do ar, luz, som),

disponibilidade de recursos (ex. bateria, largura de banda, tamanho da tela), recursos próximos (ex.

Page 31: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

23

dispositivos acessíveis, impressoras, hosts), medidas fisiológicas (ex. pressão sanguínea, batimento

cardíaco, atividade muscular, tom de voz), entre outros.

Contextos complexos podem ser, por exemplo, a situação do indivíduo (ex. se está falando, lendo,

caminhando ou escrevendo), situações sociais (ex. com quem o usuário está, quem são as pessoas

próximas), atividades sociais (ex. se o usuário está em reunião ou ministrando aula), entre outras. Para

identificar, por exemplo, se um usuário está ministrando uma aula, pode ser criada uma regra lógica que

obtenha como contextos básicos a identificação da sala onde ele se encontra, a indicação se existem

outras pessoas na sala, a posição do usuário em relação a essas pessoas e se existe um programa de

apresentação rodando em um micro instalado na sala.

Greenberg indica que o contexto varia em 5 dimensões: período de tempo, episódios de uso

anteriores conhecidos pela pessoa, estado das interações sociais, mudanças nos objetivos internos, e

influências do local onde a pessoa se encontra (Greenberg, 2001).

Uma outra classificação para as informações de contexto separa o contexto em porções estáticas e

dinâmicas (Gauvin et al., 2004). A porção estática inclui os parâmetros externos, gerais e relativamente

fixos, relacionados ao trabalho do usuário. A porção dinâmica é composta por uma memória dinâmica das

ações do usuário, continuamente atualizada quando mudanças, eventos, atividades ou padrões aprendidos

de ações ocorrem durante a execução do trabalho.

Korpipää et al. definiram alguns critérios para a identificação do que escolher como elemento

contextual ao construir uma aplicação ciente de contexto: (i) habilidade para descrever propriedades úteis

do mundo real; (ii) habilidade para inferência de contextos complexos; (iii) facilidade ou viabilidade de

ser medido ou reconhecido, automaticamente, de forma o mais precisa e não ambígua possível (Korpipää

et al., 2003).

Rosa et al. propõem um framework conceitual de contexto para sistemas colaborativos que

classifica as informações de contexto em cinco categorias principais: (i) informações sobre as pessoas e

os grupos; (ii) informações sobre tarefas agendadas; (iii) informações sobre o relacionamento entre

pessoas e tarefas; (iv) informações sobre o ambiente onde ocorre a interação; e (v) informações sobre

tarefas e atividades concluídas (Rosa et al., 2003).

Em colaboração, Brézillon et al. distinguem o contexto do grupo, do projeto e do indivíduo como

elementos contextuais (Borges et al., 2004). Brézillon e Araújo consideram, ainda, o contexto

organizacional, ou seja a empresa onde a equipe trabalha e o mercado onde concorre (Brézillon e Araújo,

2005).

De uma maneira genérica, as informações de contexto referentes a uma ação ou tarefa podem ser

identificadas a partir da resposta às seis perguntas 5W+1H apresentadas na Seção 2.3.1, equivalentes às

informações de percepção em groupware (Vieira, 2003; Brézillon et al., 2004).

Page 32: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

24

3.3.3. Modelo de Classificação do Contexto

Brézillon e Pomerol propõem um modelo de classificação segundo o qual o contexto sempre está

relacionado a um foco de atenção, que pode ser, por exemplo, uma tarefa, a solução de um problema ou

uma tomada de decisão (Brézillon e Pomerol, 1999; Brézillon, 1999b). O foco determina o que deve estar

em seu contexto, e o contexto ajuda a restringir o foco. No trabalho colaborativo, todos os membros da

equipe devem possuir um mesmo foco que depende do foco da equipe (Brézillon e Araújo, 2005). O foco

de atenção corresponde a um dado estágio do trabalho onde um subconjunto da informação contextual é

mobilizada, situada, organizada e estruturada para alcançar um resultado relevante e significativo (Gauvin

et al., 2004).

Brézillon e Pomerol dividem o contexto, relativo a uma etapa de uma tarefa, em três partes distintas

(Brézillon e Pomerol, 1999), como mostra a Figura 3.1:

Conhecimento contextual (CK): é o conhecimento relevante para o foco de atenção, que tem

uma forte relação com o foco, porém não é considerado diretamente nele;

Conhecimento externo (EK): é a parte do contexto que não é relevante para o foco de atenção,

porém é compartilhada pelos membros do grupo. O CK em um foco pode se tornar um EK em

um outro foco;

Contexto proceduralizado (PC): refere-se ao aspecto dinâmico do contexto. É a parte do CK que

é invocada, organizada, estruturada e situada de acordo com um dado foco de atenção, e

utilizada para apoiar a tarefa em execução naquele foco. Quando um evento imprevisível ocorre,

a atenção dos atores é focada nesse evento e uma parte do CK é proceduralizada. Quando a

tarefa prossegue para o próximo passo, esse PC passa a fazer parte do CK. À medida que as

tarefas e focos evoluem e mais PCs são produzidos, esses PCs são atribuídos ao CK de cada

indivíduo. Duas pessoas com um mesmo foco poderão construir diferentes PCs, pois elas

possuem diferentes conjuntos de CK e diferentes interpretações do foco (Brézillon e Araújo,

2005).

Conhecimento Externo

Foco

Contexto Proceduralizado

Conhecimento Contextual

Figura 3.1 – Tipos de Contexto e suas Dinâmicas {Brézillon, 1999 38 /id}

Page 33: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

25

Brézillon propõe a divisão do contexto em dois diferentes níveis (Brézillon, 2003a). O primeiro é

denominado “in depth first” e define as diferenças nos contextos a depender da sua granularidade, do

mais geral para o mais específico. Assim, por exemplo, o contexto da organização é mais geral, enquanto

o contexto do empregado é mais específico. O outro nível foi denominado “in width first” e considera

contexto como um conjunto heterogêneo de contextos. Esse nível define que cada ator dentro de um dado

escopo possui seu próprio contexto individual. Por exemplo, um projeto de desenvolvimento de software

possui especialistas com diferentes experiências, habilidades e cultura (Santoro et al., 2005).

3.3.4. Aquisição do Contexto

A aquisição do contexto refere-se ao processo de monitorar, capturar e obter informações contextuais,

quer seja de um ambiente físico ou de outras fontes de contexto. Em (Chen, 2003) são apresentadas três

maneiras segundo as quais agentes podem adquirir contexto:

Acesso direto a sensores de contexto de baixo-nível (hardware);

Algum tipo de infra-estrutura que interage com sensores de contexto de baixo nível;

Através de servidores de contexto que mantêm conhecimento contextual sobre o ambiente.

Considerando a maneira como as informações contextuais podem ser obtidas, Gu et al. classificam

o contexto em duas categorias: direto e indireto (Gu et al., 2004c). O primeiro é adquirido explicitamente

por um provedor de contexto, que pode ser o próprio usuário, uma fonte interna (ex. provedor de

localização interna) ou uma fonte externa (ex. serviço de informação do tempo). O contexto indireto é

obtido por meio da interpretação de contextos diretos através de processos de agregação e raciocínio. Por

exemplo, as preferências de horário de trabalho de um grupo podem ser obtidas pela agregação das

preferências individuais de cada membro do grupo.

A Tabela 3.1 mostra uma classificação para as informações de contexto, segundo a qual a

informação pode ser percebida, estática, proveniente de perfil ou derivada (Henricksen, 2003). A tabela

indica, ainda, o nível de persistência de cada categoria de informação, questões que possam afetar sua

qualidade e as fontes de suas imperfeições.

Tabela 3.1 - Classificação das informações contextuais (Henricksen, 2003)

Classe da informação Persistência Questões de qualidade Fontes de imperfeição

Percebida Baixa Pode ser imprecisa, desconhecida ou caduca

Erros na percepção; falhas do sensor ou desconexões da rede; demoras introduzidas pela distribuição e processo de interpretação

Estática Alta Geralmente nenhuma Erro humano

Vinda de Perfil Moderada Tende a caducar Omissão do usuário em atualizar mudanças ocorridas

Derivada Variável Sujeita a erros e imperfeições

Entradas imprecisas; uso de um mecanismo de derivação imaturo ou muito simplificado

Page 34: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

26

Informações percebidas são provenientes de sensores físicos ou lógicos. Informações estáticas

descrevem propriedades persistentes informadas pelo próprio usuário, como o tipo de um dispositivo de

computação ou canal de comunicação. Informações provenientes de perfil também são fornecidas pelo

usuário, mas podem ser obtidas automaticamente por aplicações como agenda e calendário. Elas

representam informações mais dinâmicas, como dados pessoais e preferências do usuário, associações

entre usuários e canais de comunicação, e relacionamentos entre pessoas. Informações derivadas são

determinadas pelas propriedades do dado de entrada e dos mecanismos de derivação.

Chen e Kotz apresentam alguns tipos de contexto, relativos ao domínio da computação ubíqua, e

formas de identificá-los (Chen e Kotz, 2000):

Localização: é o tipo de contexto mais estudado e aplicado nos sistemas cientes de contexto

atuais, devido aos requisitos da área de Computação Ubíqua. A localização se altera sempre que

o usuário se move e um serviço de monitoramento de localizações é crítico para algumas

aplicações. A forma mais fácil de obter informações de localização é obrigando que o próprio

usuário as informe, por exemplo, passando um cartão ou deixando uma impressão digital

sempre que entra ou sai de uma sala. O sistema pode, também, observar a que estação de

trabalho o usuário está conectado. Formas automáticas de obter a localização incluem o GPS

(Global Positioning System), para ambientes abertos, e sensores baseados em tecnologias como

raios infra-vermelho ou freqüência de rádio, para ambientes internos, como um edifício;

Tempo: pode ser obtido do relógio do computador. Em geral, as informações de localização são

acompanhadas de informações temporais;

Objetos próximos: a partir do monitoramento da localização de pessoas e outros objetos é

possível identificar quem e o que está próximo de um dado usuário;

Largura de banda: a largura de banda de uma rede pode ser percebida por sensores lógicos,

presentes nas máquinas, que sejam capazes de medir essa variável.

Em sistemas colaborativos, além dos sensores físicos devem ser considerados outros meios de

aquisição do contexto, tais como: sensores lógicos, que monitorem as atividades dos usuários no espaço

virtual compartilhado; a memória do grupo, que provê informação histórica sobre as interações do grupo;

modelos da aplicação, como perfis, modelos do usuário, da tarefa, do grupo, entre outros; e o próprio

usuário, através de interfaces como formulários ou botões, uma vez que nem toda informação pode ser

automaticamente adquirida.

3.3.5. Modelagem e Representação dos Elementos de Contexto

A maioria dos sistemas atuais utiliza modelagens próprias para os contextos, o que torna difícil, quase

impossível, o compartilhamento de informações contextuais entre diferentes sistemas. Com o avanço da

computação ciente de contexto, há um interesse crescente no desenvolvimento de modelos formais de

contexto que facilitem a representação, compartilhamento e interoperabilidade semântica do contexto

(Wang et al., 2004).

Page 35: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

27

Existem diversas abordagens de modelos para representação do contexto, como pares de chave-

valor, linguagem de marcação, modelo orientado a objetos, modelo entidade-relacionamento, modelo

baseado em lógica, mapas de tópicos, grafos contextuais e ontologias (Chen e Kotz, 2000; Strang e

Linnhoff-Popien, 2004). Devido à relevância deste tópico para este trabalho, ele é explorado em detalhes

no Capítulo 4.

3.3.6. Processamento e Raciocínio sobre Contexto

Um dos principais problemas na utilização de informações contextuais é como obter contexto realmente

significativo para quem precisa utilizar essa informação, a partir de um conjunto de informações dispersas

e desconexas, obtidas por mecanismos heterogêneos de aquisição. Para isso, funcionalidades de

processamento e raciocínio sobre a informação contextual devem ser disponibilizadas. Questões como

tratamento da incerteza devem ser consideradas, pois como o contexto evolui bastante com o tempo é

difícil inferir com precisão qual é de fato o contexto atual da situação.

Os termos raciocínio e inferência são geralmente utilizados para indicar qualquer processo pelo

qual conclusões são alcançadas (Russell e Norvig, 2003). O projeto e implementação de um mecanismo

para raciocínio de contextos pode variar bastante a depender do tipo do conhecimento contextual

envolvido. Idealmente, o processamento do contexto deve ser implementado separadamente do

comportamento do sistema e não embutido no código da aplicação {Belotti, 2004 23 /id}.

O raciocínio é utilizado para checar a consistência do contexto e para inferir contexto implícito de

alto nível, a partir de contextos explícitos, de baixo nível (Wang et al., 2004). A consistência é necessária

pois, muitas vezes, a informação contextual adquirida automaticamente pode apresentar erros e

ambigüidades. Por exemplo, um sensor de presença pode detectar o celular de um usuário em sua casa e

deduzir que o mesmo está em casa. Porém, um outro sensor de presença baseado em câmeras detecta a

presença do usuário em seu escritório. Essas duas informações são conflitantes e precisam ser resolvidas.

Existem duas diferentes abordagens para inferir contexto de alto nível (Ranganathan e Campbell,

2003). A primeira utiliza regras estáticas, pré-definidas pelos desenvolvedores em lógica de primeira

ordem [ref], lógica de mais alta ordem [ref], lógica descritiva [ref], lógica temporal [ref] ou lógica fuzzy

[ref]. A segunda utiliza técnicas de aprendizagem como redes bayesianas [ref], redes neurais [ref] e

raciocínio baseado em casos [ref].

No raciocínio baseado em regras, cada regra possui uma prioridade associada, de modo que uma

possa ser escolhida caso mais de uma regra seja verdadeira ao mesmo tempo. Esse tipo de raciocínio tem

a desvantagem de exigir uma definição explícita das regras por humanos, além de não ser flexível e não

se adaptar a circunstâncias que mudam frequentemente (Ranganathan e Campbell, 2003). A utilização de

técnicas de aprendizado automático permite que a máquina aprenda um padrão ou uma regra, a partir de

um conjunto de dados de teste, em uma fase chamada de treinamento.

Page 36: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

28

O modelo ontológico CONON processa o contexto usando predicados de primeira ordem, e duas

abordagens de raciocínio: baseada em lógica descritiva e baseada em lógica de primeira ordem (Wang et

al., 2004). A estrutura do predicado possui três campos: sujeito, objeto e verbo. Por exemplo, o contexto

de localização física – Wang está localizado em seu quarto – é descrito como (Wang, locatedIn,

Bedroom). A Tabela 3.2 apresenta algumas regras pré-definidas que inferem um contexto de alto nível

(situação do usuário) a partir de informações de baixo nível, em uma casa inteligente. As regras inferem

se o usuário está dormindo, tomando banho, cozinhando, vendo TV ou jantando.

Tabela 3.2 – Regras de raciocínio de contexto em lógica de primeira ordem (Wang et al., 2004)

A Figura 3.2 apresenta a formação de um contexto de alta ordem Outdoors a partir de um conjunto

de contextos atômicos, usando redes bayesianas (Korpipää et al., 2003). Os retângulos brancos

representam elementos atômicos de contexto, as caixas com cor mais clara (com rótulos como Dark e

Normal) representam valores de contexto, e as caixas com cor mais escura (contendo números nos

rótulos) contêm o grau de confiança para aquele contexto. Uma rede bayesiana classifica os valores de

confiança em uma das classes de entrada Indoors e Outdoors, para inferir se o usuário está em um

ambiente aberto ou em um ambiente fechado. Para isso, são analisados aspectos do ambiente que podem

ser medidos por sensores, como a luminosidade, umidade e temperatura.

3.3.7. Segurança e Privacidade

As informações pessoais de um usuário, como sua localização, preferências e perfil, em geral, são as mais

úteis para um sistema ciente de contexto (Chen, 2004). No entanto, o usuário pode temer que essas

informações sejam utilizadas para prejudicá-lo de alguma forma, como uma publicação indevida de

detalhes de suas atividades que deveriam ser mantidos em sigilo. Assim, o tratamento das informações

contextuais traz como desafio questões como segurança e privacidade.

Page 37: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

29

Políticas de privacidade podem guiar os sistemas cientes de contexto no trato das informações dos

usuários. Uma política de privacidade consiste de um conjunto de regras que servem para controlar a

execução de ações pelos sistemas. Após o sistema aceitar uma política, ele concorda em reforçar essas

regras quando executar ações. Essas regras podem ser utilizadas para restringir o acesso a informações de

contexto por agentes humanos ou de software (Chen, 2004).

Figura 3.2 – Exemplo de geração de contexto de alta ordem usando redes bayesianas (Korpipää et al., 2003)

3.3.8. Qualidade do Contexto

As informações contextuais possuem uma alta probabilidade de imperfeição ou inconsistência, provocada

por imprecisões na aquisição e manutenção do contexto. Por exemplo, o contexto de localização de um

usuário pode se tornar desatualizado rapidamente quando ele se movimenta por diferentes salas. Sensores

físicos podem causar conflitos de contexto quando, por exemplo, um usuário guarda em sua pasta o

dispositivo que permite identificar sua posição geográfica, e deixa a pasta em uma sala e se locomove

para uma outra sala (Gu et al., 2004c).

Gu et al. definem restrições de qualidade que podem ser associadas aos elementos de contexto,

indicando a qualidade do contexto. Eles construíram uma ontologia extensível para representar os

elementos que indicam parâmetros de qualidade da informação, como mostra a Figura 3.3. Essa ontologia

apresenta alguns tipos de parâmetro, como: precisão (accuracy), que representa a faixa em termos de uma

medida; resolução (resolution), indica o menor elemento perceptível; certeza (certainty), relativa à

probabilidade de descrever o estado de estar correto e atual; tempo de produção (freshness), tempo de

vida médio de uma medida (Gu et al., 2004c).

Cada parâmetro é descrito por uma ou mais métricas de qualidade apropriadas que definem como

medir ou computar a qualidade do contexto em relação ao parâmetro. A métrica contém um valor, um

Page 38: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

30

tipo e uma unidade. A Figura 3.3 ilustra o uso desses parâmetros para definir a qualidade do contexto de

localização de uma pessoa. A localização é percebida em termos de coordenadas com uma resolução de

50 metros e uma precisão de 0.79 (79%). Os parâmetros de qualidade do contexto auxiliam a detecção e

resolução de conflitos de contexto. Diferentes tipos de contexto possuem diferentes níveis de confiança,

como por exemplo, o contexto definido pelo usuário é mais confiável do que aquele percebido por um

sensor ou deduzido por uma máquina de inferência (Gu et al., 2004c).

Figura 3.3 – Ontologia de Qualidade de Contexto e Instância de Exemplo (Gu et al., 2004c)

3.3.9. Desempenho do Sistema Ciente de Contexto

Uma questão envolvida no processamento do contexto é o impacto dessa atividade sobre o desempenho

da aplicação. O raciocínio e inferência demandam um esforço extra que pode interferir na execução dos

processos específicos da aplicação. Em um estudo realizado sobre o modelo CONON para avaliar a

viabilidade do raciocínio lógico para o processamento do contexto foi avaliado um protótipo que

implementa dois raciocinadores de contexto: um baseado em lógica descritiva e outro baseado em lógica

de primeira ordem (Wang et al., 2004). Os raciocinadores foram construídos utilizando o Jena2 Semantic

Web Toolkit (Jena, 2006). As conclusões desse estudo indicaram que o desempenho em termos de tempo

de execução do raciocínio baseado em lógica depende de três fatores: o tamanho da informação

contextual, a complexidade das regras de raciocínio e a velocidade de processamento da máquina. Com

isso, o raciocínio de contexto é viável para aplicações não críticas em termos de tempo, porém em

aplicações críticas, como sistemas de navegação ou de segurança, deve ser controlado o tamanho do

conjunto de dados de contexto e a complexidade das regras implementadas (Wang et al., 2004).

3.4. SISTEMAS DE GERENCIAMENTO DE CONTEXTO

Sistemas de gerenciamento de contexto visam prover informações contextuais para apoiar o

desenvolvimento de diferentes aplicações cientes de contexto. Esse gerenciamento envolve a obtenção,

Page 39: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

31

interpretação, armazenamento e disseminação da informação contextual, dinamicamente, e em tempo real

(Power, 2003).

Uma dificuldade no desenvolvimento de sistemas de gerenciamento de contexto é identificar, de

forma genérica, o que pode ser considerado como contexto, pois pode ser uma faixa muito ampla de

valores. Pouca informação pode ser de fato descartada ou considerada irrelevante (Power, 2003). Uma

característica importante sobre contexto é o problema da incerteza quanto à relevância da informação. É

difícil prever quais informações são relevantes para uma aplicação ciente de contexto antes da sua

construção. Dessa forma, o sistema de gerenciamento de contexto deve ser genérico o suficiente para lidar

com novas formas de contexto que serão apresentadas durante seu ciclo de vida (Power, 2003).

Alguns sistemas de gerenciamento de contextos conhecidos são o Context Toolkit (Dey et al.,

2001), GAIA (Román et al., 2002), SOCAM (Gu et al., 2004b), CoBrA (Chen et al., 2005), entre outros.

Esses sistemas são discutidos no Capítulo 5.

3.5. CONSIDERAÇÕES FINAIS

Este capítulo apresentou os conceitos relacionados a contexto computacional e as dificuldades e desafios

inerentes à construção de sistemas cientes de contexto. O objetivo foi prover uma base para compreensão

do conceito de contexto e sua aplicação à computação. Para isso, foi discutida a relevância do estudo de

contexto por pesquisadores da computação, foram apresentadas definições sobre contexto e sobre

computação ciente de contexto e foram descritos requisitos e desafios que devem ser considerados por

projetistas e desenvolvedores de aplicações cientes de contexto na construção desses sistemas.

Um requisito importante na construção de um sistema ciente de contexto e, principalmente, para

viabilizar o desenvolvimento de um sistema de gerenciamento de contextos é a existência de um modelo

formal de representação que permita a interoperabilidade e o compartilhamento de contextos entre

diferentes sistemas.

O próximo capítulo discute o problema de representação de contextos e apresenta uma visão geral

das diferentes abordagens encontradas na literatura.

Page 40: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

32

CAPÍTULO 4

Abordagens para Representação do Contexto

Um sistema ciente de contexto requer que informações contextuais sejam trocadas e utilizadas por

diferentes entidades, como agentes humanos e de software, dispositivos e serviços, com uma mesma

compreensão semântica. Para isso, um modelo de contexto apropriado deve dar suporte à

interoperabilidade semântica e deve permitir que esquemas comuns sejam compartilhados entre as

diferentes entidades (Gu et al., 2004c).

Os modelos de representação do contexto podem ser formais ou informais (Wang et al., 2004).

Modelos informais são baseados em esquemas proprietários de representação e específicos para um

sistema. Logo, tornam difícil a compreensão do contexto por diferentes sistemas. Os modelos formais

empregam abordagens formais de modelagem para manipulação do contexto, de modo que o mesmo

possa ser utilizado, compreendido e compartilhado por diferentes sistemas.

A maioria dos sistemas cientes de contexto atuais modelam e representam o contexto apenas para

aplicações específicas. Falta a esses modelos formalidade e expressividade. Para aumentar o

compartilhamento das informações contextuais entre sistemas, deve ser utilizado um modelo formal de

representação do contexto que possibilite a estruturação das informações contextuais de forma genérica,

não dependente de uma aplicação específica, e que considere aspectos de interoperabilidade semântica

dos elementos de contexto.

A importância do tópico sobre modelagem e representação de contextos no desenvolvimento de

sistemas cientes de contexto é evidenciada por uma série de conferências científicas recentes direcionadas

especificamente a esse tema (Indulska e de Roure, 2004; Ko et al., 2005; Schulz et al., 2006; Indulska e

Nicklas, 2006; Euzenat et al., 2006; Ghidini et al., 2006).

As próximas seções apresentam algumas das abordagens para representação de contexto existentes

e frequentemente utilizadas pelos sistemas cientes de contexto.

4.1. MODELO BASEADO EM PARES DE CHAVE-VALOR

Essa abordagem de modelagem é a que utiliza a estrutura de dados mais simples para representar a

informação contextual. O contexto é representado através de pares compostos por uma chave, que

identifica o atributo de contexto, e por um valor associado a essa chave, como ilustra o exemplo na Figura

4.1. Nesse exemplo, existem três chaves: data, hora e localização, com os respectivos valores “após 16 de

Abril”, “entre 10 e 12 da manhã” e “sala 35”. Uma ação “chegada de uma pessoa” é associada a esse

contexto. Assim, quando o contexto for a presença de um indivíduo na sala 35, entre as 10 e 12 da manhã,

a partir do dia 16 de abril, o sistema irá executar um som que diga “bom dia”.

Page 41: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

33

Figura 4.1 - Exemplo de uso da representação de contexto por par chave-valor

O modelo de chave-valor não considera qualquer tipo de hierarquia entre os atributos e, apesar de

ser um modelo bastante simples de utilizar e manipular, não permite estruturações mais sofisticadas que

habilitem algoritmos eficientes de recuperação de contexto (Strang e Linnhoff-Popien, 2004). Para

identificar o atributo de contexto, o algoritmo de recuperação mais utilizado é o algoritmo de casamento

de nomes (string matching), com um resultado exato de comparação (exact matching) (Strang e Linnhoff-

Popien, 2004).

Mesmo não sendo um modelo muito formal e sofisticado, o modelo de chave-valor ganha no

quesito simplicidade e facilidade de uso, e é um modelo comumente utilizado pelos sistemas operacionais

para armazenar variáveis de ambiente. Em Schilit et al. (Schilit et al., 1994) as informações contextuais

são armazenadas em variáveis de ambiente do sistema operacional. No Context Toolkit (Dey et al., 2001)

o contexto é armazenado sob a forma de pares de chave-valor definidas usando a linguagem de marcações

XML. O sistema de notificações ENI (Event and Notification Infrastructure) utiliza pares de chave-valor

para definir contextos de percepção, como mostra a Tabela 4.1 (Gross e Prinz, 2003). O CXMS (Context

Management System) é um sistema de gerenciamento de contexto que utiliza o modelo chave-valor e

justifica sua escolha pela simplicidade e facilidade de implementação (Zimmermann et al., 2005a).

Tabela 4.1 – Atributos (chaves) de Contextos de Percepção (Gross e Prinz, 2003)

4.2. MODELO BASEADO EM LINGUAGENS DE MARCAÇÃO

O modelo baseado em linguagens de marcação utiliza o padrão XML (eXtensible Markup Language) para

modelagem das informações contextuais. A característica principal de XML é ser uma estrutura de dados

hierárquica que contém rótulos de marcação com atributos e conteúdo. Além disso, por ser um padrão

amplamente reconhecido por diversos sistemas, XML facilita o compartilhamento das informações de

contexto por diferentes aplicações.

Page 42: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

34

O modelo de representação baseado em XML tem sido utilizado para a modelagem de perfis. Um

exemplo é o CSCP (Comprehensive Structured Context Profiles) (Held et al., 2002). O CSCP é um

modelo desenvolvido em RDF (Resource Description Framework) que representa o contexto como perfis

de sessão (Figura 4.2). Os nomes dos atributos são interpretados de acordo com sua posição na estrutura

do perfil.

Figura 4.2 - Exemplo de Perfil usando CSCP (Strang e Linnhoff-Popien, 2004)

Uma outra abordagem de representação do contexto baseada em perfis e XML é o CC/PP Context

Extension (Indulska et al., 2003), uma extensão com atributos relacionados a contexto dos vocabulários

CC/PP (Composite Capabilities / Preferences Profile) (W3C, 2004) e UAProf (User Agent Profile)

(Wapforum, 2003). Esses atributos incluem, por exemplo, localização, características da rede, requisitos

da aplicação e informações sobre a sessão.

Essas abordagens procuram definir um vocabulário comum e extensível para representação do

contexto e tentam viabilizar sua utilização por diferentes sistemas. Entretanto, existem diversas

abordagens que utilizam XML para representar contexto, porém de forma proprietária, e limitada a um

pequeno conjunto de aspectos de contexto. Um exemplo é o sistema Cooltown da HP que propõe um

modelo de contexto baseado na Web onde cada objeto (pessoa, lugar ou coisa) possui uma descrição Web

correspondente que pode ser recuperada utilizando uma URL (Kindberg e Barton, 2001).

4.3. MODELO BASEADO EM REPRESENTAÇÕES GRÁFICAS

Gráficos ou diagramas são comumente utilizados para modelagem conceitual de sistemas, a fim de

identificar e especificar as funcionalidades desses sistemas, bem como para estabelecer a estrutura das

informações manipuladas. Por essa razão, alguns pesquisadores argumentam que modelos gráficos de

representação, como a UML e o ORM (Object-Role Modeling) são adequados para representar contextos.

UML (Unified Modeling Language) (OMG, 2006) é uma linguagem muito popular para

modelagem de dados e sistemas. Devido à sua natureza genérica, UML também é apropriada para a

modelagem de contextos (Strang e Linnhoff-Popien, 2004). Uma das extensões para representação de

contextos através da UML foi sugerida por Bauer (Bauer, 2003). Bauer argumenta que a representação do

Page 43: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

35

contexto depende de como o contexto será utilizado. Se for utilizado para expressar o estado de uma

entidade pode ser suficiente representar o contexto em um diagrama de classes, porém se o contexto é

utilizado para caracterizar a disseminação de informações dependentes de contexto ou para direcionar as

interações com o usuário, o contexto deve ser representado em diagramas apropriados, como mostra a

Tabela 4.2. A Tabela 4.2 indica os procedimentos e tarefas relacionados ao contexto que podem ser

expressos com os diagramas. A Figura 4.3 apresenta um exemplo de um diagrama de casos de uso, que

mostra a interação entre usuários e o sistema ciente de contexto.

Tabela 4.2 – Diagramas da UML e sua finalidade na modelagem do contexto

Diagrama da UML Finalidade na modelagem do contexto Diagrama de Casos de Uso Modelar os atores envolvidos relacionados ou influenciados pelo contexto e suas

possibilidades de interação Diagrama de Componentes Modelar os sistemas envolvidos que contêm informações relacionadas ao contexto,

como bancos de dados, fontes de contexto, entre outros Diagrama de Classes Representar a informação estrutural do domínio. Modelar como o contexto está

estruturado. Diagrama de Seqüência Modelar cenários de ativação do contexto. O diagrama detalha o fluxo da informação

entre os sistemas envolvidos e exibe a seqüência de disseminação da informação.

Figura 4.3 – Exemplo de caso de uso genérico para um sistema ciente de contexto (Bauer, 2003)

ORM (Object-Role Modeling) (Halpin, 2006) é uma notação gráfica para modelagem conceitual de

sistemas de informação. Em ORM, o conceito básico é o fato. A modelagem de um domínio envolve a

identificação de tipos de fato apropriados e os papéis que tipos de entidade desempenham nesses fatos.

Henricksen et al. propuseram uma extensão à ORM para modelar contextos, denominada CML (Context

Modeling Language) (Henricksen et al., 2002). CML apóia projetistas na especificação dos requisitos de

uma aplicação ciente de contexto e modela o contexto em dois níveis: fatos e situações. A modelagem de

fatos provê construções para definir objetos sobre os quais a informação contextual é requerida e os tipos

de fatos de interesse para o objeto. A modelagem de situações descreve o contexto em um nível mais alto

de abstração, composto pelos tipos de fatos básicos e lógica de predicados.

A Figura 4.4 apresenta um exemplo de representação usando o modelo CML. Em CML, os

contextos são categorizados de acordo com sua persistência e origem, segundo a Tabela 3.1 de

classificação de contextos, apresentada na Seção 3.3.4. Assim, o contexto (ou fato) pode ser estático

Page 44: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

36

(static fact type), se permanece inalterado enquanto a entidade que o descreve persistir, ou dinâmico. O

contexto dinâmico pode ser proveniente de perfil (profiled fact type), percebido (sensed fact type) ou

derivado (derived fact type). Um outro indicador de qualidade introduzido por Henricksen é um tipo de

fato histórico para cobrir o aspecto temporal do contexto (temporal fact type). Por fim, outra extensão

feita à ORM são dependências entre fatos (fact dependency), que indica que uma mudança em um fato

conduz a uma mudança automática em um outro fato, representado pela relação dependsOn.

Figura 4.4 – Modelo CML (Henricksen et al., 2002)

4.4. MODELO ORIENTADO A OBJETOS

Essa categoria visa empregar os principais benefícios da abordagem orientada a objetos, tais como

encapsulamento e reusabilidade, para lidar com os problemas de dinâmica do contexto (Strang e

Page 45: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

37

Linnhoff-Popien, 2004). Os detalhes do processamento do contexto são encapsulados no nível do objeto

de contexto e o acesso à informação contextual é realizado por meio de interfaces.

Um exemplo de utilização dessa abordagem é o projeto TEA (Technology for Enabling Awareness)

(TecO, 2000), através do conceito de cues, que provêm uma abstração para sensores lógicos e físicos.

Cues são objetos que provêem informação contextual por meio de uma função que recebe como entrada

valores obtidos de sensores lógicos e físicos, e provê uma saída simbólica. Um conjunto de valores

possíveis é definido para cada cue. Diferentes cues podem ser baseados em um mesmo sensor, porém a

saída de cada cue depende de um sensor específico.

Outro exemplo de uso do modelo orientado a objetos é o projeto GUIDE (Cheverst et al., 1999)

que implementa modelos de objetos ativos (Active Object Model). Os objetos gerenciam uma grande

variedade de informações contextuais pessoais e ambientais, e os detalhes das coleções de dados são

encapsuladas e escondidas de outros componentes do sistema.

O modelo proposto por Bouzy e Cazenave (Bouzy e Cazenave, 1997) utiliza orientação a objetos

para representar o conhecimento contextual envolvido no jogo de computador Go (um jogo muito famoso

no Japão, China e Coréia, e que existe há mais de 4000 anos). Nesse modelo, eles destacam os contextos

temporais (se o jogo está no início, meio ou final), o contexto dos objetivos (para identificar bons

movimentos visando atingir algum objetivo), contextos espaciais (ambiente espacial de um grupo de

pedras) e contextos globais (ex. placar do jogo ou natureza da posição da pedra). O modelo orientado a

objetos foi escolhido por suas habilidades de herança e reutilização que permitem simplificar a

representação do conhecimento em sistemas e domínios complexos (Strang e Linnhoff-Popien, 2004).

4.5. MODELO BASEADO EM LÓGICA

A lógica define as condições em que uma expressão ou fato pode ser derivada, através de um processo

conhecido como raciocínio ou inferência, a partir de um conjunto de outras expressões ou fatos (Russell e

Norvig, 2003). Em modelos de contexto baseados em lógica, a informação contextual é representada

como fatos, expressões e regras. A informação contextual é adicionada, atualizada e removida em termos

de fatos ou inferências a partir de regras em um sistema baseado em lógica. Essa abordagem possui um

alto grau de formalismo (Strang e Linnhoff-Popien, 2004).

A primeira formalização do contexto baseada em lógica foi proposta em 1993 por McCarthy

(McCarthy, 1993). Em sua abordagem, McCarthy evita definir exatamente o que é contexto, e tenta

prover uma formalização que viabilize o uso de axiomas simples para fenômenos de senso comum para

representar contextos envolvendo poucas suposições. Assim, o contexto é identificado como a

generalização de uma coleção de suposições. A idéia é que ao escrever um axioma, ele mantenha um

certo contexto, e pode haver um outro contexto, mais geral, onde o axioma falha. Esse modelo é

denominado verdade relativa a um contexto (relativized-truth-within-a-context) e baseia-se no predicado

Page 46: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

38

especial ist(c, p). Esse predicado indica que a proposição p é verdadeira no contexto c. A

proposição ist é uma abreviação para is-true (é verdadeiro). Um exemplo para essa relação é:

onde, c0 indica que no contexto das histórias de Sherlock Holmes, a pessoa chamada Holmes é um

detetive. O contexto captura tudo que não é explícito na proposição p mas que é necessário para tornar p

uma sentença significativa.

Giunchiglia utiliza lógica para formalizar o conceito de contexto em uma abordagem denominada

Multi-Context Systems (Giunchiglia, 1993). O foco dessa abordagem é menos na modelagem e mais no

raciocínio sobre contexto. Ele considera o contexto como um subconjunto específico do estado completo

de uma entidade que é usado para raciocinar sobre um dado objetivo.

Uma outra abordagem baseada em lógica foi proposta por Akman e Surav e é denominada Teoria

da Situação Estendida (Akman e Surav apud (Strang e Linnhoff-Popien, 2004)), como uma extensão à

Teoria da Situação, proposta por Barwise e Perry, os quais tentaram cobrir semânticas de linguagem

natural em um sistema de lógica formal (Barwise e Perry apud (Strang e Linnhoff-Popien, 2004)). O

modelo da Teoria da Situação Estendida modela o contexto como tipos de situação comuns. A variedade

de diferentes contextos é tratada sob a forma de regras e pressuposições relacionadas a um ponto de vista

em particular. Eles representam os fatos relativos a um dado contexto com expressões livres de

parâmetros e suportadas pelo tipo de situação correspondentes ao contexto. A Figura 4.5 mostra um

exemplo de como as regras de um contexto são representadas como restrições nessa abordagem.

Figura 4.5 – Exemplo de regras de contexto na Teoria da Situação Estendida (Strang e Linnhoff-Popien,

2004)

Outras propostas incluem: o Modelo do Contexto Percebido (Sensed Context Model) proposto por

Gray e Salber (Gray e Salber apud (Strang e Linnhoff-Popien, 2004)), que utiliza lógica de predicados de

primeira ordem como representação formal de proposições e relações contextuais; e a proposta de Bacon

et al. (Bacon et al. apud (Strang e Linnhoff-Popien, 2004)) que inclui um sistema multimídia em que a

localização é um aspecto do contexto expresso como fatos em um sistema baseado em regras e

implementado em Prolog.

c0: ist(contextof(“Histórias de Sherlock Holmes”), “Holmes é um detetive”)

Page 47: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

39

4.6. MODELO BASEADO EM GRAFOS CONTEXTUAIS

Grafos contextuais (contextual graphs) constituem um formalismo baseado em contexto para

representação de procedimentos e práticas em uma organização (Brézillon, 2003b). Inicialmente, esse

formalismo foi desenvolvido para a aplicação SART, para atender o problema de solução de incidentes

em linhas do metrô de Paris (Brézillon et al., 2000). A idéia principal é que a organização estabeleça

procedimentos para a solução do incidente e que o operador da linha de metrô adapte esse procedimento

para resolver o incidente no contexto em que o mesmo ocorre. Esse procedimento contextualizado é

chamado de prática (Brézillon, 2003b). Os procedimentos são gerais e servem para ajudar os operadores

no controle dos processos, enquanto as práticas equivalem à união dos procedimentos com o contexto em

que serão executados, e constituem um conhecimento implícito, baseado na operacionalização dos

procedimentos no dia a dia. Dessa maneira, o volume de práticas acaba sendo muito grande em

comparação ao número de procedimentos, uma vez que para cada contexto diferente o procedimento pode

necessitar ser adaptado em uma nova prática.

Diferentes abordagens foram analisadas para resolver o problema de representação dos

procedimentos e práticas, como regras de produção, árvores de decisão, redes de crenças e raciocínio

baseado em casos. O desafio dessa representação é encontrar respostas para quaisquer que fossem as

circunstâncias em que um incidente ocorresse, e descrever de forma econômica os possíveis contextos em

que uma ação pode ser tomada (Brézillon, 2003b). Foi investigado o uso de árvores de contexto para essa

representação, porém essa abordagem demonstrou vários problemas, dentre eles a existência de muitas

práticas para um mesmo problema, repetição de seqüências de ações, muitas seqüências feitas na mesma

ordem em diferentes ramos, e o fato de duas ações poderem ser feitas em uma ordem diferente, mas

anteriores a uma terceira ação. Com isso, Brézillon e Pomerol investigaram a adaptação das árvores de

contexto para uma estrutura que denominaram grafos contextuais. Essa estrutura identifica seqüências

repetidas e as substitui por macro-ações, une os ramos cujas seqüências são iguais, executa uma

organização temporal dos ramos da árvore (branching temporal) e identifica sub-grafos que aparecem nas

representações de diferentes incidentes. A Figura 4.6 ilustra um exemplo de representação de

procedimentos e contextos em um grafo contextual.

O grafo contextual é um grafo acíclico direcionado com uma única entrada, uma única saída e uma

organização serial-paralela dos nós, conectados por arcos orientados. Mecanismos de agregação e

expansão permitem que os usuários tenham diferentes visões do grafo e transformem uma atividade em

uma ação. Um caminho em um grafo contextual representa uma prática na qual as ações do operador são

entrelaçadas com os elementos contextuais. Duas práticas são diferenciadas uma da outra pelos elementos

contextuais. O elemento temporal de uma ação é representado pela direção do grafo, e pela ordenação das

ações a serem executadas. Entretanto, não é possível representar o tempo em que uma ação deve ser

finalizada, por exemplo, dez minutos antes da execução de uma outra (Brézillon, 2003b).

Page 48: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

40

O modelo de representação de grafos contextuais mostra-se muito adequado ao problema de

procedimentos e práticas ou quando há um processo envolvido.

Figura 4.6 – Representação de procedimentos e contextos em um grafo contextual (Brézillon, 2003b)

4.7. MODELO BASEADO EM MAPAS DE TÓPICOS

Um mapa de tópicos permite definir relações entre objetos físicos e lógicos localizados dentro ou fora do

mundo computacional, através da abordagem de redes semânticas. A rede semântica permite organizar os

objetos de uma forma intuitiva que facilita a navegação pelos dados. Essa abordagem é centrada em três

conceitos principais: Tópicos, Associações e Ocorrências (TAO) (ISO e IEC, 2002; Pepper, 2002). Os

objetos do mundo real são representados como tópicos, os quais se interconectam através de associações,

que representam as relações entre as entidades. Ocorrências permitem ligar tópicos aos respectivos

objetos do mundo real. O conceito de escopo define a área semântica no mapa de tópicos, o que permite

associar localidade ao mapa. Assim, tópicos são visíveis apenas dentro do escopo especificado (Goslar e

Schill, 2004).

O mapa de tópicos é um framework para gerenciamento de conjuntos de objetos de informação

interconectados, ou seja, os “assuntos” que são representados como tópicos. Um tópico é criado dentro de

um mapa de tópicos para indicar (ou se referir) a esse assunto. Informações são adicionadas aos tópicos

através da criação de associações entre eles. Por exemplo, o fato de uma pessoa possuir uma página Web

pode ser descrito através da associação hasWebpage entre os tópicos que representam a pessoa e a sua

página web. Não há restrições quanto ao número de associações entre tópicos. Uma vez criado o mapa de

tópicos, podem ser feitas perguntas do tipo “que animais vivem no mar?” ou “sobre quem é essa página

web?” e receber respostas significativas através das associações entre os tópicos (Power, 2003).

Ocorrências são recursos de informações relevantes para um tópico. Por exemplo, um tópico

representando uma pessoa pode possuir ocorrências tais como um retrato, o currículo ou uma descrição

sobre a pessoa. Esses recursos são ligados ao tópico e qualquer referência ao tópico provê,

Page 49: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

41

automaticamente, acesso a essas ocorrências. Tipos de ocorrências especificam a quais informações as

ocorrências estão ligadas.

Power (Power, 2003) propõe o uso de mapa de tópicos para integrar dados contextuais localizados

em diferentes bancos de dados contextuais. A idéia é usar o mapa de tópicos para prover acesso aos dados

contextuais de baixo nível, utilizando-o como navegador pelas fontes de dados não estruturadas, e

armazenar o significado do dado contextual no próprio tópico, ao invés de armazená-lo na estrutura do

objeto ao qual o contexto se refere.

Power discute que apenas o mapa de tópicos, tal como definido, não é suficiente para atender à

demanda dos sistemas de gerenciamento de contextos, e propõe extensões com a inclusão de

funcionalidades como: agregação, para reunir dados de contexto de baixo nível e formar contextos de

mais alto nível; privacidade e segurança, através da implementação de mecanismos de controle de acesso

que decidam que informações de contexto devem ser exportadas e visualizadas por quais clientes; e grau

de confiança às associações, útil para prover tempo de expiração à informação contextual que não seja

atualizada ao longo do tempo (Power, 2003).

Mapas de Contexto (Context maps) é uma abordagem proposta em (Goslar e Schill, 2004) para

representação de contexto baseada no conceito de mapas de tópicos, através da extensão de tipos de

associação e tópicos, e da inclusão de código embutido. Essa extensão inclui os conceitos de: tópicos

dinâmicos, que modelam dados voláteis ou dados que mudam muito frequentemente; associações

complexas, que permitem visões mais simples e de alto nível do mapa; associações inteligentes, que

possuem comportamento adaptativo, e podem calcular a validade da associação em tempo de execução ou

modificar tópicos adjacentes; e interpretação e redirecionamento automático de eventos (Figura 4.7).

Figura 4.7 – Representações Visuais de Mapas de Contexto (Goslar e Schill, 2004)

Page 50: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

42

Embora esses trabalhos defendam o uso de mapas de tópicos para representação de contexto, não

foram encontrados trabalhos que demonstrem a utilidade desse modelo de representação através do seu

uso em aplicações práticas. Tecnologias para criação e manipulação de mapas de tópicos ainda são

imaturas, e estão em fase inicial.

4.8. MODELO BASEADO EM ONTOLOGIAS

Uma ontologia é uma especificação explícita, formal, de uma conceitualização compartilhada em que

objetos, conceitos, entidades e relacionamentos do mundo real são definidos em uma determinada área de

interesse ou domínio de conhecimento (Gruber, 1993). Um dos grandes interesses na construção e uso de

ontologias é tornar o conhecimento sobre o mundo real processável por máquinas, daí a palavra formal

em sua definição, e a necessidade de utilizar linguagens formais para sua representação. Uma

representação explícita de uma ontologia consiste de um modelo formal de vocabulários (classes e

propriedades) e sua semântica associada (relacionamentos entre as diferentes classes e propriedades), bem

como funções, axiomas e instâncias (Wang et al., 2004).

A Figura 4.8 ilustra as três principais aplicações de ontologias e o nível de formalismo na

especificação do conhecimento exigido em cada uma (Mika e Akkermans, 2005). Na base da pirâmide,

está o suporte à comunicação entre agentes humanos e agentes de software, uma vez que ontologias

representam uma compreensão compartilhada sobre um conjunto de termos e descrições, e descrevem de

forma precisa as propriedades do ambiente e os vários conceitos utilizados no ambiente. Com isso, a

comunicação viabiliza o compartilhamento do conhecimento entre sistemas e entre agentes que atuam

nesses sistemas (Chen et al., 2003b; Wang et al., 2004).

Figura 4.8 – Aplicações de Ontologia (Mika e Akkermans, 2005)

A segunda funcionalidade é o suporte à integração e reuso de conhecimento. Diferentes ontologias

de diferentes domínios podem ser reutilizadas para compor uma ontologia de contexto em larga escala

sem a necessidade de começar do zero (Chen et al., 2003b; Wang et al., 2004). Ontologias podem ser

armazenadas em diferentes locais e podem ser criadas por diferente autores, o que oferece uma grande

extensibilidade e visibilidade do conhecimento (Strang et al., 2003).

A terceira funcionalidade é o suporte ao raciocínio com a produção de novos conhecimentos. Essa

é a funcionalidade que exige mais formalismo na representação do conhecimento, mas por outro lado

Page 51: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

43

permite construir os sistemas mais complexos. Mecanismos existentes de raciocínio lógico podem ser

utilizados pelas aplicações para deduzir contextos de alto nível a partir de contextos básicos, e para checar

e resolver inconsistências no conhecimento contextual.

A comunicação indica que (what) tipos de objetos existem no domínio, a integração indica como

(how) esses objetos se relacionam, e o raciocínio indica porque (why) os objetos estão relacionados (Mika

e Akkermans, 2005). O raciocínio é realizado por um motor de inferência que permite: juntar diferentes

fragmentos ontológicos; deduzir conhecimento a partir de axiomas codificados simbolicamente; consultar

instâncias e seus valores; consultar nomes de conceitos e atributos baseados em ontologias conhecidas;

validar a consistência de uma ou mais ontologias; atribuir relacionamentos inter-ontológicos; e completar

as ontologias através do processamento de hierarquia implícita e relacionamentos baseados em regras

existentes (Strang et al., 2003).

O uso de ontologias é muito útil para checar a validade da informação contextual e para facilitar a

especificação do comportamento de aplicações cientes de contexto, uma vez que permite conhecer os

tipos de contexto disponíveis e sua estrutura. A aplicação especifica regras para o comportamento

sensível a contexto utilizando um conjunto particular de conceitos (um vocabulário). Quando a aplicação

se move para um novo espaço, o contexto pode ser diferente. Se a diferença for terminológica, a ontologia

pode permitir que as regras sejam traduzidas e assim funcionem corretamente no novo ambiente

(Ranganathan et al., 2003).

Ranganathan et al. (Ranganathan et al., 2003) apontam algumas das formas em que ontologias são

utilizadas em ambientes pervasivos: (i) verificar se as descrições de diferentes entidades estão

consistentes com os axiomas definidos na ontologia; (ii) permitir a descoberta semântica de entidades;

(iii) permitir que usuários obtenham uma melhor compreensão do ambiente e de como diferentes peças se

relacionam umas com as outras; (iv) permitir e facilitar que ambos agentes humanos e de software

executem buscas em diferentes componentes, interajam com diferentes entidades e especifiquem regras

para comportamentos sensíveis a contexto nessas entidades; (v) permitir que novas entidades (que sigam

diferentes ontologias) possam interagir com o sistema, bem como permitir que diferentes ambientes

pervasivos interajam uns com os outros.

Chen et al. apontam que um problema nos sistemas cientes de contexto atuais é que eles falham no

apoio ao compartilhamento de conhecimento e raciocínio sobre contexto, devido à ausência de

representação explícita de ontologias de contexto (Chen et al., 2003b). Ontologias têm sido usadas para

representação de contexto em diversas áreas, tais como Computação Ubíqua (Chen et al., 2003b;

Christopoulou et al., 2004; Gauvin et al., 2004; Preuveneers et al., 2004; Wang et al., 2004; Bulcão Neto

e Pimentel, 2005) e Sistemas Colaborativos (Vieira et al., 2005c).

A linguagem OWL (Web Ontology Language) (Bechhofer et al., 2004) tem sido comumente

utilizada para representação das ontologias. OWL é um dos padrões definidos para a Web semântica e

permite a definição de ontologias de domínio e compartilhamento de vocabulários. OWL é baseada na

Page 52: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

44

linguagem DAML+OIL (DAML, 2006) e compartilha muitas de suas funcionalidades. Dentre elas, o uso

de RDF (Resource Description Framework) como linguagem de modelagem para definir os vocabulários

ontológicos, e o uso de XML como sintaxe para representação das informações (Bechhofer et al., 2004).

OWL é modelada através de uma abordagem orientada a objetos e a estrutura de um domínio é descrita

em termos de classes e propriedades. Do ponto de vista formal, OWL pode ser vista como equivalente à

lógica descritiva (DL), o que permite explorar os mecanismos de raciocínio em DL existentes, incluindo

consistência de classes (Wang et al., 2004).

Chen et al. apontam as seguintes razões para usar OWL na representação de ontologias (Chen et

al., 2003b): (i) possuir maior expressividade em relação a RDF ou RDF-S, permitindo construir mais

conhecimento dentro da ontologia; (ii) ter sido projetada como um padrão do W3C; (iii) ser suportada por

diversos motores de inferência para raciocínio sobre ontologias existentes, como Jena (Jena, 2006) ou

Racer (Racer, 2005).

4.8.1. Exemplos de Ontologias de Contexto

Uma das primeiras abordagens para representação de contexto usando ontologias foi proposta por Öztürk

e Aamodt (Öztürk e Aamodt, 1997). Eles elaboraram uma ontologia de alto nível onde o contexto foi

subdividido em dois conceitos principais: contexto interno, relativo ao agente ou ao raciocinador; e

contexto externo, relativo ao objetivo, à tarefa em curso, e ao ambiente. Sua classificação coloca o agente

como o elemento principal e são utilizados casos ao invés de esquemas para capturar conhecimento

contextual episódico, mantendo episódios únicos como casos. Eles justificam a escolha por ontologias

devido aos recursos de normalização e formalidade.

Dentre as ontologias mais recentes destaca-se a CONON (Wang et al., 2004; Gu et al., 2004c) e a

CoBrA-Ont (Chen et al., 2003a; Chen et al., 2003b), ambas codificadas em OWL. Essas ontologias são

utilizadas, respectivamente, nos mecanismos de gerenciamento de contexto SOCAM e CoBrA, e são

apresentadas no Capítulo 5.

Uma outra abordagem de representação de contexto baseada em ontologias é a linguagem CoOL

(Context Ontology Language), proposta em (Strang et al., 2003). CoOL é uma linguagem para

representação de ontologias de contexto, baseada no modelo Aspect-Scale-Context (ASC), onde os

aspectos representam classificações (ex. distância espacial) e podem possuir várias escalas (ex.

quilômetro ou milhas), que são dimensões individuais dos aspectos, e expressam alguma informação

contextual (ex. 20). A informação contextual é atribuída a um aspecto e escala, e metadados de qualidade

(ex. meanError) são associados à informação através de propriedades de qualidade. Funções de

mapeamento servem para converter a informação contextual de uma escala para outra. O conhecimento

contextual representado em CoOL é processado por raciocinadores lógicos, através de regras lógicas

Page 53: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

45

escritas em F-Logic1 (Kifer et al., 1995). O modelo ASC permite não apenas a validação de tipos de

dados, mas também a validação de todo o conteúdo do dado, através da especificação das faixas para a

informação contextual (escalas).

4.9. CONSIDERAÇÕES FINAIS

Este capítulo apresentou algumas abordagens para representação de informações contextuais, que incluem

modelos baseados em pares de chave-valor, linguagens de marcação, extensões de modelos de

representação gráfica, orientação a objetos, lógica, grafos contextuais, mapas de tópicos e ontologias. A

Tabela 4.3 apresenta um resumo das principais características dessas abordagens, bem como os métodos

utilizados em cada uma para processamento e recuperação dos contextos.

Tabela 4.3 – Resumo das Abordagens de Representação de Contexto

Abordagem Vantagens Desvantagens Processamento Modelo Baseado em Pares de Chave-Valor

Modelo simples, de fácil implementação e uso.

Não considera hierarquia. Inadequado para aplicações com estruturas complexas

Busca linear com casamento exato de nomes

Modelo Baseado em Linguagens de Marcação

Baseado no padrão XML. Prevê hierarquia entre os elementos. O esquema de marcação implementa o próprio modelo. Utilização típica em perfis.

Incompletude e ambigüidade na informação contextual deve ser tratada pelo sistema. Inadequado para representar estruturas complexas

Linguagem de consulta baseada em marcação

Modelo Baseado em Representações Gráficas

Ajuda a estruturar o contexto e a modelar o sistema ciente de contexto. Apóia a compreensão do contexto por humanos

Não utilizado para instanciar a informação. Falta formalismos computacionais que permitam a compreensão do contexto por máquinas

Transformação dos modelos para código

Modelo Orientado a Objetos

Usufrui das propriedades de encapsulamento e reusabilidade. Permite estruturar a informação contextual e abstrair tratamento do contexto

A invisibilidade no tratamento do contexto, pelo encapsulamento, dificulta o formalismo do modelo

Algoritmos e compiladores

Modelos Baseados em Lógica

Contextos são definidos como fatos, expressões e regras. Alto grau de formalismo.

Difícil compreensão por humanos. Difícil modelagem da estrutura do contexto

Motor de Inferência

Modelo Baseado em Grafos Contextuais

Adequado para modelar contextos associados a processos

Não permite formalizar a estrutura do contexto

Busca em árvore

Modelo Baseado em Mapas de Tópicos

Facilita a navegação entre os contextos. Facilita modelagem dos contextos por humanos.

Estágio inicial. Tecnologia imatura. Faltam exemplos reais. Baixo formalismo

Navegação por redes semânticas

Modelo Baseado em Ontologias

Contextos modelados como conceitos e fatos. Viabiliza formalização e compartilhamento por humanos e computadores.

Tecnologia de manipulação imatura.

Motor de Inferência. Linguagem de consulta baseada em OWL

Power argumenta que uma questão relevante ao pensar em representação de informações

contextuais é que não é real pensar em um modelo único, padrão e globalizado de representação (Power,

1 F-Logic (ou Frame Logic) provê uma base lógica para linguagens orientadas a objeto e baseadas em quadros (frames) para representação de conhecimento.

Page 54: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

46

2003). Ao contrário, os dados do contexto poderão ser obtidos de diferentes formas em fontes diversas e

heterogêneas de contexto. Formalizar todas as possíveis informações contextuais em ambientes restritos e

em situações controladas já é bastante difícil. Em cenários inter-organizacionais ou considerando

diferentes sistemas se torna praticamente impossível (Power, 2003)

Cada abordagem de representação possui vantagens e deficiências. Com isso, não há uma

abordagem que possa ser considerada unanimente a ideal para todos os sistemas cientes de contexto.

Diferentes sistemas impõem diferentes restrições. Em (Strang e Linnhoff-Popien, 2004) os autores

revisam diversas abordagens para modelagem de contexto e concluem que ontologias constituem a

abordagem mais promissora, devido às suas características de permitir o compartilhamento de

conhecimento entre humanos e entre agentes de software, bem como a reutilização de conhecimento entre

aplicações. Além disso, ontologias podem ser utilizadas por motores de inferência para inferir contextos

complexos a partir de contextos de mais baixo nível adquiridos por fontes diversas.

No entanto, existem problemas com o uso de ontologias. Um deles é que nem todo conhecimento

contextual pode ser definido a priori em um modelo estático e formal, como é o caso das práticas do

sistema SART (Brézillon et al., 2000), para as quais os grafos contextuais se mostram ideais. Além disso,

Henricksen et al. (Henricksen et al., 2004) apontam problemas na representação baseada em ontologias,

tais como: os padrões nos quais as ontologias e seus motores de inferência se baseiam são imaturos e

limitados; OWL ainda não provê suporte direto para regras axiomáticas, o que limita os tipos de

raciocínio; ontologias não suportam adequadamente raciocínio sobre informações de contexto imperfeitas

(imprecisas, ambíguas, incompletas), e o processo de criar ou estender ontologias de contexto é complexo

e sujeito a falhas, uma vez que as linguagens de escrita das ontologias não são intuitivas.

A abordagem de mapa de tópicos parece ser bastante interessante, porém ainda está em um estágio

imaturo em termos de definições de padrões e tecnologias. Este trabalho adota ontologias como modelo

de representação das informações contextuais em um framework de gerenciamento de contextos para

ambientes colaborativos. Abordagens para gerenciamento de contexto são revisadas no próximo capítulo.

Page 55: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

47

CAPÍTULO 5

Mecanismos de Gerenciamento de Contexto

Nas pesquisas iniciais em computação ciente de contexto o foco era, basicamente, a construção de

aplicações específicas, onde o tratamento do contexto era feito de forma proprietária, localizada, sem

levar em consideração requisitos como modularidade, reusabilidade e interoperabilidade (Riva, 2005). A

maioria das implementações existentes são elaboradas considerando um cenário particular e não provêem

mecanismos de reuso.

Zimmermann et al. utilizam o termo "mecanismos de gerenciamento de contexto" para designar

sistemas que permitem a criação, integração e administração de aplicações cientes de contexto

(Zimmermann et al., 2005a; Zimmermann et al., 2005b). O gerenciamento de contexto considera a

definição de parâmetros de contexto relevantes, a ligação entre esses parâmetros e fontes de informação,

sua utilização para o comportamento adaptativo da aplicação e a definição desse comportamento.

Servidores de contexto ou outros componentes de gerenciamento de contextos armazenam as informações

contextuais e provêem acesso para recuperação, comparação e atualização dessas informações.

A idéia principal dos mecanismos de gerenciamento de contexto é reduzir a complexidade

associada à construção de um sistema ciente de contexto, transferindo da aplicação para uma camada

intermediária as tarefas relativas à manipulação da informação contextual.

Este capítulo discute algumas abordagens para gerenciamento de contexto e revisa mecanismos

presentes na literatura que são relacionados a essas abordagens, identificando os requisitos para

construção de sistemas cientes de contexto contemplados em cada um deles.

5.1. CATEGORIAS DE ABORDAGENS PARA GERENCIAMENTO DE CONTEXTO

Infra-estrutura, framework, toolkit, middleware e engine são os termos comumente utilizados para

designar as diversas abordagens para mecanismos de gerenciamento de contextos. Algumas pesquisas

adotam a abordagem de framework de componentes reutilizáveis para prover uma estrutura, e um toolkit

com modelos básicos que facilitem o desenvolvimento das aplicações cientes de contexto. Pesquisas mais

recentes passaram a utilizar o nome infra-estruturas de contexto para designar os sistemas que apóiam a

construção de sistemas cientes de contexto (Riva, 2005). Para entender a diferença entre essas abordagens

são verificados, a seguir, como esses termos são definidos na literatura.

Uma infra-estrutura é um conjunto de tecnologias bem estabelecido, pervasivo, confiável e

publicamente acessível, que provê uma base para outros sistemas (Hong e Landay, 2001). Uma infra-

estrutura de serviços permite que tecnologias e serviços sejam acessíveis através de uma rede e que

Page 56: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

48

aplicações e dispositivos possam utilizá-los através de protocolos e formatos pré-definidos. A Internet é

um exemplo de infra-estrutura (Hong e Landay, 2001).

Framework constitui uma estrutura básica de suporte sobre a qual um outro projeto de software

pode ser organizado e desenvolvido. Pode incluir, tipicamente, programas de apoio, bibliotecas de código,

linguagens de script e outros softwares para ajudar a desenvolver e juntar diferentes componentes do

projeto (Wikipedia, 2006b). O framework trata das funcionalidades centrais e provê meios de

customização para adequação a necessidades específicas da aplicação (Hong e Landay, 2001).

Toolkit é um conjunto de widgets, elementos básicos de uma interface gráfica, normalmente

implementados como uma biblioteca de rotinas ou uma plataforma para aplicativos (Wikipedia, 2006c).

Em geral, toolkits são desenvolvidos sobre um framework e provêem componentes reusáveis para

funcionalidades comuns (Hong e Landay, 2001).

Middleware é um software de interface que permite a interação de diferentes aplicações,

geralmente sobre diferentes plataformas de hardware e infra-estrutura, para troca de dados (Wikipedia,

2006a). Ele provê serviços reusáveis que podem ser compostos, configurados e depurados para criar

aplicações em rede de forma rápida e robusta (Blair et al., 2004).

Segundo Ranganathan e Campbell, ambientes de computação ubíqua devem prover um suporte de

middleware para a percepção do contexto (Ranganathan e Campbell, 2003). Eles argumentam que o

middleware pode simplificar as tarefas de criação e manutenção de sistemas cientes de contexto, pois

provêem abstrações uniformes e serviços confiáveis para operações comuns. O middleware facilita

também o desenvolvimento incremental de novos sensores e agentes cientes de contexto no ambiente. Um

middleware, idealmente, deve ser independente de hardware, sistema operacional e linguagem de

programação.

Engine (motor) é um programa que executa uma tarefa de propósito específico para outras

aplicações. O motor pode ser um programa central que coordena toda a operação de um conjunto

coordenado de programas. É também utilizado para descrever um programa de propósito específico que

contém um algoritmo que pode mudar algumas vezes (UBC, 2000). Exemplos são motores de busca,

como Google ou Yahoo, e motores de jogos, usados para formar blocos de construção para outros jogos

(Playstation, 2004).

Apesar das diferentes definições, Hong e Landay afirmam que essas abordagens não são

mutuamente exclusivas e que muitas vezes é importante usar uma combinação de várias delas (Hong e

Landay, 2001). Alguns problemas comuns surgem durante o desenvolvimento e reutilização de

componentes para um sistema de gerenciamento de contextos, tais como a forte dependência de um

domínio, a ausência de interfaces abertas e padronizadas, a ausência de uma representação uniforme dos

perfis e modelos dos usuários e a utilização de fontes de dados diferentes e distribuídas (Zimmermann et

al., 2005b).

Page 57: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

49

5.2. MECANISMOS PARA GERENCIAMENTO DE CONTEXTO

As próximas subseções apresentam algumas propostas de mecanismos para gerenciamento de contexto.

Os mecanismos, em geral, são voltados para o domínio da Computação Ubíqua, pois é nesse domínio que

as pesquisas sobre contexto estão mais avançadas em termos de implementações reais.

5.2.1. SOPHIE

SOPHIE (SOcial PHilanthropic Information Environment) é um ambiente de informação reativo e

integrado, que visa rastrear as mudanças constantes que ocorrem em um ambiente e se adaptar a elas, por

exemplo, através da disseminação da informação correta aos vários canais de saída (Belotti, 2004).

SOPHIE é integrado a um motor de contexto (context engine) genérico, com um modelo semântico

de contexto (Belotti et al., 2004a). Esse motor de contexto tem por finalidade gerenciar informações

contextuais e pode ser acoplado a aplicações existentes para aumentar a ciência de contexto dessas

aplicações (Belotti et al., 2004b). O modelo de contexto do SOPHIE tem por objetivo consolidar modelos

existentes em outras abordagens, movendo os conceitos para um nível mais alto de abstração em termos

de descrição semântica do contexto. O modelo baseia-se na extensão ao padrão ORM (Object-Role

Modeling) proposta por Henricksen et al. (Henricksen et al., 2002) e em semânticas bem definidas que

facilitam a reusabilidade e interoperabilidade do contexto em aplicações existentes.

O modelo é centralizado em três conceitos básicos: context (contexto de domínio), providers

(aquisição de contexto) e notifiers (comunicação do contexto). Além desses conceitos, eles introduzem

um sistema de tipos que define a composição do contexto. Os tipos podem ser definidos para três

domínios principais: ApplTypes, que indicam os tipos específicos da aplicação, BaseTypes, que definem

valores primitivos como string, inteiro e booleano, e BulkTypes, que designam conjuntos de valores de

um dado tipo. Os tipos do contexto são definidos como a composição de atributos de um dado tipo

(Belotti et al., 2004a). A Figura 5.1 apresenta os principais elementos desse modelo de contexto.

Figura 5.1 - Modelo de Contexto (Belotti, 2004)

A arquitetura do SOPHIE, e sua integração com o motor de contexto, é ilustrada na Figura 5.2. O

motor de contexto é dividido em quatro abstrações principais relacionadas ao contexto: aquisição (context

sensing), que é a obtenção de informações de produtores de contexto; ampliação (context augmentation),

armazenamento da informação contextual associando-a ao seu assunto; adaptação (contextual

Page 58: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

50

adaptation), adapta o comportamento a mudanças no contexto corrente; e descoberta de recursos

(contextual resource discovery), permite descobrir recursos e informações relevantes dependentes do

contexto. As informações contextuais processadas pelo motor são obtidas da camada da aplicação

(application), por meio de informações existentes armazenadas em bases de dados, e da camada de

ambiente (environment) que representa o mundo real, físico (Belotti, 2004).

Figura 5.2 - Arquitetura do SOPHIE (Belotti, 2004)

A aquisição do contexto é baseada em sensores. Para instalar um novo sensor, o desenvolvedor

precisa instanciar um sensor e ligá-lo a um dado contexto. O sensor pode ser executado individualmente e

atualizar o estado do seu contexto ou pode ser de natureza reativa e responder a uma requisição de

atualização do contexto associado (Belotti et al., 2004a). A disseminação do contexto é feita por meio de

notificadores que informam aplicações inscritas como interessadas no contexto sempre que ocorrer um

evento sobre o contexto. Um notificador é associado a um contexto e cada vez que o contexto muda, o

notificador é invocado. O notificador avalia a mudança no contexto e, caso seja desejado, a aplicação

apropriada é notificada (Belotti et al., 2004a).

5.2.2. SOCAM

SOCAM (Service-Oriented Context-Aware Middleware) é um middleware para a construção rápida de

serviços cientes de contexto em ambientes inteligentes (Gu et al., 2005). Para permitir a

interoperabilidade entre aplicações e apoiar o raciocínio sobre contexto, SOCAM utiliza a ontologia

CONON (Context Ontology) (Wang et al., 2004; Gu et al., 2004c). CONON é um modelo semântico de

contexto, serializado em OWL-DL.

Conceitualmente, a CONON é dividida em duas partes distintas (Figura 5.3): uma ontologia de alto

nível (upper ontology) que captura os conceitos genéricos sobre contextos básicos (localização, usuário,

atividade e entidade computacional), e uma coleção de ontologias específicas de domínio, que são

construídas como especializações da ontologia de alto nível para domínios específicos. Estas definem os

Page 59: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

51

detalhes dos conceitos genéricos para cada sub-domínio. A separação em domínios facilita o reuso de

conceitos genéricos e provê uma interface flexível para definição de conhecimento específico para a

aplicação (Wang et al., 2004).

Figura 5.3 - Visão parcial da ontologia de alto nível do CONON (Wang et al., 2004)

O middleware SOCAM (Figura 5.4) provê suporte para as seguintes tarefas no gerenciamento de

contexto: aquisição, compartilhamento, raciocínio, armazenamento e disseminação do contexto. A

aquisição do contexto é feita pelos componentes denominados context providers, que abstraem os

contextos a partir de diferentes fontes externas ou internas, e convertem-nos na representação formal da

ontologia CONON. O compartilhamento ocorre através da utilização da CONON, que permite que os

contextos sejam compartilhados e reutilizados pelos vários componentes do SOCAM.

O raciocínio sobre contexto é executado pelos interpretadores de contexto (context interpreters),

que consistem de motores de raciocínio de contexto (context reasoning engines) e de uma base de

conhecimento contextual (context KB). Os motores de raciocínio realizam inferência de contextos, a partir

de regras pré-definidas, resolução de conflitos dos contextos, e manutenção da consistência da base de

conhecimento contextual.

O armazenamento do contexto é efetuado através da manutenção de um banco de dados de

contexto (context database) que persiste as ontologias de contexto e os contextos passados. A base de

conhecimento contextual provê serviços que permitem que os outros componentes possam consultar,

adicionar, remover ou modificar o conhecimento contextual armazenado no banco de dados de contexto.

A disseminação do contexto é realizada pelo serviço de localização de serviços (service locating

service). Esse serviço provê um mecanismo onde os provedores e interpretadores de contexto possam

anunciar suas presenças e os usuários ou aplicações possam localizar e acessar esses serviços.

Page 60: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

52

Figura 5.4 – Visão Geral da Arquitetura do SOCAM (Gu et al., 2005)

Para raciocinar sobre a incerteza em relação aos elementos de contexto representados, a SOCAM

utiliza redes bayesianas (Gu et al., 2004a). Esse modelo anexa valores de probabilidade aos predicados de

contexto definidos na CONON. Para isso foi proposta uma extensão à OWL para inclusão de rótulos de

marcação para probabilidades. A escolha pelas redes bayesianas é justificada pela eficiência em lidar com

raciocínio probabilístico e por permitir representar relacionamentos causais entre vários contextos. Entre

as limitações dessa abordagem está a dificuldade em obter dados para treinar a rede bayesiana em certas

circunstâncias, como aplicação de controle de segurança. A lógica fuzzy pode ser utilizada para

representar e raciocinar sobre noções imprecisas de contexto, como "quente", "muito baixo" ou

"confiança".

5.2.3. CoBrA

CoBrA (Context Broker Architecture) é uma arquitetura baseada em agentes cujo objetivo é apoiar

sistemas cientes de contexto em espaços inteligentes, em particular salas de reuniões inteligentes em um

campus universitário. O elemento principal dessa arquitetura é um agente inteligente chamado context

broker que mantém e gerencia um modelo compartilhado do contexto, a ontologia CoBrA-Ont e provê

serviços de proteção de privacidade para os usuários (Chen et al., 2005).

CoBrA-Ont é uma ontologia de contexto desenvolvida em OWL e tem por objetivo auxiliar os

agentes na aquisição, raciocínio e compartihamento do conhecimento contextual, bem como apoiar a

detecção e resolução de conhecimento contextual inconsistente e ambíguo (Chen et al., 2003b). A Figura

5.5 mostra uma representação gráfica dos conceitos ontológicos da CoBrA-Ont, a qual é categorizada em

quatro temas distintos e relacionados: (i) conceitos que definem lugares físicos e suas relações espaciais

associadas; (ii) conceitos que definem agentes (humanos e de software); (iii) conceitos que descrevem o

contexto de localização de um agente em um campus universitário; e (iv) conceitos que descrevem os

contextos de atividade de um agente, incluindo papéis, desejos e intenções associadas em um evento de

apresentação.

Page 61: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

53

Figura 5.5 – Representação Gráfica da Ontologia CoBrA-Ont (Chen et al., 2003a)

A arquitetura do CoBrA é ilustrada na Figura 5.6. Os requisitos para gerenciamento de contexto

tratados pelo CoBrA são: (i) aquisição de contexto de fontes heterogêneas, como sensores físicos,

serviços web, bancos de dados, dispositivos e agentes (Context Acquisition Module); (ii) raciocínio sobre

a informação para deduzir conhecimento adicional a partir da informação adquirida, e manter o modelo

de contexto consistente (Context Reasoning Module); (iii) compartilhamento do conhecimento contextual

através do uso de ontologias comuns (RDF/OWL), e padrões de comunicação entre agentes como a

linguagem FIPA-ACL e o protocolo SOAP; (iv) proteção da privacidade dos usuários através de políticas

definidas pelo usuário e de regras de comportamento do broker associadas a essas políticas (Privacy

Management Module) (Chen, 2004).

Para realizar o raciocínio sobre contexto, CoBrA utiliza um número de diferentes sistemas

baseados em regras, como Jena (Jena, 2006), usado para inferência sobre a ontologia OWL, JESS (Java

Expert System Shell) (Jess, 2006), usado para interpretação de contexto utilizando regras específicas do

domínio, e Theorist (Poole et al., 1998), um raciocinador baseado em sentenças Prolog utilizado para

apoiar as inferências lógicas para resolver conhecimento inconsistente (Chen, 2004).

Page 62: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

54

Figura 5.6 – Visão Geral da Arquitetura do CoBrA (Chen, 2004)

5.2.4. CXMS

O CXMS (Context Management System) é um framework que oferece um conjunto de ferramentas para

facilitar o desenvolvimento e manutenção de sistemas e serviços cientes de contexto. Para isso, ele

considera as seguintes abstrações principais: (i) aquisição do contexto; (ii) modelagem do contexto; (iii)

definição do comportamento da aplicação; e (iv) apresentação da informação de forma correta

(Zimmermann et al., 2005a; Zimmermann et al., 2005b).

O CXMS é formado pelos seguintes componentes (ver Figura 5.7): o Context Toolkit, o Content

Management System (CMS), o Administrator, uma ferramenta de administração para configuração da

aplicação, e o Mobile Collector, uma ferramenta de edição para a criação de ligações entre os conteúdos e

os parâmetros de contexto.

O Context Toolkit é o elemento responsável pelo gerenciamento do conhecimento contextual e

divide-se em quatro camadas: Sensores, Semântica, Controle e Atuação. A camada dos sensores (Sensor

Layer) é responsável pela aquisição do contexto por meio de uma rede de sensores físicos que reconhece

mudanças no ambiente e recebe todos os eventos de entrada enviados pela aplicação, relacionados à

situação atual do usuário. A camada semântica (Semantic Layer) atende à modelagem do contexto,

fornece a interpretação do contexto enriquecendo semanticamente os dados coletados pela camada dos

sensores, e subdivide-se nas camadas: entidade, define as entidades do domínio e gerencia suas

propriedades; relacionamento entre entidades, modela as dependências entre as entidades; e processo,

observa a evolução dos contextos ao longo do tempo. A camada de controle (Control Layer) é

responsável por definir o comportamento da aplicação e por decidir que ações devem ser disparadas se

condições particulares no modelo forem verdadeiras. Finalmente, a camada de atuação (Actuation Layer)

lida com a apresentação da informação de forma correta. Para isso, são mapeadas as decisões tomadas

Page 63: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

55

pela camada de controle para ações do mundo real e são modificados os parâmetros de variáveis do

domínio de acordo com o comportamento do usuário.

Figura 5.7 - Arquitetura do CXMS (Zimmermann et al., 2005a)

A abordagem utilizada no CXMS para representação das informações contextuais é baseada no

modelo de pares de chave-valor, escolhido pela simplicidade e flexibilidade. Cada contexto é uma

enumeração de um ou mais atributos de contexto e cada entidade possui, por definição, um contexto

estático e diversos tipos de contextos dinâmicos. É mantido um histórico para cada tipo de contexto. O

modelo de contexto cobre as quarto dimensões mencionadas em (Gross e Specht, 2001): identidade,

localização, tempo e ambiente. Um contexto sempre representa todas as informações atualizadas e

disponíveis que descrevem a situação atual de um usuário ou grupo de usuários.

5.2.5. Context Toolkit - CTK

O Context Toolkit (CTK) é um dos primeiros e mais referenciados projetos de mecanismo para

gerenciamento de contexto (Dey et al., 1999b; Dey et al., 2001). Seu objetivo é prover uma solução

reutilizável para tratamento do contexto que facilite a implementação e desenvolvimento de aplicações

cientes de contexto interativas, no domínio da computação ubíqua. O CTK compreende um framework

para aplicações cientes de contexto baseado em sensores e provê um número de componentes

reutilizáveis para construção dessas aplicações.

O CTK incorpora vários serviços relacionados ao gerenciamento de contexto, incluindo aquisição

do contexto, acesso a dados de contexto e persistência do contexto. A Figura 5.8 mostra a hierarquia de

componentes do CTK e uma visão geral da sua arquitetura. O componente raiz é o BaseObject, que

subdivide-se em widgets de contexto (widgets), interpretadores de contexto (interpreters) e um servidor

Page 64: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

56

para descoberta de recursos (discoverer). Os widgets são compostos por serviços de contexto (services) e

agregadores de contexto (aggregators) (Dey et al., 2001).

Figura 5.8 – Hierarquia de Componentes e Arquitetura do CTK (Dey et al., 2001)

Os widgets de contexto são uma analogia aos widgets de interface gráfica e têm por objetivo apoiar

a aquisição do contexto, através de sensores, e a disseminação dos contextos, por meio dos atuadores. Os

interpretadores ampliam o nível de abstração da informação contextual, para melhor se adequar aos

requisitos da aplicação. Os agregadores combinam os diferentes tipos de informações contextuais

relacionados a uma entidade. Quando widgets, agregadores e interpretadores são instanciados, eles se

registram a um serviço de localização (discoverer) e quando uma aplicação é executada, ela contacta esse

serviço para localizar componentes que sejam relevantes à sua funcionalidade.

O CTK representa o contexto sob a forma de pares de chave-valor definidos usando a linguagem

XML. O principal problema do CTK é a ausência de um modelo formal de contexto e de formas de

controlar uma aplicação ou mudança de parâmetros dinâmicos dentro da aplicação. O CTK não provê um

suporte para raciocínio sobre contextos e inferência de novos contextos de alto nível ou uma estrutura

formal para organizar os diversos tipos de contextos. Além disso, a funcionalidade dos interpretadores

para derivação de contexto é limitada, uma vez que eles são geralmente empregados apenas para

conversões de tipos de dados simples. Como resultado, o suporte a comparações de contexto também é

limitado.

5.2.6. Middleware de Contexto do Gaia

Gaia é uma infra-estrutura para ambientes inteligentes de computação pervasiva cujo principal objetivo é

tornar inteligente espaços físicos como salas, casas e aeroportos e auxiliar pessoas nesses espaços (Román

et al., 2002). Gaia possui um middleware de contexto que permite que aplicações obtenham e utilizem

diferentes tipos de contextos.

O middleware de contexto do Gaia visa prover suporte para as seguintes tarefas de gerenciamento

de contexto: aquisição do contexto a partir de diferentes sensores; disseminação do contexto a diferentes

agentes; inferência de contextos de alto nível a partir de contextos de baixo nível utilizando diferentes

tipos de mecanismos de raciocínio e aprendizagem; facilidades para diferentes atuações dos agentes em

Page 65: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

57

diferentes contextos; e (v) interoperabilidade semântica e sintática entre diferentes agentes (Ranganathan

e Campbell, 2003).

A Figura 5.9 mostra uma visão geral da arquitetura do middleware de contexto. A aquisição do

contexto é realizada por provedores de contexto (context providers), os quais, juntamente com

sintetizadores de contexto (context synthesizers), fazem a disseminação da informação contextual a

consumidores de contexto (context consumers). Os sintetizadores são responsáveis, também, pela

inferência dos contextos de alto nível. Os consumidores obtêm diferentes tipos de contextos, raciocinam

sobre o contexto atual e adaptam seu comportamento (atuam) de acordo com o contexto. Um serviço de

busca (context provider lookup service) permite que provedores de contexto anunciem seus contextos e

que agentes encontrem os provedores adequados a suas necessidades. Um serviço de histórico (context

history service) mantém os contextos persistidos em um banco de dados para permitir consulta a

contextos passados.

A interoperabilidade semântica e sintática entre agentes é provida pelo uso de ontologias para

representação do contexto. Um servidor de ontologias (ontology server) mantém as ontologias que

descrevem diferentes tipos de informação contextual, de modo que outros agentes possam obter

descrições dos agentes no ambiente, meta-informações sobre os contextos e definições dos vários termos

utilizados no Gaia.

Figura 5.9 – Visão geral do middleware de contexto do GAIA (Ranganathan e Campbell, 2003)

A representação de contexto no GAIA era feita, inicialmente, com predicados de lógica de primeira

ordem. Posteriormente, em 2003, eles adotaram a abordagem de ontologias, que foi codificada através da

linguagem DAML+OIL (DAML, 2006). Os contextos são representados como predicados e as ontologias

definem o vocabulário e tipos de argumentos que podem ser utilizados nos predicados.

A ontologia de contexto descreve as entidades, que incluem aplicações, serviços, dispositivos,

usuários, fontes de dados, localização, atividades e informações climáticas, suas propriedades e os

Page 66: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

58

relacionamentos entre elas, bem como axiomas que restringem as propriedades dessas entidades. As

entidades de contexto são classificadas em sete categorias: (i) contextos físicos (ex. localização e tempo);

(ii) contextos ambientais (ex. clima, níveis de luz e som); (iii) contextos de informação (ex. notas sobre

estoque e placar esportivo); (iv) contextos pessoais (ex. saúde, agenda e atividade); (v) contextos sociais

(ex. atividade do grupo, relacionamentos sociais e quem está na sala com quem); (vi) contextos da

aplicação (ex. email e páginas web visitadas); e (vii) contextos do sistema (ex. tráfego da rede e status da

impressora).

As aplicações cientes de contexto desenvolvidas em Gaia possuem regras que descrevem que ações

devem ser executadas em diferentes contextos. Para escrever essas regras o desenvolvedor deve conhecer

os diferentes tipos de contextos disponíveis bem como as possíveis ações que podem ser executadas pela

aplicação. As ontologias servem para simplificar a tarefa de escrever essas regras. Gaia inclui uma

ferramenta que utiliza a ontologia e auxilia o desenvolvedor na escrita das regras (Ranganathan et al.,

2003).

5.2.7. Framework de Contexto

Henricksen e Indulska (Henricksen e Indulska, 2005) propuseram um framework de contexto que visa

facilitar a construção de aplicações cientes de contexto e prover suporte às tarefas de aquisição,

representação, persistência e disseminação de contextos, e adaptação de aplicações ao contexto. Essas

funcionalidades são baseadas em um modelo de contexto que identifica a diversidade da informação

contextual, sua qualidade, relacionamentos complexos entre dados de contexto e aspectos temporais. O

framework de contexto (Figura 5.10) é organizado em uma hierarquia de seis camadas: (i) camada da

aplicação ciente de contexto; (ii) camada de adaptação; (iii) camada de consulta; (iv) camada de

gerenciamento do contexto; (v) camada de recepção do contexto; e (vi) camada de aquisição do contexto.

A camada de aquisição utiliza sensores para adquirir a informação contextual e processa essa

informação através de interpretadores e agregadores. A camada de recepção provê um mapeamento

bidirecional entre o contexto adquirido e as camadas de gerenciamento, traduzindo os dados de entrada

para o modelo formal definido. A camada de gerenciamento é responsável pela manutenção de um

conjunto de modelos de contexto e suas instanciações, onde a aplicação pode definir seu próprio modelo

de contexto, segundo a abordagem CML (Context Modeling Language) (ver Seção 4.3), ou compartilhar

modelos de aplicações similares. A camada de consulta provê uma interface para que aplicações possam

consultar o sistema de gerenciamento de contexto. A camada de adaptação gerencia repositórios comuns

de definições de situações e preferências e avalia essas definições usando serviços das camadas mais

baixas. A camada da aplicação provê um toolkit de programação com suporte à criação, ativação e

desativação de gatilhos.

Page 67: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

59

Figura 5.10 - Arquitetura do Framework de Contexto (Henricksen e Indulska, 2005)

5.2.8. Kernel Semântico de Contexto

O Kernel Semântico de Contexto (Semantic Context Kernel) é uma infra-estrutura de serviços para

gerenciamento de contexto (por simplificação, será denominado SCK) (Bulcão Neto e Pimentel, 2005). O

SCK inclui serviços configuráveis para armazenamento, consulta e inferência sobre contexto, um serviço

de descoberta, além de componentes que apóiam as tarefas de aquisição, disseminação e adaptação ao

contexto e conversão do contexto em um modelo semântico de representação, baseado em ontologias. O

modelo semântico visa prover interoperabilidade semântica e reuso do conhecimento contextual. O

principal objetivo do SCK é prover aos desenvolvedores de aplicações cientes de contexto um conjunto

de serviços que possam ser configurados para atender aos requisitos da aplicação. Os autores apontam a

configurabilidade dos serviços como a principal funcionalidade do Kernel. A arquitetura do SCK é

apresentada na Figura 5.11.

A informação contextual é adquirida de fontes de contexto heterogêneas (context sources) como

aplicações, serviços web e sensores físicos. As informações adquiridas são convertidas em uma

representação semântica comum pelos tradutores de contexto (context transducers) e utilizadas por

consumidores de contexto (context consumers) para adaptar seu comportamento ao contexto atual. Um

serviço de descoberta (discovery service) disponibiliza propagandas de fontes de contexto de modo que

consumidores de contexto possam encontrar as informações que necessitam. O serviço de inferência

Page 68: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

60

(context inference service) provê um suporte configurável ao raciocínio de contexto, e permite que

desenvolvedores definam suas regras de inferência. O serviço de consulta (context query service) permite

que consumidores de contexto consultem o contexto por meio de uma linguagem declarativa chamada

RDQL. Finalmente, o serviço de persistência (context persistence service) possibilita o armazenamento

persistente do contexto em uma maneira configurável, de forma que os desenvolvedores das aplicações

possam escolher os tipos de armazenamento e representação do contexto, como bancos de dados

relacionais, arquivos RDF/XML ou arquivos texto em formato N-Triple.

Figura 5.11 - Visão Geral da Arquitetura do SCK (Bulcão Neto e Pimentel, 2005)

A representação do contexto no SCK é feita usando uma ontologia (Figura 5.12) serializada em

OWL. A ontologia divide o contexto em 5 dimensões: identidade dos atores (who), localização (where),

tempo (when), atividade (what) e perfis dos dispositivos (how). A ontologia dos atores usa um conjunto

de ontologias externas como FOAF (Friend of a Friend) (Brickley e Miller, 2006), Dublin Core (Dcmi,

2005) e vCard (Iannella, 2001) para modelar papéis, projetos, contatos, especialidades, documentos e

relacionamentos sociais associados aos atores.

Page 69: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

61

Figura 5.12 – Visão geral do modelo de contexto (Bulcão Neto e Pimentel, 2005)

5.2.9. Framework Conceitual de Contexto para Groupware

O framework conceitual de contexto para groupware, proposto por Rosa et al. (Rosa et al., 2003), tem por

objetivo a identificação e classificação dos elementos contextuais mais comuns nas ferramentas de

groupware. É representado através de quadros conceituais e visa prover guias para desenvolvedores de

groupware na inclusão do tratamento do contexto nesses sistemas (Figura 5.13).

Page 70: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

62

Figura 5.13 – Framework Conceitual de Contexto para Groupware (Rosa, 2004)

O framework conceitual considera que os elementos relevantes para a composição do contexto de

atividades em grupo estão divididos em sete tipos: contexto do indivíduo, contexto do grupo, contexto da

tarefa, contexto da interação, contexto do planejamento, contexto do ambiente e contexto histórico. Esses

tipos foram alocados em cinco categorias: (i) informações sobre pessoas; (ii) informações sobre as tarefas

a serem realizadas; (iii) informações sobre as relações entre pessoas e tarefas; (iv) informações sobre o

ambiente onde as tarefas são realizadas; e (v) informações sobre as tarefas já realizadas. Cada categoria

procura identificar os aspectos da interação que influenciam a execução de tarefas em grupo. O tipo da

interação (síncrona ou assíncrona) interfere no tipo da informação contextual a ser considerada para uma

das categorias, e por isso essa distinção é feita no contexto da interação.

O framework é uma classificação genérica que visa identificar os elementos contextuais existentes

nas interações ocorridas nos mais diversos tipos de ferramentas de groupware. Classificações mais

específicas poderão ser feitas em domínios particulares, onde novos elementos contextuais podem ser

considerados relevantes. O framework conceitual oferece, assim, um suporte à identificação e

caracterização de contexto em sistemas de groupware. Uma proposta de modelagem conceitual das

informações contextuais, usando o diagrama de classes da UML é ilustrada na Figura 5.14.

Page 71: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

63

Figura 5.14 – Diagrama de classes com um modelo conceitual preliminar do contexto (Rosa, 2004)

5.3. CONSIDERAÇÕES FINAIS

Este capítulo discutiu a área de gerenciamento de contextos, definiu as categorias para as diversas

abordagens de gerenciadores de contexto presentes na literatura, e apresentou alguns mecanismos

pertencentes a essas diversas categorias. A Tabela 5.1 exibe um resumo das principais características

desses mecanismos, o modelo de representação utilizado por cada um, as tarefas de gerenciamento que

implementam, e os tipos de informações contextuais que consideram.

Os mecanismos para gerenciamento de contexto encontrados na literatura são, em sua maioria,

voltados para o domínio da computação ubíqua e pervasiva, área em que o estudo e aplicação do contexto

estão mais avançados. Por essa razão, eles seguem um modelo e arquitetura similares. Seus componentes

modulares executam, em geral, as tarefas de: (i) aquisição do contexto; (ii) representação das

informações contextuais; (iii) raciocínio e inferência sobre as informações contextuais capturadas;

(iv) persistência do contexto, mantendo um banco de dados histórico; (v) disseminação do contexto; e

(vi) notificação das aplicações dos contextos adquiridos. Alguns trabalhos se preocupam, também com a

confiança da informação contextual e em como lidar com incertezas, e outros com questões relativas à

privacidade e segurança. Nenhum dos sistemas estudados apresentou soluções para lidar com questões

relacionadas ao desempenho dos sistemas cientes de contexto e otimização do tratamento do contexto.

Na área de sistemas colaborativos foi identificado o framework conceitual de contexto em

groupware (Rosa et al., 2003). A utilização de contexto em sistemas colaborativos, embora seja apontado

por vários pesquisadores como algo bastante relevante, ainda é uma área pouco explorada na literatura.

Os mecanismos encontrados na área de sistemas colaborativos gerenciam informações de percepção, sem

uma relação explícita com o conceito de contexto. O framework conceitual é um primeiro passo rumo à

identificação e caracterização das informações contextuais em sistemas de groupware. Porém, ele não

oferece maiores facilidades no gerenciamento do contexto, uma vez que não provê suporte a tarefas como

Page 72: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

64

aquisição, representação formal, processamento e disseminação do contexto. Ele também não indica o

que diferencia o gerenciamento do contexto do grupo em relação ao contexto do indivíduo e não indica

como as aplicações podem utilizar o contexto para tornar a interação em grupo mais efetiva.

Tabela 5.1 – Resumo das Abordagens para Gerenciamento de Contextos

Mecanismo Representação Funcionalidades Informações de contexto Motor do SOPHIE

Gráfico ORM Aquisição, armazenamento, adaptação, disseminação e localização de recursos

Estrutura de tipos genérica. Aplicação define seu contexto

Middleware SOCAM

Ontologia Aquisição, compartilhamento, raciocínio, incerteza, qualidade, armazenamento, disseminação, localização de recursos

Localização física, pessoa, atividade e entidade computacional

Middleware CoBrA

Ontologia Aquisição, compartilhamento, raciocínio, armazenamento, segurança e privacidade

Localização física, agentes, atividade, papéis, intenções

Framework CXMS

Par chave-valor Aquisição, modelagem, armazenamento, definição do comportamento da aplicação, e apresentação da informação

Identidade, localização, tempo e ambiente

Context Toolkit

Par chave-valor Aquisição, agregação, armazenamento, disseminação, adaptação, localização de recursos

Identidade, localização, tempo e atividade

Middleware do Gaia

Ontologia Aquisição, compartilhamento, agregação, raciocínio, armazenamento, disseminação, adaptação, localização de recursos

Aplicações, serviços, dispositivos, usuários, fontes de dados, localização, atividades e informações climáticas

Framework de Contexto

Gráfico CML Aquisição, representação, agregação, armazenamento, disseminação e adaptação

Aplicação define seu contexto

Infra-Estrutura SCK

Ontologia Aquisição, conversão, armazenamento, consulta, inferência, disseminação e adaptação, localização de recursos, configurabilidade

Pessoa, grupo, organização, projeto, contato, papel, habilidades, relacionamentos, atividade, localização, dispositivo, tempo

Framework Conceitual

Quadros e Diagrama UML

Identificação e classificação dos elementos de contexto em groupware

Indivíduo, grupo, tarefa, interação, planejamento, ambiente e histórico

O próximo capítulo fala sobre colaboração contextual e revisa os estudos sobre aplicação de

contexto a sistemas colaborativos.

Page 73: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

65

CAPÍTULO 6

Colaboração Contextual

Nos capítulos anteriores foi apresentada uma revisão do cenário de pesquisa atual sobre contexto e

construção de sistemas cientes de contexto. As pesquisas relacionadas a contexto computacional estão

mais avançadas nas áreas de Inteligência Artificial, onde contexto é associado à resolução de problemas, e

Computação Ubíqua, em que contexto é utilizado para ajudar a prover a computação “a qualquer hora e

em qualquer lugar, no lugar certo e na hora certa”.

Este capítulo faz uma revisão dos trabalhos que aplicam contexto à área de CSCW e discute quais

são os desafios apontados para inclusão de contexto em sistemas colaborativos. Para isso, inicialmente, é

apresentada a importância da existência de sistemas colaborativos cientes de contexto. A seguir, são

discutidas as diferenças entre os conceitos de contexto e percepção, uma vez que na literatura de CSCW

esses dois conceitos muitas vezes aparecem juntos, sem uma diferenciação explícita. Em seguida, são

abordadas questões relacionadas à identificação dos elementos de contexto em ambientes colaborativos e

algumas questões específicas do tratamento de contexto em ambientes colaborativos, como contexto

compartilhado, descasamento e perda de contexto. Por fim, é apresentado o uso de contexto na prática em

sistemas colaborativos, com destaque para mecanismos de percepção cientes de contexto.

6.1. SISTEMAS COLABORATIVOS CIENTES DE CONTEXTO

Sistemas colaborativos cientes de contexto são sistemas que utilizam o contexto atual dos usuários, o

contexto do grupo do qual esses usuários fazem parte, o contexto da atividade colaborativa em curso,

entre outros, para responder de forma inteligente às interações entre os usuários, oferecendo serviços e

informações relevantes para o grupo em sua situação corrente.

O uso de contexto em sistemas colaborativos ainda é um tópico em aberto. Poucos trabalhos fazem

referência explícita ao conceito de contexto, tal como ocorre em outras áreas (ex. Computação Ubíqua,

Inteligência Artificial, Interface Humano-Computador). Contexto aparece de forma embutida e,

geralmente, associado a outros conceitos como percepção e memória do grupo (Brézillon et al., 2004).

Borges et al. apontam como causas para esse problema a falta de representação explícita da noção de

contexto e a sua não-associação aos demais elementos dos sistemas colaborativos {Borges, 2006 32 /id}.

No entanto, o contexto é um tema que vem ganhando atenção dos pesquisadores de CSCW, o que é

evidenciado por vários trabalhos recentes, que estudam como o contexto pode ser modelado e gerenciado

em sistemas colaborativos {Borges, 2004 31 /id;Rosa, 2005 228 /id;Kirsch-Pinheiro, 2005 200

/id;Borges, 2006 32 /id;Brézillon, 2005 45 /id;Santoro, 2005 235 /id;Gross, 2003 112 /id;Alarcón, 2005 5

/id}. Esses autores concordam que o conhecimento sobre o contexto no qual ocorre uma determinada

Page 74: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

66

interação pode ser útil para apoiar o trabalho colaborativo através do provimento de informações e

serviços relevantes para aquela situação. Essa adaptabilidade ao contexto é fundamental para que o apoio

ao trabalho em grupo seja efetivo e, com isso, aumente a usabilidade desses sistemas (Alarcón et al.,

2005a).

Os sistemas de groupware atuais apresentam muitos casos de sucesso, porém apresentam um

número bem maior de falhas, evidenciadas em problemas de usabilidade desses sistemas. Uma das causas

dos problemas de usabilidade é que o foco principal dos projetistas de groupware ainda está nas

ferramentas e na tecnologia por trás dessas ferramentas. Grudin (Grudin, 1994) identificou 8 desafios para

os desenvolvedores de groupware. Dentre esses, ele destaca a necessidade de levar em consideração não

apenas fatores tecnológicos no projeto, mas também a dinâmica social em que a atividade do grupo

ocorre, como fatores sociais, políticos, econômicos e culturais. As aplicações de groupware, em geral,

não consideram o amplo contexto social em que a interação ocorre, assumindo uma estrutura de papéis

estável e imutável (Alarcón et al., 2005a).

Como destacado em (Brézillon e Araújo, 2005), criar um ambiente de trabalho colaborativo efetivo

é uma questão de facilitar o contato e a comunicação entre os atores, a compreensão mútua e o

compartilhamento do conhecimento. O uso do contexto pode ser bastante útil para viabilizar todas essas

tarefas e, com isso, aumentar a produtividade do grupo, a qualidade do trabalho, e tornar os usuários mais

motivados a interagir. As informações contextuais constituem as condições relacionadas à atividade atual

dos usuários e como as ações dos seus colegas modificam tais condições. Essas informações são providas

aos membros do grupo para que possam compreender como suas ações se enquadram em relação aos

objetivos do grupo (Gutwin e Greenberg, 2002).

A efetividade e a produtividade de um grupo tem forte relação com a compreensão de uma dada

situação em que os usuários estão (Brézillon e Araújo, 2005). Conhecer o contexto que cerca uma

interação é muito útil para os usuários participantes dessa interação, uma vez que facilita o entendimento

dos eventos ocorridos, a comunicação entre os participantes e, consequentemente, a execução do trabalho

da equipe. Além disso, esse conhecimento do contexto ajuda a ampliar a compreensão da interação por

usuários que não participaram da mesma. Usuários que compartilham um contexto possuem mais

facilidades para interpretar dados de uma maneira suficientemente similar para ser útil do que aqueles que

estão em contextos divergentes (Brézillon e Araújo, 2005).

O contexto viabiliza uma compreensão mútua dos eventos ocorridos em uma interação e pode ser

utilizado para apoiar a identificação de convenções dentro do grupo. Convenções para um sistema

colaborativo são regras e padrões estabelecidos dentro do grupo que são comuns e acessíveis a todos os

seus membros e que ajudam os usuários a cooperar de forma mais efetiva (Mark et al., 1997). O contexto

ajuda, também, a estabelecer relações sociais, uma vez que o conhecimento do contexto é uma forma de

estabelecer e reforçar relações de confiança e de reputação entre os membros do grupo (Brézillon e

Araújo, 2005).

Page 75: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

67

6.2. PERCEPÇÃO X CONTEXTO

Quando as pessoas trabalham juntas, de forma colaborativa, é crucial que elas percebam e compreendam

as coisas que acontecem ou aconteceram no contexto do seu grupo, e que sejam relevantes para o

acompanhamento e execução de suas atividades (Vieira, 2003). Essa definição evidencia a relação

existente entre percepção e o conhecimento do contexto do grupo. Brézillon et al. argumentam que, no

domínio de sistemas colaborativos, os conceitos de percepção e contexto não devem ser considerados de

forma separada, mas como complementares (Brézillon et al., 2004). No entanto, as semelhanças e

diferenças entre esses conceitos não são totalmente identificadas.

Contexto refere-se ao conjunto de informações que identificam, limitam e caracterizam uma

situação. Essa situação, em groupware, pode ser a interação entre membros do grupo ou entre um

indivíduo e o ambiente colaborativo, para a execução de tarefas necessárias para atingir os objetivos do

grupo. Essas informações incluem características do grupo (ex. objetivo, composição, distribuição de

tarefas), dos indivíduos (ex. quem são, habilidades, conhecimentos técnicos), da interação em curso (ex.

tarefa sendo executada), do ambiente de trabalho (ex. usuários presentes/disponíveis), entre outras.

A percepção representa um estado mental dos usuários (Sohlenkamp, 1998) e implica um

conhecimento e compreensão do que ocorre ou ocorreu no ambiente de trabalho que seja relevante para o

desenvolvimento das atividades dentro do grupo. Mecanismos de percepção indicam ferramentas e

procedimentos que apóiam os usuários do grupo a alcançar esse estado mental.

Como exemplo, considere um cenário onde um usuário se conecta a uma ferramenta de reunião

eletrônica, inserida em um ambiente de aprendizagem colaborativa, onde diversos outros usuários estão

presentes e discutem um tópico associado a uma disciplina. Os usuários presentes, o assunto em

discussão, a disciplina associada ao assunto, o professor que ministra a disciplina, o moderador

responsável pela discussão e o histórico do que já foi discutido são todas informações contextuais

referentes à atividade colaborativa em curso. Quando o usuário entra no ambiente e toma conhecimento

dessas informações, ele está sendo contextualizado sobre o que está acontecendo e ocorreu no ambiente

durante a sua ausência, para que, dessa forma, ele possa se situar dentro da discussão e participar dela,

colaborando com o grupo. Essa contextualização é a percepção, a qual é viabilizada e fornecida por um

ou mais mecanismos de percepção. Por exemplo, um mecanismo de percepção pode ser responsável por

apresentar ao usuário um resumo das atividades ocorridas durante sua ausência, enquanto outro

mecanismo de percepção envia notificações cada vez que um novo usuário se conecta à ferramenta.

6.3. IDENTIFICAÇÃO DOS ELEMENTOS DE CONTEXTO

Uma questão que surge na aplicação de contexto a groupware é identificar onde e como o contexto pode

ser usado e que tipo de informação pode ser considerada como parte do contexto no ambiente

colaborativo. Quando as pessoas trabalham em grupo não apenas o contexto dos indivíduos deve ser

Page 76: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

68

considerado, mas também o contexto do grupo (Borges et al., 2004). As informações contextuais podem

ser relativas ao ambiente físico dos membros do grupo ou ao ambiente virtual onde eles interagem, bem

como podem ser relativas às próprias pessoas, ao grupo, ou à memória do grupo (interações históricas).

Brézillon et al. classificam o contexto em três diferentes níveis de granularidade, como mostra a

Figura 6.1: o contexto do grupo (ex. porque e como o grupo foi constituído), o contexto dos vários

indivíduos que compõem o grupo (ex. suas habilidades e origens técnicas) e o contexto do projeto ao qual

o grupo está vinculado (ex. o produto a ser construído pela equipe) (Brézillon et al., 2004).

Figura 6.1 – Níveis de contexto em ambientes colaborativos (Brézillon et al., 2004)

O framework conceitual de contexto em groupware (Rosa et al., 2003), explicado na Seção 0,

agrupa os elementos do contexto em cinco dimensões (ver Figura 6.2): pessoas, tarefas a realizar, relações

entre pessoas e tarefas, ambiente e tarefas já realizadas. As informações sobre as pessoas referem-se ao

contexto do indivíduo e ao contexto do grupo que esses indivíduos fazem parte. O contexto do indivíduo

identifica e caracteriza as pessoas que compõem o grupo através de informações como nome, habilidades,

interesses, formação e experiência, localização geográfica, dados pessoais e horários de trabalho. Esse

tipo de contexto, de uma maneira geral, é atendido, mesmo que de forma incompleta, pela maioria das

ferramentas de groupware existentes (Rosa, 2004). O contexto do grupo inclui informações que

identificam e caracterizam os grupos constituídos, como nome, membros, papéis, habilidades, interesses e

experiências prévias do grupo, estrutura organizacional, horário de trabalho e sede geográfica.

As informações sobre as tarefas a realizar identificam e caracterizam as tarefas a serem realizadas

pelo grupo e surgem quando da definição da tarefa. O contexto da tarefa inclui informações como nome,

descrição, objetivo, prazo, pré-requisitos, tecnologia envolvida, homem/hora necessários, ações a serem

realizadas e restrições. As informações sobre as relações entre pessoas e tarefas visam relacionar as

ações de cada membro do grupo durante as interações com as tarefas a serem realizadas e são

caracterizadas pelo contexto da interação e pelo contexto do planejamento. O contexto da interação é

dependente do tipo da interação: (i) em interações síncronas, é composto por informações detalhadas

sobre as tarefas em andamento, como os participantes presentes na interação, as mensagens trocadas ou as

ações realizadas caracterizadas pelo seu autor; (ii) em interações assíncronas, o que muda é a

granularidade da informação, menos detalhada e mais geral, e inclui as alterações ocorridas desde o

último acesso de um membro, caracterizadas pelos autores, objetivos e datas de realização, bem como a

Page 77: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

69

evolução das versões dos artefatos produzidos. O contexto do planejamento representa o plano de ação da

equipe através de informações como papéis dos indivíduos na interação, regras, metas, responsabilidades,

estratégia, procedimentos de coordenação e plano de trabalho, as quais podem ser definidas como produto

das interações, no caso de tarefas realizadas de forma ad hoc, ou, em tarefas programadas, são definidas

quando as tarefas são detalhadas e atribuídas ao grupo.

Figura 6.2 – Composição do contexto de uma atividade (Rosa, 2004)

As informações sobre o ambiente representam o espaço onde ocorrem as interações e onde estão

inseridas as tarefas a serem executadas. Esse contexto é caracterizado por informações como as regras a

serem respeitadas, os padrões de qualidade a serem observados, procedimentos e estratégias

padronizadas, os prazos institucionais, as estruturas organizacionais da instituição, as decisões políticas e

restrições financeiras, a plataforma de hardware e software. Em seu estudo, Rosa não encontrou

ferramentas de groupware que disponibilizassem informações sobre o contexto do ambiente.

As informações sobre as tarefas já realizadas caracterizam as interações passadas, realizadas pelo

próprio grupo ou por outros grupos, e tem por objetivo oferecer subsídios sobre experiências aprendidas

em tarefas já concluídas, e permitir que o grupo entenda de que forma as tarefas já concluídas foram

realizadas, além dos fatores que influenciaram a execução. Essas informações constituem o contexto

histórico e incluem a composição da equipe, a especificação da tarefa, a elaboração do planejamento da

execução e a execução da tarefa. Para isso são descritos o nome da tarefa, seu objetivo, plano de trabalho,

ações realizadas, o autor, objetivo e justificativa de cada ação, a data de realização, versões de artefatos e

outras informações utilizadas na execução da tarefa.

Alarcón et al. identificam, de uma forma geral, que os elementos comuns mínimos para determinar

o contexto de um grupo são pessoas, tarefas ou projetos, e recursos (Alarcón et al., 2005b). Informações

de contexto das pessoas incluem conhecimento da organização dos membros no grupo, papéis e

responsabilidades, localização física ou virtual da pessoa, presença, co-presença, distância entre membros

do grupo, proximidade, visibilidade, disponibilidade, estados emocionais do usuário e ações executadas

pelos outros membros do grupo. O contexto da tarefa inclui conhecimento sobre a estrutura e distribuição

Page 78: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

70

das tarefas no projeto, e o estado de execução das tarefas pelos membros do grupo (ex. em execução,

finalizada, a executar). O contexto dos recursos implica em conhecer os recursos disponíveis para o

grupo, sua localização e formas de utilizá-los. Os recursos disponíveis em um grupo podem ser conceitos,

informações (ex. documentos e figuras), artefatos de software, artefatos de trabalho (ex. modelos de

documento), representações de objetos físicos (ex. o endereço IP de uma impressora compartilhada), ou,

ainda, recursos humanos como especialidades, conhecimento, e interesses dos membros do grupo

(Alarcón et al., 2005b).

Kirsch-Pinheiro et al. (Kirsch-Pinheiro et al., 2004) propõem um mecanismo de percepção baseado

em contexto que filtra as informações entregues ao usuário de acordo com uma descrição contextual. O

contexto é representado através de cinco entidades principais: espaço, indica a localização física;

ferramenta, refere-se aos dispositivos físicos e aplicações; tempo, calendário de trabalho do grupo;

comunidade, composição da comunidade incluindo o grupo, os usuários e os papéis; e processo, fluxo de

trabalho executado pelo grupo, incluindo conceitos de atividades e artefatos compartilhados. A partir

desses conceitos principais, foi definida a estrutura de representação de contextos ilustrada na Figura 6.3.

Figura 6.3 – Representação de contexto proposta por Kirsch-Pinheiro et al. (Kirsch-Pinheiro et al., 2004)

6.4. PROCESSAMENTO DO CONTEXTO

Borges et al. propõem um modelo de processamento do conhecimento contextual segundo o qual as

pessoas criam individualmente o conhecimento, o qual é comunicado ao resto do grupo, apresentado em

uma interface gráfica com o usuário e, eventualmente, armazenado (Borges et al., 2004). O modelo

ilustrado na Figura 6.4 se divide em 6 etapas: (1) geração ou construção do conhecimento, ocorre quando

uma pessoa realiza alguma contribuição repassando conhecimento para o grupo; (2) captura, consiste na

obtenção de dados da etapa de geração, como presença e disponibilidade dos indivíduos, movimentação

do mouse ou imagem de uma câmera; (3) percepção, indica o processamento, filtragem e agregação das

informações obtidas dos passos de geração, captura e armazenamento para que sejam fornecidas aos

demais participantes; (4) armazenamento, refere-se à persistência das informações produzidas para

garantir a memória do grupo; (5) visualização, refere-se à exibição da informação para o usuário através

de uma interface gráfica; (6) interpretação, implica na internalização do conhecimento pelos indivíduos

Page 79: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

71

do grupo, que ocorre quando uma pessoa assimila em conhecimento a informação visualizada e seu

contexto individual.

Figura 6.4 – Processamento do contexto no trabalho em grupo (Borges et al., 2004)

Tornar o contexto explícito serve para prover o raciocínio, a lógica utilizada no desenvolvimento

do trabalho colaborativo, sendo uma forma de lembrar o modo como uma solução foi desenvolvida, as

alternativas no momento em que a solução foi construída e as restrições existentes (Borges et al., 2004).

6.5. OUTRAS QUESTÕES ASSOCIADAS A CONTEXTO NO TRABALHO EM GRUPO

O uso do contexto em ambientes de trabalho em grupo traz desafios adicionais em relação ao que ocorre

em outros domínios, onde apenas o contexto de um indivíduo é considerado. Dentre esses desafios estão o

contexto compartilhado, o descasamento de contexto e a perda de contexto, descritos a seguir.

6.5.1. Contexto Compartilhado

Na solução conjunta de um problema, os membros do grupo tentam alinhar seus contextos individuais de

modo a torná-los compatíveis com o contexto compartilhado do grupo (Brézillon, 2005). Santoro et al.

definem contexto compartilhado como um espaço de conhecimento compartilhado que é explorado e

utilizado pelos participantes (Santoro et al., 2005).

O estabelecimento de um contexto compartilhado se torna mais difícil proporcionalmente ao

tamanho do grupo. Assim, grupos pequenos, coesos, bem formados e estruturados possuem maior

facilidade na construção de um contexto compartilhado. A natureza de formação do grupo também

influencia a construção do contexto compartilhado. Os grupos podem ser permanentes ou temporários

(Brézillon, 2005). Grupos permanentes seguem uma hierarquia estática dentro da organização, como por

exemplo, os funcionários pertencentes a um departamento. Grupos temporários surgem ou são criados em

virtude de oportunidades ou problemas que atingem a organização, e são desfeitos tão logo o problema

Page 80: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

72

seja solucionado (Brézillon, 2005). O contexto compartilhado associado a um grupo permanente

apresenta um conjunto estável de conhecimento contextual. Por outro lado, o contexto compartilhado de

grupos temporários são construídos em tempo de execução, cada vez que um problema ou oportunidade

aparece, a partir do contexto compartilhado da organização e dos grupos permanentes de onde vêm os

membros dos grupos temporários (Brézillon, 2005).

Os membros do grupo podem compartilhar elementos contextuais dos seus contextos individuais

para construir colaborativamente um contexto proceduralizado para a solução de uma tarefa em um

contexto de interação. O compartilhamento do contexto não significa desenvolver uma visão idêntica da

solução para todos os participantes, mas criar visões compatíveis desses participantes sobre uma solução

(Brézillon, 2005). A Figura 6.5 ilustra uma representação do contexto compartilhado gerado a partir dos

conhecimentos individuais de dois participantes em uma interação. O contexto compartilhado é a

interseção dos contextos individuais, é o conhecimento comum aos dois indivíduos necessário para a

resolução do problema ou execução da tarefa. As informações que fazem parte do contexto

proceduralizado na execução colaborativa da tarefa se tornam parte do conhecimento contextual

compartilhado dos indivíduos (Santoro et al., 2005).

Figura 6.5 – Construção do contexto compartilhado na interação entre dois participantes (Brézillon, 2003a)

6.5.2. Descasamento de Contexto

No trabalho em grupo é importante desenvolver um contexto compartilhado robusto e coeso. Uma

compreensão comum desse contexto externo deve ser reforçada entre os membros antes do começo das

interações do grupo e todas as diferenças na compreensão do contexto devem ser identificadas e

reduzidas. Se houverem discrepâncias na compreensão do contexto externo e do contexto compartilhado

que não sejam resolvidas antes do início das atividades, elas provavelmente aparecerão durante a

interação, paralisando-a até que as questões sejam resolvidas. Borges et al. denominaram essas diferenças

na compreensão do contexto por membros de um grupo como descasamento de contexto (context

mismatch) {Borges, 2006 32 /id}. Descasamento de contexto significa, pois, uma falha na construção de

um contexto compartilhado coeso, o que significa que não há interseção entre os contextos individuais.

Page 81: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

73

6.5.3. Perda de Contexto

Um tipo de contexto relevante refere-se às atividades executadas durante a tarefa, ou o contexto da tarefa,

que é o contexto relativo aos artefatos pertinentes para sua execução. Durante uma interação, uma perda

de contexto temporária pode ocorrer, resultante da ausência de um indivíduo ou da ambigüidade de

alguma ação. Enquanto o contexto externo é normalmente processado fora da interação monitorada, o

sistema deve prover suporte interno para se recuperar de uma perda de contexto {Borges, 2006 32 /id}.

Mecanismos de percepção podem ser utilizados para lidar com a perda temporária de contexto. No

entanto, os participantes da tarefa devem compartilhar um mesmo contexto geral, ou seja, eles devem

compreender e concordar com o contexto do grupo (ex. papéis), da tarefa (ex. prazos e objetivos) e da

organização (ex. cultura e hierarquia). Por exemplo, não adianta saber que um participante chamado João

contribuiu em uma discussão ou realizou uma ação sobre um artefato compartilhado que causou impacto

na atividade de um outro participante chamado José, se José não sabe quem é João ou qual é o seu papel

dentro da tarefa {Borges, 2006 32 /id}.

6.6. USO DE CONTEXTO EM SISTEMAS COLABORATIVOS

Esta seção apresenta alguns trabalhos que tratam explicitamente do uso de contexto em groupware.

Percebe-se que o uso de contexto aparece fortemente associado a mecanismos de percepção seletiva ou a

groupware móvel. Além desses, contexto é usado para apoiar recomendações em ferramentas de

groupware.

6.6.1. Mecanismos de Percepção Contextual

A percepção contextual utiliza o conceito de contextos para determinar que tipo de informação os

usuários desejam e de que forma eles podem estar atentos, de modo a separar informações de percepção

das informações de “perturbação” (Liechti, 2000). Nesse tipo de percepção deve-se identificar quais são

as pessoas do grupo e que artefatos eles estão interessados, de modo que somente um subconjunto dos

eventos possa ser identificado como crítico e notificado ao usuário.

Como discutido na Seção 2.3.4, um dos desafios no desenvolvimento de mecanismos de percepção

é evitar que os usuários sejam sobrecarregados com um grande volume de informações de percepção, que

desviem sua atenção. A percepção para ser efetiva deve atingir a visão periférica do usuário e as

informações devem ser absorvidas sem um esforço consciente que desvie o foco de atenção da tarefa em

execução. O contexto tem um papel fundamental no apoio à percepção periférica, pois permite que o

mecanismo de percepção conheça a situação atual do usuário. Dessa maneira, o mecanismo pode adaptar

sua funcionalidade filtrando informações irrelevantes nesse contexto ou alterando a forma de exibição das

informações ou, ainda, omitindo informações em um determinado momento em que o usuário não está

disponível para recebê-las, apresentando-as em um momento posterior. Esses mecanismos são

denominados mecanismos de percepção contextual.

Page 82: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

74

Os artefatos compartilhados devem se adaptar a situações de trabalho que se modificam

continuamente, através do provimento de informações de percepção com diferentes focos. Uma vez que

qualquer noção de uma situação de trabalho necessariamente é relativa a práticas pessoais de trabalho, o

sistema deve permitir que os usuários adequem individualmente quando, como e onde as informações de

percepção devem ser providas (Mark et al., 1997).

Trabalhos mais atuais como (Gauvin et al., 2004) usam o termo percepção situacional (situational

awareness) para esse tipo de percepção, que usa o contexto do trabalho para prover percepção

personalizada de acordo com uma determinada situação. Nesse trabalho, eles propõem um portal de

conhecimento com percepção situacional que visa prover cada indivíduo com uma área de conhecimento

customizada (denominada portfólio), orientada a missões, que forneça acesso a informações corretas

provenientes de múltiplas fontes no contexto do trabalho. Para isso, eles usam ontologias para prover

integração semântica entre os recursos das diversas fontes.

O contexto em que ocorrem as ações depende fortemente da intenção da pessoa que executou tal

ação. De modo a tornar esse contexto acessível a outras pessoas, ele deve ser explicado ou classificado

pelo próprio executor. Uma abordagem utilizada para explicar o contexto de uma ação visando uma

compreensão mútua desse contexto é chamada mecanismo de percepção informacional (Dourish e

Bellotti, 1992). Nesse modelo, os colegas podem informar uns aos outros sobre suas atividades através de

funcionalidades explícitas, como arquivos de log compartilhados. Porém, prover uma auto-descrição para

cada ação relevante executada implica em um aumento significativo no volume de trabalho o que pode

sobrecarregar o usuário e tornar a tarefa inviável, acarretando no que Grudin classificou como problema

da disparidade entre trabalho e benefício (Grudin, 1994).

No entanto, o usuário deve ter uma participação ativa na explicação das suas intenções e dos

contextos a que suas ações pertencem, uma vez que nem sempre essas intenções podem ser inferidas a

partir das suas ações físicas. Dessa maneira, ferramentas que lidem com a percepção contextualizada

devem apoiar o usuário tanto quanto possível e reduzir a um volume mínimo a quantidade extra de

trabalho necessária para criar a informação contextual.

Em (Rittenbruch, 1999) é introduzido o conceito de mecanismo de percepção seletiva por contexto.

Rittenbruch argumenta que em interações síncronas os membros do grupo têm condições de compreender

o contexto em que está ocorrendo uma dada ação, seja pelos eventos que estão ocorrendo no espaço

compartilhado, ou pela comunicação imediata com os participantes da interação. Porém, em interações

assíncronas, onde pode haver um grande intervalo de tempo entre a ocorrência da ação e a sua

comunicação para um determinado membro do grupo, não é trivial comunicar o contexto em que a ação

se deu. Com isso, em geral, a forma de contextualizar ações ocorridas em interações assíncronas é através

de um modelo de eventos que é atualizado sempre que os usuários executam ações que manipulem

artefatos compartilhados (como documentos de texto, classes em diagramas UML). Uma conseqüência

desse modelo de percepção é que fatalmente o usuário será sobrecarregado com um grande volume de

eventos, muitos dos quais totalmente irrelevantes para sua contextualização.

Page 83: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

75

Para resolver esse problema, Rittenbruch propõe a representação de contexto nos sistemas

colaborativos e a associação de informações relevantes para a percepção a esses contextos, através do

Atmosphere. O Atmosphere utiliza contextos pré-definidos, chamados de esferas (spheres), os quais

permitem que usuários ou grupos de usuários configurem previamente o contexto e, ao executar uma

ação, selecionem o contexto apropriado dentro do qual a ação se insere. As esferas podem ser

configuradas conjuntamente e são ordenadas de forma hierárquica. A configuração de uma esfera é

flexível e pode representar contextos organizacionais (como unidades ou departamentos) ou contextos

sociais ou físicos (como tempo ou espaço). Uma esfera contém o conjunto dos artefatos compartilhados,

possíveis sub-esferas e um conjunto do que eles chamam de contextors, que representam o nível de

granularidade mais baixo de uma esfera. Enquanto as esferas representam contextos particulares, os

contextors representam ações (que podem ser relativas a tarefas) dentro desse contexto específico. Ao

executar uma ação, ou um conjunto de ações, sobre um artefato que é representado em uma esfera

particular, o usuário pode escolher um contextor para classificar a ação executada em um nível menor de

granularidade. Em relação a eventos, os contextors e suas esferas superiores podem ser compreendidos

como dicas de eventos.

No sistema POLITeam (Mark et al., 1997) é utilizado o conceito de situações de trabalho para

permitir que usuários especifiquem perfis de percepção, que apóiem o sistema na filtragem seletiva das

informações de percepção. Para isso, um artefato compartilhado, como um documento, define um número

de atividades bem como uma variedade de situações de trabalho (alguns exemplos aparecem na Tabela

6.1) as quais podem ser selecionadas pelo usuário para adequar suas preferências pessoais de percepção à

sua prática individual de trabalho.

Tabela 6.1 - Exemplos de situações de trabalho onde usuários podem receber informações de percepção relacionadas a um documento (Mark et al., 1997)

Essas situações de trabalho são dinâmicas e não devem ser restritas apenas a ações executadas

sobre o artefato alvo em si, mas deve incluir ações sobre artefatos que compartilhem relacionamentos ou

similaridades no domínio da aplicação. Os detalhes sobre preferências de percepção podem ser definidos

usando perfis de percepção, que podem ser anexados a um artefato ou a um conjunto de artefatos. O

sistema realiza a notificação de eventos apenas em situações que casem com um conjunto de perfis aos

quais o usuário estiver inscrito. Por exemplo, o usuário pode configurar a seguinte preferência: “sempre

que eu abrir qualquer documento, eu gostaria de ver o que ocorreu em outros documentos que pertencem

ao mesmo processo” (Mark et al., 1997).

Page 84: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

76

A infra-estrutura ENI (Event and Notification Infrastructure) é um ambiente de percepção genérico

e extensível, baseado em eventos (Gross e Prinz, 2003). Avaliações feitas com os usuários do ENI

revelaram que a informação de percepção nem sempre era provida em uma situação de muita utilidade, e

que algumas vezes a informação era reduzida e em outras muito detalhada. A partir desses estudos Gross

e Prinz (Gross e Prinz, 2003) definiram requisitos que os ambientes de percepção devem seguir para

prover suporte à percepção em um grupo: (1) Personalizar e adaptar o tipo da informação de percepção e

sua forma de apresentação à situação atual do usuário, levando em consideração questões como sua tarefa

atual, o tipo da interação (síncrona ou assíncrona), os artefatos e as ferramentas em uso; (2) Prover não

apenas a informação de percepção em si, mas também informações sobre o seu contexto de origem. Para

atender a esses requisitos, o sistema deve conhecer ou deduzir o contexto de origem de um evento e o

contexto atual de trabalho do usuário que será notificado e deve permitir que o usuário especifique em

qual situação ele deseja ser informado sobre os eventos de um contexto específico e em qual formato

específico. A Figura 6.6 apresenta os passos para obtenção desse contexto: os passos 1 e 3 ilustram a

associação de um evento a um contexto, no momento da criação do evento; e o passo 2 ilustra a

associação de usuários a seu contexto de trabalho atual, baseado em suas atividades atuais.

Figura 6.6 – Passos para inclusão do contexto de percepção no ENI (Gross e Prinz, 2003)

Kirsch-Pinheiro et al. propõem um processo de filtragem de eventos que contenham informações

de percepção sensível ao contexto do usuário {Kirsch-Pinheiro, 2005 200 /id} e um modelo de acesso

progressivo às informações de percepção (Kirsch-Pinheiro et al., 2003). A idéia é utilizar o contexto para

possibilitar que os mecanismos de percepção se adaptem às necessidades atuais de cada usuário, provendo

informações de percepção que sejam úteis e essenciais para aquele usuário em relação à tarefa que ele

está executando no momento e o papel que está desempenhando no grupo. O acesso progressivo visa

separar as informações para percepção em níveis de importância, e apresentar aos usuários,

prioritariamente, as informações dos níveis mais altos. Caso o usuário deseje ele pode, progressivamente,

adquirir mais percepção através de consultas aos demais níveis.

Page 85: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

77

6.6.2. CO2DE

O CO2DE (Collaborate to Design) é um groupware que permite o desenvolvimento colaborativo por um

grupo de usuários conectados a uma sessão, do diagrama de colaboração especificado pela UML 1.3

(Meire, 2003). O CO2DE possibilita a edição colaborativa síncrona através de uma interface WYSIWIS

(What You See Is What I See), ou seja, todos os participantes possuem uma mesma visão do diagrama e

podem trabalhar simultaneamente em sua criação. Para lidar com possíveis conflitos durante a edição, o

CO2DE permite que diversas versões do diagrama coexistam, através de um conceito denominado

máscaras.

Em experimento realizado por Meire, os participantes apontaram dificuldades enfrentadas pela

ausência de informações do contexto da interação como a identificação da máscara onde os demais

participantes estariam trabalhando dentro da sessão. Outra dificuldade apontada foi relacionada ao

entendimento da tarefa a ser executada, pois o CO2DE não disponibiliza informações do contexto da

tarefa (Meire, 2003). Além disso, o sistema não guarda o contexto em que cada versão foi criada, como

qual foi o conflito ou o raciocínio por trás da criação de uma nova versão {Borges, 2006 32 /id}.

A aplicação de contexto ao CO2DE foi implementada como validação do framework conceitual de

contexto em groupware (Rosa, 2004). Foram implementados na ferramenta os seguintes requisitos de

contexto (Rosa, 2004): (i) Possibilitar cadastro prévio dos usuários com informações que os identifiquem

e caracterizem; (ii) Permitir o login em uma sessão de modelagem somente para usuários previamente

cadastrados; (iii) Permitir, durante a interação, identificar os outros participantes da sessão; (iv) Permitir,

durante a interação, consulta às informações dos outros membros do grupo que participam da sessão de

trabalho; (v) Solicitar que o coordenador do grupo informe o objetivo da tarefa e detalhes sobre sua forma

de execução; (vi) Permitir a criação dos diagramas através da geração de máscaras intermediárias; (vii)

Solicitar informações que permitam identificar e caracterizar cada máscara criada; (viii) Identificar em

que máscara cada participante da interação está trabalhando; (ix) Disponibilizar o objetivo de cada

máscara criada; (x) Permitir a troca de mensagens entre os usuários durante uma interação; e (xi)

Possibilitar a consulta às mensagens já trocadas durante a interação.

Para avaliar o uso do contexto no CO2DE foi realizado um experimento com a ferramenta, dividido

em duas etapas: (1) sem os recursos de contexto (no caso, os recursos de versionamento baseado em

máscaras e de anotações); e (2) com esses recursos habilitados (Rosa et al., 2005). A análise dos

resultados do experimento permitiram que eles identificassem indícios de que a disponibilização de

mecanismos para acesso às informações sobre o contexto da interação ajuda os membros do grupo,

potencializando a cooperação. Constataram, também, que interações síncronas e assíncronas necessitam

de diferentes informações para contextualização (Rosa et al., 2005).

6.6.3. ConChat

Comunicações mediadas por dispositivos perdem muito do contexto que cerca as pessoas que estão

interagindo. “Aumentar a comunicação mediada por dispositivos com informações contextuais enriquece

Page 86: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

78

a interação dos usuários” (Ranganathan e Lei, 2003). Os programas de comunicação atuais, como chat ou

mensagens instantâneas, permitem que os usuários indiquem seu estado, como “disponível”, “ocupado”,

“ao telefone”, “em horário de almoço”. O MSN (Microsoft, 2003) permite, ainda, que usuários saibam

que música seus amigos estão ouvindo no momento, através do compartilhamento de informações entre o

MSN e o programa executor de áudio em uso na estação do usuário. Porém, o conjunto de informações

contextuais disponíveis nesses programas ainda é muito limitado.

ConChat é um programa de conversação que enriquece a comunicação eletrônica por meio de

informações contextuais e pela resolução de potenciais conflitos semânticos entre usuários (Ranganathan

et al., 2002). O ConChat permite que os usuários consultem o contexto dos demais usuários através de um

canal de contexto separado do canal de conversação. O contexto pode ajudar o usuário a entender porque

o outro está demorando muito para responder (está ao telefone, conversando com outra pessoa ou

envolvido em uma atividade urgente), e pode ajudar a esclarecer possíveis conflitos semânticos que

tornem as mensagens ambíguas.

As informações contextuais usadas no ConChat são mantidas e gerenciadas através da infra-

estrutura Gaia (ver Seção 5.2.6) e utiliza seu modelo de representação de contexto. As informações

contextuais existentes e tratadas no ConChat são: localização dos usuários, número de outras pessoas na

sala física onde o usuário se encontra, identidade dessas outras pessoas, temperatura, luz e som da sala,

outras aplicações e dispositivos em execução na sala, humor dos usuários (ex. feliz, triste ou empolgado),

estado dos usuários (ex. em almoço ou ao telefone), e atividade na sala (ex. reunião ou apresentação)

(Ranganathan et al., 2002).

A Figura 6.7 apresenta uma visão geral da arquitetura do ConChat. O cenário apresenta dois

usuários A e B cada qual em um ambiente de computação pervasiva. Usuários se registram a um servidor

central, através do qual encontram os usuários com os quais desejam estabelecer a comunicação. Cada

instância do ConChat contacta o motor de contexto e obtém referências de provedores dos contextos do

seu interesse e pode se inscrever para obter informações sobre atualizações desses contextos. Se o

ConChat do usuário B desejar saber informações sobre o usuário A, ele pode enviar uma consulta ao

ConChat de A, o qual irá processar essa consulta e retornar ao ConChat de B os resultados. O ConChat de

B também poderá solicitar ao ConChat de A que seja notificado sempre que ocorrer uma determinada

mudança no contexto de A. Por exemplo, o ConChat de B pode solicitar que seja notificado sempre que

uma outra pessoa entrar na sala onde o ConChat de A está sendo executado. Para diminuir questões

relacionadas à privacidade, os usuários podem configurar quais informações contextuais podem ser

notificadas a outros usuários, através de uma tabela de controle de acessos.

Page 87: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

79

Figura 6.7 - Arquitetura do ConChat (Ranganathan et al., 2002)

O ConChat trata alguns conflitos semânticos relacionados à escala, como o uso de diferentes

sistemas de medida; ao tempo, como diferentes fusos horários; a formatos de data e de moeda, diferentes

unidades, além de resolver termos simples como football (que possui diferentes significados para

moradores dos EUA ou da Europa). Todos esses conflitos são dependentes da localização dos usuários

envolvidos. A Figura 6.8 mostra um exemplo de uma interface do ConChat. No campo de mensagem, o

texto (!-8:00 (PST)!) foi inserido pelo ConChat para esclarecer o fuso horário do usuário Amelie.

Figura 6.8 – Interface do ConChat (Ranganathan et al., 2002)

6.6.4. Contexto em Sistemas Colaborativos Móveis

Com a expansão das tecnologias de comunicação e dos dispositivos móveis, e o aumento em seu poder de

processamento, diversas áreas da computação vêm estudando como desenvolver sistemas para esse tipo

de plataforma. Na área de CSCW, trabalhos recentes investigam a criação e adaptação de sistemas de

Page 88: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

80

groupware para dispositivos móveis, levando em consideração a necessidade de apoiar membros do

grupo que se deslocam frequentemente (Luff e Heath, 1998; Costa e Antunes, 2002; Filippo et al., 2005;

Alarcón et al., 2005a).

Nesse cenário, surgem alguns novos requisitos para o projetista do groupware, como lidar com

limitações de tamanho da tela, memória disponível, capacidade da bateria, velocidade do processador,

facilidades de entrada. Além disso, é fundamental o tratamento do contexto atual de uso desses

dispositivos, pois ele muda constantemente (Alarcón et al., 2005a).

Alarcón et al. desenvolveram um framework de elementos contextuais para sistemas colaborativos

em cenários móveis, classificado em seis contextos: contexto do cenário físico, contexto social, contexto

computacional, contexto da interação, contexto do suporte tecnológico e contexto da tarefa em andamento

(Alarcón et al., 2005a).

O AulaNetM (Filippo et al., 2005) é uma extensão ao ambiente de aprendizado colaborativo

AulaNet (Fuks et al., 2002) para tornar possível o uso de recursos de mobilidade. Um dos fatores

importantes no desenvolvimento do AulaNetM é o mapeamento das informações de contexto relevantes

para o ambiente de aprendizado (Figura 6.9). O contexto permite aos alunos uma melhor compreensão

dos objetivos do seu estudo, que os auxiliará a decidir suas próximas ações.

Figura 6.9 – Inclusão do contexto ao Modelo 3C no AulaNetM (Filippo et al., 2005)

6.6.5. Serviços de Recomendação Sensíveis ao Contexto

Um exemplo de como contexto pode ser aplicado em um sistema colaborativo é o de

recomendação baseada em análise de conteúdo e contexto. Esse tipo de recomendação foi observada no

sistema de gerenciamento de emails fornecido pela Google, o GMail (Google, 2006). O GMail mantém

uma área de propaganda periférica em seus sistemas, embutida na tela de visualização dos emails. Essas

propagandas são sensíveis ao conteúdo da mensagem de email que o usuário está lendo, como mostra a

Figura 6.10. Percebe-se que o texto fala sobre a elaboração de uma monografia de pós-graduação com

tema na área de data warehouse. Desse modo, as propagandas exibidas (área sponsored links) exibem

sugestões de páginas comerciais relacionadas à elaboração de monografias ou a data warehouse.

Page 89: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

81

Figura 6.10 – Propaganda sensível ao contexto no GMail

Em um ambiente de aprendizado colaborativo, por exemplo, o contexto pode viabilizar serviços

como a recomendação de material didático compatível com o nível dos usuários e com os pontos da

discussão onde ocorreram maiores dúvidas. Além disso, o contexto pode apoiar a formação de grupos de

trabalho, sugerindo indivíduos que possuam perfis complementares para compor grupos, levando em

conta o contexto do grupo, da tarefa e dos indivíduos envolvidos. Adicionalmente, ele pode recomendar

grupos de trabalho ou especialistas que possam colaborar com a atividade em curso.

6.7. CONSIDERAÇÕES FINAIS

Inserir contexto em sistemas colaborativos traz os mesmos requisitos e desafios identificados no Capítulo

3 para sistemas cientes de contexto em outras áreas, como Computação Ubíqua. Porém, em sistemas

colaborativos os desafios são ampliados com a necessidade de considerar não apenas contextos dos

indivíduos, mas contextos do grupo, do projeto e da tarefa em que o indivíduo está engajado.

Este capítulo discutiu as questões associadas à inclusão de contexto em sistemas colaborativos.

Para isso foi feita uma diferenciação entre contexto e percepção, foram apresentadas algumas propostas

para identificação do que considerar como contexto em sistemas colaborativos, foram abordadas questões

específicas de contexto associados à área de sistemas colaborativos, como contexto compartilhado,

descasamento e perda de contexto, e foi ilustrado o uso do contexto em algumas ferramentas, relacionadas

à percepção seletiva, groupware móvel e recomendações em groupware.

O uso de contexto em groupware difere bastante do uso de contexto em computação ubíqua, pois

esse tipo de aplicação se baseia muito no uso de sensores físicos para aquisição do contexto, uma vez que

as informações sobre o ambiente físico do usuário são as mais relevantes. Em groupware, pouca

Page 90: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

82

informação sobre o ambiente físico do usuário é realmente relevante. Informações sobre o ambiente

virtual em que o usuário está trabalhando e informações sobre a organização do grupo, como os

componentes, divisão de tarefas, prazos, entre outros, são as informações contextuais de interesse. Porém,

não existem padrões para essas informações, como ocorre com as informações do ambiente físico.

As informações contextuais devem, sempre que possível, ser obtidas de forma automática. Porém,

como esse tipo de aquisição pode gerar incertezas é necessário que o usuário também participe validando

as deduções e inferências feitas pelo sistema. Em groupware, devido à natureza da informação e à

ausência de padrões para os dados de contexto, exige-se uma maior participação do usuário na aquisição

do contexto, fornecendo previamente informações que auxiliem o sistema a entender quem é esse usuário,

quais as características do grupo que ele participa, e detalhes sobre suas tarefas associadas. Essa demanda

extra de preenchimento de informações pode desmotivar o usuário a utilizar a ferramenta ou pode levá-lo

a preencher de forma errônea ou incompleta, apenas para “se livrar logo” da tarefa. Os benefícios no uso

do contexto deve ser percebido logo pelo usuário para motivá-lo a continuar alimentando o sistema.

Ainda não há muitos resultados concretos no que diz respeito ao gerenciamento de contexto em

sistemas colaborativos. Pesquisadores indicam que são necessárias experiências práticas do uso do

contexto, para que essa prática enriqueça as discussões teóricas. Esta pesquisa parte desse ponto e tem

como objetivo prover um mecanismo para gerenciamento de contexto que gerenciar informações

contextuais provenientes de ambientes de trabalho colaborativo. A proposta deste trabalho é detalhada no

próximo capítulo.

Page 91: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

83

CAPÍTULO 7

Um Framework para Gerenciamento de Contexto em Sistemas Colaborativos

Este capítulo descreve a proposta desta tese para lidar com o problema de gerenciamento de contexto em

sistemas colaborativos. Para isso, são apresentados na Seção 7.1 a motivação para realização deste

trabalho e os objetivos que se deseja alcançar. A Seção 7.2 define alguns conceitos utilizados na proposta.

Na Seção 7.3 é apresentado o framework proposto para gerenciamento de contexto em sistemas

colaborativos, denominado CoMGroup; são detalhados os componentes da sua arquitetura e a ontologia

proposta para representação dos contextos. As seções subseqüentes apresentam, respectivamente, a

metodologia para a continuidade desta pesquisa, as atividades realizadas, o cronograma de

desenvolvimento das atividades futuras e as contribuições esperadas com o trabalho.

7.1. MOTIVAÇÃO E OBJETIVOS DO TRABALHO

A atividade colaborativa exige uma compreensão das ações realizadas pelos integrantes do grupo. Isso é

especialmente verdadeiro em organizações onde as pessoas se dividem em mais de um projeto, com

prazos de execução cada vez menores. Os mecanismos de apoio à percepção desenvolvidos e integrados a

ferramentas de groupware visam apoiar essa compreensão do trabalho do grupo. Porém, os mecanismos

atuais são baseados em eventos ocorridos dentro do grupo e manipulam uma grande quantidade de

informação que cresce exponencialmente à medida que aumenta o tamanho do grupo ou o fluxo de

atividades. As pessoas gastam muito tempo em atividades não diretamente relacionadas às suas tarefas

dentro do grupo, como: ler e responder uma quantidade cada vez maior de emails para notificar os

colegas sobre suas atividades e contextualizar-se sobre as atividades deles; gerenciar versões de

documentos para uniformizar os esforços de trabalho conjunto; ou coordenar suas atividades em relação

aos prazos do grupo e às atividades executadas pelos demais.

Entender o contexto em que ocorre uma determinada interação auxilia o indivíduo a responder de

uma maneira mais apropriada à situação. Uma funcionalidade desejada dos sistemas computacionais, e

que vem atraindo cada vez mais a atenção dos pesquisadores, é dotar esses sistemas com informações de

contexto que permitam que eles se adaptem, alterando seu comportamento, para atender a demandas do

usuário, oferecendo informações e serviços que sejam do seu interesse (Huang, 2002).

O contexto é um instrumento poderoso para viabilizar a disseminação de informações relevantes

pois, considerando o contexto atual do usuário, a informação pode ser filtrada de acordo com o que é mais

importante naquela situação. A informação assim deixa de ser estática e passa a ser dinâmica, uma vez

que o contexto do usuário muda continuamente (Belotti et al., 2004b). O conjunto de funcionalidades do

Page 92: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

84

sistema também pode ser ajustado ao contexto do usuário, sendo habilitadas ou destacadas as mais

relevantes. A adaptabilidade ao contexto é fundamental para que o apoio ao trabalho em grupo seja

efetivo e, com isso, aumente a usabilidade dos sistemas colaborativos (Borges et al., 2004).

Para reduzir a complexidade inerente ao desenvolvimento de sistemas cientes de contexto uma

tendência que vem se apresentando na literatura é a criação de mecanismos de gerenciamento de

contextos. Alguns trabalhos vêm sendo realizados para tratar desse problema, através do desenvolvimento

de toolkit (Dey et al., 2001), framework (Rittenbruch, 2002; Rosa et al., 2003), middleware (Ranganathan

e Campbell, 2003; Gu et al., 2004b) ou motor de contexto (Belotti et al., 2004b). Essas soluções

objetivam facilitar o desenvolvimento de sistemas cientes de contexto, provendo modelos e mecanismos

universais para gerenciamento dos contextos e desacoplando da composição do sistema tarefas como

aquisição, representação, processamento e disseminação do contexto (Gauvin et al., 2004).

Poucas pesquisas abordam mecanismos de gerenciamento de contexto voltados para sistemas

colaborativos e, nesses casos, o contexto se confunde com o conceito de percepção (Dourish e Bellotti,

1992), como é o caso dos mecanismos de percepção apresentados na Seção 2.3.5 (Prinz, 1999; Kirsch-

Pinheiro et al., 2002; Vieira et al., 2004). Falta uma representação formal do contexto voltada para

ambientes colaborativos que viabilize a integração de contextos provenientes de fontes diversas e seu uso

por diferentes sistemas. Um mecanismo genérico de gerenciamento de contexto com um modelo formal

de representação viabiliza a obtenção de informações contextuais provenientes de diferentes aplicações

que podem ser confrontadas e analisadas. Essa possibilidade é interessante, pois os usuários costumam

utilizar diferentes aplicações para apoiá-los na execução do trabalho colaborativo.

Dessa forma, o objetivo desta proposta de tese é a definição e desenvolvimento de um framework

para gerenciamento de contexto que apóie o tratamento de informações contextuais em sistemas

colaborativos. A idéia é prover um mecanismo de propósito genérico, configurável, que possa ser

acoplado a diferentes sistemas, e que possua um modelo formal de representação que viabilize a

integração de contextos provenientes de fontes diversas. Devido à complexidade inerente à inclusão de

contexto em sistemas colaborativos e à construção de sistemas gerenciadores de contexto, o foco da

proposta é a resolução de questões ligadas à representação formal das informações contextuais

relacionadas ao trabalho colaborativo, à manipulação e armazenamento dos contextos, e ao raciocínio

sobre informações contextuais existentes para identificação do contexto corrente.

7.2. CONCEITOS UTILIZADOS

Esta seção define alguns dos conceitos usados na descrição desta proposta, uniformizando o entendimento

sobre eles. São descritos, brevemente, agentes inteligentes, e a compreensão sobre foco de atenção e

elementos de contexto utilizados no trabalho.

Page 93: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

85

7.2.1. Agentes Inteligentes

Um agente é uma entidade (de software ou hardware) que percebe seu ambiente através de sensores e

age sobre ele através de atuadores para alcançar seus objetivos (Russell e Norvig, 2003). Seu

comportamento inteligente está intimamente ligado à sua capacidade de tomar a melhor decisão para

chegar aos objetivos propostos, raciocinando sobre o conhecimento disponível.

Dentre as propriedades básicas que todo agente possui estão: (i) autonomia, pois o agente exerce

controle sobre suas próprias ações, ou seja, decide quando agir; (ii) reatividade, que indica que o agente

responde a mudanças ocorridas em seu ambiente; (iii) ser guiado por objetivos, ocorre quando o agente

não simplesmente responde ao ambiente, mas age de forma pró-ativa de acordo com um propósito; e

(iv) ser temporariamente contínuo, ou seja, um processo que é executado continuamente (Franklin e

Graesser, 1996; Russell e Norvig, 2003). Um agente pode ser reativo ou guiado por objetivos, porém

pode também apresentar um comportamento híbrido, ou seja, possuir componentes reativos e pró-ativos.

A presença das propriedades citadas é o que diferencia um agente inteligente de um programa comum.

7.2.2. Foco de Atenção

O conceito de contexto utilizado neste trabalho segue o modelo proposto por Brézillon e Pomerol

(Brézillon e Pomerol, 1999), apresentado na Seção 3.3.3, segundo o qual o contexto é dependente de um

foco de atenção e divide-se em três categorias de conhecimento: conhecimento contextual, contexto

externo e contexto proceduralizado.

Neste trabalho, foco de atenção é definido como o conhecimento que permite delimitar a situação

sobre a qual o contexto será considerado. O foco tem relação com o que o usuário está fazendo. No

trabalho colaborativo deve ser considerado, também, o foco compartilhado, ou seja, o que o grupo está

fazendo. O foco pode ser, por exemplo, um passo no processo de execução de uma tarefa ou uma etapa da

solução de um problema (Brézillon e Pomerol, 1999; Brézillon, 1999b). Quando um passo do processo

termina e outro se inicia há uma mudança no foco. O foco também pode mudar com o disparo de um

evento. Por exemplo, quando o usuário solicita, manualmente, a um serviço de recomendação a indicação

de materiais que o auxiliem na discussão de um tópico em um ambiente de aprendizado colaborativo. O

foco anterior era a tarefa em execução, ou seja, a discussão sobre o tópico. Com o disparo da solicitação,

o foco passa a ser a busca por material de aprendizado. O foco viabiliza a identificação dos elementos de

contexto a serem considerados. No exemplo, o contexto contém informações sobre a interação em curso,

como o assunto sendo discutido, o nível do aluno, a disponibilidade de materiais, entre outros, que são

fundamentais para que o sistema de recomendação indique materiais adequados à situação do usuário.

7.2.3. Elementos de Contexto

Neste trabalho considera-se como conhecimento contextual as informações mantidas pelo gerenciador de

contexto em sua base de conhecimento que não são instanciadas e disseminadas pelo gerenciador no foco

corrente.

Page 94: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

86

O contexto externo é o conhecimento não existente na base de conhecimento do gerenciador. Por

exemplo, o conhecimento mantido em uma base de conhecimento do domínio da aplicação ou nos

modelos da aplicação.

Já o contexto proceduralizado é a parte do conhecimento contextual que é invocada, organizada,

estruturada e situada de acordo com o foco de atenção, e utilizada para apoiar a tarefa em execução

naquele foco. É a parte do conhecimento contextual relevante para o foco corrente e que, portanto, será o

conhecimento disseminado pelo gerenciador de contexto para a aplicação.

7.3. FRAMEWORK PARA GERENCIAMENTO DE CONTEXTO APLICADO A SISTEMAS

COLABORATIVOS

O gerenciador de contextos realiza tarefas relacionadas ao processamento, raciocínio e persistência dos

contextos, e possui uma representação de contextos associados ao trabalho colaborativo baseada em

ontologias. A ontologia de contexto provê a identificação e um vocabulário comum para o contexto dos

indivíduos e grupos dos quais esses indivíduos fazem parte, bem como às interações entre esses

indivíduos para a realização das atividades colaborativas (Vieira et al., 2005c). A tarefa de raciocínio

possui como tarefas relacionadas: a manutenção de uma base de conhecimento contextual; a identificação

do foco de atenção atual do usuário e do grupo do qual esse usuário faz parte; e, a geração de contextos

proceduralizados (PC) relativos ao foco de atenção, a partir do conhecimento contextual existente na base

de conhecimento. O serviço de persistência é responsável pela manutenção de um repositório com a

história dos contextos e dos contextos proceduralizados produzidos, e em habilitar formas de

disseminação e consulta a esse histórico por groupware e serviços cientes de contexto.

As seções a seguir apresentam a arquitetura do gerenciador de contextos para groupware,

denominado CoMGroup (do inglês, Context Manager for Groupware) e a ontologia de contexto proposta,

denominada CoMGroup-Ont.

7.3.1. Arquitetura

Uma visão geral da arquitetura do CoMGroup é ilustrada na Figura 7.1. O CoMGroup interage com três

categorias de entidades externas: o groupware, para identificação do foco de atenção do usuário e

disseminação dos contextos processados, relativos àquele foco; os serviços cientes de contexto, que não

necessariamente estão embutidos no groupware, mas oferecem serviços que apóiam o trabalho do grupo,

como percepção ou recomendações; e, as fontes externas de contexto, que fornecem elementos

contextuais utilizados pelo gerenciador para construir o contexto. Um módulo de configuração permite

que ajustes sejam feitos ao CoMGroup para atender às particularidades do groupware ou serviço ciente de

contexto, como, por exemplo, extensões à ontologia de contexto.

No CoMGroup são utilizados agentes inteligentes para realização das tarefas de manipulação e

raciocínio sobre o contexto. O CoMGroup implementa quatro agentes: o agente identificador do foco, o

Page 95: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

87

agente mapeador do contexto, o agente interpretador do contexto e o agente disseminador do contexto.

Para apoiar a tarefa de raciocínio, o agente interpretador do contexto mantém: uma base de conhecimento

contextual, que armazena os contextos gerenciados; e uma base de conhecimento do contexto

proceduralizado, que armazena o histórico de contextos proceduralizados construídos associados ao foco

de atenção. Um motor de inferência é utilizado pelo agente para processar e raciocinar sobre o

conhecimento mantido nas bases de conhecimento. Os elementos externos e internos do CoMGroup são

detalhados nas próximas subseções.

CoM

Group

Agente Mapeador do Contexto

BC doDomínio

UsuárioUsuário

Agente Identificador do Foco

Agente Disseminador do Contexto

GroupwareGroupware

Sensor Lógico

TradutorTradutor

Sensor LógicoSensor Lógico

TradutorTradutor

Memória do Grupo

TradutorTradutor

Memória do Grupo

TradutorTradutor

Modelo da Aplicação

TradutorTradutor

Modelo da Aplicação

TradutorTradutor

Sensor Físico

TradutorTradutor

Sensor Físico

Sensor Físico

TradutorTradutor

Foco

Contexto Proceduralizado

Elementos de Contexto

Serviço Ciente de Contexto

Serviço Ciente de Contexto

possui

Elementos de Conttexto

Conhecimento Contextual

Conhecimento do Domínio

Foco

Foco

Foco

Elementos de Contexto

Contexto

Contexto

Consulta

Serviço Ciente de Contexto

Serviço Ciente de Contexto

possui

Contexto

Consulta

Módulo de Configuração

Módulo de Configuração

Consulta

Elementos de ContextoElementos

de Contexto

Agente Interpretador do Contexto

BC do Contexto

Proceduralizado

Base de Conhecimento

ContextualMotor de Inferência

Agente Interpretador do Contexto

BC do Contexto

Proceduralizado

Base de Conhecimento

ContextualMotor de InferênciaMotor de Inferência

Figura 7.1 – Visão geral da arquitetura do CoMGroup

Fontes Externas de Contexto

As informações contextuais podem ser obtidas de fontes diversas de forma explícita ou implícita. O modo

explícito é quando o usuário informa diretamente ao sistema o seu contexto atual através de interfaces

específicas como, por exemplo, um formulário ou botões de ação. O modo implícito expõe duas formas

de aquisição do contexto: via coleta ou monitoramento.

Page 96: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

88

O monitoramento é realizado por sensores, físicos ou lógicos, que monitoram continuamente o

ambiente físico ou virtual do usuário e capturam informações contextuais desses ambientes. Informações

contextuais do ambiente físico incluem a presença física do usuário e de outras pessoas próximas a ele, a

localização geográfica dessas pessoas, dos dispositivos e dos recursos disponíveis, entre outras.

Informações contextuais do ambiente virtual podem ser a presença virtual do usuário no espaço de

trabalho compartilhado, sua disponibilidade para interação, ações realizadas sobre o espaço de trabalho, a

tarefa em execução, os artefatos compartilhados sendo manipulados, outros usuários com os quais está

interagindo, os aplicativos que estão utilizando, entre outras.

A coleta é relacionada à captura de informações persistentes em bases de dados existentes nos

sistemas. A memória do grupo fornece informações relevantes sobre o histórico de interações do grupo.

Os modelos da aplicação mantêm informações diversas sobre: o indivíduo, como sua identificação e

perfil; o grupo do qual esse indivíduo faz parte, com os seus objetivos e características; as tarefas

definidas para o grupo e seus planos de execução; entre outras.

Cada fonte de contexto é responsável por um determinado tipo de informação contextual e pode

possuir uma representação interna do contexto diferente da utilizada no CoMGroup. Dessa maneira, essas

fontes podem implementar um tradutor que serve para converter seus dados de contexto para serem

utilizados pelo gerenciador de contexto. As fontes de contexto podem ser autônomas e independentes, e

podem ser adicionadas ou removidas do CoMGroup a qualquer momento. A inclusão da fonte de

contexto é gerenciada pelo agente mapeador do contexto.

Uma base de conhecimento do domínio também pode ser utilizada como fonte complementar de

contexto, viabilizando a compreensão das informações disponibilizadas pelas fontes de contexto.

Groupware

A finalidade do CoMGroup é apoiar o tratamento das informações contextuais manipuladas por sistemas

colaborativos. Dessa maneira, ele deve estar conectado a um groupware existente. O groupware deve

entender o funcionamento do CoMGroup e conhecer seus protocolos de comunicação, de modo que seja

possível a interação entre ambos.

Serviços Cientes de Contexto

O CoMGroup não se preocupa, diretamente, com a forma como o groupware irá adaptar-se ao contexto

identificado e processado. De modo a alcançar uma maior modularidade, sugere-se que sejam construídos

serviços, independentes do groupware, adaptativos ao contexto, para apoio ao trabalho do grupo. Esses

serviços podem auxiliar em tarefas como: suporte à percepção seletiva, recomendações e personalizações

do groupware.

Serviços de apoio à percepção são responsáveis por prover informações sobre o contexto atual de

outros membros do grupo, permitindo que os usuários se contextualizem sobre o que ocorre em seu grupo

Page 97: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

89

de trabalho, e viabilizando sua auto-coordenação. Essa notificação deve ser feita de uma forma seletiva e

incremental, de modo a não sobrecarregar o usuário com informações que não sejam relevantes ou

perturbá-los com informações excessivas. A prática mostra que é mais eficiente que o usuário seja

notificado de poucas informações, contextualizadas com sua situação atual, do que ser inundado com uma

grande quantidade de informações descontextualizadas.

Serviços de recomendação oferecem aos usuários indicações de informações ou serviços que

possam auxiliá-los em sua tarefa atual, tais como: recomendação de ferramentas para uso em uma

interação, recomendação de materiais de estudo em um ambiente de aprendizagem colaborativa ou

recomendação de especialistas para consultoria, entre outros.

Serviços de personalização ou adaptação buscam tornar o groupware mais próximo do perfil do

usuário que o está utilizando. As adaptações podem ser feitas na aparência das interfaces com o usuário,

produzindo interfaces individualizadas, ou no comportamento do sistema, ajustando informações e

serviços aos interesses e preferências do usuário.

Agente Identificador do Foco

O agente identificador do foco tem por objetivo monitorar o ambiente virtual do usuário e perceber

mudanças em seu foco de atenção, mapeando diferenças em relação ao foco anterior e comunicando essas

informações ao demais agentes do gerenciador de contexto. Uma questão relevante em relação ao foco de

atenção é estabelecer o que irá disparar a instanciação do foco. Segundo Gauvin et al. (Gauvin et al.,

2004), o foco pode ser identificado de duas maneiras: manual ou automática. A forma manual é

conduzida pelo próprio usuário. Para isso, o sistema deve permitir que o usuário indique qual é o seu foco

atual. A forma automática é realizada por um agente de software que monitora o ambiente de trabalho do

usuário e percebe mudanças no foco. Por exemplo, o agente pode perceber que um passo na realização de

uma tarefa foi finalizado e outro terá início.

Agente Interpretador do Contexto

As informações contextuais manipuladas pelo CoMGroup seguem o vocabulário especificado na

ontologia de contexto CoMGroup-Ont proposta em (Vieira et al., 2005c) e detalhada na Seção 7.3.2. O

Agente Interpretador do Contexto mantém duas bases de conhecimento baseadas nessa ontologia. Uma

delas é a Base de Conhecimento Contextual (CKB, do inglês Contextual Knowledge Base), que mantém

as regras e fatos relativos ao conhecimento contextual (CK) manipulado pelo gerenciador. Essa base

mantém um histórico dos contextos e permite inferência de novos fatos, usando regras pré-definidas e um

motor de inferência. A outra é a Base de Conhecimento do Contexto Proceduralizado (PCKB, do inglês

Proceduralized Context Knowledge Base). Essa base mantém o histórico dos contextos proceduralizados

(PCs) produzidos associando-os ao foco em que foram gerados.

Os objetivos do Agente Interpretador do Contexto incluem: manter consistentes a CKB e a PCKB;

gerenciar o raciocínio sobre as informações contextuais mantidas nessas duas bases, inferindo novos

Page 98: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

90

contextos a partir de regras lógicas de inferência e de fatos contextuais existentes; gerenciar a construção

do contexto proceduralizado a partir do foco de atenção corrente e do CK existente na CKB; identificar o

conhecimento externo (EK) em relação ao foco que, portanto, não deverá ser considerado pelo

disseminador de contexto; atualizar a PCKB com o foco de atenção e o PC utilizado, de modo a manter

um histórico da construção e uso do PC. Esse histórico servirá como uma base de aprendizado que

possibilite melhorar a inferência do PC em interações futuras. Esse agente utiliza um motor de inferência

para raciocinar sobre os fatos mantidos nas bases de conhecimento, produzindo novos fatos a partir das

regras lógicas pré-definidas. Esse motor também é responsável por checar a consistência da CoMGroup-

Ont, identificando fatos que não estejam de acordo com as especificações descritas na ontologia.

Agente Mapeador do Contexto

Esse agente provê uma interface única de comunicação entre o CoMGroup e as fontes de contexto. Ele

recebe as informações contextuais traduzidas das fontes e envia-as para o agente interpretador do

contexto para que sejam armazenadas como fatos na CKB. Seu funcionamento ocorre em duas direções.

A primeira se dá quando o agente recebe do agente identificador do foco a indicação de que um novo foco

de atenção foi atingido e, portanto, o CoMGroup necessita buscar nas fontes o contexto relativo àquele

foco. Nesse caso, o mapeador do contexto identifica quais fontes de contexto deverão ser consultadas e

solicita informações atualizadas relacionadas ao foco corrente. A segunda direção ocorre quando uma

nova fonte de contexto é incluída ou quando uma fonte de contexto existente deseja comunicar novas

informações contextuais ao CoMGroup, como por exemplo, quando um sensor detecta uma mudança

significativa no contexto do ambiente monitorado.

Agente Disseminador do Contexto

Esse componente é responsável por entregar o PC produzido pelo CoMGroup à aplicação ciente de

contexto (groupware ou serviço). Essa entrega pode ser feita, basicamente, de maneira ativa ou passiva. A

entrega ativa é realizada como resposta a uma consulta enviada pela aplicação ao disseminador,

solicitando diretamente a informação contextual desejada. A entrega passiva ocorre por iniciativa do

CoMGroup. Nesse caso, a aplicação se inscreve ao CoMGroup como interessada em determinados tipos

de informação contextual e sempre que essa informação for modificada o disseminador envia à aplicação

uma mensagem de notificação.

Módulo de Configuração

Esse módulo, externo ao CoMGroup, permite que o desenvolvedor do groupware ou serviço ciente de

contexto regule o funcionamento do gerenciador de contexto, através de parâmetros de configuração.

7.3.2. Ontologia para Representação de Contexto em Sistemas Colaborativos

Um elemento fundamental na proposta de gerenciamento de contexto é a ontologia para representação

dos contextos presentes nos sistemas colaborativos. Foi criada uma versão inicial dessa ontologia,

Page 99: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

91

baseada em conceitos construídos a partir de uma revisão da literatura relacionada a contexto e

colaboração (Rosa et al., 2003; Kirsch-Pinheiro et al., 2004; Wang et al., 2004; Chen e Finin, 2004;

Alarcón et al., 2005b). Uma visão geral dos conceitos definidos é ilustrada na Figura 7.2 e uma visão

geral dos relacionamentos entre os conceitos é ilustrada na Figura 7.3. Para uma maior interoperabilidade

da ontologia, o idioma escolhido para sua representação foi o inglês.

A classe Context é a classe principal, raiz da ontologia, a partir da qual todos os elementos de

contexto são representados. Ela se divide em três subclasses: InteractionContext, indica as informações

referentes ao contexto de uma interação que está acontecendo (síncrona) ou que já ocorreu (assíncrona)

durante o trabalho em grupo; OrganizationalContext, representa a informação contextual relativa à

estrutura organizacional do trabalho em grupo e inclui o usuário, o grupo ao qual pertence, o papel

desempenhando na execução de uma tarefa, em um projeto específico; e, PhysicalContext, contém

informações que caracterizam o ambiente físico em que o usuário se encontra.

O contexto da interação (InteractionContext) possui 2 subclasses: SharedArtifactsContext, contém

elementos relativos ao contexto dos artefatos compartilhados utilizados na interação, como classes em um

diagrama de classes colaborativo ou parágrafos em um editor de texto colaborativo; e,

ApplicationContext, indica elementos de contexto referentes à aplicação em uso, ou disponível para uso,

na interação, e inclui o propósito da aplicação (para apoiar a comunicação, coordenação ou cooperação) e

o tipo de interação que suporta (síncrona/assíncrona).

O contexto organizacional (OrganizationalContext) está dividido em 5 subclasses: ProjectContext,

AgentContext, GroupContext, TaskContext e RoleContext. ProjectContext contém elementos que

identificam o contexto do projeto que está sendo conduzido pelos membros do grupo, tais como objetivos

e cronograma. AgentContext, contém informações de contexto sobre os membros do grupo, os quais

podem ser um agente humano (HumanAgentContext) ou um agente de software

(SoftwareAgentContext), pois considera-se que um agente inteligente de software também pode

participar de uma interação apoiando o desenvolvimento do trabalho em grupo. HumanAgentContext

contém informações contextuais que incluem a identificação do usuário, seus interesses, habilidades e

disponibilidade atual (ocupado, ausente, disponível). SoftwareAgentContext possui informações sobre o

objetivo do agente e suas intenções. GroupContext representa informações que caracterizam o grupo,

como objetivo, habilidades e interesses do grupo. TaskContext, identifica elementos do contexto das

tarefas (e subtarefas) que estão sendo, ou já foram, executadas, incluindo o objetivo da tarefa e o prazo

para sua execução. RoleContext, refere-se aos papéis que os membros de um grupo podem desempenhar

na execução de uma tarefa, identificando, por exemplo, se o usuário é um coordenador ou um tutor (em

um ambiente de aprendizado colaborativo).

Page 100: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

92

Figura 7.2 - Visão Geral e Parcial da Hierarquia de Classes da Ontologia de Contexto

O contexto físico (PhysicalContext) possui 4 subclasses: DeviceContext, que indica o contexto dos

dispositivos eletrônicos e físicos disponíveis para o usuário, tais como o tipo do dispositivo (PC, PDA,

microfones, webcams); LocationContext, que provê informações sobre o espaço físico e virtual onde o

usuário está localizado e relações como proximidade, distância, presença e ausência; TimeContext, que se

refere ao contexto do momento em que a interação ocorre e contém informações como fuso horário; e

ConditionContext, que informa as condições físicas do ambiente onde o usuário se encontra, como

temperatura, nível de barulho e luminosidade.

De acordo com a especificação OWL, cada conceito possui propriedades de tipo (datatype

properties) que definem seus atributos e propriedades de objeto (object properties) que definem seus

relacionamentos a outros conceitos. Por exemplo, o conceito HumanAgentContext possui propriedades de

tipo como hasName (nome do participante), isAvailable (sua disponibilidade no ambiente) e

hasVisualDisability (que indica se o indivíduo possui alguma deficiência visual), entre outros. A Figura

7.3 apresenta os relacionamentos entres as principais classes da ontologia.

isMemberOf(AgentContext, GroupContext): indica que o agente é membro de um determinado

grupo. Seu relacionamento inverso é o hasMember(GroupContext, AgentContext);

performsRole(AgentContext,RoleContext): determina que o agente desempenha um dado papel

na execução de uma tarefa em um grupo;

Page 101: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

93

isLocatedIn(AgentContext,LocationContext): estabelece que o agente está situado em um

determinado contexto de localização, que pode ser geométrico (ex. coordenadas obtidas por

GPS), simbólico (ex. sala 201 do CIn), ou virtual (ex. endereço IP);

hasDeviceContext (HumanAgentContext,DeviceContext): designa o dispositivo de hardware

presente no contexto físico do agente humano;

hasParticipant (InteractionContext, AgentContext/GroupContext): indica quais indivíduos ou

grupos estão participando de uma interação;

isSubTaskOf (TaskContext, TaskContext): enuncia que a tarefa é parte de outra;

executesTask (AgentContext/GroupContext, TaskContext): associa o agente (humano ou

software) ou o grupo, ao contexto da tarefa que está executando;

worksIn (AgentContext/GroupContext, ProjectContext): indica que um grupo ou um indivíduo

trabalha na execução de um projeto;

hastTask (ProjectContext,TaskContext): determina que um projeto é composto de uma ou mais

tarefas;

delegatedTo (TaskContext,RoleContext): associa uma tarefa a um determinado papel.

Figura 7.3 – Visão geral dos relacionamentos entre os conceitos

A ontologia, até o momento, representa uma visão de alto nível dos elementos contextuais

envolvidos no trabalho colaborativo. É necessária uma especialização dessas classes de modo a atender a

propósitos específicos de determinados sistemas. Por exemplo, uma extensão foi feita à ontologia no

Page 102: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

94

trabalho de inclusão de contexto ao editor colaborativo CoWS (Zarate, 2006; Vieira et al., 2006),

ilustrado na Figura 7.4. Os conceitos Text e Paragraph foram incluídos como subclasses de

SharedArtifactsContext, pois no CoWS o artefato compartilhado por autores são parágrafos de um texto.

Figura 7.4 – Instância da ontologia de contexto usada no CoWS (Zarate, 2006)

A ontologia foi criada seguindo a metodologia proposta por Noy e McGuiness (Noy e McGuinnes,

2001). A linguagem escolhida para representar a ontologia foi a OWL (Web Ontology Language)

(Bechhofer et al., 2004), pois ela está firmando como um padrão para representação de ontologias para

promover a Web semântica. A ferramenta Protégé (Protégé, 2006) foi utilizada para criação e edição dos

conceitos. O framework Jena (Jena, 2006) foi usado, experimentalmente, associado ao CoWS (Vieira et

al., 2005a) , para testar a implementação de regras de inferência sobre os contextos descritos na ontologia

(Zarate, 2006; Vieira et al., 2006).

7.4. METODOLOGIA

A continuidade deste trabalho de doutorado será executado em seis etapas, descritas a seguir:

7.4.1. Especificação de Cenários Reais de Colaboração

Essa etapa tem por objetivo estudar ambientes reais de trabalho colaborativo para identificar que

informações contextuais estão presentes nesses ambientes, que ferramentas de groupware são utilizadas

pelos usuários para apoiá-los em suas interações, e levantar junto a esses usuários como o conhecimento

do contexto pode ajudá-los em suas tarefas, e como o contexto pode ser usado para tornar as ferramentas

melhores e mais adequadas às suas necessidades.

Foram imaginados dois diferentes ambientes de colaboração a serem investigados nesta etapa. O

primeiro é um ambiente organizacional de desenvolvimento colaborativo de software formado por um

grupo de trabalho de um projeto do C.E.S.A.R., a ser definido. O segundo é o de um ambiente acadêmico,

Page 103: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

95

de desenvolvimento colaborativo de artigos científicos, formado por alunos de pós-graduação e

professores de um grupo de pesquisa do CIn-UFPE.

Nesse estudo, deseja-se entender um pouco melhor como as pessoas realmente trabalham, em

diferentes ambientes colaborativos, com diferentes características culturais e pressões de prazo. Serão

utilizadas técnicas de análise qualitativa (e.g. entrevistas, análise da tarefa) para esse estudo. Como

resultado dessa etapa espera-se obter uma descrição formal desses cenários, um levantamento real de

como o contexto pode ser aplicado ao trabalho colaborativo, a identificação dos elementos de contexto

presentes nesses ambientes e as ações ou serviços cientes de contexto que poderiam ser providos por

ferramentas de groupware para apoiar o trabalho das equipes nesses cenários.

7.4.2. Modelagem da CoMGroup-Ont

Essa etapa tem por objetivo a evolução da ontologia CoMGroup-Ont. Esta será construída através do

refinamento e extensão dos conceitos definidos na versão atual da ontologia (descrita na Seção 7.3.2),

adequando-os ao conhecimento obtido nos cenários estudados na etapa anterior. Serão utilizados os dados

levantados nos cenários de colaboração da etapa anterior para instanciar a CoMGroup-Ont e avaliar a

generalidade dos conceitos. A ontologia será disponibilizada em uma página web, para consulta e revisão

por outros pesquisadores da área.

Uma das principais vantagens em utilizar a abordagem de ontologias para representar contexto é a

facilidade de integração com outras pré-existentes. Dessa maneira, deseja-se investigar na literatura

ontologias relacionadas e com conceitos bem estabelecidos que possam ser reutilizados no modelo

proposto, tais como a FOAF (Friend of a Friend) (Brickley e Miller, 2006), uma especificação voltada

para redes sociais que descreve indivíduos, seus interesses e relacionamentos com outras pessoas; a

OpenCyc (OpenCyc, 2006), uma base de conhecimento que mantém a descrição de mais de 47.000

conceitos e mais de 306.000 fatos; e outras ontologias de contexto encontradas na literatura (Preuveneers

et al., 2004; Chen e Finin, 2004; Gu et al., 2004c; Bulcão Neto e Pimentel, 2005).

7.4.3. Modelagem do Framework CoMGroup

Essa etapa objetiva a análise e especificação dos componentes e agentes do CoMGroup. Para isso,

serão realizadas as seguintes tarefas:

Modelar diagramas de casos de uso, tomando como referência os cenários identificados na

Etapa 1, associando o CoMGroup com suas entidades externas;

Criar um processo de geração do contexto proceduralizado a partir do foco de atenção e dos

contextos mantidos na base de conhecimento contextual;

Modelar os agentes Mapeador de Contexto e Disseminador do Contexto;

Modelar o Agente Identificador do Foco, definindo como o foco pode ser identificado e

representado, e como associá-lo ao contexto;

Page 104: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

96

Modelar o Agente Interpretador do Contexto, investigando abordagens para raciocinar sobre os

contextos especificados na CoMGroup-Ont;

Modelar o diagrama de colaboração entre os componentes e agentes internos ao CoMGroup;

Especificar os protocolos e interfaces de acesso ao CoMGroup, para interação com os elementos

externos (fontes de contexto, groupware e serviços cientes de contexto).

7.4.4. Implementação de um Protótipo do CoMGroup

Nessa etapa será implementado um protótipo do CoMGroup, seguindo as especificações modeladas

na etapa anterior. Serão implementados os componentes internos do CoMGroup. Como o foco deste

trabalho é a representação e raciocínio sobre os contextos, não está prevista a implementação de

mecanismos de aquisição automática de contextos. Os contextos considerados serão informados

manualmente e mantidos na base de conhecimento contextual, como instâncias da CoMGroup-Ont.

Para viabilizar a avaliação do protótipo do CoMGroup serão implementados dois serviços cientes

de contexto: um serviço de percepção, cuja finalidade é apresentar o contexto em relação ao foco

identificado; e um serviço de recomendação de especialistas, que usará o conhecimento contextual para

adequar suas recomendação à situação atual do usuário. Esses dois serviços fazem parte do projeto de

mestrado de duas alunas do CIn.

7.4.5. Estudo de Caso

O objetivo desta etapa é verificar os resultados obtidos nas etapas anteriores através do

acoplamento do CoMGroup a uma ferramenta de groupware, a ser definida. Deseja-se avaliar se é

possível implementar, de maneira fácil, serviços cientes de contexto a partir do uso do CoMGroup, e se o

uso do contexto facilita e melhora a colaboração entre os usuários. Para isso, as seguintes atividades

devem ser executadas:

a. Identificar a ferramenta de groupware a ser utilizada;

b. Implementar o acoplamento do protótipo do CoMGroup a essa ferrramenta;

c. Definir o estudo de caso, utilizando o framework de avaliação de ferramentas de groupware

definido em (Araújo et al., 2004);

d. Realizar o estudo de caso com um grupo de usuários.

7.4.6. Escrita

Esta etapa será realizada paralela às demais e compreende a escrita da versão final do texto da tese,

e a escrita e submissão de artigos científicos.

Page 105: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

97

7.5. ATIVIDADES REALIZADAS

As atividades realizadas para desenvolvimento desta pesquisa e para cumprimento dos requisitos

do programa de doutorado do CIn/UFPE, no período de março de 2004 a abril de 2006 foram:

Cumprimento dos créditos de disciplinas;

Levantamento do estado da arte sobre contexto computacional, e contexto aplicado a sistemas

colaborativos;

Delimitação do escopo do trabalho;

Definição da arquitetura do CoMGroup;

Criação da versão inicial da ontologia de contexto para groupware;

Implementação inicial de regras em lógica de primeira ordem para raciocínio sobre

conhecimento representado na ontologia de contexto utilizando o framework Jena, aplicado ao

CoWS, um groupware para edição colaborativa de textos;

Escrita de artigos científicos sobre a ontologia de contexto e o CoMGroup;

Escrita da monografia de qualificação e proposta de tese.

7.5.1. Artigos Publicados e Submetidos para Avaliação

Vieira, V., Tedesco, P., Salgado, A.C. (2005) Towards an Ontology for Context Representation in

Groupware. In : Proceedings of the CRIWG’2005, pp. 367-375. Porto de Galinhas, PE, Brasil.

Vieira, V., Tedesco, P., Salgado, A.C. (2005) Representação de Contextos em Ambientes Colaborativos

Usando Ontologias. In: Anais do SBIE’05, II Workshop Brasileiro de Tecnologias para Colaboração,

WCSCW’05. Juiz de Fora, MG, Brasil.

Vieira, V., Zarate, D., Tedesco, P., Salgado, A.C. (2006) A Contextual Ontology-Based Reasoning

Mechanism for Groupware. CRIWG’2006, Valladolid, Espanha. Submitted.

Souza, D., Vieira, V., Tedesco, P., Salgado, A.C. (2006) Requirements for Context Management in

Groupware. CRIWG’2006, Valladolid, Espanha. Submitted.

Vieira, V., Tedesco, P., Salgado, A.C., Brézillon, P. (2006) An Ontology-Based Context Manager for

Collaborative Systems. The Knowledge Engineering Review Journal. Em elaboração.

7.6. CRONOGRAMA DE ATIVIDADES

As atividades a serem executadas nesta pesquisa, e no contexto do programa de doutorado da

UFPE, seguem o cronograma apresentado na Tabela 7.1. Está previsto um estágio de 10 meses na

França, sob orientação do Dr. Patrick Brézillon, na Universidade Paris VI, no período de novembro de

2006 a agosto de 2007. Durante esse estágio, deseja-se utilizar a experiência do grupo do Dr. Brézillon

em modelagem e representação de contextos para validar e refinar a modelagem proposta para o

Page 106: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

98

CoMGroup e para a CoMGroup-Ont, finalizar a implementação do protótipo e iniciar a especificação do

estudo de caso. Além disso, nesse período está prevista a escrita dos capítulos de revisão da literatura,

especificação da proposta e implementação do protótipo para o texto final da tese, e a escrita de artigos

científicos.

Tabela 7.1 – Cronograma de Atividades

2006 2007 2008ATIVIDADE

05 06 07 08 09 10 11 12 01 02 03 04 05 06 07 08 09 10 11 12 01 02

Defesa da qualificação e proposta de tese Especificação de cenários de colaboração Modelagem da CoMGroup-Ont Modelagem do CoMGroup Implementação do protótipo do CoMGroup Especificação do estudo de caso Realização do estudo de caso Refinamento do protótipo Análise dos resultados do estudo de caso Escrita de artigos científicos Escrita do texto da tese Defesa da tese

Doutorado Sanduíche

7.7. CONTRIBUIÇÕES ESPERADAS

O gerenciamento de contextos envolve muitas tarefas, tais como: identificação dos contextos,

aquisição, representação formal, raciocínio, persistência, manipulação, disseminação, uso, apresentação,

qualidade da informação contextual, privacidade e segurança, além de questões de otimização, uma vez

que o tratamento do contexto fatalmente causa um impacto no desempenho da aplicação. Este trabalho

tem por foco os problemas ligados à identificação das informações contextuais em sistemas colaborativos,

à representação formal dos contextos, à persistência e manipulação do conhecimento contextual, e ao

raciocínio sobre as informações de contexto, com a identificação do contexto corrente a partir de um

conjunto de informações contextuais existentes. As demais questões não serão tratadas diretamente neste

trabalho, porém algumas delas (aquisição, disseminação, uso e apresentação) fazem parte dos estudos de

outros alunos do grupo e de um projeto de pesquisa submetido ao CNPq. Questões relacionadas à

qualidade da informação contextual, segurança, privacidade e otimização não estão previstas nesta

pesquisa.

Dessa maneira, as contribuições esperadas para esta tese incluem:

Estudo sobre o tratamento do contexto no domínio de sistemas colaborativos;

Page 107: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

99

Definição de um processo de geração de contexto proceduralizado relativo à execução de uma

tarefa colaborativa, a partir do foco de atenção corrente e de um conjunto existente de

conhecimento contextual;

Especificação de um framework para gerenciamento de contextos aplicável a sistemas

colaborativos;

Especificação de uma ontologia para representação formal de contextos associados ao trabalho

em grupo;

Implementação de um protótipo do framework que permita inferir o contexto proceduralizado

correspondente a um dado foco de atenção;

Publicação de artigos científicos em revistas e conferências nacionais e internacionais nas áreas

de CSCW, Modelagem e Raciocínio de Contexto, Computação Ciente de Contexto e

Inteligência Artificial.

Page 108: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

100

Referências Bibliográficas

ALARCÓN, R., GUERRERO, L. A., OCHOA, S. F., PINO, J. A., 2005a, "Context in Collaborative Mobile Scenarios". In: Fifth International and Interdisciplinary Conference on Modeling and Using Context (CONTEXT'05), Workshop on Context and Groupware., Paris, France.

ALARCÓN, R., GUERRERO, L. A., PINO, J. A., 2005b, "Groupware Components as Providers of Contextual Information". In: Fifth International and Interdisciplinary Conference on Modeling and Using Context (CONTEXT'05), Paris, France.

ARAÚJO, R. M., 2000, Ampliando a Cultura de Processos de Software - Um Enfoque Baseado em Groupware e Workflow, Tese de D.Sc., COPPE/UFRJ, Rio de Janeiro.

ARAÚJO, R. M., SANTORO, F. M., BORGES, M. R. S., 2004, "A Conceptual Framework for Designing and Conducting Groupware Evaluations", International Journal of Computer Applications in Technology, v. 19, n. 3/4, pp. 139-150.

BARDRAM, J. E., 2004, "Applications of Context-Aware Computing in Hospital Work: Examples and Design Principles". In: Proceedings of the 2004 ACM symposium on Applied Computing, ACM Press, pp. 1574-1579.

BAUER, J., 2003, Identification and Modeling of Contexts for Different Information Scenarios in Air Traffic, Diplomarbeit, Technische Universität Berlin, Fakultät IV - Elektrotechnik und Informatik, Institut für Computergestützte Informationssysteme, Berlin.

BAZIRE, M., BRÉZILLON, P., 2005, "Understanding Context Before Using It". In: 5th International and Interdisciplinary Conference, CONTEXT 2005, v. LNAI 3554, pp. 29-40, Springer Verlag, Paris, France.

BECHHOFER, S., VAN HARMELEN, F., HENDLER, J., HORROCKS, I., MCGUINNESS, D., PATEL-SCHNEIDER, P., STEIN, L., 2004, "Web Ontology Language (OWL) Reference, W3C Recommendation". In: http://www.w3.org/TR/owl-ref/, Access in 05/2006.

BELOTTI, R., 2004, Sophie - Context Modelling and Control, Diploma thesis, Swiss Federal Institute of Technology Zurich.

BELOTTI, R., DECURTINS, C., GROSSNIKLAUS, M., NORRIE, M. C., PALINGINIS, A., 2004b, "Interplay of Content and Context". In: International Conference on Web Engineering (ICWE 2004), Munich, Germany.

BELOTTI, R., DECURTINS, C., GROSSNIKLAUS, M., NORRIE, M. C., PALINGINIS, A., 2004a, "Modelling Context for Information Environments". In: Workshop on Ubiquitous Mobile Information and Collaboration Systems (UMICS), CAiSE 2004, Riga, Latvia.

BLAIR, G., CAMPBELL, A., SCHMIDT, D., 2004, "Middleware Technologies for Future Communication Network - Guest Editorial", IEEE Network, v. 18, n. 1.

BORGES, M. R. S., BRÉZILLON, P., PINO, J. A., POMEROL, J.-C., 2004, "Bringing context to CSCW". In: Proceedings of the Computer Supported Cooperative Work in Design, v. 2, pp. 161-166, IEEE Press.

BORGES, M. R. S., BRÉZILLON, P., PINO, J. A., POMEROL, J.-C., 2005, "Dealing with the Effects of Context Mismatch in Group Work", Submitted for Publication.

BORGES, M. R. S., PINO, J. A., 2000, "Requirements for Shared Memory in CSCW Applications". In: Proceedings of the 10thWorkshop on Information Technologies and Systems, pp. 211-216, Australia.

Page 109: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

101

BORGES, M. R. S., PINO, J. A., 1999, "Awareness Mechanisms for Coordination in Asynchronous CSCW". In: 9thWorkshop on Information Technologies and Systems, pp. 69-74, Charlotte, North Carolina.

BOUZY, B., CAZENAVE, T., 1997, "Using the Object Oriented Paradigm to Model Context in Computer Go". In: Proceedings of Context'97, Rio de Janeiro, Brazil.

BRÉZILLON, P., 1999a, "Context in Artificial Intelligence: IA Survey of the Literature", Computer&Artificial Intelligence, v. 18, pp. 321-340.

BRÉZILLON, P., 1999b, "Context in problem solving: A survey", The Knowledge Engineering Review, v. 14, n. 1, pp. 1-34.

BRÉZILLON, P., 2005, "Contextualizations in a Social Network", Revue d'Intelligence Artificielle.Special Issue on "Applying Context Management", v. 19, n. 3, pp. 575-594.

BRÉZILLON, P., 2003a, "Individual and Team Contexts in a Design Process". In: Proceedings of the Hawaii International Conference on System Sciences, Hawaii, USA, IEEE Computer Society Press, CD-R.

BRÉZILLON, P., 2003b, "Representation of Procedures and Practices in Contextual Graphs", The Knowledge Engineering Review, v. 18, n. 2, pp. 147-174.

BRÉZILLON, P., ARAÚJO, R. M., 2005, "Reinforcing Shared Context to Improve Collaborative Work", Revue d'Intelligence Artificielle.Special Issue on "Applying Context Management", v. 19, n. 3, pp. 537-556.

BRÉZILLON, P., BORGES, M. R. S., PINO, J. A., POMEROL, J.-C., 2004, "Context-Awareness in Group Work: Three Case Studies". In: IFIP International Conference on Decision Support Systems (DSS-2004). Decision Support in Uncertain and Complex World., Italia.

BRÉZILLON, P., CAVALCANTI, M., NAVEIRO, R., POMEROL, J.-C., 2000, "SART: An Intelligent Assistant for Subway Control", Pesquisa Operacional, Brazilian Operations Research Society, v. 20, n. 2, pp. 247-268.

BRÉZILLON, P., POMEROL, J.-C., 1999, "Contextual Knowledge Sharing and Cooperation in Intelligent Assistant Systems", Le Travail Humain, PUF, Paris, v. 62, n. 3, pp. 223-246.

BRICKLEY, D., MILLER, L., 2006, "FOAF Vocabulary Specification". In: http://xmlns.com/foaf/0.1/, Access in 03/2006.

BULCÃO NETO, R. F., PIMENTEL, M. G. C., 2005, "Toward a Domain-Independent Semantic Model for Context-Aware Computing". In: Proceedings of the 3rdIW3C2 Latin American Web Congress, IEEE Computer Society, pp. 61-70, Buenos Aires, Argentina.

CHEN, G., KOTZ, D., 2000, A Survey of Context-Aware Mobile Computing Research. Technical Report TR2000-381, Dept. of Computer Science, Dartmouth College.

CHEN, H., 2004, An Intelligent Broker Architecture for Pervasive Context-Aware Systems, PhD Thesis, Faculty of the Graduate School of the University of Maryland.

CHEN, H., 2003, An Intelligent Broker Architecture for Context-Aware Systems, PhD. Dissertation Proposal, University of Maryland Baltimore County.

CHEN, H., FININ, T., 2004, "An Ontology for Context-Aware Pervasive Computing Environments", The Knowledge Engineering Review, v. 18, n. 3, pp. 197-207.

CHEN, H., FININ, T., JOSHI, A., 2003a, "An Ontology for Context-Aware Pervasive Computing Environments". In: Workshop on Ontologies and Distributed Systems, Special Issue in 8th IJCAI, Acapulco, Mexico.

CHEN, H., FININ, T., JOSHI, A., 2003b, "Using OWL in a Pervasive Computing Broker". In: Workshop on Ontologies in Agent Systems, AAMAS-2003, Melbourne, Australia.

CHEN, H., FININ, T., JOSHI, A., PENG, Y., 2005, "UMBC eBiquity Project: Context Broker Architecture (CoBrA)". In:

Page 110: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

102

http://ebiquity.umbc.edu/project/html/id/1/?EBS=0a25f6d5d3c8bd4f33fdb719933e0e03, Access in 12/2005.

CHEVERST, K., DAVIES, N., MITCHELL, K., FRIDAY, A., EFSTRATIOU, C., 2000, "Developing a Context-Aware Electronic Tourist Guide: Some Issues and Experiences". In: Proc. of CHI'2000, pp. 17-24, The Hague, The Netherlands.

CHEVERST, K., MITCHELL, K., DAVIES, N., 1999, "Design of an Object Model for a Context Sensitive Tourist GUIDE", Computers and Graphics, v. 23, n. 6, pp. 883-891.

CHRISTOPOULOU, E., GOUMOPOULOS, C., ZAHARAKIS, I., KAMEAS, A., 2004, "An Ontology-based Conceptual Model for Composing Context-Aware Applications". In: Sixth International Conference on Ubiquitous Computing (Ubicomp 2004), Workshop on "Advanced Context Modelling, Reasoning and Management", Nottingham, England.

COSTA, C., ANTUNES, P., 2002, "Handheld CSCW in the Meeting Environment". In: VIII International Workshop in Groupware (CRIWG'2002), v. LNCS 2440, pp. 47-60, La Serena, Chile.

CVS, 2006, "Concurrent Version System - Ximbiot - CVS Wiki". In: http://ximbiot.com/cvs/wiki/index.php?title=Main_Page, Access in 05/2006.

DAML, 2006, "The DARPA Agent Markup Language Homepage". In: http://www.daml.org, Access in 05/2006.

DAVID, J. M. N., 2004, Um Serviço de Percepção para uma Infraestrutura de Desenvolvimento de Groupware, Tese de D.Sc., COPPE, Universidade Federal do Rio de Janeiro.

DAVID, J. M. N., BORGES, M. R. S., 2001, "Selectivity of Awareness Components in Asynchronous CSCW Environments". In: Proc. of 7thInternational Workshop on Groupware (CRIWG'01), pp. 115-124, Darmstadt, Germany.

DCMI, 2005, "Dublin Core Metadata Initiative - DCMI Metadata Terms". In: http://dublincore.org/documents/dcmi-terms/, Access in 03/2006.

DEY, A. K., 2001, "Understanding and Using Context", Personal and Ubiquitous Computing, v. 5, n. 1, pp. 4-7.

DEY, A. K., 2000, Providing Architectural Support for Building Context-Aware Applications, PhD Thesis, Georgia Institute of Technology.

DEY, A. K., ABOWD, G. D., 2000, "Towards a Better Understanding of Context and Context-Awareness". In: Proceedings of the CHI 2000 Workshop on The What, Who, Where, When, and How of Context-Awareness, The Hague, Netherlands.

DEY, A. K., FUTAKAWA, M., SALBER, D., ABOWD, G. D., 1999a, "The Conference Assistant: Combining Context-Awareness with Wearable Computing". In: Proceedings of the 3rd International Symposium on Wearable Computers (ISWC'99), pp. 21-28, IEEE Computer Society Press.

DEY, A. K., SALBER, D., ABOWD, G. D., 2001, "A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications", Human Computer Interaction Journal, v. 16, n. Special Issue on Context-Aware Computing, pp. 97-166.

DEY, A. K., SALBER, D., FUTAKAWA, M., ABOWD, G. D., 1999b, An Architecture to Support Context-Aware Applications. Technical Report, Georgia Institute of Technology.

DILLENBOURG, P., BAKER, M. J., BLAYE, A., O'MALLEY, C., 1996, "The Evolution of Research on Collaborative Learning", Learning in Humans and Machines: Towards an Interdisciplinary Learning Science, Oxford: Pergamon.

DOURISH, P., 2001, "Seeking a Foundation for Context-Aware Computing", Human Computer Interaction, v. 16, n. 2, pp. 229-241.

DOURISH, P., 1997, "Extending Awareness Beyond Synchronous Collaboration". In: Proceedings of the Workshop on Awareness in Collaboration Systems (CHI'97), Atlanta, USA.

Page 111: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

103

DOURISH, P., BELLOTTI, V., 1992, "Awareness and Coordination in Shared Workspaces". In: Proc. ACM Conference on Computer Supported Cooperative Work (CSCW'92), pp. 107-114, Toronto, Ontario.

ELLIS, L., GIBBS, S. J., REIN, G. L., 1991, "Groupware: Some Issues and Experiences", Communications of the ACM, v. 34, n. 1, pp. 38-58.

EUZENAT, J., LÉGER, A., MCGUINNES, D. L., 2006, "Second International Workshop on Contexts and Ontologies: Theory, Practice and Applications". In: http://www.c-and-o.net/, Access in 04/2006.

FILIPPO, D., FUKS, H., LUCENA, C. J. P., 2005, "AulaNetM: Extension of the AulaNet Environment to PDAs". In: 5th International and Interdisciplinary Conference on Modeling and Using Context (Context-05), Workshop on Context and Groupware.

FRANKLIN, S., GRAESSER, A., 1996, "Is it an Agent, or just a Program? A Taxonomy for Autonomous Agents". In: Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag.

FUKS, H., GEROSA, M. A., LUCENA, C. J. P., 2002, "The Development and Application of Distance Learning on the Internet", Open Learning - The Journal of Open andDistance Learning, v. 17, n. 1, pp. 23-38.

FURTADO, A., GATIS, I., ANDRADE, G., SOBRAL, L., 2005, "Travel Mate - ImagineCup 2005". In: http://agenciact.mct.gov.br/index.php?action=/content/view&cod_objeto=25706, Access in 03/2006.

FUSSEL, S. R., PANKOKE-BABATZ, U., PRINZ, W., 1995, "Supporting Cooperative Awareness with Local Event Mechanisms: The GroupDesk System". In: Proceedings of the ECSCW'95, pp. 247-262, Stockholm, Sweden.

GAUVIN, M., BOURRY-BRISSET, A. C., AUGER, A., 2004, "Context, Ontology and Portfolio: Key Concepts for a Situational Awareness Knowledge Portal". In: Proceedings of the 37th Hawaii International Conference on System Sciences - Track 4, p. 40111b.

GEROSA, M. A., 2006, Desenvolvimento de Groupware Componentizado com Base no Modelo 3C de Colaboração, Tese de D.Sc., Pontifícia Universidade Católica do Rio de Janeiro.

GEROSA, M. A., FUKS, H., LUCENA, C. J. P., 2001, "Elementos de Percepção como Forma de Facilitar a Colaboração em Cursos via Internet". In: Anais XII Simpósio Brasileiro de Informática na Educação - SBIE, pp. 194-202, Vitória - ES - Brasil.

GHIDINI, C., SERAFINI, L., BOUQUET, P., 2006, "Second International Workshop on Context Reasoning and Representation". In: http://sra.itc.it/events/crr06/, Access in 04/2006.

GIUNCHIGLIA, F., 1993, "Contextual reasoning". In: Proceedings IJCAI Workshop on Using Knowledge in its Context, pp. 39-49, Chambery France.

GOOGLE, 2006, "GMail, the Google Mail". In: http://mail.google.com, Access in 04/2006.

GOSLAR, K., SCHILL, A., 2004, "Modeling Contextual Information Using Active Data Structures". In: Proceedings of the Current Trends in Database Technology - EDBT 2004, Workshops on Pervasive Information Management (PIM), v. LNCS 3268, pp. 325-334.

GREENBERG, S., 2001, "Context as a Dynamic Construct", Human Computer Interaction, v. 16, n. 2-4, pp. 257-268.

GROSS, T., PRINZ, W., 2003, "Awareness in Context: A Light-Weight Approach". In: Proceedings of the Eights European Conference on Computer-Supported Cooperative Work - ECSCW 2003, pp. 295-314, Helsinki, Finland.

GROSS, T., SPECHT, M., 2001, "Awareness in Context-Aware Information Systems". In: Mensch & Computer - 1. Fachuebergreifende Konferenz, pp. 173-182, Bad Honnef, Germany.

GROSS, T., STARY, C., TOTTER, A., 2005, "User-Centered Awareness in Computer-Supported Cooperative Work-Systems: Structured Embedding of Findings from Social Sciences", Human Computer Interaction, v. 18, n. 3, pp. 323-360.

Page 112: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

104

GRUBER, T., 1993, "A Translation Approach to Portable Ontologies", Knowledge Acquisition, v. 5, n. 2, pp. 199-220.

GRUDIN, J., 1994, "Groupware and Social Dynamics: Eight Challenges for Developers", Communications of the ACM, v. 37, n. 1, pp. 92-105.

GU, T., PUNG, H. K., ZHANG, D. Q., 2004a, "A Bayesian Approach for Dealing with Uncertain Contexts". In: Proceedings of the Second International Conference on Pervasive Computing (Pervasive 2004), Vienna, Austria.

GU, T., PUNG, H. K., ZHANG, D. Q., 2005, "A Service-Oriented Middleware for Building Context-Aware Services", Elsevier Journal of Network and Computer Applications (JNCA), v. 28, n. 1, pp. 1-18.

GU, T., PUNG, H. K., ZHANG, D. Q., WANG, X. H., 2004b, "A Middleware for Building Context-Aware Mobile Services". In: Proceedings of IEEE Vehicular Technology Conference (VTC 2004), Milan, Italy.

GU, T., WANG, X. H., PUNG, H. K., ZHANG, D. Q., 2004c, "An Ontology-based Context Model in Intelligent Environments". In: Proceedings of Communication Networks and Distributed Systems Modeling and Simulation Conference, San Diego, California, USA.

GUTWIN, C., 1997, Workspace Awareness in Real-Time Distributed Groupware, Ph.D. Thesis, University of Calgary, In: http://www.cs.usask.ca/faculty/gutwin/publications/.

GUTWIN, C., GREENBERG, S., 2002, "A Descriptive Framework of Workspace Awareness for Real-Time Groupware". In: Computer Supported Cooperative Work, v. 11(3-4), pp. 411-446, Special Issue on Awareness in CSCW, Kluwer Academic Press.

HALPIN, T., 2006, "ORM - Object Role Modeling". In: http://www.orm.net/index.html, Access in 05/2006.

HELD, A., BUCHHOLZ, S., SCHILL, A., 2002, "Modeling of Context Information for Pervasive Computing Applications". In: Proceedings of the 6th World Multiconference on Systemics, Cybernetics and Informatics (SCI2002), Orlando, FL, USA.

HENRICKSEN, K., 2003, A Framework for Context-Aware Pervasive Computing Applications, PhD Thesis, School of Information Technology and Electrical Engineering, The University of Queensland.

HENRICKSEN, K., INDULSKA, J., 2005, "Developing Context-Aware Pervasive Computing Applications: Models and Approach", Pervasive and Mobile Computing Journal.

HENRICKSEN, K., INDULSKA, J., RAKOTONIRAINY, A., 2002, "Modeling Context Information in Pervasive Computing Systems". In: Proceedings of 1st International Conference on Pervasive Computing, v. LNCS 2414, pp. 167-180, Springer, Zurich, Switzerland.

HENRICKSEN, K., LIVINGSTONE, S., INDULSKA, J., 2004, "Towards a Hybrid Approach to Context Modelling, Reasoning and Interoperation". In: UbiComp 1st International Workshop on Advanced Context Modelling, Reasoning and Management, pp. 54-61, Nottingham.

HONG, J. I., LANDAY, J. A., 2001, "An Infrastructure Approach to Context-Aware Computing", HCI Journal, v. 1, n. 16, pp. 287-303.

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.

IANNELLA, R., 2001, "Representing vCard Objects in RDF/XML". In: http://www.w3.org/TR/vcard-rdf, Access in 03/2006.

IBM, 2006, "Lotus Notes". In: http://www-306.ibm.com/software/lotus/, Access in 03/2006.

INDULSKA, J., DE ROURE, D., 2004, "Proceedings of the First International Workshop on Advanced Context Modelling, Reasoning and Management". In: http://pace.dstc.edu.au/ContextWorkshop2004Program.html, Access in 04/2006.

Page 113: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

105

INDULSKA, J., NICKLAS, D., 2006, "CoMoRea'06 - 3rd Workshop on Context Modeling and Reasoning". In: http://nexus.informatik.uni-stuttgart.de/COMOREA/2006/, Access in 04/2006.

INDULSKA, J., ROBINSONA, R., RAKOTONIRAINY, A., HENRICKSEN, K., 2003, "Experiences in Using CC/PP in Context-Aware Systems". In: Proceedings of the 4th International Conference on Mobile Data Management (MDM2003), v. LNCS 2574, pp. 247-261, Melbourne/Australia.

ISO, IEC, 2002, Topic Maps. ISO/IEC 13250, Available at http://y12web2.y12.doe.gov/sgml/sc34/document/0322_files/iso13250-2nd-ed-v2.pdf.

JENA, 2006, "Jena - A Semantic Web Framework for Java". In: http://jena.sourceforge.net/, Access in 03/2006.

JESS, 2006, "Jess - The Expert System Shell for the Java Platform". In: http://herzberg.ca.sandia.gov/jess/, Access in 05/2006.

KICZALES, G., LAMPING, J., MENHDHEKAR, A., MAEDA, C., LOPES, C., LOINGTIER, J. M., IRWIN, J., 1997, "Aspect Oriented Programming". In: Proc. European Conference on Object-Oriented Programming (ECOOP'97), v. 1241 of LNCS, pp. 220-242, Springer-Verlag.

KIFER, M., LAUSEN, G., WU, J., 1995, "Logical Foundations of Object-Oriented and Frame-Based Languages", Journal of the ACM, v. 42, n. 4, pp. 741-843.

KINDBERG, T., BARTON, J., 2001, "A Web-based Nomadic Computing System", Computer Networks, v. 35, n. 4, pp. 443-456.

KIRSCH-PINHEIRO, M., 2001, Mecanismo de Suporte à Percepção em Ambientes Cooperativos, Dissertação de M.Sc., PPGC/UFRGS, Porto Alegre, RS, Brasil.

KIRSCH-PINHEIRO, M., GENSEL, J., MARTIN, H., 2004, "Representing Context for an Adaptative Awareness Mechanism". In: Proc. of the X International Workshop on Groupware (CRIWG'2004), v. LNCS 3198, pp. 339-348, San Carlos, Costa Rica, Springer-Verlag.

KIRSCH-PINHEIRO, M., LIMA, J. V., BORGES, M. R. S., 2002, "A Framework for Awareness Support in Groupware Systems". In: Proc. 7thInternational Conference on CSCW in Design (CSCWD'02), pp. 13-18, Rio de Janeiro, Brasil.

KIRSCH-PINHEIRO, M., OLIVER, M. V., GENSEL, J., MARTIN, H., 2005, "Context-Aware Filtering for Collaborative Web Systems: Adapting the Awareness Information to the User's Context". In: ACM Symposium on Applied Computing, pp. 1668-1673, Santa Fe, New Mexico, USA.

KIRSCH-PINHEIRO, M., VILLANOVA-OLIVER, M., GENSEL, J., LIMA, J. V., MARTIN, H., 2003, "Providing a Progressive Access to Awareness Information". In: Proceedings of the 10th International Conference on Cooperative Information Systems, CoopIS'2003, v. LNCS2888, pp. 336-353, Catania, Sicily, Italy.

KO, H., KRÜGER, A., LEE, S., WOO, W., 2005, "First International Workshop on Personalized Context Modeling and Management for UbiComp Applications". In: http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-149/, Access in 04/2006.

KORPIPÄÄ, P., MÄNTYJÄRVI, J., KELA, J., KERÄNEN, H., MALM, E., 2003, "Managing Context Information in Mobile Devices", IEEE Pervasive Computing, v. 2, n. 3, pp. 42-51.

LIECHTI, O., 2000, "Awareness and the WWW: an Overview". In: Proc. Workshop on 'Awareness and the WWW' (CSCW '00), v. 21 (3), pp. 3-12, ACM Press, New York, USA.

LUFF, P., HEATH, C., 1998, "Mobility in Collaboration". In: Proc. of the ACM 1998 Conference on Computer Supported Cooperative Work, pp. 305-314, Seattle, WA, US.

MARK, G., FUCHS, L., SOHLENKAMP, M., 1997, "Supporting Groupware Conventions through Contextual Awareness". In: Proceedings of ECSCW'97, pp. 253-268, Lancaster, England, Kluwer Academic Publishers.

MCCAFFREY, L., 1998, Representing Change in Persistent Groupware Environments. Grouplab report. Department of Computer Science, University of Calgary, Alberta, Canada, January.

Page 114: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

106

MCCARTHY, J., 1993, "Notes on Formalizing Contexts". In: Proceedings of the Thirteenth International Joint Conference on Artificial Intelligence, pp. 555-560, San Mateo, California.

MEIRE, A. P., 2003, Suporte à Edição Cooperativa de Diagramas Utilizando Versões, Dissertação de Mestrado, Instituto de Matemática e Núcleo de Computação e Eletrônica, Universidade Federal do Rio de Janeiro, Brasil.

MICROSOFT, 2003, "MSN Instant Messenger". In: http://www.msn.com, Access in 04/2006.

MICROSOFT, 2005, "MSProject". In: http://www.msproject.com/, Access in 03/2006.

MIKA, P., AKKERMANS, H., 2005, "Towards a New Synthesis of Ontology Technology and Knowledge Management", The Knowledge Engineering Review, v. 19, n. 4, pp. 317-345.

MOLLI, P., SKAF-MOLLI, H., OSTER, G., JOURDAIN, S., 2002, "SAMS: Synchronous, Asynchronous, Multi-Synchronous Environments". In: Proc. 7thInternational Conference on CSCW in Design (CSCWD'02), pp. 80-84, Rio de Janeiro, Brasil.

MORSE, D. R., ARMSTRONG, S., DEY, A. K., 2000, "The What, Who, Where, When and How of Context-Awareness". In: http://www-static.cc.gatech.edu/fce/contexttoolkit/pubs/CHI2000-workshop.pdf, Access in 03/2006.

MUÑOZ, M. A., GONZALEZ, V. M., RODRÍGUEZ, M., FAVELA, J., 2003, "Supporting Context-Aware Collaboration in a Hospital: An Ethnographic Informed Design". In: Proc. of CRIWG'03, v. LNCS 2806, pp. 330-344, Springer-Verlag Berlin, Heidelberg.

NOY, N. F., MCGUINNES, D. L., 2001, "Ontology Development 101: A Guide to Creating Your First Ontology". In: http://www.ksl.stanford.edu/people/dlm/papers/ontology101/ontology101-noy-mcguinness.html, Access in 07/2005.

OMG, 2006, "Unified Modeling Language - Resource Page". In: http://www.uml.org/, Access in 05/2006.

OPENCYC, 2006, "OpenCyc". In: http://www.opencyc.org/, Access in 04/2006.

ÖZTÜRK, P., AAMODT, A., 1997, "Towards a Model of Context for Case-Based Diagnostic Problem Solving". In: Proceedings of the interdisciplinary conference on modeling and using context (Context-97), pp. 198-208, Rio de Janeiro, Brasil.

PEPPER, S., 2002, "The TAO of Topic Maps: Finding the Way in the Age of Infoglut". In: http://www.ontopia.net/topicmaps/materials/tao.html.

PLAYSTATION, 2004, "Game Dictionary". In: www.playstationpro2.com/dictionary.html, Access in 03/2006.

POOLE, D., GOEBEL, R., ALELIUNAS, R., 1998, "Theorist". In: http://www.cs.ubc.ca/~poole/theorist.html, Access in 05/2006.

POWER, R., 2003, "Topic Maps for Context Management". In: Proceedings of the 1st International Symposium on Information and Communication Technologies - Workshop on Adaptive Systems for Ubiquitous Computing, pp. 199-204, Dublin, Ireland.

PRAKASH, A., SHIM, H. S., LEE, J. H., 1999, "Data Management Issues and Tradeoffs in CSCW Systems", IEEE Transactions on Knowledge and Data Engineering, v. 11, n. 1, pp. 213-227.

PREUVENEERS, D., DEN BERGH, J. V., WAGELAAR, D., GEORGES, A., RIGOLE, P., CLERCKX, T., BERBERS, Y., CONINX, K., JONCKERS, V., DE BOSSCHERE, K., 2004, "Towards an Extensible Context Ontology for Ambient Intelligence". In: Ambient Intelligence: Second European Symposium, EUSAI 2004, LNCS 3295, pp. 148-159, Eindhoven, The Netherlands.

PRINZ, W., 1999, "NESSIE: An Awareness Environment for Cooperative Settings". In: Proceedings of the Sixth European Conference on Computer Supported Cooperative Work, pp. 391-410, Copenhagen, Denmark.

PROTÉGÉ, 2006, "The Protégé Ontology Editor and Knowledge Acquisition System". In: http://protege.stanford.edu/, Access in 04/2006.

RACER, 2005, "Racer Manager". In: http://www.sts.tu-harburg.de/~r.f.moeller/racer/, Access in 04/2006.

Page 115: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

107

RAMAMPIARO, H., NYGARD, M., 1999, "Cooperative Database System: A Constructive Review of Cooperative Transactions Models". In: Proc. International Symposium on Database Applications in Non-Tradicional Environments (DANTE'99), pp. 315-324, IEEE Computer Society Press, Kyoto, Japan.

RANGANATHAN, A., CAMPBELL, R. H., 2003, "A Middleware for Context-Aware Agents in Ubiquitous Computing Environments". In: ACM/IFIP/USENIX International Middleware Conference, Rio de Janeiro, Brasil.

RANGANATHAN, A., CAMPBELL, R. H., RAVI, A., MAHAJAN, A., 2002, "ConChat: A Context-Aware Chat Program", IEEE Pervasive Computing, pp. 52-58.

RANGANATHAN, A., LEI, H., 2003, "Using Context Information to Improve Human Communication", IEEE Computer, v. 36, n. 4, pp. 90-92.

RANGANATHAN, A., MCGRATH, R. E., CAMPBELL, R. H., MICKUNAS, D., 2003, "Ontologies in a Pervasive Computing Environment". In: Workshop on Ontologies and Distributed Systems (part of the 18'th International Joint Conference on Artificial Intelligence (IJCAI 2003), Acapulco, Mexico.

RANGANATHAN, A., MCGRATH, R. E., CAMPBELL, R. H., MICKUNAS, D., 2004, "Use of Ontologies in a Pervasive Computing Environment", The Knowledge Engineering Review, v. 18, n. 3, pp. 209-220.

REDMILES, D. F., KANTOR, M. L., SOUZA, C. R. B., 2002, "Awareness Gauges". In: http://www.isr.uci.edu/projects/cassius/flier.pdf, Access in 05/2006.

RITTENBRUCH, M., 2002, "Atmosphere: A Framework for Context-Awareness", International Journal of Human-Computer Interaction, v. 14, n. 2, pp. 159-180.

RITTENBRUCH, M., 1999, "Atmosphere: Towards Context-Selective Awareness Mechanisms". In: Proc. of the 8th International Conference on Human-Computer Interaction, pp. 332-328.

RIVA, O., 2005, "A Context Infrastructure for the Support of Mobile Context-Aware Services". In: http://www.cs.helsinki.fi/u/kraatika/Courses/f4fMC/WS1/Riva.pdf, Access in 04/2006.

ROMÁN, M., HESS, C. K., CERQUEIRA, R., RANGANATHAN, A., CAMPBELL, R. H., NAHRSTEDT, K., 2002, "Gaia: A middleware infrastructure to enable active spaces", IEEE Pervasive Computing, pp. 74-83.

ROSA, M. G. P., 2004, Inserindo Contexto em Groupware, Dissertação de M.Sc., NCE-IM/UFRJ, Rio de Janeiro, Brasil.

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.

ROSA, M. G. P., BORGES, M. R. S., SANTORO, F. M., 2005, "Avaliando a Influência do Contexto da Interação no Nível de Cooperação de um Grupo". In: Anais do Simpósio Brasileiro de Informática na Educação (SBIE'05), II Workshop de Ferramentas para Colaboração (WCSCW'05), Juiz de Fora, MG.

RUSSELL, S., NORVIG, P., 2003, Artificial Intelligence – A Modern Approach. 2 ed., New Jersey, Prentice Hall.

SANTORO, F. M., BRÉZILLON, P., ARAÚJO, R. M., 2005, "Context Dynamics in Software Engineering Process", International Journal of Advanced Engineering Informatics, v. Accepted, to appear.

SCHILIT, B., ADAMS, N., WANT, R., 1994, "Context-Aware Computing Applications". In: Proc. of the Workshop on Mobile Computing Systems and Applications, Santa Cruz, CA.

SCHILIT, B., WANT, R., 1995, "The Xerox ParcTab". In: http://sandbox.parc.com/parctab/, Access in 03/2006.

SCHULZ, S., LEAKE, D. B., ROTH-BERGHOFER, T., 2006, "MRC '06 - Third International Workshop on Modeling and Retrieval of Context". In: http://mrc2006.workshop.hm/, Access in 04/2006.

Page 116: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

108

SOHLENKAMP, M., 1998, Supporting Group Awareness in Multi-User Enviroment Through Perceptualization, M.Sc. Dissertation, Fachbereich Mathematik-Informatik der Universität - Gesamthochschule - Paderborn, http://orgwis.gmd.edu/projects/ POLITeam/poliawac/ms-diss/.

SOHLENKAMP, M., PRINZ, W., FUCHS, L., 2000, "POLIAwac: Design and Evaluation of an Awareness Enhanced Groupware Client", AI & Society Journal, v. 14, pp. 31-47.

STRANG, T., LINNHOFF-POPIEN, C., 2004, "A Context Modeling Survey". In: Workshop on Advanced Context Modelling, Reasoning and Management, in 6th International Conference on Ubiquitous Computing, Nottingham/England.

STRANG, T., LINNHOFF-POPIEN, C., FRANK, K., 2003, "CoOL: A Context Ontology Language to enable Contextual Interoperability". In: Proceedings of 4th International Conference on Distributed Applications and Interoperable Systems (DAIS2003)., v. LNCS 2893, pp. 236-247, Paris, France, Springer Verlag.

TAM, J., 2002, Supporting Change Awareness in Visual Workspaces, M.Sc. Dissertation, Department of Computer Science, University of Calgary, Alberta.

TECO, 2000, "TEA - Technology for Enabling Awareness". In: http://www.teco.edu/tea/, Access in 05/2006.

TEDESCO, P., 2001, Mediating Meta-Cognitive Conflicts in Group Planning Situations, PhD Thesis, The University of Leeds, Computer Based Learning Unit and School of Computing.

TREVOR, J., RODDEN, T., BLAIR, G., 1993, "COLA: A Lightweight Activity Model for CSCW". In: Proc. European Computer Supported Cooperative Work (ECSCW'93), pp. 13-17, Milan.

UBC, 2000, "Glossary of Common IT Terms". In: http://www.sauder.ubc.ca/cgs/itm/itm_glossary.html, Access in 03/2006.

VIEIRA, V., 2003, Ariane: Um Mecanismo de Apoio à Percepção em Bases de Dados Compartilhadas, Dissertação de M.Sc., Programa de Engenharia e Sistemas - COPPE - UFRJ, Rio de Janeiro, Brasil.

VIEIRA, V., LUCENA, B., ROCHA, F., 2005a, "CoWS - Collaborative Writing through Shared Spaces". In: http://www.cin.ufpe.br/~vvs/cows, Access in 04/2006a.

VIEIRA, V., MANGAN, M. A. S., WERNER, C. M. L., MATTOSO, M. L. Q., 2004, "Ariane: An Awareness Mechanism for Shared Databases". In: Proceedings of the X International Workshop on Groupware, CRIWG2004, San Carlos, Costa Rica, pp. 92-104.

VIEIRA, V., TEDESCO, P., SALGADO, A. C., 2005b, "Representação de Contextos em Ambientes Colaborativos Usando Ontologia". In: Anais do XVI Simpósio Brasileiro de Informática na Educação, Workshop Brasileiro de Tecnologias para Colaboração.

VIEIRA, V., TEDESCO, P., SALGADO, A. C., 2005c, "Towards an Ontology for Context Representation in Groupware". In: Proceedings of the 11th International Workshop on Groupware (CRIWG'05), pp. 367-375, Porto de Galinhas, Brasil.

VIEIRA, V., ZARATE, D., TEDESCO, P., SALGADO, A. C., 2006, "An Ontology-Based Reasoning Mechanism for Context Management in Groupware". In: Submitted to XII International Workshop on Groupware, CRIWG'2006, Valladolid, Spaña.

W3C, 2004, "Composite Capabilities / Preferences Profile (CC/PP)". In: http://www.w3.org/Mobile/CCPP/, Access in 01/2006.

WANG, X. H., GU, T., ZHANG, D. Q., PUNG, H. K., 2004, "Ontology based context modeling and reasoning using OWL". In: Workshop on Context Modeling and Reasoningat II IEEE International Conference on Pervasive Computing and Communication, Orlando, Florida.

WANT, R., HOPPER, A., FALCAO, V., GIBBONS, J., 1992, "The Active Badge Location System", ACM Transactions on Information Systems, v. 10, n. 1, pp. 91-102.

WAPFORUM, 2003, "User Agent Profile (UAProf)". In: http://www.openmobilealliance.org/release_program/uap_v20.html, Access in 01/2006.

Page 117: Gerenciamento de Contexto em Sistemas Colaborativosvvs/cemantika/docs/2006_Qualify... · Gerenciamento de Contexto em Sistemas Colaborativos Vaninha Vieira dos Santos Monografia de

109

WIKIPEDIA, 2006a, "Canal do Transporte". In: http://www.canaldotransporte.com.br/letram.asp, Access in 03/2006a.

WIKIPEDIA, 2006b, "Wikipedia - Framework". In: http://pt.wikipedia.org/wiki/Framework, Access in 03/2006b.

WIKIPEDIA, 2006c, "Wikipedia - Toolkit". In: http://pt.wikipedia.org/wiki/Toolkit, Access in 03/2006c.

ZARATE, D., 2006, Aplicação de contexto ao CoWS uma ferramenta de escrita colaborativa, Trabalho Final de Graduação, Centro de Informática - UFPE, Recife - Brasil.

ZIMMERMANN, A., LORENZ, A., SPECHT, M., 2005a, "Applications of a Context-Management System". In: Proceedings of the CONTEXT-2005555, 569.

ZIMMERMANN, A., SPECHT, M., LORENZ, A., 2005b, "Personalization and Context Management", User Modeling and User-Adapted Interaction, v. 15, n. 3-4, pp. 275-302.