Prolog: Artificial intelligence in your programs...

The moderate success of the language is undoubtedly due to the fact that its creators wanted to use it as a standalone tool, which makes the programmer stumble over problems where logical programming is neither natural nor very practical.

While conversely it excels on other problems where the procedural paradigm is of a very laborious use, by its capacity of evaluation on a data base expressed in the form of predicates.

Therefore the Prolog language made sense really if it is embedded in a procedural language that allows to use one type of programming or the other where they can best express the processing to achieve. For example procedural functions to draw a labyrinth and move object there, classes to characterize them, logical clauses to give them a smart behavior and integrate the knowledge added over time.

Console Prolog

For which types of problems Prolog is it best suited?

Problems that Prolog will solve for you

Relations

When we record relational data in the form of clauses, for example relationships between people, an evaluation allows us to deduce the relationship between all pairs of people.

Comprehension

Natural language can be formulated by decomposing grammar rules into clauses, we can then make an automatic translation, or answer common questions.

Anticipation and explanation

The representation of data in tree form, where the data of a clause are other clauses, makes it possible to analyze hypotheses, to predict consequences, to find causes.

Short Prolog tutorial

We learn to use prolog by installing an interpreter, for example SWI-Prolog or GNU Prolog. Their command console allows you to load programs and interact with the knowledge base they contain.

After downloading and installation, open the console by clicking on the SWI or GNU icon.

You can also run the interpreter from the system console, for example:

swipl -s program -g "message" -t halt  

program is the name of your file without the ".pl" extension.

A program is compiled and executed with the "consult" command of the Prolog console.

Both interpreters are compatible with the same source code but SWI responds with true or false whereas SWI responds with yes or no.

  1. Prolog Tutorial: Recording a set of facts.
  2. Prolog Tutorial: A problem is espressed in the form of rules.
  3. Prolog demo: Looking for an apartment in a catalog.

Prolog kits to integrate with another language

SWI-Prolog is free and developed since 1987, this implementation can be used alone as a development platform and even as an HTTP server. It can parse and generate HTML or JSON code and communicate with a database.

And it can interface with other languages like C++, Java, C#. There is a recent version for WebAssembly: swi-prolog-wasm. So usable with JavaScript or any language compiled in wasm.

Prolog can be used in a Web application with a wasm implementation as above, or with an interpreter written in JavaScript such as Tau Prolog for example. It can work with Node.js.

Other kits for JavaScript and other languages:

Programming and data languages ALGOL 68 - Asm.js - AspectJ - Basic - C - CIL - C++ - C# - Dart - Eiffel - Go - Java - JavaScript - JavaFX Script - Julia - Pascal - PHP - Prolog - Python - QML - Rexx - Ruby - Rust - Scala - Scriptol - Swift - Tcl - TypeScript - HTML - Wasm - XML - XAML - XUL - SQL