Você está na página 1de 9

Manipulao de uma ontologia desenvolvida em OWL

atravs da utilizao da API JENA 2 Ontology


Paulo Roberto Gonalves1, Parcilene Fernandes de Brito1
1
Laboratorio de Inteligncia Computacional Centro Universitrio Luterano de Palmas
(CEULP-ULBRA)
Qd. 1501-Sul 77.000-000 Palmas TO Brazil

{prg,pfb}@ulbra-to.br

Abstract. This article describes a theoretical recital on the language for


representation of OWL ontology and on the API Jena Ontology of the Java. It
demonstrates as the manipulation of a ontology developed in OWL in the Java
environment is made and describes the implementation of a module for a Web
Portal of Universities. It presents, still, methods for the inclusion of classes
and the creation of axioms.

Resumo. Este artigo descreve uma fundamentao terica sobre a linguagem


para representao de ontologias OWL e sobre a API Jena Ontology do Java.
Demonstra como feita a manipulao de uma ontologia desenvolvida em
OWL no ambiente Java e descreve a implementao de um mdulo para um
portal Web de Universidades. Apresenta, ainda, mtodos para a incluso de
classes e para a criao de axiomas.

1. Introduo
O grande aumento da utilizao da Web tem desencadeado o surgimento de novas
tecnologias. Com isso, procura-se melhorar a forma de representar e posteriormente
manipular as informaes contidas nessa rede para atender seus usurios de uma forma
mais eficiente. A Web Semntica surge como um novo conceito para organizao de
dados, tendo como objetivo a busca de um padro capaz de suportar o entendimento
semntico das informaes. Portanto, os documentos Web teriam, alm da informao,
a estrutura do documento e as informaes referentes ao seu contexto.
A descrio desse contexto feita por meio do conceito de metadados. Como os
documentos Web precisam de metadados para expressar o seu valor semntico,
preciso utilizar uma linguagem que faa a descrio de tais informaes. Tem-se assim
o padro RDF (Resource Description Framework) [Beckett e McBride 2004], que foi
criada para definir uma padronizao da representao e do uso de metadados na Web.
Mas a padronizao dos dados no o bastante para a Web Semntica. preciso que
se tenha fontes comuns de informaes, sendo um vocabulrio de dados organizado para cada
domnio de aplicao. Por isso surge a necessidade de compreender o conceito de Ontologias.
VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004
CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
O objetivo desse artigo a manipulao de uma ontologia desenvolvida em
OWL utilizando a API Jena da Linguagem de Programao Java. Para isso, sero
tratados especificamente os mtodos da API Jena 2 Ontology. Esta linguagem permite
que os documentos sejam estruturados utilizando todos os recursos do padro RDF,
acrescentando, ainda, outras propriedades. Assim, possvel a criao de classes mais
complexas, ou seja, possvel representar classes disjuntas, interseco de classes,
dentre outras propriedades.
Este artigo est estruturado da seguinte forma: a seo 2 exibe os principais
conceitos da linguagem OWL; a seo 3 descreve a API Jena utilizada para o
desenvolvimento; a seo 4 apresenta como feita a manipulao de ontologias. Na
seo 5 so apresentados a definio dos mtodos e axiomas criados para a
manipulao, na seo 6 encontra-se as consideraes finais acerca do trabalho.

2. OWL (Web Ontology Language)


Segundo uma viso filosfica, o termo ontologia definido por Aristteles como sendo
uma concepo de tudo aquilo que pode existir ou ser. Mas na rea da Informtica,
mais precisamente em Inteligncia Artificial, Grubber (1999) define uma ontologia como
sendo a especificao de uma conceitualizao. Guarino (1998) j estende essa definio ao
afirmar que uma ontologia na verdade uma especificao parcial e explcita que tenta, da
melhor forma possvel, aproximar a estrutura de mundo definida por uma conceituao.
Assim, uma ontologia uma descrio explcita de conceitos e relaes referentes a um
determinado domnio. Essa conceitualizao refere-se ao conjunto de conceitos, relaes,
objetos e restries que so definidos para um modelo semntico de algum domnio de
interesse [Lustosa 2003].
A OWL uma especificao de uma linguagem para ontologias desenvolvida
pela W3C, faz parte da crescente lista de recomendaes da W3C relacionadas ao
desenvolvimento da Web Semntica. Esta linguagem oferece mecanismos para
representar explicitamente o significado dos termos e dos relacionamentos entre estes
termos [Smith et al. 2004].
A OWL deriva de outras duas linguagens, a OIL (Ontology Inference Layer) e a
DAML (DARPA Agent Markup Language). A OIL foi a primeira destas linguagens, e teve
como principal requisito a facilidade de adoo por parte dos desenvolvedores, servindo
principalmente comunidade ligada Web semntica [Horrocks et al. 2000]. Mais adiante as
duas foram unidas, criando a linguagem DAML+OIL. A figura 1 mostra a origem da
linguagem OWL.

VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004


CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
Figura 1. Origem da Linguagem OWL

Na figura 1 pode-se observar que a linguagem OWL possui as caractersticas do RDF e


um vocabulrio maior que a DAML+OIL, oferecendo assim mais recursos para utilizao.
Com isso, a OWL projetada para ser utilizada por aplicaes que necessitam realizar o
processamento do significado das informaes antes de apresent-las aos usurios
[Smith et al. 2004]. A OWL utilizada para representar vocabulrios e os
relacionamentos existentes entre as entidades desses vocabulrios, permitindo a
descrio de classes e propriedades.
Os recursos que a linguagem OWL oferece so divididos em trs sublinguagens
[Smith et al. 2004]:
OWL Lite suporta usurios que precisam de uma hierarquia de
classificao e funcionalidades de restries simples. Por exemplo: a
OWL Lite suporta cardinalidade, mas s permite os valores 0 e 1. Ela se
torna mais fcil de ser implementada em uma ferramenta e faz com que a
transio de outros modelos de vocabulrios e taxonomias para OWL
seja mais rpida.
OWL DL suporta usurios que precisam de mxima expressividade ao
mesmo tempo em que seus sistemas mantm a completude (garantia que
todas as concluses sero executadas) e decidibilidade (todos os clculos
terminaro em tempo finito) do sistema. A OWL DL inclui todos os
artefatos da linguagem OWL, mas impem restries quanto a utilizao.
OWL Full para usurios que desejam a mxima expressividade e a
liberdade sinttica do RDF. A OWL Full permite que uma ontologia
aumente o significado do vocabulrio (RDF ou OWL) predefinido. No
esperado que nenhum software suporte todas as caractersticas da OWL
Full.
OWL Full pode ser vista como uma extenso da RDF, enquanto OWL Lite e
OWL DL so extenses de uma viso delimitada de RDF. Portanto, cada uma destas
sublinguagens uma extenso de seu predecessor mais simples.

VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004


CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
3. Jena
Jena uma API para a linguagem de programao Java, desenvolvida por Brian
McBride da Hewlett-Packard, usada na criao e manipulao de grafos RDF.
A API Jena possui objetos, classes para representar os modelos, recursos,
propriedades e literais do RDF. As interfaces representando recursos, propriedades e
literais so chamadas Resource, Property e Literal, respectivamente. Em Jena, um grafo
RDF chamado de modelo e representado pela interface Model.
A primeira verso da API Jena possui mtodos para a manipulao de ontologias
em DAML+OIL, enquanto que na segunda verso foram desenvolvidos mtodos que
permitem a manipulao em ontologias RDFS e OWL. A API DAML da Jena teve
muito pouco suporte para desenvolvimento de ontologias com a semntica da linguagem
DAML.
Para o suporte a manipulao de ontologias, a segunda verso da API Jena
possui um pacote especfico, chamado: API Jena 2 Ontology. Nesse pacote existem
classes para a manipulao de ontologias em RDFS, DAML+OIL e OWL. Para o
suporte a essas linguagens de ontologias a API possui as seguintes classes: OntClass e
ObjectProperty.
Para cada uma das linguagens de ontologias existe um parmetro que permite a
construo de URIs de classes e propriedades. Cada parmetro possui uma sintaxe
diferente, por exemplo, no parmetro da linguagem DAML, o URI para uma
propriedade do objeto daml:ObjectProperty e na linguagem OWL
owl:ObjectProperty. J no RDFS, o parmetro nulo, pois neste padro no se definem
propriedades para os objetos. Cada linguagem de ontologia possui suas prprias
caractersticas, limitada ao seu modelo de ontologia, mas todas estendem a verso do
modelo de classes da Jena.
Um modelo de ontologia uma extenso do modelo RDF da Jena que fornece
capacidades para a manipulao de ontologias. Os modelos de ontologia so criados por
meio do Jena ModelFactory. A maneira mais simples de se criar um modelo de
ontologia utilizando a classe OntModel proveniente do pacote de ontologias da Jena.
Alm da capacidade simples de ler documentos, o modelo de ontologias possui
algumas capacidades adicionais, como fazer o tratamento de reusabilidade e importar
diferentes tipos de documentos. Na OWL e na DAML tem-se uma classe individual
Ontology que contm meta-dados sobre o documento. A figura 2 mostra o exemplo da
classe Ontology em um documento OWL.

Figura 2. Exemplo da Classe Ontology

