Engenharia de Conhecimento Fred Freitas CIn - UFPE Fred Freitas - [email protected] 1 Como construir SBCs?? • Sabemos como funcionam – Regras de produção ou programação em lógica • ... O que possuem – Motor de inferência • Mas não sabemos de métodos para – Adquirir o conhecimento • Do domínio => como construir ontologias • Das tarefas => como construir uma boa base de regras • Item importante – Reuso => em especial para ontologias Fred Freitas - [email protected] 2 Etapas da Engenharia do Conhecimento Nível de Conhecimento Nível Lógico Nível de Implementação AQUISIÇÃO FORMALIZAÇÃO linguagem natural linguagem de representação de conhecimento linguagens de programação IMPLEMENTAÇÃO BC REFINAMENTO Fred Freitas - [email protected] 3 Aquisição de Conhecimento Fred Freitas - [email protected] 4 Ciclo de Desenvolvimento de um Sistema Especialista Inicialização Definição do Problema, Requisitos Análise Fechamento da Base de Conhecimento e dos módulos, Testes, Validação pelos Avaliação usuários, Aquisição de Projeto, Identificação Conhecimento, Desenvolvidas fontes de mento conhecimento o Gargalo ! Prototipagem Definição e Representação do Conhecimento, Protótipos, Módulos, Interface, Testes Fred Freitas - [email protected] Treinamento, Documentação Operação, Upgrades, Avaliação Implemenperiodica tação Manutenção 5 Soluções para os Problemas de Aquisição • Métodos de aquisição – Manuais – Semi-automáticos – Automáticos • Sistemas Especialistas de 2ª. geração Fred Freitas - [email protected] 6 Métodos Manuais de Aquisição especialista Engenheiro de codificação Base de conhecimento conhecimento documentação • Entrevistas – Desestruturada – Estruturada: agendas, formulários, casos, etc • Rastreamento cognitivo – Gravações de descrições detalhadas do especialista • Engenheiro faz regras e valida com o especialista Fred Freitas - [email protected] 7 Entrevistas • método de aquisição de conhecimento mais usado • informação e o conhecimento são recolhidos através de diversos meios – questionários, anotações, gravações – posteriormente transcritos, analisados e codificados • normalmente são necessárias várias entrevistas ou sessões de trabalho • o espaçamento entre as entrevistas deverá permitir: – que o Engenheiro do Conhecimento possa processar todo o conhecimento adquirido na entrevista anterior – que o conhecimento adquirido seja representado, codificado e testado por um protótipo do sistema Fred Freitas - [email protected] 8 Entrevistas Desestruturadas – Pode-se estabelecer uma relação professor/aluno entre o Especialista e o Engenheiro de Conhecimento. – O Especialista : • • • • faz o acompanhamento de casos explica o que faz e porque o faz explicita conceitos, habilidades e estratégias que usa aconselha a leitura de documentos, bibliografia – Freqüentemente as descrições dos processos cognitivos do perito parecem incompletas ou desorganizadas • complexidade do domínio • faltam os relacionamentos dos diversos itens de informação e conhecimento • falta de treino dos Engenheiros do Conhecimento na condução das entrevistas Fred Freitas - [email protected] 9 Entrevistas Estruturadas • processo sistemático orientado a objetivos • a comunicação entre o Engenheiro do Conhecimento e o especialista é previamente organizada • o Engenheiro do Conhecimento prepara as sessões de aquisição do conhecimento identificando as questões mais relevantes • uso de formulários, documentos, atas, protocolos, ... Fred Freitas - [email protected] 10 Aquisição de Conhecimento usando Acompanhamento do Raciocínio • técnica popular na Psicologia Cognitiva na qual se tenta rastrear o raciocínio do especialista – concluir como ele raciocina • os métodos podem ser mais ou menos formais – Análise do Protocolo - método formal mais conhecido – o especialista é solicitado a resolver problemas concretos e a verbalizar o raciocínio que utiliza na resolução desse problema – fica registado o o processo de tomada de decisão efetuado pelo especialista passo-a-passo • pode ser efetuada a gravação da sessão • processo essencialmente unilateral, ao contrário das entrevistas Fred Freitas - [email protected] 11 Aquisição de Conhecimento com observação do especialista • modo mais natural de efetuar a aquisição • pode ser complexo – O especialista pode dirigir uma equipe de várias pessoas – O especialista pode resolver vários problemas simultaneamente – Comportamento do especialista pode ser diferente pelo fato de saber que está sendo observado • o conhecimento que se adquire pode não corresponder exatamente Fred Freitas - [email protected] 12 Aquisição de Conhecimento guiada pelo especialista • os Engenheiros do Conhecimento costumam não cobrir bem o conhecimento do domínio • podem surgir problemas na comunicação com o perito • aquisição de conhecimento pode ser um processo demorado, com várias iterações • Os especialistas podem agir também como Engenheiros, codificando diretamente o seu conhecimento – Manualmente: através de relatórios e questionários – Automaticamente: através de uma ferramenta computacional que ajuda o perito a introduzir o conhecimento e procura detectar falhas nesse mesmo conhecimento (incoerências, ambiguidades, redundâncias, etc). Fred Freitas - [email protected] 13 Métodos Semi-automáticos de Aquisição especialista Ferramentas de apoio Base de conhecimento Engenheiro de conhecimento • Ferramentas para o engenheiro – Editores, ambientes integrados (ex: Protégé), ferramentas visuais • Ferramentas para o especialista – Análise de grades de características (repertory grid analysis) Fred Freitas - [email protected] 14 Métodos Automáticos de Aquisição Casos e exemplos Indução automática Regras • Técnicas de Aprendizado Automático – É preciso gerar conhecimento explícito, muitas vezes em forma de regras! Por isso... – Técnicas simbólicas de aprendizado • Árvores de Decisão • Espaço de Versões, ... Fred Freitas - [email protected] 15 Engenharia de ontologias Fred Freitas - [email protected] 16 Princípios de construção • • • • • • Clareza Legibilidade Coerência Extensibilidade Mínima codificação Mínimo compromisso ontológico Fred Freitas - [email protected] 17 Ontologia Ciência [Freitas 2001] • Reusada a partir da ontologia do projeto europeu (KA)2 [Benjamins et al 98] do espelho da Ontolingua na Universidade de Madri • Refinada em granularidade e engajamento ontológico • Inclui ontologias auxiliares de tempo, locais e turismo Fred Freitas - [email protected] 18 Princípios usados • Clareza e legibilidade – Jargão empregado • Mínimo compromisso ontológico – na classe Documento Científico, não há restrições desnecessárias para o slot Autores (qualquer subclasse da classe Pessoa inclusive a subclasse Pesquisador) • Extensibilidade - novas classes puderam ser definidas a partir das já existentes • Coerência - a relação parte-todo entre artigos de um proceedings, ou entre capítulos de um livro, não estava explicitada Fred Freitas - [email protected] 19 O uso e a engenharia de ontologias estão atrelados... Knowledge Meta-process Design, Implementation, Evolution of the Ontology Knowledge Process Use of the Ontology Fred Freitas - [email protected] 20 Metaprocesso de construção Reverse Portals & Portal Generation Use Crawling / Syndication Create Ontobroker Semantic Miner Ont-O-Mat Find Capture Organize Fred Freitas - [email protected] Ont-O-Mat 21 Metodologias de desenvolvimento [Gómez-Perez 99] • Processo iterativo, com revisões constantes • Nas metodologias propostas, são considerados passos similares aos de engenharia de software: – Especificação – Conceitualização – Implementação • Atividades de suporte são executadas concomitantemente com o desenvolvimento – – – – Aquisição Avaliação Documentação Integração comFred ontologias existentes Freitas - [email protected] 22 Metodologias de desenvolvimento (cont.) Desenvolvimento Especificação Conceitualização Implementação Aquisição Suporte Avaliação Documentação Integração Fred Freitas - [email protected] 23 Especificação • Determina o propósito e escopo da ontologia • Deve incluir uma análise para decidir se é possível, necessário ou adequado o reuso de ontologias • Sugere-se elaborar uma lista de questões de competência [Uschold & Gruninger 96] – Servirão para a avaliação da ontologia durante o desenvolvimento – Ex: “Jornais científicos são considerados eventos científicos?” Fred Freitas - [email protected] 24 Conceitualização [Noy 97] • Fase crítica, nela ocorrem a maior parte das atividades de suporte de aquisição e avaliação • Passos e dicas: – Enumerar os termos do domínio – Definir as classes - não confundir nomes de um conceito com o próprio conceito – Definir a hierarquia das classes - passo capcioso – Definir os slots e facetas de cada classe, interagindo com os dois passos anteriores – Criar as instâncias - Se elas não possuem uma hierarquia natural, é preciso revisar a hierarquia das classes – Usar convenções de nomes e nomes facilmente compreensíveisFred Freitas - [email protected] 25 Especificação Fred Freitas - [email protected] 26 © York Sure Fontes de Conhecimento Fred Freitas - [email protected] 27 © York Sure Questões de Competência Fred Freitas - [email protected] 28 © York Sure Rastreamento Fred Freitas - [email protected] 29 © York Sure Definir a hierarquia das classes • Observar a clareza e consistência da hierarquia • Evitar subclasses demais pelo uso de classes intermediárias • Ver se não há poucas subclasses - a informação dos slots pode tornar-se insuficiente para refletir diferenças entre as instâncias. • Abordagens para a definição de hierarquias [Uschold & Gruninger 96]: – top-down, classes mais gerais e depois as específicas – bottom-up – middle-out, que começa por classes intermediárias que vão sendo especializadas (para baixo) e generalizadas (para cima) Fred Freitas - [email protected] 30 Definir os slots e facetas • Slots intrínsecos – ex: número de pernas • Slots extrínsecos – ex: nome de uma pessoa • Partes de uma classe – ex: partes do corpo: cabeça, tronco e membros • Relacionamentos - instâncias de outras classes. – Especificar a classe mais geral possível – EX: a faceta classes-permitidas do slot Participantes da classe Projeto são instâncias da classe Pesquisadores • Pesquisadores incluem estudantes de pós-graduação, professores, etc Fred Freitas - [email protected] 31 Implementação e Avaliação • Objetivo: transformar a ontologia em algo computável • Na fase de implementação, a ontologia é escrita numa linguagem de representação de conhecimento • Na fase de avaliação, são executados testes para verificar se a ontologia atende aos requisitos especificados na fase de especificação • Testes freqüentemente provocam mudanças na implementação Fred Freitas - [email protected] 32 Ontology Engineering: OTK Methodology (EU Project: On-To-Knowledge) [Studer & Volz 2003] Applications Fred Freitas - [email protected] 33 Tool Support for Methodology OntoEdit KAON Ontology Evolution Applications OntoMat-Annotizer Fred Freitas - [email protected] 34 Ontology Evolution Process How to discover a change? How to resolve a change? How to ensure the consistency? Discovery Representation Semantics of change Implementation Propagation Validation Core component Refinement requirement Functional & Guidance requirement Fred Freitas - [email protected] Refinement requirement 35 Evolution Strategies Required change Semantics of change Required and derived changes An evolution strategy unambiguously defines the way how changes will be resolved Evolution strategy X delete reconnect to the root Fred Freitas - [email protected] reconnect to the parent 36 Revendo os passos rapidamente... Fred Freitas - [email protected] 37 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), Vende(West,Arma1,Cuba) 5) Proponha questões para o procedimento de inferência e obtenha respostas ou decisões West é criminoso? Fred Freitas - [email protected] 38 Um Exemplo: Circuitos Digitais • Estabelecer o 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 Fred Freitas - [email protected] 39 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 • Tudo isso tem de estar na ontologia! Fred Freitas - [email protected] 40 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)) Fred Freitas - [email protected] 41 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... Fred Freitas - [email protected] 42 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)) . . . Fred Freitas - [email protected] 43 Proponha questões ao Procedimento de Inferência • Que entradas causam Out(1,C1) = Off e Out(2, C1) = On? $i1, i2, i3, o1, o2 Sinal(In(1,C1)) = i1 Sinal(In(2,C1)) = i2 Sinal(In(3,C1)) = i3 Sinal(Out(1,C1)) = o1 Sinal(Out(2,C1) = o2. • Resposta: (i1 = On i2 = On i3 = Off) (i1 = On i2 = Off i3 = On) (i1 = Off i2 = On i3 = On) Fred Freitas - [email protected] 44 Proponha questões ao Procedimento de Inferência • Quais são os conjuntos de valores possíveis para todos os terminais do circuito? $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 é o objetivo do agente! Fred Freitas - [email protected] 45