I just got back from ICFP in Berlin where I presented a paper in the co-located Erlang’19 workshop. Here’s the title and an abstract:
Intro to Web Prolog for Erlangers
We describe a programming language called Web Prolog. We think of it as a web programming language, or, more specifically, as a web logic programming language. The language is based on Prolog, with a good pinch of Erlang added. We stay close to traditional Prolog, so close that the vast majority of programs in Prolog textbooks will run without modification. Towards Erlang we are less faithful, picking only features we regard as useful in a web programming language, e.g. features that support concurrency, distribution and inter-process communication. In particular, we borrow features that make Erlang into an actor programming language, and on top of these we define the concept of a pengine – a programming abstraction in the form of a special kind of actor which closely mirrors the behaviour of a Prolog top-level. On top of the pengine abstraction we develop a notion of non-deterministic RPC and the concept of the Prolog Web.
The paper is here: https://gup.ub.gu.se/file/207827
Comments are of course welcome!
And should you want to know more, there is (as some of you already know) a github repo from which a proof-of-concept implementation can be downloaded and taken for a trail run - and there’s a tutorial too!
The repo is here: https://github.com/Web-Prolog/swi-web-prolog
I’m happy to let you know that Damon Sicore, former contributor and leader in the Mozilla Firefox and Wikipedia projects, has taken interest in the Web Prolog project. In his own words, he “wants to secure attention and resources in order to publicly advance the project to enable Prolog to be a key component of the Web”.
Expect to read more about our plans for Web Prolog in the near future.