Representação de Conhecimento Redes Semânticas e Frames

Documentos relacionados
Representação de Conhecimento

Inteligência Artificial

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Sistemas de Representação e Raciocínio

Problemas de Satisfação de Restrições

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Profº. Enrique Pimentel Leite de Oliveira

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Orientação à Objetos. Aécio Costa

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

BANCO DE DADOS I AULA 3. Willamys Araújo

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

2 Diagrama de Caso de Uso

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Consideram-se os seguintes tipos de PABX s em que a forma de conexão de PABX com a central é exclusivamente mediante linhas analógicas:

Empresa de Informática e Informação do Município de Belo Horizonte S/A PRODABEL

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Arquitetura de Rede de Computadores

Semântica para Sharepoint. Busca semântica utilizando ontologias

Especificação do 3º Trabalho

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Guia de utilização da notação BPMN

Módulo 07 Características Avançadas de Classes

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

UML: Diagrama de Casos de Uso, Diagrama de Classes

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

Modelo Entidade-Relacionamento

ONTOLOGIA DE DOMÍNIO PARA ANÁLISE DE BLOGS

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Sistemas Operacionais

MC536 Bancos de Dados: Teoria e Prática

Conhecimento Incerto Redes de Crença

Java 2 Standard Edition Como criar classes e objetos

Revisão Inteligência Artificial ENADE. Prof a Fabiana Lorenzi Outubro/2011

Engenharia de Software III

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

Resolução de problemas e desenvolvimento de algoritmos

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Banco de Dados Aula 02. Colégio Estadual Padre Carmelo Perrone Profº: Willian

Disciplina de Banco de Dados Introdução

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro.

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Padrão Básico de Projeto: Interfaces e Polimorfismo

Orientação a Objetos

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Uma análise de ferramentas de modelagem e gerência de metadados aplicadas ao projeto de BI/DW-UFBA

Disciplina: Unidade III: Prof.: Período:

Polimorfismo. Prof. Leonardo Barreto Campos 1

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

FundamentosemInformática

Orientação a Objetos com Java

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Persistência e Banco de Dados em Jogos Digitais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Gestão da Informação e do Conhecimento

A Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I

PROJETO DE REDES

Ciclo de Desenvolvimento de Sistemas de BD

Programação Orientada a Objetos em Java. Herança

Protégé-OWL Tutorial. Adriano Melo André Chagas Fred Freitas. Sistemas Inteligentes

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Representação de Conhecimento

Curso Técnico em Redes

Protégé Desenvolvimento de contologias

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Aprendizagem de Máquina

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Desenvolvimento Web TCC Turma A-1 /

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Iniciação à Informática

Prof.: Clayton Maciel Costa

Relacionamentos entre classes

AULA 6 LÓGICA DOS CONJUNTOS

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Implementando uma Classe e Criando Objetos a partir dela

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

Diagrama de transição de Estados (DTE)

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Engenharia de Software

Teste de Software. Ricardo Argenton Ramos Engenharia de Software I

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Exercícios Práticos Assunto: Criação de slots e instâncias da ontologia com o Protegé.

Transcrição:

Representação de Conhecimento Redes Semânticas e Frames Profa. Josiane M. P. Ferreira e Prof. Sérgio R. P. da Silva David Poole, Alan Mackworth e Randy Goebel - Computational Intelligence A logical approach - cap. 5 Stuart Russel e Peter Norving - Inteligência Artificial - cap. 10 Patrick Henry Winston - Artificial Inteligence - cap. 2 e cap. 10 agosto/2008 1

Redes Semânticas Quando temos somente uma relação, podemos omiti-la sem qualquer perca de informação Assim podemos representar uma relação prop(obj, Att, Val) como um grafo onde Obj e Val são nós e Att é o rótulo do arco Estes grafos são chamados de Redes semânticas 2

Um exemplo de uma rede semântica Informações sobre um computador 3

Programa equivalente em lógica Informações sobre um computador 4

Redes Semânticas Histórico Redes Semânticas foram propostas em 1913 por Selz como uma explicação a fenômenos psicológicos Em 1966, Quillian implementou essas redes e mostrou como o conhecimento semântico poderia ser representado como relacionamento entre dois objetos Uma rede semântica é uma representação na qual: Existem nós que representam entidades e links (predicados) que representam relacionamentos entre essas entidades; Cada link conecta um nó origem até um nó destino; Normalmente, os nós e links denotam entidades de um domínio específico. 5

Redes Semânticas Mais um exemplo 6

Redes Semânticas Forma mais flexível e intuitiva de representar conhecimento Suportam herança de propriedades Relações entre classes e instâncias ako (a-kind-of): relações entre classes é-um (is-a): relações entre classes e instâncias Uma classe pertence a uma classe mais alta ou a uma categoria de objetos Relações todo-parte tem-um (has-a): identifica características ou atributos das entidades parte-de (part-of): identifica características ou atributos das entidades Relações diversas Variados: identifica características gerais 7

