• Nenhum resultado encontrado

Uma proposta de ontologia para residências inteligentes buscando a integração de dispositivos

N/A
N/A
Protected

Academic year: 2021

Share "Uma proposta de ontologia para residências inteligentes buscando a integração de dispositivos"

Copied!
98
0
0

Texto

(1)

U

MA

P

ROPOSTA DE

O

NTOLOGIA PARA

R

ESIDÊNCIAS

INTELIGENTES BUSCANDO A INTEGRAÇÃO DE

DISPOSITIVOS

Dissertação submetida ao Programa de Pós-Graduação em Computação Aplicada da Universidade Tecnológica Federal do Paraná como requisito parcial para a obtenção do título de Mestre em Computação Aplicada.

Curitiba PR Agosto 2014

(2)

U

MA

P

ROPOSTA DE

O

NTOLOGIA PARA

R

ESIDÊNCIAS

INTELIGENTES BUSCANDO A INTEGRAÇÃO DE

DISPOSITIVOS

Dissertação submetida ao Programa de Pós-Graduação em Computação Aplicada da Universidade Tecnológica Federal do Paraná como requisito parcial para a obtenção do título de Mestre em Computação Aplicada.

Área de concentração: Engenharia de Sistemas Computacionais

Linha de Pesquisa: Sistemas de Informação

Orientador: Prof. Dr. Roberto Cesar Betini

Curitiba PR Agosto 2014

(3)

Ramos , Le t i c i a

R175p Uma p r opos t a de on t o l og i a pa r a r es i dênc i as i n t e l i gen t es 2014 buscando a i n t eg r ação de d i spos i t i vos / Le t i c i a Ramos . 2014 .

x i i , 94 f : i l . ; 30 cm

Tex t o em po r t uguês , com r esumo em i ng l ês

Di sse r t ação (Mes t r ado ) - Un i ve r s i dade Tecno l óg i ca Fede r a l do Pa r aná . Pr og r ama de Pós -Gr aduação em Compu t ação Ap l i cada , Cu r i t i ba , 2014

B i b l i og r a f i a : f . 89 - 94

1 . On t o l og i a . 2 . Compu t ação ub í qua . 3 . Au t omação r es i denc i a l 4 . Redes de senso r es sem f i o . 5 . Compu t ação - Di sse r t ações . I .Be t i n i , Robe r t o Cesa r . I I .Un i ve r s i dade Tecno l óg i ca

Fede r a l do Pa r aná - Pr og r ama de Pós - g r aduação em Compu t ação Ap l i cada . I I I . T í t u l o .

(4)

Candidata: __________________________________________________________________________________________________ DECLARAÇÃO PARA A OBTENÇÃO DO GRAU DE MESTRE

A coordenação do Programa declara que foram cumpridos todos os requisitos exigidos pelo Programa de Pós-Graduação para a obtenção do grau de mestre.

Curitiba, ____de _________________de 20____. "

A Ata de Defesa original está arquivada na Secretaria do PPGCA".

ATA DA DEFESA DE DISSERTAÇÃO DE MESTRADO 20

DISSERTAÇÃO PARA OBTENÇÃO DO GRAU DEMESTRE EM COMPUTAÇÃO APLICADA

No dia 28 de agosto de 2014, às 9:00 horas, reuniu-se na Sala B-202 - bloco C - 2º andar do Câmpus Curitiba, a banca examinadora composta pelos professores doutores:

Prof.Roberto Cesar Betini, Dr. (Presidente) UTFPR - CT Prof.João Alberto Fabro, Dr. UTFPR - CT Prof. Antonio Morais da Silveira, Dr. UFPA Prof. Marco Aurélio Wehrmeister, Dr. UTFPR - CT

sob Presidência de Roberto Cesar Betini para examinar a dissertação da candidata LETÍCIA RAMOS, intitulada: “Uma proposta de Ontologia para Residências Inteligentes buscando a Integração de Dispositivos”. Após a apresentação, a candidata foi arguida pelos examinadores e foi dada a palavra aos presentes para formularem perguntas à candidata. Os examinadores reunidos deliberaram pela ____________________ da dissertação.

A candidata foi informada que a concessão do referido grau, na área de concentração Engenharia de Sistemas Computacionais, está condicionada à (i) satisfação dos requisitos solicitados pela Banca Examinadora e lavrados na documentação entregue à Candidata; (ii) entrega da dissertação em conformidade com as normas exigidas pela UTFPR; e (iii) entrega da documentação necessária para elaboração do Diploma. A Banca Examinadora determina um prazo de _______ dias para o cumprimento dos requisitos (desconsiderar esse parágrafo caso a dissertação seja reprovada).

_________________________________________________________________________________________ _________________________________________________________________________________________ _______________________________________________________________________________________ Nada mais havendo a tratar, a sessão foi encerrada às ________________, dela sendo lavrada a presente ata que segue assinada pela Banca Examinadora e pela Candidata.

Departamento Acadêmico de Informática – DAINF Programa de Pós-Graduação em Computação Aplicada - PPGCA

Mestrado Profissional

____________________________________________ Prof. Roberto Cesar Betini, Dr.

presidente - (UTFPR - CT)

________________________________________ Prof. Antonio Morais da Silveira, Dr.

(UFPA)

___________________________________ Prof. João Alberto Fabro, Dr.

(UTFPR - CT)

__________________________________ Prof. Marco Aurélio Wehrmeister

(5)
(6)

Agradecimentos

Agradeço primeiramente à Deus por me dar forças e sabedoria para completar meu mestrado.

Agradeço à minha família pelo apoio. Em especial minha mãe Maria Inês e meu esposo Rodrigo por todo carinho, paciência, incentivo e orações. Sem vocês eu não chegaria ao fim deste caminho.

Agradeço também ao meu orientador Roberto Cesar Betini por todo apoio, paciência e ensinamentos recebidos, permitindo completar este trabalho.

Aos professores Marco Aurélio Wehrmeister, João Alberto Fabro, Adolfo Gustavo Serra Seca Neto e Gustavo Alberto Giménez Lugo, por todas as revisões e sugestões durante os seminários.

(7)

Resumo

Uma residência inteligente é capaz de adquirir e aplicar conhecimentos sobre um ambiente e, de forma autônoma, adaptar-se aos seus habitantes. Estes espaços contêm uma diversidade de dispositivos que precisam interagir, porém, também existem no mercado diversos padrões para automação. Esta heterogeneidade dificulta a interoperabilidade entre dispositivos tornando a aplicação dependente de um único fornecedor para que a comunicação seja efetiva. Da mesma forma, sistemas domóticos possuem serviços dinâmicos e a adição ou mobilidade de novos dispositivos ao longo do tempo requer não somente que aplicações possam comunicar-se, mas também identificar que novos serviços foram adicionados e, quando necessário, estabelecer uma comunicação pertinente ao novo contexto. Finalmente, sistemas de automação também precisam de alguma forma perceber o mundo real e interpretá-lo. Os sinais recebidos por sensores não possuem qualquer valor se não forem interpretados em relação ao contexto da residência. Ontologias podem auxiliar a resolver estes três problemas representando formalmente o domínio. Ela permite uma compreensão comum das informações através de um modelo semântico e possibilita a execução de suposições explícitas para o contexto da residência. Assim, esta dissertação propõe uma ontologia para integração em uma residência inteligente que representa o ambiente, seus dispositivos, indivíduos e os agentes de software permitindo que sejam criadas as relações para a interação. A consistência da ontologia foi avaliada em relação às questões de competência e um protótipo foi criado para validar a aplicação prática do modelo.

Palavras chaves: Ambientes inteligentes, residências inteligentes, ontologias, computação ubíqua.

(8)

Abstract

