Reconciling Situation and Calculus

Stephan Schiffel and Michael Thielscher Department of Computer Dresden University of Technology stephan.schiffel,mit @inf.tu-dresden.de { }

Abstract between domain descriptions in both calculi. Another ben- efit of a formal relation between the SC and the FC is the The Situation Calculus and the Fluent Calculus are successful possibility to compare extensions made separately for the action formalisms that share many concepts. But until now two calculi, such as concurrency. Furthermore it might even there is no formal relation between the two calculi that would allow to formally analyze the relationship between the two allow to translate current or future extensions made only for approaches as well as between the programming languages one of the calculi to the other. based on them, Golog and FLUX. Furthermore, such a formal Golog is a programming language for intelligent agents relation would allow to combine Golog and FLUX and to ana- that combines elements from classical programming (condi- lyze which of the underlying computation principles is better tionals, loops, etc.) with reasoning about actions. Primitive suited for different classes of programs. We develop a for- statements in Golog programs are actions to be performed mal translation between domain axiomatizations of the Situ- by the agent. Conditional statements in Golog are composed ation Calculus and the Fluent Calculus and present a Fluent of fluents. The execution of a Golog program requires to Calculus semantics for Golog programs. For domains with reason about the effects of the actions the agent performs, deterministic actions our approach allows an automatic trans- lation of Golog domain descriptions and execution of Golog in order to determine the values of fluents when evaluating programs with FLUX. conditional statements in the program. Existing semantics for Golog are based on the SC, and existing implementations (Levesque et al. 1997; Giacomo, Introduction Lesp´erance, & Levesque 2000) use successor state The Situation Calculus(SC) (McCarthy 1963; Reiter 2001b) when evaluating conditional statements in a Golog program. and the Fluent Calculus(FC) (Thielscher 2005b) are action Accordingly, the implementations use pure regression to formalisms. These formalisms provide theories for intelli- evaluate a fluent condition, which means that a given se- gent systems to reason about actions and how they change quence of actions is rolled back through the successor state the state of the world. Both calculi provide a different solu- axioms. A consequence is that the evaluation of a condi- tion to the well known (McCarthy & Hayes tion in a Golog program in general depends on the length 1969). of the history and the of fluents whose (past) val- In the SC effects of actions are defined by successor state ues have an influence on the conditional statement. Alter- axioms (Reiter 1991), each one describing the value of an natively, progression (Lin & Reiter 1997) can be used in individual fluent (an atomic property of the world) after exe- combination with successor state axioms, which means to cutingan action in termsof what holdsin the situationbefore employ regression to infer the values of all fluents after an the action. The FC extends the SC by the concept of a state action, and then to store these values for future evaluation. and in which the effects of actions are specified by action- This avoids to store an ever increasing history, but the com- based state update axioms (Thielscher 1999). Those ax- putational effort of a single progression step depends on the ioms update an explicit description of the state of the world overall number of fluents of a domain. upon execution of an action. Because of these different ap- In this paper, we present an alternative semantics for proaches both calculi have different properties. Therefore Golog based on the FC, to overcome this disadvantage. Our one might be suited better than the other to solve certain new semantics lays the foundation for an implementation classes of problems (Thielscher 2005a). of Golog in FLUX (Thielscher 2005a), a programming lan- However there exists no proper about that issue guage based on the the FC. In FLUX the inference principle until now. For comparing the different properties of the SC of progression is employed to update a state specification and the FC a formal relation between the two calculi is nec- upon the performance of an action. The advantage over re- essary. We develop such a relation in terms of a translation gression is that fluent conditions can be evaluated directly against the updated world model. Moreover, progression via Copyright c 2006, American Association for Artificial Intelli- state update axioms requires to consider the affected fluents gence (www.aaai.org). All rights reserved. only.

