If you want to read something in connection with the talks, I would recommend Intro to Web Prolog for Erlangers for the second talk, and the chapter on SCXML and Web Prolog for the fourth talk. Also, the draft Web Prolog manual might be handy.
If you want to delve deeper, reading my manuscript Web Prolog and the programmable Prolog Web might also be useful. It’s very much a draft lacking some of the planned chapters, but should be readable enough for those who want to know more about the ideas behind Web Prolog. (I have a much later draft, which unfortuantely has become very messy and hard to read :-( . But if you insist, I might distribute that too.)
If you want to play with the language and perhaps take the tutorial (which I really recommend) you need to install the proof-of-concept implementation. See below.
Ecosystem: The “Holy Prolog Trinity”
Marketing: Three “elevator pitches”
Imagine a dialect of Prolog with actors and mailboxes and send and receive – all the means necessary for powerful concurrent and distributed programming. Alternatively, think of it as a dialect of Erlang with logic variables, backtracking search and a built-in database of facts and rules – the means for logic programming, knowledge representation and reasoning. Also, think of it as a web logic programming language. This is what Web Prolog is all about.
Imagine the Web wrapped in Prolog, running on top of a distributed architecture comprised of a network of nodes supporting HTTP and WebSocket APIs, as well as web formats such as JSON. Think of it as a high-level Web, capable of serving answers to queries – answers that follow from what the Web “knows”. Moreover, imagine it being programmable, allowing Web Prolog source code to flow in either direction, from the client to the node or from the node to the client. This is what the Prolog Web is all about.
Imagine the Prolog Web populated by Prolog Agents. Imagine them being written in a thoroughly integrated combination of Web Prolog and StateChart XML – two languages which come with a fair amount of formal semantics. Think of this as a way to ensure that four important aspects of web-based intelligent conversational agents – natural language understanding, knowledge representation, reasoning and real-time interaction – are accounted for. This is what programming languages for building such agents should be all about.
Proof-of-concept implementation of Web Prolog
Note that this is a proof-of-concept demonstration/tutorial only. The system is not yet ready for online deployment. But you can install it locally, work through the tutorial, and play with lots of code examples. Here’s how to install it:
- Install the latest SWI-Prolog for your platform.
- Clone or download the repo from https://github.com/Web-Prolog/swi-web-prolog
- From the
cd web-clientand then
swipl run.pl. (There may be a few warnings, but they don’t matter.)
- Now direct your browser to http://localhost:3060/apps/swish/index.html .
Introductory material to traditional Prolog
To be able to follow the talks, some acquaintance with Prolog would likely help. If you’re new to the language, you may want to have a look at an excellent new online book and a series of video lectures by Markus Triska.
You may also want to play with SWISH, which is a stable online IDE for Prolog, running 24/7 and having lots of users, especially among students taking CS courses involving logic programming and Prolog.
If you want to install SWI-Prolog locally, and check out the user forum, these are the links:
Links to written material
- Intro to Web Prolog for Erlangers
- Web Prolog and the programmable Prolog Web
- Chapter on SCXML and Web Prolog
- Web Prolog manual
- ISO Prolog: A Summary of the Draft Proposed Standard
- ISO Prolog Threads
- Lots of useful Prolog references
- David Harel’s seminal paper on Statechart
- The SCXML standard
- Make Prolog Great Again!
- Radomski, et al. - A Prolog Datamodel for State Chart XML
- Junger, et al. - SCXML for Building Conversational Agents in the Dialog Web Lab
Links to videos
- Video lectures on Prolog by Markus Triska.
- Panel discussion: Joe Armstrong, Carl Hewitt and Tony Hoare on concurrent and distributed programming
- Erlang Master classes. A great way to learn Erlang, but you can probably skip Master class 1.