Está en la página 1de 3

Consultas en prolog

Ejercicio 1
Eduardo y Alicia son hermanos?
Consulta en prolog: hermano (eduardo, alicia).
Resultado: true
Quines son los padres de Beatriz?
Consulta en Prolog: padres (beatriz,X,Y).
Resultados: X = alicia, Y = mario.
Eduardo es hijo de Mario?
Consulta en Prolog: hijo (eduardo,mario).
Resultados: false
Luis es hijo de Vernica?
Consulta en Prolog: hijo(luis, veronica).
Resultados: true
De quin es hija Beatriz?
Consulta en Prolog: padres (beatriz, X, Y).
Resultados: X = alicia, Y = mario.
Define reglas para las relaciones nieto y nieta.
Regla para nieto:
nieta(Ella, X) :- mujer(Ella),padres(Ella, P, _),padres(P,X,_).
nieta(Ella, X) :- mujer(Ella),padres(Ella, _, M),padres(M,_,X).
Regla para nieta:
nieto(El, X) :- varon(El),padres(El, P, _),padres(P,X,_).
nieto(El, X) :- varon(El),padres(El, _, M),padres(M,_,X).
Defina reglas para la relacin abuelo y abuela
Regla para abuelo:
abuelo(El,X):- varon(El),padres(El,_,M),hijo(M,X).
abuelo(El,X):- varon(El),padres(El,P,_),hija(P,X).
abuelo(Ella,X):- mujer(Ella),padres(Ella,_,M),hijo(M,X).
abuelo(Ella,X):- mujer(Ella),padres(Ella,P,_),hija(P,X).
Regla para abuela:
abuela(Ella,X):- mujer(Ella),padres(Ella,_,M),hija(M,X).
abuela(Ella,X):- mujer(Ella),padres(Ella,P,_),hija(P,X).
abuela(El,X):- varon(El),padres(El,_,M),hija(M,X).
abuela(El,X):- varon(El),padres(El,P,_),hija(P,X).
Edita el archivo familares.pl para agregar las reglas definidas en los
pasos anteriores,
guarda el archivo, crgalo nuevamente en el
intrprete de Prolog y realiza las siguientes consultas:
Eduardo es abuelo?

Consulta en Prolog: abuelo(X,eduardo).


Resultados: False
Victoria es abuela?
Consulta en Prolog: abuela(X,victoria).
Resultados: X=beatriz
De quin es nieto Luis?
Consulta en Prolog: nieto (luis,X).
Resultados: X=francisco
Francisco es abuelo de Beatriz?
Consulta en Prolog: abuelo(beatriz,francisco).
Resultados: true
Define al menos 2 de las siguientes relaciones: sobrino, sobrina,
cuado o cuada. Codifcala en Prolog, modifica el archivo familares.pl
y prueba que la relacin est bien definida por medio de varias
preguntas.
Relacin: sobrina (beatriz,X).
Codificacin:
sobrino(El,X) :- varon(El),padres(El,M,_),hermana(M,X).
sobrino(El,X) :- varon(El),padres(El,_,P),hermano(P,X).
sobrina(Ella,X):- mujer(Ella),padres(Ella,M,_),hermana(M,X).
sobrina(Ella,X):- mujer(Ella),padres(Ella,_,P),hermano(P,X).
Ejercicio 2
Aprueba el examen Juan?
Consulta en Prolog: aprueba_examen(juan).
Resultados: true
Est Susana preparada para el examen?
Consulta en Prolog: preparado_para_examen(susana).
Resultados: true
Quin es el sabio del grupo?
Consulta en Prolog: sabe_todo(X).
Resultados: X=tomas
Quines aprueban el examen?
Consulta en Prolog: aprueba_examen(X).
Resultados: X=tomas, X=Juan
Dada la siguiente informacin:
Si X est encima de Y, entonces Y soporta a X.
Si X est arriba de Y y se tocan una y otra, entonces X est encima de Y.
La taza est arriba del libro.
La taza toca al libro

Escribe un programa en Prolog que use esta base de conocimiento y muestre


que SOPORTA (libro, taza) es verdadero.
Programa en Prolog:
arriba(taza,libro).
toca(libro,taza).
soporta(taza,libro).
encima(Y,X):- soporta(X,Y).
encima(Y,X):- arriba(X,Y),toca(X,Y).
SOPORTA (libro, taza)

Convierte a Prolog la pregunta: Qu soporta a la taza?


Pregunta en Prolog: soporta(taza, X).
Respuesta: X = libro.
Convierte a Prolog la pregunta: Qu est encima del libro?
Pregunta en Prolog: encima (libro, X).
Respuesta: X = taza
Comentarios y conclusiones

También podría gustarte