PROTEGÉ
EUCLIDES EDSON MARTINS
CLAUDIO PONCE SALDIAS
Programa de Pós-Graduação em Engenharia de Automação e Sistemas
Programa de Pós-Graduação em Engenharia Mecânica
Universidade Federal de Santa Catarina (UFSC) - Florianópolis, SC, Brasil
Email: [email protected], [email protected]
Resumo  Este artigo tem como objetivo, demonstrar através
linguagens específicas para a recuperação de informações em
de uns exemplos práticos, a utilização de uma ferramenta de
WebServices, no caso as OWL-S.
construção e edição de ontologia denominada como Protegé,
bem como suas principais características e recursos, aplicando o
paradigma de FRAMES e a linguagem OWL.
Abstract
 The objetive of this paper, is show between
examples, how to use the Protege Ontology editor, and its main
resouces and facts, using the paradigm of Frames and OWL.
O
editor
Protegé,
originalmente
desenvolvido
pelo
departamento de informática médica da universidade de
Stanford, é considerado uma das melhores ferramentas de
construção de ontologias, possibilitando a interação entre
outros sistemas que utilizam base de conhecimento para
resolver problemas de um domínio.
Palavras-chaves  Ontologia, FRAMES, OWL, Protegé.
O principal objetivo deste artigo é demonstrar a utilização da
ferramenta de criação de ontologia Protegé, mostrando com
1. INTRODUÇÃO
um exemplo prático o uso dos seus recursos.
Este artigo foi dividido em 4 partes distintas, sendo
O grande interesse de se adquirir e compartilhar o
organizado como segue: A seção 2 trás uma visão mais
conhecimento sobre um determinado domínio, trás a
específica da linguagem FRAMES e OWL. A seção 3 faz
necessidade do uso das ontologias. Além de possibilitar a
uma abordagem ao editor Protegé. E na seção 4 é descrito os
reutilização e análise do domínio de conhecimento, as
casos de uso e as aplicações.
ontologias tornam claras as hipóteses sobre este domínio.
2. MARCO TEÓRICO
É a representação de um vocabulário de algum domínio ou
problema. Mais precisamente, não é o vocabulário que
2.1 FRAMES
qualifica uma ontologia, mas as conceituações que os termos
do vocabulário pretendem capturar. [Chandrasekaran, 1999]
Os
Existem diversas linguagens para se desenvolver uma
fundamentais introduzidas por Marvin Minksy em 1975 (“A
ontologia, fornecendo diversos recursos e funcionalidades.
framework to represent knowledge”), introduzidas para
Entre as linguagens utilizadas, a mais atual é a OWL
permitir a expressão das estruturas internas dos objetos,
(Ontology Web Language), ressaltando que já existem
mantendo a possibilidade de representar herança de
quadros
propriedades.
ou
Cenários
(“Frames”),
foram
Idéias
Minsky (1975) disse: “Quando alguém encontra uma nova
São úteis para domínio de problemas onde a forma e o
situação (ou modifica substancialmente o seu entendimento
conteúdo do dado desempenha um papel importante na
sobre um problema), recupera da memória uma estrutura
solução do problema.
chamada ‘frame’. Esta estrutura é um arcabouço memorizado
Quadros supera o poder das redes semânticas, pois permitem
que deve ser adaptado para se adequar à realidade, alterando
que objetos complexos sejam representados como um único
detalhes, conforme a necessidade”.
frame, em vez de uma grande estrutura de rede.
As pessoas, ao enfrentarem uma nova situação, guardam o
Os frames tornam mais fáceis organizar o conhecimento
repertório do comportamento para situações similares.
hierarquicamente.
Alguém que já assistiu alguma vez a um júri popular sabe que
tipo de “quadro” irá encontrar se for a outro. (juiz, auxiliar de
2.2 A Linguagem OWL
justiça, réu, advogado de defesa, promotor, etc.)
Está na origem das idéias que levaram às linguagens de
programação orientadas a objetos.
Um quadro consiste em um conjunto de atributos (“slots”)
que através de seus valores, descrevem as características do
Recomendada pela W3C (World Wide Web Consortium), a
OWL possibilita incluir um maior número de vocabulários
para descrição de classes e propriedades, dando mais
expressividade sobre o domínio definido.
objeto representado pelo quadro.
Os valores atribuídos aos atributos podem ser, além dos
2.2.1 SUB-LINGUAGENS DE OWL
valores do objeto em particular, valores default, ponteiros
para outros quadros, e conjuntos de regras de procedimento
A OWL possui três sub-linguagens (espécies): OWL-Lite,
que podem ser implementados.
OWL-DL, OWL-Full. A expressividade vai aumentando
Se os valores dos atributos forem apontadores para outros
conforme a escolha da linguagem a ser utilizada, como é
quadros, cria-se uma rede de dependências entre os quadros.
ilustrada na figura 1:
Os conjuntos de procedimentos indicam que procedimento
deve ser executado quando certas condições forem satisfeitas,
Expressividade
por exemplo: ao ser criado o atributo, ao ser lido o valor do
atributo, ao ser modificado o valor do atributo, ou ao ser
destruído o valor do atributo.
OWL-Lite
OWL-DL
OWL-Full
Os quadros também são organizados em uma hierarquia de
especialização, criando outra dimensão de dependência entre
Figura 1: Níveis de Expressividade
eles (herança). Permite a especificação de propriedades de
uma classe de objetos através da declaração de que esta
2.2.1.1 OWL-LITE
classe é uma subclasse de outra que goza da propriedade em
questão.
Sintaticamente mais simples, são utilizadas quando se precisa
O processo de herança e instanciação favorece a reutilização
apenas de restrições e uma modelagem de hierarquia de
de código evitando definições repetitivas e aproveitando
classes simples.
funções de acesso definidas para as facetas se - lido, se escrito, se - necessário, etc.
Deve-se notar que as estruturas de quadros são ativas, pois
sua manipulação causa o disparo automático das facetas.
2.2.1.2 OWL-DL
representado por vários nomes, como “País do Futebol” e
“Emergente do MERCOSUL”.
Mais expressiva que a OWL-Lite, tem como característica
base a utilização de lógica descritiva1, possibilitando
2.2.4 PROPRIEDADES
automaticamente computar hierarquias de classes verificando
suas inconsistências na linguagem ontológica. A OWL-DL é
extremamente determinística, dando grande importância aos
resultados computacionais obtidos e sua garantia de retorno
em um tempo finito.
Conhecidas como atributos, tem a funcionalidade de
interligar os indivíduos.
As propriedades podem ser classificadas em três tipos:
Propriedades de Objeto (conectam um indivíduo a outro
indivíduo), Propriedades de Tipo de Dados (conectam um
2.2.1. 3 OWL-FULL
indivíduo a um valor literal do tipo XML ou RDF) e
OWL-Full é a sub-linguagem mais expressiva, é utilizada em
casos onde necessitasse de uma expressividade relativamente
alta, não sendo possível realizar inferências. É utilizada
quando se quer um maior dinamismo da linguagem, sem a
preocupação de uma garantia computacional.
Propriedades de Anotações (utilizadas para adicionar
metadados as classes, indivíduos, propriedades do objeto e do
tipo de dado).
Um grande recurso que o OWL trás é o melhoramento dos
significados das suas propriedades, essas características são:
Funcionais, Funcionais Inversas, Transitivas, Simétricas,
Assimétricas, Reflexiva e Irreflexiva.
2.2.2 COMPONENTES OWL
Uma das diferenças do uso das estruturas em Frames para a
OWL é a forma utilizada para descrever seus componentes,
como mostra figura 2.
2. 2.5 PROPRIEDADES FUNCIONAIS
Esta propriedade tem a característica de definir uma relação
funcional do indivíduo A com no máximo um indivíduo B,
que por sua vez esta relacionada ao indivíduo A através dessa
Instâncias
Slots
Classes
Frames - OWL
Indivíduos
Propriedades
Classes
característica. Exemplo: Luiza tem mãe Jerusa. Luiza tem
mãe Alice. Se Luiza tem mãe Jerusa e tem mãe Alice, então
“tem mãe” é uma propriedade funcional, pois Alice e Jerusa
Figura 2: Nomenclaturas entre Frames e OWL
2.2.3 INDIVÍDUOS
Os indivíduos são representações de instâncias de classes ou
simplesmente objetos, de um determinado domínio.
No OWL o indivíduo pode ser representado por dois nomes
distintos, exemplificando: O indivíduo Brasil pode ser
são as mesmas pessoas.
2. 2. 5.1 PROPRIEDADES FUNCIONAIS INVERSAS
Esta propriedade tem a característica de definir uma relação
funcional inversa do indivíduo A com no máximo um
indivíduo A. Exemplo: Jerusa é mãe de Luiza. “é mãe de” é
uma propriedade inversa de “tem mãe”. Se “tem mãe” é
funcional, então “é mãe” é funcional inversa. Se Jerusa é mãe
de Luiza e Alice é mãe de Luiza, então Jerusa e Alice são as
Lógica Descritiva – Lida com especificações ambíguas ou
não, de objetos do universo de discurso. Corresponde a
expressões do tipo “um objeto x possuindo a propriedade P”,
“o objeto x possuindo a propriedade P”, etc (Buschsbam,
2006)
mesmas pessoas.
2. 2. 5.2 PROPRIEDADES TRANSITIVAS
A ontologia OWL é direcionada a Web, tendo um maior
vocabulário e expressividade do que os Frames.
Esta propriedade tem a característica de relacionar um
Outra característica que diferenciam a OWL dos Frames são
individuo A a um individuo B, possibilitando a um indivíduo
as especializações das linguagens RDF (Resource
C, relacionado a B, ter uma relação também com o indivíduo
Description Framework) e XML (eXtensible Markup
A, através dessa característica transitiva. Exemplo: Seja
Language) que originaram a OWL.
Claudio tem um ancestral que se chama Guilherme, e
Guilherme tem um ancestral que se chama Gerson, então
III. PROTEGÉ
Claudio tem um ancestral que se chama Gerson. A
propriedade “tem um ancestral” é transitiva.
É uma Plataforma Desenvolvida pelo grupo de pesquisa
Stanford Medical Informatics da escola de medicina da
2.2.5.3 PROPRIEDADES SIMÉTRICAS
Universidade de Stanford. Seu código em JAVA é de fonte
aberta e conta com uma comunidade de desenvolvedores.
Esta propriedade tem uma característica de relacionar um
Em seu projeto original, o Protegé era uma ferramenta de
indivíduo A com outro indivíduo B de forma que se A esta
aquisição
relacionado com B, B esta relacionado com A. Exemplo:
Especialista para oncologia. Foi modernizado gradativamente
Daniel tem um amigo chamado Euclides, então Euclides tem
para acompanhar a evolução da tecnologia de SBC (Sistemas
amigo chamado Daniel.
Baseados em Conhecimento).
de
conhecimento
limitada
a
um
Sistema
Permite criar formulários para a aquisição de conhecimento
2.2.6 CLASSES
baseados em ontologias, edição de ontologias e bases de
conhecimento.
As classes são definidas como sendo o conjunto dos
Tem independência de um algoritmo específico de inferência,
indivíduos, representando concretamente os conceitos. As
e fornece uma API de representação de conhecimento que
classes podem ser organizadas em taxonomias (superclasses
permite
ou subclasses). Exemplificando: consideram-se duas classes,
específicas. E.g.Interface; Armazenamento de dados.
Humanos e Brasileiros: Brasileiros podem ser uma subclasse
Tem uma arquitetura integrável a diversas aplicações, via
da classe Humanos, e assim Humanos e uma superclasse da
componentes que podem ser adicionados ou conectados ao
classe Brasileiros. Deduz-se então que todos os Brasileiros
sistema, sem necessitar o redesenvolvimento.
a extensão do
programa para necessidades
são Humanos.
As classes são construídas a partir de uma descrição, nas

