Golog(ID:2691/gol004)


1997 logic programming language for dynamic domains



Related languages
Prolog => Golog   Extension of
Golog => ccGolog   Extension of
Golog => conGolog   Evolution of
Golog => Golex   Intermediate language for
Golog => indiGOLOG   Evolution of
Golog => pGOLOG   Extension of

References:
  • Pinto, J. Temporal Reasoning in the Situation Calculus. Department of Computer Science, University of Toronto, Tech. Report KRR-TR-94-1 1994 view details
  • Pinto, J. Temporal Reasoning in the Situation Calculus. PhD thesis, Department of Computer Science, University of Toronto, 1994 view details
  • Plexousakis, Dimitris "Simulation and analysis of business processes using GOLOG" Conference on Supporting Group Work/Organizational Computing Systems Milpitas, California, United States 1995 pp311-322 view details Abstract: This paper describes a novel approach to simulating and analyzing business processes using GOLOG, a high-level logic programming language suitable for defining complex behaviors and capable of simulating action execution. The language is based on an extended version of the situation calculus and incorporates a formal theory of action. Business processes can be viewed as actions (physical or perceptual) that affect the state of affairs or an agent's knowledge of this state. Using GOLOG, business processes can be specified, synthesized and tested for feasibility and consistency. The theoretical framework behind GOLOG includes a solution to the frame problem for perceptual and complex actions, as well as, a formal method for process analysis. The latter uses a solution to the ramification problem for proving the satisfaction or violation of constraints. In case this is not possible, the method proposes strengthenings to the processes' pre- and post-conditions, so that any implementation that meets the process specification, provably guarantees that constraints will not be violated. In this manner, business process reengineering can be assisted by a formal analysis and simulation tool for testing the consistency of the process model. DOI
  • Levesque, H.; Reiter, R.; Lesperance, Y.; Lin, F.; and Scherl, R. "Golog: A logic programming language for dynamic domains" view details External link: Copy at Citeseer Abstract: This paper proposes a new logic programming language called GOLOG whose interpreter automatically maintains an explicit representation of the dynamic world being modeled, on the basis of user'supplied axioms about the preconditions and effects of actions and the initial state of the world. This allows programs to reason about the state of the world and consider the effects of various possible courses of action before committing to a particular behavior.
          in Journal of Logic Programming 31 1997 view details
  • Scherl, Richard; Bieber, Michael; Vitali, Fabio "A Situation Calculus Model of Hypertext" view details Abstract: We utilize the situation calculus to develop a logical model of hypertext systems. The work builds upon the earlier work of Bieber and Kimbrough in the logical modeling of hypertext systems. In our presentation, a particular version of the situation calculus (which includes a language for programming complex actions) developed for the modeling of dynamic worlds and for the control of robotic agents (as studied in artificial intelligence) is used to represent the dynamics of a hypertext system. We argue that the formulation besides being of interest in itself has a number of advantages over other methods of formalizing hypertext systems. External link: Online copy Extract: Intro

    Introduction
    Hypertext and related systems are becoming ubiquitous. A wide variety of systems have been built. Each of these systems [7] provides its users with the ability to create, manipulate, and/or examine a network of information-containing nodes interconnected by relational links.
    There is both a database of interconnected pieces of information and facilities for navigating and modifying this database.
    Bieber and Kimbrough [1] have developed an initial logic model of a generic hypertext system and then built upon that model a notion of generalized hypertext. Generalized hypertext uses logical inferencing rather than manual (human) specification to create links, nodes, and impose views. In addition to serving as the foundation for generalized hypertext, the logic model also proved useful for the specification and coding of the generalized hypertext system Max [1]. We feel that logic models of hypertext systems can in general play a useful role in the comparison of various hypertext systems, as well as in the specification and coding of specific systems, much in the same way as a specification in a formal language such as Z. Once inferencing is added, as in generalized hypertext, the logic model becomes essential.
    But the logic model developed by Bieber and Kimbrough [1] suffers from a major drawback. It does not have a means of representing the dynamic aspects that are essential to a hypertext systems. It really is only a logic model for certain elements of the hypertext system. The central aspect, the changes that occur as links are traversed, is left outside of the model. In the situation calculus model developed here, it is possible given an axiomatization to ask whether or not a particular sentence must be true after the execution of a particular sequence of actions.
    The modeling of dynamic worlds has been studied in artificial intelligence where the common sense reasoning needed by a robotic agent is a major concern. A wide variety of formalisms have been developed to capture this sort of common sense reasoning about change. Researchers have struggled with a number of difficult problems such as the frame1 problem [19]. One of the oldest formalisms for representing dynamically changing worlds is the situation calculus [12]. Recently it has been enjoying a revival because its expressiveness is much richer than what had been commonly believed [5, 14], and it has proven useful both as a method for specifying and for implementing robotic agents [10, 9, 8, 15].
    The situation calculus provides a formalism for reasoning about actions and their effects on the world.
    Axioms are used to specify the prerequisites of actions as well as their effects, that is, the fluents that they change. In general, it is also necessary to provide frame axioms to specify which  fluents remain unchanged by the actions. In the worst case this might require an axiom for every combination of action and fluent. Recently, Reiter [15] (generalizing the work of Haas [6], Schubert [18] and Pednault [13]) has given a set of conditions under which the explicit specification of frame axioms can be avoided. Under these circumstances a relatively simple solution suffices. We utilize the formulation of Reiter in this paper.
    Building upon Reiter's work, the Cognitive Robotics group at the Univesity of Toronto [10, 9, 8] has further developed the situation calculus to both model a robotic agent in a dynamic world and to develop a high-level programming language called GOLOG for declaratively defining complex actions (such as iteration, conditionals, and loops) that are built upon the basic primitive actions of the situation calculus. Thus specification and implementation are accomplished in a unified framework. This does not mean that all problems are solved.
    But as discussed in [10, 9, 8] there is an implemented interpreter for GOLOG. Thus a specification in GOLOG can be executed by this interpreter. This interpreted code can then serve as the basis for compilation into an efficient program, or can serve as a specification language that has the added advantage of being executed in an interpreted mode.
    In this paper, we utilize both the situation calculus and GOLOG to represent the dynamics of a hypertext system. Even though the situation calculus was initially developed and studied with A.I. problems in mind, it and the approach to the frame problem has been applied to the formalization of software systems.
    For example it has been used to formalize the evolution of a database under the effect of an arbitrary sequence of update transactions [17]. Additionally, the approach has been used as the foundations for a language for software specification [2]
    Here we explore another domain, hypertext, in which the simple solution to the frame problem ([15]) proves to be sufficient for most aspects of the problem. Additionally, we feel that the formulation besides being of interest in itself has a number of advantages over other methods of formalizing hypertext systems. It preserves all of the advantages of the Bieber and Kimbrough [1] logic model in that one can easily specify aspects of generalized hypertext.
    Also, the approach based on the situation calculus gives us automatically a formalism for representing and reasoning about context. We wish to model applications that determine which links to display based on the dynamic situation of the user interacting with the database. A number of hypertext systems incorporate such features. For example, in Trellis [4] it is possible to control the navigational possibilities available to the user, and to let him/her access and activate links based on the previous steps that the user has taken.
    Context is also utilized in [20, 3]. We utilize the situation calculus to develop a logical model of a core sort of hypertext system, very close to the basic hypertext of [1]. It does not, for example, have all of the features of the Dexter model [7]. These can all be readily added. For example, the only links considered in this paper are binary and we do not consider composite nodes.
    In [7], a hypertext system is divided into three layers. These are the run-time layer, the storage layer, and the within-component layer. The run-time layer consists of the mechanisms that enable the user to interact with the hypertext system. The storage layer is the network of nodes and the links between them. The internal structure of the nodes is captured by the within-component layer. In this paper nothing more will be said about the within-component layer as we will not be considering composite nodes.


          in Proceedings of CAISE'99, 1999 view details
  • Baier, Jorge; Pinto, Javier "Integrating True Concurrency into the Robot Programming Language" p179 view details Abstract: Research in Knowledge Representation and Theories of Action has led to the development of several logical languages to describe the dynamics of the world. One of the most influential languages developed is the Situation Calculus. Stemming from this research, the situation calculus-based programming language Golog has been proposed as a tool for implementing simulators and controllers of dynamical systems using a repertoire of user'specified primitive actions. Lately, this language has been extended in order to incorporate the notion of concurrent action execution, leading to the dialect Congolog, where an interleaving view of concurrent execution is considered. In this paper, we take this work one step further by introducing true concurrency. In our view, true concurrency arises when primitive actions can be taken to be executed at the same instant. External link: Online copy
          in 19th International Conference of the Chilean Computer Science Society November 11 - 13, 1999 Talca, Chile view details
  • Lakemeyer, G. "On sensing and off-line interpreting in Golog" pp173-187 1999 view details
          in Logical Foundations for Cognitive Agents, Contr. in Honor of Ray Reiter, 1999 view details
  • Baral, Chitta and Son, Tran Cao "Extending ConGolog to allow partial ordering" view details
          in Jennings N.R. and Lesperance, Y. (eds), Intelligent Agents VI --- Proceedings of the Sixth International Workshop on Agent Theories, Architectures, and Languages (ATAL-99), Lecture Notes in Artificial Intelligence. Springer-Verlag, Berlin, 2000 view details
  • Liu, Y; "Hoare Logic For Golog Programs" PhD Toronto, Ontario Toronto Univ., 2000 view details Abstract: GOLOG is a situation calculus-based logic programming language for dynamic domains like robots, industrial processes, intelligent software agents, etc. This thesis explores Hoare's axiomatic approach to program verification in the GOLOG context. We present Hoare-style proof systems for partial correctness and termination of procedure-less GOLOG programs, and prove the corresponding soundness and completeness results. We extend these proof systems to deal with partial correctness and termination of recursive GOLOG procedures, and prove the soundness of the resulting systems. Examples are given to illustrate the use of these proof systems.
          in Jennings N.R. and Lesperance, Y. (eds), Intelligent Agents VI --- Proceedings of the Sixth International Workshop on Agent Theories, Architectures, and Languages (ATAL-99), Lecture Notes in Artificial Intelligence. Springer-Verlag, Berlin, 2000 view details
  • Letia, Ioan Alfred; Precup, Doina "Developing Collaborative Golog Agents by Reinforcement Learning" p195 view details Abstract: We consider applications where agents have to cooper-ate without any communication taking place between them, apart from the fact that they can see part of the environment in which they act. We present a multi-agent system, defined in Golog, that needs to service tasks whose value degrades in time. Initial plans, reflecting prior knowledge about the environment, are expressed as Golog procedures, and are provided to the agents. Then the agents are trained using reinforcement learning, in order to ensure coordination both at the action level and at the plan level. This ensures better scalability and increased performance of the system. External link: Online copy
          in 13th IEEE International Conference on Tools with Artificial Intelligence (ICTAI'01) November 07 - 09, 2001 Dallas, Texas view details
  • Reiter, Raymond "Knowledge in Action: Logical Foundations for Specifying and Implementing Dynamical Systems" MIT 10 2001 view details Abstract: Modelling and implementing dynamical systems is a central problem in artificial intelligence, robotics, software agents, simulation, decision and control theory, and many other disciplines. In recent years, a new approach to representing such systems, grounded in mathematical logic, has been developed within the AI knowledge-representation community. This book presents a comprehensive treatment of these ideas, basing its theoretical and implementation foundations on the situation calculus, a dialect of first-order logic. Within this framework, it develops many features of dynamical systems modeling, including time, processes, concurrency, exogenous events, reactivity, sensing and knowledge, probabilistic uncertainty, and decision theory. It also describes and implements a new family of high-level programming languages suitable for writing control programs for dynamical systems. Finally, it includes situation calculus specifications for a wide range of examples drawn from cognitive robotics, planning, simulation, databases, and decision theory, together with all the implementation code for these examples. This code is available on the book's Web site.

          in 13th IEEE International Conference on Tools with Artificial Intelligence (ICTAI'01) November 07 - 09, 2001 Dallas, Texas view details