A smart home is able to acquire and apply knowledge about the environment and autonomously adapt to its inhabitants. These spaces contain a diversity of devices that need to interact and there are also many commercial protocols for automation. This heterogeneity hinders the interoperability between devices turning the application dependent on a single technology for an effective communication. In the same way, domotic systems have dynamic services and the mobility of new devices from time to time requires the ability to discovery when a new service have been added and, when necessary, establish a new communication related to this new context. Finally, automation systems also need to perceive the real world and interpret it. The signals received from sensors have no value unless they are interpreted against the context of the residence. Ontologies can help to solve these three problems formally representing the domain. It enables a common understanding of information through a semantic model and enables the execution of explicit assumptions to the context of residence. Thus, this dissertation proposes integration ontology for a smart house that represents the environment, devices, people and software agents creating the relationships and reasoning about rules for interaction. The consistency of the ontology was assessed in relation to its competence and a prototype was created to validate the practical application of the model.

(9)

Sumário

Capítulo 1 ... 14 Introdução ... 14 1.1 Motivação ... 15 1.2 Objetivos ... 16 1.2.1 Objetivos Específicos ... 16 1.3 Organização do Trabalho ... 16 Capítulo 2 ... 17 Materiais e Métodos ... 17 2.1 Residências Inteligentes... 17 2.1.1 Funcionalidades... 18 2.1.2 Sensibilidade ao contexto... 19 2.1.3 Perfil de Usuários ... 20

2.1.4 Dispositivos, sensores e atuadores ... 20

2.1.5 Padrões e protocolos utilizados em Automação Residencial ... 21

2.2 Ontologias ... 22

2.2.1 Principais componentes de uma ontologia ... 22

2.2.2 Classificação de ontologias ... 23

2.2.3 Metodologia para Modelagem de Ontologias ... 24

2.3 Sistemas de Agentes ... 25

2.3.1 FIPA ... 26

2.4 Ferramentas e Plataformas de Agentes ... 29

2.5 Discussão ... 30

Capítulo 3 ... 31

Trabalhos Correlatos... 31

3.1 Ontologia Smart Space Context ... 31

3.2 DomoML... 32

3.3 DogOnt... 34

3.4 Context-Based Digital Personality ... 37

(10)

3.6 Ontology-Based Home Service Model ... 39 3.7 SOPRANO... 40 3.8 BASont... 40 3.9 SOUPA ... 41 3.10 Discussão... 43 Capítulo 4 ... 45 Ontologia Proposta ... 45

4.1 Domínio e escopo da ontologia... 45

4.2 Classes e hierarquias ... 46

4.2.1 Classes de Localização... 46

4.2.2 Classes de Dispositivos ... 49

4.2.3 Classe para Pessoa ... 54

4.2.4 Classe Time ... 55

4.2.5 Classe para Agentes de Software ... 56

4.3 Discussão ... 57 Capítulo 5 ... 58 Capítulo 5 ... 58 Arcabouço Proposto ... 58 5.1 Protocolos de Comunicação... 59 5.2 Agentes do Arcabouço ... 63 5.2.1 Agente Gerente... 63

5.2.2 Agente de Funcionalidade e de Dispositivos ... 65

5.3 Experimentos Realizados... 66

5.3.1 Resultados da Interação... 75

Capítulo 6 ... 84

Resultados... 84

6.1 Consistência semântica ... 84

6.2 Avaliação de aplicação prática... 85

6.3 Comparativo... 85

Capítulo 7 ... 87

Conclusão ... 87

(11)

7.2 Trabalhos Futuros ... 88 8 Referências ... 89

(12)

Lista De Ilustrações

Figura 1: Organização de um ambiente inteligente adaptado de Chan (2008)... 18

Figura 2: Exemplo de mensagem [Fonte: O Autor] ... 28

Figura 3: Ontologia Smart space context [Qin et al., 2007] ... 32

Figura 4: Ontologia DomoML-Env [Sommaruga et al., 2005] ... 33

Figura 5: Ontologia DogOnt [Bonino et al., 2008]... 36

Figura 6: Ontologia CDBP [Jacquet et al.,2012] ... 37

Figura 7: Ontologia para PhysiologicalFuncion [Wei et al,. 2012] ... 39

Figura 8: Ontologia SOPRANO [Klein, 2007]... 40

Figura 9: Ontologia para comunicação entre dispositivos [Ploennigst et al., 2012] .... 41

Figura 10: Ontologias SOUPA Core e SOUPA Extension [Chen et al,. 2004]... 42

Figura 11 – Ontologia AssistiveHome [Fonte: O Autor] ... 47

Figura 12 - Classe BuildingEnvironment [Fonte: O Autor]... 48

Figura 13 - Classe GeoLocation [Fonte: O Autor] ... 49

Figura 14: Classe UnControllable para representação de elementos estáticos [Fonte: O Autor] ... 50

Figura 15: Classe Controllable para representação de dispositivos [Fonte: O Autor] . 51 Figura 16 - Classe Functionality [Fonte: O Autor]... 51

Figura 17 - Classe Command [Fonte: O Autor] ... 52

Figura 18 - Classe State [Fonte: O Autor] ... 53

Figura 19 – Propriedades para classes de dispositivos[Fonte: O Autor] ... 53

Figura 20 - Classe Person, FunctionalImpact e propriedades [Fonte: O Autor]... 54

Figura 21 - Classe Need e propriedades [Fonte: O Autor] ... 55

Figura 22: Classes relativas à pessoa [Fonte: O Autor]... 55

Figura 23: Classe OWL-Time [W3C, 2006] ... 56

Figura 20: Classes relacionadas ao Agente ... 57

Figura 25: Arquitetura do Arcabouço [Fonte: O Autor]... 59

Figura 26: Exemplo de mensagem [Fonte: O Autor] ... 60

(13)

Figura 28 - Exemplos de Notificações e Relações entre Classes [Fonte: O Autor

adaptado de Bonino et al., 2008] ... 66

Figura 29: Protótipo e placa de automação [Fonte: O Autor] ... 67

Figura 30: Interface dos sensores do quarto [Fonte: O Autor] ... 73

Figura 31: Simulação de sensores para testes [Fonte: O Autor]... 74

Figura 32: Sniffer do JADE antes de iniciar a interação [Fonte: O Autor] ... 75

Figura 33: Botão da interface pressionado [Fonte: O Autor] ... 76

Figura 34: Mensagem enviada pelo agente de sensores da sala [Fonte: O Autor] ... 76

Figura 35: Mensagem enviada pelo agente de Ilumincação para o agente Lâmpada da sala [Fonte: O Autor]... 76

Figura 36:Mensagem enviada pelo agente da Lâmpada recusando a solicitação [Fonte: O Autor]... 77

Figura 37:Lâmpada correspondente a cortina é acesa [Fonte: O Autor] ... 77

Figura 33: Mensagem enviada pelo agente de Sensores para o agente de Iluminação[Fonte: O Autor] ... 77

Figura 39:Sensor de Iluminação pressionado [Fonte: O Autor] ... 78

Figura 40: Mensagem enviada pelo agente de Iluminação para o agente que controla a Cortina [Fonte: O Autor] ... 78

Figura 41: Mensagem enviada pelo agente de Iluminação para o agente da Lâmpada [Fonte: O Autor] ... 78

Figura 42:Lâmpada da sala é acessa [Fonte: O Autor]... 79

Figura 43: Sensor de temperatura pressionado [Fonte: O Autor]... 79

Figura 43: Mensagem enviada pelo agente de Sensores para o agente de temperatura [Fonte: O Autor] ... 79

Figura 45: Mensagem enviada pelo agente de Sensores para o agente de temperatura [Fonte: O Autor] ... 80

Figura 46:Lâmpada correspondente ao Ar condicionado é acessa [Fonte: O Autor]... 80

Figura 47: Sensor de presença pressionado para o quarto [Fonte: O Autor]... 81

Figura 38: Mensagem enviada pelo agente de Sensores para o agente de temperatura [Fonte: O Autor] ... 81

(14)

Figura 50: Mensagem enviada pelo agente de Sensores para o agente de temperatura [Fonte: O Autor] ... 82 Figura 51: Mensagem enviada pelo agente de Sensores para o agente de temperatura [Fonte: O Autor] ... 82 Figura 52: Sniffer ao final da execução do teste com todas as mensagem capturadas [Fonte: O Autor] ... 83 Figura 53: Resoner executado na Ontologia [Fonte: O Autor]... 85

(15)

