protege - ferramenta de edição de ontologias

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

Upload: llmello21

Post on 25-Jun-2015

430 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Protege - ferramenta de edição de ontologias

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

Page 2: Protege - ferramenta de edição de ontologias

Roteiro● Introdução

– Web Semântica– Linguagens para ontologias– Ferramentas– Formalismos

● Protége● Prática

Page 3: Protege - ferramenta de edição de ontologias

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.

Page 4: Protege - ferramenta de edição de ontologias

Linguagens de ontologias

HTML XML

SHOE(HTML)

SHOE(XML)

XOL RDF

RDFS

OIL DAML+OIL OWL

• 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

Page 5: Protege - ferramenta de edição de ontologias

Linguagens de ontologias

HTML XML

SHOE(HTML)

SHOE(XML)

XOL RDF

RDFS

OIL DAML+OIL OWL

• 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

Page 6: Protege - ferramenta de edição de ontologias

OWL – Web Ontology Language ● Último padrão em linguagens

para ontologias● Recomendada por World

Wide Web consortium(W3C)● Revisão da linguagem

DAML+OIL;● Baseada em RDF(S) com

melhor interpretação do conteúdo WEB;

● Usa lógica descritiva;

Frame Systems

DAML-ONT

Web LanguagesRDF/SXML

DAML+OIL(OWL)

OIL

Formal FoundationsDescription Logics

Page 7: Protege - ferramenta de edição de ontologias

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.

Page 8: Protege - ferramenta de edição de ontologias

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)

Page 9: Protege - ferramenta de edição de ontologias

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

Page 10: Protege - ferramenta de edição de ontologias
Page 11: Protege - ferramenta de edição de ontologias

Construindo uma

ontologia em

OWL-DLusando Protégé

Page 12: Protege - ferramenta de edição de ontologias

Componentes de uma ontologia OWL

Page 13: Protege - ferramenta de edição de ontologias

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.

Page 14: Protege - ferramenta de edição de ontologias

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

Page 15: Protege - ferramenta de edição de ontologias

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

Page 16: Protege - ferramenta de edição de ontologias

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

Page 17: Protege - ferramenta de edição de ontologias

Significado de Subclasses

Cobertura_da_Pizza

Cobertura de Queijo

Mussarela

Page 18: Protege - ferramenta de edição de ontologias

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

Page 19: Protege - ferramenta de edição de ontologias

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

Page 20: Protege - ferramenta de edição de ontologias

Faz sentido essa intesecção Carne e Vegetais?

Coberturade Carne

Cobertura de Vegetais

Page 21: Protege - ferramenta de edição de ontologias

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.

Page 22: Protege - ferramenta de edição de ontologias

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

Page 23: Protege - ferramenta de edição de ontologias

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

Page 24: Protege - ferramenta de edição de ontologias

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?

Page 25: Protege - ferramenta de edição de ontologias

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.

Page 26: Protege - ferramenta de edição de ontologias

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.

Page 27: Protege - ferramenta de edição de ontologias

Criando propriedades

● Na tabela Properties: – Crie uma propriedade objeto chamada

temIngrediente.– E como sub-propriedade desta crie temBase e tem

Cobertura Create Datatype PropertyCreate Object PropertyCreate Sub-PropertyCreate Annotation Datatype propertyCreate Annotation Object PropertyDelete Property

Page 28: Protege - ferramenta de edição de ontologias

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

Page 29: Protege - ferramenta de edição de ontologias

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.

Page 30: Protege - ferramenta de edição de ontologias

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

Page 31: Protege - ferramenta de edição de ontologias

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

Page 32: Protege - ferramenta de edição de ontologias

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 MozzarellaMozzerella

temCobertura

temCobertura

temCoberturatemCoberturatemCobertura

Page 33: Protege - ferramenta de edição de ontologias

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.

Page 34: Protege - ferramenta de edição de ontologias

● 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.

Page 35: Protege - ferramenta de edição de ontologias

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.

Page 36: Protege - ferramenta de edição de ontologias

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

Page 37: Protege - ferramenta de edição de ontologias

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.

Page 38: Protege - ferramenta de edição de ontologias

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...

Page 39: Protege - ferramenta de edição de ontologias

The Open WorldAssumption

● 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.

Page 40: Protege - ferramenta de edição de ontologias

Mais do protégé

● Namespace e Prefixos– Cada ontologia deve ter um único namespace padrão– Conceitos importados são prefixados–

Page 41: Protege - ferramenta de edição de ontologias

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

Page 42: Protege - ferramenta de edição de ontologias

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/●