Você está na página 1de 66

Universidade Federal do Par

Instituto de Cincias Exatas e Naturais Faculdade de Computao Curso Bacharelado em Cincia da Computao Trabalho de Concluso de Curso

Vagner Nogueira Silva

Modelagem de Base de Conhecimentos Baseada em Ontologia


Estudo de Caso em Recuperao de Informao Bibliogrfica

Belm 2010

Universidade Federal do Par


Instituto de Cincias Exatas e Naturais Faculdade de Computao Curso Bacharelado em Cincia da Computao Trabalho de Concluso de Curso

Vagner Nogueira Silva

Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Recuperao de Informao Bibliogrfica

Trabalho de Concluso de Curso apresentado para a obteno do grau de Bacharel em Cincia da Computao. Orientador: Prof. Dr. Adagenor Lobato Ribeiro

Belm 2010

Universidade Federal do Par


Instituto de Cincias Exatas e Naturais Faculdade de Computao Curso Bacharelado em Cincia da Computao Trabalho de Concluso de Curso Vagner Nogueira Silva

Modelagem de Base de Conhecimentos Baseada em Ontologia Estudo de Caso em Recuperao de Informao Bibliogrfica
Monograa apresentada para a obteno do grau de Bacharel em Cincia da Computao.

Data da defesa: 17 de Junho de 2010. Conceito:

Banca Examinadora

Prof. Dr. Adagenor Lobato Ribeiro Faculdade de Computao/UFPA - Orientador

Prof. Dr. Antonio Morais Silveira Faculdade de Computao/UFPA - Membro

Prof. Dr. Francisco Edson Lopes da Rocha Faculdade de Computao/UFPA - Membro

minha me, minha mulher, demais familiares e amigos. iii

AGRADECIMENTOS
Agradeo Deus pela fora que me concedeu para superar as diculdades e provaes da vida. minha me pelo amor e dedicao. Aos Professores da Faculdade de Computao pelas lies e aprendizado, em especial o Prof. Dr. Francisco Edson pelos conselhos e pela dedicao Faculdade. Ao meu honorco orientador pela pacincia e tempo dispensados e pela conana depositada. Ao Professor Morais por nos ter concedido a honra de sua participao em banca de defesa. E, nalmente, aos meus amigos pelo companheirismo.

iv

"Quando vos mandei sem bolsa, alforge ou sandlias, faltou-vos, porventura, alguma coisa? Eles responderam: Nada." Lucas 22.35-38

Sumrio

Lista de Figuras Lista de Quadros Resumo Abstract 1 Introduo 1.1 Contextualizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 1.2.2 Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ix x xi xii 1 1 2 2 3 3 4 4 5 5 6 7 8 9 9

1.3 Estrutura do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Web Semntica e Ontologia 2.1 Web Semntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Arquitetura da Web Semntica . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 Unicode e URI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Camada de Ontologia . . . . . . . . . . . . . . . . . . . . . . . . . . Lgica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

vi

2.2.7

Conana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 9

2.3 Ontologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 2.3.2

Componentes de uma Ontologia . . . . . . . . . . . . . . . . . . . . 11 Tipos de Ontologias . . . . . . . . . . . . . . . . . . . . . . . . . . 11 13

3 OWL Web Ontology Language

3.1 Denio e conceitos iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Propriedades em OWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.1 3.2.2 3.2.3 Propriedades de anotaes (annotation properties) . . . . . . . . . . 16 Caractersticas das propriedades OWL . . . . . . . . . . . . . . . . 17 Domnio e escopo das propriedades . . . . . . . . . . . . . . . . . . 19

3.3 Descrio e denio de classes OWL . . . . . . . . . . . . . . . . . . . . . 19 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 Restries de propriedades . . . . . . . . . . . . . . . . . . . . . . . 19 Restries de quanticador . . . . . . . . . . . . . . . . . . . . . . . 19 Restries existenciais . . . . . . . . . . . . . . . . . . . . . . . . . 20 Restries universais (universals restictions) . . . . . . . . . . . . . 20 Restries de cardinalidade (cardinality restrictions) . . . . . . . . . 21 Restries temValor (hasValue) . . . . . . . . . . . . . . . . . . . . 21

3.4 Condies declaradas (asserted conditions) . . . . . . . . . . . . . . . . . . 22 3.4.1 3.4.2 Condies necessrias (necessary criteria) . . . . . . . . . . . . . . 22 Condies necessrias e sucientes (necessary & sucient criteria) 22

3.5 Axiomas comuns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.6 Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4 Modelagem da informao 25

4.1 Nveis de organizao da informao . . . . . . . . . . . . . . . . . . . . . 25 4.2 Paralelo com paradigma de orientao a objetos . . . . . . . . . . . . . . . 26 4.3 Engenharia ontolgica e o mtodo 101 . . . . . . . . . . . . . . . . . . . . 26 vii

4.4 Ambiente Protg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.5 Modelagem da ontologia estudo de caso . . . . . . . . . . . . . . . . . . . . 30 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 Determinar a abrangncia (domnio e escopo) . . . . . . . . . . . . 30 Considerar reuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Enumerar termos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Denir classes e hierarquia de classes . . . . . . . . . . . . . . . . . 32 Denir propriedades . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Denir restries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Criar instncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 38

5 Implementao da base de conhecimentos 5.1 Java Enterprise Edition 5.1.1 5.1.2 5.1.3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 . . . . . . . . . . . . . . . . . . . . . . . . . 38

Enterprise JavaBeans

Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Servidor GlassFish e IDE Netbeans . . . . . . . . . . . . . . . . . . 41

5.2 API Jena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.3 SPARQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.4 Prototipao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.4.1 5.4.2 5.4.3 Paradigma de obteno de informao . . . . . . . . . . . . . . . . 45 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Implementao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 50

6 Consideraes Finais

6.1 Anlise dos resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.2 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Referncias Bibliogrcas 52

viii

Lista de Figuras
1 2 3 4 5 6 7 8 9 10 11 12 Arquitetura de camadas da Web Semntica . . . . . . . . . . . . . . . . . . Exemplo de grafo RDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tela do ambiente Proteg 5 8

. . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Hierarquia e documentao de classes . . . . . . . . . . . . . . . . . . . . . 32 Propriedades de tipos de dados das classes . . . . . . . . . . . . . . . . . . 33 Propriedades de objeto da Ontologia . . . . . . . . . . . . . . . . . . . . . 33 Criao de algumas instncias de classes . . . . . . . . . . . . . . . . . . . 37 Interfaces Jena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Atual paradigma de obteno de informao . . . . . . . . . . . . . . . . . 45 Novo paradigma de obteno de informao . . . . . . . . . . . . . . . . . 46 Arquitetura do sistema de base de conhecimentos . . . . . . . . . . . . . . 48 Diagrama de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

ix

Lista de Quadros
1 2 3 4 5 6 7 Enumerao de termos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Propriedades de objeto comentadas . . . . . . . . . . . . . . . . . . . . . . 34 Subpropriedades de livroTem . . . . . . . . . . . . . . . . . . . . . . . . . 34

Subpropriedades de temLivro . . . . . . . . . . . . . . . . . . . . . . . . . 35 Propriedades de tipos de dados funcionais . . . . . . . . . . . . . . . . . . 35 Caractersticas das propriedades de objeto . . . . . . . . . . . . . . . . . . 36 Comparando Web Semntica e Jena . . . . . . . . . . . . . . . . . . . . . . 42

Resumo
A Web Semntica foi idealizada por Tim Berners-Lee, o inventor da web atual, para estender a web que se conhece atualmente, com o objetivo de tornar o contedo da web entendvel por agentes computacionais. A partir dessa proposta o consrcio W3C (World Wide Web Consortium) trabalha no desenvolvimento dos padres que so utilizados nesta nova verso da web. O principal pilar da web semntica so as Ontologias, que podem formar bases de conhecimento complexas, sobre as quais agentes de software, possam "raciocinar"e "inferir", programaticamente, novos conhecimentos. A linguagem OWL o padro desenvolvido e recomendado pelo W3C para representao de Ontologias na web. Embora os avanos em pesquisas e desenvolvimento nesta rea tenham sido signicativos, a arquitetura da Web Semntica ainda no foi concluda. Observa-se que ocorre pouca popularizao dos conceitos e padres da Web Semntica entre desenvolvedores de sistemas web, pois apenas a indstria de ponta e academia tm implementado sistemas nesta rea. Este trabalho, traz a web semntica, no seu atual estado, do campo terico para a prtica da implementao de sistemas, tratando acerca da modelagem de base de conhecimentos baseado em Ontologia. Como estudo de caso, modelou-se uma base de conhecimentos sobre livros, objetivando a recuperao de informao bibliogrca. Para implementao do prottipo do sistema de estudo de caso, utilizou-se a especicao JEE6 em conjunto com o framework Jena. Efetuou-se um estudo acerca da Web Semntica; padres da mesma; engenharia ontolgica com o mtodo 101; a linguagem OWL e o ambiente Protg. Palavras-chave: Web Semntica, Ontologia, OWL, framework Jena.

xi

Abstract
The Semantic Web was envisioned by Tim Berners-Lee, inventor of the current web, for extend the Web that is currently known, with the goal of making Web content understandable by computational agents. On this basis the consortium W3C (World Wide Web Consortium) works to develop standards that are used in this new version of the web. The main pillar of the semantic web are ontologies, which can form the basis of knowledge complex, about which software agents, to "reasoning"and "inferred,"programmatically, foreground. The OWL is the standard developed and recommended by the W3C for representing ontologies on the web. While advances in research and development in this major have been signicant, the architecture of the Semantic Web has not yet been completed. It is observed that occurs little popularization of the concepts and standards of the Semantic Web developers from Web systems because only the high-tech industry and academia have implemented systems in this major. This work brings the Semantic Web in its current state, the theoretical to the practical implementation of systems, addressing modeling based on the knowledge-based ontology. As a case study, modeled itself a knowledge base about books aimed at information retrieval literature. To implement the prototype system case study, we used the specication JEE6 together with the framework Jena. We conducted a study on the Semantic Web, the same standards, ontological engineering with the method 101, the Protg OWL language and environment. Keywords: Semantic Web, Ontology, OWL, Jena Framework.

xii

Introduo

1.1

Contextualizao

Os conceitos primordiais para a Web Semntica foram expostos por Tim Bernes Lee, James Hendler e Ora Lassila, em um artigo da revista Scientifc American, intitulado The Semantic Web, publicado em Maio de 2001. Com uma linguagem clara e simples, os pesquisadores propuseram uma nova forma de organizao das informaes contidas na web, de maneira que ela possa se tornar inteligvel, no s por humanos, mas tambm por agentes computacionais. Isso possibilita pesquisa, compartilhamento e integrao de informaes, por softwares, atravs da web, com maior ecincia e facilidade. A web semntica ser, efetivamente, um meio universal para intercmbio de dados, informao e conhecimento, possibilitando que seus usurios interajam com os recursos computacionais de maneira muito mais ecaz. Desta maneira, foi concebida a Web Semntica, tambm conhecida como Web 3.0 ou Web dos dados. Ela uma extenso da web atual, a web dos documentos, uma evoluo, e no uma substituta para a web que se tem atualmente. A partir destas ideias iniciais, o W3C1 , tm trabalhado em cima destes conceitos, no sentido de propor padres para a Web Semntica. Apesar dos esforos do W3C, a arquitetura da Web Semntica ainda no est completa, mas os avanos tm sido signicativos. O principal pilar da web semntica so as Ontologias, que podem formar bases de conhecimento complexas, sobre as quais agentes de software, possam "raciocinar"e "inferir", programaticamente, novos conhecimentos. Mesmo com a arquitetura ainda inacabada, tanto a academia quanto a alta indstria, tm produzido diversos sistemas semnticos, Ontologias e bases de conhecimentos baseado em Ontologia. Destaca-se a academia da rea das cincias da sade e das cincias
1 O World Wide Web Consortium (ou W3C Consortium), criado em outubro de 1994, tem como principal objetivo liderar o desenvolvimento de protocolos comuns para assegurar a interoperabilidade na Internet. Possui mais de 500 organizaes membros que contribuem para o crescimento da Web.

