SlideShare uma empresa Scribd logo
INTRODUÇÃOAO PROLOG
Roteiro
1. Introdução
2. Princípios
3. Tutorial
Introdução
• Um pequeno artigo fácil de ler e destaco os elementos
apresentados nesse seminário:
• http://www.ime.usp.br/~slago/IA-Prolog.pdf
Introdução
• Prolog:
• Linguagem declarativa baseado nos princípios da lógica;
• Utilizada na Inteligência Artificial;
• Focada na especificação do conhecimento;
• Desenvolvida em 1972 por Alain Colmerauer e Philippe Roussel.
ALAIN COLMERAUER
Computer scientist
About
Link: http://alain.colmerauer.free.fr/
The birth of Prolog
Link: Clique aqui.
Aspects of PROLOG History:
Logic Programming and Professional Dynamics
Link: Clique aqui.
Introdução
• Online: http://swish.swi-prolog.org
• Instalação:
• SWI-Prolog:
• É uma IDE para desenvolvimento (Free).
• Download:
• Link: http://www.swi-prolog.org/
Introdução
• Histórico:
• Ideia:
• Desenvolver uma linguagem de programação baseada em lógica.
• Início de aplicações industriais (1981);
• O primeiro compilador (1982);
• Em 1992, a definição de normas ISO para Prolog.
Introdução
• Aplicações:
• Tratamento de linguagem natural;
• Banco de dados;
• Automação de projetos;
• Sistemas especialistas;
• Entre outros.
Princípios
• Características:
• Especificação da solução em termos de relações entre entidades;
• Descreve o universo do problema;
• Lógica matemática;
• Um conjunto de afirmações.
NÃO é uma descrição da solução do problema
Problema
Um conjunto de perguntas sobre os
objetos do universo da aplicação
Princípios
Prolog é baseada em um subconjunto da linguagem do cálculo de
predicados, linguagem das cláusulas de Horn.
Princípios
• Sujeito apreende no intelecto o conceito de objeto (ex:
casa, branca).
• Os conceitos são ligados, e formam juízos (ex: a casa é
branca).
• Os conceitos são externalizados como termos, e os juizos
como proposições.
Princípios
• Sujeito apreende no intelecto o conceito de objeto (ex:
casa, branca).
• Os conceitos são ligados, e formam juízos (ex: a casa é
branca).
• Os conceitos são externalizados como termos, e os juizos
como proposições.
• Mas qual a estrutura geral da proposição ?
Princípios
• Estrutura geral da proposição, segundo Aristóteles:
A casa é branca.
Quantificador:
termo/sujeito:
Cópula:
termo/predicado:
Alguma
Casa
é
Branca
Princípios
• Estrutura geral da proposição, segundo Frege:
• Uma proposição é estrutura abstrata composta por função e
argumento (nota: conceito matemático)
• Deslocou a atençãodadistinçãosujeito-predicadoparaa distinçãofunção-
argumento.
Princípios
• Uma função em matemática é uma generalização de uma
expressão, ou seja, é uma expressão que contêm um
espaço vazio.
• ... + 2
• A ... é branca
• A casa e …
• ... gosta …
Princípios
• Uma função em matemática é uma generalização de uma
expressão, ou seja, é uma expressão que contêm um
espaço vazio.
• ... + 2, X + 2
• A ... é branca, X é branca
• A casa e …,A casa é X
• ... gosta …, X gosta de Y
Princípios
• Uma função em matemática é uma generalização de uma
expressão, ou seja, é uma expressão que contêm um
espaço vazio.
• ... + 2, X + 2, f(x) = x + 2
• A ... é branca, X é branca, branca(X)
• A casa e …, A casa é X, casa(X).
• ... gosta …, X gosta de Y, gosta(X,Y)
Princípios
• Exemplo de implicações:
• Todos os homens são mortais.
• Todo A tem a propriedade B
• Qualquer que seja X, se X tem a propriedade A, então X tem a
propriedade B.
• Ou, ∨x (Ax -> Bx )
Introdução
• Omotivo disso é simplesmente destacar aconclusão da
implicação.
• qé acabeçae pé o corpo da implicação
• EmProlog escrevemosuma implicação do tipo
q ←p, é escrita como q :- p.
• Todoprograma em Prolog é sóisso ☺
Emcláusula Horn, podemos escrever uma implicação
do tipo p→qde maneira inversa, ou seja,
q← p.
Assertion and Clause
• A simple assertion has the form r(T1, . . . , Tm) where r is
an m-ary relation, and where T1, . . . , Tm are terms
(expressions), possibly containing variables.
• A clause (or just clause) has the form:
A0 if A1 and ... and An.
• Informally, this clause means that, if the assertions A1 , . .
. , An are all true, then we can infer that the assertion A0
is also true.
• A fact is a special case of a Horn clause where n = 0:
A0.
PROGRAMMING LANGUAGE. DESIGN CONCEPTS. David A. Watt,
Assertion and Clause
• A PROLOG clause is a Horn clause written in one of the
the following forms:
A0.
A0 :- A1, ..., An.
• The first of these is a fact. The second is read as ‘‘A0
succeeds if A1 succeeds and . . . and An succeeds’’.
PROGRAMMING LANGUAGE. DESIGN CONCEPTS. David A. Watt,
Assertion and Clause
• A PROLOG clause may also contain the symbol ‘‘;’’, which
means ‘‘or’’. For example:
A0 :- A1; A2,A3.
• is read as ‘‘A0 succeeds if either A1 succeeds or A2
succeeds and A3 succeeds’’. This is just an abbreviation
for a pair of Horn clauses, ‘‘A0 :- A1.’’ and ‘‘A0 :- A2, A3.’’.
PROGRAMMING LANGUAGE. DESIGN CONCEPTS. David A. Watt,
Assertion and Clause
irmao(X,Y) :- filho(X, H,M) , filho(Y,H,M) , Y == X.
Cabeça,da
clausula
Pescoço,
equivale ao “if“
ou “se”.
Corpo da
clausula.
Uma virgula (,) equivale ao
operador “e” e um ponto e
virgula (;) ao operador “ou”.
Pé da
clausula(.)
Assertion and Clause
irmao(X,Y) :- filho(X, H,M) , filho(Y,H,M) , Y == X.
Cabeça,da
clausula
Pescoço,
equivale ao“if“
ou “se”.
Corpo da
clausula.
Uma virgula (,) equivale ao
operador “e” e um ponto e
virgula (;) ao operador “ou”.
Pé da
clausula(.)
ama(joao,maria).
Cabeça,da
clausula
Regrassãoclausulas com
corpo, e fatos sãocláusulas
semcorpo.
Query
• Computation consists of testing a given query Q, which in
its simplest form is just an assertion. If we can infer from
the clauses of the program that Q is true, then we say that
the query succeeds. If we cannot infer that Q is true, then
we say that the query fails.
Resumo
• Fatos:
• Afirmações corretas sobre os objetos do universo da aplicação
(verdades incondicionais).
• Exemplo: A prova de lógica é fácil.
• Regras:
• Cláusulas com condicionais.
• Exemplo: A prova de lógica é fácil se a turma estudar.
• Consultas:
• Verificação de uma verdade.
• A prova de logica é fácil ?
• Qual prova é fácil?
Tutorial
• Acessem:
• http://swish.swi-prolog.org
Tutorial
• Fatos:
• Cada fato exprime um relacionamento entre os objetos envolvidos.
• Exemplos:
Predicados
Tutorial
• Fatos:
Argumentos
ARIDADE
Quantidade de objetos
Tutorial
• Fatos:
Em um mesmo programa podemos ter um mesmo predicado com
aridades diferentes.
EXEMPLOS
Tutorial
• Fatos:
FATOS + REGRAS
Base de conhecimento
Define relações a partir de
relações existentes.
Tutorial
• Consultas:
• É uma pergunta sobre os fatos da base de dados.
• Em Prolog, a pergunta é similar sintaticamente aos fatos.
• Exemplos:
Informativo
Algumas vezes será
possível encontrar:
:-
ao invés de:
?-
Tutorial
• Consultas:
• Realiza um pattern matching entre a pergunta e os fatos (base de
dados).
Objetivo -
Prolog
V F
O F (false) deve
ser entendido
como:
Não é provável.
Tutorial
• Princípios da programação:
• Consultas:
• Como responder: “Quem gosta de flores?”.
• Uso de variáveis.
• Exemplo:
Procura (na base) todas as instâncias possíveis (os objetos) de X (True).
Letra maiúscula.
Tutorial
• Consultas:
• Exemplos:
Tutorial
• Consultas:
• Conjunção: combina objetivos na mesma pergunta.
• É preciso separar os objetivos por uma vírgula (,).
• Exemplos:
Quem são os ‘Maranhenses’ que gostam de ‘flores’?
(Tenta satisfazer todos os objetivos, em ordem).
Tutorial
• Regras:
• É uma generalização das afirmações sobre os objetos do universo
da aplicação.
• Permitem definir novas relações em termos de outras relações já
existentes.
• Exemplo com conjunção:
Estabelece que X é avô de Y se X tem um filho Z que é pai
de Y.
Tutorial
• Regras:
• Exemplo - Grafo de relacionamento:
Tutorial
• Regras:
• Exemplo - Grafo de relacionamento (irmão):
Tutorial
• Regras:
• Exemplo - (irmão):
Tutorial
• Regras:
• Exemplo com disjunção:
A disjunção pode ser expressa, dividindo-se a regra:
Atividade (game of thrones):
Escrever as regras no link
abaixo:
http://swish.swi-
prolog.org/p/WKPvOLZI.pl
Introdução ao Prolog - Prof. Sérgio S. Costa

