Está en la página 1de 2

Metas

También conocida como “clausula sin cabeza ”,en esta sección se coloca la meta u
objetivo que deseamos que Prolog satisfaga. Es similar a cualquier otra regla, ya que la
meta está compuesta de un conjunto de submetas que hay que demostrar, la principal
diferencia reside en que detrás de la palabra GOAL no se pone ":-", es decir no existe
parte izquierda de la regla, y ésta se ejecuta directamente cuando arranca el programa.
Ejemplo: El programa abuelo.pl se refiere a un universo de discurso cuyos miembros
son Juan, Luis y Ana. Estos son los términos constantes del programa. Las
relaciones entre ellos se definen en términos de cláusulas: padre/2 se usa
para definir con dos hechos (cláusulas sin cuerpo), quien es padre de quien.
La cláusula abuelo/2 se define como una regla (cláusula completa), en términos de la
relación padre –Alguien (X) es abuelo de alguien más (Y), si tiene
un hijo (Z) que es padre de ese alguien más (Y). Las consultas que hicimos
para saber si Luis era padre de Ana, de quién es padre Luis y quien es abuelo
de Ana, son metas (cláusulas sin cabeza).

Clausulas
Un programa en Prolog está constituido por una secuencia de cláusulas. Estas

cláusulas deben representar todo el conocimiento necesario para resolver el

problema.
Se pueden diferenciar tres tipos de Cláusulas:

1.-Hechos (afirmaciones), se pueden representar:

1.1-Objetos

1.2-Propiedades de objetos

1.3- Relaciones entre objetos

2.-Reglas.

3.-Consultas.

Cada cláusula puede estar formada por uno o varios predicados. Las
cláusulas deben terminar obligatoriamente en punto.

Ejemplo:
Un programa Prolog está constituido por un conjunto de cláusulas de Horn. Una
cláusula de Horn tiene la forma general:

Donde tanto p como las p1 son símbolos predicados con sus argumentos entre
paréntesis. A los argumentos de un predicado se les denomina Términos.
Las cláusulas de Horn son expresiones condicionales, siendo el símbolo “:-” el
condicional o símbolo de la implicación (normalmente en lógica se utiliza el
símbolo “ ⇒”) .
Así la cláusula anterior podría leerse de la siguiente forma:
“SI p1(….) Y p2(….) Y … Y pm(….) ENTONCES p(t1,t2,…,tn)”

También podría gustarte