Sistemas Inteligentes
Aula: Engenharia de Conhecimento e Ontologias
1
Plano da aula
Engenharia de Conhecimento


Conceitos básicos
Etapas
Ontologias




Elementos de uma ontologia
Tipos de Ontologias
Usos das Ontologias
Como projetar/desenvolver uma ontologia
2
Sistemas Baseados em Conhecimento
SBCs são sistemas que usam


conhecimento de domínios específicos
representado explicitamente
 Base de conhecimento!

para resolver problemas complexos
São sistemas capazes de...




Questionar o usuário
Raciocinar com base no conhecimento disponível
Explicar seu raciocínio ao usuário
“Lidar” com seus erros
3
A Grande Escolha
Aprendizagem de máquina


Se existe conhecimento em extensão (exemplos) disponível, é
mais rápido e simples “aprender”
Várias técnicas
 Redes neurais, Aprendizagem simbólica,...
Engenharia do Conhecimento


Se o conhecimento pode ser facilmente explicitado através de
regras declarativas, ou
Quando não se tem escolha
 i.e., não há exemplos disponíveis

Mais trabalhoso, embora muito preciso e extensível
4
Engenharia do Conhecimento - EC
5
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?
6
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
7
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
8
Desenvolvimento de SBCs
9
Etapas do desenvolvimento de SBCs
1. 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
10
Etapas do desenvolvimento de SBCs
2. 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 com
Objetivo: verificação de consistência
11
Etapas do desenvolvimento de SBCs
3. Implementação da BC



Uso (ou criação) de um sistema (máquina de inferência)
capaz de ler a BC e realizar dedução usando linguagens
de programação
Implementação da Interface
Teste de protótipo
4. Validação e Refinamento


Validação
Refinamento
12
Etapas do desenvolvimento de SBCs
exemplos
Conhecimento em linguagem natural

A ponte Princesa Isabel liga a Rua da Imperatriz à
Rua Nova
Formalização em LPO

liga(Ponte-PI,RI,RN)
Implementação

estruturas de dados representando as sentenças do
nível formal
 e.g., listas, tabelas, objetos, etc.
13
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
Etapas de desenvolvimento de SBCs
Veremos a seguir


Aquisição do conhecimento
Formalização do conhecimento
 Ontologias

Nível “semi”-formal
15
Aquisição do Conhecimento
O gargalo na construção dos SBCs
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 (regras)
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?
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
Tracking methods

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
Quando usar?

identificação inicial do conhecimento: brainstorming,
entrevistas não estruturadas
23
Métodos de Aquisição Semi-automática
Baseado em ferramentas de ajuda ao especialista e ao
engenheiro de conhecimento

Repertory grid analysis
especialista
Ferramentas interativas
de entrevista
Base de
conhecimento
Engenheiro de conhecimento
24
Métodos de Aquisição Automática
Aprendizado de máquina

Machine learning
Casos e exemplos
Indução automática
Regras
25
Formalização do conhecimento
Ontologias
26
Conhecimento
Há diferentes “tipos” de conhecimento

Que devem ser representados separadamente!
 Conhecimento geral, conhecimento do domínio, ...

Qual a forma de representação adequada?
 Ontologias, bases de regras,...

Como formalizar os diferentes “conhecimentos”?
Há diferentes tipos de especialistas e de expertise e
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
28
Dificuldades com Reuso
Utilização de formalismos diferentes dificulta o
reuso

Falta de interoperabilidade entre formalismos
Contudo, formalismos 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
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
30
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
31
Ontologias
Exemplo: publicações e eventos científicos
32
Relacionamentos na Ontologia sobre
pesquisa científica
33
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
34
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
Afinal, pra que servem as ontologias?
Servir como vocabulário compartilhado numa
comunicação entre sistemas inteligentes
Codificar conhecimento interoperável


entre linguagens (Prolog, Jess)
entre formalismos de representação de
conhecimento (frames, redes semânticas)
36
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...
Elementos de uma Ontologia
38
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
Conjunto de Conceitos
Entidades


Cada entidade tem um nome associado
Cada entidade é definida por conjunto de pares
atributo-valor
 E.g., Automóvel (tem-motor=sim; num-rodas=4)
Conjunto de Conceitos
Relações

