17.04.2013 Views

Um modelo hıbrido baseado em ontologias para aplicaç ... - PUC-Rio

Um modelo hıbrido baseado em ontologias para aplicaç ... - PUC-Rio

Um modelo hıbrido baseado em ontologias para aplicaç ... - PUC-Rio

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Um</strong> <strong>modelo</strong> híbrido <strong>baseado</strong> <strong>em</strong> <strong>ontologias</strong> <strong>para</strong> <strong>aplicaç</strong>ões<br />

sensíveis ao contexto no middleware MoCA ∗<br />

Ricardo C. A. da Rocha † , Marco A. Casanova, Markus Endler<br />

1 Departamento de Informática<br />

Pontifícia Universidade Católica do <strong>Rio</strong> de Janeiro (<strong>PUC</strong>-<strong>Rio</strong>)<br />

<strong>Rio</strong> de Janeiro – RJ – Brazil<br />

{rcarocha,casanova,endler}@inf.puc-rio.br<br />

Abstract. Several projects in context-aware computing have adopted ontologies<br />

for modeling context information, due to its rich constructions for modeling<br />

high-dependent concepts and its mechanisms for describing complex inferences.<br />

However, ontologies introduce scalability and performance drawbacks<br />

on context-aware syst<strong>em</strong>s, which usually process high-volume and distributed<br />

information. To avoid such disadvantage, some research efforts have proposed<br />

the adoption of hybrid context models. This paper presents a hybrid context<br />

model for the MoCA, a middleware for developing and deploying context-aware<br />

collaborative applications for mobile users.<br />

Resumo. Vários projetos <strong>em</strong> computação sensível ao contexto têm adotado<br />

<strong>ontologias</strong> <strong>para</strong> modelag<strong>em</strong> de contexto, devido às suas construções ricas<br />

<strong>para</strong> modelag<strong>em</strong> de conceitos altamente dependentes entre si e a facilidade<br />

de prover mecanismos de inferências complexos. Entretanto, <strong>ontologias</strong> introduz<strong>em</strong><br />

limitações na escabilidade e des<strong>em</strong>penho dos sist<strong>em</strong>as sensíveis a contexto,<br />

que usualmente processam informações <strong>em</strong> grande volume e distribuição.<br />

Para contornar esta desvantag<strong>em</strong>, muitos <strong>modelo</strong>s de contexto híbridos têm<br />

sido propostos. Neste artigo, apresentamos um <strong>modelo</strong> de contexto híbrido<br />

<strong>para</strong> o MoCA, um middleware de desenvolvimento de <strong>aplicaç</strong>ões colaborativas<br />

sensíveis a contexto <strong>para</strong> usuários móveis.<br />

1. Introdução<br />

Computação sensível ao contexto é o <strong>para</strong>digma no qual <strong>aplicaç</strong>ões pod<strong>em</strong> se adaptar<br />

dinamicamente a mudanças no estado do ambiente, o qual é chamado simplesmente de<br />

contexto. Contexto pode ser definido como ”qualquer informação que pode ser usada<br />

<strong>para</strong> caracterizar a situação de uma entidade” [Dey 2001], seja a entidade uma pessoa,<br />

objeto, lugar ou atividade.<br />

O <strong>para</strong>digma de computação sensível ao contexto fomentou o desenvolvimento<br />

de vários protótipos de <strong>aplicaç</strong>ões, sist<strong>em</strong>as de middleware e tecnologias de sensoriamento.<br />

Entretanto, a promessa da computação sensível ao contexto ainda não foi de<br />

fato concretizada, e atualmente encontramos apenas alguns poucos serviços orientados ao<br />

contexto de localização disponíveis no mercado.<br />

∗ Trabalho parcialmente financiado pelos projetos CNPq 55.2068/02-2 (ESSMA) e 479824/04-5 (Ed.<br />

Universal)<br />

† Bolsista CNPq


<strong>Um</strong> dos probl<strong>em</strong>as ainda não resolvidos é a especificação de <strong>modelo</strong>s de contexto<br />

capazes de descrever o ambiente físico no qual o sist<strong>em</strong>a está inserido. Estes <strong>modelo</strong>s são<br />

importantes porque defin<strong>em</strong> como o contexto pode ser interpretado e processado pelas<br />

<strong>aplicaç</strong>ões e a infra-estrutura sensível ao contexto.<br />

Vários <strong>modelo</strong>s foram desenvolvidos no passado, como o <strong>modelo</strong> parvalor<br />

[Schilit et al. 1994], mas eles se mostraram insuficientes <strong>para</strong> descrever a complexidade<br />

do ambiente <strong>em</strong> termos do alto relacionamento entre informações contextuais, ambiguidade,<br />

incerteza e imprecisão da informação contextual.<br />

Mais recent<strong>em</strong>ente, <strong>ontologias</strong> têm sido exploradas <strong>para</strong> a modelag<strong>em</strong> de contexto<br />

<strong>em</strong> sist<strong>em</strong>as como CoBrA [Chen 2004], que se baseia na <strong>aplicaç</strong>ão de salas de reunião<br />

inteligentes. Entretanto, <strong>em</strong>bora <strong>ontologias</strong> ofereçam poder de modelag<strong>em</strong>, elas introduz<strong>em</strong><br />

limitações na escalabilidade e des<strong>em</strong>penho dos sist<strong>em</strong>as. Para contornar esta dificuldade,<br />

