Using SWISH to realise interactive web based tutorials for logic based languages
Jan Wielemaker, Fabrizio Riguzzi, Bob Kowalski, Torbj\"orn Lager,, Fariba Sadri, Miguel Calejo

TL;DR
This paper introduces SWISH, a web-based interface for Prolog that enables interactive tutorials and supports extensions like Probabilistic Logic Programming and Logic Production Systems, enhancing educational and collaborative programming experiences.
Contribution
The paper presents the architecture of SWISH, a novel web front-end for Prolog, and demonstrates its adaptability for extensions and interactive educational use cases.
Findings
SWISH enables multiple users to manipulate and run Prolog code simultaneously.
SWISH supports extensions such as PLP and LPS for tutorial development.
The architecture facilitates interactive, web-based Prolog programming and learning.
Abstract
Programming environments have evolved from purely text based to using graphical user interfaces, and now we see a move towards web based interfaces, such as Jupyter. Web based interfaces allow for the creation of interactive documents that consist of text and programs, as well as their output. The output can be rendered using web technology as, e.g., text, tables, charts or graphs. This approach is particularly suitable for capturing data analysis workflows and creating interactive educational material. This article describes SWISH, a web front-end for Prolog that consists of a web server implemented in SWI-Prolog and a client web application written in JavaScript. SWISH provides a web server where multiple users can manipulate and run the same material, and it can be adapted to support Prolog extensions. In this paper we describe the architecture of SWISH, and describe two case studies…
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.
