# Talk:Situation calculus

## NonEncylopedic tone?

Does anyone else feel the tone of this artical is wrong?--Oxinabox (talk) 11:33, 19 June 2012 (UTC)

## Origin

Situation calculus was first introduced by McCarthy solo in 1963. Original Source:

``` @TechReport{mccar-1963:situaactio:TR,
author =     "John McCarthy",
title =      "Situations, actions, and causal laws",
institution =  "Artificial Intelligence Project, Stanford University",
year =       "1963",
number =     "AIM-2",
}
```

Also supported by Reiter himself in his book: Knowledge in Action

``` @Book{Reiter01,
title =      "Knowledge in Action: Logical Foundations for Describing and Implementing Dynamical Systems",
publisher =  "MIT Press, Bradford Books",
year =       "2001",
author =     "R. Reiter",
}
```

-Rob

## Type of second order logic?

Is situation calculus a kind of "second order logic"? Maybe not. It just reified first order logic. -Reiter calls SitCalc a 'dialect of FOL'.

I was also wondering this, Russel & Norvig (1995, AI: A Modern Approach, p 204) and Luciano Serafini (Trento, slides, http://sra.itc.it/people/serafini/teaching/dottorato-dit/2005/situation-calculus.pdf) both explicitly state that it is first order, even though the cited articles indeed call it second order (Wouter van Atteveldt, 128.237.249.187)
AI: A "Modern" Approach is such a terrible book. Do yourself a favor and burn it. Fresheneesz (talk) 00:25, 20 November 2007 (UTC)
It can be viewed either way: It's really an issue of whether you view reification as the conceptual technique by which the situation calculus is constructed, or merely a backend implementation method for reasoning. Consider the first-order language that contains just the fluents as predicates, and no change over time; e.g. you have things like On(Plate, Table) which either hold or don't hold. To go from that to the situation calculus, you now need to make statements about the situations in which these erstwhile predicates hold, like Holds(On(Plate, Table), s). But what just happened when you did that? One view is that you created a new first-order language, with predicates such as Holds(), in which the predicates of your original first-order language are now function symbols; this is called reification (and indeed was invented by McCarthy for the situation calculus). Another view is that you left your original language as is, and just added new predicates like Holds(), which take the original predicates as arguments; therefore your language is now second order. If you were using an automated-reasoning system, you might still do your reasoning by reifying the fluents to convert it to a first-order language, but in this second view you consider reification an implementation detail. Neither of these views is really inherently correct or incorrect, and which an author prefers depends on whether they consider it more sensible to view fluents as reified entities or not, from a knowledge-representation point of view. I personally see it as more sensible to consider reification inherent, and therefore situation calculus as a first-order logic, because fluents are not really predicates anymore (it makes no real sense to use a fluent outside one of the situation-calculus predicates). --Delirium (talk) 10:20, 8 September 2008 (UTC)
You often want a second order component to get rid of non-standard models; in particular you want every situation to have a corresponding term and the situations to form a nice tree with transitivity properties, and some kind of predicate minimization or circumscription is conventional for doing this; I guess you could also just use some semantics which doesn't have non-standard models which violate the transitivity relationship. Some kind of sorts/types are also convenient for just writing the stuff down. 124.170.245.172 (talk) 12:09, 6 October 2008 (UTC)
Ah yeah, I was bracketing circumscription in the above discussion, and just discussing whether having predicates that take fluents as parameters makes the language second-order or not. The reified situation calculus with circumscription added is second order, since the circumscription of first-order formulas is second-order (though some cases can be converted to first-order formulas, through fairly complex translation schemes). I've sometimes seen this distinction clarified by using a phrase like "first-order logic augmented with circumscription" (I believe Shanahan uses that phrase in his writing on the event calculus), to emphasize that everything except the circumscription, which is usually considered sort of separate (in that you don't write normal formulas in it, but just consider it part of the background machinery) is first-order. --Delirium (talk) 02:22, 12 January 2009 (UTC)

