Documentos de Académico
Documentos de Profesional
Documentos de Cultura
implementación del
compilador DEC10 por Warren
• Piensa declarativamente, no
procedimentalmente
– Desafiante
– Requiere una mentalidad diferente
• Lenguaje de alto nivel
– No es tan eficiente como, por ejemplo, C
– Bueno para la creación rápida de
prototipos
• Útil en muchas aplicaciones de IA
Hechos (Facts)
Predicado Interpretación
valioso(oro). Oro es valioso.
?-
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- woman(mia).
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- woman(mia).
yes
?-
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- woman(mia).
yes
?- playsAirGuitar(jody).
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- woman(mia).
yes
?- playsAirGuitar(jody).
yes
?-
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- woman(mia).
yes
?- playsAirGuitar(jody).
yes
?- playsAirGuitar(mia).
no
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- tattoed(jody).
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- tattoed(jody).
no
?-
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- tattoed(jody).
ERROR: predicate tattoed/1 not defined.
?-
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- party.
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- party.
yes
?-
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- rockConcert.
Knowledge Base 1
woman(mia).
woman(jody).
woman(yolanda).
playsAirGuitar(jody).
party.
?- rockConcert.
no
?-
Reglas
• Declaraciones sobre objetos y sus relaciones
• Expresa
– Condiciones If-then
• Yo uso un paraguas si llueve
• use(i, umbrella) :- occur(rain).
– Generalizaciones
• Todos los hombres son mortales
• mortal(X) :- man(X).
– Definiciones
• Un animal es una ave si tiene plumas
• bird(X) :- animal(X), has_feather(X).
Knowledge Base 2
happy(yolanda).
listens2music(mia).
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
Knowledge Base 2
happy(yolanda). fact
listens2music(mia).
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
Knowledge Base 2
happy(yolanda). fact
listens2music(mia). fact
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
Knowledge Base 2
happy(yolanda). fact
listens2music(mia). fact
listens2music(yolanda):- happy(yolanda).
rule
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
Knowledge Base 2
happy(yolanda). fact
listens2music(mia). fact
listens2music(yolanda):- happy(yolanda).
rule
playsAirGuitar(mia):- listens2music(mia). rule
playsAirGuitar(yolanda):- listens2music(yolanda).
Knowledge Base 2
happy(yolanda). fact
listens2music(mia). fact
listens2music(yolanda):- happy(yolanda).
rule
playsAirGuitar(mia):- listens2music(mia). rule
playsAirGuitar(yolanda):- listens2music(yolanda). rule
Knowledge Base 2
happy(yolanda).
listens2music(mia).
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
head body
Knowledge Base 2
happy(yolanda).
listens2music(mia).
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
?-
Knowledge Base 2
happy(yolanda).
listens2music(mia).
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
?- playsAirGuitar(mia).
yes
?-
Knowledge Base 2
happy(yolanda).
listens2music(mia).
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
?- playsAirGuitar(mia).
yes
?- playsAirGuitar(yolanda).
yes
Clausulas
happy(yolanda).
listens2music(mia).
listens2music(yolanda):- happy(yolanda).
playsAirGuitar(mia):- listens2music(mia).
playsAirGuitar(yolanda):- listens2music(yolanda).
•likes(mary,X),likes(john,X)
•likes(mary,food)
•likes(mary,tea)
•likes(john,tea)
•likes(john,mary)
•likes(mary,food)
•likes(mary,tea)
•likes(john,tea)
•likes(john,mary)
•likes(mary,X),likes(john,X)
•likes(mary,food)
•likes(mary,tea)
•likes(john,tea)
•likes(john,mary)
•likes(mary,X),likes(john,X)
•likes(mary,food)
•likes(mary,tea)
•likes(john,tea)
•likes(john,mary)
?- playsAirGuitar(vincent).
no
?-
Knowledge Base 3
happy(vincent).
listens2music(butch).
playsAirGuitar(vincent):- listens2music(vincent), happy(vincent).
playsAirGuitar(butch):- happy(butch).
playsAirGuitar(butch):- listens2music(butch).
?- playsAirGuitar(butch).
yes
?-
Expresando Disjunción
happy(vincent).
listens2music(butch).
playsAirGuitar(vincent):- listens2music(vincent), happy(vincent).
playsAirGuitar(butch):- happy(butch).
playsAirGuitar(butch):- listens2music(butch).
happy(vincent).
listens2music(butch).
playsAirGuitar(vincent):- listens2music(vincent), happy(vincent).
playsAirGuitar(butch):- happy(butch); listens2music(butch).
Prolog y Lógica
Ejemplo:
• Si Paola vacaciona en París, entonces
ella tendrá que ganar una beca.
• Paola esta vacacionando en París
• Por lo tanto Paola ganó una beca.
Knowledge Base 4
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
Prolog Variables
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- woman(X).
Variable - Instanciación
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- woman(X).
X=mia
Consultando Alternativas
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- woman(X).
X=mia;
Consultando Alternativas
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- woman(X).
X=mia;
X=jody
Consultando Alternativas
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- woman(X).
X=mia;
X=jody;
X=yolanda
Consultando Alternativas
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- woman(X).
X=mia;
X=jody;
X=yolanda;
no
Knowledge Base 4
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- loves(marselo,X), woman(X).
Knowledge Base 4
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- loves(marselo,X), woman(X).
X=mia
yes
?-
Knowledge Base 4
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- loves(pumpkin,X), woman(X).
Knowledge Base 4
woman(mia).
woman(jody).
woman(yolanda).
loves(vincent, mia).
loves(marselo, mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- loves(pumpkin,X), woman(X).
no
?-
Knowledge Base 5
loves(vincent,mia).
loves(marselo,mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- jealous(marselo,W).
Knowledge Base 5
loves(vincent,mia).
loves(marselo,mia).
loves(pumpkin, honey_bunny).
loves(honey_bunny, pumpkin).
?- jealous(marselo,W).
W=vincent
?-
Prolog Sintaxis
Terms
Terms
Simple
Simple Terms
Terms Complex
Complex Terms
Terms
Constants
Constants Variables
Variables
Atoms
Atoms Numbers
Numbers
Atoms
• Una secuencia de caracteres de mayúsculas,
minúsculas, dígitos o guiones bajos,
comenzando con una letra minúscula
• Ejemplos: butch, big_kahuna_burger, playGuitar
• Ejemplos:
• El número de argumentos de un
término complejo se llama aridad
• Ejemplos: