15
Modelagem e Implementação de Ontologias Relatório apresentado à Universidade Federal do ABC como parte dos requisitos para aprovação na disciplina de Inteligência Artificial do Curso de Bacharelado em Ciência e Tecnologia Ciência da Computação. André Filipe de Moraes Batista [email protected] Professor: Jerônimo Pellegrini Santo André, 30 de Junho de 2008.

Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Embed Size (px)

Citation preview

Page 1: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Modelagem e Implementação de

Ontologias

Relatório apresentado à Universidade Federal do ABC como parte dos requisitos para aprovação na disciplina de Inteligência Artificial do Curso de Bacharelado em Ciência e Tecnologia – Ciência da Computação.

André Filipe de Moraes Batista

[email protected]

Professor: Jerônimo Pellegrini

Santo André, 30 de Junho de 2008.

Page 2: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Índice

1 Introdução ................................................................................................................ 3

2 Modelagem de Ontologias no Protégé ................................................................... 4

2.1 Ontologia para Representação de Artigos – Utilizando Protégé Frames ............. 4

2.2 Ontologia para Representação de Vôos – Utilizando OWL................................ 10

3 Referências Bibliográficas .................................................................................... 15

Page 3: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

3

1 Introdução

O termo ontologia tem origem na Filosofia, sendo um ramo da Filosofia que lida com

a natureza e a organização do ser. Este termo foi recentemente adotado pelas

comunidades de IA e gestão de conhecimentos para se referir a conceitos e termos

que podem ser usados para descrever alguma área do conhecimento, ou construir

uma representação base.

Várias definições de ontologia podem ser encontradas na literatura, entre estas

encontra-se a definição apresentada por [Fensel 2000] que classifica ontologia como

“uma especificação formal explícita de uma conceitualização compartilhada”. O termo

“conceitualização” refere-se a um modelo abstrato de algum fenômeno que identifique

conceitos relevantes deste fenômeno. O termo “explícita” significa que os tipos de

conceitos usados, e as limitações do uso desses conceitos, devem ser definidos de

forma explícita. O termo “formal” refere-se que a ontologia deve ser passível de ser

processada por uma máquina. Por fim, “compartilhada” reflete a noção de que a

ontologia captura um conhecimento consensual, isto é, esse conhecimento não deve

ser restrito a alguns indivíduos, mas aceito por um grupo de pessoas [Guimarães

2002].

Outra definição para o termo ontologia é dada por Swartout, citado em [Gómez-

Pérez 1999], que define ontologia como “um conjunto de termos ordenados

hierarquicamente para descrever um domínio, que pode ser usado como um esqueleto

para uma base de conhecimento”. Com esta definição é possível afirmar que uma

ontologia deve possuir um conjunto de termos organizados com uma hierarquia

associada, ou seja, uma taxonomia. Por exemplo, pode-se definir uma ontologia para

o domínio de circuitos eletrônicos. A ontologia resultante incluiria conceitos específicos

(tais como circuitos integrados, resistor, transistor, processador, diodo, etc) e também

relações entre esses conceitos. Como, por exemplo, o processador é um tipo de

circuito integrado, etc. A partir desta estrutura é possível criar bases de conhecimento

descrevendo a realidade de um rádio composto por 10 transistores, 20 resistores, 4

diodos, dentre outras informações. O mesmo pode ser feito para incluir na base de

conhecimento dados sobre uma calculadora formada por 4 transistores, 3 resistores e

5 diodos. Pode-se observar que duas realidades diferentes são modeladas em um

domínio por uma mesma ontologia. Isto é, a ontologia é a estrutura básica para que

termos do domínio sejam descritos sob os mesmos conceitos, fornecendo um

vocabulário para representação e compartilhamento do conhecimento.

Page 4: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

4

Existem diversas ferramentas para criação de ontologias. Dentre todas,

destaca-se a ferramenta Protégé1, desenvolvida pela Universidade de Stanford. Nas

próximas seções tem-se o desenvolvimento de ontologias nesta ferramenta, utilizando

duas de suas principais tecnologias – Desenvolvimento por Frames e

Desenvolvimento via Linguagem OWL.

2 Modelagem de Ontologias no Protégé

A seguir tem-se a criação de duas ontologias na ferramenta Protégé utilizando

duas tecnologias diferentes.

2.1 Ontologia para Representação de Artigos – Utilizando Protégé Frames

A ontologia a ser modelada concentra-se nos conceitos inerentes a

representação de artigos. De uma forma geral, o processo para definição de uma

ontologia é dado da seguinte maneira:

Definir as classes e subclasses presentes na ontologia;

Definir slots e sua faixa de valores permitida;

Criar instâncias para classes e slots.

Para o processo de definição de classes e subclasses é importante conhecer o

domínio da ontologia, ou seja, o mini-mundo que queremos representar com o uso

desta. Para tal conhecimento, o mini-mundo da ontologia é dado por:

Um artigo pode ser de três tipos diferentes, isto é, pode ser publicado em três

meios diferentes: revista, jornal ou site da Internet;

Artigo é um tipo de Obra;

Uma Obra contém um Autor e Editora;

Um Autor é um tipo de Pessoa. (Pessoa refere-se ao grupo de indivíduos que

estão ligados à Editora).

1 Maiores informações: http://protege.stanford.edu

Page 5: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

5

Com estas informações é possível identificar as classes e subclasses da ontologia,

são elas:

Classe Editora o Subclasse Obra (uma editora possui n obras)

Subclasse Artigo (Um artigo é um tipo de obra de

uma editora)

Subclasse ArtigoJornal

Subclasse ArtigoRevista

Subclasse ArtigoWeb

o Subclasse Pessoa (pessoas envolvidas com a editora)

Subclasse Autor (Um artigo é um tipo de pessoa

envolvida com a editora)

Após a definição das classes e subclasses da ontologia, é preciso definir os

slots de cada classe, ou seja, seus atributos. Estes são assim definidos:

Toda Obra da Editora possui um ou mais Autores. Logo, a classe Obra terá o

slot autor. Este autor é uma instância da classe Autor;

Toda obra possui um idioma, número de páginas e um título. Portanto, os slots

serão: idioma, armazenando uma string de caracteres; num_paginas,

armazenando um valor inteiro de páginas (>1) e titulo, armazenando uma

string de caracteres;

Um artigo é um tipo de obra. Logo, todos os slots definidos anteriormente para

a classe Obra serão herdados pela classe Artigo;

Um artigo publicado em um jornal deve armazenar o nome deste jornal. Para

isto, cria-se um slot nome_jornal para a classe ArtigoJornal,

armazenando uma string de caracteres;

Um artigo publicado em uma revista deve armazenar a edição da revista. Para

isto, cria-se um slot ed_revista para a classe ArtigoRevista,

armazenando valores inteiros;

Um artigo publicado na web deve armazenar o endereço de sua publicação.

Para isto, cria-se um slot disponível_em para a classe ArtigoWeb,

armazenando uma string de caracteres;

Page 6: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

6

Uma pessoa que está ligada à revista deve possuir CPF, nome e sexo. Para

tal, criam-se os slots para a classe Pessoa: cpf, armazenando valores

inteiros; nome, armazenando uma string de caracteres e sexo, armazenando

dois valores possíveis: “m” ou “f”;

Como Autor é uma subclasse de Pessoa, os slots da classe Pessoa serão

herdados pela classe Autor.

A partir deste ponto é possível implementar a ontologia na ferramenta Protégé.

Após a modelagem tem-se a visualização gráfica das classes e subclasses definidas

nos processos anteriores. A Figura 1 ilustra as classes e subclasses na ontologia.

Figura 1 - Hierarquia das Classes e Subclasses para a Ontologia Modelada

A partir deste ponto é possível criar instâncias para cada classe. Uma instância

será criada. Esta será da seguinte forma:

Godofredo é um Autor, isto é, um tipo de Pessoa;

O Autor do Artigo da Revista Ed. 1 chamado “Uma Introdução a Linguagem

LISP” é Godofredo;

Este artigo possui 25 páginas e foi escrito em português.

Com estas informações é possível criar uma instância para a Ontologia.

Primeiramente vamos cria-se uma instância da classe Autor. As informações para esta

instância estão ilustradas na Figura 2.

Page 7: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

7

Figura 2 – Criação de uma instância da classe Autor.

Outras instâncias foram criadas e encontram-se nos arquivos fontes da ontologia,

que acompanha este material.

Para testar a ontologia, pode-se criar Queries. De acordo com a modelagem feita,

esta ontologia deve ser capaz de responder as seguintes perguntas:

