Вы находитесь на странице: 1из 4

Comenzando con SWI Prolog

sta vez presento las nociones bsicas para empezar a trabajar en el entorno SWI Prolog, se podra decir que es un breve manual de como empezar a trabajar con SWI Prolog, mejor dicho un pequeo tutorial de SWI Prolog. SwiProlog es una herramienta de distribucin libre para el trabajo de programacin lgica, ms informacin la pueden encontrar aqu desde donde pueden encontrar los instaladores y escoger la versin que deseen. Bueno, yo trabaje en el SWI Prolog en su versin para Windows. Ahora empecemos con el trabajo. En SWI Prolog se trabaja con el shell de SWI Prolog y con un editor. Los editores puede ser un block de notas, as como un editor emacs (de Unix), aqu se trabajar con el editor emacs,el cual puede ser abierto desde el shell de SWI Prolog con la sentencia:

? emacs.

Al pulsar INTRO aparecer el editor requerido, el cual tiene el siguiente aspecto:

Es en este editor en donde colocaremos toda la base del conocimiento, funciones, predicados, hechos, reglas, etc., que necesitaremos para hacer las consultas que necesitemos. En el editor emacs, los comentarios siguen despus del carcter %. Luego de que tengamos el editor emacs abierto, Nos dirigimos a: File Save As, y nos aseguraremos primero de ponerle un nombre con la extensin .pl, por ejemplo: familia.pl, y direccionarlo en cualquier directorio. Luego de esto, pulsar OK.
______________________ Ing. Jos Fernndez Zamora

Ahora, a manera de ejemplo, supongamos que tenemos el siguiente rbol familiar:

En el shell de SWI Prolog, colocaremos el conocimiento, es decir, los hechos, los cuales deben ir de la siguiente forma:

Ahora procedemos a guardar los cambios, para eso: File Save Buffer. Una vez que se procedi a hacer esto, ahora pasaremos a realizar las consultas en el shell. Pero para realizar consultas, previamente se tiene que haber compilado (cargado a memoria) todo lo que hubisemos puesto en el editor emacs. Para compilar vamos al men del editor emacs y hacemos clic en Compile. Si deseamos compilar todo el contenido elegimos la opcinCompile buffer. Pero si solamente deseramos compilar una parte, bastara con que seleccionemos el contenido a compilar, y luego vamos a: Compile Consultselection, como se muestra en la siguiente figura:

______________________ Ing. Jos Fernndez Zamora

Ahora dirijmonos al shell para realizar algunas consultas. Primero deseo saber si Juan es el papa de Fidel, para eso escribimos lo siguiente: ? esPapa(juan,fidel). Yes Inmediatamente se dispara un META. Un META es una respuesta ante una consulta. Si necesitamos saber quienes son los hijos de Susana, bastar con: ? esMama(susana,X). X = julio Si ante esta nica respuesta pulsamos INTRO, el shell slo mostrar la primera respuesta a la bsqueda (de los hijos de Susana), sin embargo, Susana tiene ms hijos, para ver todos los hijos de Susana (es decir, todas las respuestas posibles), se pulsa: ; (punto y coma). ? esMama(susana,X). X = julio; X = maria; NO
El NO indica que se han mostrado todas las respuestas y ya no se encuentran ms, esto es llamado FALLA. Ahora consultemos por todos los paps con sus respectivos hijos, esto sera:

? esPapa(X,Y). X = juan, Y = fidel ;


______________________ Ing. Jos Fernndez Zamora 3

X = juan, Y = mario ; X = fidel, Y = julio ; X = fidel, Y = maria ; X = mario, Y = marcos ; X = mario, Y = pedro ; X = mario, Y = luis ; NO Los resultados de los ejemplos mostrados se observaran en el shell de la siguiente manera:

______________________ Ing. Jos Fernndez Zamora

Вам также может понравиться