JIProlog - Java Internet Prolog
Latest release: Version 3.0.3-1 SP1
- ISO Prolog standard
- JRE1.1 or later
- JIProlog for J2ME (MIDP 2.0, CLDC 1.0) for Java-enabled Mobile Phones
- Personal Java 1.1 (WinCE, Pocket PC 2002/2003 or later, Windows Mobile 2003/2005 or later)
- Symbian OS Mobile Phones
Download the latest version 3.0.3-1 SP1 or try it on-line as applet
Introduction
JIProlog - Java Internet Prolog is a cross-platform pure Java 100% Prolog interpreter which integrates Prolog and Java languages in a very easy way. JIProlog allows to call Prolog predicates from Java without dealing with native code (JNI) and allows to invoke Java methods from Prolog in the same way you call predicates.
JIProlog is designed to work with any Java 1.1 platform or later, including Java enabled application servers, Java enabled browsers, PDAs compliant with Personal Java 1.1, mobile phones compliant with MIDP 1.0/2.0 and Symbian OS mobile phones.
JIProlog is supplied with powerfull Integrated Devopment Environment to edit, consult, run and test Prolog programs and provides a set of java classes, that forms the JIProlog API, which allows to:
- call Prolog Predicates from Java without dealing with native code and JNI;
- call Java methods and classes from Prolog without dealing with foreign language interfaces;
- write custom Prolog predicates in Java in order to extend the default set of built-in predicates;
- extend the graphical user interface of a Prolog program implementing windows and dialogs in Java as custom predicates;
- integrate databases in Prolog through a JDBC <--> Prolog bridge, treating tables and views as Prolog predicates.
Compatibility
JIProlog is compliant with the major Prolog interpreters. It supports most of ISO specifications, and many of the most common and used built-in predicates (see JIProlog Reference manual)
JIProlog is compliant with Java 1.1 Platform or later, J2ME (MIDP
MIDP 2.0-CLDC1.0 or later).
As of this writing, it has been successfully tested on the following platforms:
- Windows/Linux/MacOS: JRE 1.6.x, 1.5.x, 1.4.x, 1.3.x, 1.2.x, 1.1.x
- J2ME MIDP 2.0-CLDC 1.0 Mobile Phones:
Nokia Series 40/60/80, Siemens/BenQ, Sony Ericsson, Motorola, etc.
- WinCE, Pocket PC 2002/2003 or later, Windows Mobile 2003/2005 or later:
Jeode JVM, CrEME JVM (HP iPAQ, HTC, QTEK, i-mate, Pocket Loox).
- EPOC OS (psion-m5)
- Internet Explorer 4.x, 5.x, 6.0, 7.0
- Firefox 2.0, 1.0
- Netscape Navigator 4.5, 4.7, 6.0
- Apache Tomcat
Support for PDAs and Windows Mobile Smartphones
JIProlog is compliant with Personal Java 1.1 or later thus it works with any PDA that has a Personal Java 1.1 (or later) VM like Jeode, CrEME, chaiVM, JV-Lite2, etc. Some of PDAs supported are: HP/Compaq iPAQ, HTC, QTEK, i-mate,Fujitsu-Siemens
Pocket Loox and SimPad, HHP, NEC, Samsung, Sharp Eletronics, Toshiba, psion m5, and any other device with Windows CE/Pocket PC 2002/2003 and Windows Mobile 2003/2005).
See JIProlog Reference manual for more information.
Support for Java enabled Mobile Phones
JIProlog is compliant with J2ME MIDP MIDP2.0-CLDC1.0 or later therefore it works with any Java Enabled mobile phone supporting MIDP 2.0, including Symbian OS mobile
phones, such as: Nokia Series 40/60/80, Siemens/BenQ, Sony Ericsson, Motorola, etc.
See JIProlog Reference manual for more information.
Interface Java <-> Prolog
JIProlog comes with a complete API to link Prolog and Java languages from both sides. The API can is composed of three parts: the first one regards the way to invoke Prolog from Java; the second one deals with the techniques to call Java methods from Prolog by implementing custom Prolog built-in predicates as Java classes or by calling directly Java methods through Java Reflection API; the third one treats the way to link Prolog predicates with tables in an external databases via JDBC. A complete description of the JIProlog API is available in the javadoc documentation.
JIProlog Intergrated Development Environment
JIProlog supplies an Integrated Development Environment for Prolog based on Jext editor. Such an IDE supplies many interesting features to edit, compile manage files and projects in different formats and languages (such as java, perl, C/C++, html), gives syntax colorization for Prolog language, and so on:
JIProlog stand-alone interpreter
JIProlog stand-alone interpreter is a java application that runs Prolog programs as stand-alone applications.
JIProlog Server
JIProlog Server is a daemon that brings JIProlog Interpreter’s functionalities over the network via TCP/IP, supplying, in this way, any remote client with an interface to submit queries and to receives the related solutions. Clients should be implemented using the a special class supplied with the API that implements the client-side protocol as described in the section “How to implement a JIProlog client” in the appendix A of JIProlog Reference manual. The following picture gives a screenshot of JIProlog Server:
Support for XML - DOM
The extension package jipxxml provides a set of Prolog predicates implementing a DOM-like API for parsing and creating XML documents. Each DOM object is mapped to a corresponding predicate and has a set of rules to manage it. The result is an API to manage DOM objects in Prolog. See the appendix B in JIProlog Reference manual.
Support for HTML
The extension package jipxhtml provides a set of Prolog predicates for parsing and creating HTML 4.0 documents. Each HTML object is mapped to a corresponding predicate and has a set of rules to manage it. See the appendix C in JIProlog Reference manual
Support for Java Reflection API
The extension package jipxreflect provides a set of Prolog predicates that map the functionalities of the Java Reflection API. The package allows creating Java objects, invoking their methods, retrieving values from their fields and so on. See chapter 7 in JIProlog Reference manual.
Future plan
- Better unicode support for chinese, arabic and other estern languages
Porting on .NET platform.
Mailing List
To receive news and udpdates about JIProlog subscribe to JIProlog newsletter sending an email to jiprolognews-subscribe@<removethis>ugosweb.com or visiting the page: Mailing Lists
Contacts
Read JIProlog forum and/or write a new topic asking to JIProlog Commiìunity or contact me at the address ugo.chirico@<removethis>ugosweb.com to receive any kind of information about JIProlog. If you discover a bug or you have some questions or want some explanations about JIProlog, please don't hesitate to write me.
References
3APL- An Abstract Agent Programming Language: a programming language for implementing cognitive agents. - http://www.cs.uu.nl/3apl
Caffeine: a system for the dynamic analysis of Java programs. Caffeine is made of a Prolog engine that analyzes the execution of a Java program on a remote virtual machine. - http://www.yanngael.gueheneuc.net/Work/Research/Caffeine/Introduction/
No Java Without Caffeine: a tool for Dynamic Analysis of Java Programs - http://www.emn.fr/jussien/publications/gueheneuc-RR0207.pdf
Du langage à l'image. Génération automatique de rèbus - http://users.info.unicaen.fr/~slegloan/rebus/rapport_rebus.pdf
Adding Functional Programming into the Holo Language - www.informatik.uni-kiel.de/~wflp2001/proceedings/papers/paper25.ps.gz
JIProlog: un interprete prolog in java - http://online.infomedia.it/riviste/dev/94/sommario.htm
Logic Programming - http://www.arch.usyd.edu.au/~g_smith/logicProg/talk.pdf
Towards Effective Parallel Logic Programming - ftp2.cnpq.br/pub/protem/workshop2001/nsf/artigos/vitor_santos_costa_clopn.ps
Hanoi's Towers - Hanoi's Towers
JIProlog


Home:
Blog:
Mobile:
e-mail:
Skype:
MSN Messenger:
Fax: