A Grammar Development Environment for Natural Languages

Malaga is a software package for the development and application of grammars that are used for the analysis of words and sentences of natural languages. It contains a programming language for the modelling of morphology and syntax grammars.

Grammar Formalism

Malaga's grammar formalism is based on non-deterministic finite automatons. The analysis states are augmented by arbitrary complex feature structures that may consist of symbols, strings, lists and attribute value matrices thereof. The transition to a successor state is associated with the consumption of an allomorph in the input. A rule checks the category of the current state and the category of the allomorph (which is looked up in a runtime lexicon) and constructs the category of the successor state.

This grammar formalism is called Left-Associative Grammar (LAG), and has been invented by Roland Hausser, former professor for Computational Linguistics at Erlangen University.

Malaga Screenshot

You want to know what a Malaga development screen looks like? This screenshot has been taken on Linux running KDE.

System Requirements

Malaga will probably run on your computer if it is running Unix or a Unix-like operating system. It is known to work on Debian GNU/Linux 3.0 and later, and Mac OS X. You'll need an ISO90-compliant C compiler and GLib, version 2.0 or later.

Malaga works with UTF-8 as its only character set. To work with Malaga, your OS must support UTF-8.

Using the Editor Emacs as your Development Environment

Malaga comes with an Emacs Lisp file that defines Emacs modes to edit Malaga grammars and for interactive work with Malaga. If you use Emacs for your every-day work, you'll enjoy these modes because they make working and debugging with Malaga easier.

Displaying Analysis Results, Variables and Trees

Malaga comes with the program "malshow", which is a GUI that shows the variables and results of the analysis process. It offers a much clearer display of complex feature structures than the terminal output. "malshow" can also display the analysis tree, which presents the overall progress and the ambiguities in the analysis process. The program "malshow" uses the GUI toolkit GTK+, version 2.8 or later.

Example Grammars

The Malaga package includes a German toy syntax as well as a simple morphological parser for English number words and some grammars for formal languages.


Changes in the latest versions of Malaga

Please refer to the version documentation.

Malaga's License

Malaga is distributed under the GNU General Public License. This means that you can freely use and copy Malaga, as long as you obey the license conditions. These conditions shall essentially provide that Malaga remains free software.


Language bindings for Malaga

Michael Piotrowski has developed a Perl interface, a Python interface and a Ruby interface for Malaga.

The Developers of Malaga

Financial Support


Björn Beutel, the initial programmer of Malaga, has abandoned development of Malaga due to lack of time. If you like to take over Malaga's development, feel free to do so. If you want to contact Björn Beutel, please write to bjö (Replace "ö" by "oe").

Last modified on July 20th, 2013