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:
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
Quais os principais conceitos do domínio das relações familiares?
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
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.
Outros conceitos importantes... Pai, mãe, filho, filha, irmão, irmã, etc
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
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
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
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
Relações (object properties) importantes o domínio:
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)
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.
Relações temfilho_g (haschild) Irreflexiva Assimétrica temirmao_g (hassibling) Irreflexiva Simétrica temgenitor (hasparent) Irreflexiva Assimétrica
É 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
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
Classes definidas Homem? Mulher?
Classes definidas Homem? Pessoa que tem sexo masculino Mulher? Pessoa que tem sexo feminino
Classes definidas Genitor Filho_G Irmao_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
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.
Como permitir, dado um indivíduo, seja possível inferir que o pai do seu genitor (pai ou mãe) é o seu avô?
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!
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.
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
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