MINERVA is a declarative language that inherits and combines the advantages of Java and Prolog, resulting in a very practical tool. MINERVA is implemented in Java and provides the core functionality of ISO/IEC 13211-1.
XProlog was developped to be used the handle the knowledge and reasoning needs of Java based Agents. It should be reasonably fast and compact so that every agent could have its own KB and inference engine.
tuProlog (2P) is a Java-based light-weight Prolog interpreter (and related Java API) for systems engineering, suitable for open / dynamic environment such as Internet applications and infrastructures. 2P technology is an open-sourceproject.
GNU Prolog for Java is an almost conforming implementation of ISO Prolog standard in Java. It implements almost all required predicates, but there are some minor problems which do not allow me to call it conforming. This package were never indended to be used as standalone system, it is a library which is designed to embeddable into Java applications which need Prolog to solve some tasks. The interpreter intended for applications where Prolog performs combinatory search and Java do rest.
Prolog Cafe is a Prolog-to-Java source-to-source translator system. Prolog programs are first translated into Java programs via the WAM (Warren Abstract Machine), and then those programs are compiled by a usual Java compiler such as SUN’s JDK SE. From the Java side, the translated code can be easily embedded into Java applications. From the Prolog side, any Java object can be represented as a Prolog term, and its methods and fields can be exploited from Prolog.
bddbddb stands for BDD-Based Deductive DataBase. It is an implementation of Datalog, a declarative programming language similar to Prolog for talking about relations. What makes bddbddb unique is that it represents the relations using binary decision diagrams (BDDs). BDDs are a data structure that can efficiently represent large relations and provide efficient set operations. This allows bddbddb to efficient represent and operate on extremely large relations – relations that are too large to represent explicitly.