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:

jip ide

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:

jip ide

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.

License

Click here to see JIProlog license agreement.
Click here for more information about license fee.

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 newsletter

To receive news and udpdates about JIProlog subscribe to JIProlog newsletter

350-018 Standalone VPN concentrators generate safe tunnels into the companies and enhance the safety of branch operations as well as remote employees. 70-297 enables to build up Active Directory imitation and migration plabs. One who have completed different Microsoft exams must go for the 70-528 exam as well to understand the .NET framework. The Cisco 650-393 and some other 640-816 ICND2 is the test related to the Cisco Certified Network Associate certification. 156-215 gives capability to utilize monitoring tools to track, examine, and account for each and every one of the connections logged by Check Point components.