UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA – INE CIÊNCIA DA COMPUTAÇÃO REENGENHARIA DO ONTOCOVER: UMA BIBLIOTECA JAVA PARA MANIPULAR ONTOLOGIAS EM APLICAÇÕES DA WEB SEMÂNTICA. Florianópolis, 2007. UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA – INE CIÊNCIA DA COMPUTAÇÃO REENGENHARIA DO ONTOCOVER, UMA BIBLIOTECA JAVA PARA MANIPULAR ONTOLOGIAS EM APLICAÇÕES DA WEB SEMÂNTICA. Relatório do Trabalho de Conclusão do Curso, requisito da disciplina de Projetos I, Prof. Renato Cislaghi, do curso de Ciências da Computação da Universidade Federal de Santa Catarina. Autor: Marcelo Oliveira de Moraes Orientação: Professor Renato Fileto Florianópolis, 2007. 2 RESUMO Este projeto visa realizar estudos sobre conceitos, técnicas e ferramentas da Web Semântica e aplicar os conhecimentos obtidos no aperfeiçoamento de uma biblioteca Java, denominada OntoCover, para manipulação de ontologias em aplicações baseadas em conhecimento. Palavras-chave: Web semântica, ontologia, visões de ontologias, coberturas ontológicas, OntoCover. 3 SUMÁRIO 1 OBJETIVO................................................................................... 05 1.1 TEMA............................................................................................ 05 1.2 OBJETIVO GERAL....................................................................... 06 1.3 OBJETIVOS ESPECÍFICOS........................................................ 06 2 MOTIVAÇÃO................................................................................ 07 3 ARQUITETURA............................................................................ 08 4 ATUALIZAÇÕES REALIZADAS................................................. 09 5 TRABALHO FUTURO.................................................................. 10 6 REFERÊNCIAS BIBLIOGRÁFICAS............................................ 11 4 1. OBJETIVO 1.1. Tema Realizar uma reengenharia no OntoCover, uma biblioteca Java para carregar, extrair visões e permitir a navegação em ontologias, bem como definir e comparar descritores semânticos baseados em visões de ontologias, para utilização em aplicações da Web semântica. O Ontocover permite carregar e manipular ontologias a partir de arquivos RDF, OWL ou de sistemas de gerenciamento de bancos de dados. Atualmente, o OntoCover utiliza o Jena versão 2 com API para a manipulação do conhecimento expresso na forma de triplas RDF e extração das visões. Tais visões de ontologias têm sido expressas por meio de reflexão computacional. A apresentação da visão da ontologia e navegação sobre a mesma utilizam recursos de interface como a biblioteca AWT do Java e uma implementação de árvore hiperbólica denominada Treebolic. 5 1.2. Objetivo Geral Realizar um estudo abrangendo Web semântica, ontologias, ferramentas e aplicações relacionados, para posteriormente aplicar o conhecimento obtido na biblioteca OntoCover. 1.3. Objetivos Específicos Aperfeiçoar, estender e otimizar as funcionalidades da OntoCover; Organizar o código do OntoCover e sua documentação de modo a facilitar o reuso; Atualizar as bibliotecas utilizadas na implementação atual, considerando inclusive a seleção de novas alternativas; Tentar incorporar uma linguagem declarativa para a especificação das visões de ontologias, de modo a oferecer um mecanismo mais adequado que os recursos de reflexão computacional utilizados atualmente para esta finalidade. 6 2 Motivação A Web Semântica é uma área de pesquisa em expansão que busca estender o papel dos computadores no suporte a diversas atividades humanas. Ela propõe a formalização do conhecimento na forma de ontologias de modo a permitir a agentes e outros programas manipular recursos (dados e serviços) publicados na Web de maneira mais inteligente e precisa. O OntoCover é uma biblioteca para a manipulação de ontologias, com funcionalidades para extração de visões de ontologias, navegação nessas visões, especificação e comparação de descritores semânticos baseados nessas visões, constituindo pois uma contribuição para o desenvolvimento de aplicações sobre a Web semântica. 7 3 Arquitetura Protégé OntoCover Carga e extração de visões de ontologias Visualização / Navegação nas visões Seleção e comparação de coberturas ontológicas Programa Aplicativo BD de Instâncias Ontologia em RDF/RDFS Figura 1: Componentes relacionados com a biblioteca OntoCover. A Figura 1 ilustra o funcionamento da biblioteca com as partes envolvidas. O Protégé fica encarregado da construção da Ontologia, esta será armazenada em arquivos do tipo RDF/ RDFS. As instâncias referentes aos conceitos da ontologia podem ser armazenadas numa base de dados (BD de Instâncias) e carregadas posteriormente. O OntoCover por ser um biblioteca têm a necessidade de estar contido em um Programa Aplicativo que forneça a Ontologia e extraia da biblioteca as funcionalidades necessárias para a aplicação. 8 4 Atualizações Realizadas. O OntoCover necessitava duma atualização em suas bibliotecas: Jena na versão 2.0 (08/2003) foi atualizada para a versão 2.5.1(01/2007). Houve a necessidade da inclusão das bibliotecas “commons-logging” e “iri” ambas pertencentes ao pacote da nova versão do Jena. Driver jdbc do postgresql da versão 7.3 para a 8.2. Algumas classes pertencentes a essas versões antigas ficaram com alguns métodos obsoletos, com isso foi necessário consultar a documentação para realizar as alterações de modo a não prejudicar as funcionalidades presentes no OntoCover. Além das bibliotecas, o código precisou sofrer ajustes uma vez que foi projetado quando estava na versão 1.4 o Java. Para se adaptar versão 6, foram necessárias essas adaptações: Instanciação das Coleções Java no formato parametrizado. Alguns objetos tinham um nome que passou a ser palavra reservada na versão 6 do Java, foi necessário mudar o nome do objeto. Essa manutenção no código em nada afetou as funcionalidades e assinaturas de métodos públicos. Com isso a compatibilidade de código não foi prejudicada sendo desnecessária eventuais mudanças nos Programas Aplicativos que utilizavam a versão antiga e queiram migrar para a nova. 9 5 Trabalho Futuro A pesquisa realizada em termos de ferramentas e artigos inerentes a Web Semântica gerou duas possibilidades de ser seguida: Permitir a criação semi-automática de índices que associe um conceito da ontologia a um arquivo que tenha semântica coerente com o conceito – a análise da precisão fica a cargo do usuário, optando por relacionar ou não o arquivo ao conceito. Esta seria uma funcionalidade adicional tornando possível abrir arquivos de acordo com a navegação na Ontologia. A biblioteca Lucene seria encarregada da indexação sendo incorporada ao OntoCover. No caso acima a partir da Ontologia chegamos aos arquivos, mas também seria interessante a partir de um arquivo texto obtermos conceitos da Ontologia. Para isso seria necessário um estudo intenso da ferramenta Gate, que atua no processamento de linguagem natural. Uma vez implementado será viável um paciente ao receber uma receita médica saber onde comprar o remédio em sua região, bastando selecionar o nome do remédio, por exemplo. 10 6 Referências Bibliográficas Davies, J., Studer, R., Warren, P. (Eds.) Semantic Web Technologies: trends and research in ontology-based Systems, John Wiley & Sons, 2006 T. Berners-Lee, J. Hendler, and O. Lassila. The semantic web. Scientific American, May 2001 FILETO, Renato; MEDEIROS, Claudia Bauzer ; PU, Calton ; LIU, Ling ; ASSAD, Eduardo Delgado. Building a Semantic Web System for Scientific Applications: An Engineering Approach. In: Intl. Conf. on Web Information System Engineering (WISE), 2005, New York. Lecture Notes in Computer Science. New York : Springer, 2005. v. 3806. p. 633-642. Documentação do PostgreSQL. Disponível em: <http://www.postgresql.org>. Acesso em: 02 fev. 2007. Documentação da biblioteca Jena. Disponível em <http://jena.sourceforge.net>. Acesso em:02 fev. 2007. Documentação do Lucene. Disponível em <http://lucene.apache.org>. Acesso em: 02 fev. 2007. Gate. Disponível em <http://gate.ac.uk>. Acesso em : 04 fev. 2007. 11