Current answer set solvers work on variable-free programs. Hence, a grounder is needed that, given an input program with first-order variables, computes an equivalent ground (variable-free) program. gringo is such a grounder. Its output can be processed further with clasp, claspfolio, or clingcon.
clingo combines both gringo and clasp into a monolithic system. This way it offers more control over the grounding and solving process than gringo and clasp can offer individually - e.g., incremental grounding and solving.
Both clingo and gringo are released together in one package.
Attention! The languages of clingo 3 and 4 are not fully compatible because clingo 4 adheres to the recent ASP language standard. For processing legacy encodings, we recommend downloading the latest version of clingo 3 in addition to clingo 4. The language did not change in version 5 but there were many API changes.
- Recent clingo releases are on GitHub: github.com/potassco/clingo/releases.
- The latest source is on GitHub: github.com/potassco/clingo.
- clingo up to version 4.x is available on sourceforge: sourceforge.net/projects/potassco/files/clingo.
- clingo versions 2.x are also available on sourceforge: sourceforge/projects/potassco/files/gringo.
- Potassco guide on GitHub for series 5 and later
- Potassco guide on Sourceforge for series 4 and earlier
- Formal language specification
- Python API Reference (versions 5.4, 5.3, 5.2, 5.1, 5.0)
- C API Reference (versions 5.4, 5.3, 5.2, 5.1, 5.0)
- Advanced Examples
- The easiest way to obtain Python enabled clingo packages is using Anaconda.
Packages are available in the Potassco channel.
First install either Anaconda or Miniconda and then run:
conda install -c potassco clingo
- Packages for clingo are available in the Linux distributions Debian, Ubuntu, and Arch Linux.
- For Mac OS X, clingo packages are available in homebrew and macports.
- The clorm python library provides an object relational mapper-like interface to clingo. It allows facts to be asserted and extracted in an intuitive and easy to use way.
- The clingo-rs project provides rust bindings to the clingo library.
- The clingo-haskell project provides haskell bindings to the clingo library.
- There are also rudimentary prolog bindings to clingo.
Martin Gebser, Roland Kaminski, Benjamin Kaufmann and Torsten Schaub, Clingo = ASP + Control: Preliminary Report, 2014
Martin Gebser, Roland Kaminski, Benjamin Kaufmann, Arne König and Torsten Schaub, Advances in gringo Series 3, LPNMR, 2011