Búscalo aquí:

Comenzando con SWI Prolog

Ésta vez presento las nociones básicas para empezar a trabajar en el entorno SWI Prolog, se podría decir que es un breve manual de como empezar a trabajar con SWI Prolog, mejor dicho un pequeño tutorial de SWI Prolog.



Swi Prolog es una herramienta de distribución libre para el trabajo de programación lógica, más información la pueden encontrar aquí desde donde pueden encontrar los instaladores y escoger la versión que deseen.

Bueno, yo trabaje en el SWI Prolog en su versión 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 después del carácter ‘%’.
Luego de que tengamos el editor emacs abierto, Nos dirigimos a: File – Save As, y nos aseguraremos primero de ponerle un nombre con la extensión .pl, por ejemplo: familia.pl, y direccionarlo en cualquier directorio. Luego de esto, pulsar OK.
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 hubiésemos 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 opción Compile buffer. Pero si solamente deseáramos compilar una parte, bastaría con que seleccionemos el contenido a compilar, y luego vamos a: Compile – Consult selection, como se muestra en la siguiente figura:

Ahora dirijámonos 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 sólo mostrará la primera respuesta a la búsqueda (de los hijos de Susana), sin embargo, Susana tiene más 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 más, esto es llamado FALLA. Ahora consultemos por todos los papás con sus respectivos hijos, esto sería:

? – esPapa(X,Y).
X = juan,
Y = fidel ;
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:

Bueno, eso fue para empezar, algo simple que les permitirá afianzarse y tener un buen comienzo en el trabajo con SWI Prolog. Sin embargo, en el blog de Oscar Fernández Asunción especificamente en esta entrada pueden encontrar mucha más información sobre este tema, incluso el trabajo con interfaces en Swi Prolog mediante XPCE.

Quieres leer más post como éste???...suscribete aquí!!!

-->

17 comentarios:

  1. chvr jorge fijate que ya me habia olvidado, suerte que encontre reviví todo de nuevo en tu blog chvr bien ahi... (Y)

    ResponderEliminar
  2. Gracias viejo tu si lo exlicas de modo didactico no como esos manuales.

    Sldos

    ResponderEliminar
  3. Disculpa que te moleste soy un aficionado al prolog no tendras un código para comunicarme via puerto serial o algún manual. Quiero usar el SWI-Prolog con Mi PC para comandar motores y recibir señales de entrada.

    Ojala tengas tiempo y me ayudes no encuentro nada en la web.

    Sldos.

    ResponderEliminar
  4. Exelente jorge Dios te bendiga gracias por este tutorial creo que me salvara el semestre supongo que debes ser un experto en programacion sigue publicando este tipo de material

    gracias
    carmarce_1969@hotmail.com

    ResponderEliminar
  5. Hola porque no usas visual prolog 7.1 ya que esta orientado a objetos, maneja los GUI, BD y mucho mas

    ResponderEliminar
  6. En alguna(s) oportunidad(es) use visual prolog y como mencionas, el uso de POO y otros elementos importantes para una aplicacion como la GUI y el manejo de BD otorga grandes facilidades al momento del desarrollo de un aplicativo.

    Sin embargo, me interesé bastante SWI Prolog por ser software libre y además por que permite el manejo de GUI's, base de datos, sockets, etc. Tal vez lo de POO aún no lo tienen implementado, no estoy al tanto de ello, pero es una mu buena alternativa, además de la facilidad con la que puede interactual con Java mediante la conexion Java-Prolog con jpl.

    Tal vez lo "poco conocido" que pueda ser SWI Prolog haga al principio un poco duro su uso, pero leyendo un poco de la documentación (en ingles) puedes conseguir muchas cosas interesantes.

    En conclusión, alternativas hay muchas, es cuestion de gustos :D. Saludos

    ResponderEliminar
  7. Muy bueno, estoy usando swi-prolog con Ubuntu y me ha servido, aunque es un poquito distinto.

    ResponderEliminar
  8. hola espero que subas mas tutoriales de estos de swi-prolog porfa lo usare en este semestre en inteligencia artificial, esta muy bien explicado felicidades

    ResponderEliminar
  9. la verdad!mil gracias...me sirvio mucho para la facu.ojala sigas subiendo este tipo de temas que son de mucha utilidad!

    ResponderEliminar
  10. me parecio super interesante tu blog mil gracias por la ayuda saludos desde mexico

    ResponderEliminar
  11. quien sabe como conectar prolog con algun manejador de base de datos sea sql, acces mysql, etc, por favor escribeme a mi correo frankcorie@hotmail.com

    ResponderEliminar
  12. Hola!
    Tal vez les interese pegarle una mirada a este IDE de Prolog hecho sobre la plataforma Eclipse, por lo que puede correr tanto en windows, linux o mac.

    Este IDE soporta los siguientes interpretes: Swi-prolog, b-prolog y xsb-prolog.


    Pueden ver más información en la página del proyecto: http://prodevtools.sourceforge.net/

    Espero les sea útil!

    ResponderEliminar
  13. Hola, estoy haciendo un SE, y necesito introducir nueva información, estpy ocupando assert, pero al momento de guardarlo con qsave_program guarda signos raros y nada del programa, cómo se utiliza el qsave_program???

    ResponderEliminar
  14. Super! primer link que encuentro con un acercamiento inicial a prolog tan bueno.

    ResponderEliminar
  15. Gracias, por enseñarnos como empezar.

    ResponderEliminar

Bienvenido a jcGeorge's Blog!!!

Por favor deja tu comentario, consulta o sugerencia, procura mantener habilitado tu perfil de Blogger o deja un enlace a tu blog o web.

Gracias por leer este blog!!!

Related Posts Plugin for WordPress, Blogger...