quais são especificadas as situações que caracterizam um
indivíduo a ser tornar membro dessa classe.
Backends, permitem usuários armazenar e importar
bases de conhecimento em vários formatos

Slot widgets, são usados para mostrar e editar
valores de slot ou suas combinações em modos de
2.3 DIFERENÇAS ENTRE FRAMES E OWL
domínio específico e tarefa específica

Tab plug-ins, são aplicativos em janelas adicionais,
Uma grande diferença entre o Protege Frames e o OWL é que
como visualizadores, máquinas de inferência,
este último não usa o UNA-Unique Name Assumption. Isto
intérpretes sistemas especialistas (Jess), Netbeans
significa que dois nomes diferentes podem remeter ao mesmo
para multiagentes em Jade, etc.
indivíduo.
(fatos não literalmente presentes na ontologia, mas inferido
pela semântica).
3.1 INSTALAÇÃO
A instalação é rápida e intuitiva, tendo como pré-requisito a
Máquina Virtual Java.
O download do arquivo de instalação pode ser feito no site
dos desenvolvedores do Protegé (The Protégé Ontology
Editor and Knowledge Acquisition System)
IV. APLICAÇÕES E CASOS DE USO
Figura 3: Estrutura do Protegé
4.1 CASO DE USO OWL: PIZZA
A Figura 3 descreve a modularização do Protege, dividida
em: interface com o usuário, núcleo do Protegé e
Para fins de melhor entendimento do uso da ferramenta
armazenamento persistente.
Protegé, será utilizado como exemplo de implementação um
Essa arquitetura ajuda no crescimento da ferramenta, pois
caso de descrição de tipos de Pizza, embora essa ontologia já
novos módulos são desenvolvidos preocupando-se somente
esteja implementada como recurso didático do Protegé.
com o módulo que se deseja, seja uma nova base de dados de
armazenamento persistente ou um novo plug-in de interface
4.1.1 MODELAGEM DE CLASSES
com os usuários.
A linguagem axiomática PAL (Protegé Axiomatic Language)
A modelagem das classes segue uma hierarquia, também
permite a inserção de restrições e axiomas que incidem sobre
conhecida como Taxonomia, como mostra figura 4.
as classes e instâncias de uma ou mais ontologias.
Nesta estrutura as classes Pizza, PizzaBase e PizzaRecheio
É possível a geração de arquivos de saída alteráveis. Podem
são disjuntas, ou seja, são definidas para não haver indivíduos
ser criadas ontologias em formato HTML, XML, e criar
que façam referencias a mais de uma classe.
classes e instâncias em CLIPS. A base de conhecimento é
É importante ressaltar que todos os indivíduos que são
gerada nativamente para esse motor de inferência.
membros de uma subclasse são membros da classe ancestral.
Protege tem duas formas de representar Ontologias: Frames e
Como mostra figura 5.
OWL.
As propriedades do objeto seguem a mesma idéia, podendo
O editor Protegé-Frames permite aos usuários construir e
ser criadas da mesma forma como foram criadas as classes.
compartilhar ontologias baseadas em quadros (Frames), de
Ao se criarem as propriedades do objeto, podem ser definidas
acordo com a Open Knowledge Base Connectivity protocol
as sua características, como por exemplo, se a propriedade é
(OKBC).
inversa, como ilustra a figura 6. Neste caso foi definido que a
O editor Protegé-OWL editor permite aos usuários construir
propriedade
ontologias para redes semânticas, particularmente para o
subpropriedades (“temBase” e “temRecheio”), sendo que a
W3C's Web Ontology Language (OWL). A semântica formal
propriedade “éIngredienteDe” é uma propriedade Inversa de
OWL especifica como derivar suas conseqüências lógicas
“temIngredientes”.
de
objeto
“temIngrediente”
possui
duas
Para tornar uma propriedade transitiva ou funcional, basta
defini-la na janela de características. Como mostra a figura 7.
Figura 7: Definindo Característica Transitiva
Figura 4: Estrutura de hierarquia de Classes
Como uma propriedade é transitiva, sua propriedade inversa
também se torna transitiva. Tem-se que se uma propriedade
se torna transitiva, ela não pode ser funcional por formar
cadeias de indivíduos relacionais.
Um dos recursos interessantes é a conexão entre domínios e
PizzaRecheio
escopos. Um individuo de uma classe pode ser relacionado a
outro individuo de outra classe. Exemplo: Deseja relacionar
RecheioDeFrutosDoMar
os indivíduos da classe “Pizza” com indivíduos da classe
“PizzaRecheio”, utilizando como ligação a propriedade
IX. CONCLUSÕES
RecheioDeAtum
“temRecheio”. Nesse caso o domínio da propriedade
“temRecheio” é Pizza e o escopo é PizzaRecheio, como
mostra figura 8.
Figura 5: Propriedades de uma Subclasse
Figura 8: Domínio e Escopo de uma Propriedade
Figura 6: Propriedades do Objeto
4.2 CASO DE USO FRAMES: DUNGEONS & DRAGONS
A ontologia poderá ser acessada desde o servidor do
laboratório de Hardware, (Mecânica, Bloco B, UFSC),
Esta é uma ontologia em desenvolvimento, esta sendo
quando for habilitado.
implementada na UFSC para ser acessada no futuro pelos
jogos online de role do famoso jogo “DUNGEONS &
DRAGONS”, incluindo alguns episódios do “SENHOR DOS
Protege conta com um servidor (Suporte Server-Client) para
compartilhar ontologias. O servidor de protegé é mostrado na
figura 11.
ANEIS” e “ERAGON”.
As Classes definem as estruturas dos mundos, civilizações,
raças e criaturas.
As Propriedades (Slots) definem as
relações dos jogadores (Instancias ou indivíduos) dentro do o
ambiente,
civilizações
(localização
no
mundo,
desenvolvimento, outras civilizações inmigas, aliadas, etc),
entre as criaturas, e raças. Definem habilidades, debilidades,
roles entre outras características do jogador. As figuras 9 e 10
mostram algumas instancias (lugar, personagem, etc)
descritivas na ontologia.
As instancias ou individuos são os personagens, lugares,
legiões e criaturas envolvidas no jogo.
Figura 11. Servidor do Protegé.
A Ontologia vai estar disponível em formato HTML e XML.
4.4 CASO DE USO FRAMES: AVIOR - EXPORTAÇÃO PARA
CLIPS.
Avior
é
um
desenvolvimento
protótipo
de
(Mecânica,
sistema
Bloco
B,
especialista
em
UFSC),
para
treinamento de vôo.
Foi criada uma ontologia dos conceitos dos aviões, suas
Figura 9. Descrição de Eriador, uma das legiões do jogo
(Civilização).
partes e parâmetros dinâmicos. Esta ontologia foi exportada
como objeto CLIPS.
Uma maquina de inferência baseada em regras implementada
em Clips utiliza esta ontologia para executar o sistema
especialista AVIOR.
Este sistema, é um primeiro protótipo para treinamento de
vôo, sem interface gráfica ainda, e sem conexão ao simulador
mecânico de vôo.
Por enquanto, sô avalia o decolagem dum avião. Sua
interface de entrada e um entorno não gráfico, onde os dados
Figura 10. Descrição de Gandalf, perfil de rol do jogador.
são ingressados pelo teclado. A Saída (resposta do sistema) é
dado em formato HTML.
As Classes definem os aviões, ambientes e clima. As
Propriedades (Slots) definem parâmetros e estados físicos e
dinâmicos do avião, ambiente e clima. Os Indivíduos
(Instancias) definem o avião especifico por modelo y tipo, o
lugar onde ele esta voando (ambiente) e o estado do clima
nesse momento. A Figura 11 mostra a interface com o
usuário. A Figura 12 mostra parte do código gerado como
classe CLIPS desde PROTEGÉ.
Figura 12 Saída do sistema especialista em formato HTML.
V. CONCLUSÃO
Neste artigo, foi possível evidenciar a importância das
ontologias para a organização das informações de um
domínio de conhecimento. A web semântica tem um papel
fundamental para o futuro da web, bem como a aquisição do
conhecimento e seu compartilhamento.
Figura 11 mostra a interface com o usuário
A utilização do Protegé para a implementação dos exemplos
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
; CLIPS CLASS FRAME
; GENERATED PROTEGE 3.3.4
;_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
desse artigo, proporcionou uma visão clara da estrutura de
;------------
Existem muitas vantagens em se utilizar ontologias para se
( DEFCLASS AVIAO (IS- A USER)
(SLOT NOME (CREATE- ACCESSOR READ-WRITE) ( VISIBILITY PUBLIC)) ;
(SLOT DESCRICAO ( CREATE-ACCESSOR READ- WRITE) (VISIBILITY PUBLIC)) ;
adquirir conhecimento, sendo a mais evidente, a reutilização
( SLOT FLAPS (CREATE -ACCESSOR READ-WRITE));
( SLOT VELOCIDADEMAX (CREATE- ACCESSOR READ- WRITE)) ;
( SLOT ALTURAMAX (CREATE- ACCESSOR READ- WRITE)) ;
( SLOT VELDECOLAGEM ( CREATE-ACCESSOR READ- WRITE )) ;
( SLOT VELATERRIZAGEM ( CREATE -ACCESSOR READ-WRITE ));
( SLOT EST CRUCERO ( CREATE-ACCESSOR READ- WRITE)) ;
( SLOT EST DECOL (CREATE-ACCESSOR READ-WRITE )) ;
( SLOT EST ATERR ( CREATE-ACCESSOR READ- WRITE )) ;
( SLOT CLIMB (CREATE- ACCESSOR READ-WRITE));
( SLOT BALANCEFIELD ( CREATE -ACCESSOR READ-WRITE)) ;
( SLOT ALT CRUC (CREATE- ACCESSOR READ-WRITE)) ;
( SLOT TURBINAS (CREATE- ACCESSOR READ- WRITE)) ;
;ESTADO
( SLOT P OSTURBINAS (CREATE- ACCESSOR READ-WRITE)) ;
( SLOT ESTADO ( CREATE-ACCESSOR READ- WRITE )) ;
( SLOT VELOCIDADE ( CREATE -ACCESSOR READ-WRITE )) ;
( SLOT P OSFLAPS (CREATE -ACCESSOR READ-WRITE));
( SLOT I NCLINA (CREATE -ACCESSOR READ-WRITE)) ;
( SLOT ROTARELATIVA ( CREATE-ACCESSOR READ- WRITE )) ;
( SLOT ALTIMETRO (CREATE-ACCESSOR READ-WRITE));
( SLOT VARIOMETRO (CREATE- ACCESSOR READ-WRITE)) ;
( MESSAGE-HANDLER DECOLAGEM)
( MESSAGE-HANDLER VOO)
( MESSAGE-HANDLER ATERRISSAGEM)
funcionamento das ontologias.
dessas ontologias para outras implementações.
O uso do OWL para desenvolver ontologias é o resultado de
uma evolução da própria necessidade de se ter uma estrutura
que represente uma melhor expressividade.
Espera-se que outros trabalhos possam usar de alguma forma
os dados desse artigo e as ferramentas desenvolvidas para
fins de estudo e aprendizagem.
REFERÊNCIAS
BUCHSBAUM, ARTHUR (2006) – “Lógica Geral”. Disponível em
http://wwwexe.inf.ufsc.br/~arthur/material_didatico/LogicaGe
ral.pdf. (acessado em 05/11/2008)
)
Figura 12 parte do código gerado como classe CLIPS desde
PROTEGÉ.
CHANDRASEKARAN et al, 1999 - Chandrasekaran, B.; Josephson,
J. R.; Benjamins, V. R., What Are
Ontologies, and Why Do We Need Them? [1999]. In IEEE
Intelligent Systems. 1999.
Magazine. pp 20 – 26.
FREITAS, F. G. (2004). Ontologias e a Web Semântica,
Programa de Pós-Graduação em Informática, Universidade
Católica de Santos.
LUTOSA, P. A., (2003) “OWL e Protegé: estudo e aplicação de
conceitos para exemplificação da definição da camada de
esquema da Web Semântica em um determinado domínio”
- Trabalho de Conclusão de Curso. Curso de Bacharel em
Sistemas de Informação, Palmas.
NATALYA, F. N. and Deborah, L. M. (2001). Ontology Development
101: A Guide to Creating your First Ontology, Stanford
Medical InformaticsTechnical Report SMI.
Protege Plugins Library by Topic
Disponível em: http://protege.cim3.net/cgibin/wiki.pl?ProtegePluginsLibraryByTopic (acessado em
03/11/2008)
The Protégé Ontology Editor and Knowledge Acquisition System
Disponível em http://protege.stanford.edu/ (acessado em
11/11/2008)
SMITH, M. K., Welty, C. and McGuinness, D. L. (2003) “OWL Web
Ontology Language Guide”.
Disponível em http://www.w3.org/TR/2003/CR-owl-guide20030818 (acessado em 04/11/2008)
Download

protegé - ufsc - Universidade Federal de Santa Catarina