Lista De Tabelas

Tabela 1: Conceitos reutilizados na ontologia AssistiveHome ... 44

Tabela 2: Estrutura da ação no JADE... 60

Tabela 3: Criação das instâncias dos ambientes da residência ... 60

Tabela 4: Exemplo de mensagem SPARQL para busca de agentes ... 61

Tabela 5: Mensagem RDF para criação das instâncias ... 62

Tabela 6: Criação das instâncias dos ambientes da residência ... 64

Tabela 7: Mensagem RDF para criação das instâncias ... 68

Tabela 8: Mensagem RDF para criação das instâncias ... 70

Tabela 9: Bloqueio de mensagens de acordo com a ontologia e linguagem ... 71

Tabela 10: Extração do conteúdo do texto da mensagem para classes Java ... 71

Tabela 11: Envio de mensagem para detecção de presença ... 73

(16)

Lista De Abreviaturas

ACL Agent Communication Language

AID Agent Identifier

AMS Sistema Gerenciador de Agentes AP Plataforma de Agentes

BDI Beliefs, Desires, Intentions

CIF Classificação Internacional de Funcionalidade, Incapacidade e Saúde DF Directory Facilitator

DL Description Logic

DDO Device Description Ontology

EIA Electronic Industries Association

EIB European Installation Bus

EHS European Home Systems Protocol

FHSS Frequency-hopping spread spectrum

FIPA Foundation for Intelligent Physical Agents.

HTTP Hypertext Transfer Protocol

HVAC Heating, Ventilation, and Air Conditioning

IHC Interface Humano Computador. IIOP Internet Inter-Orb Protocol

ISO International Organization for Standardization

KQML Knowledge Query and Manipulation Language

MTS Message Transport Service

OMS Organização Mundial da Saúde OSI Open Systems Interconnection

OWL Web Ontology Language

RDF Resource Description Framework

SL Semantic Language

TCP/IP Transmission Control Protocol / Internet Protocol

UPnP Universal Plug and Play

(17)

W3C World Wide Web Consortium

WAP Wireless Application Protocol

WEP Wired Equivalent Privacy

WPA Wi-Fi Protected Access

(18)

Capítulo 1

Introdução

A automação de residências, também denominada domótica, é considerada uma das áreas mais promissoras em relação ao desenvolvimento de tecnologias eletrônicas [Chan, 2008]. A redução do custo de hardware aliada a softwares embarcados em minúsculos chips permite que novas aplicações sejam desenvolvidas e que a tecnologia esteja acoplada em diversos dispositivos do dia a dia das pessoas [Augusto, 2010].

Weiser (1991) afirma que um dia a tecnologia estará integrada e acoplada tão fortemente em objetos e ambientes que não será mais percebida pelo usuário. A esta visão, deu o nome de computação ubíqua. Assim, torna-se um dos requisitos de sistemas inteligentes, o dever de agir proativamente, antecipando as necessidades do usuário e suas preferências. O ambiente deve de alguma forma obter conhecimento das necessidades e preferências do usuário, porém liberando-o do ônus da prestação de informação ou programação de qualquer dispositivo, tanto quanto possível.

Cook (2005) considera inteligente uma residência capaz de adquirir e aplicar conhecimentos sobre um ambiente e, de forma autônoma, adaptar-se aos seus habitantes. Estes espaços contêm uma diversidade de sensores, atuadores e dispositivos que precisam interagir, porém, também existem no mercado diversos padrões para automação, como por exemplo, os protocolos de domótica: X10, KNX, LonWorks, UPnP. Esta heterogeneidade dificulta a interoperabilidade entre dispositivos tornando a aplicação dependente de um único fornecedor para que a comunicação seja efetiva [Miori et al., 2010].

Assim, Residências Inteligentes ainda estão longe de serem alcançadas. Apesar do grande número de pesquisas sobre esse contexto, apenas alguns aplicativos foram disponibilizados para o ambiente doméstico e público em geral. Isto ocorre principalmente devido à segmentação de padrões e soluções proprietárias. Embora as casas modernas possam ser equipadas com aparelhos tecnológicos ditos “inteligentes”, ainda poucos destes aparelhos podem ser facilmente conectados uns aos outros [Miori et al.. 2010].

Em sistemas domóticos os serviços são dinâmicos e a adição de novos dispositivos ao longo do tempo requer não somente que aplicações possam comunicar-se, mas também identificar/descobrir quais novos serviços foram adicionados e, quando necessário, estabelecer uma comunicação pertinente ao contexto desta nova aplicação. Além disso, se uma determinada aplicação não exerce o seu papel corretamente no sistema ela poderá afetar de forma inadequada os demais serviços. Ou seja, para que todos os serviços e tecnologias de uma residência possam interagir é necessária uma interoperabilidade tanto no nível sintático como semântico [Edwards, 2001].

Para interagir com o ambiente um sistema de automação também precisa de alguma forma de perceber o mundo real e interpretá-lo. O processo de percepção ocorre através de sensores espalhados pela residência, porém os sinais recebidos não possuem qualquer valor se não forem interpretados em relação ao contexto da residência. Por exemplo, um sensor de presença envia um sinal quando percebe uma variação brusca na temperatura do ambiente.

(19)

Mas a aplicação precisa entender o que este sinal significa em relação à automação da residência e informações como: a posição do sensor na residência, o horário em que ocorreu a ação e as funcionalidades que utilizam os dados deste sensor podem ajudar a entender e contextualizar o valor em questão. Uma maneira de representar estas informações em relação à residência é através de instâncias de uma ontologia.

Uma ontologia, para o contexto computacional, é um tipo de formalismo para a representação do conhecimento. Ela permite uma compreensão comum das informações, possibilita o reuso de domínios de conhecimento e faz suposições explícitas de um domínio [Noy, 2001]. A aplicação de ontologias para sistemas domóticos inteligentes podem auxiliar na construção do raciocínio que pode ser utilizado para diagnóstico, controle e otimização de dispositivos. Segundo Strang et al. (2004) ontologias correspondem a técnica mais promissora para modelagem de contexto.

Esta dissertação pretende solucionar o problema de integração entre aplicações de automação residencial que precisam compartilhar de um mesmo modelo semântico. Uma ontologia comum define o vocabulário para consultas, solicitações e afirmações entre agentes de software e garante a consistência das informações. Porém o problema é definir um modelo que descreva o contexto da residência em relação a quem, o que, onde, quando e por que [Abowd et al., 2000]. Desta forma, uma ontologia denominada AssistiveHome é proposta com o objetivo de permitir a interoperabilidade entre diversos sensores e aplicações. Por último a ontologia será aplicada de forma prática em um arcabouço para validar o modelo.

1.1

Motivação

O aspecto multidisciplinar do domínio de residências inteligentes compreende: tecnologia de sensores e seu hardware; a rede de comunicação, topologia e protocolos; algoritmos de coleta e processamento dos dados; algoritmos para tomada de decisão e contexto [Cook et al., 2005]. Desta forma, uma ontologia que represente todo o contexto de uma residência em relação a quem, o que, onde, quando e por que pode auxiliar na consistência do significado dos dados entre as diversas camadas que compõe uma aplicação de automação inteligente.

A modelagem semântica de uma residência também está presente no trabalho de diversos autores. Dibowski (2010) e Ploennigst (2012) utilizam uma ontologia como modelo de integração para dispositivos heterogêneos. O arcabouço DomoML [Sommaruga, 2005] e DogOnt [Bonino, 2008] propõe ontologias que descrevem o ambiente, os dispositivos e funcionalidades. Abdulrazak (2010) inclui o conceito de tempo e localização absoluta no seu modelo ontológico de residência. A ontologia SOUPA [Chen, 2004] também é utilizada em aplicações de ambientes inteligentes através de classes mais generalistas.

Uma ontologia é uma visão de um domínio do ponto de vista dos seus desenvolvedores, para esta dissertação acredita-se que o usuário e os softwares também fazem parte de uma residência inteligente. Apesar de existirem ontologias para descrever os conceitos acima citados, a criação de um modelo unificado e robusto permite a atualização dos relacionamentos entre as classes, auxiliando não somente na interoperabilidade, mas também oferecendo um modelo de inferência consistente para modelagem de contexto e regras.