287 The implementation of a Golog interpreter in FLUX adds P oss(A(~x), s) ΠA(~x, s), where ΠA is a formula uniform an implementation independent programming language to in s. ≡ the FLUX system, a feature that FLUX was lacking so far. Possibility of actions leads to the definition of an ex- This allows to conduct systematic experiments and to an- ecutable situation (Reiter 2001b, 4.2.4) executable(s), alyze which underlying computation principle, progression which intuitively means a situation s is executable if each or regression, is better suited for different classes of Golog action in the history of s was possible in the respective situ- programs. ation. The remainder of the paper is organized as follows. First we repeat the basic definitions of the Situation Calculus and Golog Golog. We use a variant of Golog that extends the origi- We consider the original Golog defined in (Levesque et al. nal version by a search , which allows to interleave 1997) augmented by the search operator introduced in (Gia- planning and execution (Giacomo, Lesp´erance, & Levesque como & Levesque 1999). 2000). We also briefly recapitulate the Fluent Calculus. Being a high-level language for agent control, Golog uses Next we present the formal translation of a SC domain de- actions (of the agent) as primitive statements and fluents for scription to an equivalent one in the Fluent Calculus. After tests, i.e., conditional statements. These basic ingredients this, we present our Fluent Calculus semantics for Golog are embedded in a language that has standard elements of programs. A brief discussion of the results and possible fu- imperative programming. Specifically, a Golog program can ture concludes the paper. be composed of these constructs:1 Background nil empty program a action Situation Calculus φ? test The SC as described in (Reiter 2001b) is a sorted logical lan- δ1; δ2 guage designed for axiomatizing dynamic domains. There δ1 δ2 nondeterministic choice (of programs) are predefined sorts for fluents, actions and situations. All πv.| δ nondeterministic choice (of parameters) changes to the environment are caused by actions. A se- δ∗ nondeterministic iteration quence of actions is called a situation. Situations are built Σδ search using the situation S0 and the Do(a, s), where a is an action term and s is a situation. In addition, the following macros are used: Non-static properties of the world are described by flu- def ents, i.e. predicates or functions with a situation term as last if φ then δ1 else δ2 = (φ?; δ1) ( φ?; δ2) def | ¬ argument. Properties of a situation s are described by so while φ do δ = (φ?; δ)∗ ; φ? ¬ called uniform formula in s. A formula is uniform in a sit- The intuitive meaning of the operator is to search for a uation s if it does not mention any other situation besides Σδ terminating run of sub-program δ and then to execute this s, that means it can be evaluated with regard to situation s 2 only. The values of the fluents in the initial situation are de- run. scribed by the initial database, a set of formulas uniform in Existing semantics for Golog are based on the SC. In (Gi- acomo, Lesp´erance, & Levesque 2000), a transition seman- S0. In situation Do(a, s) the values of fluents are defined in terms of the values of fluents in the previous situation s and tics for Golog is given by an axiomatic definition of two the action a that was executed by so called successor state predicates: Trans(δ, s, δ0, s0), meaning that the execution of axioms (Reiter 1991). A successor state for a fluent the next action or the next test in program δ leads from situ- predicate F (~x, s) looks like this: ation s to situation s0 and to the remaining program δ0. The second predicate, Final(δ, s), means that program δ does not + require to execute any more action or test in situation s. The F (~x, Do(a, s)) γF (~x, a, s) (F (~x, s) γF−(~x, a, s)) ≡ ∨ ∧ ¬ (1) core of this semantics are the definitions for executing an + action and for evaluating a test: Here γF (~x, a, s) and γF−(~x, a, s) are formulas uniform in s with free variables among ~x, a. If γ+(~x, a, s) holds then the F Trans(a, s, δ0, s0) Poss(a, s) fluent F (~x) is called a positive effect of action a in situa- ≡ ∧ δ0 = nil s0 = Do(a, s) tion s. Consequently, the fluent is a negative effect of a, ∧ (3) Trans(φ?, s, δ0, s0) φ[s] if γ−(~x, a, s) holds. Thus, successor state axioms describe ≡ ∧ F δ0 = nil s0 = s the effects of actions. An example is the following succes- ∧ sor state axiom for a fluent called Closed(s), indicating the Here, Poss(a, s) denotes that action a is possible in situa- status of a door: tion s, and φ[s] means that condition φ holds in situation

