Pengines: Web Logic Programming Made Easy
Torbj\"orn Lager, Jan Wielemaker

TL;DR
Pengines introduces a flexible, client-driven approach to web logic programming, simplifying AJAX interactions with Prolog servers and enabling non-deterministic RPC, thus easing web interface development for deductive databases.
Contribution
It presents Pengines, a lightweight library that allows clients to specify data queries via Prolog programs, improving flexibility and ease of web-based logic programming.
Findings
Simplifies AJAX-based Prolog client development
Enables non-deterministic RPC between Prolog processes
Provides a small, easy-to-integrate library for SWI-Prolog
Abstract
When developing a (web) interface for a deductive database, functionality required by the client is provided by means of HTTP handlers that wrap the logical data access predicates. These handlers are responsible for converting between client and server data representations and typically include options for paginating results. Designing the web accessible API is difficult because it is hard to predict the exact requirements of clients. Pengines changes this picture. The client provides a Prolog program that selects the required data by accessing the logical API of the server. The pengine infrastructure provides general mechanisms for converting Prolog data and handling Prolog non-determinism. The Pengines library is small (2000 lines Prolog, 150 lines JavaScript). It greatly simplifies defining an AJAX based client for a Prolog program and provides non-deterministic RPC between Prolog…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