Mais conteúdo relacionado

PDF
Minicurso Prolog
PPTX
PDF
Linguagem Prolog - Antonio Rufino
PPTX
Introdução ao Prolog
PDF
03 mer2
PPTX
Desvendando a linguagem JavaScript
ODP
Logica Algoritmo 01 Introducao A Logica
PDF
Aula Grafos
Minicurso Prolog
Linguagem Prolog - Antonio Rufino
Introdução ao Prolog
03 mer2
Desvendando a linguagem JavaScript
Logica Algoritmo 01 Introducao A Logica
Aula Grafos

Mais procurados (20)

PPTX
Nocoes de Probabilidade
PDF
Introdução a Linguagem de Programação C
PDF
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
PPT
Circunferência
PPT
Significado das Linhas no Desenho Técnico
PDF
Ladrilahamento
PPT
Progressão aritmética
PDF
Relações
PDF
Fichas de Trabalho 1 a 8 HTML ICC.pdf
PPT
Polígonos regulares
PDF
Python - Introdução
PPTX
Propriedades dos logaritmos
PDF
LaTeX Básico I
PPTX
Potencia de expoente fraccionario
PDF
Estrutura de Dados - Grafos
PPTX
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
PPT
âNgulos na circunferência
PPT
Estudo da reta
PDF
Estrutura de dados - Variáveis homogêneas e Heterogêneas
PPTX
Modelagem de dados
Nocoes de Probabilidade
Introdução a Linguagem de Programação C
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Circunferência
Significado das Linhas no Desenho Técnico
Ladrilahamento
Progressão aritmética
Relações
Fichas de Trabalho 1 a 8 HTML ICC.pdf
Polígonos regulares
Python - Introdução
Propriedades dos logaritmos
LaTeX Básico I
Potencia de expoente fraccionario
Estrutura de Dados - Grafos
BD I - Aula 03 - Atributos, Tuplas, PK, FK, Relacionamento, Int. Ref
âNgulos na circunferência
Estudo da reta
Estrutura de dados - Variáveis homogêneas e Heterogêneas
Modelagem de dados
Anúncio

