Manual De Prolog
PRIMEROS PASOS EN PROLOG
En este capítulo revisaremos unos pocos ejemplos para ilustrar las ideas básicas detrás de la programación en PROLOG. Pero primero, unas notas acerca de como usar Sistemas PROLOG.
Un programa PROLOG es un conjunto de procedimientos (el orden es indiferente). Cada procedimiento consiste de una o más cláusulas(ahora, el orden de las cláusulas si es importante). Hay dos tipos de cláusulas: hechos y reglas. El programa es almacenado en una base de conocimiento PROLOG. Usualmente cargas un programa dentro de la base de datos usando el comando consult, en la concha PROLOG, en la siguiente forma:
? consult(‘Nombre_Del_archivo_Con_El_Programa’).
El comando consult agrega las cláusulas y hechos desde elarchivo texto especificado a las cláusulas y hechos ya almacenados en la base de datos. Así puedes cargar más programas dentro de la base de datos a la vez, pero debes ser cuidadoso si los programas no usan los procedimientos con el mismo nombre. De otra manera, debido a la acumulación de cláusulas, esos procedimientos podrían comportarse incorrectamente.
Otra forma de invocar este mismo comando escon la notacion de listas:
? [‘Nombre_Del_archivo_Con_El_Programa’].
Puedes también usar el comando reconsult para recargar un programa.
? reconsult('Nombre_Del_Archivo_Con_El_Programa').
Este comando se comporta igual al comando consult (agrega procedimientos dentro de la base de datos) pero si hay un procedimiento en la base de datos con el mismo nombre de algún procedimientoen el archivo reconsultado, entonces el primer procedimiento es reemplazado por la nueva definición. Puedes usar el comando reconsult para cambiar un programa en la base de datos durante la depuración.
El programa PROLOG es ejecutado invocando algún procedimiento del programa de la siguiente forma:
? nombre_Del_Procedimiento(parámetros).
Nota que tu ya has llamado un procedimientocuando tu consultastes o reconsultastes el archivo. "Llamar un procedimiento" es equivalente a "preguntando una pregunta" en PROLOG.
BASE DE DATOS GENEALÓGICA
Una base de datos genealógica puede ser una buena introducción a PROLOG , pués no es exactamente un conjunto de procedimientos y tiene más elementos que una base de datos común. En ésta lección , presentamos un programa dePROLOG simple que captura relaciones de familia básicas. El programa demuestra algunas de las características de PROLOG como el usar hechos , reglas , variables y la recursión.
Primero, expresamos la propiedad de ser un hombre o mujer usando hechos de PROLOG:
hombre(adan).
hombre(pedro).
hombre(paul).
mujer(maria).
mujer(eva).
Ahora podemos agregar la relación "pariente" el cualasocia pariente y niño:
pariente(adan,pedro). % Significa adan es
pariente de pedro.
pariente(eva,pedro).
pariente(adan,paul).
pariente(marry,paul).
Hasta ahora, hemos agregado sólo hechos a nuestro programa. Pero el poder real de PROLOG está en las reglas. Mientras que los hechos afirman la relación explícitamente, las reglas definen la relación enuna forma más general. Cada regla tiene su cabeza (nombre de la relación definida), y su cuerpo (las condiciones de definición de la relación). Las siguientes reglas definen las relaciones de ser un padre y ser una madre usando las relaciones definidas previamente de ser un hombre o mujer y ser un pariente.
padre(F,C) :-hombre(F), pariente(F,C).
madre(M,C) :- mujer(M), pariente(M,C).
Notar que usamos variables (comienzan con mayúscula) para expresar la característica que cada hombre el cual es un pariente de cualquier niño es también su padre. Si algún parámetro de la relación no es importante podemos usar variables anónimas (denotadas _) como en esas definiciones:
es_padre(F) :- padre(F,_).
es_madre(M) :- madre(M,_).
Antes de avanzar más, uno debería saber como...
Regístrate para leer el documento completo.