vários <strong>modelo</strong>s híbridos <strong>baseado</strong>s <strong>em</strong> <strong>ontologias</strong> têm sido desenvolvidos, como<br />

[Henricksen et al. 2004, Strimpakou et al. 2006], com o objetivo de adequar o poder da<br />

modelag<strong>em</strong> baseada <strong>em</strong> <strong>ontologias</strong> com estruturas adequadas <strong>para</strong> o processamento eficiente<br />

de contexto.<br />

Neste artigo, apresentar<strong>em</strong>os um <strong>modelo</strong> de contexto híbrido <strong>para</strong> o middleware<br />

MoCA [Sacramento et al. 2004], seu propósito, uso e limitações. Este artigo está organizado<br />

da seguinte maneira: na seção 2 discutir<strong>em</strong>os o uso de <strong>ontologias</strong> <strong>para</strong> modelag<strong>em</strong><br />

de contexto <strong>em</strong> computação ubíqua e sensível ao contexto e suas principais limitações.<br />

Na seção 3, apresentar<strong>em</strong>os uma visão geral do middleware MoCA e o <strong>modelo</strong> de contexto.<br />

Na seção 4 apresentar<strong>em</strong>os uma abordag<strong>em</strong> <strong>para</strong> utilização de um <strong>modelo</strong> híbrido<br />

de contexto no middleware MoCA, como os conceitos do <strong>modelo</strong> MoCA são mapeados<br />

<strong>para</strong> a ontologia proposta, suas vantagens e limitações. Por fim, na seção 5 discutir<strong>em</strong>os<br />

o estado atual da pesquisa e nossos próximos passos.<br />

2. Ontologias <strong>para</strong> Computação Sensível ao Contexto<br />

Sist<strong>em</strong>as sensíveis ao contexto faz<strong>em</strong> basicamente o uso de contexto <strong>para</strong> promover<strong>em</strong><br />

adaptações, sejam elas no nível de <strong>aplicaç</strong>ão, middleware ou de serviços providos por<br />

um middleware. Na impl<strong>em</strong>entação de <strong>aplicaç</strong>ões sensíveis a contexto, é necessário que<br />

o programador indique as condições <strong>para</strong> as quais uma <strong>aplicaç</strong>ão deve ativar uma certa<br />

funcionalidade. Por ex<strong>em</strong>plo, uma <strong>aplicaç</strong>ão de sala de aula inteligente poderia carregar a<br />

apresentação do professor assim que ele entrasse na sala de aula e manter atualizada a lista<br />

de presentes s<strong>em</strong>pre que um aluno entrasse ou saisse da sala durante a aula. Para fazê-lo,<br />

a <strong>aplicaç</strong>ão poderia fazer uso de informações de contexto como localização, papéis dos<br />

usuários na sala, cronograma das aulas e t<strong>em</strong>po.<br />

Várias <strong>ontologias</strong> têm sido desenvolvidas <strong>para</strong> computação ubíqua e sensível ao<br />

contexto. <strong>Um</strong> dos primeiros sist<strong>em</strong>as sensíveis a contexto a utilizar<strong>em</strong> <strong>ontologias</strong> foi<br />

o CoBrA [Chen 2004], que tinha como <strong>aplicaç</strong>ão-alvo as salas de reuniões inteligentes,<br />

<strong>para</strong> os quais o sist<strong>em</strong>a reconhecia reuniões agendadas <strong>em</strong> um calendário, participantes<br />

que estavam presentes nas salas e automatizava tarefas dependendo dos papéis que eles<br />

deveriam executar na reunião. Neste contexto, duas <strong>ontologias</strong> foram desenvolvidas:<br />

SOUPA [Chen et al. 2004], uma ontologia padrão <strong>para</strong> <strong>aplicaç</strong>ões ubíquas que modelava<br />

conceitos com pessoa, reunião e ação, e CoBrA-ONTO, que descrevia os conceitos específicos<br />

do ambiente físico da universidade na qual as <strong>aplicaç</strong>ões CoBrA executavam.


Outros ex<strong>em</strong>plos de sist<strong>em</strong>as sensíveis ao contexto que faz<strong>em</strong> uso de <strong>ontologias</strong> são<br />

ACAI [Khedr and Karmouch 2005] e GAIA [Ranganathan et al. 2003]. Estes trabalhos<br />

d<strong>em</strong>onstraram o poder de <strong>ontologias</strong> <strong>para</strong> descrever informações contextuais e <strong>em</strong> se<strong>para</strong>r<br />

a descrição de contexto e suas regras de inferência da impl<strong>em</strong>entação dos sist<strong>em</strong>as<br />

sensíveis ao contexto.<br />

Entretanto, a adoção de <strong>ontologias</strong> introduziu algumas dificuldades no desenvolvimento<br />

de sist<strong>em</strong>as sensíveis a contexto. A maior desvantag<strong>em</strong> é que elas dificultam a<br />

captura, gerenciamento e processamento de contexto de uma maneira escalável e eficiente<br />

[Wang et al. 2004, Strimpakou et al. 2006]. O probl<strong>em</strong>a do des<strong>em</strong>penho e escalabilidade<br />

torna-se mais crítico quando o sist<strong>em</strong>a processa informações de contexto como<br />

localização, que pod<strong>em</strong> mudar rapidamente e exigir a execução constante de inferências.<br />

