Seminário Prolog
-
Upload
rafaelbozzetti -
Category
Technology
-
view
1.297 -
download
0
description
Transcript of Seminário Prolog
Linguagem Prolog
Grupo:
Cael London Vieira
Mateus Felipe
Rafael Pereira Bozzetti
Walter da Silva Fernandes
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.
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.
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
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
Elementos da Linguagem
Fatos: Determina uma relação entre objetos existentes. Exemplo: gosta(maria,X).
Regras: Determina um relacionamento entre FatosExemplo: gosta(X,maria) :- gosta(X,peixe).
Consultas: Infere pesquisas na base de conhecimento à procura de cláusulas consultadas.
Exemplo: ?- gosta(X,maria).
Fatos
gosta( joao,maria ).
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 ).
Relação Objeto
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.
Consultas
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.
, = E
; = OU
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).
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.
Ambiente de Desenvolvimento
Plugin Eclipsehttp://sewiki.iai.uni-bonn.de/research/pdt/start
Windows: SWI-Prolog-Editorhttp://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swi
prolog/indexe.html
Linux (debian/ubuntu): apt-get install swi-prolog
Exercício Proposto
Na base de conhecimento ao lado, como ficariam as consultas?
Quem gosta de livro? Quem gosta de livro e
chocolate? Quem gosta de livro ou
chocolate?
gosta( julio, peixe ).gosta( julio, maria ).gosta( maria, livro ).gosta( joao, livro ).gosta( joao, peixe ).gosta( maria, chocolate ).gosta( maria, peixe ).gosta( joao, cerveja ).gosta( joao, futebol).