Agentes Cognitivos Adaptativos Aula: Ontologias – Uma breve introdução Aula original de Fred Freitas e Patrícia Tedesco Revisada por Flávia Barros 1.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Inteligentes
Advertisements

Profa. Dra Maria Luiza de Almeida Campos
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Engenharia de Software
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
O Modelo E-R Definição: Características
Engenharia de Software
Engenharia de Dados Mini-Curso Introdução à Web Semântica
INTRODUÇÃO A INFORMÁTICA
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário.
Desenvolvimento de Ontologia 101
Técnicas de Representação de Conhecimento
Sistemas Baseados em Conhecimento
Agentes Baseados em Conhecimento
FACENS – Engenharia da Computação Inteligência Artificial
Revisões de Software Parte 1
Felipe Dias Maria Fernanda
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Alunos: Benedito Jr, Douglas Bertol, Robson Costa
Inteligência Artificial Aplicada a Controle e Automação (DAS 6607)
Linguagem de 1ª ordem da teoria de conjuntos
INF 1771 – Inteligência Artificial
Inteligência Artificial
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Princípios de Orientação à Objetos
Sistemas Inteligentes Ontologia e Protegé
Sistemas Inteligentes
Taxonomia Profa. Lillian Alvares,
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE.
Engenharia do Conhecimento
Metodologias para construção de SMA
Agentes Baseados em Regras de Produção
Projeto de Banco de Dados
Sistemas Especialistas
Técnicas e Projeto de Sistemas
Engenharia do Conhecimento
Classificação Profa. Lillian Alvares, Faculdade de Ciência da Informação, Universidade de Brasília.
Marcio de Carvalho Victorino
Sistemas Baseados em Conhecimento
Ontologias Profa. Lillian Alvares
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
SISTEMAS DISTRIBUIDOS Aula 4
GESTÃO DE PROJETOS DE MANUTENÇÃO
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
CIn- UFPE 1 Construindo Bases de Conhecimento Lógica de Primeira Ordem eficiente para representar conhecimento e para raciocinar porém, nada diz sobre.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Laboratório de Programação
Métodos Formais.
Generalização e herança Agregação e composição
Programação Lógica com Prolog
Integração de Ferramentas CASE
A Linguagem Formal de Especificação VDM-SL
IEEE Melhores Práticas para Descrições de Projeto de Software (DPS)
METHONTOLOGY Sandro Rautenberg
Tesauro, Taxonomia e Ontologia: uma evolução?
Introdução aos Agentes Inteligentes
20/04/2017 Orientação a Objetos 1 1.
Sistemas Baseados em Conhecimento Prof. Cláudio M. N. A. Pereira.
Projeto de Banco de Dados
Ontologias Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília.
Universidade Federal de Pernambuco Centro de Artes e Comunicação Departamento de Ciência da Informação Gestão da Informação Recomendações para o desenvolvimento.
Engenharia de Software Orientada a Objetos
Ontologias Aula 26/05/2015 PPGCI Prolegômenos ORGANIZAÇÃO E RECUPERAÇÃO DA INFORMAÇÃO CONCEITO FUNDAMENTAL - REPRESENTAÇÃO DA INFORMAÇÃO - COMO.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Transcrição da apresentação:

Agentes Cognitivos Adaptativos Aula: Ontologias – Uma breve introdução Aula original de Fred Freitas e Patrícia Tedesco Revisada por Flávia Barros 1

2 Plano da aula Conceitos básicos - Definições Elementos de uma ontologia Tipos de Ontologias Usos das Ontologias Como 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ógicaobjetoshíbridos Programação em lógica Sistemas de produção Sistemas de manutenção da verdade Provadores de teorema Sistemas Redes Semânticas Sistemas Frames Sistemas de Lógica descritiva Sistemas OO, Ontologias regras+objetos ló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 do conhecimento 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ções Regras

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 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

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

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. Dublin CoreGFOOpenCycResearchCycSUMODOLCE 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 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 Ontologia 2. Reutilizar Ontologias Existentes 3. Levantar termos importantes 4. Definir classes e sua hierarquia 5. Definir propriedades das classes 6. 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 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 Ferramenta Protége Local?? Algum laboratório a ser reservado... 47