Além disso, as abstrações <strong>para</strong> acesso e uso de contexto <strong>baseado</strong> <strong>em</strong> <strong>ontologias</strong> não são<br />

adequadas. Ontologias não permit<strong>em</strong> modelar diretamente mudanças ao longo do t<strong>em</strong>po<br />

e adaptações, o que são imprescindíveis <strong>para</strong> computação sensível ao contexto.<br />

Além desta limitação, alguns trabalhos [Henricksen et al. 2004] argu<strong>em</strong> que o<br />

tipo de inferência possível com linguagens como OWL são limitados <strong>para</strong> modelag<strong>em</strong><br />

de informação contextual, e que é difícil modelar inferência baseada <strong>em</strong> qualidade de<br />

contexto ou a utilização de informação contextual imperfeita.<br />

Para contornar tais limitações, recent<strong>em</strong>ente têm sido desenvolvidas abordagens<br />

de modelag<strong>em</strong> de contexto híbridas, que faz<strong>em</strong> o uso de <strong>ontologias</strong> <strong>em</strong> conjunto<br />

com outras técnicas de modelag<strong>em</strong> e processamento, tentanto aproveitar ao máximo<br />

as qualidades de cada um dos <strong>modelo</strong>s. Ex<strong>em</strong>plos desses esforços são os trabalhos<br />

[Henricksen et al. 2004] e [Strimpakou et al. 2006].<br />

3. Modelag<strong>em</strong> e Processamento de Contexto no Middleware MoCA<br />

MoCA [Sacramento et al. 2004] é um middleware <strong>baseado</strong> <strong>em</strong> serviços <strong>para</strong> o desenvolvimento<br />

de <strong>aplicaç</strong>ões sensíveis ao contexto. Na arquitetura MoCA, nós modelamos<br />

duas informações de contexto base: a informação de contexto local, que descreve o contexto<br />

de execução de um dispositivo incluindo dados com nível de energia, m<strong>em</strong>ória e<br />

uso da CPU, e o contexto de conectividade s<strong>em</strong> fio, que inclui os pontos de acesso IEEE<br />

802.11 alcançáveis pelo dispositivo e seus correspondentes níveis de sinal. O LIS (Location<br />

Inference Service) [Nascimento 2005] é um serviço MoCA responsável por publicar<br />

informações de contexto de localização dos dispositivos na forma de localizações<br />

simbólicas (ex<strong>em</strong>plo: Sala A, Prédio B), o qual é inferido a partir do contexto de<br />

comunicação s<strong>em</strong> fio do dispositivo.<br />

Recent<strong>em</strong>ente, propus<strong>em</strong>os uma extensão do <strong>modelo</strong> de contexto original<br />

do MoCA, descrito <strong>em</strong> [Sacramento et al. 2004]. Este novo <strong>modelo</strong> de contexto<br />

[da Rocha and Endler 2006b] foi desenvolvido com o objetivo de prover extensibilidade<br />

e permitir a modelag<strong>em</strong> de relacionamentos, dependência e associações entre<br />

informações contextuais. Além disso, introduzimos uma abordag<strong>em</strong> simples <strong>para</strong> modelag<strong>em</strong><br />

de qualidade de contexto.<br />

Neste <strong>modelo</strong> de contexto, o el<strong>em</strong>ento básico é o atributo de contexto, que encapsula<br />

valores ou uma associação com outra informação contextual. No <strong>modelo</strong> de contexto,<br />

o desenvolvedor modela o comportamento <strong>em</strong> t<strong>em</strong>po de execução das informações de


contexto, tais como: se uma informação é estática ou dinâmica, se a confiabilidade de uma<br />

informação decresce com o t<strong>em</strong>po, detalhes <strong>para</strong> auxiliar a implantação do tipo de contexto<br />

no serviço de contexto, qual é o provedor de contexto responsável pela geração da<br />

informação contextual, e o domínio do ambiente distribuído no qual o contexto se aplica.<br />

Essas informações são importantes <strong>para</strong> garantir o melhor des<strong>em</strong>penho e escalabilidade<br />

no processamento de contexto [da Rocha and Endler 2006a]. Além dessas informações, é<br />

possível descrever abstrações <strong>para</strong> o uso de contexto como consultas contextuais e eventos<br />

de mudança de contexto.<br />

O <strong>modelo</strong> de contexto é descrito <strong>em</strong> um arquivo XML, composto de quatro partes:<br />

estrutura do contexto, que representa os atributos do contexto e o interrelacionamento<br />

com outros tipos de contexto, meta-informação de qualidade de contexto, eventos contextuais<br />

and consultas. O trecho abaixo mostra um XML simplificado no qual é modelado<br />

parte do tipo de contexto UserContext.<br />

<br />

<br />

descriptive comment<br />

<br />

....<br />

<br />

<br />

<br />

<br />

....<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

A cada atributo de contexto pode estar associada uma meta-informação de qualidade<br />

de contexto do atributo <strong>em</strong> termos de precisão and confiabilidade. A precisão<br />

especifica uma região de valores que o atributo de contexto pode assumir. Por ex<strong>em</strong>plo,<br />

<strong>para</strong> uma informação de localização recuperada de um sensor GPS, a precisão é um valor<br />

constante (usualmente próximo de cinco metros) e que expressa o erro presumido máximo<br />

<strong>para</strong> o valor do contexto. A precisão também pode ser descrita como a granularidade da<br />