Closed(Do(a, s)) (2) 1 ≡ Below, δ, δ1, δ2 are Golog programs, φ is a formula with flu- a = Close (Closed(s) a = Open) ents as atoms, and v is a . ∨ ∧ ¬ 2The Golog variant of (Giacomo, Lesp´erance, & Levesque The execution of an action a in situation s is only pos- 2000) contains additional constructs, e.g., for interrupts and pro- sible if its preconditions are fulfilled in s. The precondi- cedures, which we will not deal with in this paper for the sake of tions are defined by a set of preconditionaxioms of the form simplicity.

288 s. This requires a background theory which contains action one fluent Closed: knowledge of the application domain in form of precondi- P oss(Open, s) tion and effect axioms. Specifically, effects are described ⊃ State(Do(Open, s)) = State(s) Closed (5) by successor state axioms (Reiter 1991), which define the − value of a particular fluent after an action (that is, in situa- P oss(Close, s) ⊃ tion Do(a, s)), in terms of the values of fluents in situation State(Do(Close, s)) = State(s) + Closed s. FLUX Fluent Calculus The FC provides the formal underpinnings of the pro- gramming method FLUX (Thielscher 2005a). FLUX is The FC extends the SC by a predefined sort for states. The based on the encoding of (possibly incomplete) state knowl- function State(s) denotes the state in situation s. The world edge with the help of constraints. The effects of actions are can be in the same state in different situations, but the state inferred on the basis of state update axioms, which effect an in every situation is unique. State terms are constructed from update of the set of constraints that encode a given state. An fluents (as singleton states) and the function z z , where 1 2 example is the following state update axiom for the action z and z are states. The foundational axioms◦ of the FC 1 2 of closing the door of an elevator: stipulate that function “ ” shares essential properties with close the union operation for◦ sets. A fluent f is then defined to state_update(Z1,close,Z2) :- hold in a state z if and only if the former is a sub-state of the update(Z1,[closed],[],Z2). + latter: where update(z1, ϑ , ϑ−, z2) means that z2 is z1 updated def + Holds(f, z) = ( z0) z = f z0 by, respectively, positive and negative effects ϑ and ϑ−. ∃ ◦ FLUX is thus amenable to the computation principle of pro- The addition of states to the SC allows to define fluents to gression: The current state description is updated upon the hold in a situation, written Holds(f, s), by referring to the performance of an action, which allows to evaluate con- state in the situation: ditions on the successor situation directly against the new state. Holds(f, s) =def Holds(f, State(s)) Translation of Domain Specifications Based on the notion of a state, the frame problem (McCarthy & Hayes 1969) is solved in the FC by state update axioms, Domain specifications Σ in the Situation Calculus and the which define the effects of an action a as the difference be- Fluent Calculus consist of: tween the state prior to the action, State(s), and the succes- Σfd, the foundationalaxioms of the SC or the FC respec- sor State(Do(a, s)). A state update axioms for action A(~x) • tively, looks like this: Σ , a definition of the initial situation, • init P oss(A(~x), s) Σap, a set of action precondition axioms, ⊃ • ( ~y )(∆ (s) State(Do(A(~x), s)) = Σdc, a set of domain constraints, ∃ 1 1 ∧ • + , a set of axioms describing the effects of the ac- State(s) ϑ− + ϑ ) Σeffect − 1 1 • tions, ... (4) ∨ ∨ Σuna, a set of unique names axioms and ( ~yn)(∆n(s) State(Do(A(~x), s)) = • ∃ ∧ + Σaux, a set of auxiliary axioms, i.e. situation independent State(s) ϑ− + ϑ ) • − n n axioms. + In the following we will use a superscript of s or f to distin- Where ϑ− and ϑ are the negative and positive effects of i i guish between elements of the SC and the FC domains with the action A(~x) in situation s under the condition that ∆i(s) + the same name but different definitions. The functions t and holds, and ~y are free variables of ϑ−, ϑ and ∆ (s). ∆ (s) i i i i i t are used to denote a translation of a SC formula to the FC is a so-called situation formula, that is a formula with free 0 and vice versa. situation variable s and without any occurrence of states or Because of space constraints we will only present the situations other than in expressions of the form Holds(f, s) translations of Σ and Σ in this paper. The trans- and without actions. init effect lation of the remaining elements is mostly straightforward. In contrast to successor state axiom in the SC, state up- For the translation we make certain assumptions about the date axioms provide an action-based description of the ef- domain descriptions: fects of actions as opposed to a fluent based description. We will only consider deterministic domains, i.e. there That means inference is done by updating the entire state • rather then individual fluents. This leads directly to an ef- are no nondeterministic actions. ficient implementation that is based on the principle of pro- The actions must not have infinitely many effects, so gression (Thielscher 2003). The following state update ax- • called open effects, because one can’t describe open ioms describe the effects of the actions Open and Close for effects in a standard state update axiom of the FC opening and closing a door, whose status is described by the (Thielscher 1999).

