Sistemas Inteligentes
Aula: Conhecimento e Ontologias – Uma breve introdução
Fred Freitas, Patrícia Tedesco e Flávia Barros
1
Ao Final desta Aula a gente deve....
Entender o que é uma ontologia e seus
componentes
 Distinguir os vários Tipos de Ontologias
 Conhecer alguns usos das Ontologias
 Entender como projetar/desenvolver uma
ontologia

2
Um pouco sobre Engenharia do Conhecimento
ANTES DE COMEÇAR...
3
Um Pouco de História...

No início, a IA estava preocupada em desenvolver
◦ Formalismos para representar conhecimento
◦ Mecanismos de Inferência
◦ Formas de operacionalizar os SBCs

Mas...
◦ Como garantir a escalabilidade desses sistemas?
4
Engenharia do Conhecimento - EC
 Área de pesquisa preocupada com
◦ desenvolver Métodos, Linguagens e Ferramentas
◦ adequados para o desenvolvimento de sistemas BC

Foco principal:
◦ como adquirir e analisar conhecimento
◦ como validar e manter uma Base de Conhecimento

Construção da Base de Conhecimento
◦ Processo de acumular, transferir e transformar alguma fonte
de conhecimento para um computador
5
EC - Uma Área Multidisciplinar!
6
EC - Definições

Engenheiro de conhecimento
◦ Guia a aquisição, a criação da representação do conhecimento
especializado, a implementação e o refinamento do SBC

Expertise
◦ conhecimento especializado adquirido por longo treinamento,
leitura e experiência

Especialista (Expert )
◦ Quem possui conhecimento especializado , experiência e
métodos, e a habilidade de aplicá-los para dar “conselhos” e
resolver problemas
7
DESENVOLVIMENTO DE
SBCS
8
Etapas do desenvolvimento de SBCs
1. Planejamento do sistema
◦
◦
◦
Identificação do Domínio
Seleção da equipe
Seleção da ferramenta de desenvolvimento
2. Aquisição (elicitação) do conhecimento
◦
◦
Identificação do conhecimento a adquirir
Registro do conhecimento em linguagem natural ou usando
alguma notação gráfica
9
Etapas do desenvolvimento de SBCs
3. Formalização da BC
◦
Nível semi-formal via




◦
Notação textual estruturada padrão (XML)
Notação gráfica padrão (UML)
Ontologias
Objetivo: validação com especialista
Nível formal



Via linguagens formais (e.g., LPO)
Notação sem ambigüidade
Objetivo: verificação de consistência
10
Etapas do desenvolvimento de SBCs
4. Implementação da BC
◦
◦
◦
Criação de uma representação do conhecimento usando
linguagens de programação
Implementação da Interface
Teste de protótipo
5.Validação e Refinamento
◦
◦
Validação
Refinamento
11
Etapas do desenvolvimento de SBCs
exemplos

Conhecimento em linguagem natural
◦ A ponte Princesa Isabel liga a Rua da Imperatriz à Rua Nova

Formalização
◦ liga(Ponte-PI,RI,RN)

Implementação
◦ estruturas de dados representando as sentenças do nível
formal
 e.g., listas, tabelas, objetos, etc.
12
Etapas de desenvolvimento de SBCs
Nível de
Conhecimento
Nível Lógico
Nível de
Implementação
AQUISIÇÃO
FORMALIZAÇÃO
IMPLEMENTAÇÃO
REFINAMENTO
Linguagem natural
Linguagens de
representação do
conhecimento
Linguagens de
programação
BC
13
Etapas de desenvolvimento de SBCs

Veremos a seguir
◦ Aquisição do conhecimento
◦ Formalização do conhecimento
 Ontologias
 Nível “semi”-formal
◦ Construção da BC – aulas passadas
 Regras de produção, objetos com regras, Prolog...
14
O gargalo na construção dos SBCs
AQUISIÇÃO DO
CONHECIMENTO
15
Como adquirir conhecimento?
A grande escolha

Aprendizagem de máquina
◦ se existe conhecimento em extensão disponível, é mais rápido
e simples “aprender”
◦ várias técnicas
 Redes neurais, Aprendizagem simbólica, Algoritmos genéticos

Engenharia do Conhecimento
◦ se o conhecimento pode ser facilmente explicitado, ou não se
tem escolha
◦ mais trabalhoso, embora preciso
16
Aquisição do Conhecimento

Principais fases da aquisição
◦ Identificar características do problema
 Do domínio da aplicação