informação de contexto. Por ex<strong>em</strong>plo, o serviço LIS diss<strong>em</strong>ina informação de localização<br />

<strong>em</strong> termos de regiões simbólicas, que pode ser especificada <strong>em</strong> termos de salas, prédios<br />

ou campus. A confiabilidade especifica um valor numérico que estima a probabilidade do<br />

valor do contexto estar correto.<br />

Eventos contextuais representam abstrações sobre situações ou condições ambientais<br />

(expressas <strong>em</strong> termos de atributos de contexto) nas quais uma <strong>aplicaç</strong>ão pode estar<br />

interessada. <strong>Um</strong> evento contextual é especificado <strong>em</strong> termos de valores de atributos de<br />

contexto e predicados. <strong>Um</strong> ex<strong>em</strong>plo de evento contextual é a diminuição do nível de bateria<br />

de um dispositivo <strong>para</strong> um nível crítico (menor que um valor especificado). Neste<br />

caso, uma <strong>aplicaç</strong>ão poderia ser projetada <strong>para</strong> reagir a uma dada condição ambiental registrando<br />

o interesse por este evento contextual e recebendo a respectiva notificação assim<br />

que ele a condição for satisfeita. Em alguns casos, a condição que dis<strong>para</strong> um evento con-


textual pode ser muito complexa <strong>para</strong> ser descrita simplesmente <strong>em</strong> termos de valores de<br />

atributos e, neste caso, deve ser especificada no próprio el<strong>em</strong>ento provedor da informação<br />

contextual. Por ex<strong>em</strong>plo, o LIS utiliza um algoritmo probabilístico <strong>para</strong> determinar se<br />

um dispositivo entrou <strong>em</strong> uma área simbólica, o que corresponde ao evento contextual<br />

EnteringInAnArea, que não pode ser descrito como uma simples conjunção de valores de<br />

atributos.<br />

Consultas contextuais representam abstrações sobre consultas <strong>para</strong> requisição<br />

síncrona de informação de contexto. Aplicações utilizam consultas contextuais <strong>para</strong> recuperar<br />

informações contextuais que satisfaz<strong>em</strong> a certas condições. Por ex<strong>em</strong>plo, LIS<br />

permite algumas consultas baseadas <strong>em</strong> localização, como ”recuperar todas as áreas<br />

simbólicas” e ”recuperar todos os dispositivos dentro de uma área simbólica”. Consultas<br />

contextuais permit<strong>em</strong> ao desenvolvedor do contexto especificar s<strong>em</strong>ânticas de consultas<br />

que pod<strong>em</strong> ser compartilhadas entre várias <strong>aplicaç</strong>ões que utilizam a informação contextual.<br />

Assim como ocorre com eventos contextuais, consultas pod<strong>em</strong> ser especificadas na<br />

forma de expressões explícitas, utilizando uma linguag<strong>em</strong> s<strong>em</strong>elhante a SQL, ou pod<strong>em</strong><br />

ser impl<strong>em</strong>entadas pelo provedor de contexto, caso a consultas seja difícil de especificar<br />

por expressões.<br />

<strong>Um</strong> <strong>modelo</strong> de contexto MoCA é implantado no ambiente utilizando a ferramenta<br />

CT (Context Tool), que valida o <strong>modelo</strong> quando à estrutura do XML e o estado do sist<strong>em</strong>a<br />

de tipos de contexto corrent<strong>em</strong>ente mantida na infra-estrutura MoCA. Além disto,<br />

a ferramenta gera uma biblioteca que permite o acesso ao contexto e d<strong>em</strong>ais abstrações<br />

via construções orientadas a objetos. <strong>Um</strong>a discussão mais detalhada sobre o <strong>modelo</strong> de<br />

contexto do MoCA pode ser encontrada <strong>em</strong> [da Rocha and Endler 2006b].<br />

4. Abordag<strong>em</strong> de Integração com Ontologias - ONTO-MoCA<br />

ONTO-MoCA é uma ontologia que descreve os conceitos e abstrações do <strong>modelo</strong> de<br />

contexto MoCA, descrito na seção anterior. Esta ontologia foi desenvolvida com três<br />

propósitos: (1) oferecer um <strong>modelo</strong> alternativo ao <strong>modelo</strong> MoCA, facilitando o compartilhamento<br />

do <strong>modelo</strong> com outras arquiteturas ou sist<strong>em</strong>as; (2) oferecer um <strong>modelo</strong> mais<br />

complexo do ambiente nos quais os sist<strong>em</strong>as sensíveis a contexto estão inseridos, que<br />

não seja d<strong>em</strong>asiadamente focado dos detalhes de impl<strong>em</strong>entação ou comportamentais; e<br />

(3) permitir mecanismos de inferência e verificação adicionais aos já feitos no <strong>modelo</strong><br />

MoCA.<br />

ONTO-MoCA descreve os conceitos existentes no <strong>modelo</strong> MoCA, s<strong>em</strong> a responsabilidade<br />

de descrever <strong>em</strong> detalhes o comportamento <strong>em</strong> t<strong>em</strong>po de execução dos tipos<br />

de contexto. O núcleo da ONTO-MoCA é a modelag<strong>em</strong> das três principais abstrações<br />

do <strong>modelo</strong> de contexto MoCA: os atributos de contexto, consultas e eventos contextuais,<br />

