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