GF - Grammatical Framework

GF is a functional framework for writing grammars and working with them. Grammars for both formal and natural languages can be written in GF. The emphasis, however, has been on natural languages, for which no similar tools exist.

The intended application area of GF are fragments of natural languages for limited domains. A GF grammar not only defines syntactic well-formedness ("grammaticality"), but also a semantic control of content, by using the technique of dependent types. Moreover, GF supports multilinguality: for a given domain, there can be a set of parallel grammars that differ a lot in their concrete syntax, but have a an abstract GF structure in common.

GF builds upon two traditions: logic and linguistics. From the linguistic point of view, GF is a grammar formalism: it permits a declarative description of languages, and provides generic parsing and generation algorithms. From the logical point of view, GF is a logical framework (whence its name): it provides a generic type-checking algorithm and an interactive type-driven syntax editor.

Abstract GF representations can be used as XML (EXtensible Markup Language) objects: from any given GF grammar, it is possible to generate a DTD (Document Type Declaration). From well-formed syntax trees in the grammar, one can generate XML-objects that are valid w.r.t. the DTD.

In the "real world", GF has had two experimental applications: in the Multilingual Theory and Technology group of XRCE (Xerox Research Centre Europe), and in the HiBase project of NET/HUT (Nokia Networks and Helsinki University of Technology). At XRCE, GF is applied in the prototyping of multilingual documentation systems. Small GF grammars have been written for several languages: English, Finnish, French, German, Italian, and Swedish. At NET/HUT, GF is used in the design of a persistent industrial functional programming language, for which it provides a concrete syntax and a type-checker at the same time.