Professor Keith L. Clark

Department of Computing
Imperial College
180 Queen's Gate

Honorary Visiting Professor, Royal Holloway, University of London
Visiting Professor, University of Queensland


+44 20 8594 8284

k.clark at


Research Interests

  • OO extensions of LP languages
  • multi-threaded symbolic programming languages
  • multi-agent systems and multi-threaded agent architectures
  • cognitive robotics
  • teleo-reactive procedures and plans
  • complex event processing
  • ambient intelligence


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)

Recent Papers

·       QuLog: A flexibly typed logic and functional programming language with action procedures - the declarative subset (Draft Paper 2014)

·       Robotic Agent Programming in TeleoR (Research Report 2014)

Selected Older 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)


Animation of Multi-tasking Teleo Reactive Agent controlling two simulated robotic arms in four 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.

The multi-tasking TeleoR agent has beliefs about which tower building tasks it is doing. Using these, a task can check if a block B it needs to remove in order to get at the next block it needs for its tower, is needed by another task. If so, it places B so that the other task has fewer block moves or does not need to access the shared table. This is demonstrated in the video. Minimising the need to access the shared table increases the parallel use of the arms.

The extension to Nilsson's TR procedures that is used has resource arguments in procedures, new forms of TR rules, and the concept of task atomic procedures. The last control the fair sharing of the robot arm 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

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

Below is a pointer to a UTube video of the simulated robot arms with a voice over explanation of the behaviour

·       The two arm video with voice over partial explanation (33.6MB)


Colleagues with related research interests

·       Robert Cunningham

·       Robert Kowalksi

·       Marek Sergot

·       Fariba Sadri

·       Krysia Broda

·       Alessandra Russo

·       Jiefei Ma

·       Peter Robinson