biolgicas, que muito tm utilizado os padres j denidos para a Web Semntica. Entretanto, percebe-se pouco interesse, pela Web Semntica, tanto no sentido de pesquisa como no sentido de produo de sistemas que utilizam o arcabouo da Web Semntica, ou bases de conhecimentos baseadas em Ontologia. Uma simples comparao com outras reas da cincia da computao, fornece a clara conrmao deste fato. Este trabalho vem mostrar como se pode, facilmente, implementar sistemas utilizando as tecnologias e padres, j denidos na arquitetura da web semntica em conjunto com outras tecnologias, e a implementao de um prottipo de sistema de base de conhecimentos para recuperao de informao bibliogrca. A justicativa para a escolha desse tema para a implementao do estudo de caso reside no fato de haver grande diculdade em se obter informaes sobre o domnio de conhecimento em questo. A web tem muitas informaes desorganizadas sobre o domnio de livros, qualquer pessoa que tem interesse em fazer alguma pesquisa sobre, por exemplo, o preo mdio de um determinado livro em sua cidade, utilizando apenas a web, ter muito trabalho, descartando dados irrelevantes e fazendo cruzamento dos dados relevantes.

1.2
1.2.1

Objetivos
Gerais

Lista-se, a seguir os objetivos gerais deste trabalho. Trazer alguns padres, teoria e losoa da Web Semntica, do campo terico, para a prtica da implementao de sistemas, no que diz respeito modelagem de bases de conhecimentos baseadas em Ontologia. Desenvolver uma metodologia de implementao, que com pouco esforo, resulta num sistema que processa uma base de conhecimentos baseada em Ontologia. Contribuir para a popularizao dos conceitos e prtica da Web Semntica. Implementar, como estudo de caso, um prottipo de sistema de recuperao de informaes bibliogrcas, objetivando "raciocinar", programaticamente em cima de uma base de conhecimentos sobre livros, permitindo ao usurio obter informao relevante sobre o domnio coberto pela Ontologia utilizada.

1.2.2

Especcos

Este trabalho tem como objetivos especcos, os listados a seguir. Formatar o embasamento terico para entendimento dos objetivos deste trabalho. Mostrar a utilizao o mtodo 101 e o ambiente Protg 2 para a modelagem da Ontologia do estudo de caso. Utilizar a arquitetura JEE63 , em conjunto com a API Jena4 para atingir os objetivos de implementao do prottipo acima citado.

1.3

Estrutura do trabalho

No captulo seguinte (cap. 2) foi feito um passeio pelos conceitos da web semntica e o conceito de Ontologia, objetivando embasamento terico. No captulo 3 foi feito um resumo terico acerca dos conceitos da linguagem OWL. No captulo 4 falou-se sobre a modelagem da informao, engenharia ontolgia com o mtodo 101, uma introduo ao ambiente Protg e a modelagem da Ontologia de estudo de caso. O captulo 5 trata acerca da implementao da base de conhecimento, onde se fez um resumo sobre as tecnologias utilizadas. Posteriormente, descreve-se a implementao do sistema estudo de caso. Finaliza-se com as consideraes nais (cap. 6), onde se avalia os resultados e sugere-se trabalhos futuros.

2 3

http://protege.stanford.edu/ http://java.sun.com/javaee/technologies/ 4 http://jena.sourceforge.net/

Web Semntica e Ontologia

2.1

Web Semntica

A Web Semntica foi idealizada por Tim Bernes-Lee, criador da web atual e lder do W3C. Segundo W3C (2010b), o termo "Web Semntica"refere-se viso do W3C de Web dos dados vinculados, ou interligados. Tecnologias Web Semnticas permitem que pessoas criem armazenamento de dados na Web, construam vocabulrios, e escrevam as regras para a manipulao de dados. A vinculao de dados so permitidas por diversos padres de tecnologias desenvolvidos pelo W3C para a Web Semntica. importante, neste ponto, deixar claro o signicado, para este trabalho relevante, de dado e informao. De acordo com Rosa (2002) a diferena entre dado e informao reside no entendimento de seu contedo: "A palavra dado refere-se a todo texto que no tem signicado embutido, ou seja, que no pode ser entendido. J a palavra informao refere-se a todo o texto no qual o leitor capaz de entender seu signicado". A proposta da Web Semntica , ento possibilitar que agentes de software executem tarefas complexas na web. Tarefas que no so possveis de serem efetuadas por eles atualmente, como transformar dados em informaes relevantes para o usurio, realizar inferncias sobre informaes e realizar consultas complexas, do tipo "informe que livraria com endereo na cidade de Belm do Par vende o livro de ttulo Engenharia de Software do autor Pressman e depois informe os preos que estas livrarias vendem este livro". Um dos passos para esta automatizao proposta, consiste em "etiquetar"os dados da web atual com metadados. Segundo, Rosa (2002), metadados so dados que descrevem o contedo, a estrutura, a representao e o contexto de algum dado ou conjunto de dados. Pode-se citar, como exemplo de metadados, o catlogo de peas de uma ocina mecnica, onde se pode encontrar dados sobre peas de veculos.

2.2

Arquitetura da Web Semntica

Foi projetada uma arquitetura em camadas para que a Web Semntica possa se realizar em plenitude. Cada camada apresenta uma srie de tecnologias com seus respectivos padres propostos pelo W3C. Como se pode observar na Figura 1.

Figura 1: Arquitetura de camadas da Web Semntica e suas respectivas tecnologias. Fonte: http://semanticweb.org/images/3/37/Semantic-web-stack.png

De acordo com Rosa (2002), "cada linguagem construda baseada nas linguagens denidas em nveis inferiores, sendo os nveis de URI e Unicode os mais fundamentais, pois tratam da representao de caracteres e recursos. A camada XML dene a sintaxe de todas as linguagens das camadas superiores". A seguir ser dada uma viso geral acerca de cada camada da arquitetura da Web Semntica.

2.2.1

Unicode e URI

Unicode1 um padro para representao de caracteres. Segundo unicode.org (2009), Unicode fornece um nmero nico para cada caractere, no importa qual a plataforma, o programa, o idioma. Para a Web Semntica o Unicode o padro para escrita de caracteres, desta forma parte do requisito de universalidade da informao se torna satisfeito. URI2 (Uniform Resource Identier ) o padro para identicar recursos na web. Uma URI uma cadeia de caracteres que identica uma pgina HTML, uma imagem, um
1 2

http://www.unicode.org/ http://www.w3.org/Addressing/

arquivo, um servio e qualquer outro recurso, disponibilizado via web.

2.2.2

XML

A camada XML composta pelos padres XML, XML Schema e XML NameSpaces, descritos a seguir. XML3 (Extensible Markup Language) uma linguagem de marcao de texto simples e muito exvel, derivada da SGML
4

(ISO 8879).

Segundo W3C (2003) "XML foi originalmente concebida para responder aos desaos de grande escala da publicao eletrnica. XML tambm desempenha um papel cada vez mais importante na troca de uma ampla variedade de dados na Web e em outros lugares". XML a base de todas as linguagens da Web Semntica que expressam signicado. O XML denir as estruturas destas linguagens. Lista-se, a seguir, alguns benefcios oferecidos pela linguagem XML, citados por Rosa (2002): Linguagem independente de fornecedor e de fcil compreenso; Reduo de custos de treinamento e desenvolvimento devido ao formato simples; Linguagem legvel por humanos e por agentes de software; Aumento da conana devido automatizao dos agentes de software; Trata-se da base de apoio da Web Semntica na qual proporciona interoperabilidade; Liberdade na criao das estruturas por usurios; Permite a reutilizao de dados sem nenhuma ligao com ferramentas proprietrias ou formatos no documentados. A linguagem XML utiliza marcaes, chamadas de tags, para denir informaes. Cada informao deve ser precedida pela tag de inco < tag> e sucedida pela tag de m </ tag>. Cada tag deve ser colocada entre colchetes angulares "<"e ">"com seu identicador (element) e pode ter ou no atributos (attributes). Exemplo de um documento XML:
http://www.w3.org/XML/ SGML (Standard Generalized Markup Language) um padro internacional de processamento de texto com marcao. O documento ISO da SGML pode ser encontrado em: http://www.iso.org/iso/cataloguedetail.htm?csnumber=16387
4 3

< l i s t a i d="banca"> <item>Adagenor</item> <item>Edson</item> <item>Antonio </item> </ l i s t a > No exemplo acima, lista e item so elementos, id um atributo. XML Schema uma linguagem de denio de classes de documentos XML. Dene e descreve a estrutura e os contedos de classes de documentos XML, ou seja, a gramtica para a validao da estrutura do documento XML. Rosa (2002) complementa que um documento XML bem formado aquele no qual est sintaticamente correto na viso de XML. Entretanto, um documento XML vlido aquele que segue as especicaes do seu documento XML Schema correspondente. XML Namespace 5 , denido por Bray et al. (2009) como uma coleo de nomes, identicados por uma referncia URI, que utilizada em documentos XML, como tipos de elementos e nomes de atributos, possibilitando combinao de documentos XML com vocabulrio controlado. XML Namespace possibilita, tambm, o compartilhamento e reutilizao da denio de outros esquemas XML sem que haja conito de identicadores de elementos.

2.2.3

RDF

A camada RDF6 composta pelos padres RDF e RDF Schema, descritos a seguir. RDF(Resource Description Famework ), segundo W3C (2009), um modelo padro para o intercmbio de dados na web. RDF tem caractersticas que facilitam a fuso de dados, mesmo se os esquemas subjacentes diferem, e apoia especicamente a evoluo dos esquemas ao longo do tempo sem a necessidade de todos os consumidores de dados serem alterados. RDF estende a estrutura de interligao da Web para usar URIs para nomear a relao entre coisas, bem como as duas extremidades do link (o que normalmente referenciado como uma "tripla"). Usando este modelo simples, ela permite que dados estruturados e semi-estruturados possam ser misturados, expostos e compartilhados entre aplicaes diferentes.
5 6

Bray et al. (2009) http://www.w3.org/RDF/

Figura 2: Exemplo de grafo RDF. Fonte: http://www.w3.org/TR/rdf-primer/fig1dec16.png

O link estrutural, em uma tripla RDF, relacionando dois recursos, forma um grafo direcionado, rotulado, onde as arestas representam o link nomeado entre dois recursos, representados pelos ns do grafo. Esta viso de grafo o modelo mental mais fcil possvel para RDF e frequentemente usado para entendimento fcil e explicao visual, a qual exemplicamos com a Figura 2. RDF Schema 7 , similarmente XML Schema, uma linguagem que dene uma estrutura vlida para documentos RDF.

2.2.4

Camada de Ontologia

A camada de Ontologia contm as tecnologias de representao de conhecimento com poder de expressividade maior do que a RDF pode proporcionar. As linguagens de Ontologias permitem que se escrevam conceituaes formais e explcitas de modelos de domnio, empregando, como requisitos bsicos, uma sintaxe bem denida, uma semntica formal e alto nvel de expressividade, fornecendo apoio eciente ao processo de inferncia de signicado. A camada de Ontologia na arquitetura da Web Semntica est bem estvel e amadurecida, assim como as camadas abaixo dela, vide Figura 1. As camadas a cima da camada de Ontologia ainda no apresentam padres denidos ou recomendaes, apenas algumas poucas propostas. O enfoque maior nesta camada est na seo 2.3.
7

