O documento resume as principais características da linguagem Prolog. Em 1) Prolog é uma linguagem declarativa que define fatos e relações sobre um problema. 2) Foi criada em 1971 para processamento de linguagens naturais. 3) Pode ser usada em lógica matemática, bancos de dados e jogos.
1. Linguagem Prolog
Grupo:
Cael London Vieira
Mateus Felipe
Rafael Pereira Bozzetti
Walter da Silva Fernandes
2. Prolog - Definição Geral
Prolog é uma linguagem Declarativa, ou seja,
limita-se a descrever um problema.
Define uma coleção de Fatos e Relações sobre
determinado objeto ou problema.
Utiliza-se de métodos lógicos para declarar
como o programa deve atingir o seu objetivo.
Possibilita que consultas sejam feitas na base
de conhecimento.
3. Prolog - Histórico
Foi criada em 1971 por Alain Colmerauer e
Robert Pasero na Universidade de
Marselha, França.
Não foi idealizada como uma linguagem de
programação, mas para o processamento de
linguagens naturais, como o Português e o
Inglês.
4. Prolog - Domínio da Aplicação
Lógica matemática, prova de teoremas e semântica.
Compiladores
Soluções de equações simbólicas
Banco de dados relacionais
Linguagem Natural
Aplicações, como jogos de Xadrez e Damas
Planejamento automático de atividades
Análise Bioquímica e projetos de novas drogas
5. Prolog - Características
Provador de teoremas (Verdade ou Falso)
Linguagem declarativa
Não emprega tipos de dados
Linguagem é interpretada
Diferente de programação estruturada.
Não existe variáveis globais
6. Elementos da Linguagem
Fatos: Determina uma relação entre objetos
existentes. Exemplo: gosta(maria,X).
Regras: Determina um relacionamento entre Fatos
Exemplo: gosta(X,maria) :- gosta(X,peixe).
Consultas: Infere pesquisas na base de
conhecimento à procura de cláusulas consultadas.
Exemplo: ?- gosta(X,maria).
7. Fatos
gosta( joao,maria ).
Relação Objeto
Relações e Objetos devem começar com letra minúscula.
Objetos são escritos dentro de parênteses.
Todo Fato deve terminar com ponto.
Uma Relação pode receber mais de um Objeto.
Exemplo: gosta( joao, maria ).
A ordem dos objetos é importante.
gosta( joao, maria ). é diferente de gosta( maria, joao ).
8. Regras
luz(acesa) :- interruptor(ligado).
Determina um relacionamento entre Fatos.
O “:-” significa “SE”, portanto na expressão acima, a
luz está acesa se o interruptor estiver ligado.
Pode-se utilizar variáveis, devem ser em maiúsculo.
O conteúdo da variável após ser instanciada não pode
ser mudado.
9. , =E
Consultas
; = OU
gosta(X, esporte),
gosta(X, futebol).
Ao fazer uma consulta a base de conhecimento, será
realizado uma procura por relações entre os termos.
Referente a consulta, caso exista relação será
retornado true, senão fail.
Pode-se utilizar variáveis nas consultas, neste caso
todos os termos serão pesquisados.
10. Operadores Relacionais
X=Y X e Y são iguais;
X = Y X e Y são diferentes;
X<Y X é menor que Y;
X>Y X é maior que Y;
X =< Y X é menor ou igual a Y;
X >= Y X é maior ou igual a Y.
X =:= Y X e Y são iguais (p/ números);
X == Y X e Y são diferentes (p/ números).
11. Operadores Aritméticos
X+Y Soma de X e Y;
X–Y Diferença de X e Y;
X*Y Multiplicação de X por Y;
X/Y Divisão de X por Y;
X mod Y Resto da divisão de X por Y.
12. Ambiente de Desenvolvimento
Plugin Eclipse
http://sewiki.iai.uni-bonn.de/research/pdt/start
Windows: SWI-Prolog-Editor
http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swi
prolog/indexe.html
Linux (debian/ubuntu):
apt-get install swi-prolog
14. Exercício Proposto
Na base de gosta( julio, peixe ).
conhecimento ao lado, gosta( julio, maria ).
como ficariam as gosta( maria, livro ).
consultas?
gosta( joao, livro ).
Quem gosta de livro? gosta( joao, peixe ).
Quem gosta de livro e gosta( maria, chocolate ).
chocolate? gosta( maria, peixe ).
gosta( joao, cerveja ).
Quem gosta de livro ou gosta( joao, futebol).
chocolate?
15. Resolução do Exercício
Quem gosta de livro?
gosta(X,livro).
Quem gosta de livro e chocolate?
gosta(X,livro),gosta(X,chocolate).
Quem gosta de livro ou chocolate?
gosta(X,livro);gosta(X,chocolate).