Informatica Avanzada . Aplicación de Programación Lógica en Java. Manuel Iván Barrera Cerna mbarrera@inf.uach.cl Valdivia, 10 de Junio de 1999. Introducción La Programación Lógica hoy en dia ya se encuentra relacionada con Java. Y es de esta relación que aparecen una serie de aplicaciones de Programación lógica en Java, también existen algunas en Jess, de las muchas aplicaciones existentes se entregará una breve descripción del interpretador de Prolog en Java (W−Prolog). Al escribir un sistema Prolog en Java(Programación orientada a Objetos) se tienen una serie de ventajas entre ellas : Portabilidad, Mayor Poder, Flexibilidad y Modificaciones de Código. Cada sistema de programación lógica tiene disponible una capa extra de Orientación a Objetos, esto para representación de Conocimiento. También existen aplicaciones de Java más Programación lógica como por ejemplo : Basado en JNI como : JASPER(Sictus), JPL(Swi) JIPL(K−Prolog) o también Basado en Socket como: Interprolo(XSB) y Prolog IV. Desarrollo W−PROLOG es un interpretador implementado en JAVA para un lenguaje como PROLOG. La implementación es extremadamente portable y puede ser ejecutada como un applet en un Browser . W−PROLOG tiene una agradable interfaz para usuarios mejor que los sistemas prolog( los cuales proporcionan una interfaz típica con líneas de comandos). El sistema W−Prolog es pequeño y es comparativamente simple. Sin embargo esto no lo hace particularmente rápido. W−Prolog es actualmente usado Como parte de la Guía para programación en prolog de Roman Barták en el centro de antropología y de Computación de la Universidad de Kent. W−Prolog esta disponible tanto para Unix como para Windows, además puede ser ejecutado como un applet o como una aplicación individual, también puede ser llamada desde otro programa. Para ejecutar W−Prolog como una aplicación individual se necesita tener un Kit desarrollador de java(JDK). La interfaz de usuario es diferente en applets. La fila de arriba contiene el campo de texto en el cual un prolog atom puede ser tipeado, el primer botón (ejecuta la pregunta) y el segundo(more?) buscara alternativas para una pregunta exitosa. El botón del área de texto contiene la salida del W−Prolog, el botón clear limpia los resultados del área de texto . Para salir del W−Prolog basta con cerrar la ventana o bien seleccionado salir(Quit) del menú. 1 Los applets tienen un número de limitaciones, por ejemplo, ellos no pueden escribir los archivos o abrir conexiones de redes. Como una consecuencia de esto los applets del W−Prolog no permiten cargar ni guardar programas. La versión applet de W−Prolog tiene 4 botones : Benchmatk: Ejecuta el benchmark, la formula 496/(tiempo de ejecución) da la velocidad en interferencias lógicas por segundo. About : Entrega información sobre el autor (Michael Winikkoff) y la versión (actualmente 1.2) dentro del área de texto del programa. Append: Entrega un simple apendice dentro del area de texto. Documentation: Abre una ventana de navegador (Browser) en este archivo Fig. Nº1 Versión applet del W−PROLOG. Cuando se ejecuta como una aplicación individual los 4 botones son reemplazados por cargar(load) archivos y guardar(save). El nombre del archivo es mostrado en un campo de texto no editable, el boton load permite 2 selecionar y cargar el archivo deseado, el botón de save permite guardar el archivo cambiado. Fig. Nº2 Versión de ejecución individual del W−PROLOG. Es recomendable que el W−PROLOG sea ejecutado en forma individual. Versiones anteriores de W−PROLOG apoyan la carga de archivos en la versión applet. Este tipo no tiene inconvenientes cuando se ejecuta con un visor de applet de SUN pero se rehusa a trabajar bajo netscape. Además del W−PROLOG existen otros interpretadores de Prolog en Java como por ejemplo MINERVA, JAVALOG, JINNI, PROLOG CAFÉ, DGKS PROLOG E INTERPROLOG. En una visión breve de alguno de ellos se tiene : MINERVA: Proporciona la funcionalidad de prolog tanto como las clases de java y puede a la vez acceder a objetos java. Minerva asimismo esta implementada en java. JINNI: Jinni tiene una buena integracion de mecanismos java dentro de una implementacion de prolog distribuida. Además Jinni o BinProlog tiene un gran nivel de llamadas remotas. INTERPROLOG(XSB PROLOG): Programas en Java se conectan a otros Programas en Java a través de Sockets. Uso intensivo de reflexión y serialización en Java, Fácil de portar aunque esta recien siendo desarrollado por XBS Prolog. Conclusión Como se vio en este corto informe hoy en día existe una estrecha relación entre la programación lógica y el lenguaje Java, de esta relación han nacido muchas aplicaciones que son de mucha ayuda, una de ellas es el interpretador de Prolog en Java (W−Prolog), este programa muestra las ventajas de esta unión entre la programación lógica y Java ya que W−Prolog es muy Portable, de mayor poder y a la vez muy Flexible. Además se sabe que otra ventaja es que con esta unión se obtienen mayores beneficios si lo que se desea es poder representar el conocimiento. INFORMATICA AVANZADA APLICACION DE PROLOG EN JAVA 1 5 MANUEL BARRERA CERNA INFO − 263 3 Universidad Austral de Chile. Faculta de Ciencias de la Ingeniería. Escuela de Ingeniería Civil en Informática. 4