◦ Isolar e representar os conceitos principais e suas relações
 através de uma Ontologia, por exemplo
◦ Identificar inferências sobre estes conceitos

O conhecimento pode originar-se de várias fontes:
◦ especialistas, livros e documentos, filmes, etc.
17
Gargalo na Aquisição do Conhecimento
A maior parte do conhecimento está na cabeça dos
especialistas...
 Especialistas

◦ têm muito conhecimento empírico
 Difícil de ser capturado e representado formalmente
◦
◦
◦
◦
são “caros”
não sabem de tudo!
têm dificuldade de verbalizar sob pressão
usam vocabulário próprio (jargão)
18
Gargalo na Aquisição do Conhecimento

Dificuldade de introspecção
◦ O especialista quase nunca está ciente de como usa o
conhecimento que possui
 Pode não saber porque escolheu uma estratégia
◦ Algumas soluções são intuitivas ou “compiladas”

O conhecimento expresso pode ser incompleto
◦ O especialista pode não lembrar em detalhes qual o
conhecimento utilizado para resolver um problema
◦ O especialista pode pular pontos importantes
19
Gargalo na Aquisição de conhecimento

O conhecimento expresso pode ser incorreto ou
inconsistente
◦ Afinal, quem garante a qualidade da solução, já que ela é “coisa
de especialista”?

O conhecimento expresso pode ser irrelevante
◦ quantidades enormes de informações são coletadas, para serem
organizadas ou desprezadas...
◦ desafio:
 evitar informação irrelevante sem bloquear a descoberta de conceitos
importantes
20
Como minimizar o gargalo da Aquisição?


Automação!
Métodos de aquisição
◦ Três categorias
 Manual
 Semi-automático
 Automático
21
Método de Aquisição Manual

Entrevistas
◦ estruturadas ou não estruturadas

Métodos de “Rastreamento”
◦ análise de protocolos e observação
especialista
Engenheiro de
conhecimento
documentação
codificação
Base de
conhecimento
22
Aquisição Manual

Problemas:
◦
◦
◦
◦
Toma muito tempo
Requer a presença do especialista
Difícil de gerenciar
Existem conhecimentos de vários tipos
 teórico, procedural, etc.

Quando usar?
◦ identificação do conhecimento: brainstorming, entrevistas não
estruturadas
◦ especificação do conhecimento: self report
◦ refino do conhecimento: entrevista estruturada
23
Métodos de Aquisição Semi-automática

Baseado em ferramentas de
◦ Ajuda ao especialista
 grid repertory analysis
◦ Ajuda ao engenheiro de conhecimento
 Editores de texto, documentadores, etc.
especialista
Ferramentas interativas
de entrevista
Base de
conhecimento
Engenheiro de conhecimento
24
Métodos de Aquisição Automática

Aprendizado de máquina
Casos e exemplos
Indução automática
Regras
25
Formalização do conhecimento
Representação semi-formal = Ontologias
26
Conhecimento

Há diferentes “tipos” de conhecimento
◦ Que devem ser representados separadamente!
 Conhecimento ontológico, conhecimento do domínio, ...
◦ Qual a forma de representação adequada?
 Ontologias, Bases de conhecimento,...
◦ Como elicitar os diferentes “conhecimentos”?
Há diferentes tipos de especialistas e de expertise
 Há vários usos para conhecimentos semelhantes

◦ Reusabilidade é a chave!
27
Reuso de conhecimento

Reuso de conhecimento é imperativo:
◦ A Base de Conhecimento é a parte mais cara de um SBC
 O resto já está “semi-pronto”...

Necessidade de reuso em domínios com grande
número de conceitos e relações
◦ ex: Medicina

Observação:
◦ queremos reusar o conhecimento que já está representado usando
algum formalismo para representação do conhecimento
28
Dificuldades com Reuso
 Utilização de formalismos diferentes dificulta o reuso
◦ Falta de interoperabilidade entre formalismos, mesmo entre
os orientados a domínio

Contudo, formalismo diferentes apresentam certa
similaridade expressiva
◦ Como ter reuso no nível de conhecimento?
◦ Como abstrair formalismos?

Solução visando reuso no nível do conhecimento:
Ontologias!
29
Formalismos de Representação de Conhecimento

Objetivo:
◦ Prover teorias e sistemas para expressar e manipular conhecimento
declarativo
◦ de forma tratável e eficiente computacionalmente

Formalismos orientados a predicados
◦ regras e programação em lógica
 Foco no processo, funcionamento

Formalismos orientados a domínios
◦ Ontologias, sistemas de frames, redes semânticas...
 Classes, relações e restrições
 Facilitam a estruturação de conhecimento disponível sobre um domínio
de aplicação
30
Sistemas baseados em conhecimento
Principais sistemas de
raciocínio declarativos/dedutivos
lógica
regras
Provadores de teorema
objetos
híbridos
Sistemas Redes Semânticas
Sistemas Frames
Sistemas de Lógica descritiva
Sistemas OO, Ontologias
Programação em lógica
Sistemas de produção
Sistemas de manutenção da verdade
regras+objetos
lógica+objetos
lógica+objetos+funções
31
ALGUMAS DEFINIÇÕES...
32
Ontologias

Termo oriundo da filosofia
◦ Ramo da filosofia que lida com a natureza e organização da
realidade

Categorias de Aristóteles
◦ taxonomia para os objetos do mundo

Em Ciência da computação e Inteligência
artificial, ganha um senso mais prático
◦ Organização do conhecimento manipulável
33
Ontologias

Em CC e IA
◦ Corpo de conhecimento declarativo sobre um dado
domínio, assunto ou área de conhecimento

Na prática, são
◦ hierarquias de conceitos (classes)
◦ com suas relações, restrições, axiomas e terminologia
associada

Servem para estruturar e compartilhar o
conhecimento disponível sobre um dado domínio
34
Ontologias
Exemplo: publicações e eventos científicos
35
Relacionamentos na Ontologia sobre
pesquisa científica
36
Definições de Ontologia (cont.)

“Uma ontologia é uma especificação explícita e formal de uma
conceitualização compartilhada” [Studer et al 98]
◦ Especificação explícita: definições declarativas de conceitos, instâncias,
relações, restrições e axiomas
◦ Formal: declarativamente definida, sendo compreensível e manipulável
para agentes e sistemas
◦ Conceitualização: modelo abstrato de uma área de conhecimento ou de
um universo limitado de discurso
◦ Compartilhada: conhecimento consensual, seja uma terminologia
comum da área modelada, ou acordada entre os desenvolvedores dos
agentes que se comunicam
37
Afinal, pra que servem as ontologias?

Servem para estruturar e compartilhar o
conhecimento disponível sobre um dado
domínio:
◦ Para compartilhar conhecimento comum –
conceitos e vocabulário
 Entre pessoas
 Entre agentes de software
◦ Para permitir a reutilização do conhecimento
 Evitando a “reinvenção da roda”
 Introduzindo padrões que permitam a interoperabilidade
entre aplicações
38
Relembrando...
Etapas de desenvolvimento dos SBCs

Ontologias
◦ Materialização do nível de conhecimento em um sistema BC
◦ Muito útil na fase de Aquisição do conhecimento
39
Etapas de desenvolvimento de SBCs
Nível de
Conhecimento
Nível Lógico
Nível de
Implementação
AQUISIÇÃO
FORMALIZAÇÃO
IMPLEMENTAÇÃO
REFINAMENTO
Linguagem natural
Linguagens de
representação do
conhecimento
Linguagens de
programação
BC
40
ELEMENTOS DE UMA
ONTOLOGIA
41
Elementos de uma Ontologia

Conjunto de conceitos
◦ Entidades
◦ Relações (que podem ser hierárquicas ou não)
◦ Instâncias de Conceitos
Restrições
 Regras

42
Conjunto de Conceitos

Entidades
◦ Cada entidade é definida por conjunto de pares
atributo-valor
◦ Correspondem:
 às classes dos modelos orientado a objetos
 às entidades do modelo relacional
 aos termos do modelo lógico
43
Conjunto de Conceitos

Relações
◦ Podem ser hierárquicas ou não
◦ correspondem:
 às associações, agregações e atributos dos modelos OO
cujos valores são objetos
 às relações do modelo relacional
 aos predicados do modelo lógico
44
Conjunto de Conceitos

Instâncias de Conceitos
◦ Definição de entidades e relações específicas
(indivíduos)
◦ Correspondem:
 aos fatos de sistemas especialistas e programação em
lógica
 aos objetos dos modelos OO
 aos dados dos BD
45
Restrições
Sobre valores possíveis dos atributos dos
conceitos
 Correspondem:

◦ às assinaturas de classes em modelos OO
◦ aos axiomas universalmente quantificados em
modelos lógicos
◦ às restrições de integridade nos esquema de BD
46
Regras
Sobre atributos de (conjuntos de) conceitos
 Permitem inferência automática da existência
