Professor Keith L. Clark

Department of Computing
Imperial College
180 Queen's Gate

Emeritus Professor: Imperial College
Honorary Professor: University of Queensland, University of New South Wales
Visiting Professor: Royal Holloway College, University College, Huddersfield University, Brunel University


+44 20 8594 8284

k.clark at


Current Research Interests

  • multi-agent systems and multi-threaded agent architectures
  • cognitive robotics
  • multi-threaded symbolic programming languages
  • teleo-reactive procedures and plans
  • ambient intelligence


Recent Papers

·       QuLog: A flexibly typed logic and functional programming language with action rules (Research Report, 2015)

·       Robotic Agent Programming in TeleoR (ICRA 2015)

·       Multi-tasking Robotic Agent Programming in TeleoR (Research Report, 2014)

·       Proactive Multi-agent Explanation Generation and Evidence Gathering in a Service Robot Inhabited Assisted Living Environment (ICAART 2016)


Multi-tasking Teleo Reactive Agent controlling two robotic arms in concurrent tasks

The agent uses the arms to build towers of blocks distibuted over three tables. It uses the arms in parallel whenever possible and in such a way that the tasks do not intefere with one another. Nor do the arms clash although both must occasionally be used to access a shared table. The control program for each task is an multi-tasking/multi-resource using extension of Nilsson's program controlling a single arm building a single tower of Teleo Reactive Block Tower Builder.

Below are links to three videos of multi-tasking using multiple robotic arm resources :

Two simulated robot arms, controlled by an agent with four tower building tasks, with a voice over explanation of the behaviour

Essentially the same TeleoR program running on a Baxter robot engaged in two concurrent horozontal block configuration tasks recovering from interference.

Another Baxter video building two vertical block towers with both help and interference. The TeleoR program is esentially the same.

Communicating Teleo Reactive Agents sharing perceptions and intentions

Each agent controls a mobile robot that moves through a network of open doorways following tracks. The maintain the same beliefs about their environment by continually notifying one another of their current room location, that open/closed status of doors in each room they enter, and their current doorway path intentions. The location and path intentions are used to avoid collisions on tracks. .

This is a video of a Python visualisation of the communicating path following robots.

The extension to Nilsson's TR procedures that is used as the main agent programming language has new forms of TR rules, new forms of action, and the concept of task atomic procedures. Task atomic procedures ensure deadlock free fair sharing of the robot arms and table resources between the tasks. The extensions are covered in a forthcoming book:

Programming Robotic Agents: A Multi-tasking Teleo-Reactive Approach,
K. L. Clark and P. J. Robinson, Springer (late 2017)

and the papers

Robotic Agent Programming in TeleoR (ICRA 2014),

Multi-tasking Robotic Agent Programming in TeleoR (Research Report, 2014)

The first six chapters of the book are downloadable from Teleo Reactive Programs.

The TeleoR and QuLog software and documentation are downloadable from TeleoR/QuLog Home Page

Very Old Papers that may still be of interest

·       Negation as Failure(1978)

·       Unpublished Draft Monograph (part of my PhD thesis): Predicate Logic as a Comptational Formalism(1980)

·       Chapter 3 of above giving a fixed point semantics for LP treating partially instantiated answers to queries (1979)

·       Logic Programming Schemes and their Implementations(1990)
(large pdf file, 3941368  bytes)

Selected Papers

·       April: Agent Process Interaction Language (1995)

·       Agents as Clonable Objects with Knowledge Base State (1996)

·       Intelligent Routing based on Active Patterns as the basis for the integration of distributed information systems (1997)

·       A Harness Language for Cooperative Information Systems (1997)

·       Content based routing as the basis for intra-agent communication (1998)

·       Distributed Object Oriented Logic Programming (1994)

·       Distributed Object Oriented Logic Programming as a Tool for Enterprise Modelling (1996)

·       Programming internet distributed DAI applications in Qu-Prolog (1998)

·       A Framework for Developing Reactive Information Agents with Heterogeneous Communication Capabilities (2000)

·       Concurrent programming on the web with Webstream (2000)

·       Multi-threading and Message communication in Qu-Prolog (2001)

·       Component based agent construction (2002)

·       Agents as Multi-threaded Logical Objects (2002)

·       Multi-threaded communicating agents in Qu-Prolog(2006)



·       Go! -- A Multi-paradigm Programming Language for Implementing Multi-threaded Agents(2003)

·       Go! for multi-threaded deliberative agents(2003)

·       Ontology schema for an agent belief store(2005)

·       Ontology Oriented Programming in Go! (2005)  

·       A multi-agent architecture for collaborative filtering(2003)

·       Distributed Logic Programming using Mobile Agents (2004)

·       A Hybrid, Teleo-Reactive Architecture for Robot Control(2006)

·       Ballroom etiquette: a case study for norm-governed multi-agent systems (2006)

·       ssContract Related Agents (2006)

·       SAGE: A Logical Agent-Based Environment Monitoring and Control System (2009)

·       Pedro: A publish/subscribe server using Prolog technology (2009)


Colleagues with related research interests

·       Robert Cunningham

·       Robert Kowalksi

·       Marek Sergot

·       Fariba Sadri

·       Krysia Broda

·       Alessandra Russo

·       Jiefei Ma

·       Peter Robinson