Robert Kowalski and Marek Sergot presented the event calculus for the first time in 1986. It is a logical language for representing and reasoning about events and their effects. Murray Shanahan and Rob Miller expanded it in the 1990s.
Overview
Bob Kowalski and Marek Sergot presented the “Event Calculus” as a framework for logic programming for describing and deducing actions (or events) and their effects, particularly in database applications. Since then, various alternate formulations, strategies, and uses have existed. Furthermore, different logic programming languages, classical logic, modal logic, and an “action description language” have all rewritten the Event Calculus.
It is used in various contexts, such as planning, cognitive robotics, abductive reasoning, database updates, accident report processing, legal reasoning, mathematical modelling of continuous change, modelling and reasoning about agent beliefs, reasoning about programming constructs, and software engineering, to name a few. However, despite the rising variety of formulations and applications for event calculus, relatively little effort has established the relationships between them.
The event calculus expresses the impacts of actions on fluents like other languages for thinking about change. Events can, however, also occur outside of the system. Therefore, the value of fluents at particular time points, the events that occur at specific time points, and their outcomes can all be specified using the event calculus.
An Event Calculus Axiomatization of Classical Logic
The basic idea behind the Event Calculus is that fluents, properties of the world that change over time, are valid at certain times if they start an action earlier. In the same way, fluency is false at a particular time if it has ended before. Axioms that depend on the domain describe which actions start and stop, which flow in different situations, and say when actions happen. In the context of the Event Calculus, each action that happens is often called an “event,” so “actions” are “event types.”
Logic program
The initial form of the event calculus was a set of Horn clauses enhanced with negation as failure, which could be a Prolog program. One of the many semantics we can apply to negation as failure is circumscription, which is strongly related to the completion semantics.
Applications
In their first paper on event calculus, Kowalski and Sergot focused on how we could use it to update databases and tell stories. We can also use event calculus to
- formalize actions that we can’t predict,
- actions that happen simultaneously,
- actions that have delayed effects,
- gradual changes,
- actions that take a long time,
- actions that are always happening, and
- non-inertial flows.
In addition, Kave Eshghi showed how we could use the event calculus to plan by using abductive logic programming to make up hypothetical events from abduction. Finally, Van Lambalgen and Hamm showed how we could use constraint logic programming with the event calculus to give tense and aspect in natural language an algorithmic meaning. Other significant additions to the Event Calculus include versions based on Markov Logic Networks, probabilistic versions, epistemic versions, and combinations.
Conclusion
Furthermore, an event calculus domain description includes an axiomatization, observations of world properties, and a description of available world events. Describing a domain, there are different ways to use common sense reasoning.
- Temporal projection is figuring out how things will turn out based on how they started.
- Abduction is trying to figure out what might have happened from the beginning to the end.
- Postdiction is figuring out what the first state was, what happened and what the last state was.
- Finally, the model finding determines what properties and events match a given story and set of observations.
Source: indiaai.gov.in