de instâncias de conceitos a partir da
existência de outras instâncias
 Correspondem:

◦ às regras dos sistemas especialistas e programação
em lógica
◦ aos métodos dos modelos OO
◦ às visões em BD
47
Onde Aplicar Ontologias?
Recuperação de informações,
 Sistemas de Integração de Informação,
 Gestão de conhecimento,
 Processamento da linguagem natural,
 Comércio eletrônico,
 Sistemas multiagentes...

48
Um Exemplo: Integração de dados
49
Tipos de Ontologias
Ontologias de topo (upper ontologies)
Ontologias centrais ou genéricas de domínio (core
ontologies)
Ontologias de Aplicação (específicas)
50
Ontologias de topo (upper ontologies)
Modelos dos objetos comuns que são
geralmente aplicáveis a uma grande variedade
de ontologias de domínio.
 Tipicamente contém um glossário central que
permite descrever termos em vários
domínios.
 Exemplos de upper ontologies padrão são:
Dublin Core, GFO, OpenCyc/ResearchCyc,
SUMO e DOLCE.

51
Ontologias centrais ou genéricas de
domínio (core ontologies)
Definem os ramos de estudo de uma área
e/ou conceitos mais genéricos e abstratos
desta área
 Serve de base para a construção de
ontologias de ramos mais específicos de um
domínio

52
Ontologias centrais ou genéricas de
domínio (core ontologies)

Ex: a ontologia central de direito
◦ [Valente & Breuker 96]
◦ Conhecimentos meta-legal, definicional, causal,
normativo, de responsabilidade, reativos, criativo,
de agências legais, reação legal, comportamentos
permitidos, etc
◦ Servirá para criar ontologias de direito tributário,
de família e outras...
53
Ontologias de Aplicação
Ontologias de ramos mais específicos de um
domínio
 Procuram solucionar um problema específico
de um domínio

◦ Utilizam termos de uma ontologia de domínio
◦ Ex: Ontologia para identificar doenças do coração,
a partir de uma ontologia de domínio de
cardiologia
54
Usos de ontologias
Realizar inferência
 Servir como vocabulário compartilhado numa
comunicação entre agentes inteligentes
 Codificar conhecimento interoperável

◦ entre linguagens (F-logic, Prolog, Jess)
◦ entre formalismos de representação de
conhecimento (frames, redes semânticas, lógica de
descrições)
55
COMO PROJETAR UMA
ONTOLOGIA
56
Mas, como projetar a minha ontologia?


Processo iterativo – SEMPRE!!
Não existe uma única maneira correta de modelar um
domínio
◦ depende da aplicação, e das extensões que você prevê

Sugestão:
◦ Sempre discutir a estrutura com o especialista, já que a
ontologia deve refletir um pedaço da realidade

Classes = nomes
◦ devem estar próximas ao conceito de um objeto físico ou
lógico

Relações = verbos
57
Desenvolvimento de Ontologias
[Noy &McGuiness 2001]
6.
Determinar o Domínio e o Escopo da Ontologia
Reutilizar Ontologias Existentes
Levantar termos importantes
Definir classes e sua hierarquia
Definir propriedades das classes
Restrições das Propriedades
7.
Criação de
1.
2.
3.
4.
5.
instâncias
58
1. Determinar o Domínio e o Escopo
da Ontologia

Qual o domínio que será coberto ?
◦ Representação de vinhos e comidas

Para quê a ontologia será utilizada ?
◦ Sugerir boas combinações de vinhos e comidas
59
1. Determinar o Domínio e o Escopo
da Ontologia

A ontologia deverá fornecer respostas para
que perguntas ?
◦ “Cabernet Sauvignon” é adequado com frutos do mar ?
◦ Qual a melhor opção para acompanhar carnes grelhadas ?
◦ Que características de um vinho devem ser analisadas para
associá-lo com determinados pratos.
◦ Etc...

Estas perguntas vão ajudar a gente a definir o
nível de detalhe da ontologia
60
1. Determinar o Domínio e o Escopo
da Ontologia

Quem irá utilizar e manter a ontologia ?
◦ Clientes de um restaurante
 Informações de preço deve ser utilizadas
◦ Leitores de revistas especializadas
 Informações de atacadistas, mais detalhes das uvas e
safras
◦ Clientes em lojas
 Via terminal? Então informações sobre termos
