1) O documento apresenta os conceitos e etapas da engenharia do conhecimento, incluindo a identificação da tarefa, reunião do conhecimento, definição do vocabulário, codificação do conhecimento geral e específico sobre o domínio, e testes.
2) É dado o exemplo de um circuito somador de um bit para ilustrar as etapas, definindo os componentes, portas lógicas e axiomas sobre o seu funcionamento.
3) Os testes realizados na base de conhecimento sobre
3. Definição
A engenharia do conhecimento é a arte de construção de bases de
conhecimento a partir de estratégias especificas de aquisição e
formalização do mesmo.
3/25
5. Etapas ou Atividades
1. Identificação de Tarefas
2. Reunião do conhecimento relevante
3. Definição do vocabulário (predicados, funções e constantes)
4. Codificação do conhecimento geral sobre o domı́nio
5. Codificação da descrição de uma instância especı́fica do
problema
6. Testes e Debug
5/25
6. 1-Identificação da Tarefa
I Quais questões a base de conhecimento será capaz de
responder
I Que fatos estarão disponı́veis?
I As repostas vão descrever apenas o estado do ambiente ou
também a melhor ação a realizar?
I Qual o nı́vel de detalhes de cada informação?
I Qual o conhecimento deve ser formalizado para ligar as
respostas aos fatos básicos?
6/25
7. 2-Reunião do Conhecimento Relevante
I O Engenheiro do Conhecimento x Especialista no Domı́nio
(Problemas e dificuldades da aquisição do conhecimento.
Temos 10.000 horas?)
I Qual o escopo do conhecimento a ser formalizado e como as
coisas realmente funcionam (Teoria x Prática)
I Tentar descobrir o conhecimento oculto (subjacente) que deve
ser formalizado
7/25
8. 3-Definição do vocabulário (predicados, funções e
constantes)
I Traduzir os temos do domı́nio em expressões lógicas formais
(Um bom exercı́cio)
I O que deve ser um predicado, uma função ou simples objeto
I Atualmente é feita uma construção de uma ontologia de
domı́nio (veremos a construção de ontologias mais na frente
no curso)
8/25
9. 4-Codificação do Conhecimento Geral Sobre o Domı́nio
I São criados axiomas adicionais para esclarecer todos os
termos do domı́nio
I Inconsistências nesta fase indicam a necessidade de retornar
para a fase 3
9/25
10. 5-Codificação da Descrição de uma Instância Especı́fica do
Problema
I Formaliza-se uma ou mais instâncias especı́ficas para guiar os
passos de teste e Debug da base de conhecimento.
10/25
11. Testes e Debug
I Da mesma forma que na Engenharia de Software, procede-se
com testes exaustivos e consequente depuração da base de
conhecimento.
11/25
12. O Exemplo do Circuito Somador - Fonte: Russel and
Norvig
12/25
13. 1-Identificação da Tarefa
I Trata-se de um circuito somador de um bit com três entradas
e duas saı́das. O circuito contém duas portas de ou exclusivo,
duas portas AND e uma porta OU.
I A proposta é desenvolver o software capaz de simular e
analisar o circuito.
13/25
14. 2-Reunir o conhecimento relevante
I Circuitos são compostos de fios e portas.
I Os sinais fluem através dos fios para os terminais de entrada
das portas.
I Cada porta produz um sinal no terminal de saı́da que flui
através de um outro fio.
I Cada porta apresenta uma forma particular de transformar os
sinais de entrada em sinais de saı́da.
I Existem 4 tipos de portas: AND, OR, XOR, NOT.
I etc etc etc.
14/25
15. 3-Vocabulário
I Objetos: C1, X1, X2, A1, A2, O1
I Tipos de porta (constantes): AND, OR, XOR, NOT
I Sinal (Constantes): 1, 0
I Predicado Porta : Porta() Ex. Porta(X1)
I Predicado tipo: Tipo - Ex. Tipo(X1) = XOR
I Predicado Circuito: Circuit - Ex. Circuit(C1)
15/25
16. 3-Vocabulário - Continuação
I Predicado Terminal: Terminal - Ex. Terminal(x)
I Função definindo terminal de entrada - Entrada(x,C) - Ex.
Entrada(1, X1)
I Função definindo terminal de saı́da - Saida(x,C) - Ex.
Saida(1, X1)
I Aridade do Circuito (entradas e saı́das) - Aridade(C1, i, j) - Ex
Aridade(C1, 3, 2)
I Predicado Conectados para dizer que dois terminais estão
conectados - Conectados(x, y) - Ex -
Connected(Out(1, X1), In(1, X2)
I Função de Sinal. Qual o sinal em dado circuito : Sinal(t) - Ex
- Sinal(In(1, X1))
16/25
17. 4-Codificação do Conhecimento Geral Sobre o Domı́nio
A seguir os axiomas necessários para nosso mecanismo de
inferência.
I Dois terminais conectados tem o mesmo sinal.
∀t1, t2 Terminal(t1) ∧ Terminal(t2) ∧ Connectados(t1, t2) →
Sinal(t1) = Sinal(t2)
I O sinal em cada terminal pode assumir valores 0 ou 1.
∀t Terminal(t) → Sinal(t) = 1 ∨ Sinal(t) = 0
I A propriedade conectado é comutativa.
∀t1, t2 Conectados(t1, t2) → Conectados(t2, t1)
I Existem quatro tipos de porta.
∀g Porta(g) ∧ k = Tipo(g) → k = AND ∨ K = OR ∨ k =
XOR ∨ k = NOT
17/25
18. Axiomas-Cont..
I A saı́da da porta AND é zero se e somente se uma das suas
entradas é zero.
∀g Porta(g) ∧ Tipo(g) = AND → Sinal(Saida(1, g)) = 0 ↔
∃n Sinal(Entrada(n, g)) = 0
I A saı́da da porta OR é 1 se e somente se uma de suas
entradas é 1.
∀g Porta(g) ∧ Tipo(g) = OR → Sinal(Saida(1, g)) = 1 ↔
∃n Sinal(Entrada(n, g)) = 1
I A saı́da da porta XOR é 1 se e somente se suas entradas são
diferentes.
∀g Porta(g) ∧ Tipo(g) = XOR → Sinal(Saida(1, g)) = 1 ↔
Sinal(Entrada(1, g)) 6= Sinal(Entrada(2, g))
I A saı́da da porta NOT é diferente do sinal de entrada.
∀g Porta(g) ∧ Tipo(g) = NOT → Sinal(Saida(1, g)) 6=
Sinal(Entrada(1, g))
18/25
19. Axiomas - Cont.
I As portas, exceto a porta NOT, tem duas entradas e uma
saı́da.
∀g Porta(g) ∧ Tipo(g) = NOT → Aridade(g, 1, 1)
∀g porta(g) ∧ k = Tipo(g) ∧ (k = AND ∨ k = OR ∨ k =
XOR) → Aridade(g, 2, 1)
I um circuito tem o número de terminais máximos iguais a
aridade de entrada ou saı́da respectivamente.
∀c, i, j Circuito(c) ∧ Aridade(c, i, j) →
∀n (n ≤ i → Terminal(Entrada(c, n))) ∧ (n > 1 →
Entrada(c, n) = Nada) ∧ ∀n(n ≤ j →
Terminal(Saida(c, n))) ∧ (n > j → Saida(c, n) = Nada)
19/25
20. Axiomas - Finalmente
I Portas, terminais, sinais, tipos de portas e nada são coisas
diferentes. ∀g, t Porta(g) ∧ Terminal(t) → g 6= t 6= 1 6= 0 6=
OR 6= AND 6= XOR 6= NOT 6= Nada
I Portas são circuitos.
∀g Porta(g) → Circuito(g)
20/25
21. 5-Uma instância Particular
I Circuito(C1) ∧ Aridade(C1, 3, 2)
I Porta((X1) ∧ Tipo(X1) = XOR
I Porta(X2) ∧ Tipo(X2) = XOR
I Porta(A1) ∧ Tipo(A1) = AND
I Porta(A2) ∧ Tipo(A2) = AND
I Porta(O1) ∧ Tipo(O1) = OR
I Conectados(Saida(1, X1), Entrada(1, X2))
I Conectados(Saida(1, X1), Entrada(2, A2))
I Conectados(Saida(1, A2), Entrada(1, O1))
I Conectados(Saida(1, A1), Entrada(2, O1))
21/25
22. 5-Uma Instância Particular - Continuação
I Conectados(Saida(1, X2), Saida(1, C1))
I Conectados(Saida(1, O1), Saida(2, C1))
I Conectados(Entrada(1, C1), Entrada(1, X1))
I Conectados(Entrada(1, C1), Entrada(1, A1))
I Conectados(Entrada(2, C1), Entrada(2, X1))
I Conectados(Entrada(2, C1), Entrada(2, A1))
I Conectados(Entrada(3, C1), Entrada(2, X2))
I Conectados(Entrada(3, C1), Entrada(1, A2))
22/25
23. 6-Testes e Debug - 1
Podemos agora perguntar a base qual a combinação de entradas
faria o bit da soma ser zero e o bit deslocado (carry) ser 1.
∃i1, i2, i3 Sinal(Entrada(1, C1)) = i1 ∧ Sinal(Entrada(2, C1)) =
i2 ∧ Sinal(Entrada(3, C1)) = i3 ∧ Sinal(Saida(1, C1)) =
0 ∧ Sinal(Saida(2, C1)) = 1
A resposta deverá ser uma substituição para as variáveis i1, i2, i3 :
{i1/1, i2/1, i3/0}, {i1/1, i2/0, i3/1}, {i1/0, i2/1, i3/1}
23/25
24. 6-Testes e Debug 2
Quais os conjuntos de valores possı́veis para o circuito somador?
∃ i1, i2, i3, o1, o2 Sinal(Entrada(1, C1)) =
i1 ∧ Sinal(Entrada(2, C1)) = i2 ∧ Sinal(Entrada(3, C1)) =
i3 ∧ Sinal(Saida(1, C1)) = o1 ∧ Sinal(Saida(2, C1)) = o2
24/25
25. 6-Testes e Debug 3
Imagine que tenhamos esquecido de diferenciar o 1 do 0. O
sistema começa a provar apenas as entradas 000 e 110. Porque?
Ao olharmos a base e verificarmos a aplicação do axioma XOR
aplicado a X1 temos:
Sinal(Saida(1, X1)) = 1 ↔ Sinal(Entrada(1, X1)) 6=
Sinal(Entrada(2, X1))
A aplicarmos os valores 10 ou 01, esta expressão se reduz a :
Sinal(Saida(1, X1)) = 1 ↔ 1 6= 0
Se não há nenhuma afimação que 1 6= 0 esta expressão nunca será
satisfeita e nosso sistema não funcionará corretamente.
25/25