JIProlog - Java Internet Prolog is a cross-platform pure Java 100% Prolog interpreter that integrates Prolog and Java languages in a very fashinating way.

JIProlog is compliant with the major Prolog interpreters. It supports most of ISO Prolog specifications and the most common and used built-in predicates,

JIProlog allows calling Prolog predicates from Java without dealing with native code (JNI) and allows invoking Java methods from Prolog as they were predicates.

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 in the form of Java classes or by calling Java methods through Java Reflection API; the third one treats the way to link Prolog predicates with tables in an external databases via JDBC.

JIProlog supplies a powerfull Integrated Devopment Environment to edit, consult, run and test Prolog programs and it provides a set of Java classes that forms the JIProlog API. JIPrologAPI allows:

  • calling Prolog Predicates from Java without dealing with native code and JNI;
  • calling Java methods and classes from Prolog without dealing with foreign language interfaces;
  • writing custom Prolog predicates in Java in order to extend the core set of built-in predicates;
  • extendingthe graphical user interface of a Prolog program implementing windows and dialogs in Java as custom predicates;
  • integrating relational databases in Prolog through a JDBC to Prolog bridge, treating tables and views as Prolog predicates.

JIProlog is compliant with:

  • Java 1.5 or later;
  • Android;

JIProlog is released with two license options:

  • Open Source AGPL v3.0
  • Commercial License without AGPL Restrictions

 

Latest Version

Version 4.0.4.3
  • ISO Prolog standard
  • Android compliant

Download the latest version

Documentation on our WIKI

Source code available on GitHub