Skip navigation

A rather simple (yet functional) PROLOG interpreter for JamSession has been implemented and used to build some demos and initial experiments. The interpreter has been developed using LPA PROLOG, but we believe it should not be difficult to use in any other good quality interpreter/compiler (such as, for example, SWI-PROLOG or CIAO-PROLOG).

The PROLOG interpreter can be found here.

A slightly more sophisticated PROLOG interpreter for JamSession has been implemented and used to build some further demos. The most relevant new feature is that JamSession now can cope with Linda style concurrency. More precisely, we can now have several protocols running concurrently and sharing the same worlds and agents. The interpreter has been implemented using SWI-PROLOG extended with the TSPL package, and assumes that worlds and global specifications of predicates are going to stay on a tuple space implemented using SQLSPACES, which has been implemented at the University of Duisburg-Essen (Germany). In our experiments, we have simulated the utilisation of JamSession in a local environment.

SQLSPACES can be found here. You need to install it in order to use this implementation of JamSession. You will also need the TSPL package, which can be found here.

SWI-PROLOG can be found here.

JamSession v0.2 can be found here. In this file you shall find four PROLOG source code files:

  1. – this file contains the specification of a simple set of worlds and agents, to try the program with a very simple example. It assumes that a tuple space is available on localhost, and uploads the worlds, agents and predicate specifications.
  2. – this file contains the implementation of the JamSession architecture.
  3. – this file has been copied from the SQLSPACES website (see above), and implements the interface for SWI-PROLOG with SQLSPACES.
  4. – this file contains a very simple protocol that is compatible with

All files must be at the same folder for the example to run. You need to start a tuple space on localhost, then load and run, and then load and run When you evaluate the protocol that is available at, it makes agents migrate and triggers the appropriate predicates and (if they belong to the protocol) auxiliary protocols. Try the protocol twice and see how it changes its behaviour as agents are moved accross worlds.

Ary Fagundes Bressane Neto has successfully completed his MSc on June 2010. His work focuses on the construction of interactive affective agents with personality and emotions. His dissertation (in Portuguese) can be found here. If you want to use the code that has been developed by Ary, it can be found here.

The most recent (and most complete) version of JamSession can be found here. It has been implemented using F# as a programming language, and it has been tested as standalone installation, as a distributed installation in a local network and as a distributed installation such that public services (such as the management of agents and sites) are located in the cloud (in our case, using the Microsoft Azure cloud platform). This implementation contains some simple demos, and some pre-fabricated predicates to test these demos. Watch this space for further tools to use JamSession more flexibly and easily!


Additional publications can be found at the LIDET main page (

Here you can find some specific publications that are particularly relevant for the JamSession initiative: