• Nenhum resultado encontrado

• É explícita porque define os conceitos, propriedades, relacionamentos, funções, axiomas e regras condicionais que a compõem;

• É uma conceitualização porque é um modelo abstrato e uma visão simplificada dos fenômenos do domínio que ele representa;

• É compartilhada porque há um consenso prévio sobre a informação e é

aceita por um grupo de especialista.

Outras variações da definição acima são encontradas na literatura. Uma mais antiga diz que “é uma especificação formal e explícita dos termos de um domínio e relações entre eles” [Gruber93].

Pode-se entendê-la como a definição de um conjunto de conceitos, sua taxonomia, inter-relação e regras que governam tais conceitos.

Há dois tipos de ontologias: leves e pesadas [Uschold96]. As leves são aquelas capazes de modelar a informação referida para um domínio mas não incluem axiomas ou regras condicionais, dificultando o entendimento delas. As pesadas incluem todos os elementos que permitem fazer deduções sobre o conhecimento contido nela. Os axiomas e as regras fornecem uma maneira de definir o comportamento relacionado a um modelo de informação. Desta maneira, os modelos de informação podem ser entendidos como ontologias leves [Vergara02].

A FIPA descreve suas ontologias em termos de predicados, ações e conceitos. Esta visão pragmática satisfaz todas as necessidades que os agentes possuem em relação às suas comunicações [Gomes05].

Quando uma certa informação é transferida entre dois agentes por meio de uma mensagem ACL, ela é representada como uma expressão que contém linguagem de conteúdo e formato próprios. Ambos os agentes podem ter maneiras diferentes para representar a informação. Para permitir uma manipulação fácil de pedaços dessa informação, os agentes devem representá-la internamente também de forma segmentada. As expressões de conteúdo das mensagens ACL não são adequadas para essa finalidade [JadeOnto04]. Uma simples passagem de valores

em forma de uma seqüência de bytes prejudica a manipulação da informação, pois requer que a cada vez se tenha que programar e processar as quebras da seqüência para conseguir retirar o valor de interesse. Agentes escritos em Java podem representar a informação convenientemente dentro de objetos Java, facilitando a manipulação das mensagens.

Para que uma informação possa ser passada entre agentes, é necessário converter sua representação interna para a correspondente expressão de conteúdo ACL. O agente de destino deve executar a operação ao contrário. Além disso, o agente de destino deve proceder com checagens semânticas para validar a informação. O JADE contém suporte para linguagem de conteúdo e ontologias fornecendo automaticamente todas as conversões e checagens descritas acima.

Desta forma, os desenvolvedores podem trabalhar com as informações em seus agentes como se fossem apenas objetos Java sem necessidade de trabalhos extras.

Enquanto a ontologia se preocupa como os elementos do domínio são especificados para que possam ser entendidos entre os agentes, a linguagem de conteúdo define a forma como essa ontologia será escrita nas mensagens entre eles. Assim, têm-se linguagens codificadas em caracteres, podendo ser lidas pelos humanos, e outras que são codificadas em binário, decifráveis apenas pelo computador mas com menor esforço computacional. Linguagens de conteúdo especificam a sintaxe das mensagens e são independentes de domínio. As linguagens de leitura humana facilitam os testes e a reprodução das mensagens em uma aplicação.

Um exemplo de linguagem com leitura humana é a FIPA-SL (FIPA Content Language Specification) e seu subconjunto FIPA-SL0, ambas suportadas pelo JADE. Tal subconjunto permite a construção de ações, conceitos e predicados binários simples, sem incorporar construções mais complexas nem instruções booleanas. Ela facilita o processamento do conteúdo das mensagens. No presente trabalho, todos os exemplos de ontologia estão representados por esta linguagem.

Para que agentes possam conversar sobre dados e fatos relacionados a um domínio, explorando o suporte do JADE para linguagem de conteúdo e ontologia, devem seguir estes passos:

1) Definir a ontologia, incluindo os predicados, ações e conceitos em forma de esquemas específicos para eles;

2) Desenvolver as classes Java associadas a cada esquema da ontologia;

3) Selecionar uma linguagem de conteúdo suportada pela plataforma;

4) Registrar a ontologia definida e selecionar a linguagem de conteúdo para os agentes;

5) Criar e manipular as expressões de conteúdo como objetos Java, que são as instâncias das classes desenvolvidas. O JADE irá traduzir estes objetos para/de seqüências de bytes que formam o conteúdo dos slots das mensagens ACL.

Existem várias ferramentas para a criação de ontologias, tais como Ontolingua [Farquhar97], WebOnto [Domingue98], WebODE [Arpírez01], Protégé [Noy00], OntoEdit [Sure02], OilEd [Bechhofer01], etc.

A ferramenta utilizada para os estudos desta monografia foi a Protégé, pois é baseada no Java, é referenciada na documentação do JADE [JadeOnto04], possui código aberto e funciona em computador isolado, sem dependência de servidor.

Outras características encontradas são: editor de ontologia com interface gráfica;

desenvolvimento de plugins (extensões); exportação e importação do modelo de domínio para os formatos RDF (Resource Description Framework), XML (Extensible Markup Language) e OWL (Web Ontology Language) através de plugins específicos.

Outro plugin existente para o Protégé e muito importante para o presente estudo é o BeanGenerator [Bean06] [JadeOnto04]. Esta extensão mapeia objetos do modelo em correspondentes classes Java geradas automaticamente em conformidade com as especificações do JADE.

A exportação da ontologia, na parte experimental deste trabalho, foi feita no formato OWL [Antoniou03] [McGuinness04]. OWL constitui-se de uma linguagem de marcação (tags) semântica, desenvolvida como uma extensão de vocabulário do RDF para definição, publicação e compartilhamento de ontologias na Web. OWL é escrita em XML e possui todas as suas vantagens. Uma ontologia OWL contém classes, propriedades, instâncias de classes e seus relacionamentos.

O JADE classifica os elementos de um domínio, de acordo com suas características semânticas, através de um Modelo de Referência de Conteúdo (CRM – Content Reference Model), apresentado na Figura 7 [JadeOnto04].

Figura 7 - O Modelo de Referência de Conteúdo do JADE

O modelo apresenta a definição de predicados (predicates) e termos (terms):

• Predicates: expressões booleanas que apresentam o estado de um relacionamento entre elementos. São tipicamente usados em

mensagens ACL com propósito INFORM ou QUERY-IF;

Exemplo: a expressão “a pessoa Ciro trabalha para a companhia COPEL” pode ser identificada por (Trabalha-para (Pessoa :nome Ciro) (Companhia :nome COPEL)).

• Terms: expressões de identificação de entidades (abstratas ou

concretas) que existem no mundo. Os termos são classificados em:

o Concepts: expressões que indicam entidades com estruturas

complexas, definidas como slots.

Exemplo: (Pessoa :nome Ciro :idade 35)

Conceitos não fazem sentido se usados diretamente como conteúdo de uma mensagem ACL. Geralmente, eles são referenciados em predicados ou em outros conceitos;

Exemplo: (Livro :titulo “Anjos e Demônios” :autor (Pessoa :nome

“Dan Brown”))

o Agent actions: conceitos especiais que indicam ações a serem

executadas nos agentes. São tipicamente usados em mensagens com propósito REQUEST;

Exemplo: (Vender (Livro :titulo “Anjos e Demônios”) (Pessoa :nome Ciro))

o Primitives: expressões que indicam entidades atômicas como

strings e integers;

o Aggregates: expressões indicando entidades que são grupos de

outras entidades;

Exemplo: (sequencia (Pessoa :nome Fulano) (Pessoa :nome Sicrano))

o Identifying Referential Expressions (IRE): expressões que identificam entidade(s) para a(s) qual(is) um dado predicado é verdadeiro. São tipicamente usados em mensagens com propósito

QUERY-IF ou QUERY-REF;

Exemplo: (todos ?x (Trabalha-para ?x (Companhia :nome COPEL))) identifica “todos os elementos ‘x’ que têm o predicado

‘trabalha para a companhia COPEL’ como verdadeiro”, ou “todas as pessoas que trabalham para a COPEL”.

o Variables: expressões (tipicamente usadas em pesquisas) que indicam um elemento genérico não conhecido a priori.

4 PADROES IEC / CIM

Esse capítulo mostra uma pesquisa sobre a padronização de um modelo de informações a ser utilizado em empresas de energia elétrica. O entendimento da evolução de especificações para a troca de dados existente na área elétrica conduz para a otimização dos recursos aplicados numa arquitetura distribuída.

Os investimentos de TI implicam que a organização deve desenvolver uma abordagem de integração de aplicações corporativas que seja flexível, prática e adaptável de tal forma que integrações de sistemas comprados ou construídos possam ser realizadas de forma consistente e simples [Prates05].

As tecnologias de midlleware específicas para solução de problemas de integração de sistemas também começaram a ficar disponíveis para comercialização, diminuindo, em muito, o custo das soluções de EAI (Enterprise Application Integration).

A partir de meados dos anos 90, vários projetos com objetivo de padronizar métodos de troca de informação nas empresas foram iniciados. Pode-se citar o projeto de uma Interface de Programação de Aplicações para Centros de Controle (CCAPI - Control Center Application Programming Interface) do EPRI (Electric Power Research Institute), o projeto do Sistema de Gerenciamento de Inventário da NRECA (National Rural Electrical Cooperative Association) e os projetos de especificação de padrões do IEC (International Electrotechnical Commission).

Fundamentalmente, estes projetos tinham o foco no mesmo problema que era integrar as informações de processo com as informações corporativas, usando metodologias padronizadas e expansíveis.

O IEC [IEC06] é uma entidade internacional constituída por um conjunto de comitês técnicos responsáveis pelo desenvolvimento de padrões internacionais. Há diversos grupos de trabalho em cada comitê. As decisões do IEC são feitas pelos comitês nacionais, resultando em uma liberação de padrões internacionais. Os

membros dos comitês nacionais participam dos grupos para desenvolver os projetos dos padrões. No Brasil, o representante oficial e exclusivo do IEC é a ABNT (Associação Brasileira de Normas Técnicas) [ABNT06]. Nos Estados Unidos, a participação se faz pelo ANSI (American National Standards Institute) [ANSI06].

Documentos relacionados