SlideShare uma empresa Scribd logo
1 de 8
PROLOG: Linguagem de
programação
Phillipe Eduardo Silva de Oliveira – Unirb – Sistema de Informação – Logica Matemática e Discreta
O que é PROLOG?
 Prolog é uma linguagem declarativa ao invés de
procedimental. Isto significa que ela especifica o quê se
sabe e o que deve ser feito, mas não especifica como
fazer.
 A linguagem consiste na declaração (ou descrição de
uma interpretação) de hipóteses que são verdadeiras
em uma interpretação
 Na lógica de predicados usamos regras de inferência
para demonstrar que uma tese é consequência de
determinadas hipóteses
 Programação em Lógica e especificamente a linguagem
Prolog – Programação Logica – também pode provar
teses a partir de hipóteses
 A linguagem Prolog inclui: predicados, conectivos
lógicos e regras de inferência - Princípio da Resolução
 Um programa Prolog possui três interpretações semânticas básicas:
 Interpretação declarativa.
Entende-se que as cláusulas que definem um programa descrevem uma
teoria de primeira ordem.
 Interpretação procedimental.
As cláusulas são vistas como entrada para um método de prova.
 Interpretação operacional.
As cláusulas são vistas como comandos para um procedimento particular
de prova por refutação.
 Proveito das alternativas semânticas:
 Declarativa: Permite a modelagem do problema
simplificando a tarefa de programação
 Procedimental: Permite que o programador
identifique e descreva o problema em subproblemas
através de uma série de chamadas a procedimentos
 Operacional: Permite controle da execução através da
ordenação das cláusulas e objetivos
Quais são os conjuntos do ProLog?
 O conjunto de declarações que forma um programa Prolog é chamado de base de conhecimento (BC) ou base de
fatos.
 Para determinar se uma tese (consulta do usuário à BC) é ou não verdadeira, o Prolog aplica suas regras de
inferência na BC sem a necessidade de instruções adicionais por parte do programador
 Bases de conhecimento convencionais descrevem apenas fatos
“Tico é um pinguim”
 As sentenças de um Programa em Lógica, além de descrever fatos, permitem a descrição de regras
“Todo pinguim é um ave”
 Havendo regras, novos fatos podem ser deduzidos
“Tico é uma ave”
Subconjuntos do PROLOG:
 O Prolog é baseado num subconjunto do cálculo de predicados de primeira ordem, o que é definido por cláusulas de Horn.
A execução de um programa em Prolog é efetivamente a prova de um teorema por resolução de primeira ordem. Alguns
conceitos fundamentais são unificação, recursão, e backtracking.
 Em Prolog são fornecidos os fatos e as regras para uma base de dados, que posteriormente serão executadas consultas
(queries) em cima da base de dados.
 A estrutura de um fato é formada por um predicado, seus argumentos (objetos) e finalizamos a instrução com um ponto(.)
equivalente ao ponto-vírgula das linguagens comuns de programação. Veja a seguir:
predicado(argumento1,argumento2...). O predicado é a relação sobre os quais os objetos irão interagir.
Exemplos:
-> amiga(joana, maria).
Definimos uma relação de amizade entre dois objetos, joana e maria.
-> homem(jose).
Note que quando usamos apenas um objeto, o predicado passa a ser uma característica do próprio objeto.
Fatos: a Regras: a b Consultas: b Vazia:
Sentenças do PROLOG:
 As sentenças de um programa prolog são expressas por
cláusulas
 Tipos de cláusulas: fatos e regras
 Fato: declaração de uma verdade incondicional
 Regra: condição que deve ser satisfeita para que um declaração
seja considerada verdadeira
 Programar em Prolog consiste em:
 Declarar alguns fatos sobre objetos e suas relações
 Definir algumas regras sobre objetos e suas relações
 Fazer consultas sobre objetos e suas relações
a :- b1, b2 ...bi ; bj ... bn.
“se”
SE
Condição
“OU”
E
Representação Textual:
 Considere o seguinte texto:
 “João nasceu em Russas e Jean nasceu em Paris. Paris fica na França, enquanto que
Russas fica no Rio Grande do Norte. Agora, só é Nordestino quem nasceu no Rio Grande
do Norte, oxente.”
 Ao lado a codificação em Prolog:
 Uma consulta começa com um ponto de interrogação seguido do sinal de
menos e termina com ponto final. Exemplo usando os fatos do slide 9:
 Pedro e amigo de Carlos e Ana não conhece o Carlos, Quem é o pai de Ana?
?- pai(pedro, ana).
Yes
?- pai(pedro, carlos).
No
 Quando uma consulta é feita, o Prolog realiza uma busca na sua base de
