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
when) currently have to be implemented manually. These classes include a method
PDDLPrint for printing the resulting domains in PDDL format.
parsercontains the main source code.
- The build script leaves the compiled object file in
build, the library files in
testscontains a number of tests
scriptcontains certain scripts useful for automated testing and continuous integration
domainscontains 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
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:
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.