alternativos utilizados podem ser interessantes
61
2. Reutilizar Ontologias Existentes – se
possível!
Verificar se alguém já criou a ontologia
 É possível refinar ou estender ontologias
existentes
 Muitas fontes disponíveis na Internet – vamos
perguntar ao Google?

◦ Noy & McGuiness elencam várias bibliotecas
62
3. Levantar termos importantes



Quais são os termos que serão abordados na
ontologia ?
Quais propriedades esses termos possuem ?
Enumerar todos esses termos:
 Não se preocupe com sobreposição, relações... Neste
momento!
◦
◦
◦
◦
◦
◦
Vinho;
Tipo de Uva
Fabricante
Região de origem
Coloração (branco, tinto, rosé)
Tipo de comidas (peixes, grelhados, massas)
63
4. Definir classes e sua hierarquia
Abordagem “Top-Down”,
“Bottom-up” ou combinadas.
 Termos do passo 03,
selecionar somente
aqueles que
representam objetos.
 Desconsiderar propriedades
 Pode haver Herança múltipla
 Esboçar hierarquia
 Classes disjuntas
(Vinho Branco e Tinto)

64
4. Definir classes e sua hierarquia

Alguns cuidados com a hierarquia de classes:
◦ Lembrar sempre que hierarquias são Relações “is-a” (se A
é subclasse de B, então uma instância de A também será
uma instância de B)
◦ Incluir classes singulares e coletivas (“vinho” como
subclasse de “vinhos”)
◦ Transitividade (A subclasse de B e B subclasse de C, então
A subclasse de C)
65
4. Definir classes e sua hierarquia

Mais cuidados com a hierarquia de classes:
◦ Distinguir entre classes e seu nomes (sinônimos
representam a mesma classe)
◦ Evitar ciclos (A subclasse de B e B subclasse de A)
◦ Classes irmãs devem estar no mesmo nível (Chardonnay e
Vinhos Brancos não devem estar no mesmo nível, pois não
são irmãs)
66
Definir classes e sua hierarquia

Como detectar erros na hierarquia de classes (cont.):
◦ Classes com somente uma
subclasse pode ser um problema
◦ Classes com muitas
subclasses também
67
4. Definir classes e sua hierarquia




Quando introduzir uma nova classe ?
◦ Propriedades diferentes
◦ Restrições diferentes
◦ Participa em relações diferentes
Nova classe ou nova propriedade ?
◦ i.e. Tipo de Vinho
◦ Se tem novas relações, representa outros objetos – nova
classe
Instância ou classe ?
◦ Depende da aplicação
◦ Tipo de vinho (“Sterling Vineyards Merlot”) pode ser
instância ou classe.
Qual o escopo ?
◦ Não especializar além do que sua aplicação precisa
68
5. Definir as propriedades das classes –
também conhecidas por “slots”



A partir da lista de termos do passo 03, selecionar aqueles que
representam propriedades.
Propriedades (intrínsecas, extrínsecas, partes e relações com
outros indivíduos)
Propriedades são adicionadas à classe mais genérica
◦ As subclasses herdam as propriedades!
69
6. Definir as restrições das propriedades





Tipo da propriedade (String, número, boleano, instâncias, etc...)
Valores permitidos
Cardinalidade
Range (classes permitidas
na propriedade)
Domínio (classes em
que a propriedade está
presente)
70
7. Ufaaaa... Só falta agora criar as
instâncias!
É necessário

◦
◦
escolher uma classe, criar uma instância e preencher
os valores das propriedades
Base de Conhecimento
71
Cuidado com os nomes...
Evitar erros e confusões
Maiúsculas ou Minúsculas ?


◦ Classes (maiúsculas)
◦ Propriedades (minúsculas)
Plural ou singular ?

◦

Geralmente classes são singular
Padronizar prefixos e sufixos
◦ “has-” (has-maker) e “-of” (producer-of)

Evitar abreviações
72
Usos e Benefícios das Ontologias
Incorporação de conhecimento é facilitada,
inclusive de linguagem natural
 Permitir reuso massivo de conhecimento (de
representações) entre formalismos de
representação diferentes
 Codificar conhecimento interoperável

◦ entre linguagens (F-logic, Prolog, Jess)
◦ entre formalismos de representação de
conhecimento (frames, redes semânticas, lógica de
descrições)
73
Próximas aulas
Drools e
 Ferramenta Protégé
 Lab G5

74
Download

Seminário sobre - Centro de Informática da UFPE