(20)

1.2

Objetivos

O objetivo desta dissertação é propor um modelo semântico unificado de residências inteligentes que auxilie na interoperabilidade entre as diversas aplicações, através de uma ontologia

1.2.1

Objetivos Específicos

Os objetivos específicos da dissertação são:

• Criar uma ontologia referente ao contexto de uma residência inteligente.

• Aplicar a ontologia em um arcabouço para interoperabilidade entre as aplicações de um ambiente inteligente.

• Validar o modelo por meio de uma aplicação prática.

• Comparar a ontologia com o estado da arte.

1.3

Organização do Trabalho

Este documento está dividido em sete capítulos. O capítulo dois apresenta uma revisão de conceitos relacionados a residências inteligentes, um referencial teórico para Agentes além de descrever conceitos referentes a ontologias. O capítulo três faz uma análise dos trabalhos correlatos à proposta desta dissertação. O capítulo quatro apresenta o modelo semântico proposto. O capítulo cinco demonstra a aplicação prática para validação da ontologia. O capítulo cinco discute sobre os resultados alcançados. Por fim, o capítulo seis expõe as conclusões obtidas através da validação da proposta.

(21)

Capítulo 2

2

Materiais e Métodos

Este capítulo descreve os conceitos teóricos pertinentes a dissertação. Primeiramente são apresentados conceitos relativos a uma residência inteligente, que serão utilizados para o desenvolvimento da ontologia AssistiveHome. Em seguida, são apresentados conceitos referentes a ontologias e métodos de desenvolvimento. Finalmente, são abordados conceitos relativos a sistemas de agentes, pois serão utilizados na construção do arcabouço de validação da ontologia.

2.1

Residências Inteligentes

O conceito de Residência Inteligente pode ser considerado um subdomínio da área de Ambientes Inteligentes. Segundo Alam (2012), em uma definição recente, residência inteligente é uma aplicação da computação ubíqua [Weiser, 1991] que é capaz de prover serviços automatizados sensíveis ao contexto ou assistivos na forma de inteligência ambiental, controle remoto ou automação residencial. Os serviços oferecidos têm por objetivo o conforto, economia de energia, saúde, ou segurança dos usuários.

Para que um ambiente possa ser considerado inteligente os sistemas devem ser projetados para perceber as características dos usuários, raciocinar sobre os dados armazenados e então selecionar a ação que melhor beneficiará o usuário neste ambiente [Cook, 2007]. Expandindo-se esse conceito, conforme Figura 1, é possível identificar diversos fatores que compõe um sistema de automação. Na base da organização encontram-se os dispositivos que correspondem a sensores, atuadores ou demais eletrônicos que possam de alguma forma perceber ou atuar sobre o ambiente e os usuários. Então, os dispositivos interconectados por uma rede de comunicação, com ou sem fio, enviam os dados para armazenamento e processamento através de algum software com objetivo de prestar serviços para o usuário. Os principais serviços oferecidos tem a finalidade de aumentar o conforto, auxiliar na reabilitação e monitoramento da saúde e oferecer segurança ao usuário [Chan et al., 2008].

Através da análise de todos os itens que compõe uma residência inteligente é possível construir um modelo de domínio que suporte a interoperabilidade entre os sistemas que compõe o ambiente. Dessa forma, serão analisados a seguir conceitos e diversas tecnologias pertinentes ao tema.

(22)

Figura 1: Organização de um ambiente inteligente adaptado de Chan (2008).

2.1.1

Funcionalidades

As funcionalidades de uma residência inteligente devem suprir as necessidades específicas de cada usuário e podem variar de acordo com o público alvo do sistema. Os sistemas domóticos comerciais oferecem suporte às funções mais comumente requisitadas divididas em grupos de controles [Sommaruga et al., 2011]. Apesar de não ser um fator limitante, para a criação da ontologia, é importante classificar as funcionalidades existentes tanto para agrupamento das classes quanto para mapeamento de dispositivos e tecnologias utilizados para suporte as funções. Assim, são listadas as principais funções de acordo com [Bolzani, 2004]:

• Energia Elétrica: existem diversas aplicações para monitoramento, balanceamento e estabilização da rede.

(23)

• Iluminação: atua no acionamento de lâmpadas e também oferece suporte para as funções de consumo de energia.

• Segurança: corresponde aos sistemas de detecção de intrusos, alarmes e controles de acesso.

• Combate a incêndio: monitora a presença de fumaça e fogo.

• Multimídia: controla funções de áudio e vídeo.

• Água e dejetos: oferece controle para válvulas, abastecimento de água, e escoamento de dejetos

• Comunicação: permite a comunicação com entidades externas através de diferentes meios.

2.1.2

Sensibilidade ao contexto

A computação sensível ao contexto permite que as informações obtidas no mundo físico sejam processadas com a finalidade de fornecer serviços para o usuário de acordo com uma determinada situação [Hoareau et al,. 2009]. Aplicações sensíveis ao contexto devem adaptar-se constantemente às mudanças no ambiente, que podem ser referentes a atributos físicos, fisiológicos, psicológicos, comportamentais, de atividades ao longo do tempo, entre outros.

Para que a adaptação ocorra o agente de software deve preocupar-se com a atividade de aquisição, abstração e compreensão dos dados sensoriais, reconhecendo o contexto para um determinado momento. Abowd et al. (2000) apresenta uma classificação para a modelagem de contexto por meio de cinco questões: Who, What, Where, When e Why (Quem, O que, Onde, Quando e Por que).

Who (Quem): aquilo que realiza uma ação. Pode ser tanto uma pessoa quanto

um dispositivo ou aplicação.

What (O que): informações das atividades ou ações executadas por uma pessoa

ou dispositivo.

Where (Onde): refere-se à localização dos objetos ou pessoas no ambiente. When (Quando): toda informação de tempo em relação a atividades, como

início, fim e tempo de duração.

Why (Por que): relaciona-se ao motivo pelo qual uma ação foi executada.

A aquisição de contexto através de sensores é uma tarefa complexa. Com a heterogeneidade dos dados adquiridos por diferentes dispositivos, a aplicação necessita de uma etapa para interpretação dos dados de forma a ser útil para a aplicação. A informação contextual é dinâmica por natureza e as alterações necessitam ser capturadas ao longo do

(24)

tempo. Um dos maiores desafios da computação ubíqua é executar a ação correta no momento correto.

Um sistema de automação inteligente é um grande desafio para a computação sensível ao contexto, ela deve levar em consideração o contexto do usuário em relação à localização, atividade e estado. Da mesma forma, os dispositivos também podem ser móveis e apresentar diferentes estados e funções dependendo do momento.

2.1.3

Perfil de Usuários

O desenvolvimento de ambientes inteligentes não deve levar em consideração apenas o ponto de vista tecnológico. O perfil do usuário é importante para determinar os seus papéis, necessidades, preferências, ou limitações, de forma a proporcionarem respostas personalizadas e adequadas no espaço e no tempo, antecipando a vontade do usuário sem que para tal tenha que existir uma mediação consciente [Röcker et al., 2014].

Qualquer indivíduo pode beneficiar-se de produtos de automação, seja para conforto, segurança ou saúde. Porém para Chan (2008) os maiores beneficiários da tecnologia são idosos, pessoas com deficiência ou doenças crônicas. A Classificação Internacional de Funcionalidade, Incapacidade e Saúde (CIF) [WHO, 2001], desenvolvida pela Organização Mundial da Saúde (OMS) descreve as funcionalidades e incapacidades relacionadas às condições de saúde, identificando o impacto também no ambiente. Neste sentido, a automação residencial assistiva pode auxiliar o indivíduo na execução de atividades diárias de forma independente, diminuindo as barreiras relacionadas aos fatores ambientais e proporcionando certo grau de independência [Ramos et al., 2014a].

