Protégé Ferramenta de Edição de Ontologiascin.ufpe.br/~astm/si/aulas/sem1_jana.pdf · Protégé...

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

Transcript of Protégé Ferramenta de Edição de Ontologiascin.ufpe.br/~astm/si/aulas/sem1_jana.pdf · Protégé...

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

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

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

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

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

Cobertura_da_Pizza

Cobertura de Queijo

Mussarela

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?

Coberturade Carne

Cobertura de 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 PropertyCreate Object PropertyCreate Sub-PropertyCreate Annotation Datatype propertyCreate Annotation Object PropertyDelete 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 MozzarellaMozzerella

temCobertura

temCobertura

temCoberturatemCoberturatemCobertura

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

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