Você está na página 1de 42

Protégé

Ferramenta de Edição de
Ontologias

Janaína Pereira

baseada na apresentação de Nick Drummond, Matthew Horridge e Holger Knublauch Knublauch na


8th International Protégé Conference

Manaus - 2005
Roteiro
● Introdução
– Web Semântica
– Linguagens para ontologias
– Ferramentas
– Formalismos
● Protége
● Prática
Web Semântica
● Evolução da web atual.
● Tim Berners-Lee(2001)
● Plataforma para compartilhar modelos de
domínio
– Feita por humanos
– Inteligível pelas máquinas
– Objetivo: estruturar semanticamente o conteúdo
que está solto nas páginas Web através das
ontologias.
Linguagens de ontologias
• A Internet inspirou a criação de linguagens de
especificação de ontologias que explorassem as
características da Web, surgiram as:
Ontologies Markup Languages

OIL DAML+OIL OWL

RDFS
SHOE SHOE XOL
(HTML) (XML) RDF

HTML XML
Linguagens de ontologias
• A Internet inspirou a criação de linguagens de
especificação de ontologias que explorassem as
características da Web, surgiram as:
Ontologies Markup Languages

OIL DAML+OIL OWL

RDFS
SHOE SHOE XOL RDF
(HTML) (XML)

HTML XML
OWL – Web Ontology Language
● Último padrão em linguagens
para ontologias Web Languages
RDF/S
XML
● Recomendada por World
Wide Web consortium(W3C)
DAML-ONT OIL
● Revisão da linguagem
DAML+OIL
DAML+OIL; (OWL)
● Baseada em RDF(S) com Frame Systems
Formal Foundations
Description Logics
melhor interpretação do
conteúdo WEB;
● Usa lógica descritiva;
OWL - Dialetos
● OWL Lite;

● OWL DL
– mais expressiva;
– com maior poder de
decisão;
– Lógica Descritiva;

● OWL Full
– Máximo de
expressividade;
– Liberdade de sintaxe.
Ferramentas

–Protégé (RDF-Schema, OWL)


