Did you know ... | Search Documentation: |
Pack narsese -- jmc/sitcalc.md |
Computer Science Department
Stanford University
Stanford, CA 94305
jmc@cs.stanford.edu
http://www-formal.stanford.edu/jmc/
Abstract
vention one situation at a time.
This article presents a situation calculus for-
malism featuring events as primary and the
usual actions as a special case. Events that
are not actions are called internal events and
actions are called external events. The effects
of both kinds of events are given by effect
axioms of the usual kind. The actions are
assumed to be performed by an agent as is
usual in situation calculus. An internal event
e occurs in situations satisfying an occurrence
assertion for that event.
A formalism involving actions and internal
events describes what happens in the world
more naturally than the usual formulations
involving only actions supplemented by state
constraints. Ours uses only ordinary logic
without special causal implications.
It also
seems to be more elaboration tolerant.
The first example is the buzzer with only in-
ternal events and which cannot be treated at
all with state constraints, because the system
never settles down to a steady state.
Our second example is the stuffy room sce-
nario. One occurrence axiom states that
when both vents are blocked and the room
isn’t stuffy, the event Getstuf f y occurs.
State constraints are unneeded. The stuffy
room formalization tolerates an elaboration
asserting that when the room becomes stuffy
someone unblocks a vent. If we further add
that someone else then finds the room cold
and blocks the vent again, we get a system
that oscillates.
The third example is the blocks world.
The nonmonotonic reasoning involves cir-
cumscribing occurrences, changes, and pre-
Then we offer a general viewpoint on the sit-uation calculus and its applications to realworld problems. It relates the formalism of[MH69] which regards a situation as a snap-shot of the world to situation calculus theo-ries involving only a few fluents.
Introduction: Actions and otherevents
This article emphasizes the idea that an action by anagent is a particular kind of event. The idea of eventis primary and an action is a special case. The treat-ment is simpler than those regarding events as naturalactions.
The main features of our treatment are as follows.1. There are the usual effect axioms involving thefunction Result(e, s), the situation that results whenevent e occurs in situation s.
conditions(s)
→occurs(e, s)
.Holds(Blocked1, s) ∧ Holds(Blocked2, s)∧¬Holds(Stuf f y, s)
→ Occurs(Getstuf f y, s),(2)Holds(Stuf f y, Result(Getstuf f y, s)),Holds(Blocked1, Result(Block1, s)).
andGetstuf f y is an internal event and occurs all by itselfwhen the vents are blocked.
We use circumscription to minimize occurrences, tominimize change (frame problem), and to minimize thefluents that prevent actions and other events (qualifi-cation problem).
Treating internal and external events by the same for-malism admits elaborations that turn some instancesof external events into internal events. Thus we canelaborate the stuffy room scenario by adjoining an oc-currence axiom saying that when the room becomesstuffy, someone unblocks a vent, which makes the roomunstuffy. The further elaboration that when a vent isunblocked, someone blocks it again, perhaps from feel-ing cold, causes the system to oscillate and never settledown.
An external event can create a situation in which theoccurrence axiom for an internal event is satisfied.This leads to a new situation in which a new internalevent can occur. When no more internal events occurthe process settles down, and we can infer a statementabout the resulting stable state. Stable states are usu-ally characterized by state constraints. In physics thesestates often minimize potential energy.
The next three sections discuss examples, a buzzerwhich has only internal events, the stuffy room sce-nario, and the blocks world.
3 Formalizing a buzzer
the
luent(s)
, but the nota-luent(s)
.ext(s)
is the next situation after s. It is defined by
Figure 1: A buzzer.
Occurs(e, s) → N ext(s)
= Result(e, s)
(1)
→ Holds(On(Sw), Result(e, s))≡ Holds(On(Sw), s)).(6)These frame assertions tell what doesn’t change. Theyare few enough in this case, since there are few actionsand few fluents. In general it is more efficient to saywhat does change. In this case we have
Changes(Onn(R), On(R), s),
Changes(Of f f (R), On(R), s),
Changes(Onn(Sw), On(Sw), s),
Changes(Of f f (Sw), On(Sw), s).and(7)
In section 6 we describe how to get the frame assertionsby circumscribing Changes(e, f, s).
Let an initial situation, called S0, be given by¬Holds(On(Sw), S0) ∧ ¬Holds(On(R), S0)(8)We can proceed a step at a time. We haveOccurs(Onn(Sw), S0)
(9)in accordance with (4). Hence
N ext(S0)
= Result(Onn(Sw), S0),(10)and therefore, letting
S1 = N ext(S0)
,
(11)Holds(On(R), Result(Onn(R), s))
¬Holds(On(R), Result(Offf (R), s))
Holds(On(Sw), Result(Onn(Sw), s)
¬Holds(On(Sw), Result(Offf (Sw), s)).
(3)
we have
→ Occurs(Offf (R), s)
Holds(On(Sw), s) ∧ ¬Holds(On(R), s)
→ Occurs(Onn(R), s))
Holds(On(R), s) ∧ Holds(On(Sw), s)
→ Occurs(Offf (Sw), s)
¬Holds(On(R), s) ∧ ¬Holds(On(Sw), s)
→ Occurs(Onn(Sw), s)
→ Holds(On(R), Result(e, s))
≡ Holds(On(R), s)).
(5)
A problem arises when the well-known stuffy room sce-nario is formalized with a state constraint that whenboth vents are blocked by pillows the room is stuffyand changes in fluents are minimized. This can lead- to the unintended model that when one vent is already
Holds(Blocked2, Result(Block2, s))
¬Holds(Blocked1, Result(U nblock1, s))
¬Holds(Blocked2, Result(U nblock2, s))
Holds(Stuf f y, Result(Getstuf f y, s))
¬Holds(Stuf f y, Result(U ngetstuf f y, s))
(14)
and
∧Holds(Stuf f y, s)
→ Occurs(U ngetstuf f y, s)
(15)
Changes(Block2, Blocked2, s),
Changes(U nblock1, Blocked1, s),
Changes(U nblock2, Blocked2, s),
Changes(Getstuf f y, Stuf f y, s),
Changes(U ngetstuf f y, Stuf f y, s).
and
→ Occurs(Getstuf f y, s)
(13)
We need to distinguish between internal events likeGetstuf f y and external events like Block1. As weshall see, an external event may be an internal eventof a more comprehensive narrative, e.g. one in whichBlock1 occurs when Mike is annoyed by cold air com-ing from V ent1.
We can tell a simple sequential story by first describingS0, e.g. by
¬Holds(Blocked1, S0) ∧ ¬Holds(Blocked2, S0)∧¬Holds(Stuf f y, S0).
We can now write the narrative
S1 = Result∗(Block1, S0)
S2 = Result∗(Block2, S1)
S3 = Result∗(U nblock2, S2)
S4 = Result∗(Block2, S3),
etc.Here Result∗(e, s) is like the Rr of [McC95]. It is theresult of doing a followed by the occurrence of what-ever internal events occur. The assumption is thatsome sequence of internal events will occur after whichthe situation remains the same until another externalevent occurs. Result∗(e, s) is undefined in the buzzerexample in which internal events occur forever.Result∗ requires an induction axiom or schema. Here’sone candidate:
P (s) ∧ (∀s e)(P (s) ∧ Occurs(e, s) → P (Result(e, s)))→ P (Result∗(e, s)).
(16)
The function N ext∗ has the same relation to Result∗that N ext has to Result. It gives the next situation towhich no occurrence assertion applies. N ext∗ satisfiesResult∗(e, s) = N ext∗(Result(e, s)),
(∀e)(¬Occurs(e, s)) → N ext∗(s) = s,
Occurs(e, s) → N ext∗(s) = N ext∗(Result(e, s)).andIn the present case we will have
S1 = Result∗(Block1, S0) = Result(Block1, S0).because
event will
Result(Block1, S0). However, we’ll have
internal
no
occurinS2 = Result∗(Block2, S1)
= Result(Getstuf f y, Result(Block2, S1)),(17)(18)(19)(20)(21)- because now the internal event Getstuf f y will oc-
Result∗(Block2, Result∗(Block1, S0))))
4.2 Two elaborations of the stuffy room- = Result(Getstuf f y, Result(Block2,
scenario
Result(U ngetstuf f y, Result(U nblock2,
Result(Getstuf f y, Result(Block2,
Result(Block1, S0))))))),
(22)
Holds(Stuf f y, s) → Occurs(Does(P at, U nblock2), s),(27)- S4 = Result∗(Block1; Block2; U nblock2; Block2, S0)
or, more elaborately,
= Result(Block1; Block2; Getstuf f y; U nblock2;
U ngetstuf f y; Block2; Getstuf f y, S0).(23)
S1 = N ext(S0)
= Result(Block1, S0)
Occurs(Block2, S1)
S1(cid:48) = N ext(S1)
= Result(Block2, S1)
Occurs(Getstuffy, S1(cid:48)), by inference
S2 = N ext(S1(cid:48)) = Result(Getstuf f y, S1(cid:48))
Occurs(U nblock2, S2)
S2(cid:48) = N ext(S2)
= Result(U nblock2, S2)
Occurs(U ngetstuf f y, S2(cid:48))by inference
S3 = N ext(S2(cid:48)) = Result(U ngetstuf f y, S2(cid:48))
Occurs(Block2, S3)
S3(cid:48) = N ext(S3)
= Result(Block2, S3)
Occurs(Getstuf f y, S3(cid:48))by inference
S4 = N ext(S3(cid:48)) = Result(Getstuf f y, S3(cid:48)).
Holds(Stuf f y, s) ∧ ¬Holds(U ncomf orable-P at, s)→ Occurs(Becomes-U ncomf ortable(P at), s),Holds(U ncomf ortable, P at,
Result(Becomes-U ncomf orable(P at), s))Holds(U ncomf ortable, P at, s)
→ Occurs(Does(P at, U nblock-V ent2), s),¬Holds(Blocked2, Result(Does(P at, U nblock-V ent2), s)).(28)(24) remains the same except that perhaps we shouldchange the notation so that instead of S3 and S3(cid:48) wewrite S2(cid:48)(cid:48) and S2(cid:48)(cid:48)(cid:48), since these are now intermediatesituations. The situation S4 is now unstable.Now let’s add a second elaboration in which Mike findsthe room cold when there is an unblocked vent andblocks vent2. It is expressed by adding
Holds(U nstuf f y, s) → Occurs(Does(M ike, Block2), s).(29)With both of these elaborations, we get an oscillation;Pat unblocks vent2 and Mike blocks it again. Result∗and N ext∗ are no longer defined.
5 The blocks world
(24)
Assume enough unique names axioms.
S1 = N ext∗(S0) = Result∗(Block1, S0)
Occurs(Block2, S1)
S2 = N ext∗(S1) = Result∗(Block2, S1)
Occurs(U nblock2, S2)
S3 = N ext∗(S2) = Result∗(U nblock2, S2)
Occurs(Block2, S3)
S4 = N ext∗(S3) = Result∗(Block2, S3)
(25)
The blocks world involves the frame problem in a moresignificant way than do the buzzer and the stuffy roomscenarios.
We use the predicate P revents(p, e, s)
to say that amove is prevented by there being a block on top ofthe block to be moved or on the destination unless thedestination is the table. We thereby skip the use of thefluent Clear(x) prevalent in many blocks world sitcalctheories.
(30)
(31)
(33)
(34)
ove(x, y)
, s) ∧ Holds(p, s)))
→ove(x, y)
, s)))ove(x, y)
, s)))),ove(x, y)
, s)ove(x, y)
, s).
andaint(x, c)
, s) ∧ Holds(p, s)))
→ Holds(Color(x, color), Result(P aint(x, color)
, s)),
(32)
Doing the nonmonotonic reasoning in situations suc-cessively corresponds to the way people predict theconsequences of sequences of actions and events.Itseems to give the same conclusions as Yoav Shoham’schronological minimization [Sho88] but is computa-tionally more straightforward. Like chronological min-imization, it avoids the Yale shooting problem and itsfriends.2
However, we advocate this only for projection prob-lems, i.e. reasoning about the future from informationabout the past. The method is not appropriate for thestolen car scenario in which one has to reason froman assertion (that the car is missing) about a latersituation. 3
With the present formalism, the person or agent set-ting up the problem must know that projection for-ward in time is appropriate. It would be better if thiswere a consequence of the formalized facts.Now let’s consider circumscribing at each situationseparately. The simplest case is when we have a pred-icate F oo(x, y, s)
.
aint(x, c)
, s) ∧ Holds(p, s)))
→ V alue(Color(x),
Result(P aint(x, color)
, s)) = color.
We write the axioms
aint(x, c)
, Color(x), s),
Holds(On(x, z), s)
→ Changes(M ove(x, y)
, On(x, z), s)
∧Changes(M ove(x, y)
, On(x, y), s).
F oo(cid:48)
≤s F oo ≡ (∀x y)(F oo(cid:48)
(x, y, s) → F oo(x, y, s)
),(F oo(cid:48)
<s F oo) ≡ (F oo(cid:48)
≤s F oo) ∧ ¬(F oo(cid:48)
=s F oo),F oo(cid:48)
=s F oo ≡ (∀x y)(F oo(cid:48)
(x, y, s) ≡ F oo(x, y, s)
).(35)Then the circumscription of F oo(x, y, s)
takes the form- The nonmonotonic reasoning associated with the
oo(cid:48)
vars(cid:48)
)(Axiom(f oo(cid:48)
, vars(cid:48)
)→ ¬(f oo(cid:48)
<s F oo)).
(36)Here vars stands for a list of the entities being variedas F oo is minimized.
alue(exp, s)
= . . . sentences inferred from the effects
2The ideas of internal and external events of the pre-ceding sections are independent of the formalism used fornonmonotonic reasoning. For example, Golog [Rei01] orthe Causal Calculator [aA01] could be used—perhaps withsome modifications for the buzzer and the oscillating stuffyroom.
3Actually part of the stolen car scenario can be treatedprovided we don’t suppose that the car being missing is tobe projected from information about the past. Certainlywe can go forward from the situation in which the car ismissing to further events in the future. Likewise, in thestory of Junior’s travels [McC92], we can assert that Juniorloses his ticket to Moscow in London and reason forwardfrom that fact.
oo(cid:48)
vars(cid:48)
)
(Axiom(f oo(cid:48)
, vars(cid:48)
) ∧ ((∀x y)(f oo(cid:48)
(x, y, s)
→ F oo(x, y, s)
)
→ (∀xy)(F oo(x, y, s)
≡ f oo(cid:48)
(x, y, s)))).
(37)
(39)
→ V alue(f, Result(e, s)) = V alue(f, s)
.
→ Changes(e, p And q, s).
(40)
ove(x, y)
, s).
(41)ove(x, y)
will notdo(e, s)
in Canada and its colonies], there are occurrence ax-ioms asserting that in situations satisfying certain ex-pressions in the fluents, an event e occurs—writtenOccurs(e, s)
. 5
Before giving effect and occurrence axioms, we presentsome general considerations concerning situation cal-culus and its applications.
7.1 Situation calculus and the real worldThere have been many formulations of situation cal-culus.
[MH69] regarded a situation as a snapshot of the worldat some instant of time. Such a system could not beknown and described completely, but a person or pro-gram could know facts about a situation, i.e. the val-ues of some fluents, and could infer some consequencesof some actions from these facts. Situations are exam-ples of rich entities, i.e. entities involving more detailthan can be specified. Poor entities have finitely de-scribable structures.
However, theories of action and change6 often use amore limited notion of situation. Thus Raymond Re-iter [Rei01] and his colleagues regard situations as thenodes of a tree based at an initial situation S0 andwhose edges branching from a situation s are the ac-4[McC59] proposed mathematical logic as a tool for rep-resenting facts about the consequences of actions and usinglogical reasoning to plan sequences of actions that wouldachieve goals. Situation calculus as a formalism was pro-posed in [McC63] and elaborated in [MH69]. The name“situation calculus” was first used in [MH69] but wasn’t de-fined there. [McC86] proposed to solve the frame and quali-fication problems by circumscription, but the proposed so-lution to the frame problem was incorrect.[Sha97] and[Rei01] describe several situation calculus formalisms andgive references.
5I suspect I need to pound the table a little here. Ac-tions are just a kind of event, and formalized reasoningabout actions and change need to treat events as the gen-eral case and those events which are actions as special.This has long seemed obvious to me, but I find that manyother researchers don’t want to use the same formalism forevents that are not actions of agents and those which are.The consequence has been the introduction of extensionsto logic for treating what are called domain constraints,most of which are better treated by formalizing events.6“events and change” would be better terminology- tions that may be taken in s. Other researchers, in-
9 Extensions of the formalism andproblems they present
The basic situation calculus admits many useful ex-tensions. The ideas of this section are tentative.9.1 Concurrency
There are two limiting cases of concurrency that canbe treated in the situation calculus.
Easy concurrency:
Two or more events, say e1 and e2 occur in a situations and result in the same next situation N ext(s)
. Thefluents that hold in N ext(s)
are those determined bythe effect axioms for e1 and e2 separately. Thus if wemove a block and paint it concurrently, it will haveboth the new location and the new color in N ext(s)
.General concurrency:
Two processes, starting, say from initial situations S0and S0(cid:48) take place and affect different sets of fluents.If nothing is said about the timing of the processesand no axioms of interaction are given, nothing canbe inferred about the relative timing of the processes.Moreover, what can be inferred about the values of thefluents in successive situations is exactly what can beinferred by the processes taken separately. Thus LouisPasteur was elected to the French Academy of Sci-ences in 1862 concurrently with certain battles of theAmerican Civil War, but historians mention neitherprocess in connection with the other. This is a limit-ing case, i.e. the case of zero interaction. Two theoriesof separate processes can be combined by taking theconjunction of their axioms. The combined theory is aconservative extension of each separate theory. It canbe useful to elaborate the combined theory by givingaxioms for the interaction. [McC95] and [MC98] treatelaborating theories of two non-interacting processes- by adding axioms of interaction. Those articles treat
(42)
ast(s)
) → Occurs(U nblock1, s).(44)
if [Arrival-time(Result(Take-Low-Road, s))≤ Arrival-time(Result(Take-High-Road, s))]then Occurs(Take-Low-Road, s)
else Occurs(Take-High-Road, s).
(45)Here we have used a branching time criterion for alinear time action.
This is not as elaborate as actual human behavior inwhich mental events occur calculating which route willlead to earliest arrival.
9.4
Induction in the situation calculusSeveral kinds of mathematical induction seem to be re-quired. For example, one may want to prove a propo-sition P (N ext∗(s)) by showing that it is true for s andis preserved by the events that occur between s andN ext∗(S). A related kind of induction is needed toprove that something is true for all situations arisingin the operation of a buzzer. The simplest case of theN ext∗ induction might be to show that a block un-moved by each of a sequence of events is in the sameposition in N ext∗(s).
The simplest situation calculus is Reiter’s [Rei01]. Theformula is
(43)
[P (S0)∧((∀a s)(P (s) → P (Result(a, s))))] → (∀s)P (s).Here are two formulas
[P (s) ∧ ((∀e s)(P (s) ∧ Occurs(e, s) → P (N ext(s)
)))]→ P (N ext∗(s)).
(47) is appropriate when N ext∗(s) is defined.When N ext∗(s) is not defined, as in the buzzer case,we can use s ≤ s(cid:48)
to mean that s(cid:48)
is a distant successorof s and have the axiom.
[P (s) ∧ s ≤ s(cid:48)
→ P (s(cid:48)
).
∧((∀e s)(P (s) ∧ Occurs(e, s) → P (N ext(s)
)))](46)(47)(48)9.5 Formalizing Oscillations
The buzzer oscillates, i.e. the situation repeats againand again. So does the stuffy room scenario with thetwo elaborations that cause Vent2 to become blocked- and unblocked repeatedly. However, we don’t need a
Lin and Reiter include the following formula.(∀x y s)(P oss(P aint(x, y)
, s)
≡ (N earby(x, s)
∧ Haspaint(y, s)
∧(∀x1)(Color(x1, Y ellow, s) ∧ y = Y ellow → x = x1))).(51)This formula is specialized to the emperor tolerat-If he tolerates 7 yellowing just one yellow block.
blocks, we had better use set notation, i.e.refer tocard({x|Color(x, Y ellow)}) ≤ 7.7
There are some domain constraints that are not natu-rally formalized by internal actions. One is the blocksworld constraint that a block may not be on top ofitself. Formulas like
Above(T op(block)
, Bottom(block), s)(52)or even
Occurs(a, s) ∧ External(a) ∧ Occurs(e, s)
→ N ext(s)
= Result(a, Result(e, s))
(49)
Height(T op(block)
, s) − Height(Bottom(block), s)≥ 1.0cm
e(cid:48)
)(Occurs(e(cid:48)
, s) → e(cid:48)
= e)
→ N ext(s)
= Result(e, s).
(50)
simple(53)
¬On(block, T op(block)
, s).
(54)An important application for the direct use of stateconstraints is when an event starts a process that even-tually leads to an equilibrium state. For example, ifI drop a coin on the floor it will bounce around for awhile and then settle down. It will reach equilibriumin a second or so, and I am interested in whether thecoin ends up heads or tails rather than in the processof its settling down. In the case of the coin the equilib-rium condition, at least what we want to know aboutit, is easy to state, namely
On(coin, f loor, Result∗(Drop(coin, s)))∧(Heads(coin, Result∗(s))
∨T ails(coin, Result∗(s))),
(55)where using Result∗ means that we are skipping bysome internal events, in this case not formalized.- I think logical AI needs a more complex treatment. It
do(a, s)
where a is an action and s a previously formed→ Occurs(Sunrise, s),
axiomsOccurs(e, s)
→ Holds(Has-occurred(e, N ext(s)
)),and Holds(Has-occurred(e, s)
∧ s < s(cid:48)
→ Holds(Has-occurred(e, s(cid:48))
).(56)(57)3. “The train to Ottawa leaves every day at 7 pm.”where it is understood that this scheduled event maynot occur under exceptional circumstances.V alue(T ime, s) = T ime(7pm)
∧¬P revented(T rain-Leaves-f or-Ottowa, s)→ Occurs(T rain-Leaves-f or-Ottowa, s).“If my neighbor’s burglar alarm goes off4.
while I am at home,
the police.”Pinto treats this example and the previous one byslightly different formalisms, one involving a predi-cate occurspo(action, time)
and the other a predicateoccursct(action, time, action2)
.
I will call
Occurs(Add(J obT itle(employee)
, HP AID), s)[Pin98a] introduces occurs(a, s)
, where a is a “naturalaction”. Natural actions partly correspond to internalevents. The article is dedicated to concurrent events,to which I hope devote a separate article.10 Concluding remarks
http://www.cs.utexas.edu/users/tag/cc.
Action
calculator
Group
home
at
page,
Austin.
2001.
approach. Artificial Intelligence, 35(2):165–
195, 1988.
J. A. Robinson Dov M. Gabbay, C. J. Hog-
ger, editor, Handbook of logic in artificial in-
telligence and logic programmin, volume 3,
pages 297–352. Oxford, 1994.
tion calculus. In Charles L. Ortiz, Jr., editor,
Working Notes of the AAAI Spring Sympo-
sium on Prospects for a Commonsense The-
ory of Causation, pages 38–43, Menlo Park,
CA, 1998. American Association for Artifi-
cial Intelligence.
putation, 4:655–678, 1994.
correct theories of action.
Journal of the
ACM, 42(2):293–320, March 1995.
In Proceedings of Sixth
Intl. Conference on Principles of Knowledge
Representation and Reasoning, pages 48–59.
Morgan-Kaufman, 1998.
In Mechanisation of Thought Pro-
cesses, Proceedings of the Symposium of the
Situations, actions andcausal laws. Technical Report Memo 2, Stan-ford University Artificial Intelligence Labo-ratory, Stanford, CA, 1963. Reprinted in[Min68].
[McC86] John McCarthy. Applications of Circum-scription to Formalizing Common SenseKnowledge9. Artificial Intelligence, 28:89–116, 1986. Reprinted in [McC90].[McC90] John McCarthy.
Formalizing CommonSense: Papers by John McCarthy. AblexPublishing Corporation, 1990.
[McC92] John McCarthy. Overcoming unexpected ob-stacles10. Web only, 1992.
[McC95] John McCarthy.
Situation Calculus withConcurrent Events and Narrative11. 1995.Web only, partly superseded by [MC98].[McC99] John McCarthy. Elaboration tolerance12.web only for now, 1999.
[McI00] Sheila A. McIlraith. An axiomatic solutionto the ramification problem (sometimes). Ar-tificial Intelligence, 116(1–2):87–121, 2000.[MH69] John McCarthy and Patrick J. Hayes. SomePhilosophical Problems from the Standpointof Artificial Intelligence13. In B. Meltzer andD. Michie, editors, Machine Intelligence 4,pages 463–502. Edinburgh University Press,1969. Reprinted in [McC90].
[Min68] Marvin Minsky, editor. Semantic informa-tion processing. MIT Press, 1968.[Pin98a] Javier A. Pinto. Concurrent actions andinteracting effects.
In Anthony G. Cohn,Lenhart Schubert, and Stuart C. Shapiro, ed-itors, KR’98: Principles of Knowledge Rep-resentation and Reasoning, pages 292–303.Morgan Kaufmann, San Francisco, Califor-nia, 1998.
9http://www-formal.stanford.edu/jmc/applications.html10http://www-formal.stanford.edu/jmc/glasgow.html11http://www-formal.stanford.edu/jmc/narrative.html12http://www-formal.stanford.edu/jmc/elaboration.html13http://www-formal.stanford.edu/jmc/mcchay69.html- [Pin98b] Javier A. Pinto. Occurrences and narratives
as constraints in the branching structure of
the situation calculus. Journal of Logic and
Computation, 8(6):777–808, 1998.
Computation, 4(5):513–530, 1994.
the
common sense law of inertia. M.I.T. Press,
1997.
investigation of
ing. Artificial Intelligence, 36(3):279–331,
1988.