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

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 your PATH:
    • 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 the ghostc 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 the bin 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 the PATH variable, see here.
  • 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, run ghostc --help. If you skipped the step above, you will have to specify the full path to the ghostc executable: for example, ~/ghostc/bin/ghostc filename.ghost on Linux/macOS, or C:\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