Relações em Redes Semânticas 8

Relações primitivas e derivadas Conhecimento primitivo: definido explicitamente pelos fatos Conhecimento derivado: definido pelas regras Permite uma representação mais compacta Permite que conclusões sejam tiradas das observações do domínio Importante porque não observamos tudo diretamente do domínio Muito do que sabemos do domínio é inferido pelas observações e pelo conhecimento mais geral 9

Relações primitivas e derivadas Ex: Ao invés de especificar que o computador comp_2347 tem como logo um lemon disc, podemos saber que todos os computadores da marca Lemon tem este logo Associar as propriedades com as classes e não com os indivíduos Permitir um atributo especial é_um entre um indivíduo e uma classe ou a_kind_of entre duas classes Permitindo herança de propriedades 10

Uma rede semântica estruturada ako ako 11

A lógica da herança de propriedade Uma arco p de uma classe c significa que todo indivíduo na classe tem valor n para o atributo p prop(obj, p, n) <-- prop(obj, é_um, c). Exemplo: 12

Herança múltipla Um indivíduo normalmente é membro de mais de uma classe Ex: a mesma pessoa pode ser uma mãe, uma professora, uma árbitra de futebol... Um indivíduo pode herdar propriedades de todas as classes herança múltipla Se existem valores default para as propriedades Podemos ter um problema quando um indivíduo herda valores default conflitantes de classes diferentes: problema da herança múltipla 13

Escolhendo entre relações primitivas e derivadas Associar um valor de um atributo com a classe mais geral que contém o valor Não associe propriedades contingentes de uma classe com a classe Ex: Pode ser que todos os computadores de uma empresa sejam de uma determinada marca, com gabinete preto. Não é uma boa idéia associar a cor preta a todos os computadores Podem ser comprados computadores de outras marcas com cores diferentes Axiomatize na direção causal. Queremos conhecimento que seja estável com as mudanças do mundo. a ^ b, a b ou b a? 14

Sistemas de Redes Semânticas Base de conhecimento Formada por nós e links da rede Máquina de inferência Faz busca e casamento de padrões A busca se dá para frente e para trás através dos links A busca pode ser usada de várias maneiras para se extrair informações Como uma ferramenta explicativa Para explorar exaustivamente um tópico Para encontrar o relacionamento entre dois objetos 15

Redes Semânticas Exemplo de busca 16

Busca como ferramenta explicativa Para provar a declaração Cães comem Pode-se supor que cães comem, e usar busca sobre a rede para provar a hipótese Buscando a partir do nó Cão, temos: Cão é um mamífero Mamífero é um animal Animal faz comer Isto é uma prova para Cães comem 17

Explorar exaustivamente um tópico Para derivar todo o conhecimento sobre cães, usa-se busca em largura a partir do nó cão Cães são mamíferos Cães tem pêlos Cães são animais Cães comem 18

Relacionar dois tópicos Para verificar se Cães e Pássaros estão relacionados, pode-se executar, a partir de ambos os nós, uma busca em largura A interseção entre os nós visitados nos dá o relacionamento entre os nós iniciais Isto é chamado ativação distribuída ou interseção de busca 19

Redes Semânticas Vantagens Representação visual fácil de entender Os humanos entendem os relacionamentos com facilidade sem necessariamente saber a sintaxe Ajuda os construtores da BC a estruturar seu conhecimento Flexibilidade na manipulação de nós e links Adição, exclusão e modificação Economia escrita e tempo Herança via relações é-um e ako Capta senso-comum Semelhante ao armazenamento de informações no cérebro 20

Redes Semânticas Limitações Busca em redes semânticas grandes pode ser muito ineficiente Não há homogeneidade na definição de nós e links Hereditariedade pode causar dificuldades no tratamento de exceções Pode haver conflito entre características herdadas É difícil representar conhecimento procedimental Sequenciamento e tempo não são explícitos 21

Frames Histórico Artigos publicados por Minsky (1974), Winston (1975) Haugeland (1981), Brachman e Levesque (1985) Características: Um frame é identificado por um nome e descreve um objeto complexo através de um conjunto de atributos. Agrupamos todos os pares atributos-valores das redes semânticas juntos em um simples objeto Um Sistema de Frames é um conjunto de frames organizados hierarquicamente São uma evolução das Redes Semânticas: Nós são substituídos por frames. Arcos são substituídos por atributos (slots) Procedimentos podem ser anexados a um frame. 22

Frames Slots (atributos) Frames: Possuem pelo menos dois atributos: Nome ako ou is-a A fim de melhorar a estruturação (hierarquia), privilegiam dois tipos de relações: ako: relação entre classe e sub-classe. is-a: relação entre classe e instância. Cada atributo: Aponta para um outro frame ou para um tipo primitivo, ex. string; Consiste em um conjunto de facetas (atributos de atributos). 23

Exemplo de um sistema com vários frames

