I am currently involved in the development of a metagrammar compiler called XMG-2.
Designing and maintaining large scaled grammars for natural language is a complex task which needs a huge amount of work and time.XMG provides a way for the linguists to generate those grammars from an abstract description, using elementary fragments and combining them.
It includes a dimension system which allows to make different contributions to different levels of linguistic description. For example, syntactic descriptions are accumulated in the syntactic dimension and semantics in the semantic one.XMG-2 project began for two principle reasons.
The first is technological : XMG is implemented in Oz/Mozart, which is not longer maintained, and not compatible with 64 bits systems.
The second motivation is to achieve the initial goals of the compiler. These goals are to handle multi-formalism and multi-dimensionality.

The implementation was done in two steps:

  • we re-implemented XMG using Yet Another Prolog and C++ library bindings. This version is stable, you can get some information about installing and using this tool in these pages: Installing XMG-1.5 and Running XMG-1.5.
  • we proposed a modular approach to extend existing compilers, or adapt them to create new development frameworks. You can check it out here: XMG-2.