Tools – Project Haystack


OverviewBuild from SourceGitHubHaxallDefc


This chapter provides guidance to for open source tools available for to work with Project Haystack data.

Build from Source

To compile the ontology from source into HTML, Json, Turtle, etc follow these steps:

  1. Checkout source from GitHub
  2. Install Haxall
  3. Run the defc command line tool to compile the defs


All Haystack source material is managed on GitHub.

If you have git installed on your machine, you can clone the Haystack repo to your local machine with this command:

git clone

This will create a haystack-defs/ directory under your current working directory.


Haxall is an open source framework which includes the reference implementation used to generate the documentation and downloads found on It provides several features for working with Project-Haystack data:

  • defc command line tool to compile the ontology from source
  • hx convert command line to convert between the different file types
  • Haxall daemon which provides a full runtime to load and explore haystack data using a functional scripting langauge

Haxall requires a Java VM to run. So you will need Java installed on your machine as a prerequisite. To install Haxall download the latest release from GitHub. Releases are packaged as a zip file you can unzip to your machine. Once installed you can test using the "bin/hx" Bash script or "bin/hx.bat" Window's batch file as follows:

bin/hx version


The defc command line tool is used to compile the ontology from source. It compiles the source Trio files one or more of the following output files:

  • html: generate the HTML documentation as found on the website
  • csv: output defs as a CSV file
  • zinc: output defs as a Zinc file
  • trio: output ontology as a Trio file
  • json: output ontology as a Json file
  • turtle: output ontology as a RDF Turtle file

To use defc, first install haxall and verify its installed as follows

bin/fan defc -version

Run this command to print out command line syntax and examples:

bin/fan defc -?

If you have cloned the haystack git repo, then you can compile it as follows

// compile ontology to HTML docs
bin/fan defc haystack-defs/src

// compile ontology to JSON
bin/fan defc -output json haystack-defs/src

// compile ontology to Turtle
bin/fan defc -output turtle haystack-defs/src

// compile ontology to JSON and Turtle
bin/fan defc -output json,turtle haystack-defs/src