User Tools

Site Tools


Software on Ponyland

Various categories of software are available on ponyland. There are the globally installed packages, automatically available for everyone, and there is custom software for which you have to explicitly opt-in. The latter is organized in so called namespaces.

Globally installed

Amongst the globally installed packages are all common unix tools, various compilers and interpreters. A full exhaustive list of all installed packaged can be obtained through dpkg -l. Below is a list of the most notable software.

Experiment framework

Compilers and interpreters

  • gcc/g++ (5.4)
  • python (2.7)
  • python3 (3.5)
  • perl (5.22)
  • java/javac (Java 8, OpenJDK 1.8)
  • R (3.2)
  • matlab
  • octave (open-source matlab alternative)

Research Tools

  • Dact Dact is a tool for viewing and analyzing Alpino corpora
  • Praat doing phonetics by computer

Version control

Using some form version control for maintaining your code is highly recommended!

  • git (See: Git)
  • svn (subversion)
  • bzr (bazaar)
  • hg (mercurial)
  • cvs


  • vi/vim
  • emacs
  • joe
  • nano/pico (easiest for beginners, but very few features)
  • Graphical Editors (Use X-Forwarding)
    • gedit
    • sublime—–

text (namespace texteditors)


  • latex/pdflatex/tex
  • gnuplot
  • pdf2txt
  • graphviz (dot/circo/etc)
  • antiword


(Maintained by Maarten van Gompel)

LaMachine groups a large collection of inter-dependent software developed by the Language Machines research group, as well as TiCC in Tilburg. Most of the software by Antal van den Bosch, Maarten van Gompel, Ko van der Sloot, and others can be found here. LaMachine will always contain the latest stable releases of our software. See for complete information.

As a lot of our software and development is Python based, LaMachine comes with a sizeable collection of third party libraries, in addition to our own libraries. The LaMachine installation on Ponyland is built against the globally available Python 3.4.

LaMachine on Ponyland is set up as a Virtual Environment, to activate LaMachine from the shell (bash or zsh only), or from within a shell script, just type:


or full long form:

source /vol/customopt/bin/lamachine-activate

This works on all ponies *except* the old applejack.

Your prompt will then be prepended with (lamachine) and your $PATH and $LD_LIBRARY_PATH will be updated. Note that python and python3 will now both refer to the Python 3 interpreter (outside of the environment, python would refer to the global Python 2.7 installation).

Our software:

Third-party Python libraries:

  • Numpy
  • Scipy
  • Matplotlib
  • Seaborn
  • Pandas
  • Scikit Learn
  • PyCrypto
  • PyCurl
  • Django
  • Cython
  • CherryPy
  • IPython
  • NLTK
  • Textblob
  • Keras
  • Theano

NOTE: The default LaMachine environment contains the latest stable releases of our own software and will always be updated regularly. Different versions may affect the outcome of experiments! Always log the software version for full reproducibility! See lamachine-list

In addition to the stable versions, you can also opt for a LaMachine virtual environment that contains the very latest bleeding edge git versions of all software. This is more volatile, may break at any moment, and is intended for testing the newest features. Activate the development LaMachine as follows:


or full long form:

source /vol/customopt/bin/lamachine-dev-activate

The stable LaMachine on ponyland will be updated regularly. For the development LaMachine, you can trigger an update yourself by running ```` on ``mlp01 (applejack2)``.

LaMachine is also available as a Virtual Machine and as a Docker container, enabling you to run our software locally and facilitate deployment. See for more details.

If you have own software you want to include as part of LaMachine, or you have third-party Python software you want to be included as part of the ponyland LaMachine virtual environment, contact .

Opt-in: namespaces

Namespaces group certain software for which you have to explicitly opt-in. This is done so the software may not cause any conflicts with any versions of the same software you may have installed locally. Setting a namespace means that your $PATH, $LD_LIBRARY_PATH, $PYTHONPATH and various other environment variables will be extended to include software in the namespace. All namespaces are in /vol/customopt/.

To use a namespace, add either of the following to the bottom of the file ~/.bash_profile:

# Load namespace:
. pathadd $namespace
# Silently load namespace:
. pathadd -s $namespace

The initial . is important (it is an alias to source, but works in all shells). Substitute $namespace by the namespace, for example uvt-ru. You can add multiple lines with multiple namespaces.