Frames Um exemplo de um frame para um computador como uma lista de atributos e valores (fillers) Podemos definir uma template de um frame para cada tipo de indivíduo Especifica quais slots são necessários e quais são opcionais para um indivíduo daquele tipo Ajuda a construir a BC 25

Facetas (facets) Descrevem conhecimento ou algum procedimento relativo ao atributo Propriedades: Valor: especifica o único valor possível. Valor default: especifica o valor assumido pelo atributo caso não haja nenhuma informação a esse respeito. Tipo: indica o tipo de dado do valor. Domínio: descreve os valores possíveis para o atributo. Procedimentos - Demons Funcionam como os triggers nos bancos de dados.

Uma representação abstrata de um frame

Um Frame pode ter vários níveis É formado por um conjunto de slots, que representam atributos dos objetos Slots podem possuir várias facets, que trazem informações particulares de cada slot (atributo) Exemplo: faixa de valores possíveis para o slot, ou forma de calculá-los Uma facet pode possuir várias views, que representam diferentes contextos em que aquela facet pode ser avaliada Cada view possui um filler, ou seja o valor daquela view, para aquela facet, para aquele slot Podemos ter deamons (procedimentos) associados a slots Ex: se o valor de determinada facet é x, crie a facet y e z.

Exemplo: um Frame de vários níveis Nome_frame1 Nome_slot1 Nome_facet1 Nome_view1 filler:valor Nome_slot2 Nome_facet1 Nome_view1 filler:valor Nome_facet2 Nome_view1 Frame1[ slot1[ facet1[view1[valor]] ], slot2[ facet1[view1[valor]], facet2[view1[valor]] ] ] filler:valor

Uma visão gráfica de um frame de vários níveis computador é_um tipo filler:frame valor filler:máquina nome tipo filler:string tamanho filler:30 valor filler:cp2347

Um frame de vários níveis representado como listas em Prolog computador[ é_um[ tipo[ [ frame]], valor[ [ máquina]] ] nome[ tipo[ [ string]], tamanho[ [ 30]], valor[ [ cp2347]] ] ]

Procedimentos (Deamons) Definição: São procedimentos anexados aos frames, disparados por consultas ou atualizações. Podem inferir valores para atributos a partir de valores de outros atributos especificados anteriormente em qualquer frame do sistema. Procedimentos - Deamons: when-requested Quando o valor é pedido mas não existe ainda. when-read Quando valor é lido. when-written Quando valor é modificado.

Exemplo de Procedimentos (Deamons)

Herança de propriedades Três tipos de informações podem ser de herdadas. valor (= POO) procedimento (= POO) valor default Idéia: herdar das classes superiores. Em caso de conflito, vale a informação mais específica. Existem dois tipos de herança: Herança simples Existe uma única super-classe para cada classe Herança múltipla Uma classe pode ter mais de uma super-classe, podendo herdar propriedades ao longo de diversos caminhos diferentes

Sistemas de Frames Funções Reconhecer que uma dada situação pertence a uma certa categoria (matching --> subsunção e classificação). ex. reconhecimento visual de uma sala de aula Interpretar a situação e/ou prever o que surgirá em termos da categoria reconhecida (matching). ex. pessoa com revolver (revolver arma perigo) Capturar propriedades de senso comum sobre pessoas, eventos e ações. Foi a primeira tentativa de estruturar conhecimento declarativo sem usar regras. Deu origem ao que chamamos hoje de Ontologias!

Compartilhamento de conhecimento Se mais de uma pessoa está construindo a base de conhecimento, elas devem ser capazes de compartilhar a conceitualização. Uma conceitualização é um mapa do domínio de problema para uma representação. Uma conceitualização especifica: Que tipos de objetos estão sendo modelados O vocabulário para especificar objetos, relações e atributos O significado ou intenção das relações ou atributos Uma ontologia é uma especificação formal de uma conceitualização.

Web Semântica Ontologias são publicadas na web de forma legível para máquinas e são publicamente legíveis. Construtores de bases de conhecimento ou websites aderem e se referem a uma ontologia publicada: O mesmo símbolo significa a mesma coisa em vários websites que obedecem a ontologia. Se alguém quer se referir a algum outro objeto ou relação, a ontologia é expandida. A comunidade precisa concordar em uma nova terminologia.

Desafios para construir ontologias Elas pode ser muito grandes: achar uma terminologia apropriada para um conceito pode ser difícil. Como alguém divide o mundo pode depender da aplicação. Ontologias diferentes descrevem o mundo de diferentes formas. As pessoas podem fundamentalmente discordar sobre a estrutura apropriada. Bases de conhecimento diferentes podem usar ontologias diferentes.

Desafios para construir ontologias Para possibilitar que BC baseada em ontologias diferentes interoperem, deve haver um mapeamento entre as diferentes ontologias. É necessário que seja do interesse do usuário em usar a ontologia. O computador não pode entende o significado dos símbolos. O formalismo pode restringir o significado, mas não pode definilo.