jprol - Java-based Prolog Engine with GUI Editor

  •        2

I bought a book of Ivan Bratko titled as "Prolog Programming for Artificial Intelligence" in 1990 but didn't have enough time to read it so that the book was placed into a shelf and forgotten for years till 2009. In 2009 I had read the book and was so impressed by the power of computer language that to learn it better I developed small Java based Prolog engine and called it JProl. JProl is a small embeddable monolitic (one uberjar) Prolog engine developed in 2010 with number of libraries out of the box. It supports Edinburgh Prolog style and has a small GUI editor which is very useful for experiments. The Engine is not very optimal one and I would not recommend to use it in any production, it is good only for learning and teaching purposes.

https://github.com/raydac/jprol

Tags
Implementation
License
Platform

   




Related Projects

the-power-of-prolog - Introduction to modern Prolog

  •    HTML

Prolog is a programming language that is rooted in formal logic. It supports backtracking and unification as built-in features. Prolog allows us to elegantly solve many tasks with short and general programs. The goal of this material is to bridge the gap between the great traditional Prolog textbooks of the past and the language as it currently is, several decades after these books were written. You will see that many limitations of the past are no longer relevant, while several new constructs are now of great importance even though they are not yet covered in any available Prolog book.

JLog/JScriptLog - Prolog in Java*

  •    Javascript

JLog is a Prolog interpreter written in Java. It is fast and perfectly suited for education. It includes source editor, query panels, online help, animation primitives, and a GUI debugger. JScriptLog is Prolog in JavaScript.

Yield Prolog - Embed Prolog in your code

  •    Javascript

Embed Prolog directly in your Python, C# or Javascript program using the yield keyword. There is no API standing between your code and Yield Prolog, so you can use all language features, including arrays, file I/O, user interaction and your own classes.

Prolog Development Tools (ProDT)

  •    Java

ProDT is a Prolog Integrated Development Environment (IDE) aiming to be as rich in functionality as the Eclipse's java IDE, and to support any standard Prolog implementation. Currently is being supported SWI Prolog, B-Prolog and XSB Prolog

VS Prolog 2010

  •    CSharp

VSProlog is a Visual Studio 2010 extension that allows coloring the prolog code. I use Prolog with Visual Studio and I was tired of having Visual Studio beheaving just like notepad, thus, this extension.


chalk - A PROLOG-ish interpreter written in Rust, intended eventually for use in the compiler

  •    Rust

A Prolog-ish interpreter written in Rust, intended perhaps for use in the compiler, but also for experimentation. How does chalk relate to rustc? The plan is to have rustc use the chalk-engine crate (in this repo), which defines chalk's solver. The rest of chalk can then be considered an elaborate unit testing harness. For more details, see the Traits chapter of the rustc-guide.

chalk - A PROLOG-ish interpreter written in Rust, intended eventually for use in the compiler

  •    Rust

A Prolog-ish interpreter written in Rust, intended perhaps for use in the compiler, but also for experimentation. How does chalk relate to rustc? The plan is to have rustc use the chalk-engine crate (in this repo), which defines chalk's solver. The rest of chalk can then be considered an elaborate unit testing harness. For more details, see the Traits chapter of the rustc-guide.

golog - Prolog interpreter in Go

  •    Go

Prolog interpreter in Go with aspirations to be ISO compatible. See the full package documentation for usage details. The long term goal is to make Golog fully compliant with ISO Prolog. It currently supports a subset of ISO Prolog. Any deviations from the standard are bugs. Please report issues to help Golog improve.

swish - SWI-Prolog for SHaring: a SWI-Prolog web IDE

  •    Prolog

SWISH can be used to access SWI-Prolog at the address below. We try to keep this server continuously online. You can use these servers for playing, courses or sharing and discussing ideas. We have not yet dealt with scalable hosting nor with really reliable and scalable storage for saved programs. We hope to keep all your programs online for at least multiple years.

ECLiPSe.Net

  •    

This project will create a c# wrapper for the ECLiPSe.net Constraint Logic Programming (Prolog) engine.

Prolog Objects

  •    

Simple Object Oriented Programming Framework for Prolog

99-problems - This is an adaptation of the Ninety-Nine Prolog Problems written by Werner Hett.

  •    Java

This is an adaptation of the Ninety-Nine Prolog Problems written by Werner Hett at the Berne University of Applied Sciences in Berne, Switzerland. The purpose of this problem collection is to give you the opportunity to practice your skills in logic programming. Your goal should be to find the most elegant solution of the given problems. Efficiency is important, but logical clarity is even more crucial. Some of the (easy) problems can be trivially solved using built-in predicates. However, in these cases, you learn more if you try to find your own solution.

marelle - Test-driven system administration with a little extra logic.

  •    Prolog

Test-driven system administration in SWI-Prolog, in the style of Babushka. Marelle uses logic programming to describe system targets and rules by which these targets can be met. Prolog's built-in search mechanism makes writing and using these dependencies elegant. Anecdotally, writing deps for Marelle has the feel of teaching it about types of packages, rather than the feel of writing package templates.

Prolog+CG

  •    Java

Prolog+CG is a Java implementation of Prolog with extensions implementing a subset of the Conceptual Graph (CG) theory of John Sowa. CGs are first-class datatypes on a par with terms. Object oriented extensions are also included.

Prolog Image Processing

  •    Objective-C

Prolog Image Processing is a (initially) MacOS based extension to OpenProlog which allows to use image processing function in the context of Prolog.

PLUNITTEST

  •    

PLUNITTEST is a unit test framework for Prolog. It has been tested with Sicstus prolog. It gives a framework for automated unit testing of prolog programs via continuous integration tools. It outputs an XML file like Junit XML.

LogicJS - Logic programming for JavaScript.

  •    Javascript

LogicJS adds logic programming to JavaScript. Logic programming is typically known by the language Prolog.

Mercury

  •    C

Mercury is a modern logic/functional programming language. The Mercury system includes a compiler, debugger, libraries, sample code, profilers, etc. Mercury is designed to be the successor of logic programming languages such as Prolog.

Fuzzy AI

  •    Java

This is a prolog-like programming language based on the fuzzy logic. It includes the class-libraries for fuzzy logic, probability theory and method of resolution, all made in C++. Java releases possible in the future.

core.logic - A logic programming library for Clojure & ClojureScript

  •    Clojure

A logic programming library for Clojure & ClojureScript. core.logic offers Prolog-like relational programming, constraint logic programming, and nominal logic programming for Clojure. At its heart is an original implementation of miniKanren as described in William Byrd's dissertation Relational Programming in miniKanren: Techniques, Applications, and Implementations as well as the extensions described in cKanren and αKanren. It is designed to be easily extended to forms of logic programming beyond the ones provided.