Introdução aos Agentes Inteligentes
Aula: Ontologias – Uma breve introdução
Aula original de Fred Freitas e Patrícia Tedesco
Revisada por Flávia Barros
1
Plano da aula
Conceitos básicos - Definições
Elementos de uma ontologia
Tipos de Ontologias
Usos das Ontologias
Como projetar/desenvolver uma ontologia
2
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, sistemasframes, redes semânticas...
 Classes, relações e restrições
 Facilitam a estruturação de conhecimento disponível sobre um
domínio de aplicação
3
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
4
Algumas definições...
5
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
6
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
7
Ontologias
Exemplo: publicações e eventos científicos
8
Relacionamentos na Ontologia sobre
pesquisa científica
9
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
10
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
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...
Um Exemplo: Integração de dados
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
14
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
Elementos de uma Ontologia
16
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)

Correspondem aos termos no modelo lógico
 Constantes e variáveis
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
Correspondem aos predicados do modelo lógico
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 no modelo lógico
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.

Correspondem aos axiomas universalmente
quantificados nos modelos lógicos
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 do modelo lógico

Sistemas baseados em regras de produção e
programação em lógica
Tipos de Ontologias
Ontologias de topo (upper ontologies)
Ontologias centrais ou genéricas de domínio
(core ontologies)
Ontologias de Aplicação (específicas)
23
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.
24
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
25
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...
26
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
27
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)
28
Como projetar uma ontologia
29
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á 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...
Determinar o Domínio e o Escopo da
Ontologia
Quem irá utilizar e manter a ontologia ?



Clientes de um restaurante
Leitores de revistas especializadas
Clientes em lojas
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?
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
Herança múltipla
Esboçar hierarquia
Classes disjuntas
(Vinho Branco e Tinto)
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)
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)
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...
Valores permitidos
Cardinalidade
Range

classes permitidas
na propriedade
Domínio

classes em que a
propriedade está
presente
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 (F-logic, Prolog, Jess)
entre formalismos de representação de
conhecimento (frames, redes semânticas, lógica de
descrições)
46
Próxima aula
Agentes baseados em Lógica
47
Download

Ontologias - Centro de Informática da UFPE