ghost is a language for Timeline-based Planning, developed to replace ddl. With respect to ddl it tries to be more concise and readable, while also adding new features like generic synchronizations and type inheritance.
An implementation of the language exists in the form of a ghost-to-ddl command-line compiler, ghostc
, and an Eclipse plugin that can be used to ease development of planning domains and problems; the generated ddl files can then be given as input to a planner supported by the KeeN Environment.
The ghost language was designed and implemented by Giulio Bernardi. Currently, the compiler and the Eclipse plugin should be considered alpha quality software: any API is subject to change, and the language itself might undergo some (hopefully minor) changes; this also means that bugs and other problems are expected (but if you find any of them, please report them). It is Open Source software released under the Eclipse Public License.
Documentation
-
The complete language documentation is available in The ghost Language Manual, which is accompanied by many examples.
-
An introduction to Timeline-based Planning can be found here.
-
There is also a grammar of the ghost language in EBNF form.
Getting Started
Eclipse Plugin
The Eclipse plugin requires Eclipse, version Neon.3 or better, and Java 8.
To install the plugin, add https://ugilio.github.io/ghost/update/latest
as an update site to your Eclipse installation, and then install the software there contained. By using this update site it will be possible to update your ghost installation when a new version is released. If, on the contrary, you prefer to stick with a certain release, the URL of the update site to use is https://ugilio.github.io/ghost/update/v0.1.0
(replace 0.1.0 with the release you want to install).
Command-line compiler
NOTE: You don’t need the command-line compiler if you plan to develop exclusively through Eclipse: the Eclipse plugin can compile sources on its own, without the need of an external compiler.
- Download the latest release of the command-line compiler: choose the version for Linux/macOS/other UNIX or Windows according to your operating system. You can also download the source code from the release page.
- Uncompress the content of the distribution in a directory of your choice.
- Optional: ensure the
ghostc
executable can be found in yourPATH
:- Linux/macOS: you might add a symbolic link to ghostc in the
bin
directory in your home folder. For example, if ghostc has been uncompressed in theghostc
directory inside your home directory, this command will do:ln -s ~/ghostc/bin/ghostc ~/bin/ghostc
- Windows: edit che
PATH
environment variable by appending the path to thebin
directory (inside the folder where you unzipped the ghostc distribution) at the end of the string; be sure that the string you append is separated from the previous entries by a semicolon ‘;’ character. For instructions about how to edit thePATH
variable, see here.
- Linux/macOS: you might add a symbolic link to ghostc in the
- You can now compile a ghost file with the command
ghostc filename.ghost
: the compiled ddl file will be generated in the same directory. To see other options, runghostc --help
. If you skipped the step above, you will have to specify the full path to theghostc
executable: for example,~/ghostc/bin/ghostc filename.ghost
on Linux/macOS, orC:\Path\Where\Ghostc\Is\Installed\bin\ghostc filename.ghost
on Windows.
Building from Source
Clone the repository:
git clone https://github.com/ugilio/ghost.git
cd ghost
and then build from the *releng
directory (requires Maven and Java 8):
cd *.releng
mvn package
If you also want to run the test suite, do mvn verify
instead of mvn package
.
Eclipse Update Site - Unstable branch
To use the bleeding edge of the plugin instead, which is updated to the latest commit on the master
branch, use the update site https://ugilio.github.io/ghost/update/unstable