Sistemas de Conhecimento: Aplicação e desenvolvimento Profa. Mara Abel Instituto de Informática - UFRGS marabel@inf.ufrgs.br
Nomes, nomes... Sistemas de IA Sistemas baseados em conhecimento Sistemas simbólicos, não algorítmicos que utilizam técnicas de IA para solução de problemas Sistemas baseados em conhecimento Sistemas de IA que otimizam a busca da solução pela aplicação de conhecimento explicitamente representado Sistemas Especialistas Sistemas baseados em conhecimento que resolvem problemas que necessitam de altos níveis de perícia para sua solução. O conhecimento é extraído de um especialista humano.
Mais nomes... Sistemas de conhecimento Termo mais atual. Refere-se a qualquer sistema de informação que gerencie, armazene e/ou aplique conhecimento explicitamente representado. O conhecimento pode ser de fonte humana, da organização, disperso, etc.
Sistemas de Conhecimento Permitem Extrair o conhecimento de suas diferentes fontes, tornando-o independente das pessoas Organizá-lo Distribuí-lo Multiplicá-lo
Evolução dos Sistemas Especialistas Primeira fase Reprodução da tarefa através de um sistema simbólico; conhecimento embutido no código Segunda fase Extração do conhecimento do especialista reproduzindo com fidelidade em um sistema simbólico; conhecimento em um banco de conhecimento Terceira fase Conhecimento pertence à organização, sendo extraído, racionalizado e implementado através de diversos recursos da computação.
Quando utilizar sistemas de conhecimento?
SE é solução quando... Risco de manter o conhecimento estratégico em poder das pessoas é muito grande Domínios são muitos simbólicos Problema é descrito com variáveis não quantificáveis: pequeno, inadequado, escuro, suficiente, quase, ao lado.. Número muito grande de variáveis
Benefícios da Organização Produtividade Preservação do capital intelectual Disseminação do conhecimento organizacional Qualidade da decisão Padronização do comportamento empresarial Treinamentos eficientes
PRINCIPAIS APLICAÇÕES Tarefas Analíticas Classificação Aconselhamento Diagnóstico Monitoração Previsão Tarefas de Síntese Projeto e/ou configuração Modelagem Planejamento Escalonamento Atribuição
Serviço de Atendimento ao Cliente Problemas - Volume e complexidade crescentes Técnicos Técnicos
Aplicações Autorização de crédito na American Express Projeto de produtos na Nippon Steel Suporte a clientes de produtos IBM e Compaq Computer Roteamento de aeronaves na American Airlines Utilização de mão-de-obra no Department of Defense (EUA) Processamento de reivindicações de reembolso sob garantia na Ford
Aplicações na Indústria Diagnóstico de falhas nos motores da Boeing e Airbus, e também em metrôs e trens Suporte de vendas para circuitos integrados Analog Devices Estimativa do custo de produção de peças em plástico- Legrand Análise de cartas de telecomunicação e sistemas eletrônicos de testes de dados Ericsson Help Desk para suporte após venda de robôs -Sepro Robotique
PetroGrapher Banco de dados inteligente para a gerência de descrições petrográficas para apoiar a exploração de petróleo Múltiplos modelos de conhecimento mapeados para banco de dados Realiza caracterização de reservatórios de petróleo segundo critérios geológicos Disponibiliza dados de reservatórios para consulta
Celupa Monitoração do processo de produção de filtros de papel para café Sistema recebe dados analógicos, mede as diferenças do padrão e ajusta equipamento Conhecimento dos técnicos e do padrão exigido da empresa
Engenharia de Conhecimento Capturando conhecimento da organização e das pessoas
Objetivos da Engenharia de Conhecimento Engenharia de software para sistemas baseados em conhecimento Transformar o processo ad hoc de construir sistemas baseados em conhecimento em uma disciplina da engenharia Métodos Linguagens Ferramentas
Engenharia de Conhecimento Aquisição de conhecimento Extração do conhecimento de suas diversas fontes Representação de conhecimento Modelagem do domínio Validação do conhecimento Verificação de consistência Explicação e justificativa Recuperação e apresentação do raciocínio ao usuário
Evolução Paradigma de transferência Paradigma de modelagem Especialista detém o conhecimento que deve ser extraído e colocado no sistema. Paradigma de modelagem Organização detém o conhecimento Conhecimento existente nas pessoas, arquivos, sistemas deve ser extraído e modelado em um formato computacional
Análise de Sistemas - Análise de Conhecimento 1. Necessidades do usuário 2. Informações e dados factuais, processos e procedimentos 3. Entradas, saídas e fluxo de dados 4. Dados quantitativos 5. Técnicas estruturadas 6. Aspectos sintáticos do domínio e seus processos 1. Necessidades da perícia e do usuário 2. Aplicação cognitiva dos dados e da informação 3. Conceitos e estratégias de solução de problemas 4. Dados heurísticos e subjetivos 5. Aquisição cognitiva do conhecimento e técnicas de análise 6. Riqueza semântica do domínio e raciocínio de solução de problemas
Abordagem de Modelagem Modelos formais Conceitos representados explicitamente Métodos de solução representados explicitamente e de modo abstrato Compartilhamento de conceitos e métodos Reuso do modelo
Metodologias que Aplicam a Abordagem de Modelagem Tarefas genéricas Métodos de limitação de papéis Componentes da perícia Ontologias e OntoLíngua VITAL PROTÉGÉ KADS e Common KADS .
Metodologia Common KADS Utilizando um formalismo para modelar conhecimento
site: www.commonkads.uva.nl
Princípios do Common KADS Princípio da Modelagem: um modelo é uma abstração de algum aspecto da realidade. Modelar é construir uma boa descrição de alguns aspectos do conhecimento, deixando de fora o resto. O modelo torna possível focar em alguns aspectos e ignorar os outros. Princípio do nível de conhecimento: primeiro se concentre na estrutura conceitual do conhecimento, deixando os aspectos de implementação para mais tarde. Princípio da Tipagem do Conhecimento: modela-se o conhecimento como um conjunto funcional bem estruturado, cujas partes apresentam papéis bem definidos e especializados na solução de problemas. Processo em espiral: não tão rígido como o modelo em cascata nem tão livre como a prototipação rápida
O conjunto de modelos contexto conceito artefato modelo da organização da tarefa modelo dos agentes modelo do conhecimento modelo de comunicação conceito artefato modelo do projeto
O Modelo do Conhecimento Representando o conhecimento em um formalismo
Modelo do Conhecimento: categorias de conhecimento Conhecimento da Tarefa - Objetivos da tarefa - Decomposição da tarefa - Controle da tarefa OBJETIVOS Diagnóstico (tarefa) Conhecimento de inferência - Inferências básicas - Papéis AÇÕES Hipótese Verificação (inferência) (inferência) Conhecimento do Domínio - Tipos - Regras - Fatos Sintoma Doença Teste (tipo) (tipo) (tipo) CONHECIMENTO
Conhecimento do Domínio Ontologias Especificação formal e explícita de um conjunto de conceitos compartilhados Formal: processável por computador Explícita: conceitos e restrições previamente definidos Compartilhado: descreve um conhecimento consensual, que é aceito por um grupo. Inclui conceitos, relações, regras e todos os tipos estáticos.
Ontologia (i) Um vocabulário de conceitos, ou termos do domínio; (ii) a tipologia do domínio, que define tipos de dados e restrições de valores que os termos devem respeitar; (iii) as relações entre conceitos, que formam as taxonomias e partonomias daquele domínio, ou outras associações entre conceitos.
Construtores do Conhecimento do Domínio Conceitos: objetos ou entidades do domínio Definidos por seus atributos e tipos de valores Relações : classificação, especialização, agregação, conjunto Regras : relações de dependências entre conceitos do domínio ou entre expressões de domínio
Conceitos Conceitos do domínio: objetos ou entidades os atributos ou propriedades desses objetos; as restrições que definem os conceitos e distinguem a realidade deste domínio dos demais (Descrevem o que são as coisas do domínio)
Conceitos CONCEPT tanque-combustível ATTRIBUTES Status:{cheio, reserva, vazio} Tipo-combustivel: combustível END-CONCEPT tanque-combustível VALUE-TYPE combustível VALUE-LIST : {gasolina,álcool} TYPE: ORDINAL; END-VALUE-TYPE combustível;
Relações do Domínio Principalmente Classificação Especialização Agregação Associação de conjunto
Base de Conhecimento Instâncias dos conceitos do domínio que descrevem a aplicação Não são instâncias do usuário INSTANCE tanque-combustível Status: vazio Tipo-combustivel: gasolina END-INSTANCE tanque-combustível
Termos de Domínio Declarações sobre os conceitos do domínio ou qualquer combinação lógica dessas declarações tanque-combustível.status = vazio; bateria.status =baixa => força.status = desligado farol.status = não-funciona E ignição.status = não-funciona E radio.status = não-funciona
Tipo-regra: instâncias Entrada-combustível.status = bloqueado CAUSA gasolina.status = falso; bateria.status = baixa farol.status = ligado força.valor = desligado
Modelo da Tarefa Define a relação entre os conceitos do domínios necessários à aplicação e os métodos de solução de problema abstratos necessários para obter a solução. Realiza a instanciação dos métodos de solução de problemas
Modelo da Tarefa - Definido por ... Objetivo Papéis de entrada e saída Corpo da tarefa sub-objetivos sub-tarefas estrutura de controle: em que ordem os passos da tarefa serão executados
Inferências (primitivas) Abstrair Atribuir Classificar Comparar Cobrir Criticar Avaliar Gerar Agrupar Casar Modificar Operacionalizar Propor Prever Selecionar Ordenar Especificar Verificar
Métodos de Solução de Problemas Componente dinâmico do conhecimento Modelo abstrato da inferência aplicável àquela classe de problemas NÃO correspondem aos métodos de inferência por busca, como raciocínio progressivo ou regressivo Generalização de um padrão de raciocínio específico, mas não é um raciocínio genérico
Tipos de MSPs Geração e teste Classificação heurística Diagnóstico sistemático Verificação Reparo Projeto Configuração
Exemplo: Diagnóstico especificar hipótese observação reclamação selecionar obter cobrir verificar hipóteses achado valor verdade
Diagnóstico Processo em deadlock causa rede com performance baixa especificar hipótese observação Rede com performance baixa reclamação selecionar obter cobrir verificar hipóteses achado Processo em deadlock causa rede com performance baixa Alto consumo de memoria causa rede com performance baixa Processo XYZ parado valor verdade verdade Causa: processo XYZ
Formalizando o conhecimento adquirido!! Construção do Modelo Formalizando o conhecimento adquirido!!
Modelo do Conhecimento Construção do Modelo Modelo Cognitivo (i) Modelo do Conhecimento Abstração
Modelos KL (Knowledge Level) O processo de modelagem é contínuo cíclico falho Aproximação da realidade ! Observações provocam modificações no modelo e o modelo sugere novas observações! Modelo deve ser continuamente validado !
Identificação do conhecimento Familiarização com o domínio listar todas as fontes de conhecimento e caracterizá-las, resumo dos textos-chave a respeito do problema ou tarefa, seleção e identificação de cenários representativos do domínio, coleta de casos, se houver.
Identificação do conhecimento Listar componentes potenciais do modelo: identificar tipo da tarefa (diagnóstico, monitoração?) identificar tipo do domínio (técnico, excessivamente simbólico, muitas heurísticas?)
Especificação do conhecimento Escolher a estrutura de inferência a partir de uma biblioteca disponível Verificar se as entradas e saídas desta estrutura são adequadas ao problema. Colocar “anotações” nos papéis do conhecimento relacionando-os às instâncias da base de conhecimento. Adaptar a estrutura para as necessidades do domínio, se necessário
Especificação do conhecimento Construção do esquema inicial do domínio Definir os conceitos e termos do domínio Construir as hierarquias e partonomias desses conceitos Utilizar os conceitos de abstração já definidos, especificando outros apenas quando a semântica for essencial.
Especificação do conhecimento Completar a especificação do modelo do conhecimento. Pode-se partir da inferência e definir os conceitos (melhor), ou partir dos conceitos e identificar a inferência (possível quando casos foram obtidos na fase de aquisição).
Validação do Conhecimento Validar o modelo do conhecimento Utilizar simulação no papel, Casos previamente reservados para teste, Ou protótipo construído apenas para validar a base. Completar a base de conhecimento Incluir instâncias necessárias para a execução da tarefa em questão.
Referências Velde, W.V. Issues in knowledge level modeling. In: David, J. M.et al. Second generation expert systems. Berlin: Springer Verlag, 1993 Schreiber, G.; Akkermans, H.; Anjewierden, A.; Hoog, R.d.; Shadbolt, N.; Velde, W.v.d.; Wielinga, B. Knowledge engineering and management: the CommonKads methodology. Cambridge: The MIT Press, 2000. Shadbolt, N., O'hara, K. and Crow, L. The experimental evaluation of knowledge acquisition techniques and methods: history, problems and new directions. International Journal of Human- Computer Studies, 51: 729-755, 1999.