Omar
Adalat
  • Home
  • Publications
  • Resources
    • Bookshelf
    • Conferences list
    • Videos list
    • Journals list
    • Events list
    • Situation Calculus
    • Terminal
  • Software
  • Service
Page Title
Omar
Adalat

Introduction

Situation calculus was initially proposed by John McCarthy (who also invented Lisp as well as Garbage Collection) in the 1960's. Since then, many resources are old and outdated, since everyone now has adopted Raymond Reiter's version from the earlier 90's as a starting point, which they also largely expand upon.

Situation calculus is a second-order branching-time predicate logic for representing about dynamically changing worlds. It is a multi-sorted logic with actions, fluents, and situations. Fluents are dynamic properties that change over time, that take objects as their arguments. Actions also take objects as their argument, and have a precondition first-order formula ($Poss$ / 'possible'). After executing an action, fluents are updated with another first-order formula, one formula per fluent, that specifies the effects of certain named actions occuring are, also known as a successor state axiom. This provides the foundations for describing all change in the world, which alleviates another problem in knowledge representation, namely the frame problem.

So, what are situations then? Situations are very simple: they are a trace of actions that have been performed thus far at any given point. The initial situation $S_0$ states that no action has been performed. So, situations are merely an execution history and entirely described with their fluents derivable from a list of actions. Insert image of situation tree here

The basics

The four foundational axioms are as follows:

Applications of situation calculus

Agent languages

Typically, the situation calculus is not used alone, but with other languages/interpreters. A famous family of these is known as theGOLOG-family of languages, with many variants:
  • Golog — the OG.
  • ConGolog - adds concurrency (both interleaving and true concurrency later on, as well as interrupts and prioritised execution for reactive programming/exogenous events).
  • IndiGolog — online execution extension of ConGolog.
  • TeamGolog —

Extensions of the situation calculus

The vanilla situation calculus used is great for classic planning, but anything beyond that, requires extending the situation calculus. Fortunately, the situation calculus is very versatile, and the strength of the language is that it provides an excellent foundation for being extended upon -- which is why its use is not limited to 1990.

Other formalisms

There are other formalisms and logics that have been proposed for reasoning about actions. Many of which have a complementary nature. Many other formalisms like PDDL and ADL are weaker or equivalent, but not as nice to use.

Share this article

Share on X Share on Facebook