A descrição do perfil do usuário e barreiras funcionais na ontologia associadas a dispositivos e atividades permite a execução de ações automatizadas. A relação entre as classes respeitando a classificação de contexto (Quem, O que, Onde, Quando e Por que) permite que as mensagens comunicadas entre as aplicações da residência sejam também pertinentes ao usuário e não somente aos dispositivos envolvidos.

2.1.4

Dispositivos, sensores e atuadores

Sensores e atuadores representam os componentes mais importantes de um ambiente inteligente, eles correspondem aos dispositivos de entrada e saída do sistema, permitindo a interligação entre a computação e o ambiente físico. Existe uma variedade muito grande de atuadores e sensores que possibilitam a execução de ações e o monitoramento de inúmeras grandezas físicas e eventos.

Porém, transformar os dados de sensores em informação é uma tarefa complexa. Eles possuem características únicas que desafiam as técnicas de análise de dados convencionais. Muitas vezes os dados precisam ser tratados em tempo real e de forma contínua incorporando informações temporais e espaciais para obter significado. Algumas vezes os valores também são imprecisos, gerando ruídos [Cook, 2007].

Da mesma forma, os atuadores interligam-se com outros dispositivos da residência para executar uma ação. Por exemplo, alterar a temperatura do sistema de ar condicionado ou acionar uma lâmpada.

As características dos sensores e atuadores são relevantes para a dissertação, uma vez que deles dependem diretamente as capacidades de uma residência inteligente. Em Bolzani

(25)

(2004) e Chan (2008) é possível encontrar uma lista de diversos dispositivos que atuam em um ambiente.

2.1.5

Padrões e protocolos utilizados em Automação Residencial

Para suporte ao modelo semântico proposto nesta dissertação é necessário conhecer os modelos e protocolos existentes para a área de automação residencial. Assim é possível criar uma ontologia que atenda as características de cada tecnologia, principalmente quanto à especificação de funções e comandos de dispositivos. Os protocolos mais utilizados são os seguintes:

ZigBee: É um protocolo de radiofrequência baseado no padrão IEEE 802.15.4. Ele possui baixas taxas de transmissão de dados (250kb/s), porém com baixo consumo de energia. O alcance padrão entre os dispositivos é de 30 m para ambientes internos e 100 m para externos [Rathnayaka et al., 2011].

CEBus: O Protocolo Consumer Electronic Bus foi criado pela EIA (Associação de Indústrias Eletrônicas). O CEBus é uma arquitetura aberta que define protocolos para as comunicações de aparelhos em diferentes meios físicos como: linhas de força, par trançado de baixa voltagem, cabo coaxial, infravermelho, RF e fibra ótica. O endereçamento do dispositivo é feito por hardware e tem 4 bilhões de possibilidades. O CEBus permite que a rede opere ponto-a-ponto sem a necessidade de um nó controlador. O padrão também oferece uma linguagem para controle de objetos que inclui comandos tais como aumentar volume, avançar rápido, voltar, pausar e pular [Desbonnet, 1997]. O padrão CEBus desenvolveu uma linguagem universal para comunicação entre dispositivos de automação denominada CAL (Common Application Language). A linguagem é orientada a objeto e define classes, instâncias e métodos para comandos binários, contínuos, discretos entre outros [Khawand, 1991]. Por exemplo a classe Binary Sensor modela a operação de um sensor que possui estados binários, verdadeiro ou falso, como ligado e desligado. Outro exemplo é a classe Analog Sensor que modela uma quantidade física e contínua como temperatura.

Protocolo X-10 O sistema X-10 foi originalmente desenvolvido nos anos 70 pela empresa Pico Electronics, na Escócia. Porém a patente original expirou em dezembro de 1997 e diversos fabricantes iniciaram a fabricação e expansão de dispositivos seguindo este protocolo. O X-10 utiliza comunicação por rede elétrica utilizando um pulso de sinal na freqüência de 60hz AC, quando o sinal cruza o ponto zero da curva de freqüência. O padrão permite até 256 endereços. Uma mensagem básica em X-10 usa 13 bits: 4 para o código de entrada, 4 para o código do ambiente, 4 para função ou unidade e o último bit indica se os 4 anteriores correspondem a função ou unidade. Uma das limitações do padrão é a de operar apenas funções simples tipo liga/desliga e dimerização de luzes [Kovatsch et al., 2010; Alam et al., 2012].

Universal Plug and Play: O protocolo de Automação Residencial UPnP foi criado em 1999 pelo Fórum UPnP. Este protocolo foi desenvolvido a partir do protocolo PnP (Plug and Play) para suportar configuração automática entre computadores e dispositivos utilizando padrões existentes para Internet como HTML e XML. Cada novo dispositivo conectado deve compartilhar uma descrição em XML contendo informações do fabricante e serviços

(26)

oferecidos, incluindo uma lista de comandos e ações. O Fórum UPnP especifica modelos de controle para alguns dispositivos de automação, entre eles dispositivos para segurança, controle de iluminação e HVAC [Alam et al., 2012].

EIB/KNX: É um padrão ISO e aberto de automação baseado no modelo OSI e dominante na Europa. Ele foi criado através da convergência de outros três padrões, o European Installation

Bus (EIB), BatiBUS e European Home Systems Protocol (EHS). O protocolo permite a

comunicação por cabo, rádio-frequência, linha de potência ou IP/Ethernet. Existem inúmeros dispositivos disponíveis para a tecnologia que oferecem suporte para serviços de iluminação, segurança, gestão de energia, aquecimento, monitoramento e sinalização.

2.2

Ontologias

Ontologia é um tipo de formalismo utilizado para a representação do conhecimento que objetiva: prover uma compreensão comum de uma estrutura de informação entre pessoas ou agentes de software, possibilitar o reuso de domínios de conhecimento, fazer suposições explícitas de um domínio e separar o domínio de conhecimento do domínio operacional. Para atingir este fim a ontologia define entidades, classes, propriedades, predicados e funções e as relações entre componentes [Noy et al., 2001].

Guarino (1998) apresenta uma definição próxima do objetivo da ontologia nesta dissertação conceituando-a como “um artefato constituído por um vocabulário usado para descrever uma dada realidade, mais um conjunto de fatos explícitos em relação ao sentido pretendido para as palavras do vocabulário. Este conjunto de fatos tem a forma da teoria da lógica de primeira ordem, onde as palavras do vocabulário aparecem como predicados unários ou binários”.

Posteriormente, Gruber (2009) delimita o conceito de ontologia para o contexto da computação afirmando que “uma ontologia define um conjunto de representações primitivas com os quais é modelado o domínio do conhecimento ou discurso. A representação de primitivas são tipicamente classes, atributos e relações. A definição da representação primitiva inclui a informação sobre o seu significado e restrições de aplicações lógicas consistentes”.

Por estarem próximas da lógica de primeira ordem ontologias atuam no nível semântico enquanto bases de dados atuam no nível lógico ou físico. Devido a sua independência dos níveis de modelos de dados, ontologias trabalham como interfaces e são utilizadas para integrar bases heterogêneas, permitindo interoperabilidade entre sistemas distintos. Atualmente existem diversos padrões de linguagem e ferramentas, comerciais e gratuitas para criação e manipulação de ontologias.

2.2.1

Principais componentes de uma ontologia

Os componentes das ontologias variam conforme a linguagem utilizada, mas existem alguns conceitos comuns a qualquer ontologia:

• Classes: Modelam os conceitos de domínio ou tarefa. Usualmente estão organizadas em taxonomias e também podem ser aplicadas heranças. A taxonomia de uma classe é

(27)

representada através de uma estrutura em árvore. As classes podem ser concretas ou abstratas. Em contraste com as classes abstratas, as classes concretas podem ter instâncias diretas.

• Atributos: Representam as características dos conceitos e também podem ser chamados de slots, roles ou propriedades. Os atributos representam tipos de dados como números, strings, booleanos, etc.

• Relações: Modelam associações entre conceitos. Relações binárias podem ser utilizadas para expressar atributos de conceitos.

• Instâncias: Representam elementos específicos ou objetos de uma dada classe. Novas instâncias podem ser criadas e valores podem ser atribuídos aos atributos e relações.

