1
- * License
1
+ * PDDL-TOOLS library
2
+
3
+ This library contains multiple Common Lisp ASDF systems for
4
+ manipulating [[https://planning.wiki/guide/whatis/pddl][Planning Domain Definition Language (PDDL)]], and --
5
+ newly added (summer 2023) -- [[https://arxiv.org/abs/1911.05499][Hierarchical Domain Definition Language (HDDL)]].
6
+
7
+ These libraries enable a programmer to parse PDDL and HDDL, generate
8
+ and modify parsed PDDL and HDDL expressions, and then write these
9
+ expressions to files for use by AI planners. Constructs handled
10
+ include domain definitions, problem definitions, and plans.
11
+
12
+ Two additional special functionalities:
13
+ + PDDL-PLANNERS :: Attempts to provide a uniform CL interface to a
14
+ number of AI planning systems to support automating their use.
15
+ + HDDL-JSON :: Provides JSON schemas for HDDL constructs (domains and
16
+ problems) and code for emitting HDDL domains and problems as JSON.
17
+ We hope to later provide the same capabilities for PDDL, and also
18
+ support reading domains and problems as JSON, not just writing them,
19
+ so that planning models can be authored in JSON as well as in PDDL/HDDL.
20
+ We believe that this can streamline the development of AI planning
21
+ by obviating the need to incorporate HDDL and PDDL parsers in
22
+ planners.
23
+
24
+ ** Notes
25
+
26
+ We plan to provide an executable wrapper around
27
+ these libraries for parsing and translation, which will be available
28
+ for building -- for those comfortable with Common Lisp -- or for use
29
+ through Docker images.
30
+
31
+ Support for HDDL is as yet only partial. In particular, the library only
32
+ support /totally-ordered/ subtasks, not partially-ordered ones. We
33
+ expect to add this shortly. Since we do not ourselves need these
34
+ constructs, getting it added will be hastened substantially by
35
+ requests from potential users (or, even more, pull requests)!
36
+
37
+ ** License
2
38
3
39
This code is made publicly available by SIFT, LLC under the terms of the
4
40
3-clause BSD license, attached as [[file:license.txt][license.txt]].
5
41
6
- * Component libraries
7
- ** PDDL
42
+ ** Component libraries
43
+
44
+ *** PDDL
45
+
46
+ **** PDDL system
8
47
9
48
This does not provide any PDDL-wrangling functions (well, with the exception of
10
49
=PPRINT-PDDL=, whose job it is to print PDDL /readably/). It simply provides
@@ -14,7 +53,7 @@ bits of code can all wrangle PDDL without getting into package hell. In
14
53
particular, it means that one bit of code can read PDDL into an s-expression
15
54
that other code can interact with.
16
55
17
- ** PDDL-UTILS
56
+ **** PDDL-UTILS
18
57
19
58
PDDL-wrangling functions. These are made to allow you to read and write PDDL
20
59
files, especially problem files, domain files, and plans. There are also
@@ -23,7 +62,7 @@ of this library is for programmers to be able to make derivative or templated
23
62
domains and problems. You can read a problem (domain), set some of its slots
24
63
programmatically, and then write it out to a file.
25
64
26
- ** PDDL-PLANNERS
65
+ **** PDDL-PLANNERS
27
66
28
67
This attempts to provide a uniform-ish API to invoke a number of different
29
68
planners from Common Lisp. This is just the core framework here.
@@ -36,6 +75,31 @@ This approach is only somewhat successful, since we find that planners often
36
75
have very complex invocation procedures with very particular sets of
37
76
configuration options.
38
77
78
+ *** HDDL
79
+
80
+ **** HDDL
81
+
82
+ Playing a role similar to the [[#PDDL system]], this library provides the
83
+ ~HDDL~ package (Common Lisp namespace) into which HDDL domain can be
84
+ parsed.
85
+
86
+ **** HDDL-UTILS
87
+
88
+ This is the HDDL-wrangling system proper. It plays an analogous role
89
+ to the [[#PDDL-UTILS]] system.
90
+
91
+ **** HDDL-JSON
92
+
93
+ This system provides the two key interface functions
94
+ ~HDDL-JSON:JSON-DUMP-DOMAIN~ and ~HDDL-JSON:JSON-DUMP-PROBLEM~ which,
95
+ as their names suggest, provide the ability to write domains and
96
+ problems to JSON files.
97
+
98
+ *** JSON-SCHEMAS
99
+
100
+ This is not a library, but rather a repository of JSON schemas for
101
+ HDDL as written to JSON.
102
+
39
103
40
104
41
105
* COMMENT local variables block
0 commit comments