Ontologias
José Carlos Ramalho
jcr@di.uminho.pt
Agenda
1. O que são?
2. No nosso contexto...
3. Como se definem, como se estruturam
4. Exemplos tradicionais
5. Quando a coisa se complica: especialização de relações, reificação
6. Exemplos do CLAV
O que são?
Aristóteles:
“A Ontologia é para Aristóteles a filosofia primeira e tem como seu principal objeto de pesquisa o ser enquanto tal,
ele propõe a ontologia como um projeto de ciência com pretensões de universalidade. O ser é tudo aquilo que
permanece com substância imutável, é tudo aquilo que fica indiferente às mudanças que ocorrem aos entes. Ente é tudo o
que é, é tudo o que existe e esse existir pode ser de diversos modos como são diversas as coisas que existem. Existem
10 categorias que classificam os entes através de suas diferenças: Substância, qualidade, quantidade, relação, ação,
tempo, lugar, posição, posse e paixão. Essas 10 categorias segundo Aristóteles permitem a completa classificação dos
entes e nenhuma delas está em todos eles.”
O que são?
No nosso contexto:
“Em Ciência da Computação, Sistemas de Informação e Ciência da Informação, uma ontologia é um modelo
de dados que representa um conjunto de conceitos dentro de um domínio e os relacionamentos entre estes.
Ontologias são utilizadas em inteligência artificial, web semântica, engenharia de software e arquitetura da
informação, como uma forma de representação de conhecimento sobre o mundo ou alguma parte deste.
Ontologias geralmente descrevem:
● Indivíduos: os objetos básicos;
● Classes: conjuntos, coleções ou tipos de objetos;
● Atributos: propriedades, características ou parâmetros que os objetos podem ter e compartilhar;
● Relacionamentos: as formas como os objetos podem se relacionar com outros objetos.”
A nossa definição
“Especificação formal de conhecimento de um determinado domínio.”
Especificação Formal
“As máquinas só
entendem modelos
matemáticos muito
simples...”
Voltando ao nosso Contexto...
Ontologia = lista de triplos
Triplo = (sujeito, predicado, objeto)
Exemplo:
O meu carro é verde. --> :meuCarro :temCor “verde”
Tudo é especificado em triplos simples...
:eu :temNome “José Carlos Ramalho” .
:eu :trabalha :um .
:um a :Universidade .
:um :temDesignacao “Universidade do Minho” .
:um :temEscola :eeng .
:eeng a :Escola .
:eeng :temDesignacao “Escola de Engenharia” .
Sujeitos: :eu, :um, :eeng;
Predicados: :temNome,
:trabalha, a, :temDesignacao,
temEscola;
Objetos: “José...”, :um,
:Universidade, “Universidade
do Minho”, :eeng, :Escola,
“Escola ...”
O que podemos modelar numa Ontologia?
Praticamente tudo!...
Qual a sua importância?
● Permitem-nos partilhar conhecimento duma forma clara e sem
ambiguidades entre pessoas e/ou máquinas;
● Permitem-nos reutilizar conhecimento de um determinado domínio;
● Permitem-nos tornar explícito o conhecimento de um determinado domínio;
● Permitem-nos separar o conhecimento do domínio do conhecimento
operacional;
● Ao especificá-las estamos a analisar o seu domínio.
Metodologia para especificação de Ontologias
1. Especificar o domínio:
a. Para que é que vamos usá-la?
b. A que perguntas deve dar resposta?
c. Quem vai usá-la e mantê-la?
2. Considerar a utilização de ontologias já existentes;
3. Enumerar os termos mais importantes do domínio;
4. Definir as classes e a sua hierarquia;
5. Definir os atributos de cada classe;
6. Definir restrições sobre os atributos: vocabulários controlados;
7. Definir as relações que se podem estabelecer entre indivíduos;
8. Definir os Indivíduos.
Exemplo: CLAV- Classificação e Avaliação
da Informação Pública
1. Especificar o domínio da CLAV
● Processos da Administração Pública Portuguesa;
● Entidades da Administração Pública Portuguesa;
● Diplomas legislativos;
● Tipologias de Entidades;
● Termos de Índice;
● Prazos de Conservação Administrativa;
● Destinos Finais;
● Critérios...
● Relações entre processos, entidades, diplomas, prazos e destinos;
● Restrições/invariantes;
● etc.
2. Considerar Ontologias existentes
Especificação de Vocabulários
Controlados: Forma de Contagem do
PCA, Tipo de Participação, etc...
Necessário para criar pontes com a
Linked Open Data (LOD).
4. Definir as Classes
5. Definir os atributos de cada classe
8. Definir os Indivíduos: c300.10.005
8. Definir os Indivíduos: c300.10.005
8. Definir os Indivíduos: c300.10.005
Quando as coisas se complicam...
Exemplo:
1. Na Lista Consolidada os processos da AP estão relacionados com entidades.
2. A relação pode ser “dono” ou “participante”.
3. No caso de ser “participante” há um tipo de participação associado.
:c400.10.025 :temParticipante :ent_SEF
:c400.10.025 :título “Aquisição de nacionalidade”
Como associar ao triplo o tipo de participação?
Solução 1: especialização da relação
:c400.10.025 :temParticipanteApreciador :ent_SEF
Pode ser usada quando:
● Temos apenas um atributo adicional para a relação;
● Quando o domínio deste atributo é pequeno.
Neste caso:
TipoParticipação = [“Apreciar”, “Assessorar”, “Comunicar”, “Decidir”, “Executar”, “Iniciar”]
c400.10.025
ent_SEF
temParticipanteApreciador
Solução 2: Reificação, abstraindo a relação
:Participação a owl:Class .
:part_sef_c400.10.025 a :Participação .
:part_sef_c400.10.025 :entidade :ent_SEF .
:part_sef_c400.10.025 :processo :c400.10.025 .
:part_sef_c400.10.025 :tipo “Apreciar” .
:part_sef_c400.10.025 :posso_acrescentar_mais_props ...
Solução 2: Reificação, abstraindo a relação
:Participação a owl:Class .
:part_sef_c400.10.025 a :Participação .
:part_sef_c400.10.025 :entidade :ent_SEF .
:part_sef_c400.10.025 :processo :c400.10.025 .
:part_sef_c400.10.025 :tipo “Apreciar” .
part_sef_c400.10.025
Participação
ent_SEF c400.10.025
Apreciar
entidade
processo
tipo
Com triplos construimos teias para modelar tudo...
Classes
Relações
Propriedades
(centenas)
Indivíduos
(centenas de milhar…)
Estrutura
População
Questões?
Demonstração mais tarde...
Offline: jcr@di.uminho.pt

