Agentes Cognitivos Adaptativos
Aula: Ontologias – Uma breve introdução
Aula original de Fred Freitas e Patrícia TedescoRevisada por Flávia Barros
1
2
Plano da aula
Conceitos básicos - DefiniçõesElementos de uma ontologiaTipos de OntologiasUsos das OntologiasComo projetar/desenvolver uma ontologia
3
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
4
Sistemas baseados em conhecimento
Principais sistemas de raciocínio declarativos/dedutivos
regraslógica objetos híbridos
Programação em lógicaSistemas de produção
Sistemas de manutenção da verdade
Provadores de teoremaSistemas Redes Semânticas
Sistemas FramesSistemas de Lógica descritiva
Sistemas OO, Ontologias
regras+objetoslógica+objetos
lógica+objetos+funções
Algumas definições...
5
6
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
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
10
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
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
12
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
Etapas de desenvolvimento de SBCs
Linguagens de representação doconhecimento
Nível de Conhecimento
Nível Lógico
Nível de Implementação
BC
AQUISIÇÃO
FORMALIZAÇÃO
IMPLEMENTAÇÃO
REFINAMENTO
Linguagem natural
Linguagens de programação
Elementos de uma Ontologia
14
Elementos de uma Ontologia
Conjunto de conceitos Entidades Relações (que podem ser hierárquicas ou
não) Instâncias de Conceitos
RestriçõesRegras
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
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
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
Restrições
Sobre valores possíveis dos atributos dos conceitosCorrespondem: às assinaturas de classes em modelos OO aos axiomas universalmente quantificados
em modelos lógicos às restrições de integridade nos esquema de
BD
Regras
Sobre atributos de (conjuntos de) conceitosPermitem inferência automática da existência de instâncias de conceitos a partir da existência de outras instânciasCorrespondem: às regras dos sistemas especialistas e
programação em lógica aos métodos dos modelos OO às visões em BD
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
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 áreaServe 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ínioProcuram 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ênciaServir como vocabulário compartilhado numa comunicação entre agentes inteligentesCodificar 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 iterativoNã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 devem estar próximas ao conceito de um objeto
físico ou lógico
Relações = verbos
Desenvolvimento de Ontologias [Noy &McGuiness 2001]
1.Determinar o Domínio e o Escopo da Ontologia2.Reutilizar Ontologias Existentes3.Levantar termos importantes4.Definir classes e sua hierarquia5.Definir propriedades das classes6.Restrições das Propriedades
7.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 existentesMuitas 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 propriedadesHerança múltiplaEsboçar hierarquiaClasses 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 CardinalidadeRange (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õesMaiú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 diferentesCodificar 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
Ferramenta ProtégeLocal?? Algum laboratório a ser reservado...
47