Skip to main content Accessibility help

Pengines: Web Logic Programming Made Easy



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 processes as well as interaction with Prolog engines similar to Paul Tarau's engines. Pengines are available as a standard package for SWI-Prolog 7. 1



Hide All
Brand, D. and Zafiropulo, P. 1983. On communicating finite-state machines. Journal of the ACM (JACM) 30, 2, 323342.
Byrd, L. 1980. Understanding the control flow of Prolog programs. In Logic Programming Workshop, Tarnlund, S., Ed. Debrecen, Hungary, 127138.
Calejo, M. 2004. Interprolog: Towards a declarative embedding of logic programming in java. In JELIA, Alferes, J. J. and Leite, J. A., Eds. Lecture Notes in Computer Science, vol. 3229. Springer, 714717.
Shen, K., Schimpf, J., Novello, S., and Singer, J. 2002. A high-level generic interface to external programming languages for eclipse. In PADL, Krishnamurthi, S. and Ramakrishnan, C. R., Eds. Lecture Notes in Computer Science, vol. 2257. Springer, 262279.
Tarau, P. and Majumdar, A. 2009. Interoperating logic engines. In Practical Aspects of Declarative Languages. Springer, 137151.
Wielemaker, J., Huang, Z. and van der Meij, L. 2008. Swi-prolog and the web. Theory and Practice of Logic Programming 8, 3, 363392.


Related content

Powered by UNSILO

Pengines: Web Logic Programming Made Easy



Altmetric attention score

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed.