Clone wiki

slate-moses / Home


Slate is a cross-platform software package for statistical machine translation (SMT). It is maintained by Precision Translation Tools and contains major third-party components such as Moses and MGIZA++.

The repository you see here is for our version of Moses. It will remain as close as possible to upstream code, but will typically be based on an older revision. We also maintain a similar repository for our version of mgiza++.


Supported releases of Slate are currently available for GNU/Linux and Microsoft Windows operating systems. Download binary packages from our website.

Requirements on Windows

Slate will run on a wide range of Windows systems for 64-bit x86 CPUs (variously known as x86_64 or amd64).

You will need a few things that don't come as standard on Windows:

When prompted during Perl and Python installs, we recommend that you select the option to update the system path. Alternatively, after installation, manually update your system path environment variable to include the locations of the perl and python executables.

Requirements on Linux

The Linux package works "out of the box" on a standard Ubuntu 12.04 or newer systems. On minimal Red Hat-based systems you may need to install some additional packages:

yum install perl perl-TimeDate time

Other Linux systems will be tested as time permits and we welcome your feedback about your experiences. Slate is statically linked, so requires very little from the host system.


We created the Slate package to provide complete cross-platform support for phrase-based and factored phrase-based SMT features. Each of the supported programs in Slate can be used as a drop-in replacement for its upstream equivalent.

Included programs

Precision Translation Tools maintains the following programs for phrase-based and factored phrase-based SMT. They may also work with other SMT modes, such as hierarchical, and we would like to hear your experiences with these uses.

From MGIZA++:

  • mgiza
  • mkcls
  • snt2cooc

From Moses:

  • build_binary
  • consolidate
  • evaluator
  • extract
  • extractor
  • lexical-reordering-score
  • lmplz
  • mert
  • moses
  • processLexicalTable
  • processPhraseTable
  • query
  • score
  • symal
  • extract-parallel.perl
  • score-parallel.perl
  • train-model.perl

If you need any other programs that are missing here, please let us know. We may be able to add them to the Slate package free of charge.

Additional utilities

Slate for Windows includes a few common utilities which are required for the package to function. These are not maintained by Precision Translation Tools:

  • bzcat, pigz, and unpigz
  • sort
  • split
  • libiconv2.dll and libintl3.dll

Supported Features

Precision Translation Tools supports the following features. Feature not listed here are not supported. See the "Unsupported Features" section below.

  • PhraseDictionaryMemory
  • PhraseDictionaryBinary
  • LexicalReordering (memory)
  • LexicalReordering (binary)
  • KenLM (all modes)
  • max-kenlm-order=12
  • with-xmlrpc-c (support for -xml-input)
  • cmph support

Unsupported Features

Any programs or features which are included in the package but not listed here may still work, but Precision Translation Tools does not support them. This includes:

  • clean-corpus-n.perl
  • detokenizer.perl
  • lowercase.perl
  • tokenizer.perl

The Slate package does not include all of the programs found in the upstream repositories. If a utility is not included in the package, Precision Translation Tools does not support it.

For example, Slate does not include or support:

  • BerkeleyAligner
  • PhraseDictionaryOnDisk
  • PhraseDictionaryCompact
  • LexicalReordering (compact)
  • RandLM
  • hierarchical models
  • syntax models
  • suffix arrays
  • bilingual language models

This list will change as we update Slate with new supported features. Please contact us if a feature you need is missing.

Contact Information

    Precision Translation Tools Pte Ltd