An algorithm for parsing any planning problem in PDDL format.
The Universal PDDL Parser provides limited support for creating PDDL domains:
- creating types
- creating constants
- adding predicates
- adding functions
- adding actions
- adding preconditions and effects of actions
- adding objects
- adding initial and goal states
However, more complicated constructs (such as forall
and when
) currently have to be implemented manually. These classes include a method PDDLPrint
for printing the resulting domains in PDDL format.
parser
contains the main source code.- The build script leaves the compiled object file in
build
, the library files inlib
tests
contains a number of testsscript
contains certain scripts useful for automated testing and continuous integrationdomains
contains some sample domains
Firstly, download this project. You can alternatively clone it using the following command:
git clone https://github.com/aig-upf/universal-pddl-parser.git
Then, open the project folder and compile it using scons
:
cd universal-pddl-parser
scons
You can also run scons tests
, which builds a binary that executes a series of automated tests on actual planning domains. To run the tests binary from the project folder do:
./tests/test.bin
Finally, you can also compile a simple program using the Universal PDDL Parser. This program reads a PDDL domain and a PDDL instance, parses them and writes them on screen. You can compile the example using the command scons examples
. Then, run the example from the project folder as follows:
./examples/parser/parser.bin <domain> <instance>
For example, we can use the program in the Logistics domain:
./examples/parser/parser.bin domains/Log_dom.pddl domains/Log_ins.pddl
The Universal PDDL Parser Multiagent repository extends the Universal PDDL Parser to allow parsing multiagent domains. Besides, it also provides tools for solving multiagent problems as classical planning problems.
The Temporal Planning repository contains tools that use the Universal PDDL Parser to parse temporal planning problems expressed using PDDL.