289 The successor state axioms have to be of the form as in of the door we obtain the following effect axioms from the • equation 1.3 state update axiom (5): For the sake of simplicity we don’t consider domain de- Closed(Do(Open, s)) • > ⊃ ¬ scriptions with fluent functions in this paper. Fluent func- Closed(Do(Close, s)) tions can be part of a SC domain description, but can only > ⊃ be indirectly expressed in the FC by fluent relations with Now we have positive and negative effect axioms for each the value of the fluent function as additional argument. A pair of action Aj and fluent Fi. Those can be combined to straightforward translation of a domain description with general effect axioms for each fluent: fluent functions to one without is possible. +  Fi(~xi, Do(a, s)) Fi ⊃ Situation Formulas and Initial Situations − Fi(~xi, Do(a, s)) Fi ⊃ ¬ Situation formulas in the Fluent Calculus and so called uni- + where  and − are defined as follows: form formulas in the Situation Calculus are similar in that Fi Fi both state facts about exactly one situation. A uniform + def + def +  =  (~xi, a, s) = [ a = Aj (~x)] formula φ can be translated to a situation formula t(φ) Fi Fi Aj ,Fi ∧ j by replacing each fluent atom P (~x, s) by Holds(P (~x), s) _ (Thielscher 1999) and vice versa. def def − = − (~xi, a, s) = [− a = Aj (~x)] Fi Fi Aj ,Fi ∧ The initial situation in the SC is defined by a set of first j order sentences that are uniform in S0, the so called initial _ database. In a FC domain the initial situation is defined by For our example the general effect axioms are: a situation formula Ψ(S0). W.l.o.g. we can assume that the a = Open Closed(Do(a, s)) initial database consists only of the single uniform formula ⊃ ¬ a = Close Closed(Do(a, s)) Φ(S0). Hence the translation of the initial situation descrip- ⊃ tions reduces to the translation of a uniform formula to a The general effect axioms for each fluent Fi can be com- situation formula and vice versa. bined to successor state axioms: + Effects of Actions Fi(~xi, Do(a, s))  (Fi(~xi, s) − ) ≡ Fi ∨ ∧ ¬ Fi (Thielscher 1999) gives an in-depth account on how to trans- The successor state axiom for our example is exactly the one late successor state axioms to essentially equivalent state up- of equation (2). date axioms. We reverse this method to translate state update axioms to Equivalence of Domain Specifications equivalent successor state axioms. Consider a state update The domain specifications obtained by the translation de- axiom as in equation 4. From this we can extract positive scribed above are equivalent, in the sense that each formula and negative effect axioms for action A: about a situation s holds under a domain specification ex- + actly if the translated formula holds under the translated do-  Fi(~yi, Do(A(~x), s)) A,Fi ⊃ main specification, as long as the situation is executable, i.e. − F (~y , Do(A(~x), s)) the actions leading to the situation were possible. A,Fi i i ⊃ ¬ Theorem 1. with Σs = φ(s) iff t(Σs) = t(φ(s)) + def + def | |  =  (~x, ~y , s) = [t0(∆ (s))] A,Fi A,Fi i j and (6) j I+ ∈_ Σf = ψ(s) iff t0(Σf ) = t0(ψ(s)) def def | | − = − (~x, ~yi, s) = [t0(∆j(s))] A,Fi A,Fi for each uniform formula φ(s), each situation formula ψ(s) j I ∈_− and each executable situation s. + + The restriction to executable situations is necessary, be- The sets I and I− are the sets of indices of those ϑj and + cause in the FC the successor state is undefined if an action ϑ−, that contain F (~yi). That means  is the disjunction j A,Fi is not possible, i.e. State(s) is undefined if s is not exe- of all those conditions ∆j for which F (~yi) is a positive effect cutable. of the action A, and similarly for − . It is easy to see A,Fi that if the state update axiom is built from effect axioms as Proof (Sketch). For s = S0 (6) follows by induction over all described in (Thielscher 1999), then the disjunction of ∆j formulas uniform in s or situation formulas in s respectively. is equivalent to the original effect axiom. In our example As the translation of state update axioms to successor state axioms is the reversal of the method from (Thielscher 1999), 3This differs from the definition in (Reiter 2001b), which allows for s = Do(a, s0) (6) follows from (Thielscher 1999), pro- for arbitrary formulas uniform in s on the right hand side of the vided s0 is an executable situation, a is possible in s0 and (6) axiom. holds for s0.

