Engenharia do Conhecimento

Slides:



Advertisements
Apresentações semelhantes
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Advertisements

Inteligência Artificial I
Introdução a Algoritmos
Amintas engenharia.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Engenharia de Software
Software Básico Silvio Fernandes
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
Inteligência Artificial Alex F. V. Machado. Tecnologia de Processamento da Informação que envolve processos de raciocínio, aprendizado e percepção. Winston.
Gerenciamento do escopo do projeto
INTRODUÇÃO A INFORMÁTICA
Resolução.
Árvores.
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Sistemas Baseados em Conhecimento
Metodologias Orientadas a Agentes
Professora: Aline Vasconcelos
Agentes Baseados em Conhecimento
Técnicas de Apoio ao Processo de Engenharia de Requisitos
INTRODUÇÃO À PROGRAMAÇÃO
FUNÇÃO MODULAR.
Introdução à Modelagem Conceitual 1. Conceitos Básicos
Agentes Cognitivos Adaptativos
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Gerenciamento do Escopo
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
DIAGRAMA DE COMPONENTES
Engenharia de Requisitos
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Inteligência Artificial
Sistemas Inteligentes
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Object Oriented Software Construction (MEYER, Bertrand)
Algoritmos Culturais.
Taxonomia Profa. Lillian Alvares,
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Análise e Projeto de Sistemas
Engenharia do Conhecimento Ernesto Trajano Jacques Robin CIn-UFPE.
Introdução às Ontologias
Engenharia do Conhecimento
Engenharia do Conhecimento
Técnicas de Modelagem para Aplicações em Computação Gráfica
Projeto de Banco de Dados
ENGA78 – Síntese de Circuitos Digitais
Sistemas Especialistas
Engenharia do Conhecimento
Marcílio C. P. de Souto DIMAp/UFRN
Ontologias Profa. Lillian Alvares
Princípios de Análise e Projeto Orientados a Objetos com UML
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Agenda GERÊNCIA DE PROJETOS PMI – Project Management Institute
1 Sistemas Inteligentes Sistemas baseados em LPO Extrato de Aula resumida... Flávia Barros.
Sistemas Inteligentes Aula: Sistemas Baseados em Conhecimento 1.
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
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.
Laboratório de Programação
Desenvolvimento de Software Dirigido a Modelos
1 Engenharia do Conhecimento Patrícia Tedesco Revisada por Flávia Barros.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Ontologias e Restrições OCL Fábio Moura Franklin Ramalho Jacques Robin CIn-UFPE.
Introdução aos Agentes Inteligentes
Projeto de Banco de Dados
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Inteligência Artificial Nadilma C. V. N. Pereira Aula 5– Sistemas Especialistas.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Transcrição da apresentação:

Engenharia do Conhecimento Conceitos básicos Etapas de desenvolvimento de Sistemas Baseados em Conhecimento Aquisição de Conhecimento Exemplo de construção de base de conhecimento Ontologias e reuso de conhecimento Metodologias de aquisição de conhecimento e de construção de ontologias

Desenvolver software inteligente Projeto: Modelar tarefa em termos de ambiente, percepções, ações, objetivos e utilidade Identificar o tipo (complexidade) de ambiente Identificar a arquitetura de agente adequada ao ambiente e tarefa Implementação Escolher um formalismo de representação do conhecimento Implementar base de conhecimento do gerador e o simulador de ambientes Implementar base de conhecimento de cada componente do agente (vários tipos de conhecimento) Testar o desempenho com diferentes instâncias do ambiente

Engenharia do Conhecimento Estuda como construir Sistemas Baseados em Conhecimento (SBC) Base de Conhecimento Máquina de Inferência Engenheiro de conhecimento Guia a Aquisição do conhecimento sobre o domínio escolhido e determina quais conceitos são importantes Cria a Base de Conhecimento representações dos conceitos (fatos e regras) em alguma linguagem de Representação do Conhecimento É responsável pela Implementação e pelo Refinamento do SBC