Quais são os autores que trabalham para a editora?

Page 8: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

8

Obtemos as respostas:

Godofredo

Simone Franchais

Benerlopolis Silva

Dado um autor, quais são seus artigos?

Obtemos as seguintes respostas para a autora Simone Franchais:

Genetic Algorithms

Minimax: Um Bueno Algoritmo de Busqueda

Várias outras perguntas podem ser feitas. A Figura 3 ilustra a estrutura da

ontologia criada. Nela tem-se as classes e suas instâncias. Esta estrutura foi

visualizada com ajuda do plug-in TGVizTab. Trata-se de um plug-in nativo da

versão full do Protégé. Maiores informações sobre este plugin podem ser

encontradas no site do Protégé.

Page 9: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

9

Figura 3 – Estrutura da Ontologia Criada.

Page 10: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

10

2.2 Ontologia para Representação de Vôos – Utilizando OWL

OWL (Ontology Web Language) é uma linguagem de marcação semântica para

publicação e compartilhamento de ontologias, projetada para descrever classes e

relacionamentos entre elas, que é atualmente recomendada pelo W3C.

A OWL foi projetada para prover uma linguagem de ontologia que pudesse ser

usada para descrever, de um modo natural, classes e relacionamentos entre elas em

documentos e aplicações Web.

Esta seção descreve a modelagem de um domínio de representação de vôos

aéreos. O principio de construção da ontologia deu-se de maneira semelhante ao

descrito na Seção 2.1. Portanto, será breve a descrição da ontologia criada nesta

seção.

O domínio da ontologia a ser modelada representa os vôos aéreos. Para tal

representação foram criadas as seguintes classes:

Aeroporto – Representando os aeroportos que um avião freqüenta;

Avião – Representando o avião. Este pode ser de dois tipos: Comercial,

ou Doméstico (Estamos aceitando que um avião é utilizado para apenas

um destes tipos; por isso não é o vôo que está sendo classificado como

comercial ou doméstico);

Trecho – Representa os trechos de cada vôo. Um trecho possui o

Aeroporto_Partida e o Aeroporto_Chegada como parâmetros;

Vôo – Representa os vôos. Um vôo pode ser composto por N Trechos.

Com estas informações é possível modelar a ontologia no Protégé. Com o auxílio do

plug-in TGVizTab é possível visualizar a estrutura geral desta ontologia, ilustrada na

Figura 4.

Page 11: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

11

Figura 4 – Estrutura Geral da Ontologia Modelada.

Após a criação de algumas instâncias, a ontologia torna-se um pouco mais

complexa. Queries podem ser feitas da mesma maneira que foram feitas na Seção

2.1. A Figura 5 ilustra a estrutura da ontologia após a criação de algumas

instâncias:

4 Ontologia

Figura 5 – Ontologia sobre Vôos: Classes, Instâncias e Relacionamentos.

Page 12: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

12

O Código XML desta ontologia criada com a linguagem OWL é descrito a seguir:

<?xml version="1.0"?>

<!DOCTYPE rdf:RDF [

<!ENTITY owl "http://www.w3.org/2002/07/owl#" >

<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >

<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >

<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >

]>

<rdf:RDF xmlns="http://www.owl-ontologies.com/unnamed.owl#"

xml:base="http://www.owl-ontologies.com/unnamed.owl"

xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"

xmlns:xsd="http://www.w3.org/2001/XMLSchema#"

xmlns:owl="http://www.w3.org/2002/07/owl#"

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<owl:Ontology rdf:about=""/>

<Voo rdf:ID="aeroporto_Instance_37">

<CodVoo rdf:datatype="&xsd;int">1</CodVoo>

<Trechos rdf:resource="#aeroporto_Instance_33"/>

<Trechos rdf:resource="#aeroporto_Instance_32"/>

<AeroportoSaida rdf:resource="#aeroporto_Instance_30"/>

<AeroportoChegada rdf:resource="#aeroporto_Instance_31"/>

</Voo>

<owl:DatatypeProperty rdf:ID="AeroCod">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aeroporto"/>

<rdfs:range rdf:resource="&xsd;int"/>

<rdfs:comment rdf:datatype="&xsd;string"

>C&#243;digo do Aeroporto</rdfs:comment>

</owl:DatatypeProperty>

<Aeroporto rdf:ID="aeroporto_Instance_31">