Ontologias

  • 1.
  • 2.
    Agenda 1. O quesão? 2. No nosso contexto... 3. Como se definem, como se estruturam 4. Exemplos tradicionais 5. Quando a coisa se complica: especialização de relações, reificação 6. Exemplos do CLAV
  • 3.
    O que são? Aristóteles: “AOntologia é para Aristóteles a filosofia primeira e tem como seu principal objeto de pesquisa o ser enquanto tal, ele propõe a ontologia como um projeto de ciência com pretensões de universalidade. O ser é tudo aquilo que permanece com substância imutável, é tudo aquilo que fica indiferente às mudanças que ocorrem aos entes. Ente é tudo o que é, é tudo o que existe e esse existir pode ser de diversos modos como são diversas as coisas que existem. Existem 10 categorias que classificam os entes através de suas diferenças: Substância, qualidade, quantidade, relação, ação, tempo, lugar, posição, posse e paixão. Essas 10 categorias segundo Aristóteles permitem a completa classificação dos entes e nenhuma delas está em todos eles.”
  • 4.
    O que são? Nonosso contexto: “Em Ciência da Computação, Sistemas de Informação e Ciência da Informação, uma ontologia é um modelo de dados que representa um conjunto de conceitos dentro de um domínio e os relacionamentos entre estes. Ontologias são utilizadas em inteligência artificial, web semântica, engenharia de software e arquitetura da informação, como uma forma de representação de conhecimento sobre o mundo ou alguma parte deste. Ontologias geralmente descrevem: ● Indivíduos: os objetos básicos; ● Classes: conjuntos, coleções ou tipos de objetos; ● Atributos: propriedades, características ou parâmetros que os objetos podem ter e compartilhar; ● Relacionamentos: as formas como os objetos podem se relacionar com outros objetos.”
  • 5.
    A nossa definição “Especificaçãoformal de conhecimento de um determinado domínio.”
  • 6.
    Especificação Formal “As máquinassó entendem modelos matemáticos muito simples...”
  • 7.
    Voltando ao nossoContexto... Ontologia = lista de triplos Triplo = (sujeito, predicado, objeto) Exemplo: O meu carro é verde. --> :meuCarro :temCor “verde”
  • 8.
    Tudo é especificadoem triplos simples... :eu :temNome “José Carlos Ramalho” . :eu :trabalha :um . :um a :Universidade . :um :temDesignacao “Universidade do Minho” . :um :temEscola :eeng . :eeng a :Escola . :eeng :temDesignacao “Escola de Engenharia” . Sujeitos: :eu, :um, :eeng; Predicados: :temNome, :trabalha, a, :temDesignacao, temEscola; Objetos: “José...”, :um, :Universidade, “Universidade do Minho”, :eeng, :Escola, “Escola ...”
  • 9.
    O que podemosmodelar numa Ontologia? Praticamente tudo!...
  • 10.
    Qual a suaimportância? ● Permitem-nos partilhar conhecimento duma forma clara e sem ambiguidades entre pessoas e/ou máquinas; ● Permitem-nos reutilizar conhecimento de um determinado domínio; ● Permitem-nos tornar explícito o conhecimento de um determinado domínio; ● Permitem-nos separar o conhecimento do domínio do conhecimento operacional; ● Ao especificá-las estamos a analisar o seu domínio.
  • 11.
    Metodologia para especificaçãode Ontologias 1. Especificar o domínio: a. Para que é que vamos usá-la? b. A que perguntas deve dar resposta? c. Quem vai usá-la e mantê-la? 2. Considerar a utilização de ontologias já existentes; 3. Enumerar os termos mais importantes do domínio; 4. Definir as classes e a sua hierarquia; 5. Definir os atributos de cada classe; 6. Definir restrições sobre os atributos: vocabulários controlados; 7. Definir as relações que se podem estabelecer entre indivíduos; 8. Definir os Indivíduos.
  • 12.
    Exemplo: CLAV- Classificaçãoe Avaliação da Informação Pública
  • 13.
    1. Especificar odomínio da CLAV ● Processos da Administração Pública Portuguesa; ● Entidades da Administração Pública Portuguesa; ● Diplomas legislativos; ● Tipologias de Entidades; ● Termos de Índice; ● Prazos de Conservação Administrativa; ● Destinos Finais; ● Critérios... ● Relações entre processos, entidades, diplomas, prazos e destinos; ● Restrições/invariantes; ● etc.
  • 14.
    2. Considerar Ontologiasexistentes Especificação de Vocabulários Controlados: Forma de Contagem do PCA, Tipo de Participação, etc... Necessário para criar pontes com a Linked Open Data (LOD).
  • 15.
  • 16.
    5. Definir osatributos de cada classe
  • 17.
    8. Definir osIndivíduos: c300.10.005
  • 18.
    8. Definir osIndivíduos: c300.10.005
  • 19.
    8. Definir osIndivíduos: c300.10.005
  • 20.
    Quando as coisasse complicam... Exemplo: 1. Na Lista Consolidada os processos da AP estão relacionados com entidades. 2. A relação pode ser “dono” ou “participante”. 3. No caso de ser “participante” há um tipo de participação associado. :c400.10.025 :temParticipante :ent_SEF :c400.10.025 :título “Aquisição de nacionalidade” Como associar ao triplo o tipo de participação?
  • 21.
    Solução 1: especializaçãoda relação :c400.10.025 :temParticipanteApreciador :ent_SEF Pode ser usada quando: ● Temos apenas um atributo adicional para a relação; ● Quando o domínio deste atributo é pequeno. Neste caso: TipoParticipação = [“Apreciar”, “Assessorar”, “Comunicar”, “Decidir”, “Executar”, “Iniciar”] c400.10.025 ent_SEF temParticipanteApreciador
  • 22.
    Solução 2: Reificação,abstraindo a relação :Participação a owl:Class . :part_sef_c400.10.025 a :Participação . :part_sef_c400.10.025 :entidade :ent_SEF . :part_sef_c400.10.025 :processo :c400.10.025 . :part_sef_c400.10.025 :tipo “Apreciar” . :part_sef_c400.10.025 :posso_acrescentar_mais_props ...
  • 23.
    Solução 2: Reificação,abstraindo a relação :Participação a owl:Class . :part_sef_c400.10.025 a :Participação . :part_sef_c400.10.025 :entidade :ent_SEF . :part_sef_c400.10.025 :processo :c400.10.025 . :part_sef_c400.10.025 :tipo “Apreciar” . part_sef_c400.10.025 Participação ent_SEF c400.10.025 Apreciar entidade processo tipo
  • 24.
    Com triplos construimosteias para modelar tudo...
  • 25.
  • 26.