Protégé
Desenvolvimento de contologias
Joel Luis Carbonera
jlcarbonera@inf.ufrgs.br
Protégé
Desenvolvimento de contologias
Ontologias
Ontologias
Termo do domínio da Filosofia
A disciplina filosófica preocupada com o estudo do ser.
Sistematiza conjuntos de categorias das coisas que existem.
Um conjunto de categorias que sistematiza as coisas fundamentais que existem.
Ontologias
Na Ciência da Computação
“Uma especificação formal e explícita de uma conceitualização compartilhada” (Gruber)
● Um artefato de engenharia (processável por computador) que representa a
conceitualização que uma dada comunidade tem de uma dada porção da realidade
(domínio).
● Envolve a representação de Conceitos, relações, atributos que usamos para estruturar os discursos do domínio.
Ontologias
Na Ciência da Computação
Do ponto de vista de sistemas: “O que existe do mundo é o que pode ser representado
computacionalmente”.
Ontologias definem o que existe para o sistema
De um modo que reflita a conceitualização humana.
Ontologias
Conceitualização?
Ontologias
Conceitualização?
Mesma conceitualização abstrai diferentes estados de coisas do mundo.
Bloco, está abaixo de, está acima de, etc
Ontologias
Para que servem?
Permitir que tanto pessoas quanto agentes de
software compartilhem uma compreensão comum da estrutura da informação de um domínio.
Permitir o reuso do conhecimento de domínio
Tornar as suposições do domínio explícitas
Separar o conhecimento declarativo do domínio do conhecimento operacional/procedural (utilizado para manipular o conhecimento declarativo)
Protégé
Desenvolvimento de contologias
Introdução ao Protégé
Introdução ao Protégé
Protégé
Ambiente para aquisição de conhecimento e edição de ontologias e bases de conhecimento.
Permite construir ontologias usando OWL (web ontology language)
Recomentada pela World Wide Web Consortium para construção de ontologias no contexto da
web semântica.
Mantém um bom compromisso entre expressividade e computabilidade
Permite a realização de inferências automáticas
Introdução ao Protégé
Download:
http://protege.stanford.edu/download/registered.html
Tutoriais:
http://owl.cs.manchester.ac.uk/tutorials/protegeowltutorial/
Versão de trabalho: Protégé 4.2
Introdução ao Protégé
Componentes de uma ontologia OWL
Individuals: objetos,porções individuais e únicas do domínio. Representam instâncias.
Classes: Conjuntos de indivíduos com propriedades comuns. Representam conceitos.
Properties: Propriedades
Object Properties: Relações binárias entre indivíduos. Representam relações.
Data properties: Relações entre indivíduos e valores de atributos. Representam atributos.
Introdução ao Protégé
Interface do ambiente
Estrutura de abas e menus
Principais abas:
Classes
Objetc Properties
Data properties
Individuals
Principais menus
File
Reasoner
Introdução ao Protégé
Protégé
Desenvolvimento de contologias
Estudo de caso:
Modelagem de uma ontologia de relações
familiares no Protégé
Estudo de caso:
Modelagem de uma ontologia de relações
familiares no Protégé
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Desenvolvimento de ontologias:
iterativo– Identificação dos principais conceitos da ontologia (heurística: substantivos comuns)
• Organização em taxonomias de conceitos
– Identificação das propriedades
• Relações (heurística: verbos)
• Atributos (heurística: adjetivos)
– Definição dos conceitos
• Condições necessárias e suficientes para um indivíduo pertencer a uma classe
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Quais os principais conceitos do domínio das
relações familiares?
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Quais os principais conceitos do domínio das relações familiares?
Pessoa:
Todas as relações familiares são mantidas entre Pessoas
Homem, Mulher
Todas as pessoas são homens ou mulheres
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Todas as pessoas são homens ou mulheres
Quando duas classes representam conjuntos
disjuntos de indivíduos (não podem estar nas duas simultamentemanete), é preciso declarar isto
explicitamente.
O Protégé assume que pode ocorrer sobreposição de classes, caso isso não seja informado explicitamente.
É importante, do ponto de vista do raciocínio.
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Outros conceitos importantes...
Pai, mãe, filho, filha, irmão, irmã, etc
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Outros conceitos importantes...
Pai, mãe, filho, filha, irmão, irmã, etc
Alguns pares de conceitos podem ser vistos como disjunções (com base no sexo), de classes mais gerais.
Genitor (parent), generaliza Pai (father) e Mãe (mother)
Filho (child), generaliza Filho (son) e Filha (daughter)
Múltiplas hierarquias
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Atributos (data type properties) – É importante especificar:
• Domínio (domain):
– Classes de indivíduos que podem ser descritos por este atributo.
• Escopo (range):
– Tipos de dados que são admitidos como
valores possíveis do atributo
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Atributos (data type properties) importantes no domínio
Neste domínio, todos os conceitos herdam atributos que descrevem Pessoa.
Tem sexo
– Domínio: Pessoa – Escopo: String
Tem nome
– Domínio: Pessoa – Escopo: String
...
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Relações (object properties) relacionam indivíduos de certos domínios (domains) a indivíduos de certos
escopos (ranges).
– É importante especificar os domínios e escopos das relações
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Relações (object properties) importantes o domínio:
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
● Relações (object properties) importantes o domínio:
Tem filho, tem filha, tem irmão, tem irmão, tem pai, tem mãe, etc
É possível definir hierarquias de relações
● Algumas dessas relações podem ser generalizadas por outras mais gerais
• temFilho_G (hasChild)
• temIrmao_G (hasSibling)
• temGenitor (hasParent)
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
O Protégé permite enriquecer as definições de relações com características previstas pelo OWL
Oferece vantagens do ponto de vista da inferência.
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Relações
temFilho_G (hasChild)
Irreflexiva
Assimétrica
temIrmao_G (hasSibling)
Irreflexiva
Simétrica
temGenitor (hasParent)
Irreflexiva
Assimétrica
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
É possível definir as relações inversas para cada relação
Se sempre que a relação A(x,y), ocorre a relação B(y,x), então A e B são relações inversas.
Ex: As relações temFilho_G e temGenitor são inversas
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Todas as classes que criamos, tem apenas suas condições necessárias definidas: superclasses
Para um indivíduo ser um pai, é necessário que ele seja uma pessoa, mas não é suficiente
Classes
Primitivas
Definidas
É preciso identificar as classes primitivas e definir as demais
Em função de restrições que envolvem outras classes, relações e atributos
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Classes definidas
Homem?
Mulher?
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Classes definidas
Homem?
“Pessoa que tem sexo masculino”
Mulher?
“Pessoa que tem sexo feminino”
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Classes definidas
Genitor
Filho_G
Irmao_G
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Classes definidas
Genitor
“Pessoa que tem pelo menos um filho”
Filho_G
“Pessoa que tem pelo menos um genitor”
Irmao_G
“Pessoa que tem pelo menos um irmão”
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Classes definidas
Pai
“Genitor homem”
● Mãe
“Genitor mulher”
● O mesmo padrão pode ser usado para modelar:
● Filho, Filha, Irmão, Irmão, etc.
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
● Como permitir, dado um indivíduo, seja possível inferir que o pai do seu genitor (pai ou mãe) é o seu avô?
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Como permitir, dado um indivíduo, seja possível inferir que o pai do seu genitor (pai ou mãe) é o seu avô?
Podemos usar regras!
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Outros conceitos importantes:
Neto, neta, avô, avó, tio, tia, sobrinho, sobrinha, primo, prima, marido, esposa, etc.
Outras relações importantes:
Relações mantidas entre estes conceitos e os já modelados.
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Raciocinador (ou mecanismo de inferência)
Acessível através do menu “Reasoner”
Para que servem?
• Checagem de relações de sub-classe
• Checagem de relações de equivalência
● Entre indivíduos, classes, relações
• Checagem de consistência
• Checagem de instanciação
• Motor de regras
Estudo de caso:
Modelagem de uma ontologia de relações familiares no Protégé
Avaliar a ontologia
● Popular com instâncias modelando uma situação real do domínio
● A “árvore genealógica” inicialmente apresentada
● Executar o raciocinador
● Verificar o resultado