Semelhante a Introdução ao Prolog - Prof. Sérgio S. Costa (20)

PDF
Programacao logica
PDF
Introdução à Lógica de Predicados
PPTX
Apresentação1 prolog trabalho phillipe
PPTX
Equações Algébricas e Transcendentes - Isolamento de Raízes - @professorenan
PDF
Oz
ODP
Programação de computadores
PDF
Seminário Prolog
PPT
Aula Prolog 02
PDF
Aula3 sintaxe semantica
PPTX
Introducao a Lógica de Programação
PDF
7-Prolog-Base (2).pdf
PPTX
Noções de programação lógica
PPTX
Introdução à Lógica de Programação
PDF
SlidesModulo03IIA.pdf
PDF
1.1 - Introdução a Lógica e Proposição.pdf
PDF
Lógica e algoritmos
PDF
Introdução à MEAN Stack
PPT
Introdução a Programação em Lógica e Prolog
PPTX
Programação aula002
PDF
28-aula28.pdf
Programacao logica
Introdução à Lógica de Predicados
Apresentação1 prolog trabalho phillipe
Equações Algébricas e Transcendentes - Isolamento de Raízes - @professorenan
Oz
Programação de computadores
Seminário Prolog
Aula Prolog 02
Aula3 sintaxe semantica
Introducao a Lógica de Programação
7-Prolog-Base (2).pdf
Noções de programação lógica
Introdução à Lógica de Programação
SlidesModulo03IIA.pdf
1.1 - Introdução a Lógica e Proposição.pdf
Lógica e algoritmos
Introdução à MEAN Stack
Introdução a Programação em Lógica e Prolog
Programação aula002
28-aula28.pdf
Anúncio

