plasp—Translate PDDL to ASP
plasp 3 is in early development and not intended for productive use yet.
plasp translates planning problem instances to ASP facts.
plasp 3 supports the input languages PDDL 3.1 (only basic features currently) and SAS (full support of SAS 3), which is used by Fast Downward.
Please get in touch with Patrick Lühne if you have any suggestions.
Usage
Translating PDDL to ASP Facts
PDDL instances are translated to ASP facts as follows:
$ plasp domain.pddl problem.pddl
Alternatively, PDDL instances may first be translated to SAS, the output format of Fast Downward.
$ ./fast-downward.py --translate --build=release64 domain.pddl problem.pddl
This creates a file called output.sas, which may now be translated by plasp.
$ plasp output.sas
Solving the Translated Instance
The translated instance can finally be solved incrementally with clingo and a meta encoding, for instance, pddl-meta-sequential-incremental.lp:
$ plasp domain.pddl problem.pddl > instance.lp
$ clingo encodings/pddl-meta-sequential-incremental.lp instance.lp
Command-Line Interface
$ plasp [files] [options]
[files] may be omitted, in which case the input is read from std::cin.
The [options] are listed below:
| option | explanation |
|---|---|
-l [ --language ] |
Specify the input language (sas or pddl). Omit for automatic detection. |
--warning-level arg (=normal) |
Specify whether to output warnings normally (normal), to treat them as critical errors (error), or to ignore them (ignore). |
--color arg (=auto) |
Specify whether to colorize the output (always, never, or auto). |
Output Format
plasp provides a uniform output format for SAS and PDDL input problems.
See the documentation of the output format for more details.
If you want to write your own meta encoding for plasp’s output, the simple example encoding gets you started.
Building
plasp requires a C++14 compiler (preferrably GCC ≥ 6.1 or clang ≥ 3.8), the boost libraries (≥ 1.55), and CMake for building.
$ git clone https://github.com/potassco/plasp.git
$ cd plasp
$ mkdir -p build/release
$ cd build/release
$ cmake ../.. -DCMAKE_BUILD_TYPE=Release
$ make
The built plasp binary is then located at plasp/build/release/bin/plasp.
Running the Tests
plasp provides unit tests written using the Google Test framework.
Before building and running the tests, make sure you have fetched the Google Test git submodule:
$ git submodule init
$ git submodule update
Afterward, build and run the tests as follows:
$ make run-tests
Contributors
- Patrick Lühne (
plasp3)
Earlier Versions
- René Knaebel
- Murat Knecht