Engenharia do Conhecimento: Etapas de Construção dos SBC Nível de Conhecimento AQUISIÇÃO linguagem natural linguagem de representação de conhecimento FORMALIZAÇÃO Nível Lógico Nível de Implementação linguagens de programação IMPLEMENTAÇÃO BC REFINAMENTO

Engenharia do Conhecimento: Etapas de Construção dos SBC Vimos um pouco de Implementação: Regras de produção e Prolog Formalização: Lógica de Primeira Ordem Resta-nos ver então as fases de Aquisição e Organização do conhecimento do domínio escolhido

Aquisição de Conhecimento Aquisição/Explicitação de conhecimento Espécie de Engenharia de Requisitos mais complexa Principais fases da Aquisição: identificar características do problema isolar os conceitos principais e suas relações (ontologia) identificar inferências sobre estes conceitos Conhecimento pode originar-se de várias fontes: Entrevistas com especialistas, livros e documentos, filmes, etc.

Aquisição: Gargalo na construção de SBCs Dificuldade de introspecção O especialista quase nunca está ciente de como usa o conhecimento e tem dificuldade de verbalizar sob pressão Algumas soluções são intuitivas ou “compiladas”. Uso de vocabulário próprio (jargão) O conhecimento expresso pode ser irrelevante quantidades enormes de informações supérfluas são coletadas, para em seguida serem organizadas. O conhecimento expresso pode ser incompleto, incorreto ou inconsistente Métodos de aquisição - 3 categorias: Manual, Semi-automático e Automático

Aquisição Manual Entrevistas estruturadas ou não estruturadas Tracking methods Observação e análise do domínio, leitura de documentos, etc. especialista Base de conhecimento Engenheiro de documentação codificação explicitação

Aquisição Semi-automática Ajuda ao engenheiro de conhecimento (editores, documentadores, etc.) Ajuda ao especialista (grid repertory analysis) especialista Ferramentas interativas de entrevista Base de conhecimento Engenheiro de conhecimento

Aquisição Automática Aprendizagem de Máquina (Machine Learning) Algoritmos de aprendizagem automática “induzem”as regras a partir de exemplos do domínio. Aqui não há aquisição por parte do Engenheiro de Conhecimento. Casos e exemplos Indução automática Regras

Construindo Bases de Conhecimento Toda BC tem dois “consumidores”: usuários procedimentos de inferência Uma BC deve: ser clara e correta representar apenas objetos e relações relevantes idealmente, ser codificada separada do procedimento de inferência (modularidade, reusabilidade) melhorar a eficiência do processo de inferência O processo de inferência deve fornecer a mesma resposta, independente de como a base foi codificada

Engenharia de Conhecimento 1) Decida sobre o que falar 2) Escolha o vocabulário de predicados, funções e constantes (Ontologia do Domínio) 3) Codifique o conhecimento genérico sobre o domínio (axiomas) " x,y,z Americano(x) Ù Arma(y) Ù Nação(z) Ù Hostil(z) Ù Vende(x,z,y) Þ Criminoso(x) 4) Codifique uma descrição de uma instância específica do problema Nação(Cuba), Nação(USA) 5) Proponha questões para o procedimento de inferência e obtenha respostas West é criminoso?

Um Exemplo: Circuitos Digitais Objetivo: determinar se o circuito está de acordo com sua especificação (o circuito acima é um somador) responder a perguntas sobre o valor da corrente em qualquer ponto do circuito

Decida sobre o que falar Para alcançar o objetivo, é relevante falar sobre circuitos, terminais, sinais nos terminais, conexões entre terminais Para determinar quais serão esses sinais, precisamos saber sobre: portas e tipos de portas: AND, OR, XOR e NOT Não é relevante falar sobre: fios, caminhos dos fios, cor e tamanho dos fios, etc.

Decida qual vocabulário usar Nomear os objetos e relações do domínio com funções, predicados e constantes constantes distinguir as portas : X1, X2... distinguir os tipos de porta: AND, OR, XOR... funções e predicados tipo de uma porta: Tipo(X1) = XOR, Tipo(X1, XOR), XOR(X1) indicar entradas e saídas: Out(1, X1), In(1, X2) indicar conectividade entre portas: Conectado(Out(1, X1), In(1, X2))