<AeroCod rdf:datatype="&xsd;int">24</AeroCod>

<Estado rdf:datatype="&xsd;string">MG</Estado>

<Cidade rdf:datatype="&xsd;string">Belo Horizonte</Cidade>

<Nome rdf:datatype="&xsd;string">AeroMinas</Nome>

</Aeroporto>

<owl:Class rdf:ID="Aeroporto"/>

<Aeroporto rdf:ID="aeroporto_Instance_29">

<AeroCod rdf:datatype="&xsd;int">1</AeroCod>

<Estado rdf:datatype="&xsd;string">SP</Estado>

<Cidade rdf:datatype="&xsd;string">Santo Andre</Cidade>

<Nome rdf:datatype="&xsd;string">Aeroporto UFABC</Nome>

</Aeroporto>

<Aeroporto rdf:ID="aeroporto_Instance_30">

<AeroCod rdf:datatype="&xsd;int">2</AeroCod>

<Estado rdf:datatype="&xsd;string">Sao Paulo</Estado>

<Cidade rdf:datatype="&xsd;string">Sao Paulo</Cidade>

<Nome rdf:datatype="&xsd;string">Aeroporto USP</Nome>

</Aeroporto>

<owl:DatatypeProperty rdf:ID="aeroporto_Slot_17">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="aeroporto_Slot_8">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:ObjectProperty rdf:ID="AeroportoChegada">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain>

<owl:Class>

<owl:unionOf rdf:parseType="Collection">

<owl:Class rdf:about="#Trecho"/>

<owl:Class rdf:about="#Voo"/>

</owl:unionOf>

</owl:Class>

</rdfs:domain>

</owl:ObjectProperty>

<owl:ObjectProperty rdf:ID="AeroportoSaida">

Page 13: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

13

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain>

<owl:Class>

<owl:unionOf rdf:parseType="Collection">

<owl:Class rdf:about="#Trecho"/>

<owl:Class rdf:about="#Voo"/>

</owl:unionOf>

</owl:Class>

</rdfs:domain>

</owl:ObjectProperty>

<owl:Class rdf:ID="Aviao"/>

<Comercial rdf:ID="aeroporto_Instance_24">

<NomeAviao rdf:datatype="&xsd;string">Bolinha</NomeAviao>

<Empresa rdf:datatype="&xsd;string">GOL</Empresa>

<IdAviao rdf:datatype="&xsd;int">1</IdAviao>

<Total_poltronas rdf:datatype="&xsd;string">20</Total_poltronas>

</Comercial>

<Comercial rdf:ID="aeroporto_Instance_25">

<NomeAviao rdf:datatype="&xsd;string">BRA1</NomeAviao>

<Empresa rdf:datatype="&xsd;string">BRA</Empresa>

<IdAviao rdf:datatype="&xsd;int">2</IdAviao>

<Total_poltronas rdf:datatype="&xsd;string">50</Total_poltronas>

</Comercial>

<Doméstico rdf:ID="aeroporto_Instance_28">

<NomeAviao rdf:datatype="&xsd;string">Bush</NomeAviao>

<Empresa rdf:datatype="&xsd;string"

>AMERICA AIRLINES</Empresa>

<IdAviao rdf:datatype="&xsd;int">34</IdAviao>

<Total_poltronas rdf:datatype="&xsd;string">24</Total_poltronas>

</Doméstico>

<Comercial rdf:ID="aeroporto_Instance_26">

<NomeAviao rdf:datatype="&xsd;string">Caindo</NomeAviao>

<Empresa rdf:datatype="&xsd;string">VARIG</Empresa>

<IdAviao rdf:datatype="&xsd;int">3</IdAviao>

<Total_poltronas rdf:datatype="&xsd;string">60</Total_poltronas>

</Comercial>

<owl:DatatypeProperty rdf:ID="Cidade">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aeroporto"/>

<rdfs:range rdf:resource="&xsd;string"/>

<rdfs:comment rdf:datatype="&xsd;string"

>Cidada onde est&#225; localizado o aeroporto</rdfs:comment>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="Cidade_Chegada">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="Cidade_Saida">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="CodVoo">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Voo"/>

<rdfs:range rdf:resource="&xsd;int"/>

</owl:DatatypeProperty>

<owl:Class rdf:ID="Comercial">

