The TRALE Homepage

This page contains descriptions of TRALE, a freeware system for parsing, logic programming and constraint
resolution with typed feature structures. This includes information on obtaining the system, user's guide, and grammars.



TRALE grew out of module B4 of the SFB 340 at the Eberhard-Karls University of Tübingen, and was further developed as part of module A4 of the MiLCA project at the Department of Computer Science, University of Toronto by Gerald Penn.

Other people involved in the development of the system have been:

Johannes Dellert, Kilian Evang, Rouzbeh Farahmand, Dale Gerdemann, Mohammad Haji-Abdolhosseini, Ken Hoetmer, Martin Lazarov, Detmar Meurers, Stefan Müller, Frank Richter, and Niko Schenk.

Back to top


TRALE, a freeware system written in Prolog by Gerald Penn, is an extension to ALE, which integrates phrase structure parsing, semantic head-driven generation and constraint logic programming with typed feature structures as terms. Unlike every other software package for computing with typed feature structures, TRALE offers the same interpretation of typing that is customarily assumed in Head-Driven Phrase Structure Grammar (HPSG). It also provides several more intuitive ways of using an inclusional type system that avoids proliferating the number of types required.


Graphical User Interface

  • TRALE has a very sophisticated and clean graphical user interface, GraleJ, that can submit queries to and display results from a remote TRALE grammar server, as well as a graphical source-level debugger, called Kahina.

Constraint Language for Lexical Resource Semantics

  • TRALE includes a constraint language for building underspecified semantic representations, that supports higher-order semantic typing. Terms resolved from CL-LRS descriptions can appear as feature values in feature structures, but feature structures and feature logic play no role in the constraint language or the semantic terms that it denotes. The result is a much more readable, more intuitive means of expressing semantic representations.


  • Following conventional practice in logic programming, TRALE allows grammars to suspend the execution of a thread until certain structural conditions on its feature structures are met.

Complex Antecedent Constraints

  • TRALE grammatical principles, following conventional linguistic practice, can have antecedents that look like complex feature structure descriptions. This eliminates the need for defining a type just to use it as an antecedent.

Logical Variable Macros

  • In addition to supporting the ALE macro language, TRALE introduces a new type of macro in which variables are interpreted as variables in the underlying description logic. These logical variables, when used more than once in a macro predicate automatically imply structure-sharing.

Subtype Covering

  • TRALE offers the option of assuming that the set of objects of every type is exhaustively covered by the sets of objects of its subtypes, i.e., that every object of a non-maximal type, t, must belong to one of the maximal types subsumed by t. This accords with some HPSG accounts of subtyping.

Type Declaration files

  • TRALE offers the option of defining all types in a white-space indented file that is separate from the rest of the grammar.

These differences are discussed in more detail in TRALE User's Guide downloadable from this site. More information on the fundamentals of the system can be found on ALE Homepage.

Back to top


Complete documentation for both ALE and TRALE  is available.

Back to top

System Requirements

TRALE requires SICStus Prolog 3.12.11, although ports to SICStus Prolog 4 and SWI Prolog are under way.

The TRALE source-level debugger requires SICStus Prolog 3.12.11. Its graphical front-ends, GraleJ and Kahina, require Java 7 or higher, and its XEmacs interface requires XEmacs 20.3 or higher.

Back to top

Obtaining TRALE

TRALE and its documentation are available on the GNU Lesser General Public License. The components of the TRALE system are available from an SVN repository at the University of Toronto:

The contents of the directory are as follows:


TRALE repository
The SVN source code repository for TRALE


TRALE documentation
User's guides, reference manuals and annotated code


CoreGram Project
A multilingual grammar project at Humboldt University, Berlin.
A Head-driven Phrase Structure Grammar written for ALE in 1993 by Gerald Penn, based closely upon the book of Pollard & Sag, 1994. Still supported!
English Resource Grammar
A port of the English Resource Grammar to ALE from 1999. The ERG was developed at the Linguistic Grammars Online (LinGO) Lab at the Center for the Study of Language and Information (CSLI), Stanford University.
LRS Grammar
A small illustration of Lexical Resource Semantics (see volume 5 in the Collegium Logicum series), a constraint-based, underspecified semantic representation framework, based upon the higher-order logic, Ty2. By selecting a very standard lingua franca for natural language semantics as the intended endpoint of its constraint system, LRS manages to avoid the theoretical and ontological arbitrariness of some other underspecified approaches to semantics in HPSG. CL-LRS was explicitly designed with LRS in mind.
MiLCA Grammars
The TRALE grammars for the course Medienintensive Lehrmodule in der Computerlinguistik-Ausbildung ("media-intensive teaching modules in computational linguistics training").

Back to top

TRALE Grammars

The CoreGram grammars use much of the advanced funcionality of the TRALE system. We highly recommend referring to these grammars as examples. There are currently five languages available: German, Danish, Persian, Maltese and Mandarin Chinese.

Back to top

Mailing List and Feedback

Please send all bug reports to ...

If you'd like to be put on the TRALE mailing list and be informed of updates, new grammars, and so on, send e-mail to Gerald Penn at

If you would like to post to the TRALE Mailing list, it can be found at:


Please let us know if you have any comments, suggestions, or questions. We'd be especially interested to hear about what you are doing with TRALE.

Back to top


This page last updated by Gerald Penn.

August 2018