• Funções: Representam casos especiais de relações, no qual o enésimo elemento da relação é único para n-1 elementos predecessores, ou seja, é uma relação em que um dado elemento tem uma relação única com um conjunto de outros elementos.

• Axiomas: Modelam frases sempre verdadeiras. Os axiomas são usados para a verificar a consistência da ontologia ou da consistência do conhecimento armazenado.

Existem diversas linguagens para representação de ontologias. Para a construção da ontologia AssitiveHome utilizou-se o modelo OWL (Web Ontology Language) recomendado pelo W3C (World Wide Web Consortium) [McGuinness et al., 2004]. Uma Ontologia OWL serve para descrever um domínio em termos de classes, propriedades e indivíduo, bem como suas respectivas propriedades e seus relacionamentos. Ela foi projetada para ser usada por aplicações que precisam processar o conteúdo da informação, facilitando assim a possibilidade de interpretação do conteúdo. A OWL é fundamentado na linguagem RDF (Resource Description Framework) [Lassila and Swick, 1999] que é um modelo de dados baseados em triplas de sujeito - predicado - objeto, também conhecido como metadados. O objeto de uma declaração RDF pode ser outro objeto ou um recurso literal com um identificador único chamado de URI.

2.2.2

Classificação de ontologias

Guarino (1998) classifica as ontologias de acordo com sua dependência em relação a uma tarefa específica ou a um ponto de vista do conteúdo representado:

• Ontologias de alto nível: descrevem conceitos de forma generalista como conhecimentos de senso comum independentes de um domínio.

• Ontologias de domínio: descrevem um vocabulário relacionado a um domínio genérico, porém introduz termos específicos em uma ontologia de alto nível. Por exemplo uma ontologia para ambientes inteligentes pode ser considerada como de domínio.

• Ontologias de tarefa: descrevem uma tarefa ou atividade, especializando também os termos da ontologia de alto nível.

(28)

• Ontologia de aplicação: descreve conceitos dependentes de um domínio ou tarefa particular, sendo que estas ontologias geralmente estendem ou especializam as ontologias de domínio e de tarefa. A ontologia proposta pode ser considerada uma ontologia de aplicação, pois apresenta conceitos específicos para a comunicação entre sistemas para automação residencial. Ou seja, AssitiveHome é uma especialização do domínio de ambientes inteligentes.

2.2.3

Metodologia para Modelagem de Ontologias

Existem diversas metodologias para desenvolvimento de ontologias como, por exemplo, O4IS (Ontology for Information Systems) [Kabilan, 2007], METHONTOLOGY [Gómez-Perez et al., 2004], e Ontology Development 101 [Noy et al., 2001]. Para a escolha da metodologia a ser utilizada primeiramente é preciso definir os objetivos que se deseja atingir com a ontologia e o tipo de conhecimento que ela irá representar. Assim, entre as diversas alternativas para a modelagem, é possível determinar qual alternativa será a mais adequada para o domínio proposto [Noy et al., 2001; Gómez-Perez et al., 2004].

A O4IS é uma metodologia orientada para a conceituação, concepção e manutenção de uma ontologia. É adequada para pessoas com pouca experiência. A metodologia O4IS tem como núcleo um conjunto de dez etapas, que são orientadas para a definição e desenvolvimento de ontologias de domínio.

A METHONTOLOGY propõe uma metodologia inspirada no ciclo de vida de software para o refinamento do protótipo da ontologia. A evolução do processo de desenvolvimento possui os seguintes passos: especificação, conceitualização, formalização, implementação e manutenção.

A metodologia Ontology Development 101 consiste de um guia interativo desenvolvido para os utilizadores da ferramenta Protégé [Stanford, 2014] composto de sete passos:

1. Identificação do domínio e escopo da ontologia.

2. Reutilização de ontologias existentes.

3. Enumeração dos termos importantes da ontologia.

4. Definição de classes e sua hierarquia.

5. Definição das propriedades das classes.

6. Definição das restrições.

7. Criação de instâncias das classes.

A metodologia proposta por Noy et. al. (2001) foi utilizada para o desenvolvimento da ontologia AssitiveHome. A escolha deve-se ao formato simplificado da metodologia que permite a construção de ontologias em um tempo reduzido e principalmente ao número de recursos envolvidos no projeto, no caso somente o autor.

(29)

Além das metodologias de desenvolvimento de ontologias Gruber (1993) propôs alguns critérios necessários para uma boa ontologia e que podem ser utilizados no processo de validação. São eles:

• Clareza: uma ontologia deve ser capaz de comunicar de forma eficaz o seu significado para os seus utilizadores.

• Coerência: a ontologia deve suportar inferências que sejam consistentes com as suas definições.

• Extensibilidade: uma ontologia deve ser capaz de definir novos termos baseado em definições já existentes.

• Codificação Minimizada: os conceitos devem ser especificados sem depender de nenhum símbolo ou codificação linguística.

• Compromisso Ontológico Mínimo: uma ontologia não deve se restringir ao domínio a ser modelado, dando liberdade aos utilizadores de especializarem e instanciarem a ontologia da forma que necessitarem.

Além dos critérios propostos por Gruber (1993), Brank et al. (2005) sugere entre as possíveis abordagens para avaliar uma ontologia a comparação com um padrão, que pode ser outra ontologia e a utilização de uma aplicação para avaliar os resultados. Desta forma, a ontologia AssitiveHome será avaliada em relação a outras ontologias para verificar a completude do modelo em relação ao contexto de residências inteligentes e também será utilizada em uma arcabouço para avaliar se a ontologia permite a integração entre dispositivos e softwares.

2.3

Sistemas de Agentes

Um agente é uma entidade que executa um conjunto de operações com algum grau de independência ou autonomia e, executando estas operações, emprega algum conhecimento dos objetivos ou desejos do usuário. A sua principal característica está no fato de que não é necessário codificá-lo passo a passo a respeito de como alcançar este objetivo. Ele é capaz de perceber as preferências do usuário, e agir baseado neste conhecimento obtido, tornando a aplicação uma entidade ativa, com certo grau de autonomia e capaz de realizar tarefas que auxiliem o usuário no desempenho de suas atividades de acordo com seus interesses [Wooldridge, 2001].

Wooldridge (2001) apresenta um conjunto de propriedades desejáveis a um agente:

• Sociabilidade: de modo a interagir com outros agentes ou humanos através de algum tipo de linguagem de comunicação;

• Reatividade: de modo a perceber alterações em seu ambiente, reagindo a tempo;

• Pro-atividade: não só reagindo ao ambiente, mas tomando iniciativas quando conveniente;

(30)

Em determinadas aplicações, algumas características são mais importantes que outras, portanto, um agente não precisa ter necessariamente todas elas. O comportamento do agente é dado pelo ambiente no qual ele está inserido e modelado através do seu respectivo projeto.

Sistemas multiagentes correspondem, comumente, a qualquer sistema composto por agentes que interagem entre si. Contudo, a área de inteligência artificial distribuída utiliza o termo apenas para um subconjunto de sistemas, dividindo-os em relação à forma de interação através de duas classes principais: Resolução Distribuída de Problemas e Sistemas Multiagentes [Durfee, et al. 1994].

• Resolução Distribuída de Problemas: corresponde a uma abordagem descendente, a solução é estruturada previamente e os agentes comportam-se conforme proposto inicialmente. Isto é, grande parte do raciocínio sobre a solução é inserido no sistema no momento do seu desenvolvimento, levando a controles geralmente hierárquicos e centralizados.

• Sistemas Multiagentes: corresponde a uma abordagem ascendente. A preocupação é desenvolver arquiteturas de agentes que interajam de forma autônoma e social, bem como desenvolver sistemas de comunicação e coordenação independentes do problema a ser resolvido.

O arcabouço para validação da ontologia utiliza a abordagem de resolução distribuída de problemas, sendo que esta escolha deve-se a confiabilidade necessária em um sistema de automação. Os agentes têm papéis bem definidos para controle de sensores, atuadores e processamento dos dados, e podem ser criados na medida em que novos serviços sejam necessários, seguindo o padrão de mensagens. Os agentes desenvolvidos são descritos no capítulo 5.

