Situation calculus

Table of contents

Automate your business at $5/day with Engati

Switch to Engati: Smarter choice for WhatsApp Campaigns 🚀
Situation calculus

What is situation calculus?

Situation calculus is a logic formalism that was designed for the purpose of representing and reasoning about dynamical domains.

It was first introduced in the year 1963 by the computer scientist and cognitive scientist, John McCarthy.

The main idea behind it is that reachable states (which we refer to as situations) can be defined in terms of the actions that are required to be done in order to reach those states. What holds true in a situation can be defined in terms of relations, using the situation as an argument.

Essentially, you can pretty much consider situational calculus to be the feature-based representation of actions. 

Only single agents, a fully observable environment, and deterministic actions are considered here.

Situations can be associated with states. There are two critical differences between situations and states. These are:

  • Equality between situations and equality between states are not the same thing. If several sequences of actions result in the same state, then it is possible for several situations to refer to the same state.
  • It is not necessary that every state must have corresponding situations. Only reachable states have them, unreachable states do not have corresponding situations. A state can be considered to be reachable if there is a sequence of actions existing that makes it possible to reach that state from the initial state.

A situation is either:

  • init: This is the initial situation, or
  • do(A,S): This is the situation that arises because of performing action A in situation S, if it is possible to do action A in situation S.

There are some do(A,S) terms that do not correspond to any state. But in some cases, an agent will need to reason about such a (potential) situation without possessing any knowledge about whether A is possible in state S, or if S is possible at all.

Situation calculus

Why are representations important in artificial intelligence?

Knowledge representation has a critical role in artificial intelligence. Knowledge representation and reasoning (KR, KRR) is the area in artificial intelligence that is concerned with thinking and how thinking contributes to the intelligent behavior of artificially intelligent systems.

It involves taking real-world information and presenting it in a form that computers can understand, process, and utilize for the purpose of solving real-world problems or handling real-world tasks.

Knowledge representation basically makes understanding, interpreting, and reasoning possible for machines. It also describes how you can represent knowledge in artificial intelligence. It isn’t limited to storing data in a database; it also allows intelligent machines to learn from that knowledge and those experiences, which makes it possible to behave intelligently like a human.

To put it simply, knowledge representation is very important because it enables machines to behave like humans by empowering AI-powered machines to learn from available information, experience, or experts.

The kind of knowledge that needs to be represented in AI-powered systems involves:

  • Objects: This refers to all the facts about objects in our world domain.
  • Events: These are the actions that occur in the world.
  • Performance: This describes behavior that involves knowledge about how to do things.
  • Meta-knowledge: This is essentially knowledge about the knowledge that we possess.
  • Facts: These are truths about the real world and what we’re representing.
  • Knowledge-Base: This is represented by KB and is the central component of knowledge-based agents. It is a group of sentences.

3x your revenue with Chatbots and Live Chat
Schedule a demo

Explain the ontology of situation calculus?

The ontology of the situation calculus is made up of situations, actions, and fluents. 

A situation can essentially be considered to be an instantaneous snapshot of the world. These are logical terms that are made up of the initial situation and all the situations that arise because of the application of an action to a situation. 

A fluent could be anything whose value can be changed. These are essentially functions and predicates that ary from one situation to another. A fluent has the value true if it holds in a situation, it has the value false if it does not hold in the situation. Atemporal or external functions are also permitted. Some examples of these are the predicate Gold (G1), and the function LeftLegOf(Wumpus)).

The simplest version of situation calculus has each action being defined by two axioms. One of them is a possibility axiom and the other is the effect maximum.

The possibility axiom tells us when it is possible to execute the action and the effect axiom tells us what happens when the possible action is executed.

What is the frame problem in artificial intelligence?

The frame problem in AI illustrates an issue that arises when using first-order logic (FOL) to express facts about a robot in the world. Trying to represent the state of a robot with traditional first-order language makes it necessary to use many axioms that simply imply that things in the environment do not change arbitrarily.

The problem was first defined by John McCarthy and Patrick J. Hayes in an article they published in 1969,  Some Philosophical Problems from the Standpoint of Artificial Intelligence. The problem was pretty much a starting point for a large number of general discussions about the difficulty involved in knowledge representation for artificial intelligence.

The frame problem is pretty much a problem of identifying sufficient and appropriate collections of axioms to make it possible to have a viable description of a robot environment.

This problem occurs even in rather simple domains. The problem lies in the fact that specifying only which conditions are changed by the actions does not entail that all other conditions are not changed. It can be solved by incorporating frame axioms. These frame axioms clearly specify that all conditions which aren’t affected by actions are not changed while executing that action.

One of these frame axioms is required for every pair of action and condition such that the action does not affect the condition. It’s a problem of formalizing a dynamical domain without explicitly specifying the frame axioms.

Towards the end of the 1980s, the frame problem, as it was defined by Hayes and McCarthy was solved.

The frame problem is solved in various formalisms. Here is a list of some of the solutions that depict how the problem is solved:

  • Fluent occlusion solution
  • Predicate completion solution
  • Successor state axioms solution
  • Fluent calculus solution
  • Event calculus solution
  • Default logic solution
  • Answer set programming solution
  • Separation logic solution
  • Action description languages (these pretty much elude the problem instead of solving it)
Close Icon
Request a Demo!
Get started on Engati with the help of a personalised demo.
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
*only for sharing demo link on WhatsApp
Thanks for the information.
We will be shortly getting in touch with you.
Oops! something went wrong!
For any query reach out to us on
Close Icon
Congratulations! Your demo is recorded.

Select an option on how Engati can help you.

I am looking for a conversational AI engagement solution for the web and other channels.

I would like for a conversational AI engagement solution for WhatsApp as the primary channel

I am an e-commerce store with Shopify. I am looking for a conversational AI engagement solution for my business

I am looking to partner with Engati to build conversational AI solutions for other businesses

Close Icon
You're a step away from building your Al chatbot

How many customers do you expect to engage in a month?

Less Than 2000


More than 5000

Close Icon
Thanks for the information.

We will be shortly getting in touch with you.

Close Icon

Contact Us

Please fill in your details and we will contact you shortly.

This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
Thanks for the information.
We will be shortly getting in touch with you.
Oops! Looks like there is a problem.
Never mind, drop us a mail at