protege - ferramenta de edição de ontologias
TRANSCRIPT
![Page 1: Protege - ferramenta de edição de ontologias](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/2.jpg)
Roteiro● Introdução
– Web Semântica– Linguagens para ontologias– Ferramentas– Formalismos
● Protége● Prática
![Page 3: Protege - ferramenta de edição de ontologias](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/10.jpg)
![Page 11: Protege - ferramenta de edição de ontologias](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/11.jpg)
Construindo uma
ontologia em
OWL-DLusando Protégé
![Page 12: Protege - ferramenta de edição de ontologias](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/12.jpg)
Componentes de uma ontologia OWL
![Page 13: Protege - ferramenta de edição de ontologias](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/17.jpg)
Significado de Subclasses
Cobertura_da_Pizza
Cobertura de Queijo
Mussarela
![Page 18: Protege - ferramenta de edição de ontologias](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/20.jpg)
Faz sentido essa intesecção Carne e Vegetais?
Coberturade Carne
Cobertura de Vegetais
![Page 21: Protege - ferramenta de edição de ontologias](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/34.jpg)
● 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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022052523/5571f89c49795991698dc318/html5/thumbnails/42.jpg)
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/●