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.