Programação em
Lógica - 99.1
Descrição geral desta (classe
de) disciplina, incluindo ementa, avaliação e material
bibliográfico encontram-se em: www.di.ufpe.br/~compint/prolog.html
Informações Gerais
Professor: Jacques
Robin
Monitor: Eloi Favero
(Esta) Homepage: www.di.ufpe.br/~compint/aulas-IAS/prolog-991/Welcome.html
Newsgroup: depto.cursos.grad.if278
Horários:
- aulas: 4a 8h-10h e 6a 10h-12h
- orientação
- com professor 4a 12h
(Sala 41, Bloco C)
- com monitor 6a 12h
(Sala 316, Bloco A)
Local: 4a Sala 7, 6a Sala 4
Turma:
- Adalberto
Cajueiro de Farias (acf)
Aldemar Magalhães
de Faria Filho (amff)
- Börje
Felipe Fernandes Karlsson (bffk)
- Eduardo
José Torres Sampaio Rocha (ejtsr)
- José
Ferreira de Lima Júnior (jflj)
Manoel
Frederico G. A. Moreira Junior (mfgamj)
- Lizane M. P.
de Freita (lmpf, ouvinte)
- Paulo
Gustavo Soares Fonseca (paguso)
- Rosely
Lacerda (rmsl, ouvinte)
- Ulisses
Montenegro (urma)
Calendário:
Aula 1: Apresentação da
disciplina (24/03)
- Jacques
- Plano:
- Objetivo da
disciplina
- Metodologia didática
e de avaliação
- Ementa
- Material
bibliográfico
Aula 2: Programação em lógica
e lógica (26/03)
- Jacques
- Leitura devida: pp. 151-153,
157-163, 174 (Horn sentences), 185-201, 270-286, 304-306,
308 do AIMA
- Plano:
- Programação em
lógica: visão unificadora de varias áreas da
ciência da computação
- Revisão da Lógica
da 1a ordem:
- Sintaxe
- Forma normal
- Unificação
posicional
- Resolução: A
curiosidade matou o gato
- Transparências: prolog1.ppt
- Jacques
- Leitura devida: pp. 4-26,
38-43 do Bratko
- Plano:
- Clausulas de Horn
- Prolog x Lógica da 1a
ordem
- Exemplo de engenharia
do conhecimento em Prolog: West e criminoso?
- Busca e backtracking
- Sintaxe de Prolog
- Semântica de Prolog
- Exercícios dados:
- A terrível novela
em lógica da 1a ordem
- A terrível novela
em Prolog
- O banco de dados
acadêmico em Prolog
- O banco de dados
acadêmico em lógica da 1a ordem
- Transparências: prolog2.ppt
Aulas 5, 6 & 7: Prolog:
predicados built-in (09/04, 14/04 e 16/04)
- Jacques
- Leitura devida: pp. 56-63,
68-73, 82-84, 88-91, 126-141, 146-149, 156, 159, 162-163,
176-180, 182-184 do Bratko
- Plano:
- Igualdade semântica
x unificão
- Listas
- Cut
- Negação por falha
- Aritmética
- Teste e conversão de
tipos
- Entrada-Saída
- Manipulação de
conjuntos
- Meta-programação
- Transparências: prolog3.ppt, prolog4.ppt
Aula 8: Prolog: uso pratico nas
estações de trabalho (23/04)
- Eloi
- Leitura devida:
- pp. 195-197 do Bratko
- pp. 181-209 de
Clocksin & Mellish
- Plano:
- consult e reconsult
- trace e spy
- ^C e help
- Rodar Prolog II
dentro de Emacs
- Transparências: prolog5.ppt
Aula 9: Prolog x resto do mundo (30/04)
- Jacques
- Leitura devida:
- pp. 297-298, 310-325
do AIMA
- Plano:
- Prolog x linguagens
de outros paradigmas de programação
- Programação
imperativa
- Programação
funcional
- Programação
orientada a objetos
- Programação
por restrições
- Prolog x outros
formalimos de representação de conhecimento
- FRCs
procedimentais
- Sistemas de
produção
- FRCs
orientados a objetos
- FRCs
híbridos
- Transparências:
- Jacques
- Leitura devida:
- Plano:
- Limitações de
Prolog
- LIFE: integração de
3 outros paradigmas de programação sobre uma
base Prolog
- Estrutura de dados
para representar conhecimento parcial: termos de
atributos (ou termos psi).
- Hierarquia de tipos
- Unificação
funcional
- Declaração de
classes e de restrições
- Transparências: life1.ppt
Aula 12: LIFE: integração de
predicados, funções, classes e restrições (12/05)
- Jacques
- Leitura devida:
- Plano:
- LOGIN: predicados e
regras com termos psi e hierarquia de tipos
- FOOL: funções com
termos psi e hierarquia de tipos
- LeFun: predicados com
funções
- LIFE: LOGIN + FOOL +
LeFun
- Exemplo de engenharia
do conhecimento com LIFE: A terrível novela
- LIFE x Prolog
- LIFE e orientação a
objetos
- Transparências: life2.ppt
Aulas 13 e 14: LIFE: predicados e
funções built-in (14/05 e 21/05)
- Jacques
- Leitura devida:
- Plano:
- Controle (cut, cond,
eval, quote)
- Aritmética
- Testes de tipo
- Variáveis globais e
atribuição destrutiva
- Exercícios dados:
- West é criminoso em
LIFE
- O banco de dados
acadêmico em LIFE
- Transparências: life3.ppt
Aula 15: LIFE: Uso pratico nas
estações de trabalho (26/05)
- Eloi
-
- Leitura devida: pp. 4-7,
55-60 de The Wild-LIFE handbook
- Plano:
- load
- pretty print
- Interface LaTeX
- Arquivo de
personalização
- Rodar LIFE dentro de
Emacs
- Transparências:
Aula 16: LIFE: Gramáticas de
claúsulas definidas (28/05)
- Jacques
- Leitura devida:
- Plano:
- Acumuladores e
pre-processamento
- Gramática de
Cláusulas Definidas (Definite Clause Gramars -
DCG) de Prolog
- DCG de LIFE
- Uso das DCG de LIFE
para interpretação e geração de linguagem
natural
- Transparências: dcg.ppt
Aula 17: Correção dos
exercícios de engenharia do conhecimento em Prolog (02/06)
- Jacques
- Plano:
- A terrível novela
em lógica da 1a ordem
- A terrível novela
em Prolog
- O banco de dados
acadêmico em Prolog
- O banco de dados
acadêmico em lógica da 1a ordem
- Exercícios a entregar:
- A terrível novela
em lógica da 1a ordem
- A terrível novela
em Prolog
- O banco de dados
acadêmico em Prolog
- O banco de dados
acadêmico em lógica da 1a ordem
- Transparências: prolog-exos.ppt
- Jacques, Eduardo
& Paulo
- Leitura devida:
- Plano:
- Agente LIFE
explorador do mundo do wumpus
- Agentes LIFE time da
RoboCup de futebol, divisão simulador
- Transparências: projTopics1.ppt
Aula 19: Apresentação
dos assuntos de projetos 2 (14/05)
Aula 20: Apresentação dos
assuntos de projetos 2 (14/05)
- Jacques
- Leitura devida:
- pp. 153-157, 651-662
do AIMA
- pp. 1-3, 5-10. 45-49
da apóstila do JAI
- Plano:
- Fundamentos de
Processamento de Linguagem Natural
- Agentes comunicativos
LIFE explorando o mundo do wumpus
- Interpretação
de mensagens em português e/ou inglês
- Transferência
de árvores tematico-lexicais do
portugûes para árvores
tematico-lexicais do inglês
- Geração de
mensagens em português e/ou inglês
- Transparências: projTopics2.ppt
Aula 16: Orientação de projetos
(21/05)
- Jacques
- Leitura devida:
- Plano:
- Linguagens de
consulta de banco de dados x linguagens de
programação
- Banco de dados
dedutivos e programação em lógica
- Banco de dados
orientado a objetos
- DOOD: banco de dados
dedutivos orientado a objetos
- F-Logic e FLORID
- Exemplo
introdutório: O banco de dados acadêmico em
FLORID
- Objetos, nomes de
objetos, métodos, atomos-F, moleculas-F e BD
extensional
- Classes, assinaturas,
herança e esquemas de BD
- Predicados e atomos-P
- Regras, consultas e
BD intencional
- Transparências: florid1.ppt
Aula 18: Orientação de projetos
(28/05)
Aula 19: FLORID: caminhos,
negação e estratificação (02/06)
- Jacques
- Leitura devida:
- Plano:
- Caminhos
- Raciocínio dirigido
pelos dados e semântica do ponto fixo
- Negação
- Restrições de
segurança na conclusão das regras
- Estratificação
- Herança
- Verificação de
tipos
- FLORID x SQL
- Transparências: florid2.ppt
Aula 20: Orientação de projetos
(04/06)
Aula 21: FLORID: predicados
built-in (09/06)
- Jacques
- Leitura devida:
- Plano:
- Igualdade semântica
- Aritmética
- Agregação
- Cadeias de caracteres
e expressões regulares
- Interface para Web
- FLORID x LIFE
- FLORID x linguagens
de programação orientado a objetos
- Exercícios dados:
- West é criminoso em
FLORID
- A terrível novela em
FLORID
- Transparências: florid3.ppt
Aula 22: Orientação de projetos
(11/06)
Aula 23: FLORID: uso pratico nas
estações de trabalho (16/06)
- Jacques
- Leitura devida: pp. 8-35 de The Florid 2.0 user manual
- Plano:
- Carregar e rodar
programa
- Consultas de
debugging
- Formatação da
saída e pretty printing
- Interface Tcl/Tk
- Rodar FLORID dentro
de Emacs
- Transparências: florid4.doc
Aula 24: Orientação de projetos
(18/06)
Aula 25: LIFE: Agente explorador
do mundo do wumpus (23/06)
- Seminário de
apresentação de projeto
- Exercício devidos:
- West é criminoso em
LIFE
- West é criminoso em
FLORID
- O banco de dados
acadêmico em LIFE
- A terrível novela em
FLORID
- Leitura devida: pp. 45-49,
154-157, 201-210 do AIMA
- Plano:
- Exploração para
frente com encadeamento de regras para
trásHierarquia de tipos
- Hierarquia de classes
de termos psi
- Regras e funções:
- ambiente
=> interface
- ações =>
conhecimento(ambiente)
- conhecimento(ambiente)
& objetivos => objetivos
- conhecimento(ambiente)
=> interface
- ambiente
=> percepções
- percepções
& conhecimento(ambiente) =>
conhecimento(ambiente)
- conhecimento(ambiente)
=> interface
- conhecimento(ambiente)
& objetivos => ações
- ações &
ambiente => ambiente
- Demo ao vivo
- Código fonte: wumpus-explor.lf
- Transparências: wumpus-explor.ppt
Aula 26: Correção do
exercícios de engenharia do conhecimento em LIFE (30/06)
- Jacques
- Plano:
- West é criminoso em
LIFE
- West é criminoso em
FLORID
- O banco de dados
acadêmico em LIFE
- A terrível novela em
FLORID
- Transparências:
Aula 27: DCG LIFE para geração
de sintagmas nominais do Português (02/07)
- Lizane e Rosely
- Leitura devida: pp. 651-683,
703-719 do AIMA
- Plano:
- Regras estruturais e
de concordância da sintaxe do português
- Regras de escolha das
palavras de classe fechada do português
- Regras morfológica
do português
- Fontes de paráfrase
na tradução
- Demo ao vivo
- Código fonte: snpt.lf
- Transparências: snpt.ppt
Aula 28: LIFE: Tradução e Geração de mensagens entre agentes exploradores
(07/07)
- Seminário de
apresentação de projeto
- Leitura devida:
- Plano:
- Discrepâncias
sintáticas inglês-português
- Discrepâncias de
lexicalização inglês-português no
vocabulário do mundo do wumpus
- Regras de
transferência sintáticas
- Regras de
transferência lexicais (léxico bilíngüe)
- Regras de
transferência lexico-sintática
- Usar gramáticas de
cláusulas definidas para geração
- Código fonte: pln-transfgen.lf
- Transparências: pln-transfgen.ppt
Aula 29: LIFE: Sport
multi-agentes para RoboCup de futebol (09/07)
- Eduardo, Paulo e Ulysses
- Leitura devida:
- Plano:
- Conexão
LIFE/SoccerServer via socket
- API LIFE/SoccerServer
para troca de:
- Arquitetura do
sistema multi-agentes
- Ontologia do futebol
de robôs
- Regras e funções
tácticas:
- ambiente
=> interface ?
- ações =>
conhecimento(ambiente)
- conhecimento(ambiente)
& objetivos => objetivos
- conhecimento(ambiente)
=> interface ?
- ambiente
=> percepções
- percepções
& conhecimento(ambiente) =>
conhecimento(ambiente)
- conhecimento(ambiente)
=> interface ?
- conhecimento(ambiente)
& objetivos => ações
- ações &
ambiente => ambiente
- Treinamento ao vivo
- Transparências: sport.lf.ppt
Aula 30: LIFE: Nautico
multi-agentes para RoboCup de futebol (14/07)
- Adalberto, Böjrne e
Junior
- Plano:
- API LIFE/SoccerServer
para troca de:
- Arquitetura do
sistema multi-agentes
- Ontologia do futebol
de robôs
- Regras e funções
tácticas:
- ambiente
=> interface ?
- ações =>
conhecimento(ambiente)
- conhecimento(ambiente)
& objetivos => objetivos
- conhecimento(ambiente)
=> interface ?
- ambiente
=> percepções
- percepções
& conhecimento(ambiente) =>
conhecimento(ambiente)
- conhecimento(ambiente)
=> interface ?
- conhecimento(ambiente)
& objetivos => ações
- ações &
ambiente => ambiente
- Treinamento ao vivo
- Transparências: nautico.lf.ppt
Aula 31: Sport - Nautico virtual
(21/07)
- Seminário de
apresentação de projeto
- Códigos fontes:
- Transparências: maracatuFC.ppt
Aula 32: Demonstração final de
recuperação dos projetos (23/07)