Tau Prolog: A Prolog interpreter for the Web

Tau Prolog is a client-side Prolog interpreter fully implemented in JavaScript, which aims at implementing the ISO Prolog Standard. Tau Prolog has been developed to be used with either Node.js or a browser seamlessly, and therefore, it has been developed following a non-blocking, callback-based approach to avoid blocking web browsers. Taking the best from JavaScript and Prolog, Tau Prolog allows the programmer to handle browser events and manipulate the Document Object Model (DOM) of a web using Prolog predicates. In this paper we describe the architecture of Tau Prolog and its main packages for interacting with the Web, and we present its programming environment. Under consideration in Theory and Practice of Logic Programming (TPLP).

READ FULL TEXT
research
08/24/2018

Using SWISH to realise interactive web based tutorials for logic based languages

Programming environments have evolved from purely text based to using gr...
research
09/16/2019

Towards Distributed Logic Programming based on Computability Logic

Computability logic (CoL) is a powerful computational model which views...
research
03/28/2017

RootJS: Node.js Bindings for ROOT 6

We present rootJS, an interface making it possible to seamlessly integra...
research
05/01/2018

Phylotastic: An Experiment in Creating, Manipulating, and Evolving Phylogenetic Biology Workflows Using Logic Programming

Evolutionary Biologists have long struggled with the challenge of develo...
research
05/19/2020

Benchmarking Blocking Algorithms for Web Entities

An increasing number of entities are described by interlinked data rathe...
research
09/24/2018

An Empirical Study of the I2P Anonymity Network and its Censorship Resistance

Tor and I2P are well-known anonymity networks used by many individuals t...
research
06/27/2022

Implementing a Chatbot Solution for Learning Management System

Innovation is a key component in trying new solutions for the students t...

Please sign up or login with your details

Forgot password? Click here to reset