Skip to content

Semantics

The semantics encoding defines the semantics of the meta-system, specifying how the reified program is interpreted and how the models are generated. This encoding must also give semantics to the ASP rules, for this you can include the provided encodings below.

Warning

If your semantics encoding has #include statements, the included files can't use &operator syntax, as they will not be resolved by metasp and will lead to errors. If you wish to use multiple files specify multiple --semantics-encoding, which can be simplified with a config.yml file.

Systems

The semantics encodings might use a different solver. For instance in the MEL example we use clingcon syntax. The specific system will be selected when running the solve command of metasp, providing the corresponding solver as argument.

Available systems

If you need another system, please open an issue in GitHub.

Available encodings

To simplify the writing of your semantics encoding we provide a set of available encodings that can be imported using

#include "metasp.<file_name>.lp".

Available encodings to be included in the semantics encoding:

Basic encodings

  • meta.lp: Provides the basic ASP semantics.
  • show.lp: Provides a basic show encoding to show the atoms in the output.
  • reify-defined.lp: Provides #defined for the predicates in the reified program, include it to avoid warnings when some features are not used.

Time extension encodings

  • meta-time.lp: Provides the basic ASP semantics with time extension.
  • show-time.lp: Provides a show encoding to show the atoms in the output with time extension.