além do contexto propriamente dito. Atributos de contexto são diretamente mapeados<br />

na ontologia, utilizando-se propriedades e classes. Entretanto, consultas e eventos contextuais<br />

são parcialmente mapeados, porque muitas informações do <strong>modelo</strong> MoCA descrev<strong>em</strong><br />

detalhes de impl<strong>em</strong>entação e mantém associações com código desenvolvido fora<br />

do próprio <strong>modelo</strong>.<br />

Consultas contextuais são modeladas como classes associadas ao contexto, <strong>para</strong><br />

que elas tenham <strong>para</strong> o desenvolvedor o significado de uma abstração. Consultas implícitas,<br />

ou seja, impl<strong>em</strong>entadas no provedor de contexto, são modeladas da mesma maneira.


Seguimos a mesma abordag<strong>em</strong> <strong>para</strong> modelar eventos contextuais: como eles representam<br />

mudanças t<strong>em</strong>porais <strong>em</strong> instâncias de contexto, não pod<strong>em</strong> ser modelados diretamente<br />

na ontologia utilizando os mecanismos de OWL. Como eles dev<strong>em</strong> ser interpretados<br />

como abstrações pelo desenvolvedor, eventos contextuais foram impl<strong>em</strong>entados<br />

como classes na ontologia. Nesta versão da ONTO-MoCA ainda não adotamos nenhum<br />

mecanismo <strong>para</strong> a modelag<strong>em</strong> das condições de geração dos eventos, tais como RuleML<br />

ou built-ins predicates de SWRL.<br />

Figura 1. Estrutura do contexto na ONTO-MoCA<br />

A figura 1 exibe uma simplificação da ontologia MoCA, descrevendo as principais<br />

propriedades de um contexto. Nesta ontologia descrev<strong>em</strong>os os conceitos do <strong>modelo</strong><br />

MoCA utilizando a mesma estrutura. Assim, um Context é formado de atributos de<br />

contexto (ContextAttribute), um ContextTarget e os conjuntos de consultas e eventos<br />

contextuais (ContextualEvent) que especificam a interface da classe de contexto.<br />

A cada atributo de contexto ContextAttribute pod<strong>em</strong> estar associada uma informação<br />

de QoC, na forma de AttributeP recision e AttributeAccuracy. As consultas e eventos<br />

contextuais possu<strong>em</strong> uma particularidade: pod<strong>em</strong> ser definidos pelo provedor do contexto,<br />

como é o caso de queries do tipo ProviderDefinedQuery e dos eventos contextuais do<br />

tipo ProviderDefinedEvent. Embora elas existam como conceitos no <strong>modelo</strong>, apenas<br />

a impl<strong>em</strong>entação dos provedores é que especifica a sua estrutura.<br />

4.1. Mapeamento Inter-<strong>modelo</strong>s<br />

Para que ONTO-MoCA funcionasse junto com o <strong>modelo</strong> de contexto MoCA, desenvolv<strong>em</strong>os<br />

um mecanismo <strong>para</strong> manter os <strong>modelo</strong>s atualizados e consistentes entre si.<br />

O mecanismo de mapeamento entre os dois <strong>modelo</strong>s possui uma componente estática<br />

e outra dinâmica. O mapeamento estático ocorre <strong>em</strong> t<strong>em</strong>po de implantação de contexto<br />

no MoCA, fazendo uso do XML de contexto MoCA, no qual a ontologia ONTO-MoCA<br />

deve ser atualizada <strong>para</strong> cobrir os novos tipos de contexto sendo incorporados pela CT.<br />

O mapeamento dinâmico ocorre <strong>em</strong> t<strong>em</strong>po de execução e as instâncias de contexto deve<br />

ser atualizadas no ONTO-MoCA como resultado da alteração do contexto do ambiente.<br />

A manutenção dinâmica da ontologia é o ponto crítico de des<strong>em</strong>penho <strong>para</strong> um sist<strong>em</strong>a<br />

sensível ao contexto.


O mapeamento estático é impl<strong>em</strong>entado por meio de módulos incorporados à CT<br />

que t<strong>em</strong> acesso a todos os <strong>modelo</strong>s de contexto corrent<strong>em</strong>ente disponíveis <strong>para</strong> o MoCA.<br />

Com o uso de Jena [HP Labs 2006], o módulo atualiza as classes do ONTO-MoCA e verifica<br />

possíveis inconsistências que os novos tipos de contexto possam criar (ver seção 4.2).<br />

O uso da ONTO-MoCA entretanto, não interfere na maneira como as <strong>aplicaç</strong>ões<br />

acessam e manipulam contexto. Todas as construções <strong>para</strong> acesso a contexto continuam<br />

sendo orientadas a objetos, seguindo o <strong>modelo</strong> tradicional de MoCA, <strong>para</strong> não comprometer<br />

o des<strong>em</strong>penho das <strong>aplicaç</strong>ões sensíveis a contexto.<br />

A figura 2 ilustra as principais operações que estabelec<strong>em</strong> o mapeamento entre<br />

os <strong>modelo</strong>s MoCA e ONTO-MoCA. <strong>Um</strong> usuário desenvolvedor de <strong>aplicaç</strong>ões sensíveis<br />

ao contexto atua mais diretamente na ONTO-MoCA, investigando como os conceitos<br />

da ontologia pod<strong>em</strong> auxiliá-lo na impl<strong>em</strong>entação da <strong>aplicaç</strong>ão e adicionando novos conceitos<br />

