En este tema, aprenderemos cómo realizar consultas simples en Prolog. Las consultas son una parte fundamental de Prolog, ya que permiten interactuar con la base de datos de hechos y reglas para obtener información.
Objetivos
- Comprender qué es una consulta en Prolog.
- Aprender a formular consultas simples.
- Practicar la ejecución de consultas en Prolog.
¿Qué es una Consulta en Prolog?
Una consulta en Prolog es una pregunta que se le hace al sistema para verificar si ciertos hechos o reglas son verdaderos. Las consultas se utilizan para extraer información de la base de datos de Prolog.
Ejemplo de Consulta
Supongamos que tenemos los siguientes hechos en nuestra base de datos:
Podemos hacer una consulta para verificar si juan
es un hombre:
La respuesta de Prolog será true
si el hecho hombre(juan)
está en la base de datos.
Formulando Consultas Simples
Consultas de Hechos
Las consultas de hechos verifican si un hecho específico es verdadero. La sintaxis es simplemente el nombre del hecho seguido de los argumentos entre paréntesis.
Ejemplo
Prolog responderá true
si mujer(maria)
está en la base de datos.
Consultas con Variables
Las consultas pueden incluir variables para buscar todos los valores que satisfacen la consulta. Las variables en Prolog se escriben con una letra mayúscula o un guion bajo _
.
Ejemplo
Prolog buscará todos los valores de X
que hagan verdadera la consulta hombre(X)
. La respuesta podría ser:
El punto y coma ;
permite continuar buscando más soluciones.
Consultas con Múltiples Condiciones
Podemos combinar múltiples condiciones en una consulta usando comas ,
para representar una conjunción lógica (AND).
Ejemplo
Prolog buscará todas las combinaciones de X
y Y
que hagan verdadera la consulta. La respuesta podría ser:
Ejercicios Prácticos
Ejercicio 1
Dada la siguiente base de datos:
Realiza las siguientes consultas:
- ¿Quién es el padre de
pedro
? - ¿Quiénes son los hijos de
juan
? - ¿Quién es la madre de
maria
?
Soluciones
-
Consulta:
?- padre(X, pedro).
- Respuesta:
X = juan.
- Respuesta:
-
Consulta:
?- padre(juan, X).
- Respuesta:
X = pedro ; X = maria.
- Respuesta:
-
Consulta:
?- madre(X, maria).
- Respuesta:
X = ana.
- Respuesta:
Ejercicio 2
Dada la siguiente base de datos:
Realiza las siguientes consultas:
- ¿Quién es amigo de
pedro
? - ¿Quiénes son amigos de
maria
? - ¿Existen amigos mutuos entre
juan
ymaria
?
Soluciones
-
Consulta:
?- amigo(pedro, X).
- Respuesta:
X = maria.
- Respuesta:
-
Consulta:
?- amigo(maria, X).
- Respuesta:
X = ana.
- Respuesta:
-
Consulta:
?- amigo(juan, X), amigo(X, maria).
- Respuesta:
X = pedro.
- Respuesta:
Resumen
En esta sección, hemos aprendido a realizar consultas simples en Prolog. Hemos visto cómo formular consultas de hechos, consultas con variables y consultas con múltiples condiciones. Además, hemos practicado con ejercicios para reforzar estos conceptos. En el próximo tema, exploraremos las variables y la unificación en Prolog.
Curso de Programación en Prolog
Módulo 1: Introducción a Prolog
- ¿Qué es Prolog?
- Instalando Prolog
- Primeros Pasos en Prolog
- Sintaxis y Estructura Básica
- Hechos, Reglas y Consultas
Módulo 2: Programación Básica en Prolog
Módulo 3: Estructuras de Datos en Prolog
Módulo 4: Programación Avanzada en Prolog
- Unificación Avanzada
- Corte y Negación
- Meta-Programación
- Gramáticas de Clausulas Definidas (DCGs)
- Programación Lógica con Restricciones
Módulo 5: Prolog en la Práctica
- Entrada/Salida de Archivos
- Depuración de Programas Prolog
- Bibliotecas de Prolog
- Interfaz con Otros Lenguajes
- Construyendo una Aplicación en Prolog