–OilEd (DAML+OIL)
–OntoEdit (Frame-Logic, OXML, RDF-Schema, OIL)
–WebODE (WebODE's XML, X-Carin)
–VOID (CML, EXPRESS, Ontolingua)
–JOE – Java Ontology Editor (KIF)
Protégé
• É uma open-source;
• Ferramenta de edição em Java;
• Ferramenta para criar e gerenciar ontologias;
• Baseada no paradigma de frameworks;
• Permite desenvolver plugins para adicionar novas
funções:
– Um pouco mais de 50 plugins disponíveis
– http://protege.stanford.edu/plugins.html
• Possui uma biblioteca de ontologias com 55
ontologias
Construindo
uma
ontologia
em
OWL-DL
usando
Protégé
Componentes de uma ontologia OWL
OWL – Class Descriptions
● OWL é uma linguagem ontológica que é
primeiramente feita para descrever e definir
classes.
● Classes são interpretadas com um conjunto de
indivíduos.
● OWL suporta 6 principais formas de descrever
classes de indivíduos.
– A mais simples é Named Class.
– Os outros tipos de class descriptions são anonymous
classes.
OWL Classes
● Named classes – cria uma classe e associa um
nome a ela.
● Classes Anônimas – são construídas com bases
nas class descriptions
– Classes Intersecção, União e Complemento
– Classes Restrições
● Existencial
● Universal
● Cardinalidade
● HasValue
– Enumeration classes
Tabela Classe
● Na tabela Classe,
selecione os
botões:
– Create subclass e
Create siblings
para criar as
classes.
– Deletar classes
– Explora relações
existentes
– Explore inferred
hierarchy
Criando Classes
● Cria-se as classes Pizza,
Cobertura_de_Pizza e
Base_da_Pizza.
● E algumas subclasses para a
Cobertura de Pizza
representando alto nível de
categoria de coberturas
como:
– De carne
– Frutos do Mar
– Queijo
– Vegetais
Significado de Subclasses

Mussarela

Cobertura_da_Pizza

Cobertura de Queijo
Disjunção entre classes
● Classes são disjuntas
quando elas não
compartilham
indivíduos(ou objetos)
entre elas.
– Exemplo:
● Pizza
● Cobertura de Pizza
● Base da Pizza
Multi-herança
● OWL permite especificar multipla named
superclasses para qualquer classe.
● Por exemplo,
– Cria-se uma classe chamada Carne_Vegetais em
Cobertura_de_Vegetais
– E usando as Conditions Widget para adicionar
Cobertura_de_Carne como uma superclasse extra
Faz sentido essa intesecção Carne e
Vegetais?

Cobertura Cobertura de
de Carne Vegetais
Checando uma ontologia
● Acabamos de criar uma classe estranha,
intuitivamente, isso não seria possível para
individuos que são ambos um tipo de Cobertura
de Carne e um tipo de Cobertura de Vegetais
● Sabemos que tendo indivíduos que são tipos de
Carne_Vegetais não faz sentido do ponto de
vista, mas estes indivíduos existem do ponto de
vista lógico?
● Idealmente, gostaríamos de checagem automática
para nossa ontologia para asegurar que o sentido
lógico corresponde ao nosso entendimento. Para
tanto, usamos um Reasoner.
Reasoning
● Para uma ontologia no escopo de OWL-DL,
podemos usar DL Reasoner para inferir
informações que não é explicitamente
representado na ontologia. O “serviço” padrão
dos reasoning são:
– Subsumption checking

– Equivalence checking

– Consistency checking

– Instantiation checking
Usando um reasoner para checar
consistência das classes
● Protégé-OWl pode ser usando com qualquer
reasoner DIG anexado
● A comunicação com o reasoner é feita via HTTP;
● Para certificar que um reasoner está “rodando”,
clique no botão consistency na barra de
ferramentas
Axiomas Disjuntos
● Usando o reasoner chegamos a consistência das
named classes na ontologia, identificamos que
Carne_Vegetais é consistente, i.e, é possível para
indivíduos que sejam ambos Cobertura_de_Carne
e Cobertura_Vegetais
● Se olhando novamente a ontologia, e acharmos
melhor ter como classes disjuntas as subclasses
de Cobertura de Pizza.
● Será isso irá alterar algo em relação a classe
Carne_Vegetais?
OWL - Propriedades
● OWL tem 2 principais tipos de propriedades:
Object properties e Datatype properties
– Object properties relaciona um indivíduo a outro
indíviduo
– Datatype properties relaciona um indivíduo a um data
value.
● Outra tipo de propriedades, Annotation
properties, usado para vincular metadados as
classes, propriedades e indivíduos.
Hierarquia de propriedades
● OWL suporta a especificação de hieraquia de
propriedades
● Podemos especificar que uma propriedade tem
super-propriedade. Para qualquer propriedade
dada podemos especificar multi super-
propriedades.
● Em OWL-DL, object properties podem somente
ter object properties como super-properties e
datatype properties podem ser somente datatype
properties como super-properties.
Criando propriedades
● Na tabela Properties:
– Crie uma propriedade objeto chamada
temIngrediente.
– E como sub-propriedade desta crie temBase e tem
Cobertura Create Datatype Property
Create Object Property
Create Sub-Property
Create Annotation
Datatype property
Create Annotation Object
Property
Delete Property
Propriedades Características
● Podemos especificar propriedades características
adicionais por tipo de propriedade como:
– Functional
– InverseFunctional
– Symmetric
– Transitive
● ATENÇÃO!
– Certas combinações das características acima podem
levar que a ontologia seja OWL-FULL
Adicional as propriedades
Características
● Uma pizza somente tem uma base – logo
podemos dizer que a propriedae temBase é
functional.
● Queremos dizer que o fato dos ingredientes
compõem a cobertura da pizza também compõem
a pizza, sendo assim podemos dizer que
temIngrediente é transitiva.
Restrições
● Restrições descrevem uma classe de indivíduos
que é determinado pelo tipo e possivelmente pelo
número de relatiomentos que eles participam.
● Restrições podem ser agrupados em 3 principais
categorias:
– Quantifier restrictions (Existencial,Universal)
– Cardinality restrictions (Min ≥, Equal , =, Max , ≤)
– HasValue restrictions
Restrição Existencial
● O tipo mais comum de restrição que usaremos é
uma restrição existencial , a qual tem com o
simbolo .
● A restrição existencial significa “alguns valores
de” ou “no mínumo um”
● Descreve uma classe de indivíduos que têm no
mínimo uma relação com uma propriedade
especificada para um indivíduo que é um membro
de uma classe específica
Criando restrições existenciais
● Crie uma restrição dizendo que uma pizza só
pode ter uma base.
● Crie uma restrição onde a Pizza Margarita tem
que ter no mínimo uma cobertura de Tomate.
● Crie uma restrição a qual a Pizza America tenha
como cobertura mozzarella, tomate e calabreza.
temCobertura
tura
temCober
temCobertura
temCobertura
temCobertura
Mozzerella
TemCobertura Mozzarella
Condições Necessárias
● Até agora, todas as condições das classes
descrições são necessary conditions
● Dada uma classe, condições necessárias são as
condiçoes que um indivíduo deve satisfazer para
ser membro da classe.
● Por exemplo, a pizza Margerita...
– Se um indivíduo é um membro da Pizza_Margerita, é
necessariamente uma Pizza tem que ter no mínimo a
cobertura de mozzarella e no mínimo ter uma
cobertura de tomate.
● Com as Condições Necessárias, se conhecemos
que um indivíduo é um membro de uma dada
classe, sabemos também que deve satisfazer as
condições necessárias da classe.
– E se dado um indivíduo que satisfaça algumas
condições, a qual classe ele é membro?
● OWL também suporta condições Necessárias e
Suficiente, as quais nos permitem determinar que
qualquer indivíduos que satisfaça as condições
podem ser inferidos a ser um membro de uma
classeitions can be inferred to be a member of the
class que as condições estejam inseridas.
Condições Necessáris e Suficientes
● Exemplo:
– Sendo Classe A subclasse da Classe B, se todos os
indivíduos na Classe A estão também na Classe B.
– Portanto, se todos os indivíduos da Classe B
satisfazem as condições necessárias e sufficiente da
Classe A, todos eles deve ser também membros da
Classe A, e podemos inferir que B é uma subclasse da
Classe A .
● Crie uma classe Pizza de queijo que tenha como restrição
ter no mínimo cobertura de queijo.
Definidindo a Pizza Vegetariana
● Definiremos que uma Pizza Vegetariana é
qualquer pizza que somente tenha cobertura de
vegetais
● Para tanto decidiremos que uma cobertura
vegetais é qualquer pizza que tenha como
cobertura Queijo ou Vegetais
– Usaremos a Classe União para especifiar isto.
– Será uma condição necessária e suficiente
Restrição Universal
● Queremos dizer que Pizza Vegetariana tem
somente cobertura que seja cobertura de vegetais
– Condição necessária e suficiente
– Iremos usar Restrição Universal para especificar isto
● Restrições Universais são escritas usando o
símbolo
– Significa “para todos os valores de” ou “somente”
– Descreve que uma classe de indivíduos que para uma
dada propriedade, somente tenha relações com
indiívudos da classe específica.
Subclasses de Pizza Vegetariana
● Usemos o reasoner para classificar a ontologia...

– Quais são as subclasses de Pizza Vegetarian?

– Será que a nossa definição de Pizza Vegetaria está


correta??

– Mas nenhuma pizza foi classificada como subclasse


de Pizza Vegetariana!

● Relembrando da Pizza Margerita...


The Open World
Assumption
● Não é porque algo não foi declarado não significa
que não seja verdade. Constrante como os BD's
● Por exemplo:
– Não declamos que a Pizza Margerita tem cobertura de
linguiça, mas pelo Open World Assumption, ela pode
ter.
● Em open World Reasoning, algumas coisas não
são assumidas como falsas a menos que sejam
explicitamente declaradas como falsas.
Mais do protégé
● Namespace e Prefixos
– Cada ontologia deve ter um único namespace padrão
– Conceitos importados são prefixados

Mais do protégé
● Importa e exporta ontologias
● Projetos Multi-Arquivos
– Uma ontologia é “ativada”
– Mudanças somente irão aplicadas na ontologia
ativada.
● Usar metaclasses
Referências
● http://www.inf.unisinos.br/~renata/cursos/topicosv/ontologias-ws.pdf
● http://www.linux.ime.usp.br/~cef/mac499-03/monografias/andrew/#owl
● http://www.inf.ufes.br/~zegonc/material/OWL_Completa.ppt
● http://ontoweb.aifb.uni-karlsruhe.de/About/Deliverables/D13_v1-0.zip
● Paula Silvonen -Semantic Web Tools- VTT Information Technologyhttp://
www.vtt.fi/tte
● http://protege.stanford.edu
● http://www.co-ode.org/ontologies/pizza/2005/05/16/