à ontologia de maneira modelar conceitos que compl<strong>em</strong>entam o <strong>modelo</strong> MoCA na<br />

descrição do ambiente. Assim, este usuário pode executar operações de navegação (1) e<br />

modificação (2) na ontologia. Estas mesmas operações pod<strong>em</strong> ser executadas pelo desenvolvedor<br />

de novos provedores de contexto, no <strong>modelo</strong> MoCA, onde o usuário especifica<br />

como o contexto se comporta <strong>em</strong> t<strong>em</strong>po de execução.<br />

Desenvolvedor<br />

Aplicação<br />

2<br />

Modificar<br />

Navegar<br />

1<br />

ONTO-MoCA<br />

Gerar stub<br />

XML MoCA<br />

4<br />

stub<br />

Modelo<br />

3<br />

Atualizar<br />

7<br />

Verificar<br />

consistência<br />

Preenc her<br />

stub<br />

5<br />

XML<br />

Modelo<br />

Modelo de Contexto<br />

MoCA<br />

Implantar<br />

<strong>modelo</strong><br />

Gerar<br />

código<br />

Figura 2. Operações inter-<strong>modelo</strong>s MoCA e ONTO-MoCA<br />

6<br />

2<br />

Modificar<br />

Navegar<br />

1<br />

código<br />

Desenvolvedor de<br />

Provedor de<br />

Contexto<br />

Os dois <strong>modelo</strong>s interag<strong>em</strong> entre si, realizando operações de atualização (3), com<br />

a qual ONTO-MoCA é atualizada com os novos contextos que for<strong>em</strong> adicionados no<br />

<strong>modelo</strong> MoCA. Esta operação mantém ONTO-MoCA consistente com o <strong>modelo</strong> MoCA.<br />

<strong>Um</strong> desenvolvedor de provedores de contexto t<strong>em</strong>, portanto, o poder de alterar o <strong>modelo</strong><br />

MoCA, dentro das regras de manutenção de consistência do próprio <strong>modelo</strong>.<br />

Por outro lado, as modificações feitas por um desenvolvedor de <strong>aplicaç</strong>ão estão<br />

limitadas aos conceitos descritos <strong>em</strong> ONTO-MoCA que, conforme dito anteriormente,<br />

não impl<strong>em</strong>enta todos os conceitos do <strong>modelo</strong> MoCA. Caso tais modificações precis<strong>em</strong><br />

ser atualizadas no <strong>modelo</strong> MoCA, como por ex<strong>em</strong>plo a inclusão de um novo tipo de<br />

contexto, é gerado um stub de <strong>modelo</strong> XML (4) MoCA, que deve ser posteriormente<br />

preenchido (5) com as informações que descrev<strong>em</strong> o comportamento do contexto, pelo<br />

desenvolvedor da <strong>aplicaç</strong>ão ou do provedor de contexto. Após esta etapa, o novo tipo<br />

de contexto é implantado no <strong>modelo</strong> MoCA (6), que o valida na ONTO-MoCA e gera o<br />

código que permite ao desenvolvedor acessá-lo na sua <strong>aplicaç</strong>ão. Todas as modificações<br />

<strong>em</strong> ONTO-MoCA que não interfiram no <strong>modelo</strong> MoCA pod<strong>em</strong> ser incorporadas no <strong>modelo</strong><br />

s<strong>em</strong> qualquer outra etapa adicional. Por ex<strong>em</strong>plo, um desenvolvedor pode classificar


as informações contextuais de outra maneira ou adicionar conceitos que interess<strong>em</strong> somente<br />

à sua <strong>aplicaç</strong>ão.<br />

No mapeamento dinâmico, a ontologia é atualizada com os novos conceitos e<br />

instâncias que são introduzidos no <strong>modelo</strong> MoCA <strong>em</strong> t<strong>em</strong>po de execução. Portanto, o<br />

mapeamento só ocorre no sentido MoCA→ONTO-MoCA. Para não comprometer o des<strong>em</strong>penho<br />

e escalabilidade das <strong>aplicaç</strong>ões, na ONTO-MoCA instâncias de contexto (estado<br />

atual do contexto) não são representadas, mas apenas suas mudanças <strong>em</strong> t<strong>em</strong>po de<br />

execução que interessam a <strong>aplicaç</strong>ões na forma de um evento contextual. O interesse<br />

nos eventos é registrado usando a API MoCA. Quando um evento ocorre é gerada uma<br />

instância de AdaptationEvent, que é uma subclasse de ContextualEvent e representa<br />

um evento contextual ocorrido no t<strong>em</strong>po. Só existe uma instância de AdaptationEvent<br />

<strong>para</strong> uma mesma instância de contexto e de <strong>aplicaç</strong>ão interessada e, por isso, ao criar uma<br />

instância, a instância que representa o evento anterior é destruída.<br />

4.2. Inferência do Modelo Contextual<br />

Este mecanismo de mapeamento inter-<strong>modelo</strong>s permite adicionar novas regras de<br />

verificação do <strong>modelo</strong> de contexto, além dos tipos de validação que jásão feitos pela CT,<br />

que são relacionados com a sintaxe e s<strong>em</strong>ântica do <strong>modelo</strong> XML e com o sist<strong>em</strong>a de tipos<br />