Mais de Leinylson Fontinele (20)

PDF
Utilização do editor de texto Word
PPTX
Prática com slide.pptx
PPSX
A galinha carijó
PDF
Descrição do Projeto 8 puzzle
PDF
Aula 05 - Importância do teste, auditoria e monitoramento
PDF
Aula 04 - Implementação efetiva da política de segurança
PDF
Aula 02 - Agentes Inteligentes
PDF
Aula 01 - Visão Geral da IA
PDF
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
PDF
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
PDF
Aula 01 - Fundamentos da segurança dos sistemas de informações
PDF
A história da Segurança da Informação
PDF
Caso 1 - Boing 777
PDF
Caso 2 - Aeroporto de Denver
PDF
Aula 02 - Agentes e problemas de busca
PDF
Aula 01 - Visão geral da IA
PDF
Aula 7 - Modelagem de Software
PDF
Aula 6 - Qualidade de Software
PDF
Aula 07 - Diagrama de sequencia
PDF
Aula 06 - Diagrama de classes
Utilização do editor de texto Word
Prática com slide.pptx
A galinha carijó
Descrição do Projeto 8 puzzle
Aula 05 - Importância do teste, auditoria e monitoramento
Aula 04 - Implementação efetiva da política de segurança
Aula 02 - Agentes Inteligentes
Aula 01 - Visão Geral da IA
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 01 - Fundamentos da segurança dos sistemas de informações
A história da Segurança da Informação
Caso 1 - Boing 777
Caso 2 - Aeroporto de Denver
Aula 02 - Agentes e problemas de busca
Aula 01 - Visão geral da IA
Aula 7 - Modelagem de Software
Aula 6 - Qualidade de Software
Aula 07 - Diagrama de sequencia
Aula 06 - Diagrama de classes

Último (20)