2.3.1

FIPA

Em 1996, diversas empresas e centros de pesquisas com atividades no campo de Sistemas Multiagentes fundaram a FIPA (Foundation for Intelligent Physical Agents). A FIPA é uma fundação internacional exclusivamente para a criação de padrões que tornem possível a implementação de agentes abertos e interoperáveis.

As especificações do FIPA são divididas em cinco áreas distintas: Aplicações de Sistemas Multiagentes, Arquiteturas Abstratas, Comunicação entre Agentes, Gerenciamento de Sistemas Multiagentes e Transporte de Mensagens entre Agentes. A seguir são apresentadas as especificações relevantes para esta dissertação.

Modelo de gerenciamento de agentes

O modelo de gerenciamento de agentes provê o ambiente onde um agente FIPA existe e opera, assim, ele estabelece um modelo lógico de referência para criação, registro, localização, comunicação, migração e desativação de agentes na plataforma FIPA. O desenvolvimento de cada um destes componentes não é objeto de padronização da FIPA, porém diversas plataformas de desenvolvimento disponibilizam estes serviços. Abaixo é apresentada uma descrição detalhada de cada um dos elementos do modelo:

(31)

Plataforma de Agentes (Agent Plataform - AP): provê a estrutura física na qual os agentes podem ser executados. Uma AP consiste no computador, o sistema operacional, as aplicações de suporte aos agentes, os componentes de gerenciamento de agentes FIPA e os agentes.

• Agente: combina uma ou mais capacidades de serviços e pode incluir acesso a aplicativos externos, humanos e meios de comunicação. Um agente deve ter pelo menos um proprietário e possuir um identificador único.

Facilitador de Diretórios (Directory Facilitator - DF): é um componente obrigatório da plataforma de agentes. Ele provê um serviço de páginas amarelas para os outros agentes. Os agentes podem registrar seus serviços com o DF ou requisitar ao DF que ele encontre serviços oferecidos pelos outros agentes. Múltiplos DF podem existir dentro de uma mesma plataforma de agentes.

Sistema Gerenciador de Agentes (Agent Management System - AMS): é um componente obrigatório da plataforma de agentes. O AMS exerce o controle de acesso e uso da plataforma de agentes. Só pode existir um AMS numa única plataforma de agentes. O AMS apresenta um diretório de identificadores de agentes AID (Agent

Identifier) que contém endereços de transporte para agentes registrados com a

plataforma. O AMS oferece páginas brancas para os outros agentes. Cada agente deve se registrar com o AMS de forma a receber uma AID válida.

Serviço de Transporte de Mensagens (Message transport System - MTS): fornece o mecanismo de transporte de mensagens entre agentes de uma mesma plataforma ou de plataformas diferentes. Todos os agentes FIPA têm acesso a, no mínimo, um MTS e somente mensagens endereçadas a agentes podem ser enviadas através do MTS. O MTS é disponibilizado pelo Canal de Comunicação de Agentes (ACC - Agent

Communication Channel).

Os serviços de DF, AMS e MTS são normalmente oferecidos pelas plataformas de agentes, como por exemplo, JADE [Bellifemine et al., 2007], Jadex [Braubach et al., 2003], FIPA-OS [Poslad et al., 2000]. O registro de um novo agente na plataforma é obrigatório e necessário para a comunicação entre os agentes, porém, no caso desta dissertação, o serviço do DF será desenvolvido à parte para a melhor interação. Isso significa que além de registrar-se no DF e AMS padrão e obrigatório, o agente também deverá registrar-registrar-se como um indivíduo na ontologia através do agente com função de gerência. Já o canal de comunicação entre os agentes limita-se também em relação ao protocolo disponibilizado pelas plataformas e especificado pela FIPA.

Comunicação entre agentes

A forma de comunicação entre os agentes também possui um papel importante no arcabouço, pois definirá a maneira de interação entre os componentes do sistema. Necessita-se, portanto da definição de um protocolo de comunicação que especifique o exato processo de comunicação, um formato ou sintaxe para as mensagens e uma linguagem de comunicação que especifique o significado ou a semântica da informação. A semântica não se refere apenas ao conteúdo da mensagem, mas também ao seu tipo. Além disso, existem três aspectos para um estado formal de comunicação: a sintaxe, que é como os símbolos da comunicação estão

(32)

estruturados; a semântica, que é o que os símbolos significam; e a pragmática, que é como os símbolos são interpretados. [Huhns, 1999].

A ACL é uma linguagem de comunicação de agentes. Cada mensagem da FIPA-ACL é composta por um ato comunicativo obrigatório e um conjunto de parâmetros. O mais comum é cada mensagem conter um emissor, um receptor e um campo de conteúdo. Os parâmetros podem ser alocados em qualquer posição dentro da mensagem. Os atos comunicativos das mensagens FIPA-ACL foram projetados para, dentro do possível, representar os atos da fala. O padrão FIPA está dividido em sete subcamadas responsáveis por uma parte do processo de comunicação. [Bellifemine et al., 2001]:

• Transportes: responsável pelo protocolo de transporte. A FIPA definiu protocolos de transporte de mensagens para IIOP (Internet Inter-ORB Protocol), WAP (Wireless

Application Protocol) e HTTP (Hypertext Transfer Protocol).

• Codificação: define representações de mensagens para o uso de estruturas de nível mais elevado de dados.

• Estrutura de mensagens: a estrutura da mensagem é independente da codificação particular para incentivar a flexibilidade. Cada mensagem contém um conjunto de parâmetros variáveis de acordo com a situação e o único parâmetro de fato obrigatório pela FIPA é a performative ou ato comunicativo. A Figura 2 apresenta um exemplo de mensagem para a performative Request. Ela inclui as informações de identificação e endereço do remetente (:sender) e do destinatário (:receiver), o conteúdo da mengagem (:content), a linguagem do conteúdo (:language), a ontologia que provê significado também ao conteúdo (:ontology) e o protocolo de comunicação (:protocol), neste caso o fipa-request.

