# Grammatical Framework

## Version 2.2

May 17, 2005.

## News

June 3, 2005. Started a page on history of changes. These changes will appear soon in releases.

May 17, 2005. Version 2.2 released. See highlights. Download from SourceForge.

May 12, 2005. GF now has a mailing list, to which you can register here. GF also has a project page on SourceForge, https://sourceforge.net/projects/gf-tools, but this page does not yet have much content.

May 9, 2005. PhD Thesis by Kristofer Johannisson: Formal and Informal Software Specifications.

March 15, 2005. Master's thesis by Björn Bringert on Embedded grammars: GF grammars that can be used as parts of Java programs. And a demo film of a multimodal dialogue system built with embedded grammars.

November 9, 2004. PhD Thesis by Peter Ljunglöf: Expressivity and Complexity of the Grammatical Framework.

November 8, 2004. GF 2.1 released. Here are the highlights. Software available on the GF 2.1 Download Page. Main novelties in 2.1: multiple inheritance of grammar modules, speech recognition grammar generation, lots of bug fixes. Version 2.0 still available on the GF 2.0 Download Page. If you need something from the previous version of the web page, it is still available: GF 1.2.

## What is GF?

The Grammatical Framework (=GF) is a grammar formalism based on type theory. It consists of

- a special-purpose programming language
- a compiler of the language
- a generic grammar processor

The compiler reads GF grammars from user-provided files, and the generic grammar processor performs various tasks with the grammars:

- generation
- parsing
- translation
- type checking
- computation
- paraphrasing
- random and exhaustive generation
- syntax editing

GF particularly addresses two aspects of grammars:

- multilinguality (parallel grammars for different languages)
- semantics (semantic conditions of well-formedness, semantic properties of expressions)

GF Version 2.0 adds the aspect of

- modularity and grammar engineering.

GF is open-source software licensed under GNU General Public License (GPL).

## Examples and demos

Numeral translator: recognizes and generates numbers from 1 to 999,999 in 80 languages. (The link goes to a live applet, which requires Java 1.5 plugin. Here is an example, which does not require the plugin.)

Letter editor: write simple letters in English, Finnish, French, Swedish, and Russian with a few mouse clicks.

Demo film of a multimodal dialogue system built with embedded grammars.

Resource grammar library: basic structures of ten languages (Danish, English, Finnish, French, German, Italian, Norwegian, Russian, Spanish, Swedish). Resource grammars can be used as libraries for writing GF applications, but they can also be useful for language training.

## Executable programs

GF is available for several platforms: Linux, Mac OS X, Microsoft Windows, and Sun OS. To get GF, go to the Download Page (at SourceForge).

## Quick start

When you have downloaded and installed GF, you can try one of the quick start examples.

## Source code

The main part of GF is written in Haskell.

The platform-independent graphical user interface is written in Java.

The Download Page (at SourceForge) gives links to source and binary packages, as well as information on compiler requirements.

For Java programmers: GF grammars can be embedded in Java programs by using the Embedded GF Interpreter.

## Documents

- New Grammarian's Tutorial, based on the module system (unfinished). More up-to-date but ess detailed than the next one.
- Old Grammarian's Tutorial on writing GF grammars, with exercises.
- Editor User Manual on editing in the Java interface.
- GF in 25 Minutes - overview for programmer audience.
- Grammatical Framework: A Type-Theoretical Grammar Formalism (ps.gz). Theoretical paper on GF by A. Ranta, appeared in The Journal of Functional Programming, vol. 14:2. 2004, pp. 145-189. Also serves as language document.
- Module system document, complements the previous paper by a description of the module system.
- User Manual explaining the GF user interfaces and command language (slightly outdated).
- Language specification of the GF grammar formalism.
- Resource grammar library documentation.
- Highlights of Version 2.1 and 2.0 (in comparison with version 1.2).
- Slides on GF theory and implementation given at INRIA Rocquencourt in December 2003.
- Slides on multilingual grammar engineering and some examples of using the modules system of GF 2.0.
- PhD Thesis by Peter Ljunglöf: Expressivity and Complexity of the Grammatical Framework. Language-theoretical study of GF and its parsing problem.
- Bibliography: publications on GF, as well as background literature.

## Projects and events

- TALK = Tools for Ambient Linguistic Knowledge. GF is used in implementing multimodal and multilingual dialogue systems.
- KeY project on Integrated Deductive Software Design. GF is used for authoring informal and formal specifications. More details on the GF application here.
- WebALT, Web Advanced Learning Technologies. GF is used as for generating multilingual teaching material.
- Project Efficient at Tudor Institute, Luxembourg, "atelier de prototypage de transactions d'e-commerce". GF is used as an authoring tool for business models.
- An introductory course on GF was given at the ESSLLI summer school in Vienna 2003.

  ## Miscellaneous

- Gramlets: GF grammars compiled to Java applets.
- GFCC: report on a compiler from a fragment of C to JVM, written in GF. The compiler source code can be found in the directory `examples/gfcc` in the GF grammar library (see GF download page).
- An early version of the GF Home Page last updated for GF, Version 1.2, 2003.
- The original GF Xerox Home Page with the oldest releases of and documents on GF, up to Version 0.54, 1999, does not seem to exist any more.
- Earlier application: Natural-Language Interface to the proof editor Alfa.
- The BNF Converter. A GF spin-off customized for the description of programming languages.
- The Functional Morphology project. Creating infrastructure for GF and other linguistic applications.

## Authors

The Languge Technology Group. More details on the Authors and Acknowledgements page.

## Implementation project

Want to become a GF developer? Contact Aarne Ranta. Or just get the sources and start hacking.

Last modified by Aarne Ranta, May 17, 2005.