PDF
edital-de-chamamento-publico-no-3-2025.pdf
PPTX
1. A Cultura do Palco - muitos palcos, um espetáculo.pptx
PDF
historia-e-geografia-do-amapa.pdf slides
PDF
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
PPSX
A epistemologia de Wilheim G Leibniz.ppsx
PPT
1ª Telefonia Fixa Padrao Novo Jailton 2012_22.ppt
PPT
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
PPT
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
PDF
Urbanização no Brasil LEVANDO EM CONTA CONCEITOS
DOCX
PLANEJAMENTO QUINZENAL - 18.08.2025 à 29.08.2025 - 2ºANO - PROFESSORA PATRÍCI...
PPTX
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
PPTX
5. A cultura do mundo virtual - globalidade.pptx
PDF
HORÁRIO GERAL SIGAA 2025_PRÉVIA_SIGAA-1.pdf
PPTX
REVISA-GOIAS-6o-ANO-LP-3o-BIMESTRE-PPT.pptx
PDF
Pecados desdenhados por muita gente (islamismo)
PDF
Atividades sobre o livro Letras de Carvão
PDF
Uma Introdução às Ciências do Alcorão (Islam)
PPTX
2. A Cultura do Salão - o fim das trevas.pptx
PDF
Historia-da-Psicologia-Rumos-e-percursos.pdf
PDF
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf
edital-de-chamamento-publico-no-3-2025.pdf
1. A Cultura do Palco - muitos palcos, um espetáculo.pptx
historia-e-geografia-do-amapa.pdf slides
cadernodoprofessor20142017vol2baixalceducfisicaef6s7a-170409213016.pdf manual...
A epistemologia de Wilheim G Leibniz.ppsx
1ª Telefonia Fixa Padrao Novo Jailton 2012_22.ppt
Caderno de Boas Práticas dos Professores Alfabetizadores.ppt
YY2015MM3DD6HH12MM42SS3-Organiza__o do Estado ILP.ppt
Urbanização no Brasil LEVANDO EM CONTA CONCEITOS
PLANEJAMENTO QUINZENAL - 18.08.2025 à 29.08.2025 - 2ºANO - PROFESSORA PATRÍCI...
SEGURANÇA, MEIO AMBIENTE E SAÚDE Aula 1.pptx
5. A cultura do mundo virtual - globalidade.pptx
HORÁRIO GERAL SIGAA 2025_PRÉVIA_SIGAA-1.pdf
REVISA-GOIAS-6o-ANO-LP-3o-BIMESTRE-PPT.pptx
Pecados desdenhados por muita gente (islamismo)
Atividades sobre o livro Letras de Carvão
Uma Introdução às Ciências do Alcorão (Islam)
2. A Cultura do Salão - o fim das trevas.pptx
Historia-da-Psicologia-Rumos-e-percursos.pdf
E-BOOK-Inovacao-em-Ciencia-e-Tecnologia-de-Alimentos.pdf