Codifique regras genéricas (1) Dois terminais conectados têm o mesmo sinal: " t1, t2 Conectado(t1, t2) Þ Sinal(t1) = Sinal(t2) (2) O sinal de um terminal é On ou Off (nunca ambos) " t Sinal(t) = On Ú Sinal(t) = Off, On ¹ Off (3) Conectado é um predicado comutativo " t1,t 2 Conectado(t1, t2) Û Conectado(t2, t1) (4) Uma porta OR está On sse qualquer das suas entradas está On: " g Tipo(g) = OR Þ Sinal(Out(1,g)) = On Û $ n Sinal(In(n,g))=On (5) etc...

Codifique a instância específica Portas: Tipo(X1) = XOR Tipo(X2) = XOR Tipo(A1) = AND Tipo(A2) = AND Tipo(O1) = OR Conexões: Conectado(Out(1,X1),In(1,X2)) Conectado(Out(1,X1),In(2,A2)) Conectado(Out(1,A2),In(1,O1)) . . .

Proponha questões ao Procedimento de Inferência Que entradas causam Out(1,C1) = Off e Out(2, C1) = On? $ i1, i2, i3 Sinal(In(1,C1)) = i1 Ù Sinal(In(2,C1)) = i2 Ù Sinal(In(3,C1)) = i3 Ù Sinal(Out(1,C1)) = Off Ù Sinal(Out(2,C1) = On Resposta: (i1 = On Ù i2 = On Ù i3 = Off) Ú (i1 = On Ù i2 = Off Ù i3 = On) Ú (i1 = Off Ù i2 = On Ù i3 = On)

O que é uma ontologia? Definição: especificação (semi-)formal explícita de uma concepção compartilhada Concepção: modelo das entidades, relações, axiomas e regras de algum domínio Formal: processável por máquina permitindo raciocínio automático com semântica lógica formal Compartilhada: por uma comunidade, permitindo entendimento Conceitos de computação relacionados: Base de conhecimento reutilizável Esquema de banco de dados

Elementos de uma ontologia Hierarquia de conceitos: entidades cada entidade definida por conjunto de pares atributo-valor correspondem: as classes dos modelos orientado a objetos as entidades do modelo relacional aos termos do modelo lógico atributos propriedades x atributos relações preenchidos por valores atômicas (tipos primitivos) x por outros conceitos Status epistemológico do valor Exatamente conhecida, default, probabilista relações sem hierarquia x em hierarquia paralela a hierarquia de entidades associações, agregações e atributos dos modelos OO cujos valores são objetos as relações do modelo relacional aos predicados do modelo lógico

Elementos de uma ontologia Restrições: sobre valores possíveis dos atributos do conceitos correspondem: as assinaturas de classes em modelos OO as axiomas universalmente quantificados em modelos lógicos as restrições de integridade nos esquema de BD Regras dedutivas: sobre atributos de (conjunto de) conceitos permitem inferência automática da existência de instâncias de conceitos a partir da existência de outras instâncias as regras dos sistemas especialistas e programação em lógica aos métodos dos modelos OO as visões em BD

Elementos de uma ontologia Instâncias de conceitos: definição de entidade e relações específicos (indivíduos) correspondem: aos fatos de sistemas especialistas e programação em lógica aos objetos dos modelos OO aos dados dos BD Estratégias de resolução de problemas (PSM) Métodos abstratos para resolver determinadas classes de problemas abstrações de rotinas de máquina de inferência design patterns para raciocínio automático meta-dados descrevendo classes de procedimentos ex, generate and test,

Exemplo de Estratégia de Resolução de Problema Estratégia de classificação heurística casamento heurístico abstrações de observações abstrações de soluções abstrair refinar observações soluções

Serviços suportados por uma ontologia Consultas e manipulação: correspondem: métodos de acesso a valor e de reflexão em linguagens OO consultas de interrogação e manipulação em BD ask, tell e retract das bases de conhecimento sobre conceitos: Quais são as entidades E relacionadas a entidade e0 via relações r1, r2? Quais são as relações R mais gerais que r1? Definição d de entidade E é consistente com o resto da ontologia? sobre instâncias um indivíduo I com propriedades P1, ..., Pn é instância de quais conceitos? Raciocínio automático geralmente dedutivo

Origem e motivação para ontologias Gerenciamento do Conhecimento em Organizações desde 90 Sistemas Especialistas desde 80 Processamento de Linguagem Natural Psicologia Cognitiva desde 60 Lingüística Integração de Dados desde 95 Ontologias Engenharia de Software: requisitos e reuso desde 90 Filosofia desde 350 A.C. Sistemas Multi-agentes desde 95 Recuperação de Informação na Web desde 00

Tipologia das ontologias Especialista: modela um domínio particular restrito Geral: modela o conhecimento de senso comum compartilhado por todos os seres humanos parte de mais alto nível, reutilizável em vários domínios Conceitual: fundamentada na capacidade de raciocinar Lingüística: fundamenta no vocabulário de uma(s) língua(s) De meta-dados: “especializada” na descrição de recursos on-line, no entanto sobre qualquer domínio De tarefas e métodos: modela procedimentos e comportamentos abstratos no lugar de entidades ou relações

Sub-problemas de modelagem de uma ontologia geral Categorias e conjuntos Medidas Objetos compostos Tempo Espaço Mudanças Eventos e processos Objetos físicos Substâncias Objetos mentais e crênças

Ontologias Genéricas: Categorias Também chamadas de classes, relações, tipos ... conjuntos de objetos com propriedades comuns organiza e simplifica a base de conhecimento. Exemplos de simplificação: comprar(Maçã123) x comprar(Maçã) - classe-instância Todo mamífero bebe leite - herança Taxonomia: tipo particular de ontologia: relações hierárquicas entre classe e sub-classes em forma de árvores propriedades discriminantes ex. biologia sistemática

Relações entre Categorias Disjunção: não há interseção entre as categorias "s Disjunção(s) Û ("c1,c2 c1Î s Ù c2 Î s Ù c1 ¹ c2 Þ c1 Ç c2 = f) ex. Disjunção({Animais, Vegetais}) Decomposição exaustiva "s,c DecomposiçãoExaustiva(s,c) Û ("i. i Î c Û $c2 c2 Î s Ù i Î c2) ex. DecomposiçãoExaustiva({Americano, Canadense, Mexicano}, Norte-Americano) Partição: decomposição exaustiva disjunta "s,c Partição(s,c) Û Disjunção(s) DecomposiçãoExaustiva(s,c) ex.. Partição(({macho, fêmea}), animal)

