MonaSearch is a powerful query tool for linguistic treebanks. Main features are:

MonaSearch is part of the project A2 of the Collaborative Research Center 441 “Linguistic Data Structures” at the University of Tübingen.

The current release is 0.4.

This program is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

The command line interface uses the Jakarta Commons CLI library, which is licensed under the Apache License, Version 2.0.

The parsing of formulas is done using ANTLR, which is licensed under the aBSD license.

On this page:
  1. Run
    1. MONA
    2. Stable release
    3. Development snapshots
    4. Other versions
    5. Installation instructions
  3. Documentation
  4. Source
  5. Bugs
  6. Developers


Thanks to Java Web Start, you can simply run MonaSearch by clicking the following link. This should work for the major platforms (Win, Linux, Mac); contact me if it doesn’t.

Launches MonaSearch

It will ask you to trust a certificate. This is necessary since MonaSearch needs access to the file system to store preprocessed tree banks and intermediate results. I brewed a home-made certificate with digital fingerprint 64:60:D0:63:92:1A:54:88:EF:E7:AE:2A:AF:24:08:54:1C:6A:AE:93. If this seems hokey to you, contact us and we’ll try to get a real certificate. Immediately after, MonaSearch will ask you to choose a directory where these temporary results can be stored. This will only happen at first launch.

Java Web Start will install a desktop shortcut to run MonaSearch directly without having to open your browser. Furthermore, it will insert it in the system menu, if your OS supports this.

Java Web Start also takes care of automatically updating the program if a newer version is available. This will require a restart of the program.

Note that it is still necessary to install MONA first.



MonaSearch uses MONA, an implementation of the Weak Second-order Theory of One or Two successors (WS1S/WS2S) by tree automata. If you do not want to compile the MONA package, you can get MONA binaries along with the libraries they depend on here:

Make sure MONA is on the path before continuing. (Windows users might want to read the README file under the above link.)

Stable release

For those that prefer it the old way or that cannot use Java Web Start, downloads are available:

It will only work with Java 6, which might be a big restriction if you’re on Mac.

Development snapshots

Trunk Experimental
64 bit Linux coming soon
32-bit Linux 32-bit Linux
Windows coming soon
coming soon Mac

Installation instructions

Make sure you have Java 6.

Install Mona by either using one of the installation packages above, or getting it from the Mona website. There is a README in the links above which would be interesting.

Unpack the MonaSearch archive in a directory of your choice.

Detailed platform-specific installation instructions can be found in the file INSTALL.←your-platform→. Also read the README file.


The online documentation describes the basic functionality. Comments very welcome!

An article discussing purpose, background, implementation and performance: MonaSearch – Querying Linguistic Treebanks with Monadic Second Order Logic is published in the proceedings of TLT’09. I also prepared a talk for that conference. It is focused at a large public. Those more technically inclined can also have a look at the slides of a talk about the implementation issues in German or in English.

Developers might be interested in the Javadoc for MonaSearch.


MonaSearch is hosted on LaunchPad you can obtain the source there.


Main developer
Hendrik Maryns
Other contributors