Skip to content
Victor Mataré edited this page Dec 12, 2020 · 43 revisions

golog++ is a safe and accessible agent programming framework and language.

A golog++ program combines an action model with the ability to interleave planning and scripting. It is comprised of a Basic Action Theory (BAT) and a (potentially nondeterministic) imperative program. The BAT describes the world in terms of fluent, and how the agent can affect it in terms of action and their effects. The program as a whole is declarative because the only side effects are the effects of actions on the world as described by the BAT.

In addition, golog++ is strictly typesafe, so any definitions of domains, compound types or list types apply to both the BAT and the imperative code.

The main program is conventionally a procedure called main().

procedure main() {
    while (incoming_order())
        serve_coffee();
}

serve_coffee() could be another procedure or an action call.

Setup

Basic installation

  • Install ECLiPSe Prolog
  • Install ReadyLog
  • Install golog++:
    • In the golog++ root folder: mkdir build && cd build && cmake ..
    • Check the cmake output for errors, check in particular that eclipse-clp and ReadyLog have been found
    • Compile: cmake --build . or in parallel make -j$(nproc) -l$(nproc). CAUTION: The parser build uses up to 2GB of RAM per object file, so on a 16-threaded system the parallel build may use up to 32 GB of RAM.
    • Run tests: ctest

Installing platform modeling support

Clone this wiki locally