Ontologias Genéricas: também podem representar Medidas Valores atribuídos às propriedades dos objetos do mundo real: peso, comprimento, altura, etc... Objetos compostos formados por partes que também são objetos: relação “parte-de”. Mudanças com eventos Cálculo de eventos: um fato é verdade em um intervalo de tempo.

Medidas Valores atribuídos aos objetos do mundo real: servem para descrever objetos ex. peso, comprimento, altura, diâmetro, ... Medidas quantitativas são fáceis de representar ex. Tamanho(L1) = Polegadas(1,5) = Centímetros (3,81) Medidas qualitativas são mais complicadas ex. beleza de um poema, dificuldade de um exercício O importante é ordenar "e1, e2 e1 Î Exercícios Ù e2 Î Exercícios Ù Elabora(João,e1) Ù Elabora(Pedro,e2) Þ Dificuldade(e1) < Dificuldade(e2)

Objetos Compostos Objetos formados por partes que também são objetos São caracterizados pela estrutura dos objetos que os compõem ex. massa de um carro é a soma das massas de suas partes(carroceria, motor, pneu, ...) Para representá-los, usamos a relação ParteDe e.g., ParteDe(motor, Carro), ParteDe(pneu, Carro) Exemplo: "a Bipede(a) Þ $ l1, l2, b Perna(l1) Ù Perna(l2) Ù Corpo(b) Ù ParteDe(l1,a) Ù ParteDe(l2,a)ÙParteDe(b,a) Ù Ligado(l1,b) Ù Ligado(l2,b) Ù l1 ¹ l2 Ù " l3 Perna(l3) Ù ParteDe(l3,a) Þ (l3 = l1 Ú l3 = l2)