Para o acesso e manipulao de ontologias, a Jena possui o pacote


com.hp.hpl.jena.ontology que faz a representao da ontologia em RDF. As linguagens
de ontologias trabalhadas nesse pacote so a OWL e a DAML+OIL.
VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004
CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
Os recursos oferecidos por esse pacote para a manipulao de ontologias podem
ser encontrados em [Jena 2003].

4. Manipulao de Ontologias
A ontologia utilizada est relacionada com um mdulo para um portal Web de
Universidades. Essa ontologia apresenta os relacionamentos existentes entre os cursos,
disciplinas e turmas. Para que se tenha um melhor entendimento acerca da ontologia
utilizada, a figura 3 apresenta a modelagem feita por [Lustosa 2003] para a ontologia.

Figura 3. Modelagem da Ontologia Universidade (Lustosa 2003)

Essa ontologia foi desenvolvida por [Lustosa 2003], que utilizou a ferramenta de
edio de ontologias Protg 2.0, gerando assim um cdigo OWL. Para que fosse
possvel a manipulao no ambiente Java da ontologia Universidade, primeiro foi
necessrio fazer uma modificao no cabealho do cdigo OWL, para que a Jena fosse
capaz de interpret-la de forma correta. As figuras 4 e 5 demonstram como foi feita essa
modificao.

VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004


CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
Figura 4. Cabealho da Ontologia Universidade de [Lustosa 2003]

Figura 5. Cabealho da Ontologia Universidade Modificado

A figura 4 apresenta o cabealho original da ontologia, destacando a parte em


que a ferramenta Protg, utilizada no desenvolvimento, coloca seu namespace. Na
figura 5, pode-se observar que o namespace destacado na figura 4 foi retirado e
acrescentados outros trs namespaces para que a Jena pudesse carregar o cdigo
especificado, assim foi possvel fazer manipulaes acerca dessa ontologia.
Ao gerar o cdigo RDF da ontologia Universidade, utilizando a API Jena, foi
observada a diferena entre os dois. A seguir sero apresentados exemplos do cdigo
RDF Jena gerado e do original OWL.
Uma classe simples criada na ontologia original visualizada como mostra a
figura 6 e a mesma classe feita por meio da API Jena mostrada na figura 7.

Figura 6. Classe criada em OWL

Figura 7. Classe criada em RDF

Verificou-se que classes criadas por meio da Jena apresentam cdigos RDF mais
extensos e complexos do que aquelas definidas diretamente na linguagem OWL. Isso
ocorre, especialmente, quando so utilizadas classes complexas (intersectionClass,
unionClass etc).

5. Definio dos mtodos para manipulao da ontologia

5.1 Insero de novas classes


Foi observada a necessidade de novas classes para a ontologia. Para isso, foi
implementado um mtodo que permite a criao de uma nova subclasse para uma classe
j existente. O mtodo explicitado mostra a criao de uma nova classe chamada
Administrativo, que subclasse da classe Funcionario. A figura 8 mostra a classe
VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004
CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
Administrativo acrescentada a ontologia Universidade. A classe Administrativo
foi agregada na ontologia por se ter verificado que a classe Funcionario poderia ser
subdividida em categorias como administrativo e professor.

Figura 8. Classe Administrativo acrescentada na Ontologia Universidade

Figura 9. Cdigo em Java da Criao e Adio da Classe Administrativo na Ontologia

Na figura 9 apresentado o cdigo, em java, referente criao da classe


Administrativo. Na linha 1, da figura 9, criado um modelo simples de Ontologia; na
linha 3 esse modelo de ontologia criado vai receber uma ontologia j pronta, a ontologia
Universidade. Com a ontologia carregada pode-se fazer a manipulao dos seus
elementos atravs dos recursos que a Jena oferece. Ainda na figura 9, tem-se a criao
da classe Administrativo, que adicionada ao modelo de ontologia carregado.
Primeiramente preciso buscar a classe Funcionario para que se possa adicionar a
classe Administrativo como uma subclasse de Funcionario. Na linha 10, cria-se
uma lista com as classes existentes na ontologia; na linha 11 cria-se um objeto OntClass
que recebe cada classe para se fazer a verificao apresentada na linha 12 (at que se
encontre a classe Funcionario). Uma nova classe criada na linha 13 (classe
Administrativo) e, na linha 14, esta classe adicionada classe Funcionario por
meio do mtodo addSubClass().

5.2 Criao de axiomas


Atravs da modelagem realizada foi possvel estabelecer novos axiomas para a
ontologia. Esses axiomas so definidos como classes complexas. Ou seja, so as
verdades estabelecidas para o domnio. A classe FuncionarioGeral a unio da classe
professor e da classe administrativo. O cdigo referente a essa unio pode ser
analisado na figura 10.

VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004


CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
Figura 10. Exemplo da Unio de duas Classes da Ontologia Universidade em Java

Conforme observado no exemplo acima, as relaes existentes nas subclasses


fornecem circunstncias de necessidade entre elas. Por exemplo, para ser um professor,
um indivduo necessita tambm ser um funcionrio.
Outro axioma criado tem relao com a classe departamento. A necessidade
dos axiomas de departamentos foi observada a partir de um melhor entendimento do
prprio domnio. Assim, foram adicionadas classes de departamentos separadas, como
DepartamentoDeInformatica e DepartamentoDeEngenharias. Mas cada classe
criada precisava ter suas instncias definidas, por isso foi necessrio criar um objeto do
tipo EnumeratedClass que define quais instncias compem uma determinada classe. A
figura 11 mostra o cdigo referente criao dessas classes.

Figura 11. Exemplo de EnumeratedClass

Assim de acordo com o cdigo apresentado na figura 11, estabelecido que


nenhum outro indivduo, alm daqueles que foram especificados nas classes, podem
pertencer aos conjuntos DepartamentoDeInformatica e
DepartamentoDeEngenharias.

6. Consideraes Finais
O objetivo desse trabalho foi o entendimento mais aprofundado da API Jena 2 Ontology
para a manipulao de ontologias. Assim, foi mostrada a fundamentao terica que deu
suporte para a implementao das modificaes feitas na ontologia, descrevendo as
caractersticas relevantes ao desenvolvimento do mesmo.

VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004


CEULP/ULBRA Curso de Sistemas de Informao Palmas TO
Alm do aspecto inicial de estudos das teorias que foram necessrias para a
realizao do trabalho, foram realizados vrios testes de implementao utilizando os
mtodos da API Jena 2 Ontology para o entendimento de como possvel a
manipulao de uma dada ontologia. Esses testes foram detalhados de forma a
possibilitar uma maior compreenso da teoria e da prpria API.
A API Jena apresenta inmeros recursos que, aliados linguagem de
programao Java, acelera e facilita a implementao de ontologias. Isso, acrescentado
ao fato da linguagem j oferecer pacotes contendo vrias classes e interfaces.
A incluso de novas classes e axiomas trouxe para a ontologia uma melhor
capacidade de inferncia semntica. Assim, a ontologia poder responder a um nmero
maior de questes a partir de definies existentes no seu prprio domnio.
Como trabalhos futuros, pode-se pensar na criao de um ambiente que
possibilite o desenvolvimento de ontologias com uma interface grfica bem definida. A
linguagem Java fornece recursos para a criao de interfaces grficas bastante
completas, sendo que a API Jena Ontology possui recursos especficos para a criao de
ontologias. Desta forma, possvel desenvolver uma interface que permita ao usurio a
construo e manipulao de ontologias. A existncia de poucos editores de ontologias
estimula a realizao de trabalhos relacionados a essa linha de pesquisa, pois pode-se
verificar as deficincias encontradas nesses editores e melhor-las, tornando-os mais
eficientes.

Referncias
Beckett, D. and McBride, B. (2004) RDF/XML Syntax Specification (Revised),
http://www.w3.org/TR/rdf-syntax-grammar/, Fevereiro.
Grubber, T. (1999) What is Ontology?, http://www-ksl.stanford.edu/kst/what-is-na-
ontology.html, Novembro.
Guarino, N. (1998) Formal Ontology and Information Systems,. In Formal Ontology
in Information Systems (FOIS98), Trento, Itlia.
Horrocks, I. , Fensel, D., Broekstra, J., Decker, S., Erdmann, M., Goble, C., Harmelen ,
F., Klein, M., Staab, S., Studer, R., Motta, E. (2000) . The Ontology Inference Layer
Oil, http://www.ontoknowledge.org/oil/TR/oil.long.html, Maro.
Jena (2003) Jena 2 Ontology API, http://jena.sourceforge.net/ontology/, Novembro.
Lustosa, P. A., (2003) OWL e Protg: estudo e aplicao de conceitos para
exemplificao da definio da camada de esquema da Web Semntica em um
determinado domnio, Trabalho de Concluso de Curso. Curso de Bacharel em
Sistemas de Informao, Palmas.
Smith, M. K., Welty, C. and McGuinness, D. L. (2003) OWL Web Ontology Language
Guide, http://www.w3.org/TR/2003/CR-owl-guide-20030818, Agosto.

VI Encontro de Estudantes de Informtica do Estado do Tocantins ENCOINFO 2004 4 e 5 de novembro de 2004


CEULP/ULBRA Curso de Sistemas de Informao Palmas TO

Você também pode gostar