290 Fluent Calculus Semantics for Golog are:

Programs Trans(a, z, δ0, z0, h0) ≡ Our starting point for defining our new semantics is the tran- Poss(a, z) δ0 = nil ( s)State(s) = z sition semantics for Golog given in (Giacomo, Lesp´erance, ∧ ∧ ∃ ∧ z0 = State(Do(a, s)) h0 = a & Levesque 2000) with the exception of the axioms for con- ∧ Trans(φ?, z, δ0, z0, h0) currency. With the help of the predicates Trans and Final the ≡ semantics of a Golog program can be defined as: φ[z] δ0 = nil z0 = z h0 = [] ∧ ∧ ∧ def Here φ[z] is an abbreviation for a predicate Do(δ, s, s0) = HoldsCond(φ, z) which maps Golog condition expres- ( δ0)Trans∗(δ, s, δ0, s0) Final(δ0, s0) sions to FC state formulas, by replacing each Fluent f in ∃ ∧ φ with Holds(f, z). HoldsCond(φ, z) is similar to Holds where Trans∗ stands for the reflexive and transitive closure from (Giacomo, Lesp´erance, & Levesque 2000), it is only of Trans. The predicate Do(δ, s, s0) means that the execu- renamed to avoid confusion with Holds of the FC. tion of a Golog program δ in situation s leads to a final situ- The major differencecompared to equation 3 is that in the ation s with a finite number of transitions. 0 SC s0 = Do(a, s) is just a variable assignment but in the FC In the FC it is now possible to replace the situation s of ( s)State(s) = z z0 = State(Do(a, s)) a configuration by its associated state State(s) and thus de- ∃ ∧ note transitions by Trans(δ, z, δ, z0) and final configurations results in a state update which calculates the new state z0 by Final(δ, z) where z = State(s) and z0 = State(s0). By from z and the effects of executing the action a in z. doing this we do no longer have to calculate values of fluents This first of all means that computing a transition for a by regression over the situation as in the Situation Calculus. primitive action with our semantics is more expensive in Instead we progress the state on every execution of an ac- terms of calculation time than with the original semantics. tion. Then a simple lookup in the FC state is sufficient to The reward for this is that the evaluation of φ[s] in the SC acquire a fluents value, as, by the Completeness Assump- means to do a regression over the situation for each fluent f tion, all fluents that hold in a situation are part of the as- in φ and for each fluent on which the value of f depends. In sociated state. By replacing situations by states, however, contrast, in the FC φ[z] can be evaluated by looking up the we lose the information about the performed actions. This values of the fluents in the state z that was computed by the information is necessary in order to be able to actually exe- last transition. cute the actions in the physical environment after reasoning Thus calculating a transition for test actions in the FC about their outcomes. Thus we introduce a list of actions not does not depend on the length of the action history and is executed so far as additional result of a transition and will therefore less expensive in cases with situations of a certain therefore denote a transition between two configurations by length. Trans(δ, z, δ0, z0, h0) where h0 is the history of the actions to The new semantics is equivalent to the original one in the be executed in z in order to reach z0. following sense: Now we define the semantics of a Golog program in the Theorem 2. For all Golog programs δ and ground situation FC by: terms s and s0 s s def Σ C =Do(δ, s, s0) Do(δ, z, z0, h0) = ( δ0)Trans∗(δ, z, δ0, z0, h0) Final(δ0, z0) ∪ | ∃ ∧ iff where Trans∗ stands for the reflexive and transitive closure f f of Trans and is the concatenation of the action histories of Σ C =Do(δ, State(s), State(s0), history(s, s0)) h0 ∪ | the individual transitions. Similar to the original semantics, Where history(s, s0) denotes the list of actions executed be- the predicate Do(δ, z, z0, h0) means that the execution of a tween s and s0 and C stands for the set of axioms for T rans Golog program δ in state z results in state z0 and h0 contains and F inal plus those axioms needed for encoding Golog the actions executed in between. programs as terms in first-order logic. Now we can define the relations Trans and Final induc- tively for all Golog programs. Most definitions are essen- Proof (Sketch). For each Golog program δ it can be shown tially just syntactical transformations of the original ones that s s from (Giacomo, Lesp´erance, & Levesque 2000): Situations Σ C = T rans(δ, s, δ0, s0) are replaced by states, and the action history is added to ∪ | h0 iff (7) the Trans predicate. E.g. the definition of Trans and Final for nondeterministic branches are those: Σf Cf = ∪ | T rans(δ, State(s), δ0, State(s0), history(s, s0)) Trans(δ1 δ2, z, δ0, z0, h0) | ≡ and similarly for . For test actions, i.e. , Trans(δ1, z, δ0, z0, h0) Trans(δ2, z, δ0, z0, h0) F inal(δ, s) δ = φ? ∨ (7) follows from the definitions of HoldsCond(φ, z) and Final(δ δ , z) Final(δ , z) Final(δ , z) 1| 2 ≡ 1 ∨ 2 Theorem 1. For primitive actions, i.e. δ = a, (7) follows The major differences arise in the definitions for primitive from Theorem 1. For complex actions (e.g. δ1; δ2) the prop- actions and test actions. These Trans predicates in the FC erty is proved by induction.

