GOLOG

GOLOG is a high-level logic programming language, developed at the University of Toronto, for the specification and execution of complex actions in dynamical domains. It is based on the situation calculus. It is one of the first-order logical language for reasoning about action and change.[1][2]

History

The concept of situation calculus on which the GOLOG programming language is based was first given by John McCarthy in 1963[3]

Language

In GOLOG language the interpreter of the programming language automatically maintains a direct characterization 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 the application to reason about the condition of the world and consider the impacts of different potential action before focusing on a specific conduct[4]

Golog is very different from normal programming languages. A procedural programming language like C defines the execution of statements in advance. The programmer creates a subroutine which consists of statements, and the computer executes each statement in a linear order. In contrast, fifth-generation programming languages like Golog are working with an abstract model which is able to generate the sequence of actions by request. The sourcecode defines the problem and it's up to the solver to find the next action. This programming technique allows to manage more complex problems from the domain of robotics.

A Golog program defines the state space in which the agent is allowed to operate. A path in the symbolic domain is found with State space search. To speed up the process, Golog programs are realized as Hierarchical task networks.[5]

Uses

Golog has been used to model the behavior of autonomous agents. In addition to a logic-based action formalism for describing the environment and the effects of basic actions, they enable the construction of complex actions using typical programming language constructs.

Beside that it is considered perfect for applications in high level control of robots and industrial processes, virtual agents, discrete event simulation etc[6]It can be also used to develop BDI (Belief Desire Intention)-style agent systems.[7]

References

  1. Levesque, Hector J.; Reiter, Raymond; Lespérance, Yves; Lin, Fangzhen; Scherl, Richard B. (1997-04-01). "GOLOG: A logic programming language for dynamic domains". The Journal of Logic Programming. Reasoning about Action and Change. 31 (1): 59–83. doi:10.1016/S0743-1066(96)00121-5. ISSN 0743-1066.
  2. "GOLOG: A logic programming language for dynamic domains" (PDF). GOLOG: A Logic Programming Language for Dynamic Domains.
  3. "Situation Calculus - an overview". ScienceDirect. Retrieved 2020-01-12.
  4. "GOLOG - Mathematical software - swMATH". swmath.org. Retrieved 2020-01-12.
  5. Gabaldon, Alfredo (2002). Programming hierarchical task networks in the situation calculus. AIPS’02 Workshop on On-line Planning and Scheduling.
  6. G´omez, G´omez. "The Golog Programming Language and Agency" (PDF). The Golog Programming Language and Agency.
  7. Sardina, Sebastian; Lespérance, Yves (2009-05-10). "Golog Speaks the BDI Language" (PDF). Programming Multi-Agent Systems. Golog Speaks the BDI Language DO. Lecture Notes in Computer Science. 5919. pp. 82–99. doi:10.1007/978-3-642-14843-9_6. ISBN 978-3-642-14842-2.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.