## Better than first-order logic?

How is situation calculus more useful than first-order or second-order logic? It seems to me that a situation is simply another variable one can define in first-order logic - in which case situation calculus is simply a special case. Fresheneesz (talk) 00:25, 20 November 2007 (UTC)

It depends in what sense you're talking about "useful". It is indeed a special case in the sense that it's a particular theory about change over time formalized within classical logic (although often a non-monotonic version that uses circumscription), and doesn't require any changes to the underlying logic. That's actually the entire point of the fluent approach to reasoning about dynamical situations: encoding dynamical situations via a system of predicates within classical logic, rather than via specialized temporal logics that have new logic-level operators. The other widely used such approach is the event calculus. Using such a system is "more useful" than developing an ad-hoc theory of change over time within the base logic only in that there has already been considerable work done in putting together the system of predicates and knowledge-representation strategies in ways that are aimed at resulting in the expected inferences and not producing unwanted inferences (i.e. tackling issues like the frame problem and the ramification problem). --Delirium (talk) 09:56, 8 September 2008 (UTC)

## Clarification of "Dynamical Domains"

The term "dynamical domain" has been used multiple times in logic articles. I can't find its definition anywhere, and so I'm guessing it means something along the lines of "constantly changing/variable world" from the independent definitions of the two words. Based on how it is used, however, I do think it needs some definition somewhere - either short definitions in the articles that use it, or a full article that describes the concept (or perhaps just a Wiktionary entry). 209.173.109.104 (talk) 23:00, 20 February 2009 (UTC)

## Why the focus on Reiter?

Why is there so much focus on Reiter's version of the Situation Calculus? I do think his version has some interesting features, and I'm not suggesting that any information in the article needs to be removed, but it was McCarthy that came up with the calculus originally, and he does have a new (2001) version which may be useful to readers (with new features like the "Occurs(e,s)" predicate [I think it's a predicate...]).

The article states that "The main version of the situational calculus that is presented in this article is based on that introduced by Ray Reiter in 1991" in the intro, but it doesn't say (or cite) what makes it "the main version", nor does it say why it is the focus of the article. I suspect it just happens to be the version of the calculus that the article writer learned first.

In any case, the new formalism by McCarthy can be found at [1] if anyone wants to add information about it. His original article on the subject (by John McCarthy and Pat Hayes in 1969) can be found at the same site with many of his other published papers. 209.173.109.104 (talk) 22:57, 6 March 2009 (UTC)

From my understanding, McCarthy's original version did not receive that much attention because it was lacking a solution to the frame problem. This was Reiter's major contribution and lead to a revived interest. Reiter---together with many others from the cognitive robotics group at Univ. of Toronto and elsewhere---then developed Golog on top of it, which was successfully used in systems and keeps being researched. As a side product of this, there are Prolog implementations of Reiter's situation calculus, included in the Golog systems. Christian.fritz (talk) 05:31, 10 September 2009 (UTC)

### Removed reference

The peer-reviewed paper "Learning With C4.5 in a Situation Calculus Domain" (removed by Christian.fritz) introduces automatically discovering temporal rules, and use of Prolog to express them in a Situation Calculus problem domain. It is an example of practical use of Situation Calculus, something missing from the current page. The notion that this page should only concern theory is arbitrary and reduces the usefulness of the page.

CF: Anonymous user 136.159.4.38: a lot of what you seem to be doing on Wikipedia (anonymously; https://en.wikipedia.org/wiki/Special:Contributions/136.159.4.38) is promoting work by Kamran Karimi and Howard J. Hamilton -- since we don't know your name we can only speculate that you are one of these two persons. This is not what Wikipedia is for. Please stop doing this. — Preceding unsigned comment added by Christian.fritz (talkcontribs) 16:33, 16 July 2014 (UTC)

Christian.fritz, you did not address any of the points raised in support of adding that reference. — Preceding unsigned comment added by 136.159.4.38 (talk) 17:48, 16 July 2014 (UTC)