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)