$BlogRSDUrl$>
Guardado por meses.
Los siguientes listados son una referencia a partir de la cual ampliar la búsqueda de sitios relacionados (i).
Búsqueda simple en varios de los motores más conocidos. Para mayor precisión, entrar en la página correspondiente e ir al apartado de búsqueda avanzada.
Esta página traducida:
Traducción al catalán, internostrum; traducción al portugués, universia.
Agregue este sitio a su lector de "feeds" (sindicación mediante el sistema Atom).
Espacio dedicado a la programación lógica y la recuperación de información, con una atención especial al lenguaje Prolog y otros lenguajes afines, pertenecientes al paradigma lógico y declarativo. También se tratará de hablar de estos temas desde la perspectiva de la Biblioteconomía y la Documentación.
Es una buena pregunta, planteada por Mark Watson en su Weblog, de la que se hacen eco en Lambda the Ultimate (ver el apartado logic/declarative). A modo de reflexión sobre este (hasta cierto punto injustificado) hecho, el autor reseñado hace referencia al intérprete SWI-Prolog, del que menciona varias de sus virtudes. A este respecto, creo correcto afirmar que se equivoca quien necesariamente asocie Prolog con un entorno poco amigable, en modo "línea de comandos", al menos en lo que se refiere a las últimas versiones de los principales intérpretes y entornos de desarrollo para este lenguaje de programación lógica [1] [2]. Así por ejemplo, XPCE permite dotar de capacidades gráficas a los programas escritos para SWI-Prolog:
"XPCE has been developed for GUI development in Prolog from the start. XPCE has a dynamically typed object-oriented kernel. Methods can be defined in any language. XPCE predefines a large number of classes, aiming at data-representation as well as graphics. The graphical library allows for abstract description of interface components and is portable to Win32 and Unix/X11."
"Using XPCE, interactive Prolog applications can be written completely in Prolog. XPCE can be used for (space-)efficient storage of objects and object-oriented structuring of your application. As of XPCE-5, native Prolog-data can be passed and stored with XPCE/Prolog defined classes."
Una vez instalada la versión adecuada de SWI-Prolog en el ordenador, se puede consultar un manual sobre XPCE si se accede al ítem "Help" del menú de opciones de la parte superior de la ventana del programa.
Help --> XPCE (GUI) Manual
En la subventana que se abre, encontramos la opción "File", a través de la cual se localizan una serie de programas y ejemplos de demostración:
File --> Demo programs
Por citar otro ejemplo de programa dotado de interface gráfica mediante XPCE, mencionar que Gerhard Röhner es autor de una pequeña aplicación, "A graphical term-interpreter" (zeichneterm.pl), que permite dibujar gráficamente en pantalla, en forma de árbol jerárquico, un término escrito en Prolog, entendiendo en este caso por término una expresión o estructura, por ejemplo, como la siguiente:
monografia([autor(rich,e),autor(knight,k)],
titulo([inteligencia,artificial]),
edicion(2,no),
[lugar(madrid)],
[editorial('mcgraw hill')],
fecha(1997)).
Esta expresión hace uso de listas, delimitadas mediante corchetes, principal estructura de datos en el lenguaje Prolog. La explicación del programa "term-interpreter" está en Alemán, pero su uso es muy sencillo e intuitivo. Una vez descargado el archivo con extensión ".pl", lo ejecutamos, y escribimos la siguiente llamada a continuación del símbolo "?-" ("prompt" del intérprete Prolog) [1] [2] [3]:
?- zeichne_term.
Una vez pulsado "intro", se abre la ventana del programa XPCE propiamente dicho, y es en el campo de texto "Term" donde se debe escribir la expresión que se desea dibujar gráficamente. Este programa es un ejemplo muy sencillo, pero efectivo al mismo tiempo, del tipo de aplicaciones escritas en lenguaje Prolog y dotadas de interface gráfica que es posible desarrollar gracias a XPCE. El propio SWI-Prolog, en sus versiones más recientes, está dotado de una serie de herramientas desarrolladas mediante XPCE, entre otras: PceEmacs, Graphical tracer, Prolog Navigator.
Gerhard Röhner también es autor del programa SWI-Prolog-Editor. Se trata de un editor de programas Prolog, que integra en un mismo entorno un editor de código, con sintaxis coloreada, ayudas y referencias sobre SWI-Prolog y XPCE, y el propio intérprete para ejecutar los programas a medida que se van desarrollando, incluyendo el soporte necesario para mostrar la salida gráfica de aplicaciones escritas con XPCE.
En "Programando la interfaz gráfica con XPCE/Prolog" (formato PDF) Pau Sánchez explica de forma concisa los principales predicados y procedimientos que hay que manejar para dotar de capacidad e interactividad gráfica a programas escritos en lenguaje Prolog, mediante el comentado módulo XPCE de SWI-Prolog. Se trata de un trabajo realizado bajo la dirección de Faraón Llorens en el contexto de las asignaturas que éste imparte en la UA.
Visual Prolog (la versión Personal Edition es de uso libre para fines no comerciales), es otro entorno de desarrollo que combina procedimientos de programación gráfica con bases de conocimiento y motores de inferencia escritos en Prolog. En este caso, los proyectos creados se pueden "empaquetar" en un archivo ejecutable ".exe". En la página de Visual Prolog hay una serie de tutoriales muy buenos que abarcan generalidades del lenguaje Prolog por un lado, y cuestiones específicas de Visual Prolog y la programación gráfica en este entorno por otro. Un manual en castellano: "Entorno de Desarrollo Visual Prolog" (también en formato Word, comprimido en un archivo ".zip").
Para finalizar, y retomando el hilo inicial, merece la pena leer los comentarios que ha suscitado la cuestión que da título a este "post", en la reseña publicada en Lambda the Ultimate, "Why don't more people use Prolog?". Se pueden leer razonamientos muy interesantes basados en la experiencia de terceros, que (casi) siempre es muy valiosa.