O documento descreve diferentes tipos de conhecimento humano e formas de representá-lo, incluindo: (1) Conhecimento procedimental, declarativo, meta, heurístico e estrutural; (2) Tripletos objeto-atributo-valor, listas de propriedades, redes semânticas e enquadramentos como formas de representação; (3) Níveis de conhecimento superficial e profundo.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Representação do conhecimento
1. Conhecimento
Termo abstracto usado para capturar a compreensão de um indivíduo
num domínio específico.
área de conhecimento bem delimitada, focalizada.
Volume
Decisão/Acção
Competência
Conhecimento
Informação
Estruturada
Dados
Valor
Existem várias teorias que explicam como se organiza o conhecimento humano na
resolução de problemas – Vários Tipos de Conhecimento
1
2. Tipos de Conhecimento
• Conhecimento Procedimental
• Conhecimento Declarativo
• Meta-Conhecimento
• Conhecimento Heurístico
• Conhecimento Estrutural
Representação do Conhecimento
Método usado na codificação do conhecimento contido na Base
de Conhecimento do Sistema Pericial
Não existe uma representação única ideal para todos os tipos de
conhecimento
2
3. Conhecimento Procedimental
• Descreve como um problema é resolvido ou como agir perante uma dada
situação (como fazer).
• Regras, estratégias, agendas e procedimentos são representações típicas
para este tipo de conhecimento. Sangrador de
Combustível OK?
Sim Não
Há fugas de ar de Verificar circuito de
admissão ? alimentação
Sim Não
Reparar fugas de Descida de
ar rotação?
Sim Não
Teste de Posição parafuso
Mariposa OK? ralenti OK?
Sim Não
Sim Não
...
Reparar válvula Teste de
mariposa Compressão ...
OK?
Sim Não
...
3
4. Conhecimento Declarativo
• Descreve o que é conhecido acerca de um determinado problema.
Inclui declarações (statements) que são assumidas como
verdadeiras ou falsas e que descrevem um objecto ou conceito.
• Corresponde a uma representação descritiva.
Exemplo
Fumar pode provocar cancro no pulmão.
• Conhecimento Declarativo
– é mais transparente – mais facilmente entendido, mais fácil de manter
• Representações procedimentais
– são mais eficientes, mas mais difíceis de manter
4
5. Meta-Conhecimento
• Conhecimento acerca do próprio conhecimento.
• é usado para aceder a conhecimento mais orientado para resolver
determinado problema
• Aumenta a eficiência de resolução do problema dirigindo o
raciocínio para o subconjunto de conhecimento mais adequado
• Representado através de meta-regras – regras que descrevem
como usar outras regras
Exemplo
Se o carro não pega
E o sistema eléctrico está operacional
Então usar regras relativas ao circuito de alimentação
5
6. Conhecimento Heurístico
• Reflecte o conhecimento obtido com toda a experiência que se
detém ao lidar com um determinado tipo de problema
• É obtido pela experiência prévia na resolução de um grande
número de problemas de uma determinada especialidade, é
essencialmente empírico
• Muitas vezes assume o aspecto de regras de bom senso ou de
“Rules of Thumb”
Exemplo
Para elaborar horários considerando salas devemos começar com as salas
que impõem mais restrições;
Numa máquina de pintura fazer as mudanças de tintas sempre das mais
claras para as mais escuras.
6
7. Conhecimento Estrutural
Descreve a estruturação do conhecimento, ou seja, o modelo mental
que o perito tem na resolução de um determinado tipo de problema.
Pode indicar conceitos e sub-conceitos na estruturação do
conhecimento.
Exemplo com as anomalias no Betão
Tipos de Anomalias no Betão
Fissura
Excesso de Ar
Excesso de Água
Grande grau de Silicato Tricálcio no Cimento
Factores Climatéricos
Temperatura Inconstante
Chocho
Má vibração
Falta de Inertes Finos
Cofragem não estanque
Excesso de Inertes Grossos ....
7
8. Tipos de Conhecimento
Regras
Estratégias
Agendas
Conhecimento Procedimental
Procedimentos
Conceitos
Conhecimento Declarativo Objectos
Factos
Conhecimento acerca de outros tipos de
Metaconhecimento conhecimento e como usá-lo
Conhecimento Heurístico Regras de bom-senso
Conjuntos de Regras
Conhecimento Estrutural Relações entre Conceitos
Relações entre Objectos
8
9. Conhecimento do Perito
• não e geralmente baseado em definições claras nem em
algoritmos precisos
• é composto por teorias de carácter geral, mas também por regras
de dedo, estratégias e truques aprendidos com a experiência ...
heurísticas
... utilizadas para simplificar a resolução de problemas, para
identificar situações comuns
• é muito dependente do domínio
• pode estar continuamente sujeito a mudança
Consequências
Separação explícita entre conhecimento e algoritmos
para aplicação do conhecimento
Sistema Pericial = Conhecimento + Inferência
9
10. Níveis de Conhecimento
Conhecimento Superficial
• faz uma descrição básica (superficial) do conhecimento
Exemplo
SE o depósito de gasolina está vazio ENTÃO o carro não irá funcionar
• é muito limitado, por exemplo, explicar a alguém os fenómenos
que se passam
• não traz valor acrescentado por ser demasiadamente genérico e
básico
• é um tipo de conhecimento que tira relações causa-efeito - “caixa
preta” (no sentido de não se observar o interior dos sistemas)
10
11. Níveis de Conhecimento
Conhecimento Profundo
• considera a estrutura causal e interna de um sistema e contempla
a interacção entre os componentes desse sistema
• É mais difícil de adquirir, representar e validar
• A representação com redes semânticas ou enquadramentos
(frames) é a mais adequada.
11
12. Representação do Conhecimento
Necessário formalismos:
• Utilizáveis em computador
• Com forma próxima da do conhecimento do perito
• Que facilitem as operações de recolha, organização, manutenção,
validação ....
.... transparentes
12
13. Representação do Conhecimento
Alguns formalismos de representação do conhecimento mais
vocacionados para o desenvolvimento de Sistemas Periciais :
• Tripletos Objecto-Atributo-Valor e Listas de Propriedades
• Relações de Classificação e Pertença (IS-A e IS-PART)
• Redes Semânticas
• Enquadramentos (Frames)
• Guiões
• Regras
• Lógica
13
14. Tripletos Objecto-Atributo-Valor (O-A-V)
Caracterizam os valores de determinados atributos de um dado
objecto
O objecto pode ser uma entidade física (carro) ou uma entidade
conceptual (empréstimo)
has is
Objecto Atributo Valor
14
15. Tripletos Objecto-Atributo-Valor (O-A-V)
Exemplo
Tripletos associados a um carro
carro-marca-opel
carro-modelo-astra
carro-cilindrada-1400
carro-nºportas-4
carro-côr-verde
...
Os tripletos podem vir afectados de valores numéricos que expressam a
certeza, ou incerteza, que se tem no conhecimento em causa.
Exemplo
Previsão do tempo é de chuva com 60% de certeza
(previsão- tempo-chuva – CF = 0.6)
15
16. Listas de Propriedades
No exemplo
carro-marca-opel
carro-modelo-astra
carro-cilindrada-1400
carro-nºportas-4
carro-côr-verde
...
O nome do objecto aparece muitas vezes, visto que temos muitos
atributos para o mesmo objecto.
Nessas situações podemos usar listas de propriedades, nas quais
para um dado objecto temos uma lista de pares atributo‑valor.
Lista de propriedades para o carro:
carro-[marca-opel, modelo-astra, cilindrada-1400, nºportas-4, côr-verde,...].
16
17. Limitações
• Os tripletos e as listas de propriedades têm limitações quando se
pretende representar conhecimento declarativo sobre atributos de
objectos que estejam em modificação.
• Nessas situações o conhecimento é dinâmico e temos que
modificar o valor de um atributo.
Exemplo
tripletos dinâmicos que se referem ao estado de um disjuntor (aberto ou
fechado) e ao modo de operação de uma linha (manual ou automático):
disjuntor_D - estado-aberto.
linha_L - modo_operação - manual.
17
19. Relações de Pertença (IS-PART)
As relações de pertença (IS-PART) organizam o conhecimento
através da composição ou decomposição de componentes.
Mobiliário de
Cozinha
IS-PART IS-PART
Cadeira
Mesa
IS-PART
IS-PART
IS-PART IS-PART
IS-PART
Pernas da Cadeira Encosto Assento Pernas da Mesa Tampo
19
20. Relações de Classificação (IS-A) e de
Pertença (IS-PART)
As relações IS-A e IS-PART podem ser combinadas na mesma
representação.
Computador
IS-PART IS-PART IS-PART
CPU teclado
monitor
....... .......
IS-A
Pentium 4 .......
20
21. Redes Semânticas
• São um método de representação do conhecimento através de um
grafo directo composto por nós e arcos
• Os nós representam objectos (físicos ou abstractos), as suas
propriedades e valores
• Os arcos representam relações entre os nós
• As relações IS-A e IS-PART são vulgarmente usadas como
etiquetas dos arcos, podem ser usadas outras etiquetas à nossa
escolha (tem, desloca-se, respira, etc) que capturam conhecimento
21
22. Redes Semânticas
A sas Ar
te m r e s p ir a
IS -A IS -A IS -A
A m a r e lu s C a n á r io A ve A n im a l
d e s lo c a ç ã o
IS -A
IS -A P in g u im
B la c k & W h it e
Voo
d e s lo c a ç ã o
Andar
22
23. Modo de Operação
Quando se coloca uma questão a um Nó,
este procura nos seus arcos locais por uma etiqueta que coincida
com a questão
se não existir procura a resposta via as suas ligações IS_A, ou seja,
passa a questão até um Nó que contenha um arco com a resposta.
deslocação Amarelus ?
deslocação deslocação deslocação
Utilizador Amarelus Canário Ave
vôo vôo
vôo
deslocação
Vôo
23
24. Inferência sobre Redes Semânticas
Para descrever o processo de inferência nas Redes Semânticas
vamos usar lógica:
Cada ligação
Relação
Obj1 Obj2
É traduzido para
relação (Obj1,Obj2)
Deslocação Amarelus ?
Is_a (Amarelus,Canário).
Is_a (Canário, Ave).
deslocação(Ave,Voo).
24
25. Inferência sobre Redes Semânticas
O tratamento de excepções no mecanismo de herança faz-se impondo
uma restrição ao mecanismo de herança
algo dito explicitamente sobrepõe-se aos factos herdados
deslocação Black&White?
Is_a (Black&White,Pinguim).
deslocação(Pinguim,andar).
Is_a (Pinguim, Ave).
Is_a (Ave,animal).
respira(Ave,Ar).
herda todas as características da superclasse
excepto aquelas explícitas no próprio Nó
25
26. Características Redes Semânticas
• simplicidade de representação - devido às características de
herança
– Amarelus herda todas as propriedades de Aves
• as Redes Semânticas estão na origem da Programação Orientada a
Objectos
• permitem uma redução no tempo de pesquisa, visto que os nós
estão directamente ligados aos nós vizinhos com interesse
Desvantagens:
• podem permitir inferências inválidas
• não têm uma norma de interpretação - a interpretação depende dos
programas que a manipulam.
26
27. Exemplo
• Uma ave é um animal.
• A maneira normal de movimentação das aves é voar.
• Uma ave está activa durante o dia.
• Um albatroz é uma ave.
• Uma albatroz é preto e branco.
• O tamanho normal do albatroz é 115 cm.
• O Alberto é um albatroz.
• O tamanho do Alberto é 120 cm.
• Um pinguim é uma ave.
• Um pinguim é branco e preto.
• A maneira normal de movimentação dos pinguins é andar.
• O Tweety é um pinguim.
Questões:
– Qual o método de movimentação do Alberto ?
– Qual o método de movimentação do Tweety ?
27
28. Exemplo
andar
deslocação
IS-A diurna
tweety Pinguim
IS-A actividade
cor
Preto e IS-A
Ave Animal
Branco
cor deslocação
IS-A
IS-A
Alberto Albatroz
Vôo
tamanho tamanho
120 cm 115 cm
28
29. Enquadramentos (Frames)
• Introduzido em 1975 por Marvin Minsky
• Permitem representar conhecimento de um conceito ou objecto
• Um enquadramento é uma versão enriquecida de um registo ou de
um objecto:
• Propriedades
• Herança: características, comportamentos
• É possível criar Instâncias dos Enquadramentos
• Adequados para sistemas complexos, de larga escala, envolvendo
valores por defeito e quantidades elevadas de dados conhecidos
a-priori
29
30. Frames - Campos
• Identificador
• Slots
– são representados em gavetas (slots)
– correspondem aos atributos
– Cada slot tem
• identificação
• valor que toma por defeito (quando nenhum valor foi ainda atribuído)
• valor actual (espaço onde são guardadas as alterações ao atributo)
Nome do frame
Nome do slot 1 Valor por defeito - slot 1 Valor actual slot 1
Nome do slot 2 Valor por defeito - slot 2 Valor actual slot 2
30
31. Definição de Frames em LPA Flex
frame <nome_do_frame>
[{is a|is an|is a kind of} <frame_pai>] [,<outro_frame_pai>,…] [;]
[ [ default <slot> {is|is a|are} <valor> ]
[ and default <outro_slot> {is|is a|are} <outro_valor> [and … ] ] [;]
[ inherit <slot> from <nome_do_frame_herda>
[ and do not inherit <slot> [ and …] ] ] ].
• nome_do_frame é o nome do frame (atómico)
• frame_pai, outro_frame_pai e nome_do_frame_herda
são nomes de frames (com o mesmo formato) definidos noutro local
• slot e outro_slot são identificações dos slots pertencentes
ao frame nome_do_frame.
• valor e outro_valor são valores por defeito que os slots tomam respectivamente.
31
32. Relações entre Frames
Permitem implementar características de herança entre Frames
Tipos de Relações
• “is a” ou “is an” : relação de dependência hierárquica entre
frames
• “inherit” : herança de slot(s) de frames que não estão na mesma
linha de hierarquia
• “do not inherit” : ausência de herança de slot(s) de frame(s)
hierarquicamente superiores
• um slot ser ele mesmo um frame
32
33. “Is a” Simples
O frame_filho herda todos os slots de frame_pai
frame_pai
slot_1 valor_1
slot_2 valor_2
Is a
frame_filho frame frame_pai
default slot_1 is valor_1 and
slot_3 valor_3 default slot_2 is valor_2.
slot_4 valor_4
frame frame_filho is a frame_pai
default slot_3 is valor_3 and
default slot_4 is valor_4.
33
34. “Is a” Múltiplo
Exemplo
Mamífero
pele pelo
habitat terra
frame mamifero
movimento anda,nada
default pele is pelo and
default habitat is terra and
Is a
default movimento are {anda,nada}.
Felino
cauda longa frame felino is a mamifero
default cauda is longa and
pernas 4
default pernas are 4.
34
35. “Inherit”
Herança de slot(s) de frames que não estão na mesma linha de hierarquia
frame_pai outro_frame
slot_1 valor_1 slot_3 valor_3
slot_2 valor_2 slot_4 valor_4
Is a inherit
frame_filho frame frame_pai
default slot_1 is valor_1 and
slot_5 valor_5
default slot_2 is valor_2.
slot_6 valor_6
frame outro_frame
default slot_3 is valor_3 and
default slot_4 is valor_4.
frame frame_filho is a frame_pai
default slot_5 is valor_5 and
default slot_6 is valor_6 ;
inherit slot_4 from
outro_frame. 35
36. “Inherit” - Exemplo
Pássaro Mamífero
pele penas pele pelo
habitat árvore habitat terra
movimento voa movimento anda,nada
Is a inherit
frame passaro
Pinguim
.... pele lisa
frame mamifero habitat terra
......
frame pinguim is a passaro
default pele is lisa and
default habitat is terra ;
inherit movimento from mamifero.
36
37. “do not inherit”
Ausência de herança de slot(s) de frame(s) hierarquicamente superiores
frame_pai
slot_1 valor_1
slot_2 valor_2
frame frame_pai
default slot_1 is valor_1 and
Is a Do not inherit
default slot_2 is valor_2.
frame_filho
frame frame_filho is a frame_pai
slot_3 valor_3
default slot_3 is valor_3 and
slot_4 valor_4 default slot_4 is valor_4 ;
do not inherit slot_2.
37
38. “do not Inherit” - Exemplo
Pássaro
pele penas
habitat árvore
movimento voa
Is a Do not inherit frame passaro
Pinguim
default pele is penas
pele lisa default habitat is arvore and
habitat terra default movimento is voa;
frame pinguim is a passaro
default pele is lisa and
default habitat is terra ;
do not inherit movimento.
38
39. Um slot como Frame
O slot tem como valor por defeito o nome de um frame que pode depois
ser acedido como tal
frame_1 frame_2
slot_1 slot_3 valor_3
slot_2 valor_2 slot_4 valor_4
frame frame_1
default slot_1 is frame_2 and
default slot_2 is valor_2.
frame frame_2
default slot_3 is valor_3 and
default slot_4 is valor_4.
39
40. Exercício Definir em termos de frames em LPA-flex a estrutura
Empregado
nome ''
morada ''
vencimento 0
Is an Is a
Is a
Programador Relações Públicas
categoria prog categoria rel_pub
num_pr 0
Gestor de Projecto
categoria gest_proj
Projecto
identificacao ''
lista_prog nothing
sistema ''
linguagem ''
gestor ''
rel_pub ''
estado 'em construção'
40
41. frame empregado frame projecto
default nome is '' and default identificacao is '' and
default morada is '' and
default lista_prog is nothing and
default vencimento is 0.
default sistema is '' and
frame programador is an empregado default linguagem is '' and
default categoria is prog. default gestor is '' and
default rel_pub is '' and
frame 'gestor de projecto' is an empregado
default estado is 'em construcao'.
default categoria is gest_proj.
frame 'relacoes publicas' is an empregado
default categoria is rel_pub and
default num_pr is 0.
41
42. Instância de um Frame
• é um elemento do conjunto que o frame representa, ou uma particularização da
classe
• podem ser vistas como frames cujos slots estão restringidos apenas ao valor
actual
• as instâncias, contrariamente aos frames, só podem ter um pai
• é possível introduzir novos atributos a instâncias
Frame Instância
Nome do
Enquadramento
Tweety
Nome do
Ave
Enquadramento
Classe Ave
Propriedades Nº Asas 2
Propriedades Cor Branco
Voa Verd
Nº Asas 2
Actividade Desc Voa Falso
Actividade Desc
42
43. Definição de Instância
As instâncias podem ser definidas:
• no programa
• em execução (através de acções)
Definição no programa
instance <nome_da_instancia>
[ is a | is an | is a kind of | is an instance of <nome_do_frame> ] [;]
[ [ <slot> is|is a|are <valor> ]
[ and <outro_slot> is|is a|are <outro_valor> [and … ] ] [;]
[ inherit <slot> from <nome_do_frame_herda>
[ and do not inherit <slot> [ and …] ] ] ].
Exemplo
instance Tweety is a passaro;
Cada vez que se tenha de criar uma
movimento are {voa, nada}; nova instância é necessário:
cor is branco&preto. • acrescentar a instância ao programa
• reinicia-lo ineficiente !
43
44. Questões e Respostas
Permitem a comunicação entre o LPA Flex e o utilizador
Tipos de questões
• Questões de menu
question <nome_da questão>
<Texto a apresentar pela questão> ;
choose {one | some} of <grupo_de_escolha>.
• Questões de introdução
question <nome_da questão>
<Texto a apresentar pela questão> ;
input {number | name | set}.
44
45. Questões e Respostas - Exemplos
Questão de Menu
group tipos_hobbies
estudar, ler, praticar_desporto.
question tempos_livres
O que faz nos seus tempos livres ? ;
choose some of tipos_hobbies.
Questão de introdução
question int_numero
Introduza um numero ;
input number.
45
46. Acções
• São uma colecção de directivas para execução
• correspondem aos predicados em PROLOG (sintaxe diferente)
• só existe uma definição possível para cada acção
• uma acção pode ter um número arbitrário de argumentos
• são úteis para aceder ou mostrar valores de slots, criar instâncias
Sintaxe
action <nome_da_acção>
do <directiva_1> [ and <directiva_2> [ and … ] ].
46
47. Acções
% Grupos
group animais
mamifero, passaro, felino, pinguim.
% Questões
Acção para criar uma instância em execução de
Question escolher_animal qualquer tipo de animal
Escolha o animal;
choose some of animais. action cria_animal (TipoAnimal , NomeAnimal )
question introduzir_nome do ask escolher_animal
Introduza o nome; and check that TipoAnimal is escolher_animal
input name and ask introduzir_nome
and check that NomeAnimal is introduzir_nome
and NomeAnimal is a new TipoAnimal.
47
48. Programação gerida por dados
Associados aos Frames existem procedimentos que são activados
sempre que são realizadas operações de actualização, acesso ou
criação de uma instância do Frame.
Tipos de procedimentos geridos por dados:
• Launches
• Constraints
• Demons
• Watchdogs
48
49. Programação gerida por dados
procedimentos geridos por dados
frames slots
acesso actualização
antes depois
launches watchdogs constraints demons
49
50. Launch
Procedimento gerido por dados invocado sempre que uma nova
instância de um qualquer frame é criada.
Quando uma nova instância é criada, todas as launches existentes
são verificadas e aquelas cujas condições se verifiquem são
executadas.
É composto por três partes distintas:
• Contexto: teste para verificação de uma condição (qual o frame de que foi
criada a instância)
• Teste: um teste de condições para verificar se o launch deve actuar
• Acção: uma série de comandos a serem executados se todas as condições
forem satisfeitas.
50
51. Launch
Sintaxe
launch <nome_da_launch>
when [the] <{valor | variável}> is a new < nome_do_frame >
[ and <condiçao> [and …] ]
then <acção_1> [ and <acção_2> [ and … ] ].
Exemplo
frame empregado
default sexo is masculino.
launch novo_empregado
when Pessoa is a new empregado
and sexo of Pessoa is masculino
then questoes_sexo_masculino( Pessoa ).
instance pedro is an empregado.
51
52. Constraint
• Uma restrição é algo que afecta um slot individualmente
• é implementada de forma a que restrinja a alteração ao conteúdo do slot da
forma desejada
• é activada sempre que um determinado slot esteja prestes a ser alterado, sendo
invocada imediatamente antes do conteúdo do slot ser realmente alterado, para
validar a alteração
É composto por três partes distintas:
• Contexto: teste para verificação de uma condição
(qual o slot a ser restringido)
• Teste: um teste de condições para verificar se a restrição deve actuar
• Erro: uma série de comandos a serem executados se as restrições não
forem satisfeitas.
52
53. Constraint
Sintaxe
constraint <nome_da_restrição>
when [the] <slot > [ of < nome_do_frame> ] changes to <{valor|variável}>
[ and <condiçao> [and …] ]
then check [that] <verificação_1> [ and < verificação _2> [ and … ] ]
[ otherwise <acção_1> [ and <acção_2> [ and … ] ] ].
Exemplo
frame empregado
default sexo is masculino.
constraint tipo_sexo
when the sexo of Pessoa changes to S
and Pessoa is some empregado
then check that S is included in {masculino, feminino}
otherwise nl and write(' Nao e'' possivel' ) and nl.
instance pedro is an empregado.
53
54. Demon
• é invocada sempre que existe alteração a um determinado valor de
um qualquer atributo,
• É executada imediatamente depois da alteração ter acontecido
• não restringe a alteração, existe apenas para invocar uma acção
depois da alteração ocorrer
É composta por três partes distintas:
• Contexto: teste para verificação de uma condição
(qual o slot a provocar acções )
• Teste: um teste de condições
• Acção: uma série de comandos a serem executados se as
restrições não forem satisfeitas.
54
55. Demon
Sintaxe
demon <nome_da_demon>
when [the] <slot> [ of < nome_do_frame> ]
[changes from <{valor|variável}> ] to {valor|variável}>
[ and <condiçao> [and …] ]
then <acção_1> [ and <acção_2> [ and … ] ] ].
Exemplo
frame empregado
default sexo is masculino.
demon qual_sexo
when the sexo of Pessoa changes from S1 to S2
and Pessoa is some empregado
and S1 is different from S2
then write(' A mudanca de sexo e'' pouco habitual!' ) and nl.
55
56. Watchdog
• implementam restrições de acesso aos valores dos atributos
• sempre que um valor de um determinado atributo é pedido, e
imediatamente
antes deste ser fornecido, verificam automaticamente as condições de acesso
• baseiam o seu funcionamento em condições que permitem ou não a
disponibilização de informação.
É composto por três partes distintas:
• Contexto: teste para verificação de uma condição
(qual o slot a ter restrições de acesso )
• Teste: um teste de condições para verificar se a restrição deve actuar
• Erro: uma série de comandos a serem executados se restrições não forem
satisfeitas.
56
57. Watchdog
Sintaxe
watchdog <nome_do_watchdog>
when [the] <slot > [ of < nome_do_frame> ] is requested
[ and <condiçao> [and …] ]
then check [that] <verificação_1> [ and < verificação _2> [ and … ] ]
[ otherwise <acção_1> [ and <acção_2> [ and … ] ] ].
Exemplo
frame conta
default saldo is 0.
frame utilizador
default nome is '' and
default acesso is 0.
watchdog seguranca_de_conta
when the saldo of the Conta is requested
and Conta is some conta
then check that the acesso of utilizador is above 99
otherwise nl and write( 'Acesso negado ao utilizador ' ) and
write( utilizador`s nome ).
57
58. Frames
• facilitam o processamento orientado pelas expectativas, através
do uso de procedimentos geridos por dados, ficam num estado de
espera até serem realmente necessários
• permitem uma boa organização do conhecimento
• são auto-guiáveis, ou seja, eles são capazes, por si só, de
determinar quando devem ser aplicados, se não forem aplicáveis
podem sugerir outros Enquadramentos que o sejam.
• permitem guardar valores dinâmicos
Desvantagens
• são pouco adequados a novas situações
• a explicitação de conhecimento heurístico, comum em regras, é
complexa
58
59. Guiões (Scripts)
Especificam uma sequência estereotipada de acontecimentos que normalmente
acontecem e que se seguem para representar conhecimento procedimental.
Contêm um conjunto de “slots” dos seguintes tipos:
– Condições de entrada – que devem ser atendidas para que os eventos
descritos no guião possam ocorrer
– Resultados – que irão ser verdadeiros após a ocorrência dos eventos
descritos no guião
– Objectos – representando objectos envolvidos nos eventos do guião
– Participantes – representando entidades que estão envolvidas nos eventos
do guião
– Cenas – sequências de eventos que ocorrem
São adequados:
– para os casos em que temos sequências tipificadas (por exemplo, as fases da
análise de um incidente)
– para descrever planos que devem ser seguidos (por exemplo, os tratamentos
a seguir para a cura de uma doença).
59
60. Guiões (Scripts)
Participantes: cliente, empregado, dono,...
Objectos: mesa, cadeira, refeição, ....
Condições de entrada: cliente com apetite e dinheiro, mesa/vaga
disponível,...
Condições de saída: cliente satisfeito, cliente com menos dinheiro, dono
com mais dinheiro,...
Cena 1: cliente entra no restaurante, aguarda por lugar, senta-se
Cena 2: cliente chama empregado, pede menu, escolhe,...
....
Cena N: cliente chama empregado, pede conta, paga, sai.
60
61. Regras
Modelo psicológico do comportamento humano (regras de
produção):
Estímulos Acções
É uma forma de conhecimento procedimental
associa informação dada com alguma acção
Neste modelo, um processador cognitivo tenta disparar as regras
activadas pelos estímulos adequados
É o papel do motor de inferência
61
62. Forma Geral
Se Antecedente Então Consequente1
Senão Consequente2
Ou
Se Condição1 E ... E CondiçãoN
Então Conclusão11 E ... E Conclusão 1M
Senão Conclusão21 E ... E Conclusão 2M
As condições do antecedente podem também estar ligadas por OU:
Condição1 E ... E CondiçãoN
OU CondiçãoN1 E ....
62
63. Forma Geral
Regra1
Se SensorA tem valor > 50
Então temperatura da água é muito alta
Senão temperatura da água é normal
Alternativa (de mais fácil validação):
Regra 1a: Se SensorA tem valor > 50
Então temperatura da água é muito alta
Regra 1b: Se SensorA tem valor <= 50
Senão temperatura da água é normal
63
64. Antecedentes Disjuntivos
Se A = x OU B = y Então C = k
Pode converter-se em
Se A = x Então C = k
Se B = y Então C = k
Vantagem
Mais fácil o acompanhamento da inferência
64
65. Forma Geral
Formato das regras
regra Identificador : se LHS então RHS1
Exemplo
Regra r1: SE Bot_1=actuado E Bot_2=actuado ENTÃO Sistema_A=activado
LHS RHS
65
66. Regras
LHS (Left-Handed Side)
• contempla as condições que terão que ser atendidas para que a
regra seja aplicável
• pode envolver a conjunção, disjunção e negação de termos
• os termos podem ser factos básicos ou termos gerados pelas
conclusões de outras regras - hipóteses ou conclusões intermédias
66
67. Regras
RHS (Right-Handed Side)
• corresponde às conclusões ou acções que se podem obter caso as
condições sejam verdadeiras
• alguns sistemas só permitem uma conclusão por regra (Cláusulas
de Horn)
• outros permitem mais do que uma conclusão
• as conclusões podem ser intermédias, se entrarem no LHS de
outras regras (também recebendo o nome de hipóteses) ou
conclusões definitivas
67
68. Regras vs. Triplos OAV
Regra 1a:Se SensorA tem valor > 50
Então temperatura da água é muito alta
Se Então
Objecto Sensor A Água
Atributo tem valor temperatura
Valor > 50 muito alta
68
69. Regras vs. Triplos OAV
• As condições e as conclusões serão
genericamente designadas por átomos
• Os átomos podem ser:
• Triplos Objecto|Atributo|Valor
• Pares Atributo/Valor (objectos implícitos)
69
70. Pares Atributo/Valor vs. Triplos OAV
Se classificação > 14 Objectos implícitos
Então admitir ao Mestrado
Se Então
Objecto Classificação Admissão Mestrado
Valor > 14 Sim
• Melhor
Se classificação do aluno > 14 Objectos explícitos
Então Aluno Estado de Admissão Mestrado = Sim
Se Então
Objecto Aluno Aluno
Atributo Classificação Admissão Mestrado
Valor > 14 Sim
70
71. Tipos de Regras
Relação Recomendação
Se bateria descarregada Se o automóvel não arranca
Então o automóvel não arrancará Então arranjar cabos
Orientação Heurística
Se o automóvel não arranca Se o automóvel não arranca
E sistema de alimentação = Ok E carro modelo Ford, 1975
Então verificar sistema eléctrico Então Verificar Circuito de Alimentação
Estratégia
Se o automóvel não arranca
Então 1º verificar sistema de alimentação
em seguida o sistema eléctrico
71
72. Classificação das Regras quanto à Incerteza
Regras de Validade absoluta
Regra da implicação usada na Lógica
Ex: mortal (X) SE humano (X)
má (ideia) SE
mau-humor (patrão) AND
pedir (patrão, aumento)
Regras de Validade Incerta
Regras com grau de certeza
Ex: Se Inflação Elevada
Então Taxas de Juro Elevadas FC=0,8
Regras com probabilidades associadas
72
73. Regras Variáveis
Se ?X é Empregado
E ?X Idade > 65
Então ?X pode reformar-se.
O motor de inferência processa a memória de trabalho de modo a
encontrar factos que verifiquem ambas as condições
João é Empregado.
João Idade = 75.
Maria é Empregado.
Maria Idade = 35.
João pode reformar-se.
73
74. Regras Causais vs. Regras de Diagnóstico
Uma regra de Produção numa Base de Conhecimento pode estar em
uma das seguintes formas:
• Causas influenciam a verosimilhança de sintomas (efeitos), ou
• Sintomas observados afectam a verosimilhança de todas as
suas causas
Regras Causais
R1 SE torniquete funcionou ENTÃO relva húmida (FC)
R2 SE choveu ENTÃO relva húmida (FC)
Regra Tipo Diagnóstico
R3 SE relva húmida ENTÃO choveu (FC)
74
75. Regras Causais vs. Regras de Diagnóstico
• A mistura numa mesma Base de Conhecimentos dos dois tipos de
Regras (que aliás representam conhecimento verdadeiro) pode ser
desastrosa.
No exemplo anterior:
A aplicação da Regra R1 seguida de R3
levaria a concluir que choveu porque o torniquete funcionou
• As Bases de Conhecimento devem ser consistentes e incorporar
regras apenas um dos tipos de regras
• São preferíveis Regras do tipo Causal porque assim representa-se
o modelo teórico de causa a efeito.
• Bases de Conhecimento com Regras Causais
são ditas Baseadas em Modelos
75
76. Principais Propriedades da
Representação de Conhecimento com Regras
Modularidade
Cada regra define uma pequena parte do conhecimento relativamente
independente das outras regras
Incrementalidade
Novas regras podem ser acrescentadas à Base de Conhecimento de
maneira relativamente independente
Possibilidade de Modificação
Regras podem ser modificadas de maneira relativamente independnte
Transparência
Permite explicações de raciocínio (questões Como ? E Porquê ?)
76
77. Problemas das Representações por Regras
Ave (X) Deslocação ( X, Voar)
Não está correctamente correcta porque existem excepções
Uma possível solução é a introdução de excepções e o uso da negação
por falha
Ave (X) E ¬pinguim(X) E ¬avestruz(X) Deslocação( X, Voar)
Isto torna difícil gerir todas as excepções
Tratamento de excepções através de regras:
• tem a desvantagem de implicar não só acrescentar novas regras (ex.
sobre aves que não voam) como também modificar outras regras
(regras gerais que descrevem as aves)
77
78. Representação de Conhecimento com Regras
Exemplo
Base de Conhecimento para análise de um problema de inundação num
andar
Conceptualização
• Sintomas possíveis
cozinha Ok / Com água, hall Ok / Com água, WC Ok / Com água
• Outros parâmetros
janela aberta/fechada, choveu/não choveu janela
• Causas (diagnósticos) possíveis
cozinha
choveu
fuga de água na cozinha / no WC
WC hall
78
79. Relacionamento dos sintomas com as causas
R1: Se hall com água
E cozinha Ok
Então fuga de água no WC
R2: Se hall com água
E WC Ok
Então problema na cozinha
R3: Se janela da cozinha fechada
ou não choveu
Então não entrou água de fora
R4: Se não entrou água de fora
E problema na cozinha
Então fuga de água na cozinha
79
80. Lógica
Lógica - forma de representação de conhecimento mais usada ao
nível de computação.
Exemplo
Na compreensão de texto em Língua Natural é usual transformar
frases em representações em lógica
Lógicas mais usuais:
Lógica Proposicional
Lógica de Predicados (ou Cálculo de Predicados)
Outras Lógicas:
Lógica Modal
Lógica Temporal
80
81. Lógica
Em Lógica os símbolos representam conhecimento e os operadores
são aplicados aos símbolos para dar origem a raciocínios lógicos
Operador Símbolos
Conjunção (AND) ∧, &, ∩, .
Disjunção (OR) ∨, ∪ , +
Negação (NOT) ¬,∼
Implicação →, ⊃
Equivalência ≡
81
82. Lógica Proposicional
Usa proposições para a representação do conhecimento e raciocínio
sobre esse mesmo conhecimento.
Exemplo
Representar através de A a proposição que indica:
hoje está a chover
→ A = hoje está a chover.
Se quisermos provar a verdade da proposição hoje está a chover
É necessário provar a verdade da variável A.
82
83. Lógica Proposicional
Tabela de Verdade da Conjunção Tabela de Verdade da Negação
A B C=A∧ B A C=¬A
F F F F V
F V F V F
V F F
V V V
Tabela de Verdade da Disjunção Tabela de Verdade da Equivalência
A B C=A∨ B A B A≡ B
F F F F F V
F V V F V F
V F V V F F
V V V V V V
83
84. Lógica Proposicional
Tabela de Verdade da Implicação AB ≡ ¬ A ∨ B
A B C=A→B
F F V
F V V
V F F
V V V
Exemplo
SE a bateria está em baixo
ENTÃO o carro não vai arrancar
84
85. Algumas Equivalências
na Lógica Proposicional
Nome da Propriedade Equivalência
Idempotência A→B ≡ ¬A ∨ B
A ∧ ¬A ≡ F
A ∨ ¬A ≡ V
Propriedade Comutativa A∧B≡B∧A
A∨B≡B∨A
Propriedade Distributiva A ∧ (B ∨ C) ≡ (A ∧ B) ∨ (A ∧ C)
A ∨ (B ∧ C) ≡ (A ∨ B) ∧ (A ∨ C)
Propriedade Associativa A ∧ (B ∧ C) ≡ (A ∧ B) ∧ C
A ∨ (B ∨ C) ≡ (A ∨ B) ∨ C
Absorção A ∨ (A ∧ B) ≡ A
A ∧ (A ∨ B) ≡ A
DeMorgan ¬ (A ∧ B) ≡ ¬A ∨ ¬B
¬ (A ∨ B) ≡ ¬A ∧ ¬B
85
86. Limitação da Lógica Proposicional
Dificuldade em expressar conhecimento que necessite de
quantificadores (todos, alguns).
Exemplo
“todos os seres humanos são mortais”
e sabendo que
“alguém é um ser humano”
inferir que esse
“alguém é mortal”
∀C [ser_humano(C) → mortal(C)]
86
87. Lógica de Predicados
• Baseada no trabalho de Gottfried Frege
• Opera com predicados e argumentos
• As frases estabelecem relações entre objectos - pessoas, entidades
físicas, conceitos
• Os predicados têm a ver com as relações
• Os argumentos têm a ver com os objectos
• Inclui os quantificadores:
universal (∀ - qualquer) e existencial (∃ - existe)
Exemplo
Em vez de representar uma proposição através de um simbolo
P = Portugal é um país europeu
fica(portugal, europa) → predicado
87
88. Símbolos da Lógica de Predicados
Constantes - usadas para designar objectos ou propriedades dos predicados
Ex. temperatura, maria, ...
Predicados - dividem-se em duas partes: o predicado (asserção acerca do
objecto) e o argumento (representa o(s) objectos(s) da proposição)
Ex: gosta (joão, maria)
Variáveis – usadas para representar classes gerais de objectos ou propriedades
Ex: gosta (X, Y)
Funções - permitem relacionar entidades de um conjunto com um elemento
único de um outro conjunto.
Ex: pai (joão) = antónio mãe (joana) = maria
amigos(pai (joão), mãe (joana)) = amigos (antónio, maria)
Estes símbolos são manipulados usando os
operadores da Lógica Proposicional
88
89. Representação de Frases em
Lógica de Predicados
Todas as crianças gostam de gelados
∀C [criança(C) → gosta(C, gelado)]
Há um oceano que banha Portugal
∃O [oceano(O) → banha(O,portugal)]
Algumas aves migram
∃A [ave(A) → migra(A)]
89
90. Raciocínio usando a Lógica de Predicados
• Requer a capacidade de inferir conclusões a partir dos factos
disponíveis
Através do uso dos operadores do Cálculo de Predicados
Inferência
SE p é verdadeiro
E ( p → q) também é verdadeiro
ENTÃO q é verdadeiro
Nova informação é inferida com base em informação conhecida
usando regras e/ou implicações
“modus ponens”
90
91. Exemplo
D C
A E B
Mesa
Objectos
cubo(a) cubo(b) cubo(d) triângulo(c) esfera(e) pega(pega) mesa(mesa)
Relações
em_cima(a, mesa) em_cima(b, mesa) em_cima(e, mesa) em_cima(d, a)
em_cima(c, b) estado(pega,livre)
Escrever as implicações que permitam
– colocar um bloco em cima do outro
– verificar se um bloco está livre
– verificar que blocos estão por debaixo
91
92. Exemplo - Blocos
Colocar um bloco em cima do outro
Condições:
Pega tem de segurar bloco a colocar em cima
Tem de haver pelo menos um bloco livre para se colocar bloco em cima
∀X ∃Y [ pega_segura(X) ∧ livre(Y) → coloca_em_cima(X, Y) ]
verificar se um bloco está livre
∀X ( ¬ ∃Y em_cima(Y,X) → livre(X) )
verificar que blocos estão por debaixo
∀X ∀Y ( em_cima(Y,X) → em_baixo (X,Y) )
92
93. Raciocínio
Capacidade humana em trabalhar com conhecimento, factos e
estratégias de resolução de problemas por forma a obter conclusões
Entender
– como os humanos raciocínam
– como trabalham com a informação relativa a um dado problema
Permite
delinear o processo de inferência num Sistema Pericial
93
94. Mecanismos de Raciocínio
Indução (do particular para o geral)
Dados Hipóteses
Dedução (do geral para o particular)
Abdução
(gerando explicações)
Evidências
94
95. Raciocínio Dedutivo
• Modo de raciocinar através do qual se parte de um princípio
conhecido em direcção a um princípio desconhecido
• Do geral para o específico
• De uma premissa para uma conclusão lógica
Exemplo
SE
objecto A maior que objecto B
E
objecto B é maior que objecto C
ENTÃO
objecto A também é maior que objecto C
Lógica de Predicados
∀A ∀B ∀C [maior(A,B) ∧ maior(B,C) → maior(A,C)]
95
96. Raciocínio Indutivo
A Indução é definida como o modo de raciocinar a partir de factos
particulares na direcção de uma conclusão geral.
Exemplo
P(a) é verdadeiro
P(b) é verdadeiro
Então, por indução, concluímos que
∀X P(X) é verdadeiro
O Raciocínio Indutivo está na base das Técnicas de Aprendizagem
usadas em Descoberta de Conhecimento a partir de grandes Bases de
dados, Ex: Traçar o perfil de clientes
96
97. Raciocínio Abdutivo
• Observamos algo como sendo verdadeiro e conjecturamos sobre o que
pode ter levado a essa observação
• Tipo de raciocínio usado geralmente na produção de explicações
• Não garante que se chegue a conclusões verdadeiras
se A→ B é verdadeiro
e B é verdadeiro
então A também será possivelmente verdadeiro
Tal conclusão será sustentada no histórico anterior ou apenas no senso
comum.
Exemplo
∀X [nada(X) → molhado(X)]
Com base neste conhecimento e usando raciocínio abdutivo se nos
aparecer alguém molhado vamos admitir que esse alguém esteve a nadar
97
98. Modus Ponens
É a base do raciocínio dedutivo
Se p é verdadeiro
e ( p → q) também é verdadeiro
então q é verdadeiro
Exemplo
“se alguém está a nadar então está molhado”.
∀X [nada(X) → molhado(X)]
p = nada(X) e q = molhado(X)
Se soubermos que X está a nadar e sabendo que quem nada se molha
então podemos, pelo “modus ponens”, concluir que X está molhado.
98
99. Modus Ponens
Exemplo
1. Se temperatura > 38.2º então paciente tem febre
E1 → E2
2. Se paciente tem febre então prescrever 1 aspirina
E2 → E3
Provar E3 assumindo que o paciente tem temperatura > 38.2º
Estado-0 Estado-1 Estado-2
1. E1→E 2
1. E1→E 2
1. E1→E 2
• E → E
2 3
2. E → E
2 3
2. E → E
2 3
1. E1 3. E1 3. E1
4. E2 4. E2
5. E3
99
100. Modus Tollens
Se a declaração
se (p → q) é verdadeiro
e q é falso
então podemos inferir que
p é falsa.
O “modus tollens” é a base do raciocínio baseado em regras.
Exemplo
“se alguém está a nadar então está molhado”.
∀X [nada(X) → molhado(X)]
p = nada(X) e q = molhado(X)
Se soubermos que X não está molhado então podemos inferir que X não
está a nadar.
100
101. Princípio da Resolução
Estratégia de inferência com a qual se tenta provar que a negação do
objectivo ¬O não é Verdadeiro – Prova por Refutação.
Prova Automática de Teoremas baseada no Princípio da Resolução:
Para provar A
1. transformam-se os axiomas garantidamente verdadeiros na
forma clausal, usando os princípios da idempotência:
A→B ≡ ¬A ∨ B, A ∧¬A ≡ F, A ∨¬A ≡ V
2. de seguida junta-se ¬A
3. se por aplicação da regra de resolução a situação na prova
falha
4. conclui-se que ¬A é falso e portanto A é verdadeiro
101
102. Princípio da Resolução – Exercício
Exemplo
1. Se temperatura > 38.2º então paciente tem febre
E1 → E2 ≡ ¬ E1 ∨ E2
2. Se paciente tem febre então prescrever 1 aspirina
E2 → E3 ≡ ¬ E2 ∨ E3
Pretende-se provar E3, (ou seja, prescrever 1 aspirina) de acordo com o
Princípio da Resolução assumimos ¬ E3 e acrescentamos este facto à
lista de axiomas.
102
104. Resolução – Exercício
Dados os axiomas
1. p
2. ( p ∧ q ) → r
3. ( s ∨ t ) → q
4. t
Provar → r
1º Converter para a Forma Clausal e acrescentar ¬ r
1. p
2. ¬ p ∨ ¬ q ∨ r
3. ¬ s ∨ q
4. ¬ t ∨ q
5. t
6. ¬ r
104
106. Unificação
Na Lógica Proposicional é simples verificar se dois literais não podem ser
verdadeiros simultaneamente, pois L e ¬L são contraditórios
Na Lógica de Predicados este processo de “matching” dos axiomas é mais
complicado uma vez que podem conter variáveis.
Por exemplo
homem(João) ∧ ¬ homem (João) são contraditórios
enquanto que homem(João) ∧ ¬ homem ( Spot ) não são
É então necessário um mecanismo de identificação (matching) ou de
unificação que irá tentar instanciar possíveis valores para as variáveis com
base nos axiomas existentes.
Por exemplo
homem (X) ∧ ¬ homem (Spot ) são contraditórios pois
homem (X) e homem ( Spot ) podem ser unificados
106
107. Representação de Conhecimento
Exprima as seguintes frases usando a Lógica de Predicados de 1ª ordem
• Os gatos são mamíferos
• Todo o mamífero tem um progenitor
• O filho de um gato é um gato
• Teco é um gato
• Teco é progenitor do Navalha
Prove que Navalha é um gato, pela regra de:
• Modus ponens
• Princípio da Resolução
107
108. Definição doa Axiomas através da
Lógica de Predicados de 1ª ordem
• Os gatos são mamíferos
∀g [ gato(g) → mamifero(g) ]
• Todo o mamífero tem um progenitor
∀g ∃p [ mamifero(g) → progenitor(p,g) ]
• O filho de um gato é um gato
∀g [ gato(g) ∧ progenitor( g, f ) → gato(f) ]
• Teco é um gato
gato (Teco)
• Teco é progenitor do Navalha
progenitor ( Teco, Navalha)
108
112. Representação de Conhecimento
Considere o seguinte texto:
“ Os gatos gostam de peixe. Os gatos comem tudo do que gostam.
Teco é um gato”
– Exprima as frases em Lógica de Predicados de 1ª ordem.
– Usando a regra de resolução prove por refutação, com base no
conhecimento anterior que “o Teco come peixe”
112
113. Resolução
Os gatos gostam de peixe
∀g [ gato(g) → gosta (g, peixe) ]
Os gatos comem tudo do que gostam
∀g [ gosta (g, c) → come (g, c) ]
Teco é um gato
gato ( Teco)
Provar → come (Teco, peixe)
113
114. Resolução
Provar → come (Teco, peixe)
Resolução
Estado-0
1. ¬ gato(g) ∨ gosta (g, peixe)
2. ¬ gosta (g, c) ∨ come (g, c)
3. gato ( Teco)
4. ¬come (Teco, peixe)
114
115. Resolução
Provar → come (Teco, peixe)
Resolução
¬come (Teco, peixe) ¬ gosta (g, c) ∨ come (g, c)
¬ gosta (Teco, peixe) ¬ gato(g) ∨ gosta (g, peixe)
¬ gato ( Teco) gato (Teco)
115
116. Representação de Conhecimento
Represente as afirmações seguintes usando lógica de predicados de
1ª ordem
– Um animal pesado come muito
– Os elefantes são animais grandes
– Todos os elefantes têm um alimento preferido
– Dumbo é um elefante
– Todos os animais grandes são pesados
– O amendoim é um alimento
Provar → Dumbo come muito
116
117. Definição doa Axiomas através da
Lógica de Predicados de 1ª ordem
– ∀a [ animal (a, pesado) → come(a,muito) ]
– ∀a [ elefante(a) → animal (a, grande) ]
– ∀a ∃c [elefante(a) → alimento (c, preferido) ]
– elefante (Dumbo)
– ∀a [ animal (a, grande) → animal (a, pesado) ]
– alimento (amendoim)
117