de t<strong>em</strong>po de execução. Por ex<strong>em</strong>plo, provedores de contexto pod<strong>em</strong> usar os mecanismos<br />

de inferência de Jena <strong>para</strong> deduzir novas informações de contexto ou eventos contextuais<br />

mais complexos, como atividade ou situação.<br />

Para realizar qualquer inferência continua sendo necessário o uso da API MoCA<br />

<strong>para</strong> registrar interesse por contexto ou eventos contextuais. Se uma inferência é baseada<br />

no valor corrente de uma informação contextual, ele deve utilizar o mecanismo tradicional<br />

de acesso síncrono ao contexto de MoCA <strong>para</strong> recuperar o contexto. <strong>Um</strong> módulo permite<br />

transformar um contexto MoCA <strong>em</strong> uma instância de classe da ontologia, evitando que<br />

todas as instâncias de contexto precis<strong>em</strong> ser representadas na ontologia.<br />

Se uma inferência é baseada <strong>em</strong> um evento contextual, então ele pode ser feita<br />

diretamente na ONTO-MoCA. Optamos por permitir essa inferência diretamente na ontologia,<br />

porque o <strong>modelo</strong> assíncrono de notificação de eventos contextuais, utilizado na<br />

API MoCA, pode não ser adequado <strong>para</strong> impl<strong>em</strong>entação dos mecanismos de inferência.<br />

Ainda assim, s<strong>em</strong>pre é possível converter um evento contextual MoCA na sua correspondente<br />

instância de ontologia.<br />

4.3. Vantagens<br />

A principal vantag<strong>em</strong> na adoção de um mecanismo híbrido de modelag<strong>em</strong> de contexto<br />

é o compartilhamento do <strong>modelo</strong> MoCA com outros sist<strong>em</strong>as, e o acesso a conceitos já<br />

previamente definidos <strong>em</strong> outras <strong>ontologias</strong> como t<strong>em</strong>po (DAML-Time) e relacionamento<br />

entre pessoas (FOAF).<br />

<strong>Um</strong>a outra vantag<strong>em</strong> do <strong>modelo</strong> híbrido é a possibilidade de usar <strong>ontologias</strong> <strong>para</strong><br />

modelar conceitos que não interfer<strong>em</strong> na publicação ou comportamento do contexto mas<br />

são interessantes <strong>para</strong> modelar o ambiente. Estes conceitos pod<strong>em</strong> facilitar a navegação<br />

do usuário na ontologia e a especificação de contextos e mecanismos de inferência<br />

mais complexos. Sist<strong>em</strong>as de computação ubíqua como CONON [Wang et al. 2004]<br />

e GAIA [Ranganathan et al. 2003], utilizam <strong>ontologias</strong> que classificam contexto <strong>em</strong>


categorias como entidade computacional, localização e documento. Embora tais<br />

classificações não sejam decisivas <strong>para</strong> o comportamento do middleware que gerencia<br />

contexto, elas pod<strong>em</strong> ser importantes <strong>para</strong> que um desenvolvedor selecione o contexto<br />

que interessa à sua <strong>aplicaç</strong>ão. No <strong>modelo</strong> MoCA não é possível modelar tal classificação.<br />

No <strong>modelo</strong> híbrido desenvolvido, é possível compl<strong>em</strong>entar os mecanismos de inferência<br />

utilizando máquinas de inferência que usam <strong>ontologias</strong>. Isso é imprescindível<br />

<strong>em</strong> cenários <strong>em</strong> que o sist<strong>em</strong>a manipula informações de contexto complexas ou quando o<br />

mecanismo de inferência é complexo.<br />

Por último, o <strong>modelo</strong> híbrido permite uma se<strong>para</strong>ção de <strong>modelo</strong>s por interesses de<br />

usuários, conforme já indicado na figura 1. O desenvolvedor de um provedor de contexto<br />

usualmente está interessado nas informações que estão contidas no <strong>modelo</strong> MoCA. Por<br />

outro lado, um desenvolvedor de <strong>aplicaç</strong>ões precisa compreender características de mais<br />

alto nível do contexto, o que são melhor descritas na ONTO-MoCA. Esta se<strong>para</strong>ção facilita<br />

o trabalho de ambos os usuários por não misturar conceitos e abstrações que são de<br />

interesse de apenas um deles.<br />

4.4. Limitações<br />

A abordag<strong>em</strong> híbrida proposta possui algumas limitações. Aplicações sensíveis a contexto<br />

ainda precisam fazer o uso da API MoCA, no mínimo <strong>para</strong> registrar interesse por<br />

contexto ou eventos contextuais. Isto pode dificultar o acesso ao contexto MoCA por<br />

<strong>aplicaç</strong>ões que tenha sido desenvolvidas baseando-se <strong>em</strong> outros middlewares ou linguagens.<br />

Para permitir a coexistência de <strong>aplicaç</strong>ões sensíveis a contexto s<strong>em</strong> comprometer<br />

o des<strong>em</strong>penho, é necessário ainda estabelecer um mecanismo <strong>para</strong> descrever <strong>ontologias</strong> e<br />

regras que sejam específicas do domínio de <strong>aplicaç</strong>ões. Na ONTO-MoCA, <strong>em</strong>bora alguns<br />

eventos contextuais possam ser de interesse de certas <strong>aplicaç</strong>ões, elas são compartilhadas<br />

por todas as <strong>aplicaç</strong>ões.<br />

