ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

JPL - Uniendo Prolog y Java en Linux


Enviado por   •  23 de Agosto de 2013  •  566 Palabras (3 Páginas)  •  485 Visitas

Página 1 de 3

JPL - Uniendo Prolog y Java en Linux

JPL es una interfaz que permite comunicar a Java con Prolog y viceversa. Esta interfaz se puede descargar como una librería adicional de la implementación ampliamente conocida de prolog: Swi-prolog. Existen en internet documentos que explican como hacer funcionar dicha libreria e incluso dan ejemplos, sin embargo, en algunos casos no funcionan y salen errores extraños que no brindan pistas sobre lo que esta sucediendo.

La dificultad principal radica en que no solamente tenemos que agregar al CLASSPATH una o varias librerías *.jar sino que se requieren librerías del sistema para que todo trabaje correctamente.

Entorno:

***********************************************

SO: Ubuntu karmic koala (9.10)

Java: java-6-sun

IDE: Eclipse Galileo (desde donde hice la prueba)

***********************************************

Desde el manejador de paquetes synaptic descargamos swi-prolog y swi-prolog-jpl. Generalmente no es necesario descargar el código fuente y hacer una compilación manual.

Una vez descargados e instalados dichos paquetes, tendremos en el directorio /usr/lib/swi-prolog/ los archivos que necesitamos para trabajar.

Estos son los archivos clave que hay que tener en cuenta:

En /usr/lib/swi-prolog/lib esta el archivo jpl.jar

En /usr/lib/swi-prolog/lib/i386 esta el archivo libjpl.so

Ahora vamos a poner a funcionar el ejemplo que trae swi-prolog. Este es el archivo prolog:

*****************************family.pl******************************

child_of(joe, ralf).

child_of(mary, joe).

child_of(steve, joe).

descendent_of(X, Y) :-

child_of(X, Y).

descendent_of(X, Y) :-

child_of(Z, Y),

descendent_of(X, Z).

*******************************************************************

Y este el de Java:

*******************************Family.java**************************

package jpl;

public class Family {

public static void main( String argv[] )

{

String t1 = "consult('family.pl')";

Query q1 = new Query(t1);

System.out.println( t1 + " " + (q1.hasSolution() ? "succeeded" : "failed") );

//--------------------------------------------------

String t2 = "child_of(joe, ralf)";

Query q2 = new Query(t2);

System.out.println( t2 + " is " + (q2.hasSolution() ? "provable" : "not provable") );

//--------------------------------------------------

String t3 = "descendent_of(steve, ralf)";

Query q3 = new Query(t3);

System.out.println( t3 + " is " +(q3.hasSolution() ? "provable"

...

Descargar como (para miembros actualizados) txt (5 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com