Introdução ao Prolog - Prof. Sérgio S. Costa

  • 3. Introdução • Um pequeno artigo fácil de ler e destaco os elementos apresentados nesse seminário: • http://www.ime.usp.br/~slago/IA-Prolog.pdf
  • 4. Introdução • Prolog: • Linguagem declarativa baseado nos princípios da lógica; • Utilizada na Inteligência Artificial; • Focada na especificação do conhecimento; • Desenvolvida em 1972 por Alain Colmerauer e Philippe Roussel. ALAIN COLMERAUER Computer scientist About Link: http://alain.colmerauer.free.fr/ The birth of Prolog Link: Clique aqui. Aspects of PROLOG History: Logic Programming and Professional Dynamics Link: Clique aqui.
  • 5. Introdução • Online: http://swish.swi-prolog.org • Instalação: • SWI-Prolog: • É uma IDE para desenvolvimento (Free). • Download: • Link: http://www.swi-prolog.org/
  • 6. Introdução • Histórico: • Ideia: • Desenvolver uma linguagem de programação baseada em lógica. • Início de aplicações industriais (1981); • O primeiro compilador (1982); • Em 1992, a definição de normas ISO para Prolog.
  • 7. Introdução • Aplicações: • Tratamento de linguagem natural; • Banco de dados; • Automação de projetos; • Sistemas especialistas; • Entre outros.
  • 8. Princípios • Características: • Especificação da solução em termos de relações entre entidades; • Descreve o universo do problema; • Lógica matemática; • Um conjunto de afirmações. NÃO é uma descrição da solução do problema Problema Um conjunto de perguntas sobre os objetos do universo da aplicação
  • 9. Princípios Prolog é baseada em um subconjunto da linguagem do cálculo de predicados, linguagem das cláusulas de Horn.
  • 10. Princípios • Sujeito apreende no intelecto o conceito de objeto (ex: casa, branca). • Os conceitos são ligados, e formam juízos (ex: a casa é branca). • Os conceitos são externalizados como termos, e os juizos como proposições.
  • 11. Princípios • Sujeito apreende no intelecto o conceito de objeto (ex: casa, branca). • Os conceitos são ligados, e formam juízos (ex: a casa é branca). • Os conceitos são externalizados como termos, e os juizos como proposições. • Mas qual a estrutura geral da proposição ?
  • 12. Princípios • Estrutura geral da proposição, segundo Aristóteles: A casa é branca. Quantificador: termo/sujeito: Cópula: termo/predicado: Alguma Casa é Branca
  • 13. Princípios • Estrutura geral da proposição, segundo Frege: • Uma proposição é estrutura abstrata composta por função e argumento (nota: conceito matemático) • Deslocou a atençãodadistinçãosujeito-predicadoparaa distinçãofunção- argumento.
  • 14. Princípios • Uma função em matemática é uma generalização de uma expressão, ou seja, é uma expressão que contêm um espaço vazio. • ... + 2 • A ... é branca • A casa e … • ... gosta …
  • 15. Princípios • Uma função em matemática é uma generalização de uma expressão, ou seja, é uma expressão que contêm um espaço vazio. • ... + 2, X + 2 • A ... é branca, X é branca • A casa e …,A casa é X • ... gosta …, X gosta de Y
  • 16. Princípios • Uma função em matemática é uma generalização de uma expressão, ou seja, é uma expressão que contêm um espaço vazio. • ... + 2, X + 2, f(x) = x + 2 • A ... é branca, X é branca, branca(X) • A casa e …, A casa é X, casa(X). • ... gosta …, X gosta de Y, gosta(X,Y)
  • 17. Princípios • Exemplo de implicações: • Todos os homens são mortais. • Todo A tem a propriedade B • Qualquer que seja X, se X tem a propriedade A, então X tem a propriedade B. • Ou, ∨x (Ax -> Bx )
  • 18. Introdução • Omotivo disso é simplesmente destacar aconclusão da implicação. • qé acabeçae pé o corpo da implicação • EmProlog escrevemosuma implicação do tipo q ←p, é escrita como q :- p. • Todoprograma em Prolog é sóisso ☺ Emcláusula Horn, podemos escrever uma implicação do tipo p→qde maneira inversa, ou seja, q← p.
  • 19. Assertion and Clause • A simple assertion has the form r(T1, . . . , Tm) where r is an m-ary relation, and where T1, . . . , Tm are terms (expressions), possibly containing variables. • A clause (or just clause) has the form: A0 if A1 and ... and An. • Informally, this clause means that, if the assertions A1 , . . . , An are all true, then we can infer that the assertion A0 is also true. • A fact is a special case of a Horn clause where n = 0: A0. PROGRAMMING LANGUAGE. DESIGN CONCEPTS. David A. Watt,
  • 20. Assertion and Clause • A PROLOG clause is a Horn clause written in one of the the following forms: A0. A0 :- A1, ..., An. • The first of these is a fact. The second is read as ‘‘A0 succeeds if A1 succeeds and . . . and An succeeds’’. PROGRAMMING LANGUAGE. DESIGN CONCEPTS. David A. Watt,
  • 21. Assertion and Clause • A PROLOG clause may also contain the symbol ‘‘;’’, which means ‘‘or’’. For example: A0 :- A1; A2,A3. • is read as ‘‘A0 succeeds if either A1 succeeds or A2 succeeds and A3 succeeds’’. This is just an abbreviation for a pair of Horn clauses, ‘‘A0 :- A1.’’ and ‘‘A0 :- A2, A3.’’. PROGRAMMING LANGUAGE. DESIGN CONCEPTS. David A. Watt,
  • 22. Assertion and Clause irmao(X,Y) :- filho(X, H,M) , filho(Y,H,M) , Y == X. Cabeça,da clausula Pescoço, equivale ao “if“ ou “se”. Corpo da clausula. Uma virgula (,) equivale ao operador “e” e um ponto e virgula (;) ao operador “ou”. Pé da clausula(.)
  • 23. Assertion and Clause irmao(X,Y) :- filho(X, H,M) , filho(Y,H,M) , Y == X. Cabeça,da clausula Pescoço, equivale ao“if“ ou “se”. Corpo da clausula. Uma virgula (,) equivale ao operador “e” e um ponto e virgula (;) ao operador “ou”. Pé da clausula(.) ama(joao,maria). Cabeça,da clausula Regrassãoclausulas com corpo, e fatos sãocláusulas semcorpo.
  • 24. Query • Computation consists of testing a given query Q, which in its simplest form is just an assertion. If we can infer from the clauses of the program that Q is true, then we say that the query succeeds. If we cannot infer that Q is true, then we say that the query fails.
  • 25. Resumo • Fatos: • Afirmações corretas sobre os objetos do universo da aplicação (verdades incondicionais). • Exemplo: A prova de lógica é fácil. • Regras: • Cláusulas com condicionais. • Exemplo: A prova de lógica é fácil se a turma estudar. • Consultas: • Verificação de uma verdade. • A prova de logica é fácil ? • Qual prova é fácil?
  • 27. Tutorial • Fatos: • Cada fato exprime um relacionamento entre os objetos envolvidos. • Exemplos: Predicados
  • 29. Tutorial • Fatos: Em um mesmo programa podemos ter um mesmo predicado com aridades diferentes. EXEMPLOS
  • 30. Tutorial • Fatos: FATOS + REGRAS Base de conhecimento Define relações a partir de relações existentes.
  • 31. Tutorial • Consultas: • É uma pergunta sobre os fatos da base de dados. • Em Prolog, a pergunta é similar sintaticamente aos fatos. • Exemplos: Informativo Algumas vezes será possível encontrar: :- ao invés de: ?-
  • 32. Tutorial • Consultas: • Realiza um pattern matching entre a pergunta e os fatos (base de dados). Objetivo - Prolog V F O F (false) deve ser entendido como: Não é provável.
  • 33. Tutorial • Princípios da programação: • Consultas: • Como responder: “Quem gosta de flores?”. • Uso de variáveis. • Exemplo: Procura (na base) todas as instâncias possíveis (os objetos) de X (True). Letra maiúscula.
  • 35. Tutorial • Consultas: • Conjunção: combina objetivos na mesma pergunta. • É preciso separar os objetivos por uma vírgula (,). • Exemplos: Quem são os ‘Maranhenses’ que gostam de ‘flores’? (Tenta satisfazer todos os objetivos, em ordem).
  • 36. Tutorial • Regras: • É uma generalização das afirmações sobre os objetos do universo da aplicação. • Permitem definir novas relações em termos de outras relações já existentes. • Exemplo com conjunção: Estabelece que X é avô de Y se X tem um filho Z que é pai de Y.
  • 37. Tutorial • Regras: • Exemplo - Grafo de relacionamento:
  • 38. Tutorial • Regras: • Exemplo - Grafo de relacionamento (irmão):
  • 40. Tutorial • Regras: • Exemplo com disjunção: A disjunção pode ser expressa, dividindo-se a regra:
  • 41. Atividade (game of thrones): Escrever as regras no link abaixo: http://swish.swi- prolog.org/p/WKPvOLZI.pl