York IndiGolog Implementation (Under Construction!)


IndiGolog is powerful agent programming language based on Situation Calculus. It is a member of Golog family of languages.

IndiGolog supports complex agents that are:

At York, we have developed implementations of IndiGolog in Quintus Prolog and SWI Prolog that are described here and can be obtained from this site.

As well, Alexei Lapouchnian and I have developed the IG-OAAlib implementation of IndiGolog for use in combination with SRI's Open Agent Architecture communication/matchmaking infrastructure.

At the University of Toronto, Maurice Pagnucco and Hector Levesque have developed an implementation of IndiGolog for use with Lego MINDSTORM robots called Legolog. Legolog supports rolling forward, which is not yet implemented in York IndiGolog.

A list of available implementations of Golog, ConGolog, IndiGolog, etc. is maintained on the University of Toronto Cognitive Robotics Group web site.

Overview of IndiGolog

See the IG-OAAlib web site for this.

Papers on IndiGolog and its Predecessors Golog and GonGolog

G. De Giacomo and H.J. Levesque. An incremental interpreter for high-level programs with sensing. In Hector J. Levesque and Fiora Pirri, editors, Logical Foundation for Cognitive Agents: Contributions in Honor of Ray Reiter, pages 86-102. Springer, Berlin, 1999.

G. De Giacomo, Y. Lespérance, and H.J. Levesque. ConGolog, a concurrent programming language based on the situation calculus. Artificial Intelligence, 121, 109-169, 2000.

Y. Lespérance and H.-K. Ng. Integrating Planning into Reactive High-Level Robot Programs. In Proceedings of the Second International Cognitive Robotics Workshop, 49-54, Berlin, Germany, August, 2000.

R. Reiter, Knowledge in Action: Logical Foundations for Specifying and Implementing Dynamical Systems. MIT Press, 2001.

IndiGolog Interpreters


Interfacing with Java and a GUI

See this example.


A robot control assignment.

To Download

Here is a zip file that contains the whole York IndiGolog package and documentation.

Legal Matters

The software and documentation available at this site are copyright (c) 1997-2002 Giuseppe De Giacomo, Yves Lesperance, Hector Levesque, Ray Reiter, University of Toronto, York University, and Communications and Information Technology Ontario.

All right are reserved. Use of this software is permitted for non-commercial research purposes, and it may be copied only for that use. All copies must include this copyright message. You may not redistribute it outside your institution without permission. If you are interested in a license for commercial use, contact Yves Lesperance at lesperan@cs.yorku.ca.

This software and any documentation and/or information supplied with it is distributed on an as is basis. The copyright holders make no warranties, express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, regarding the documentation, functions or performance of such software, documentation and/or information.

Back to Yves Lespérance's home page.