<rdfs:subClassOf rdf:resource="#Aviao"/>

</owl:Class>

<owl:DatatypeProperty rdf:ID="Data">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Trecho"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:Class rdf:ID="Dom&#233;stico">

<rdfs:subClassOf rdf:resource="#Aviao"/>

</owl:Class>

<owl:DatatypeProperty rdf:ID="Empresa">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aviao"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="Estado">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aeroporto"/>

<rdfs:range rdf:resource="&xsd;string"/>

<rdfs:comment rdf:datatype="&xsd;string"

>Estado onde o aeroporto est&#225; localizado</rdfs:comment>

Page 14: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

14

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="IdAviao">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aviao"/>

<rdfs:range rdf:resource="&xsd;int"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="Nome">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aeroporto"/>

<rdfs:range rdf:resource="&xsd;string"/>

<rdfs:comment rdf:datatype="&xsd;string"

>Nome do Aeroporto</rdfs:comment>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="nome_aviao">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="nome_trecho">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Trecho"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="NomeAviao">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aviao"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:DatatypeProperty rdf:ID="Num_PoltronasDisponiveis">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Trecho"/>

<rdfs:range rdf:resource="&xsd;int"/>

</owl:DatatypeProperty>

<Doméstico rdf:ID="aeroporto_Instance_27">

<NomeAviao rdf:datatype="&xsd;string">TAM_E_VOCE</NomeAviao>

<Empresa rdf:datatype="&xsd;string">TAM</Empresa>

<IdAviao rdf:datatype="&xsd;int">51</IdAviao>

<Total_poltronas rdf:datatype="&xsd;string">30</Total_poltronas>

</Doméstico>

<owl:DatatypeProperty rdf:ID="Total_poltronas">

<rdf:type rdf:resource="&owl;FunctionalProperty"/>

<rdfs:domain rdf:resource="#Aviao"/>

<rdfs:range rdf:resource="&xsd;string"/>

</owl:DatatypeProperty>

<owl:Class rdf:ID="Trecho"/>

<owl:ObjectProperty rdf:ID="Trechos">

<rdfs:domain rdf:resource="#Voo"/>

</owl:ObjectProperty>

<Trecho rdf:ID="aeroporto_Instance_32">

<Num_PoltronasDisponiveis

rdf:datatype="&xsd;int">20</Num_PoltronasDisponiveis>

<nome_trecho rdf:datatype="&xsd;string"

>UFABC - AeroMinas</nome_trecho>

<Data rdf:datatype="&xsd;string">10/06/2008</Data>

<AeroportoSaida rdf:resource="#aeroporto_Instance_29"/>

<AeroportoChegada rdf:resource="#aeroporto_Instance_31"/>

</Trecho>

<Trecho rdf:ID="aeroporto_Instance_33">

<Num_PoltronasDisponiveis

rdf:datatype="&xsd;int">1</Num_PoltronasDisponiveis>

<nome_trecho rdf:datatype="&xsd;string">USP - UFABC</nome_trecho>

<Data rdf:datatype="&xsd;string">10/06/2008</Data>

<AeroportoSaida rdf:resource="#aeroporto_Instance_30"/>

<AeroportoChegada rdf:resource="#aeroporto_Instance_29"/>

</Trecho>

<owl:Class rdf:ID="Voo"/>

</rdf:RDF>

Page 15: Modelagem e Implementação de Ontologias - aleph0.infoaleph0.info/cursos/ia/trab/andre/4/RelatorioProtege.pdf · Modelagem e Implementação de Ontologias Relatório apresentado

Universidade Federal do ABC MC-3303 Inteligência Artificial

15

3 Referências Bibliográficas

[Fensel 2000] FENSEL, D. The semantic web and its languages. IEEE Intelligent

Systems. v. 15, n. 6, p. 67-73, nov./dec. 2000.

[Gómez-Pérez 1999] GÓMEZ-PÉREZ, A. Ontological Engineering: A state of the art.

Expert Update. British Computer Society. v. 2, n. 3, p. 33-43. 1999

[Guimarães 2002] GUIMARÃES, Francisco José Zamith. Utilização de Ontologias no

Domínio B2C. Dissertação (Mestrado) – Pontifícia Universidade Católica do Rio

de Janeiro, 2002.

[Protege 2008] Site da Ferramenta Protégé – http://protege.stanford.edu, acesso em

06/2008.