Skip to content

Latest commit

 

History

History
40 lines (25 loc) · 2.38 KB

integrationPosibilities.md

File metadata and controls

40 lines (25 loc) · 2.38 KB

Here I list the mature alternatives which I found to integrate the prolog program with another system. Expert system run in the backend and the user usually interacts with a web or GUI application.

HTTP Services

You can expose your Prolog logic as an HTTP service using the built-in HTTP libraries in SWI-Prolog.

Web application: SWI-Prolog already includes a Web framework

Javascript or Prolog endpoints

JSON endpoints

Endpoint with XML

I didn't find any pack (library) to create one.

Messaging brokers

WebSockets

SWI-Prolog supports websockets but they are usually for real-time communication. This is particularly useful for web applications that require a persistent connection to the server for real-time updates.

Inter-process Communication (IPC)

It is possible to use sockets, shared memory, or even files for communication between your Prolog program and other applications but I don't have experience with IPC.

Prolog Embedded in Other Languages

Popular languages have modules which integrate Prolog code like Drools for Java. I have experience extending code using Drools and Drools is difficult to debug, error-prone, there is no logging. At the end, this type of integration leads to an black box module which Java developers cannot understand.