291 Conclusion for incomplete states in FLUX, which seems to be very ef- We have presented a formal translation between domain ax- ficient in comparism to other approaches (Sardina & Vassos iomatizations in the Situation Calculus and the Fluent Calcu- 2005), to reason about knowledge in Golog programs. lus. This formal relation between the two action formalisms provides the necessary foundations for a proper analysis of References the differences of both calculi and the agent programming Giacomo, G. D., and Levesque, H. 1999. An incremen- systems based on them. It is also the basis for comparing tal interpreter for high-level programs with sensing. In extensions made separately for both calculi, such as concur- Levesque, H., and Pirri, F., eds., Logical Foundations for rency, and it might even allow to translate current or future Cognitive Agents. Springer. 86–102. extensions made only for one of the calculi to the other. Giacomo, G. D.; Lesp´erance, Y.; and Levesque, H. 2000. We have also presented a new semantics for Golog based ConGolog, a concurrent programming language based on on the Fluent Calculus, by which the standard model for the situation calculus. Artificial Intelligence 121(1–2):109– Golog is enriched with the notion of a state. The essen- 169. tial difference to previous semantics is that states, and not Levesque, H.; Reiter, R.; Lesp´erance, Y.; Lin, F.; and situations (i.e. histories of actions) are propagated when de- Scherl, R. 1997. GOLOG: A lan- scribing the execution of a Golog program. We have given guage for dynamic domains. Journal of Logic Program- a Fluent Calculus interpretation for all language elements of ming 31(1–3):59–83. the original Golog (as defined by (Levesque et al. 1997)) augmented by the search operator introduced in (Giacomo, Lin, F., and Reiter, R. 1997. How to progress a database. Lesp´erance, & Levesque 2000). All further constructs from Artificial Intelligence 92:131–167. the latter, extended dialect, e.g. those for interrupts and pro- McCarthy, J., and Hayes, P. J. 1969. Some philosophi- cedures, can be interpreted in our semantics in a straight- cal problems from the standpoint of artificial intelligence. forward way. The new semantics is proved to be equivalent Machine Intelligence 4:463–502. with the original Situation Calculus semantics. McCarthy, J. 1963. Situations and Actions and Causal Our new semantics lays the foundation for interpreting Laws. Stanford University, CA: Stanford Artificial Intelli- Golog programs in FLUX. This allows to employ states and gence Project, Memo 2. the inference principle of progression for state update. The Reiter, R. 1991. The frame problem in the situation cal- motivation for the alternative semantics and implementation culus: A simple solution (sometimes) and a completeness is that result for goal regression. In Lifschitz, V., ed., Artificial In- progression of states allows to evaluate conditions in telligence and Mathematical . Aca- • Golog programs directly against the updated state; demic Press. 359–380. progression via state update axioms only requires to con- Reiter, R. 2001a. On knowledge-based programming with • sider those fluents that are affected by an action; sensing in the situation calculus. ACM Transactions on Computational Logic 2(4):433–457. Golog provides an attractive, implementation independent Reiter, R. 2001b. Knowledge in Action. MIT Press. • programming language for agent systems, a feature that FLUX was lacking so far. Sardina, S., and Vassos, S. 2005. The Wumpus World in INDIGOLOG: A Preliminary Report. The Sixth Work- Based on the formal translation and the semantics de- shop on Nonmonotonic Reasoning, Action, and Change at fined in the previous sections we have developed a Prolog IJCAI. implementation of Golog interpreter in Flux4 based on the LeGolog interpreter5 as well as an implementation of the Thielscher, M. 1999. From situation calculus to fluent cal- translation of a LeGolog domain description to Flux and culus: State update axioms as a solution to the inferential vice versa. In an extended version of a standard scenario frame problem. Artificial Intelligence 111(1–2):277–299. for Golog (Levesque et al. 1997), our new implementation Thielscher, M. 2003. Controlling semi-automatic systems proved to be a more efficient interpreter for Golog compared with FLUX. (Extended abstract). In Palamidessi, C., ed., to the original LeGolog implementation. The results will be Proceedings of the International Conference on Logic Pro- published on our webpage. gramming (ICLP), 2916 of LNCS, 515–516. Mum- For future work, we intend to conduct systematic exper- bay, India: Springer. iments and to analyze which computation principle is bet- Thielscher, M. 2005a. FLUX: A logic programming ter suited for different classes of Golog programs. We are method for reasoning agents. Theory and Practice of Logic currently extending the translation of domain axiomatiza- Programming 5(4–5):533–565. tions and our interpreter to knowledge-based Golog pro- Thielscher, M. 2005b. Reasoning Robots: The Art and grams (Reiter 2001a), thereby using the full expressiveness Science of Programming Robotic Agents, volume33 of Ap- of the Fluent Calculus and FLUX for incomplete states. This plied Logic . Kluwer. will allow us to use the existing contraint solving mechanism

4see http://www.fluxagent.org/ 5http://www.cs.toronto.edu/cogrobo/Legolog/

292