Como o mapeamento de conceitos inter-<strong>modelo</strong>s não pôde ser completamente impl<strong>em</strong>entado,<br />

o stub XML gerado quando um contexto é adicionado pela ONTO-MoCA<br />

(operação 4 da figura 2) exige do desenvolvedor a inclusão de muitas informações compl<strong>em</strong>entares,<br />

tornando a tarefa de preenchimento do stub mais passível a erros.<br />

5. Conclusões<br />

Neste artigo apresentamos um <strong>modelo</strong> híbrido de modelag<strong>em</strong> de contexto, que integra<br />

a ontologia ONTO-MoCA com o <strong>modelo</strong> MoCA. Tanto os dois <strong>modelo</strong>s como os mecanismos<br />

de validação e inferência que eles utilizam não são equivalentes, mas compl<strong>em</strong>entares.<br />

Este mecanismo híbrido permite o desenvolvimento de <strong>aplicaç</strong>ões sensíveis ao<br />

contexto mais complexas, mantendo o des<strong>em</strong>penho oferecido do middleware MoCA.<br />

Nós pretend<strong>em</strong>os validar as idéias propostas impl<strong>em</strong>entando um protótipo do<br />

mecanismo de integração utilizando Jena e experimentar a integração de uma <strong>aplicaç</strong>ão<br />

MoCA com as <strong>ontologias</strong> e mecanismos de CoBrA. Para uma impl<strong>em</strong>entação realmente<br />

focada no des<strong>em</strong>penho e escalabilidade, é necessário ainda desenvolver um mecanismo<br />

<strong>para</strong> estabelecer domínios <strong>para</strong> ONTO-MoCA que sejam específicos de <strong>aplicaç</strong>ões e<br />

domínios de rede no ambiente distribuído.


Referências<br />

Chen, H. (2004). An Intelligent Broker Architecture for Pervasive Context-Aware Syst<strong>em</strong>s.<br />

PhD thesis, University of Maryland, Baltimore County.<br />

Chen, H., Perich, F., Finin, T., and Joshi, A. (2004). SOUPA: standard ontology for<br />

ubiquitous and pervasive applications. In Mobile and Ubiquitous Syst<strong>em</strong>s: Networking<br />

and Services, 2004. MOBIQUITOUS 2004. The First Annual International Conference<br />

on, pages 258–267.<br />

da Rocha, R. C. A. and Endler, M. (2006a). Context manag<strong>em</strong>ent in heterogeneous,<br />

evolving ubiquitous environments. IEEE Distributed Syst<strong>em</strong>s Online, 7(4). art. no.<br />

0604-o4001.<br />

da Rocha, R. C. A. and Endler, M. (2006b). Supporting context-aware applications: Scenarios,<br />

models and architecture. In Proc. of the XXIII Simpósio Brasileiro de Redes de<br />

Computadores (SBRC), volume I, Curitiba, Brazil.<br />

Dey, A. K. (2001). Understanding and using context. Personal and Ubiquitous Computing,<br />

5(1):4–7.<br />

Henricksen, K., Livingstone, S., and Indulska, J. (2004). Towards a hybrid approach<br />

to context modelling, reasoning and interoperation. In 1st International Workshop<br />

on Advanced Context Modelling, Reasoning and Manag<strong>em</strong>ent, pages 54–61, Orlando,<br />

Florida.<br />

HP Labs (2006). Jena – A s<strong>em</strong>antic web framework for Java. Available at:<br />

http://jena.sourceforge.net/. (Last visited: July, 2006).<br />

Khedr, M. and Karmouch, A. (2005). ACAI: agent-based context-aware infrastructure for<br />

spontaneous applications. Journal of Network and Computer Applications, 28(1):19–<br />

44.<br />

Nascimento, F. N. d. C. (2005). A service for location inference of mobile devices based<br />

on IEEE 802.11. Master’s thesis, Departamento de Informática, <strong>PUC</strong>-<strong>Rio</strong>. (in portuguese).<br />

Ranganathan, A., McGrath, R. E., Campbell, R. H., and Mickunas, M. D. (2003). Use<br />

of ontologies in a pervasive computing environment. The Knowledge Engineering<br />

Review, 18(3):209–220.<br />

Sacramento, V., Endler, M., Rubinsztejn, H. K., Lima, L. S., Goncalves, K., and do Nascimento,<br />

F. N. (2004). MoCA: A middleware for developing collaborative applications<br />

for mobile users. IEEE Distributed Syst<strong>em</strong>s Online, 5(10).<br />

Schilit, B., Adams, N., and Want, R. (1994). Context-aware computing applications. In<br />

Proceedings of the Workshop on Mobile Computing Syst<strong>em</strong>s and Applications, pages<br />

85–90, Santa Cruz, CA, USA.<br />

Strimpakou, M., Roussaki, I., Pils, C., Kalatzis, N., and Anagnostou, M. (2006). Hybrid<br />

context modeling: A location-based sch<strong>em</strong>e using ontologies. In 3rd International<br />

Workshop on Advanced Context Modelling, Reasoning and Manag<strong>em</strong>ent, Pisa, Italy.<br />

Wang, X., Zhang, D., Gu, T., Dong, J., and Pung, H. K. (2004). Ontology based context<br />

modeling and reasoning using OWL. In 1st International Workshop on Advanced<br />

Context Modelling, Reasoning and Manag<strong>em</strong>ent, Orlando, Florida.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!