http://www.w3.org/TR/rdf-schema/

2.2.5

Lgica

A camada de lgica composta, basicamente, por regras de inferncia, com as quais os agentes podero processar e relacionar a informao.

2.2.6

Prova

Camada que objetiva determinar a consistncia da informao inferida das camadas anteriores.

2.2.7

Conana

Camada que objetiva garantir a autenticidade e conabilidade das fontes de informao pelos agentes.

2.3

Ontologia

Segundo o Novo Dicionrio Aurlio verso 5.0, o verbete Ontologia, tem o seguinte signicado: "[De ont(o)- + -logia.] Substantivo feminino. 1.Filos. Parte da losoa que trata do ser enquanto ser, i. e., do ser concebido como tendo uma natureza comum que inerente a todos e a cada um dos seres." O termo deriva do grego "onto", ser, e "logia ", discurso escrito ou falado. Segundo Lima e Carvalho (2005), este termo tem sido usado, ao longo da histria, pela Filosoa Grega (Aristteles 384-322 a.C.) e uma teoria sobre a existncia da natureza, sobre que tipos de coisas existem ou o que se dizer sobre o mundo. O termo foi emprestado ento para a cincia da computao passando a ter outro sentido. As denies mais relevantes para o contexto deste trabalho so:
Ontologia uma especicao formal e explcita de uma conceitualizao, o que existe aquilo que pode ser representado [...]Quando o conhecimento de um domnio apresentado num formalismo declarado, o conjunto de objetos que podem ser representados so chamados de universo do discurso. Esse conjunto de objetos, e o relacionamento descritivo entre eles, so reetidos num vocabulrio representacional com o qual um programa de conhecimento de base representa o conhecimento. Mas, no

contexto de Inteligncia Articial, ns podemos descrever a Ontologia de um programa pela denio de um conjunto de termos representacionais. Nesse tipo de Ontologia, denies associam os nomes de entidades no universo do discurso (por exemplo, classes, relaes, funes ou outros objetos) com textos legveis descrevendo o que os nomes signicam, e axiomas formais que limitam a interpretao e o uso bem formado desses termos. Formalmente, uma Ontologia uma armao da lgica terica. (GRUBER, 1993).

Berners-Lee, Hendler e Lassila (2001): " um documento que dene as relaes entre termos e conceitos." Lima e Carvalho (2005), tambm explica que:
Uma Ontologia conceitua um modelo abstrato de algum fenmeno do mundo em um conhecimento consensual, isto , compartilhado por todos. Alm disso, os conceitos, as propriedades, as funes, os axiomas devem ser especicados explicitamente e serem manipulveis por computador. (LIMA; CARVALHO, 2005).

Ainda citando Lima e Carvalho (2005): "a relevncia das Ontologias para a Web deve ser tratada sobre trs aspectos: identicao de contexto [...]; fornecimento de denies compartilhadas e reuso". Destaca-se, neste ponto, a denio de ontologia mais clara, na viso do autor deste trabalho, e relevante para o contexto deste trabalho, por ser uma denio bem prtica de ontologias e que, de certo modo, resume as acima citadas, a de Noy e McGuinness (2001), a qual cita-se com algumas parfrases, mas com a essncia conservada: "[...] Uma Ontologia uma descrio formal e explcita dos conceitos em um domnio de discurso (classes[...]), propriedades de cada conceito que descreve vrias caractersticas e atributos dos conceitos [...], e restries" dessas propriedades. "Uma Ontologia Dene um vocabulrio comum e um entendimento compartilhado" acerca de um domnio de conhecimento. Para que se possa utilizar Ontologias no contexto da Web Semntica necessrio que se tenha disponvel uma linguagem para escrever um documento que conter a Ontologia. Em vista disso, o W3C desenvolveu a OWL Web Ontology Language 8 como padro para representao de Ontologias.
8

http://www.w3.org/2004/OWL/

10

A OWL uma reviso da linguagem DAML+OIL. Ela possui mais facilidades para expressar signicados e semnticas do que XML, RDF e RDF Schema, embora seja baseada em RDF e RDF Schema e utilize a sintaxe XML. A OWL foi projetada para ser usada por aplicaes que necessitem processar o contedo de informaes, ao invs de somente apresentar a visualizao destas informaes. (LIMA; CARVALHO, 2005).

Trata-se, mais detalhadamente, sobre OWL no capitulo 3.

2.3.1

Componentes de uma Ontologia

Baseando-se em Horridge (2009) lista-se os componentes de uma Ontologia, a seguir: Indivduos (tambm chamados de individuals, instances ou instncias de classes): so os objetos no domnio de interesse ou domnio do discurso da Ontologia. Propriedades (conhecidas tambm como properties, regras, rules ou slots): so denidas como relaes binrias entre indivduos. Em lgica descritiva as propriedades so chamadas de papis (roles) e em UML de relaes (relationships). Classes: So conjuntos que contm os indivduos. So descritas formalmente, atravs de descries matemticas, de forma que sejam bem denidos os requisitos para a participao de um indivduo na classe. As classes podem formar cadeias em hierarquias superclasses-subclasses, as subclasse herdam todas as caractersticas de suas superclasses. Chama-se esta hierarquia de taxonomia. Subclasses tambm so conhecidas como especializaes de suas superclasses. O termo conceito (concept) as vezes usado no lugar de classe. Porm, as classes so, na verdade, representaes concretas de conceitos.

2.3.2

Tipos de Ontologias

Para o escopo deste trabalho suciente distinguir as Ontologias de acordo com seu nvel de generalidade, de acordo com Guarino (1998): Ontologias de alto nvel: descrevem conceitos de forma bem geral (como espao, tempo, material, objeto, evento, ao), os quais so independentes de um problema ou domnio particular. Ontologias de domnio e Ontologias de tarefas: descrevem, respectivamente, o vocabulrio relacionado a um domnio genrico (como medicina ou automveis) ou uma tarefa genrica (como diagnstico ou vendas). 11

Ontologias de aplicao: descrevem conceitos dependendo do domnio e de tarefas particulares. Estes conceitos, frequentemente, correspondem a papis desempenhados por entidades do domnio, quando na realizao e certas tarefas. Por exemplo, ajuda para o diagnstico de doenas mentais.

12

OWL Web Ontology Language

3.1

Denio e conceitos iniciais

OWL Web Ontogy Language o padro proposto pelo W3C como uma linguagem para a Web Semntica, projetada para representar Ontologias. Sua ltima verso, a OWL 2, foi lanada em 27/10/2009 e uma extenso da primeira verso, adicionando novas caractersticas e funcionalidades primeira verso. Neste trabalho, foca-se a primeira verso da especicao da linguagem OWL, por motivos de praticidade, j que a nova verso est muito recente e existem no mercado poucas ferramentas que suportam completamente a OWL 2. Este captulo foca os conceitos para se compreender os elementos e regras necessrias construo de uma Ontologia em OWL, no entrando nos detalhes dos construtos da linguagem. Na seo 4.4 se faz uma introduo ao ambiente Protg, que tem ferramentas necessrias para se construir um documento OWL. Hitzler et al. (2009) dene OWL como uma linguagem computacional baseada em lgica, de tal forma que o conhecimento expresso nela pode ser "raciocinado" por programas de computador, tanto para vericar a consistncia desse conhecimento, como para tornar explcito o conhecimento implcito. Ontologias OWL podem ser publicadas na web e referenciadas por outras Ontologias. OWL declarativa, no uma linguagem de programao. Ela descreve um estado de assuntos num caminho lgico. No uma linguagem de esquema para conformidade de sintaxe. Diferente de XML, OWL no prov meios para descrever como um documento pode ser estruturado sintaticamente. OWL no um framework para base de dados. De modo notrio, documentos OWL armazenam informao assim como fazem os bancos de dados. Entretanto, contedos de bancos de dados, so organizados de acordo com as suposies (ou raciocnio) de mundo fechado (closed-world assumption/reasoning). Isto signica que se algum fato no est presente na base de dados ele dado como falso. Enquanto que documentos OWL seguem as suposies (ou raciocnio) de mundo aberto (open-world assumption/reasoning). 13

OWL na verso 1 apresenta trs sub-linguagens, conforme Hitzler et al. (2009) lista: OWL-Lite: Sub-linguagem sintaticamente mais simples. Destina-se a situaes em que apenas so necessrias restries sobre uma hierarquia de classe simples, como tesauros. OWL-DL: Mais expressiva que a OWL-Lite e baseia-se em Lgica Descritiva1 , um fragmento de Lgica de Primeira Ordem2 , passvel portanto de "raciocnio" computvel. Possibilita computar automaticamente a hierarquia de classes e vericar inconsistncias na Ontologia; OWL-Full: Sub-linguagem OWL mais expressiva. Destina-se a situaes onde alta expressividade mais importante do que garantir a decidibilidade ou completeza da linguagem. No possvel efetuar inferncias em Ontologias OWL-Full. Considera-se algumas heursticas quanto escolha da sub-linguagem, ainda citando Hitzler et al. (2009): Entre OWL-Lite e OWL-DL, necessrio saber se os construtos da OWL-Lite so sucientes; Entre OWL-DL e OWL-Full, preciso saber se importante realizar inferncias na Ontologia, ou se importante usar funcionalidades altamente expressivas ou funcionalidades de modelagem, tais como as meta-classes (classes de classes). Os conceitos seguintes fazem parte do universo OWL: Os MI (Mecanismos de Inferncia ou reasoners) so tambm chamados de classicadores (classiers); A tarefa de calcular a hierarquia de classes inferida tambm conhecida como classicao da Ontologia (classifying the ontology); uma caracterstica do OWL-DL que o relacionamento superclasse-subclasse possa ser computado automaticamente por um MI;
A Lgica Descritiva modela os conceitos, regras e indivduos e suas relaes atravs de axiomas lgicos. 2 Lgica de Primeira Ordem(LPO) ou Lgica de Predicados a parte da Lgica Proposicional que analisa os objetos do universo e as relaes entre eles.
1

14

Classes disjuntas: Um indivduo qualquer no pertence duas classes disjuntas. Considera-se que as classes OWL se sobrepem. Por isso, no se pode assumir que um indivduo no um membro de uma classe especca, simplesmente porque no se declarou que ele um membro daquela classe. Para desconectar um grupo de classes preciso torn-las disjuntas. Isto garante que um indivduo que tenha sido declarado como sendo membro de uma das classes do grupo, no pode ser um membro de nenhuma outra classe naquele mesmo grupo; Em uma hierarquia de classes nomeadas, ser uma subclasse signica uma implicao necessria, ou seja, para uma instncia de uma subclasse ser dita da referida subclasse, necessrio que essa instncia tambm pertena superclasse de sua classe; OWL no usa o UNA (Unique Name Assumption). Por isso, deve-se declarar explicitamente que os indivduos so os mesmos (SameAs), ou diferentes (DierentFrom) uns dos outros; Classes enumeradas (Enumerated Classes) so classes denidas pela lista dos indivduos que so seus membros. Complemento (not) de uma classe inclui todos os indivduos que no so membros da classe. OWR - Open World Reasoning (Raciocnio de Mundo Aberto): As inferncias em OWL (Lgica Descritiva) se baseiam na OWA-Open World Assumption (Suposio de Mundo Aberto), tambm conhecida como OWR-Open World Reasoning (Raciocnio de Mundo Aberto). A Suposio de Mundo Aberto signica que no se pode assumir que alguma coisa no existe, at que seja estabelecido explicitamente que ela no existe. Em outras palavras, porque alguma coisa no foi denida como verdade, no signica que ela falsa. Presume-se que tal conhecimento apenas no foi adicionado base de conhecimento.