conhecimento, procurando um fato que se unifique à questão
 nasceu(joão,Russas).
 nasceu(jean,paris).
 fica(paris,frança).
 fica(russas,rn).
 nordestino(X):-
 nasceu(X,Y),
 fica(Y,rn).
 ?- Nordestino(X).
 X=joão;
 É possível também incluir a
especificação da relação mãe, com
base no seguinte fundamento
lógico:
 Para todo X e Y,
– X é a mãe de Y se
– X é um progenitor de Y e
– X é uma mulher.
Traduzindo para Prolog:
 mãe(X,Y) :- progenitor(X,Y),
mulher(X).
 Acrescentando uma nova regra à BD , pode-se fazer
um novo tipo de consulta
 Perguntas mais interessantes também podem ser
efetuadas: Quem é o progenitor de Ismael?
progenitor(sara,isaque).
progenitor(abraão,isaque).
progenitor(abraão,ismael).
progenitor(isaque,esaú).
progenitor(isaque,jacó).
progenitor(jacó,josé).
 ?- progenitor(X,ismael).
 • Neste caso, o Prolog não vai responder apenas true
ou false.
 O Prolog fornecerá o valor de X tal que a pergunta
acima seja verdadeira‰. Assim a resposta é: X =
abraão
 Perguntas mais complexas também podem
ser efetuadas, tais como: Quem é o avô de
José?
 • Como o programa não conhece diretamente
a relação avô, esta pergunta deve ser
desmembrada em dois passos – (1) Quem é o
progenitor de José? Assuma que é um Y – (2)
Quem é o progenitor de Y? Assuma que é um
X
 • Esta pergunta composta pode ser escrita em
Prolog como:
?- progenitor(Y,josé), progenitor(X,Y).
X = isaque Y = jacó
Bibliografia :
 http://www.linhadecodigo.com.br/Artigo.as
px?id=1697
 PROLOG. Disponível em:
http://www.din.uem.br/ia/ferramen/prolog
/.

PROLOG, Wikipédia - Enciclopédia livre.
Disponível em:
http://pt.wikipedia.org/wiki/Prolog.
JACQUES ROBIN, Slides sobre Fundamentos
do Prolog.
 Bibliografia
 Judith L. Gersting: Fundamentos Matemáticos
para a Ciência da Computação, LTC Editora,
3a edição, 1995.
 Luiz A. M. Palazzo: Introdução à Programação
