Alto is a tool for parsing, translation, and training using Interpreted Regular Tree Grammars (IRTGs). It supports (synchronous) grammars for strings, trees, and graphs out of the box, and provides a variety of algorithms for these. You download Alto from its Bitbucket project page.


Tulipac is a preprocessor that compiles tree-adjoining grammars into the input format of the TuLiPA parser from a human-readable format. I wrote it in 2013 for teaching purposes. You can get it from its Bitbucket project page.

CRISP generator

Since 2006 I have been working on a system for sentence generation called CRISP. It translates a SPUD-style generation problem into a planning problem and then runs a planner to do the actual generation. The generation system is implemented, and you can download the source code. It comes with a builtin planner (which is a version of Graphplan), but you can also use any other planning system that understands PDDL.


In the context of the CHORUS project, we have developed utool, the Swiss Army Knife of Underspecification. Utool solves underspecified descriptions in various formalisms, using the fastest currently (2005) known underspecification solver. It will also convert between different formalisms for scope underspecification, solve underspecified descriptions efficiently, and perform some utility tasks such as a net test. It is implemented in Java. [more]

Talking Lego Robots

In 2002 and 2004, Geert-Jan Kruijff and I supervised student teams who built talking robots from Lego Mindstorms. These were robots built from ordinary Lego bricks which were connected to a dialogue system and speech recognition and synthesis software on a PC. They worked really well, and were covered by various newspapers and on radio and TV. [more]


FrOz is an engine for text adventure games that is based on technologies from computational linguistics and theorem proving. It runs a dependency parser to analyse the player's input, a TAG generation system to compute output to be shown to the player, and the Racer description logic system to keep track of the world. It is implemented in Oz.