The following namespaces exist and contain the software mentioned below:

2. machine-translation

(Maintained by Maarten van Gompel)

. pathadd machine-translation

Contains 3rd party software for Machine Translation:

  • Moses – Moses SMT Decoder & Framework
  • GIZA++ – Word alignment algorithms (IBM Models + HMM)
  • srilm - SRI Language Modelling Toolkit
  • Machine Translation Evaluation Scripts (BLEU, Meteor, NIST, PER, WER, TER) are available separately in /vol/customopt/machine-translation/mtevalscripts

3. machine-learning

(Maintained by Wessel Stoop, requested by Iris Hendrickx)

. pathadd machine-learning

Contains Machine Learning tools

LCS quirks

The admin gets a lot of questions about the apparent non-functioning of LCS. It does work, but needs a number of requirements satisfied. Please read this before you ask for help:

  • Java requires the option to present something visually (but does not use it). Make sure you have X-forwarding enabled, or run in headless mode (-Djava.awt.headless=true)
  • LCS only seems to work in your home directory; not on network disks.
  • LCS caches files. Remove the cache folder before each run.
  • What LCS calls 'data' is where your store your models, what LCS calls 'files' is where your store your data.
  • “Missing too many documents in index” can also refer to the fact that your models folder (called 'files' int he config file) or cache folder is not reachable by Winnow.
  • When the test file has an incorrect format, LCS strangely complains about the training file being a directory.
  • When you are using the incorrect version of Java (correct version is Java 6), LCS in some cases complains with the error 'comparisonmethod violates its general contract'.
  • The details of the results seem to be influenced by the names of the training files.

4. SyntaxNet

Because SyntaxNet has so many dependencies, it did not fit into an existing namespace. Instead, it is a separate virtualenv that you can access by running this command:

source /vol/customopt/syntaxnet/bin/activate

5. alpino

(obsoleted in favour of LaMachine )

6. nlptools

(Maintained by Maarten van Gompel & Wessel Stoop)

. pathadd nlptools

Contains various 3rd party software for Natural Language Processing

Stanford Ner:

# Use shortcut:
ner myfile.txt

# Or
cd /vol/customopt/nlptools/stanford-ner
java -mx600m -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz -textFile sample.txt

If you want to use Gurobi, please obtain your own Gurobi license by:

7. texteditors

Maintained by Wessel Stoop

. pathadd texteditors

8. mongodb

Maintained by Wessel Stoop, requested by Ali Huerriyetoglu

. pathadd mongodb
mkdir ~/mongodb
PORT=3573 # Choose a port above 1024
mongod --dbpath ~/mongodb --port $PORT

See for more options.

9. nodebox

Requested by Peter Berck

. pathadd nodebox

Python Library (Nodebox Linguistics Library)

  • linguistics library (import en)

10. r3

 . pathadd r3

R, software package for statistical computing. This updates the older, globally installed version (2.14.1) to R3.1.2, of January 2015.

11. python3

(Obsolete, abandoned)

12. python2-packages

(No longer maintained, we recommend you use Python 3 instead (with LaMachine if needed)). Set up your own Python2.7 virtualenv otherwise

14. python36

(Maintained by Wessel Stoop)

. pathadd python36

15. python3-packages

(No longer maintained, use LaMachine instead)

16. tensorflow

(Maintained by Wessel Stoop)

Note: Tensorflow is also included in LaMachine

. pathadd tensorflow

17. keras

(Maintainted by Wessel Stoop)

Note: Keras is also included in LaMachine

. pathadd keras

This namespace gives you access to the user friendly deep learning python package Keras. It is a high level wrapper about TensorFlow or Theano.


  • At the time of writing, Thunderlane is the only pony with a GPU, which will speed up Keras (and deep learning applications in your general) significantly.
  • TensorFlow is the default, and can be accessed by adding the TensorFlow namespace (nr 16 above :) ), but at the time of writing we cannot get it work with Keras. To switch to Theano, which is installed in the same namespace as Keras, simply edit ~/.keras/keras.json .
  • In case you want to change anything to our setup, it is recommended you start your own virtualenv somewhere, using /vol/customopt/keras/ as an example.
  • LaMachine also contains keras and theano.
wiki/ponyland/software.txt · Last modified: 2018/04/04 10:44 by Maarten van Gompel