PROLOG, Editora da Universidade Católica de
Pelotas/UCPEL - Pelotas

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Apresentação1 prolog trabalho phillipe

  • 1. PROLOG: Linguagem de programação Phillipe Eduardo Silva de Oliveira – Unirb – Sistema de Informação – Logica Matemática e Discreta
  • 2. O que é PROLOG?  Prolog é uma linguagem declarativa ao invés de procedimental. Isto significa que ela especifica o quê se sabe e o que deve ser feito, mas não especifica como fazer.  A linguagem consiste na declaração (ou descrição de uma interpretação) de hipóteses que são verdadeiras em uma interpretação  Na lógica de predicados usamos regras de inferência para demonstrar que uma tese é consequência de determinadas hipóteses  Programação em Lógica e especificamente a linguagem Prolog – Programação Logica – também pode provar teses a partir de hipóteses  A linguagem Prolog inclui: predicados, conectivos lógicos e regras de inferência - Princípio da Resolução  Um programa Prolog possui três interpretações semânticas básicas:  Interpretação declarativa. Entende-se que as cláusulas que definem um programa descrevem uma teoria de primeira ordem.  Interpretação procedimental. As cláusulas são vistas como entrada para um método de prova.  Interpretação operacional. As cláusulas são vistas como comandos para um procedimento particular de prova por refutação.  Proveito das alternativas semânticas:  Declarativa: Permite a modelagem do problema simplificando a tarefa de programação  Procedimental: Permite que o programador identifique e descreva o problema em subproblemas através de uma série de chamadas a procedimentos  Operacional: Permite controle da execução através da ordenação das cláusulas e objetivos
  • 3. Quais são os conjuntos do ProLog?  O conjunto de declarações que forma um programa Prolog é chamado de base de conhecimento (BC) ou base de fatos.  Para determinar se uma tese (consulta do usuário à BC) é ou não verdadeira, o Prolog aplica suas regras de inferência na BC sem a necessidade de instruções adicionais por parte do programador  Bases de conhecimento convencionais descrevem apenas fatos “Tico é um pinguim”  As sentenças de um Programa em Lógica, além de descrever fatos, permitem a descrição de regras “Todo pinguim é um ave”  Havendo regras, novos fatos podem ser deduzidos “Tico é uma ave”
  • 4. Subconjuntos do PROLOG:  O Prolog é baseado num subconjunto do cálculo de predicados de primeira ordem, o que é definido por cláusulas de Horn. A execução de um programa em Prolog é efetivamente a prova de um teorema por resolução de primeira ordem. Alguns conceitos fundamentais são unificação, recursão, e backtracking.  Em Prolog são fornecidos os fatos e as regras para uma base de dados, que posteriormente serão executadas consultas (queries) em cima da base de dados.  A estrutura de um fato é formada por um predicado, seus argumentos (objetos) e finalizamos a instrução com um ponto(.) equivalente ao ponto-vírgula das linguagens comuns de programação. Veja a seguir: predicado(argumento1,argumento2...). O predicado é a relação sobre os quais os objetos irão interagir. Exemplos: -> amiga(joana, maria). Definimos uma relação de amizade entre dois objetos, joana e maria. -> homem(jose). Note que quando usamos apenas um objeto, o predicado passa a ser uma característica do próprio objeto. Fatos: a Regras: a b Consultas: b Vazia:
  • 5. Sentenças do PROLOG:  As sentenças de um programa prolog são expressas por cláusulas  Tipos de cláusulas: fatos e regras  Fato: declaração de uma verdade incondicional  Regra: condição que deve ser satisfeita para que um declaração seja considerada verdadeira  Programar em Prolog consiste em:  Declarar alguns fatos sobre objetos e suas relações  Definir algumas regras sobre objetos e suas relações  Fazer consultas sobre objetos e suas relações a :- b1, b2 ...bi ; bj ... bn. “se” SE Condição “OU” E
  • 6. Representação Textual:  Considere o seguinte texto:  “João nasceu em Russas e Jean nasceu em Paris. Paris fica na França, enquanto que Russas fica no Rio Grande do Norte. Agora, só é Nordestino quem nasceu no Rio Grande do Norte, oxente.”  Ao lado a codificação em Prolog:  Uma consulta começa com um ponto de interrogação seguido do sinal de menos e termina com ponto final. Exemplo usando os fatos do slide 9:  Pedro e amigo de Carlos e Ana não conhece o Carlos, Quem é o pai de Ana? ?- pai(pedro, ana). Yes ?- pai(pedro, carlos). No  Quando uma consulta é feita, o Prolog realiza uma busca na sua base de conhecimento, procurando um fato que se unifique à questão  nasceu(joão,Russas).  nasceu(jean,paris).  fica(paris,frança).  fica(russas,rn).  nordestino(X):-  nasceu(X,Y),  fica(Y,rn).  ?- Nordestino(X).  X=joão;  É possível também incluir a especificação da relação mãe, com base no seguinte fundamento lógico:  Para todo X e Y, – X é a mãe de Y se – X é um progenitor de Y e – X é uma mulher. Traduzindo para Prolog:  mãe(X,Y) :- progenitor(X,Y), mulher(X).
  • 7.  Acrescentando uma nova regra à BD , pode-se fazer um novo tipo de consulta  Perguntas mais interessantes também podem ser efetuadas: Quem é o progenitor de Ismael? progenitor(sara,isaque). progenitor(abraão,isaque). progenitor(abraão,ismael). progenitor(isaque,esaú). progenitor(isaque,jacó). progenitor(jacó,josé).  ?- progenitor(X,ismael).  • Neste caso, o Prolog não vai responder apenas true ou false.  O Prolog fornecerá o valor de X tal que a pergunta acima seja verdadeira‰. Assim a resposta é: X = abraão  Perguntas mais complexas também podem ser efetuadas, tais como: Quem é o avô de José?  • Como o programa não conhece diretamente a relação avô, esta pergunta deve ser desmembrada em dois passos – (1) Quem é o progenitor de José? Assuma que é um Y – (2) Quem é o progenitor de Y? Assuma que é um X  • Esta pergunta composta pode ser escrita em Prolog como: ?- progenitor(Y,josé), progenitor(X,Y). X = isaque Y = jacó
  • 8. Bibliografia :  http://www.linhadecodigo.com.br/Artigo.as px?id=1697  PROLOG. Disponível em: http://www.din.uem.br/ia/ferramen/prolog /.  PROLOG, Wikipédia - Enciclopédia livre. Disponível em: http://pt.wikipedia.org/wiki/Prolog. JACQUES ROBIN, Slides sobre Fundamentos do Prolog.  Bibliografia  Judith L. Gersting: Fundamentos Matemáticos para a Ciência da Computação, LTC Editora, 3a edição, 1995.  Luiz A. M. Palazzo: Introdução à Programação PROLOG, Editora da Universidade Católica de Pelotas/UCPEL - Pelotas