3.2

Propriedades em OWL

As propriedade em OWL representam relacionamentos entre dois indivduos. Em OWL existem trs tipos de propriedades a saber: Propriedades de objeto (object properties) : Conectam um indivduo a outro indivduo. 15

Propriedades de tipos de dados (datatype properties): Descrevem relacionamentos entre indivduos e valores de dados. Ou seja, relacionam um indivduo a um valor XML Schema Datatype3 ou um literal RDF4 , ou seja, valores de dados. Propriedades de anotao (Annotation Property): Adicionam metadados s classes, aos indivduos, s propriedades de objeto e as propriedades de tipos de dados.

3.2.1

Propriedades de anotaes (annotation properties)

As propriedades de anotaes so comentrios, usando metadados, sobre classes, propriedades, indivduos e a prpria Ontologia (no cabealho do documento OWL). A sub-linguagem OWL-Full no impe restries as essas propriedades. Entretanto, a OWL-DL tem as seguintes restries: O ller 5 para as propriedades de anotao deve ter um dado literal, uma URI de referncia ou um indivduo. Um dado literal um caractere de representao de um datatype value (valor de tipo de dados). P. ex. Vagner, "26", "3.11" As propriedades de anotao no podem ser usadas em axiomas que atuam sobre propriedades. Por exemplo, no podem ser usados na hierarquia de propriedades, de forma que no podem ter subpropriedades, ou ser subpropriedade de outra propriedade. Tambm no podem ter domnio e escopo especico. Exitem cinco propriedades de anotao pr-denidas em OWL. Elas podem ser usadas para fazer comentrios em classes (inclusive classes annimas, tais como restries), propriedades e indivduos: 1. owl:versionInfo: Em geral, o escopo dessa propriedade um string. 2. rdfs:label : O escopo um string. Essa propriedade usada para adicionar nomes signicativos (para pessoas) aos elementos da Ontologia, tais como classes, propriedades e indivduos. Essa propriedade pode ser usada, tambm, para fornecer nomes multilnges para elementos da Ontologia. 3. rdfs:comment: O escopo um string, usada para escrever comentrios.
3 4

Disponvel em http://www.w3.org/TR/xmlschema-2/ Disponvel em http://www.w3.org/TR/rdf-primer/ 5 Chama-se ller classe que contm indivduos os quais atendem uma restrio

16

4. rdfs:seeAlso: O escopo uma URI usada para identicar recursos. 5. rdfs:isDenedBy : O escopo uma URI usada para referenciar uma outra Ontologia que dene elementos da Ontologia (que tem este tipo de comentrio) tais como classes, propriedades e indivduos. Propriedades de anotao para comentar a Ontologia: 1. owl:priorVersion: Identica verses anteriores da Ontologia. 2. owl:backwardsCompatibleWith: identica verso anterior da Ontologia que compatvel com a verso atual. Isso quer dizer que todos os identicadores da verso anterior possuem o mesmo signicado na verso atual. Assim, Ontologias e aplicaes que fazem referncia a verso anterior podem alterar a referencia para a nova verso. 3. owl:incompatibleWith: Identica a verso anterior de uma Ontologia que no compatvel com a atual.

3.2.2

Caractersticas das propriedades OWL