(REQUEST

:sender (agent-identifier

:name sensor@192.168.0.19:1099/JADE

:addresses (sequence http://leticia:7778/acc ))

:receiver (set (agent-identifier

:name LampadaQ@192.168.0.19:1099/JADE )) :content "((action (agent-identifier :name @192.168.0.19:1099/JADE) (OnCommand :functionality (Functionality :functionality_inst OnOffFunctionality) :controllable (Controllable :controllable_inst SimpleLampBedroom) :command_value On)))" :language fipa-sl :ontology AssistiveHome :protocol fipa-request )

Figura 2: Exemplo de mensagem [Fonte: O Autor]

• Ontologia: o termo individual contido no conteúdo de uma mensagem FIPA pode ser explicitamente referenciado a um modelo conceitual ou ontologia. Para a automação residencial definiu-se a ontologia AssitiveHome que permite a comunicação das ações e estados de sensores, atuadores, usuários e o ambiente da residência.

(33)

• Conteúdo: o teor real de mensagens FIPA. A linguagem mais usada para expressar conteúdo é FIPA-SL. Para a comunicação dos agentes do arcabouço proposto será utilizada tanto a FIPA-SL quanto a linguagem SPARQL, suportados pela ontologia AssitiveHome. A linguagem de conteúdo FIPA-SL baseia-se na lógica de primeira ordem para representar afirmações, condições, razões e ações que atendam os requisitos dos atos comunicativos da FIPA-ACL. O significado do conteúdo das mensagens depende da ontologia compartilhada entre os agentes.

• Ato comunicativo: a classificação da ação ou ato do agente em relação ao conteúdo de uma mensagem. Por exemplo, o ato inform especifica que o conteúdo da mensagem é informativo e o ato request especifica que o conteúdo da mensagem é uma solicitação.

• Protocolo de interação: raramente as mensagens são trocadas de forma isolada, mas sim fazem parte de alguma sequência de interação. A FIPA define protocolos de interação, especificando as sequências de mensagens. Alguns destes protocolos são utilizados no arcabouço proposto, como, por exemplo:

o Request Interaction [FIPA 2002a] foi desenvolvido para um agente solicitar a

outro agente a execução de uma determinada ação. O agente participante pode aceitar ou recusar a solicitação, porém a mensagem de aceite não é obrigatória para ações processadas rapidamente. Após finalizar a ação o agente participante possui três opções de resposta: indicar uma falha, confirmar a execução e confirmar a execução e enviar os dados do resultado.

o Query Interaction [FIPA 2002a], protocolo da FIPA presente no arcabouço

desta dissertação é o FIPA Query, ele é utilizado quando um agente precisa solicitar alguma informação de outro agente. A mensagem inicial do protocolo pode ser para verificar se uma sentença é verdadeira, neste caso, o requisitante utiliza o ato comunicativo query-if ou para solicitar alguma informação, através do ato comunicativo query-ref. O agente receptor pode aceitar ou recusar a solicitação enviando uma mensagem. Caso aceite, ao termino do processamento o envia a resposta com os dados solicitados ou indicando falha.

2.4

Ferramentas e Plataformas de Agentes

Para suporte ao arcabouço proposto foram utilizadas algumas ferramentas. A primeira delas é o editor de ontologias Protégé [Stanford, 2014], utilizado para criar o modelo ontológico do domínio da residência e construir as propriedades e restrições entre as classes. Ela também permite à visualização gráfica da ontologia que para esta dissertação foi desenvolvida na linguagem OWL.

Os agentes do protótipo foram desenvolvidos utilizando o arcabouço JADE [Bellifemine et al., 2007] versão 4.3. O JADE é uma plataforma Java para desenvolvimento de agentes que segue os padrões da FIPA de arquitetura, protocolos de transporte e comunicação, linguagens de conteúdo e ontologias. Dessa forma, cada plataforma de agentes também possui as propriedades registro de agentes, descoberta de agentes e transferência de mensagens. Em conformidade com a especificação da FIPA, o JADE possui uma plataforma

(34)

de agentes principal e também permite que existam múltiplos hosts e múltiplas plataformas. Para o arcabouço proposto o número de plataformas depende da implementação do sistema na residência e somente a plataforma principal é mandatória, porém a possibilidade de utilização de múltiplos hosts permite que o processamento seja distribuído e que a gerência do sistema não se torne um gargalo na descoberta de serviços.

A FIPA prevê que uma plataforma de agentes tenha pelo menos um Sistema Gerenciador (AMS) e um Facilitador de Diretórios (DF). O arcabouço Jade segue o padrão e possui o DF e MAS nativos que são inicializados junto com a plataforma. Agentes localizados em diferentes hosts deverão registrar-se no facilitador de diretório e sistema de gerência principal. O protocolo padrão para comunicação entre os hosts é o Java Remote Method

Invocation (RMI) e caso existam plataformas desenvolvidas em outras linguagens de

programação o protocolo recomendado é o IIOP. Internamente, um agente JADE é desenvolvido baseado em uma lista de comportamentos que um agente deve executar para atingir os seus objetivos.

Além do JADE, o arcabouço JENA [Apache, 2014] é utilizado para manipulação da ontologia que representa o contexto da residência. O JENA oferece suporte para bases de dados RDF permitindo navegar e criar classes, propriedades e instâncias em uma ontologia através do Jena2 Ontology API. Os agentes da aplicação utilizam esta biblioteca para criar instâncias na ontologia e executar queries SPARQL. O SPARQL é uma linguagem inspirada na Structured Query Language (SQL), que possibilita a busca de informações em grafos RDF.

2.5

Discussão

Neste capítulo foi apresentada primeiramente uma visão geral sobre os conceitos que envolvem a automação residencial inteligente. Esta revisão é importante para criação da ontologia para o domínio. A pesquisa das tecnologias existentes no mercado e a classificação dos sensores permitem que o modelo semântico seja adequado aos sistemas reais. A interoperabilidade proposta na dissertação também está diretamente ligada às características destas tecnologias.

Este capítulo também abordou um referencial teórico sobre ontologias, as principais formas de representação e alguns exemplos de metodologias para o seu desenvolvimento. Estes conceitos são aplicáveis a qualquer ontologia, porém a revisão permite um embasamento para os próximos dois capítulos que fazem uma análise do estado da arte em relação ao domínio e abordam a criação da ontologia para residência inteligente. Uma ontologia pode ser utilizada como ferramenta para análise de contexto, dessa forma o entendimento deste conceito também é fundamental para a criação de uma ontologia que possibilite a inferência do contexto dos usuários e dispositivos em relação ao ambiente.

Por último, apresentou-se um referencial teórico sobre agentes e os conceitos básicos dos protocolos definidos pela FIPA. Estes conceitos são utilizados na modelagem do arcabouço para validação da ontologia. A linguagem de conteúdo FIPA-SL utiliza a ontologia para dar significado às palavras presentes no conteúdo da mensagem e permitir a comunicação entre os agentes. A integração dos dispositivos que possuem interfaces de software representadas por agentes é realizada através das mensagens compartilhadas que utilizam os atos comunicativos e protocolos da FIPA para informar ou requisitar uma alteração no ambiente. De forma breve foram também apresentadas as ferramentas necessárias para a reprodução da solução proposta.

(35)

Capítulo 3

3

Trabalhos Correlatos

Na ultima década surgiram diversos projetos para desenvolvimento de residências inteligentes e que abordam problemas em diferentes áreas, como redes de sensores, processamento de contexto, middlewares de comunicação e interfaces. Porém esta revisão aborda principalmente soluções que utilizaram ontologias para o domínio de residências. O estudo inclui ontologias para interoperabilidade, sensibilidade ao contexto, residências assistivas, descrição de dispositivos e ambientes inteligente. O objetivo principal é identificar a organização das ontologias, as vantagens e desvantagens de cada abordagem.

Alguns autores descrevem o arcabouço de automação além da ontologia, desta forma, quando disponível, também foi incluída uma breve descrição do seu funcionamento.

3.1

Ontologia Smart Space Context

Qin et al. (2007) apresenta um middleware multiagente para suporte a ambientes inteligentes sensíveis ao contexto. Ele utiliza uma ontologia combinada com lógica de primeira ordem probabilística para prover um entendimento comum do contexto, auxiliar no raciocínio sobre informações ambíguas e permitir um conhecimento compartilhado e reutilizável. A ontologia divide-se em um modelo central para conceitos sobre o ambiente e uma extensão para um domínio específico, um estudo de caso representando uma sala de aula.

A ontologia central, Figura 3, descreve sete conceitos:

Usuário (classe user): descreve o perfil do usuário, informações de contato, preferências e humor.

Localização (classe location): inclui as propriedades de longitude, latitude e altitude além de importar as propriedades da ontologia GeoSpatial do W3C [W3C, 2013].

Tempo (classe time): corresponde à ontologia OWL-Time [W3C, 2006].

Atividade (classe activity): o autor não descreve as propriedades da classe, porém ela é importante para validar as informações inconsistentes de contexto descrevendo as relações entre a atividade, tempo, localização e a probabilidade de ocorrência.

Serviço (classe service): especifica vários níveis de serviços que a plataforma oferece para apoiar a descoberta e composição destes serviços. Esta classe é baseada na ontologia OWL-S [W3C, 2006] para descrição de web services.

Referências

Documentos relacionados

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

Durante as nictemerais, os valores do fósforo total e do fosfato total nos dois viveiros apresentaram também valores acima do recomendado pela GAA, exceto para o fosfato total na

Distribuição espectral dos sistemas de iluminação LED e do controle Observa-se na Figura 12A, a análise de componentes principais, relacionado à biometria das mudas pré-brotadas

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The

Estudar o efeito da plastificação do ATp com glicerol nas características físico-químicas da blenda PLA/ATp; Analisar a mudança na cristalinidade dos laminados submetidos a

o presente estudo tem por objetivo propor uma metodologia baseada em indicadores e Sistemas de Informação Geográfica (SIG) para a identificação das culturas e áreas de

O Plano de Manutenção dos Monumentos é uma ferramenta de gestão e de conservação preventiva que tem os seguintes objetivos: melhorar a gestão de recursos (reduzindo custos a