Podem ser hierárquicas ou não
 E.g., is-a, part-of, mae-de, etc...

Triciclo is-a Ciclo
Conjunto de Conceitos
Instâncias de Conceitos

Definição de entidades e relações específicas
(indivíduos)
 E.g., meu-triciclo (num-rodas=3, cor=rosa)


Relação: meu-triciclo is-a triciclo
Correspondem aos fatos de uma base de
conhecimento
Restrições
Impõem restrições sobre valores possíveis dos
atributos dos conceitos

E.g., num-rodas
 Valor numérico, entre 2 e 4.
Regras
Permitem inferência automática (dedução) de
instâncias de conceitos a partir de outras
instâncias

E.g., Se veículoTipo=ciclo
E num-rodas=3
E motor=não
Então veículo=Triciclo
Correspondem às regras da base de
conhecimento
Tipos de Ontologias
Ontologias de topo (upper ontologies)
Ontologias centrais ou genéricas de domínio
(core ontologies)
Ontologias de Aplicação (específicas)
45
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.

Ex.: “todas as árvores são plantas”
Exemplos de upper ontologies padrão são:

Dublin Core, GFO, OpenCyc/ResearchCyc, SUMO e
DOLCE.
46
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
47
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...
48
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
49
Como projetar uma ontologia
Exemplos retirados do tutorial - Ontology
Development 101: A Guide to Creating
Your First Ontology (Noy and McGuinness)
50
Mas, como projetar a minha ontologia?
Processo iterativo
Não existe uma única maneira correta de modelar um
domínio

depende da aplicação
Sugestão:

Sempre discutir a estrutura com o especialista
Classes = nomes-substantivos

devem estar próximos ao conceito de um objeto físico
ou lógico
Relações = verbos
Desenvolvimento de Ontologias
[Noy &McGuiness 2001]
1.
2.
3.
4.
5.
6.
7.
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
Criação de instâncias
Determinar o Domínio e o Escopo da
Ontologia
Qual o domínio que será coberto ?

Representação de vinhos e comidas
Onde a ontologia será utilizada ?

Sugerir boas combinações de vinhos e comidas
Determinar o Domínio e o Escopo da
Ontologia
A ontologia deverá dar suporte para responder a
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...
Reutilizar Ontologias Existentes
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?


Repositórios: TONES, DAML,...
Linguagens para representação de ontologias:
RDF, OWL,....
Levantar termos importantes
Quais são os termos que serão abordados na
ontologia ?
Quais propriedades esses termos possuem ?
Enumerar todos esses termos:






Vinho;
Tipo de Uva
Fabricante
Região de origem
Coloração (branco, tinto, rosé)
Tipo de comidas (peixes, grelhados, massas)
Definir classes e sua hierarquia
Abordagem “Top-Down”,
“Bottom-up” ou combinadas.
Termos do passo 03,
selecionar somente
aqueles que
representam objetos.
Desconsiderar propriedades
Esboçar hierarquia
Classes disjuntas
(Vinho Branco, Tinto, Rosé)
Definir classes e sua hierarquia
Como detectar erros na hierarquia de classes:



Relação “is-a” (se A é subclasse de B, então uma
instância de A também será uma instância de B)
Verificar inclusão de 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)
Definir classes e sua hierarquia
Como detectar erros na hierarquia de classes
(cont.):



Distinguir entre classes e seu nomes (sinônimos
representam a mesma classe)
Ciclos (A subclasse de B e B subclasse de A)
Classes irmãs devem estar no mesmo nível (Chardonay
e Vinhos Brancos não devem estar no mesmo nível,
pois não são irmãs)
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
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
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
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
Definir as restrições das propriedades
Tipo da propriedade

String, número, boleano,
instancias, etc...
Domínio

classes em que a
propriedade está
presente
Valores permitidos

classes permitidas
na propriedade
Cardinalidade
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
Cuidado com os nomes...
Evitar erros e confusões
Maiúsculas ou Minúsculas ?


Classes (maiúsculas)
Propriedades (minúsculas)
Plural ou singular ?
Padronizar prefixos e sufixos

“has-” (has-maker) e “-of” (producer-of)
Evitar abreviações
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 e formalismos
66
Ferramentas
Editor de Ontologias Protege

Próxima aula
67
Download

ontologias-2010 - Centro de Informática da UFPE