Listam-se, a seguir, as caractersticas das propriedades OWL: Propriedade inversa: Uma propriedade de objeto tem uma propriedade inversa correspondente. Ou seja, se um propriedade liga um indivduo "a" a um indivduo "b", ento a propriedade inversa correspondente liga o indivduo "b"ao indivduo "a". P. ex. hasParent (temPais) inversa de hasChild (temFilho). Propriedade funcional (propriedades de valor nico, Single value properties, ou caractersticas, features: Se uma propriedade funcional, para um determinado indivduo A, pode existir at no mximo um indivduo B que est relacionado ao indivduo A atravs dessa propriedade. P. ex. hasBirthMother (TemMeBiolgica) Propriedade funcional inversa: Se uma propriedade uma funcional inversa, isto signica que a sua propriedade inversa funcional. Para o indivduo1, pode existir no mximo um indivduo relacionado ao indivduo1 atravs da propriedade. 17

Propriedade transitiva: Se uma propriedade P transitiva relaciona o indivduo "a"ao indivduo "b", e tambm um indivduo "b"ao indivduo "c", infere-se que o indivduo "a"est relacionado ao indivduo "c"atravs da propriedade P. P. ex. hasAncestor (temAncestral) Propriedade simtrica: Se uma propriedade P simtrica, e relaciona um indivduo "a"ao indivduo "b", ento o indivduo "b"tambm est relacionado ao indivduo "a"atravs da propriedade P. P. ex. hasSibling (temIrmo) Propriedade anti-simtrica: Se uma propriedade P anti-simtrica, e a propriedade relaciona um indivduo A a um indivduo B. Ento B no pode ser relacionado com um indivduo A atravs da propriedade P. P. ex. A isChildOf (FilhoDe) B mas B no de A. Propriedade reexiva: Uma propriedade P diz-se ser reexiva quando a propriedade deve relacionar cada um para si prprio. P. ex. knows(conhece): uma pessoa conhece a si mesmo e a outras pessoas. Propriedade irreexiva: Se uma propriedade P irreexiva, pode ser descrito como uma propriedade que relaciona um indivduo A a um indivduo B, onde cada um dos indivduos no so os mesmos. P. ex. isMotherOf : uma mulher no pode ser me dela mesma. Resume-se algumas observaes importantes, a seguir, acerca das propriedades em OWL: Se uma propriedade transitiva, ento a propriedade inversa a ela tambm transitiva. Se uma propriedade transitiva ela no pode ser funcional, uma vez que a propriedade transitiva, por sua prpria natureza, pode formar cadeias de indivduos. OWL-DL no permite que uma propriedade de tipos de dados seja transitiva, simtrica ou tenha uma propriedade inversa.

18

3.2.3

Domnio e escopo das propriedades

Uma propriedade possui domnio (domain) e escopo (range). As propriedades conectam indivduos de um domnio a indivduos de um escopo. P. ex. A hasProperty B, quer dizer A = domnio de hasProperty e B = escopo. Em OWL, domnio e escopo, no so restries sujeitas a vericao e so utilizados como axiomas em inferncias. possvel, mas no recomendvel, indicar que uma classe e no seus indivduos so escopo de uma propriedade. um erro pensar que o escopo de uma propriedade uma classe, quando um escopo corresponde na verdade aos indivduos membros da classe. Ao especicar o escopo de uma propriedade como uma classe, trata-se tal classe como um indivduo. Isto um tipo de meta-declarao, e pode levar a Ontologia para o OWL-Full. possvel especicar vrias classes como escopo de uma propriedade. Caso isso seja feito o escopo da propriedade interpretada como uma interseco das classes. Em geral, o domnio para uma propriedade o escopo de seu inverso, e o escopo para uma propriedade o domnio de sua inversa. P. ex. A hasProperty B B isPropertyOf A.

3.3
3.3.1

Descrio e denio de classes OWL


Restries de propriedades

As propriedades so usadas para criar restries. Restries so utilizadas para restringir os indivduos de uma classe. Todos os tipos de restries descrevem um conjunto sem nome que pode conter indivduos. Este conjunto corresponde a uma classe annima (no nomeada). Quaisquer indivduos membros da referida classe annima satisfazem a restrio que descreve a classe. Quando se descreve uma classe nomeada usando restries, o que se faz realmente na prtica descrever uma superclasse annima da classe nomeada que contm os indivduos que satisfazem a restrio.

3.3.2

Restries de quanticador

(quantier restrictions) So compostas por um quanticador, uma propriedade e uma classe nomeada que contm indivduos os quais atendem a restrio (denominada ller ).

19

Restrio de quanticador = Propriedade + Quanticador (some/only) + ller (Classe). P. ex. hasBase some PizzaBase Quanticadores Em OWL exitem dois tipos de quanticadores, listados a seguir: Quanticador existencial (): signica "(existe) pelo menos um"(at least one), ou algum (some), ou ainda, someValuesFrom (algunsValoresDe); Quanticador universal (): signica "apenas"(only) ou allValuesFrom (todosValoresDe).

3.3.3

Restries existenciais

As restries existenciais descrevem o conjunto de indivduos que tem pelo menos um tipo especco de relacionamento com indivduos membros de uma classe. P. ex. "a"prop some "b" cada "a"deve ter pelo menos um relacionamento prop com "b", porm podem existir outras relaes prop no especicadas explicitamente, com outros indivduos que no sejam "b". Restries existenciais so o tipo mais comum de restrio. So conhecidas como Some Restrictions, ou some values from restrictions.

3.3.4

Restries universais (universals restictions)

Descrevem o conjunto de indivduos os quais, para uma dada propriedade, tem relacionamento apenas com outros indivduos, membros de uma classe especca. Para uma dada propriedade, o conjunto de indivduos descritos pela restrio universal vai tambm conter os indivduos que no tem qualquer relacionamento com essa propriedade, para qualquer outro indivduo. No obriga que os nicos relacionamentos atravs da propriedade que possa existir sejam obrigatoriamente com indivduos membros de uma classe especca (ller ). Para uma determinada propriedade, as restries universais no especicam a existncia de relacionamento. Apenas indicam que, se existe um relacionamento para a propriedade, ele ocorre para indivduos membros de uma classe. P. ex. "a"prop only "b"descreve 20

a classe annima de indivduos que tem apenas relacionamentos prop com indivduos membros da classe "b", ou, indivduos que denitivamente no participam em qualquer outro relacionamento prop.

3.3.5

Restries de cardinalidade (cardinality restrictions)

Descrevem a classe dos indivduos que tem pelo menos um, ou no mximo ou exatamente um nmero especico de relacionamentos (ou valores de tipos de dados) com outros indivduos. So usadas para explicitar o nmero de relacionamentos em que um indivduo pode participar para uma propriedade. Para uma dada propriedade P: Restrio de cardinalidade mnima (minimum cardinality restriction) especica o nmero mnimo de relacionamentos P dois quais um indivduo deve participar ( ). Restrio cardinalidade mxima (maximum cardinality restriction) especica o nmero mximo de relacionamentos P dos quais um indivduo pode participar ( ). Restrio de cardinalidade exata (exact cardinality restriction) especica o nmero exato de relacionamentos P dos quais um indivduo participa (=). Os relacionamentos (por exemplo, entre dois indivduos) so considerados como relacionamentos separados quando se pode garantir que tambm so distintos os indivduos que funcionam como llers dos relacionamentos.

3.3.6

Restries temValor (hasValue)

Restries temValor descrevem o conjunto de indivduos que possui pelo menos um relacionamento atravs da propriedade com indivduo especco (p. ex. a hasCountryOfOrigin value Italy). Ou seja, descreve uma classe annima de indivduos que esto relacionados a outros indivduos especcos por uma propriedade. P. ex. "a" prop value "abc". essa restrio descreve a classe annima (a) de indivduos que tem pelo menos um relacionamento atravs da propriedade prop com o indivduo abc, porm podem existir outros relacionamentos com a propriedade prop.

21

3.4

Condies declaradas (asserted conditions)

As condies declaradas so utilizadas para denir as classes em OWL. Os dois tipos dessas condies so tratados a seguir.

3.4.1

Condies necessrias (necessary criteria)

Tm a seguinte denio: se um indivduo membro de uma classe nomeada ento obrigatrio que satisfaa as condies necessrias para tal. Entretanto, se algum indivduo satisfaz as condies necessrias, no se pode dizer que seja membro da referida classe nomeada. Ou seja, as condies necessrias no so sucientes para que se possa dizer isso. classe que tem apenas condies necessrias, d-se o nome de classe primitiva (primitive class) ou classe parcial (partial class). Em OWL, na denio de uma classe, superclasses so consideradas aquelas que tm condies necessrias. Ou seja, se a classe A descrita por condies necessrias, ento pode-se dizer que se um indivduo membro de A, ele deve satisfazer as condies. Entretanto, no se pode dizer que qualquer indivduo que satisfaa tais condies um membro da classe A.

3.4.2

Condies necessrias e sucientes (necessary & sucient criteria)

Tm a seguinte denio: se um indivduo membro de classe nomeada ento obrigatrio que satisfaa as condies. Se algum indivduo satisfaz as condies ento obrigatrio que seja membro de classe nomeada. classe que tem pelo menos um conjunto de condies necessrias e sucientes, chama-se classe denida (dened class) ou classe completa (completed class). Em OWL, na denio de uma classe A, classes equivalentes (equivalent classes) a ela, so aquelas que tm as restries necessrias e sucientes que satisfazem a denio da classe A. Ou seja, se a classe A denida usando condies necessrias e sucientes, pode-se dizer que, se um indivduo membro da classe A ele deve satisfazer as condies, e pode-se dizer que qualquer indivduo que satisfaz essas condies deve ser membro de A. As condies no so apenas necessrias para a associao com A, mas so, tambm, sucientes de forma a determinar que, se alguma coisa satisfaz essas condies um 22

membro de A. As classes que tm pelo menos um conjunto de condies necessrias e sucientes so conhecidas como classes denidas. Tais classes tem uma denio, e qualquer indivduo que satisfaa tal denio pertence a classe. Classes que no tem nenhum conjunto de condies necessrias e sucientes (apenas condies necessrias) so conhecidas como classes primitivas. Vericar a relao classe/superclasse (subsumption relationship) de classes uma tarefa bsica de um MI de lgica descritiva, e possvel us-lo para computar automaticamente a hierarquia das classes. Em OWL possvel ter conjuntos mltiplos de condies necessrias e sucientes.

3.5
OWL:

Axiomas comuns

Lista-se, a seguir, trs axiomas comuns (mas no obrigatrios) em uma Ontologia

1. Axiomas de fechamento (closure axiom): Consiste em uma restrio universal que atua na propriedade informando que ela pode apenas ser preenchida por llers especcos. A restrio tem um ller que a unio dos llers que ocorrem nas restries existenciais da propriedade. 2. Parties de valor (value partitions): So usadas para renar as descries de classes, so padres de projetos (solues desenvolvidas por especialistas e reconhecidos como solues para problemas comuns de modelagem). 3. Axiomas de Cobertura (covering axioms): Consiste de duas partes: a classe que est sendo coberta, e as classes que formam a cobertura. Por exemplo, tem-se trs classes A, B e C, e as classes B e C so subclasses de A. Tem-se um Axioma de Cobertura que especica que a classe A coberta pela classe B e tambm pela classe C. Isto signica que um membro da classe A deve ser membro da classe B e/ou C. Se as classes B e C so disjuntas, ento um membro de A deve ser um membro de B ou de C. Em geral, embora B e C sejam subclasses de A, um indivduo pode ser um membro de A sem ser membro de uma das classes B ou C. Um axioma de cobertura manifesta-se como uma classe que a unio das classes que esto sendo cobertas, as quais formam a superclasse da classe que est sendo coberta. No caso de A, B e C, a classe A pode ter uma superclasse de B ou C. 23

3.6

Namespaces

Cada Ontologia tem seu prprio namespace, que conhecido com o namespace padro e pode usar outros namespaces. Um namespace uma sequncia de caracteres que precede os identicadores de classes, de propriedades e de indivduos em uma Ontologia. possvel a uma Ontologia referenciar classes, propriedades e indivduos em outra Ontologia, sem ambigidades e sem causar problemas com nomes, atravs da manuteno de namespaces distintos para todas as Ontologias. A garantia de que os namespaces so nico reside em sua representao via URIs(Unique Resource Identiers), terminados com / ou com #. O uso de URIs se baseia na garantia de unicidade.

24

Modelagem da informao

4.1

Nveis de organizao da informao

Lista-se, a seguir, os nveis de organizao da informao, no contexto semntico, relevantes nossa temtica: 1. Vocabulrio controlado: O conjunto das palavras especializadas em qualquer campo de conhecimento ou atividade; nomenclatura, terminologia1 . 2. Glossrio: Uma lista de termos de um determinado domnio de conhecimento com a respectiva denio destes termos2 (dentro do contexto do domnio de conhecimento no qual esto inseridas) . 3. Taxonomia: Um hierarquia de termos em um vocabulrio controlado, usada para classicar termos. 4. Tesauro: Uma compilao de termos, com os respectivos sinnimos e/ou antnimos e termos relacionados dentro de um domnio de conhecimento 3 . 5. Redes semnticas: Grafos direcionados e rotulados, com nodos representando objetos fsicos ou conceituais e arcos representando relaes entre os objetos 4 . 6. Ontologia: (ver sesso 2.3). 7. Base de conhecimento: segundo Noy e McGuinness (2001): "Uma ontologia, juntamente com um conjunto de instncias de indivduos de classes constitui uma base de conhecimentos. Na realidade, existe uma linha tnue, onde termina a ontologia e a base de conhecimentos se inicia."
1 2

Novo Dicionrio Aurlio verso 5.0 Denio retirada de http://pt.wikipedia.org/wiki/Glossario 3 Denio baseada em: http://pt.wikipedia.org/wiki/Tesauro 4 Denio baseada em Real (2010) e http://pt.wikipedia.org/wiki/RedeSemantica

25

4.2

Paralelo com paradigma de orientao a objetos

Lista-se, a seguir, um paralelo entre uma Ontologia e o paradigma de orientao a objetos, sob a tica de uma estrutura de classes: Uma ontologia: 1. reete a estrutura do mundo; 2. frequentemente sobre a estrutura de conceitos; 3. representao fsica no problema. Uma estrutura de classes orientadas a objeto: 1. reete a estrutura de dados e de cdigo; 2. geralmente descreve comportamentos (mtodos das classes); 3. descreve a representao fsica dos dados (char, long, int, . . . ).

4.3

Engenharia ontolgica e o mtodo 101

Engenharia ontolgica (ontology engineering):


a denio dos termos em um domnio de conhecimento e das relaes entre eles, denindo os conceitos (classes), hierarquia de classes, atributos e propriedades das classes (e restries para seus valores) e indivduos (assim como o preenchimento de suas propriedades).(NOY; MCGUINNESS, 2001).

O mtodo 101, proposto pelas pesquisadoras Natalya Noy e Deborah McGuinness5 , dene um processo cclico de desenvolvimento de Ontologias. Essa metodologia tem seus sete processos descritos a seguir. 1. Determinar domnio escopo: Nesta etapa deve-se denir que domnio a Ontologia ir cobrir, qual ser o uso da Ontologia e que tipo de questes as informaes contidas na ontologia iro responder (chamadas de questes de competncia). importante enfatizar que durante o ciclo de vida do desenvolvimento da ontologia essas denies podem mudar.
5

vide Noy e McGuinness (2001)

26

2. Considerar reuso: Deve-se considerar o reuso de outras Ontologias que tratam, de alguma forma, do domnio de conhecimento a ser coberto com os objetivos de se reduzir o esforo no desenvolvimento, interagir com ferramentas que usam outras Ontologias e utilizar ontologias que tenham sido validadas pelo uso em outras aplicaes. 3. Enumerar termos: Denir os termos que sero cobertos pela Ontologia, as propriedades desses termos e o que se deseja saber sobre estes termos. 4. Denir classes e hierarquia de classes: Denir que termos so considerados classes (conceitos) no domnio de conhecimento coberto pela Ontologia, tendo em mente que as classes so conjuntos ou colees de elementos com propriedades similares, os quais chama-se instncias das classes ou indivduos. As classes geralmente constituem uma hierarquia taxonmica (superclassesubclasse), denindo um relacionamento "Um"(is-a). A instncia de uma subclasse uma instncia de sua superclasse. Uma classe uma conjunto de elementos e uma subclasse uma subconjunto desses elementos. Os modos de desenvolvimento de hierarquia taxonmica podem ser: top-down: denir os conceitos mais gerais e especializ-los. botton-up: denir os conceitos mais especcos e organiz-los em classes mais gerais. combinao: denir os conceitos mais notveis primeiro, em seguida, generalizar ou especializar. Deve-se denir a documentao das classes: descrevendo as classes em linguagem natural; listando suposies de domnio relevantes para a denio da classe; e listando sinnimos. 5. Denir propriedades: Denir os atributos das instncias das classes e relaes entre as instncias. Denir os seguintes tipos de propriedades intrnsecas: aquelas que fazem parte da essncia do objeto, so inerentes ou peculiares ao objeto. P. ex. cor, sabor, . . . 27

extrnsecas: aquelas que no fazem parte da essncia do objeto. P. ex. nome, ttulo, preo, . . . partes: aquelas que denem a composio do objeto. P. ex. ingredientes, peas, . . . relaes com outros objetos: aquelas que denem como uma objeto se relaciona com outro. P. ex. autor de livro, publicador de livro (editora), produtor de peas, dentre outras. Denir as propriedades simples e complexas: Propriedades simples: so os atributos ou (propriedades de tipos de dados em OWL), elas contm valores primitivos (strings, nmeros, . . . ) Propriedades complexas: so as temValor (hasValue) em OWL, ela contm (ou apontam) pra outros objetos. Deve-se ter sempre em mente que as classes herdam todas as propriedades de suas superclasses. Se uma classe tem mltiplas superclasses ela herda todas as propriedades de suas superclasses. 6. Denir restries: Denir as descries dos limites dos conjuntos de possveis valores para uma propriedade. As restries so tambm conhecidas como facetas. P. ex. o nmero de valores que uma propriedade se relaciona, o tipo de valor que uma propriedade tem ou a faixa de valores de uma propriedade que se relaciona com nmeros. 7. Criar instncias: Denir as instncias das classes, preencher as propriedades e as restries de acordo com a instncia. Finaliza-se esta seo com algumas heursticas enfatizadas pelas autoras do 101, no que concerne ao desenvolvimento de ontologias: No h uma nica maneira correta de modelar um domnio, h sempre alternativas viveis. A melhor soluo quase sempre depende da aplicao que se tem em mente; O desenvolvimento de uma Ontologia necessariamente um processo iterativo; Os conceitos na Ontologia devem ser prximos de objetos (fsicos ou lgicos) e de relacionamentos do domnio de interesse. Os objetos so mais suscetveis de serem substantivos e os relacionamentos de serem verbos em sentenas que descrevem o domnio de conhecimento. 28

4.4

Ambiente Protg

De acordo com Stanford University (2010) o software gratuito6 e livre7 Protg 8 , uma plataforma que fornece um conjunto de ferramentas para a construo de aplicaes de modelos de domnio e de bases de conhecimentos baseadas em Ontologias. Em sua essncia, Protg implementa um rico conjunto de estruturas de modelagem de conhecimento e aes de apoio criao, visualizao e manipulao de ontologias em vrios formatos de representao. Pode ser customizado para fornecer suporte amigvel de domnio para a criao de modelos de conhecimento e insero de dados. Alm disso, pode ser extendido por meio de uma arquitetura baseada em API9 Java de plugins para a construo de ferramentas baseadas em conhecimento e aplicaes. Palavra interessante, o "" pronuncia com som fechado, parecido com a proncia de "". De acordo com o Cambridge dictionaries online 10 , Protg signica: "Protegido ou favorito. Uma pessoa jovem que protegida por algum mais velho que tem experincia ou inuncia". O software Protg habilita a construo de Ontologias OWL e pode ser baixado em http://protege.stanford.edu/download/download.html. A Figura 3, exibe a tela inicial do Protg na construo de uma ontologia OWL.

Figura 3: Tela do ambiente Proteg. Fonte: Do autor. http://pt.wikipedia.org/wiki/Software_gratuito http://www.gnu.org/philosophy/free-sw.pt-br.html 8 http://protege.stanford.edu/ 9 Application Programming Interface 10 http://dictionary.cambridge.org/dictionary/british/protege
7 6

29

4.5

Modelagem da ontologia estudo de caso

Faz-se, agora, a modelagem da base de conhecimento do estudo de caso deste trabalho, que consiste em recuperao de informaes bibliogrcas. Para tal, utiliza-se o mtodo 101 e o ambiente Protg.

4.5.1

Determinar a abrangncia (domnio e escopo)

Inicia-se com questes de competncia simples e suas respostas: Qual o domnio que a Ontologia ir cobrir? A Ontologia ir cobrir o domnio de livros. Qual ser o uso da Ontologia? Recuperao de informaes acerca de livros no contexto da web. Quem ir usar a Ontologia? A Ontologia ser usada por qualquer cliente web services que precise fazer uma pesquisa ou inferncia no domnio de conhecimento coberto pela Ontologia, para recuperar informaes para seus usurios. As informaes na ontologia respondero que tipo de questes? Quais livros o autor X escreveu? Em que livrarias se pode comprar o livro Y? Quanto custa? Quanto custa o livro Z na livraria A da cidade B? Em que biblioteca posso ler o livro Z? Qual livraria na cidade A vende o livro X mais barato?

4.5.2

Considerar reuso

Executou-se diversas buscas nos seguintes mecanismos de buscas e repositrio de ontologias: Swoogle (http://swoogle.umbc.edu/) SWSE (http://swse.deri.org/) 30

Sindice (http://www.sindice.com/) Wat-son (http://watson.kmi.open.ac.uk/WatsonWUI/) Falcons (http://iws.seu.edu.cn/services/falcons/objectsearch/index.jsp) TONES Ontology Repository (urlhttp://owl.cs.manchester.ac.uk/repository/) Porm nenhum deles retornou algum resultado satisfatrio sobre livros. No foi possvel baixar, tambm, a ontologia de livros do amazon.com ou de outras livrarias. Decidiu-se ento, neste ponto, construir uma Ontologia sobre livros do princpio da construo de uma Ontologia, sem reaproveitar elementos j previamente construdos em outras Ontologias. As Ontologias que poderia-se utilizar, no sentido de contribuir para a construo da Ontologia dos livros so listadas a seguir. Dublin Core 11 : Uma Ontologia construda em linguagem RFD que prov metadados para recursos na web, tais como sites, imagens, textos, e demais recursos que podem ser disponibilizados na web. Como exemplo de metadados providos pela Dublin Core tem-se ttulo, criador assunto, descrio, dentre outros. The Friend of a Friend (FOAF) Project 12 : Uma ontologia RDF que objetiva compartilhar informaes entre amigos na web, como nome, e-mail, foto, e diversas outras informaes. GeoRSS13 : Um vocabulrio de termos que podem ser usados em documentos RDF para representar uma informao geoespacial. OWL Time14 Um conjunto de ontologias que podem ser utilizadas para representar informao temporal em linguagem OWL. Ao analisar estas ontologias nota-se que elas apresentam uma certa complexidade, que vai alm do escopo deste trabalho e podem ser utilizadas no enriquecimento de nossa Ontologia de livros, em trabalhos futuros.

4.5.3

Enumerar termos

Nesta seo lista-se apenas alguns dos termos relevantes ao domnio de conhecimento que a Ontologia de livros deve cobrir, vide Quadro 1.
11 12

http://dublincore.org http://www.foaf-project.org/ 13 http://georss.org 14 http://www.w3.org/TR/owl-time/

31

livro, livraria, editora, biblioteca, localizao, preo, autor, anexo, categoria, disponibilidade, ttulo, coleo

Quadro 1: Enumerao de termos. Fonte: Do autor.

4.5.4

Denir classes e hierarquia de classes

Na denio da hierarquia de classes foi necessrio acrescentar mais duas classes: Instituio e Disponibilizador. Vide Figura 4. Por motivos de padronizao todos os termos que representam classes foram grafados com inicial maiscula, j as propriedades foram escritas, posteriormente, com inicial minuscula. As classes da Ontologia, em sua maioria no foram documentadas com comentrios por apresentar nomes auto-explicativos. Para exemplicar foi feito apenas uma breve documentao de comentrio na classe Disponibilidade.

(a) Hierarquia

(b) Documentao Figura 4: Hierarquia e documentao de classes. Fonte: Do autor.

4.5.5

Denir propriedades

As Figura 5 exibe as propriedades de atributos para cada uma das classes. Note que para obter boa organizao e facilidade de leitura agrupou-se as propriedades de tipos de dados por Classes em hierarquia. A Figura 6 mostra as propriedades de objeto da Ontologia. O Quadro 2 mostra as propriedades de objeto que foram comentadas com seus respectivos comentrios. O Quadro 3 lista as propriedades de objeto que herdam da propriedade livroTem. O Quadro 4 mostra as propriedades de objeto que herdam de temLivro. 32

(a)

(b)

(c)

(d) Figura 5: Propriedades de tipos de dados das classes. Fonte: Do autor.

(a)

(b)

Figura 6: Propriedades de objeto da Ontologia. Fonte: Do autor.

4.5.6

Denir restries

O Quadro 5 cita as propriedades de tipos de dados que so funcionais, com suas respectivas superpropriedades. O Quado 6 lista algumas das propriedades de objeto com suas respectivas caractersticas. Nesta Ontologia, as classes, em mesmo nvel de hierarquia foram tornadas disjuntas. Lista-se, a seguir, os axiomas de equivalncia das classes denidas (condies necessrias e sucientes): Anexo 33

Propriedade disponibilidadeEm

Comentrio

Informa que Disponibilizador(res) tem a Disponibilidade (do Livro) eDisponibilizadorDe Informa as Disponibilidade(s) do Disponibilizador Superpropriedade dos relacionamentos que outras livroTem classes formam com Livro Informa que Disponibilizador(res) disponibiliza(m) o disponibilizadoPor Livro temDisponibilidade Informa quais as disponibilidade do Livro Propriedade que determina que uma livro relaciorelacionado nado com outro por motivos de semelhana de tema, dentre outros tipos de semelhanas Superpropriedade dos relacionamentos que Livro temLivro forma com outras classes Informa que Livro(s) so disponibilizados pelo Disdisponibiliza ponibilizador eDisponibilidadeDe Informa de que Livro a Disponibilidade Quadro 2: Propriedades de objeto comentadas. Fonte: Do autor.

daColecao, disponibilizadoPor, eDaCategoria, escritoPor, publicadoPor, temAnexo, temDisponibilidade, temPreco

Quadro 3: Subpropriedades de livroTem. Fonte: Do autor.

eAnexoDe some Livro and eAnexoDe only Livro and tipoAnexo some string and tituloAnexo some string and descricaoAnexo only string and tipoAnexo only string and tituloAnexo only string Autor escreveu only Livro and nomeAutor some string and dataNascimento only string and descricaoAutor only string and emailAutor only string and foto only string and nomeAutor only string and origem only string and siteAutor only string Categoria categoriaTem only Livro and eSubcategoriaDe only Categoria and eSuperCategoriaDe only Categoria and descricaoCategoria some string and nomeCategoria some string and descricaoCategoria only string and nomeCategoria only string Colecao

34

categoriaTem, colecaoTem, disponibiliza, eAnexoDe, eDisponibilidadeDe, ePrecoDe, escreveu, publica

Quadro 4: Subpropriedades de temLivro. Fonte: Do autor.

Superpropriedade propriedadeDeAnexo propriedadeDeAutor propriedadeDeCategoria propriedadeDeColecao propriedadeDeDisponibilidade propriedadeDeInstituicao propriedadeDeLivro propriedadeDeLocalizacao propriedadeDePreco

Propriedade tipoAnexo, tituloAnexo dataNascimento, nomeAutor, origem nomeCategoria anoPublicacaoColecao, nomeColecao, quantidadeVolumes disponibilidade, quantidade nomeInstituicao acabamento, anoPublicacao, formato, isbn, lingua, numeroEdicao, origemlivro, numeroPaginas, origemLivro, referenciaBibliograca, titulo, subtitulo bairro, cep, cidade, logradouro, numero, uf custo, dataPreco, tipoPagamento

Quadro 5: Propriedades de tipos de dados funcionais. Fonte: Do autor.

colecaoTem some Livro and colecaoTem only Livro and anoPublicacaoColecao some string and descricaoColecao some string and nomeColecao some string and quantidadeVolumes some string and anoPublicacaoColecao only string and descricaoColecao only string and nomeColecao only string and quantidadeVolumes only string Disponibilidade disponibilidadeEm some Disponibilizador and eDisponibilidadeDe some Livro and disponibilidadeEm only Disponibilizador and eDisponibilidadeDe only Livro and disponibilidade some string and quantidade some string and disponibilidade only string and quantidade only string Disponibilizador Instituicao and disponibiliza some Livro Livraria Disponibilizador and ofertaDe some Preco Preco 35

Caracterstica funcionais funcionais e funcionais inversas transitivas

Propriedade eAnexoDe, eDisponibilidadeDe, ePrecoDe localTemInstituicao, temLocalizacao relacionado, eSubCategoriaDe, eSuperCategoriaDe

Quadro 6: Caractersticas das propriedades de objeto. Fonte: Do autor.

ePrecoDe some Livro and ofertadoPor some Livraria and ePrecoDe only Livro and ofertadoPor only Livraria and custo some string and dataPreco some string and descricaoPagamento some string and tipoPagamento some string and custo only string and dataPreco only string and descricaoPagamento only string and tipoPagamento only string Localizacao localTemInstituicao only Instituicao and bairro some string and cep some string and cidade some string and logradouro some string and numero some string and uf some string and bairro only string and cep only string and cidade only string and logradouro only string and numero only string and uf only string Instituicao temLocalizacao some Localizacao and temLocalizacao only Localizacao and nomeInstituicao some string and descricaoInstituicao only string and emailInstituicao only string and nomeInstituicao only string and siteInstituicao only string and telefoneInstituicao only string Livro disponibilizadoPor some Disponibilizador and eDaCategoria some Categoria and escritoPor some Autor and daColecao only Colecao and disponibilizadoPor only Disponibilizador and eDaCategoria only Categoria and escritoPor only Autor and publicadoPor only Editora and temAnexo only Anexo and temDisponibilidade only Disponibilidade and temPreco only Preco and acabamento some string and anoPublicacao some string and formato some string and isbn some string and lingua some string and numeroEdicao some string and numeroPaginas some string and origemLivro some string and referenciaBibliograca some string and subtitulo some string and titulo some string and acabamento only string and anoPublicacao only string and capa only string and descricao 36

only string and formato only string and isbn only string and lingua only string and numeroEdicao only string and numeroPaginas only string and origemLivro only string and referenciaBibliograca only string and siteLivro only string and subtitulo only string and titulo only string A classe Colecao tem o axioma de condies necessrias: colecaoTem min 2 Livro

4.5.7

Criar instncias

Nesta etapa, foi feito apenas uma ou duas instncias de prova de cada classe para provar a consistncia da ontologia.

Figura 7: Criao de algumas instncias de classes (indivduos). Fonte: Do autor.

37

Implementao da base de conhecimentos

5.1

Java Enterprise Edition

De acordo com Corp. Oracle (2009), Java1 Enterprise Edition (JEE)2 uma plataforma, de ambiente centrado em Java, para o desenvolvimento, construo e implantao de aplicaes enterprise online baseadas na web. A plataforma JEE composta por um conjunto de servios, APIs, e protocolos que fornecem funcionalidades para o desenvolvimento de vrias camadas, para aplicaes baseadas em web. JEE simplica o desenvolvimento de aplicaes e diminui as necessidades de programao e treinamento do programador para criar componentes padronizados, reutilizveis e modulares, permitindo cada camada tratar muitos aspectos de programao automaticamente. Descreve-se brevemente, nas sees seguintes deste captulo, as tecnologias JEE utilizadas neste trabalho.

5.1.1

Enterprise JavaBeans

Enterprise JavaBeans 3 (EJB) um modelo de componente padro do lado do servidor para aplicativos de negcio distribudos, conforme explicado por Burke e Monson-Haefel (2007). A especicao EJB oferece um modelo padro para construir componentes do lado do servidor que representam processos do negcio, que podem ser combinados para se criar aplicativos de negcio. Componentes EJB rodam em um continer EJB, um ambiente de execuo dentro de um servidor de aplicaes enterprise. O continer EJB prov diversos servios de nvel de sistema, transparentes para o desenvolvedor da aplicaes, como transaes e segurana
1 2

http://java.sun.com/ http://java.sun.com/javaee/ 3 http://java.sun.com/products/ejb/

38

dos entreprise beans. Sun Microsystems Inc. (2009) lista os requisitos para se usar enterprise beans: A aplicao precisa ser escalvel4 . Para acomodar um nmero crescente de usurios, pode ser necessrio distribuir os componentes de uma aplicao em vrias mquinas, que assim como a localizao dos componentes enterprise beans, car transparente para os clientes da aplicao. Transaes devem assegurar a integridade dos dados. Enterprise beans suportam transaes, os mecanismos que gerenciam o acesso simultneo de objetos compartilhados. A aplicao ter uma variedade de clientes. Com apenas algumas linhas de cdigo, clientes remotos podem facilmente localizar enterprise beans. Esses clientes podem ser poucos, diversos ou numerosos. Lista-se, a seguir, os tipos de entreprise beans, de acordo com Sun Microsystems Inc. (2009): Session: Um bean de sesso (session bean) encapsula a lgica de negcio que pode ser chamada programaticamente por um cliente local, remoto ou via web services. Para acessar um aplicativo que est implantado no servidor, o cliente invoca os mtodos do bean de sesso, que realiza um trabalho para o seu cliente, protegendo o cliente de complexidade e executando tarefas de negcios dentro do servidor. Um bean de sesso no persistente. Existem trs tipo de session beans. Statefull : O estado de um objeto composto dos valores de suas variveis de instncia. Em um statefull session bean, as variveis de instncia representam o estado de uma nica sesso cliente-bean. Esse estado chamado de "estado conversasional". Cada instncia desse bean no compartilhada dentre as sesses dos clientes. Stateless: Bean que no mantm estado conversasional com o cliente. Por causa dessa caracterstica, cadas instncia desse bean pode ser compartilhada por vrios clientes. Singleton: o bean que instanciado apenas uma vez durante a execuo da aplicao. Esse tipo de bean foi projetado para circunstncias em que uma
De acordo com Coulouris, Dollimore e Kindberg (2007): "um sistema descrito como escalvel se permanece eciente quando h um aumento signicativo no nmero de recursos e no nmero de usurios".
4

39

nica instncia do bean deve ser compartilhada e acessada concorrentemente pelos clientes. OSingleton session bean mantm o estado conversasional para a aplicao e assim como os stateless session beans podem implementar web services endpoints. Message-Driven: Processa mensagens assincronamente. Atua como um ouvinte para um determinado tipo de mensagens, como o Java Message Service API.

5.1.2

Web Services

De acordo com Sun Microsystems Inc. (2009), os web services so aplicaes cliente e servidor que se comunicam pelo protocolo HyperText Transfer Protocol (HTTP) da World Wide Web (WWW). W3C (2010c) sugere uma denio mais completa:
Servios da Web fornecem uma forma padro de interoperao entre diferentes aplicaes de software, rodando em uma variedade de plataformas e / ou frameworks. Os servios Web so caracterizados por sua grande interoperabilidade e extensibilidade, bem como suas descries mquina processvel graas ao uso de XML. Eles podem ser combinados em uma maneira de baixo acoplamento, a m de alcanar operaes complexas. Programas de prestao de servios simples podem interagir uns com os outros, a m de fornecer servios sosticados de valor acrescentado.(W3C, 2010c).

Coulouris, Dollimore e Kindberg (2007) complementa, dizendo que:


Um servio web (web service) fornece uma interface de servio que permite aos clientes interagirem com servidores de uma maneira mais geral do que acontece com os navegadores web. Os clientes acessam as operaes na interface de um servio web por meio de requisies e respostas HTTP [...] permitindo que eles sejam mais facilmente usados em aplicaes de internet.(COULOURIS; DOLLIMORE; KINDBERG, 2007).

Protocolo SOAP O protocolo SOAP5 (Simple Object Access Protocol) projetado para permitir tanto interao cliente-servidor como assncrona pela internet. Ele dene um esquema para uso de XML para representar o contedo de mensagens de requisio e resposta, assim
5

http://www.w3.org/TR/soap/

40

como um esquema para a comunicao de documentos, segundo Coulouris, Dollimore e Kindberg (2007). O protocolo SOAP baseado em HTTP, SMTP, TCP ou UDP e uma recomendao do W3C para servios web. JAX-WS A API JEE para desenvolvimento de servios web e clientes em SOAP chamada JAXWS6 . Esta API deve estar presente nos servidores de aplicao que seguem a especicao JEE verso 5 ou 6, ou pode ser baixada separadamente como biblioteca e injetada em um servidor mais simples, como um continer de servlets.

5.1.3

Servidor GlassFish e IDE Netbeans

Glasssh7 um servidor de aplicaes open source, projetado para a plataforma JEE. A verso 3 deste servidor j certicada para a especicao JEE 6, e utilizada como implementao de referncia para a especicao. O projeto GlassFish tem uma ampla comunidade de usurios, desenvolvedores e parceiros. GlassFish apresenta duas interfaces de operao. A mais notvel a interface de administrao, chamada web console. A outra interface via comandos atravs do executvel "asadmin". Outros subprojetos que se destacam no GlassFish so o update center, um gerenciador de atualizaes automatizado e amigvel; o projeto Grizzly, como servidor web bsico responsvel pela comunicao HTTp e HTTPS; suporte a Ruby on Rails8 ; e integrao facilitada com diversos ambientes de programao. O ambiente Netbeans9 uma IDE (integrated development environment - ambiente integrado de desenvolvimento) open source e gratuita(freeware) com suporte a diversas linguagens de programao (C/C++, PHP, JavaScript, Groovy, Ruby e Java). Netbeans tem suporte nativo especicao JEE 6 e integrao facilitada com o servidor GlassFish.
6 7

https://jax-ws.dev.java.net/ https://glassfish.dev.java.net/ 8 http://www.rubyonrails.pro.br/ 9 http://netbeans.org/

41

5.2

API Jena

Jena10 um framework Java desenvolvido para a implementao de sistemas para a web semntica. Prov ambiente programtico para RDF, RDFS e OWL. Jena possui uma engine de inferncia baseada em regras, uma engine de query SPARQL, uma API RDF, l e escreve RDF em RDF/XML, N3 e N-triplas, uma API OWL; e permite persistncia em banco de dados ou memria. Para iniciar o entendimento da programao com a API Jena, se faz necessrio entender como suas classes se relacionam com os conceitos da Web Semntica, vide Quadro 7.
Web Semntica URI Declarao (statement ) Ontologia e instncia de dado SPARQL e dados da Web Semntica Raciocinador SWRL de No aplicvel

Artefato Sujeito, predicado, objeto Declarao (statement ) Dado Consulta e resultado de consulta Raciocinador Regras Noticao eventos

Classe Jena Resource, Property Statement

Observaes Um Resource pode ser um sujeito, predicado ou objeto

Graph e Model

Graphs so blocos de construo bsicos para Models. ambos precisam conter a ontologia e instncia de dado Anlogos a bases de dados relacionais Permite mltiplos raciocinadores, internos ou externos O suporte a regras determinado pelo raciocinador especco Habilita processamento de eventos

Query e ResultSet Reasoner Reasoner ObjectListener

Quadro 7: Comparando Web Semntica e Jena. Fonte: Hebeler et al. (2009) (p.270).

Jena possibilita a criao e manipulao de grafos RDF, representadas pelos recursos (Resource), propriedades (Properties) e Literals, formando as tuplas que ir dar origem aos objetos criados pelo java. Assim, esse conjunto de objetos usualmente chamado de model. O Model11 o conjunto de declaraes (statements) que forma o grafo por completo. De acordo com Verzulli (2001), Jena dene uma srie de interfaces para acessar e manipular declaraes RDF (vide Figura 8). Comenta-se estas interfaces abaixo.
http://jena.sourceforge.net/ "Resource", "Properties", "Literals" e "Model" esto grafados com inicial maiscula e no itlico por representarem interfaces Java.
11 10

42

RDFNode Fornece uma base comum para todos os elementos que podem ser partes de triplas12 . Resource qualquer objeto que possa ser representado por um URI. Literal Representa literais como "peixe vermelho"ou 225 que pode ser usado como "objeto" em triplas. A interface Literal fornece mtodos de acesso para converter literais Java para diversos tipos como String, int e double. Property Objetos java que implementam a interface de Property podem ser "predicado" em triplas. Statement Representa uma tripla. Tambm pode ser usado como "objeto" em uma tripla de uma declarao aninhada. Container Objetos java que implementam Container, Alt, Bag, ou interface Seq podem ser o "objeto" triplas. Container so conjuntos de objetos dispostos da maneira adequada (Alt, Bag e Seq).

5.3

SPARQL

SPARQL13 o acrnimo recursivo para SPARQL Protocol and RDF Query Language. Uma linguagem de consulta e protocolo para RDF, desenvolvido pelo W3C RDF Data Access Working Group 14 .
12 13

considera-se "triplas"como triplas RDF (sujeito, predicado, objeto) http://www.w3.org/TR/rdf-sparql-query/ 14 http://www.w3.org/2009/sparql/wiki/Main_Page

43

Figura 8: Interfaces Jena. Fonte: Verzulli (2001).

W3C (2010a) explica que tecnicamente, as consultas SPARQL so baseadas em triplas (padres). RDF pode ser vista como um conjunto de relacionamentos entre recursos; consultas SPARQL proveem um ou mais padres diante desses relacionamentos. Estes padres de triplas so similares a triplas RDF, exceto que um ou mais das suas referncias de recursos so variveis. Uma engine SPARQL retorna os recursos para todas as triplas que atendam a estes padres. Pode-se visualizar, e maneira mais didtica uma consulta simples em SPARQL como uma tripla RDF (sujeito, predicado, objeto) contendo incgnita(s), por exemplo: (sujeito?, predicado, objeto) (sujeito, predicado?, objeto) (sujeito, predicado, objeto?) (sujeito?, predicado, objeto?) dentre outras possibilidades, onde a presena do "?" representa a incgnita que se deseja consultar. Destaca-se, neste ponto, a ferramenta de consulta SPARQL Twinkle15 que auxilia na construo de consultas SPARQL, carregando, editando e salvando consultas, inserindo prexos em consultas, congurando namespaces customizados, salvando resultados de consultas, acessando diversos tipos de bases RDF, dentre outros recursos interessantes. Essa ferramenta foi construda baseada no ARQ16 , uma parte da API Jena.
15 16

http://www.ldodds.com/projects/twinkle/ http://jena.hpl.hp.com/ARQ/

44

5.4
5.4.1

Prototipao
Paradigma de obteno de informao

A Figura 9 ilustra como se pode obter informao, nos dias atuais, a partir de meios computacionais. Geralmente, se tm uma srie de aplicativos, dos quais se pode obter algumas informaes, e para gerar algum conhecimento ou informao relevante e til, realiza-se cruzamentos das informaes provenientes desses aplicativos. Esses cruzamentos de informaes so feitos, geralmente, sem auxilio computacional. Um exemplo simples e ilustrado por Berners-Lee, Hendler e Lassila (2001) seria o agendamento de uma consulta em um medico, tendo que consultar um aplicativo de agenda e cruzar as informaes de datas de compromissos com as disponibilidades de consultas informadas por algum sistema de clnica mdica e, a partir de todo este trabalho manual, decidir acerca do agendamento da consulta.

Figura 9: Atual paradigma de obteno de informao. Fonte: Do autor.

A proposta de modelagem e implementao de base de conhecimentos deste trabalho vem servir como uma alternativa vivel esse paradigma, onde o usurio consultaria apenas o aplicativo cliente da base de conhecimentos para obter a informao relevante, de maneira que ela seja suciente ao usurio, liberando este, ao mximo, de cruzamentos de dados manuais. (BERNERS-LEE; HENDLER; LASSILA, 2001) no explica os detalhes de implementao dos agentes de software que iro rodar na web semntica e no caso da proposta deste trabalho no se preocupou, tambm, em denir como seriam os aplicativos clientes 45

da base de conhecimentos, apenas que a base de conhecimentos tem interface web services, facilitando a implementao do aplicativos clientes em qualquer tipo de proposta que possa implementar cliente web services. Desta maneira o usurio consulta o aplicativo, este consulta a base de conhecimentos via web services e esta retorna a informao que o usurio deseja de maneira direta ou "inferida"computacionalmente. Vide 10.

Figura 10: Novo paradigma de obteno de informao. Fonte: Do autor.

5.4.2

Requisitos

Deniu-se os seguintes requisitos para proposta de implementao do sistema de base de conhecimentos: Gerenciamento da base de conhecimentos Vericar estado da base de conhecimentos (implementado). Quais namespaces esto presentes na base, quantos recursos e propriedades a base tem, nela cadastrados, dentre outros. Checar logging de eventos sobre a base de conhecimentos (implementado). A base de conhecimentos deve registrar todos os eventos de alterao dos recursos e propriedades RDF dela. Gerenciar concorrncia de acesso base de conhecimentos Customizar a base de conhecimentos A base de conhecimentos deve suportar customizaes, como mudana de base de dados, dentre outras. 46

Operao sobre a base de conhecimento Manter armazenamento das informaes da base de conhecimentos (implementado). em memria e banco de dados Popular a base de conhecimentos (parcialmente implementado). via arquivo local, URL de arquivo remoto, ou edio via declaraes semnticas na base de conhecimento Executar combinaes na base de conhecimento armazenada em memria e banco de dados (Implementado). como adio, unio, diferena, interseco e vericao de igualdade. Interrogar a base de conhecimentos (implementado). via consultas simples, navegao RDF e consultas SPARQL. Efetuar raciocnio sobre a base de conhecimento (implementado). como validao e inferncia normal ou por regras. Exportar os dados da base de conhecimentos (no implementado). em XML ou outros formatos, como turttle. Executar tarefas de liberao de recursos quando o sistema de base de conhecimentos for nalizado (implementado). Dentre estes requisitos, apenas a interrogao da base de conhecimentos ca exposta ao usurio nal, como um agente ou cliente web services que necessita obter alguma informao contida na base. As demais funcionalidades so expostas apenas aos mantenedores da base de conhecimento.

5.4.3

Implementao

Neste trabalho foi implementado a arquitetura ilustrada pela Figura 11 O ncleo da API Jena para gerenciamento de Ontologia foi inserido no BaseBean, por este motivo ele um bean singleton. As demais funcionalidades satlites do Jena foram inseridas nas outras funcionalidades do sistema localizadas no bean OntologiaServico, um bean stateless. Para comunicao com o meio externo foi criada uma fachada web services implementada no bean OntologiaFacade. Como banco de dados foi utilizado o MySql17 ,
17

http://dev.mysql.com/

47

Figura 11: Arquitetura do sistema de base de conhecimentos. Fonte: Do autor.

que acessado pelo servidor de aplicao (glasssh) via pool de conexes. Pode-se vericar a implementao das classes do prottipo atravs do diagrama de classes na gura 12.

48

Figura 12: Diagrama de classes. Fonte: Do autor.

49

Consideraes Finais

6.1

Anlise dos resultados

Neste trabalho pde-se atingir os objetivos propostos, modelando uma base de conhecimento e mostrando a implementao da mesma. Embora nem todos os casos de uso tenham sido implementados, foi construdo um prottipo razovel com as principais funcionalidades propostas. Ficou, ento, registrada, a contribuio deste trabalho para o desenvolvimento da web semntica no sentido de trazer alguns de seus padres e sua losoa para o mundo real da implementao de sistemas. Ficou comprovado, tambm, que possvel implementar vrias solues para diversos problemas atuais, utilizando nossa proposta de implementao, bastando, para isso, modelar a Ontologia do tema do problema e realizar poucas customizaes nos beans do projeto de implementao.

6.2

Trabalhos futuros

Dentre as propostas avaliadas como trabalhos futuros, lista-se as seguintes: Contribuir com a continuidade do desenvolvimento da API Jena, no sentido de melhorar sua camada de persistncia, pois nota-se que ela pode ser melhorada por meio da API JPA, que o padro de persistncia do JEE. O Jena poderia ser melhorado, tambm, no sentido de suportar completamente a verso 2 da linguagem OWL. Utilizar a OWL-API1 que uma API semelhante ao Jena, porm com suporte completo a nova verso da linguagem OWL, fazendo com que a base de conhecimento se torne tambm totalmente compatvel com a nova especicao da linguagem OWL.
1

http://owlapi.sourceforge.net/

50

Efetuar testes de carga na infraestrutura proposta com ferramentas como o JMeter2 . Projetar um mecanismo automatizado para popular a ontologia, com um indexador automtico (web crawler ) para obter URLs de sites relevantes ao domnio de conhecimento e expor os dados desses sites em RDF para popular a ontologia. Um exemplo de indexador automtico de sites o Nutch3 e sua utilizao como ferramenta de suporte web semntica pode ser encontrado em Braga e Gomes (2007). Efetuar mais documentaes acerca das tecnologias da Web Semntica utilizadas neste trabalho. Um bom local para se coletar informaes acerca da Web Semntica em geral em Ribeiro (2010).

2 3

http://jakarta.apache.org/jmeter/ http://nutch.apache.org/

51

Referncias Bibliogrficas
BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The semantic web: a new form of web content that is meaningful to computers will unleash a revolution of new possibilities. Scientic American, 2001. BRAGA ngelo de B.; GOMES, M. N. Web Semntica: Uso de Ontologias para o Desenvolvimento de Buscaa Inteligentes. Monograa (Graduao) Faculdade de Computao, Universidade Federal do Par, Belm, 2007. BRAY, T. et al. Namespaces in xml 1.0 (third edition). W3C, Cambridge, 2009. Disponvel em: <http://www.w3.org/TR/REC-xml-names/>. Acesso em: 22 mai. 2010. BURKE, B.; MONSON-HAEFEL, R. Enterprise JavaBeans 3.0. 5. ed. So Paulo: Pearson Prentice Hall, 2007. CORP. ORACLE. What is java enterprise edition(j2ee)? Corp. Oracle, 2009. Disponvel em: <http://www.java.com/en/download/faq/j2ee.xml>. Acesso em: 8 mai. 2010. COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Sistemas Distribudos Conceitos e Projeto. 4. ed. Porto Alegre: Bookman, 2007. GRUBER, T. R. Toward principies for the design of ontologies used for knowledge sharing. In: FORMAL ONTOLOGY IN CONCEPTUAL ANALYSIS AND KNOWLEDGE REPRESENTATION, 1993, Padova. Technical Report KSL 93-04. Stanford: Stanford University, 1993. GUARINO, N. Formal ontology and information systems. In: PROCEEDING OF FOIS98, 1998, Ternto. Amsterdam: lOS Press, 1998. p. 315. HEBELER, J. et al. Semantic Web Programming. Indianapolis: Wiley Publishing, 2009. HITZLER, P. et al. Owl 2 web ontology language primer. W3C, Cambridge, 2009. Disponvel em: <http://www.w3.org/TR/2009/REC-owl2-primer-20091027/>. Acesso em: 22 mai. 2010. HORRIDGE, M. A practical guide to building owl ontologies using protg 4 and co-ode tools. The University Of Manchester, Manchester, March 2009. LIMA, J. C. de; CARVALHO, C. L. de. Ontologias owl (web ontology language). Universidade Federal de Gois, Goinia, junho 2005. NOY, N. F.; MCGUINNESS, D. L. Ontology development 101: A guide to creating your rst ontology. Stanford University, Stanford, 2001.

52

REAL, R. Redes semnticas. UFRGS, Porto Alegre, 2010. Disponvel em: <http://www.inf.ufrgs.br/gppd/disc/cmp135/trabs/rodrigo/T1/html/redes\ semanticas.html>. Acesso em: 8 mai. 2010. RIBEIRO, A. L. Belm, 2010. Disponvel em: <http://adagenor.blogspot.com/>. Acesso em: 15 jun. 2010. ROSA, P. A. Web semntica. Instituto de Matemtica e Estatstica da Universidade de So Paulo, So Paulo, dez. 2002. STANFORD UNIVERSITY. What is protg? Stanford University, Stanford, 2010. Disponvel em: <http://protege.stanford.edu/overview/index.html>. Acesso em: 23 mai. 2010. SUN MICROSYSTEMS INC. The java ee 6 tutorial. Sun Microsystems Inc., 2009. UNICODE.ORG. What is unicode? unicode.org, 2009. Disponvel em: <http://www.unicode.org/standard/WhatIsUnicode.html>. Acesso em: 22 mai. 2010. VERZULLI, J. Using the jena api to process rdf. OReilly, mai. 2001. Disponvel em: <http://www.xml.com/pub/a/2001/05/23% -/jena.html>. Acesso em: 22 mai. 2010. W3C. Extensible markup language (xml). W3C, Cambridge, 2003. Disponvel em: <http://www.w3.org/XML/>. Acesso em: 22 mai. 2010. W3C. Resource description framework (rdf). W3C, Cambridge, 2009. Disponvel em: <http://www.w3.org/RDF/>. Acesso em: 22 mai. 2010. W3C. Query. W3C, Cambridge, 2010. Disponvel em: <http://www.w3.org/standards/semanticweb/query>. Acesso em: 15 jun. 2010. W3C. Semantic web. W3C, Cambridge, 2010. Disponvel em: <http://www.w3.org/standards/semanticweb/>. Acesso em: 22 mai. 2010. W3C. Web services activity statement. W3C, Cambridge, 2010. Disponvel em: <http://www.w3.org/2002/ws/Activity>. Acesso em: 10 mai. 2010.

53

Você também pode gostar