Software on Ponyland¶
Various categories of software are available on ponyland. There are the globally installed packages, automatically available for everyone, there was an extensive LaMachine installation (now deprecated) with a lot more software which you explicitly need to activate, there is the possibility to run your own containers, and there is extra software for which you also 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¶
- SLURM
- parallel
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¶
Version control¶
Using some form version control for maintaining your code is highly recommended!
Container platform¶
We offer Apptainer (formerly known as Singularity) as a container platform. It can interoperate with OCI/Docker containers. Please see containers_on_ponyland.
Editors¶
- vi/vim
- emacs
- joe
- nano/pico (easiest for beginners, but very few features)
- Graphical Editors (Use xforwarding)
- gedit
- Sublime Text
text (namespace texteditors
)
Other¶
- latex/pdflatex/tex
- gnuplot
- pdf2txt
- graphviz (dot/circo/etc)
- antiword
LaMachine¶
(Previously maintained by Maarten van Gompel. now deprecated)
NOTE: LAMACHINE IS NOW DEPRECATED!!! - Depending on the particular software you are interested in, we direct you to use either Python virtual environments or Containers
LaMachine offered a large collection of NLP software, including all in-house software developed by the Language Machines research group. Most of the software by Antal van den Bosch, Maarten van Gompel, Ko van der Sloot, and others can be found here. See https://proycon.github.io/LaMachine for complete information.
As a lot of our software and development is Python based, LaMachine came with a sizeable collection of third party libraries, in addition to our own libraries.
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:
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:
- Timbl [http://ilk.uvt.nl/timbl] - Tilburg Memory Based Learner
- Ucto [http://ilk.uvt.nl/ucto] - Tokenizer
- Frog [http://ilk.uvt.nl/frog] - Frog is an integration of memory-based natural language processing (NLP) modules developed for Dutch.
- Mbt [http://ilk.uvt.nl/mbt] - Memory-based Tagger
- Wopr [http://ilk.uvt.nl/wopr] - Memory-based Word Predictor
- FoLiA-tools [http://proycon.github.io/folia] - Command line tools for working with the FoLiA format
- PyNLPl [https://pypi.python.org/pypi/PyNLPl] - Python Natural Language Processing Library (Python 2 & 3)
- Colibri Core [http://proycon.github.io/colibri-core/] - Colibri core is an NLP tool as well as a C++ and Python library for working with basic linguistic constructions such as n-grams and skipgrams (i.e patterns with one or more gaps, either of fixed or dynamic size) in a quick and memory-efficient way. At the core is the tool colibri-patternmodeller which allows you to build, view, manipulate and query pattern models.
- C++ libraries - ticcutils [http://ilk.uvt.nl/ticcutils], libfolia [http://proycon.github.io/folia]
- FoLiA-Stats
- Python 3 bindings - python-ucto [https://github.com/proycon/python-ucto], python-frog [https://github.com/proycon/python-frog], python-timbl [https://github.com/proycon/python-timbl]
Third-party Python libraries:
- Numpy
- Scipy
- Matplotlib
- Seaborn
- Pandas
- Scikit Learn
- PyCrypto
- PyCurl
- Django
- Cython
- CherryPy
- IPython
- NLTK
- Textblob
- Keras
- Theano
- Tensorflow
NOTE: The default LaMachine environment contained the latest stable
releases of our own and third-party but is now deprecated and no longer
maintained. Versions may be behind! 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:
For the development LaMachine, you can trigger an update yourself by
running trigger-update.sh
on applejack (mlp01).
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
:
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:
1. kaldi¶
(Maintained by Maarten van Gompel)
. pathadd kaldi
All this does is set $KALDI_ROOT
to /vol/customopt/kaldi
, where
kaldi is installed globally for all to use (read-only).
2. machine-learning¶
(Maintained by admin, requested by Iris Hendrickx)
. pathadd machine-learning
Contains Machine Learning tools
- Glove
- LCS
- Maxent
- Paramsearch
- SVM
- svm_classify
- svm_learn
- Treekernels:
- svm_classify_tk
- svm_learn_tk
- SVMTool v 1.3.2
- Conditional random
fields
- crf_learn
- crf_test
- Mallet 2.07:
- mallet
- Ripper
- Weka 3.6.8
- weka (Use X-forwarding)
- Word2Vec
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.
3. 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
4. alpino¶
(obsolete, use a container instead)
5. nlptools¶
(Maintained by Maarten van Gompel & admin)
. pathadd nlptools
Contains various 3rd party software for Natural Language Processing
- opennlp (java)
- Stanford Core NLP (java)
- Stanford NER (Named Entity Recognizer)
- Python binding for Stanford Core NLP
- FreeLing
- tdp (
tdparse
,tdptrain
) - Treetagger
- Ngram Statistics Package
- Gurobi
Stanford Ner:
# Use shortcut:
ner myfile.txt
# Or
cd /vol/customopt/nlptools/stanford-ner
java -mx600m edu.stanford.nlp.ie.crf.CRFClassifier -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:
- Requesting one here: http://user.gurobi.com/download/licenses/free-academic
grbgetkey <YOUR_LICENSE_KEY>
- Save it to your homedir, and you should be ready to go!
6. texteditors¶
Maintained by admin
. pathadd texteditors
7. mongodb¶
Maintained by admin, requested by Ali Huerriyetoglu
. pathadd mongodb
mkdir ~/mongodb
PORT=3573 # Choose a port above 1024
mongod --dbpath ~/mongodb --port $PORT
See http://docs.mongodb.org/manual/reference/program/mongod/#bin.mongod for more options.
8. nodebox¶
Requested by Peter Berck
. pathadd nodebox
Python Library (Nodebox Linguistics Library)
- linguistics library (
import en
)
9. r4¶
. pathadd r412
R, software package for statistical computing. This updates the older, globally installed version (3.2) to R4.1.2, of November 2021.
10. python3¶
// (Obsolete, abandoned) //
11. python2-packages¶
//(No longer maintained, we recommend you use Python 3 instead (with LaMachine if needed)). Set up your own Python2.7 virtualenv otherwise //
12. python36¶
(Maintained by admin)
. pathadd python36
13. python38¶
(Maintained by admin)
. pathadd python38
14. redis¶
Requested by Emmanuel Chamilakis
https://redis.io version 5.0.7
Installation guide that was followed: https://techmonger.github.io/40/redis-without-root
. pathadd redis
PORT=7777 # Choose a port above 1024
MYREDISCONF=~/myredis.conf # Copy and change /vol/customopt/redis507/redis.conf
redis-server $MYREDISCONF --port $PORT
15. NodeJS¶
(Maintained by admin)
. pathadd nodejs
Current version: v18.18.2