Objetos Compostos ParteDe também serve para descrever estrutura de eventos: Script ou Schema ex. comer no restaurante Quando se está interessado apenas nas características do conjunto: BunchOf ex. peso do saco de Maçãs BunchOf(Maçãs) define um objeto composto formado pelas Maçãs do saco.

Representando Mudanças com Eventos Cálculo de situações: adequado quando temos um único agente realizando ações discretas e instantâneas (uma ação por situação). inadequado quando: existem vários agentes no mundo. o mundo pode mudar espontaneamente. mudanças ocorrem continuamente. Cálculo de eventos: versão contínua do calculo de situações No cálculo de situações, um fato é verdade em uma situação No cálculo de eventos, uma coisa é verdade num intervalo de tempo ex. SubEvento(BatalhaDaNormandia,SegundaGuerraMundial) SubEvento(SegundaGuerraMundial, SéculoXX)

Representando Mudanças com Eventos

Tempos, Intervalos e Ações Meet(i,j) i j Before(i,j) After(j,i) During(i,j) Overlap(i,j)

Cálculo de Eventos: Exemplos Se duas pessoas ficaram noivas, então em algum intervalo no futuro elas irão se casar ou acabar o noivado: "x,y,i0 T(Noivado(x,y),i0) Þ $i1 (Encontra(i0,i1) È Depois(i1,i0)) Ù T(Casamento(x,y) È FimNoivado(x,y), i1) A segunda guerra de Canudos ocorreu na Bahia no século XIX $g g Î Guerras Ù SubEvento(g,SéculoXIX) Ù ParteDe(Localização(g),Bahia)

Problemática geral e questões sobre ontologias Divisão: como delimito as classes e os atributos? quais são as distinções que trazem valor agregado? Escopo: qual conhecimento incluir? qual a fronteira do meu domínio? Granularidade: até que nível de detalhe modelar os domínio? problema da ramificação? Validação: como avalio a qualidade do modelo? como escolho entre várias modelagem alternativas (as vezes propostas por pessoas diferentes)?] como identificar aspectos importantes que estão faltando?

Problemática geral e questões sobre ontologias Muito difícil responder a essas perguntas porque: Almejados reuso e relativa independência de aplicação impedem ser guiado completamente pelos requisitos de uma aplicação restrita Para ontologias gerais de senso comum pior devido a imensidão em largura e profundidade do conhecimento a modelar Metodologias ainda incipientes Methontology: Sensus: http://www.isi.edu/natural-language/resources/sensus.html No entanto, já existe tentativa de padronização: http://suo.ieee.org/

CommonKADS Pesquisa colaborativa na União Européia (+15 anos) Utiliza fórmulas e ontologias para representar o conhecimento Utiliza diagramas baseados em UML Diagrama de classes Diagrama de estados Diagrama de atividades Possui seis modelos Modelo organizacional Modelo de tarefas Modelo de agentes Modelos de “expertises” Modelos de comunicação Modelo de projeto

CommonKADS: Modelos Expertise= modela comportamento resolução de problemas em função conhecimento

CommonKADS Modelo organizacional: Analisar a organização Modelo de tarefas Descreve as tarefas a serem executadas Distribui as mesmas entre os agentes Modelo de agentes É o executor do modelo de tarefas Descreve as capacidades e características dos agentes Modelo de Comunicação: Troca de mensagens Modelo de expertise: É o foco da metodologia 3 sub-níveis Conhecimento do domínio: Conceitos, Propriedades, Relações Conhecimento da inferência Conhecimento da tarefa Modelo de projeto de base de conhecimento Descreve a arquitetura e o projeto