Fluid construction grammar

Fluid construction grammar (FCG) is an open-source computational construction grammar formalism that allows computational linguists to formally write down the inventory of lexical and grammatical constructions as well as to do experiments in language learning and language evolution. FCG is an open instrument that can be used by construction grammarians who want to formulate their intuitions and data in a precise way and who want to test the implications of their grammar designs for language parsing, production and learning. The formalism can be tested through an interactive web interface at the FCG website.

FCG integrates many notions from contemporary computational linguistics such as feature structure and unification-based language processing, but uses them in a novel way to operationalize insights from construction grammar theory. Constructions are considered bi-directional and hence usable both for parsing and production. Processing is flexible in the sense that FCG provides meta-layer processing for coping with novelty, partially ungrammatical or incomplete sentences. FCG is called 'fluid' because it acknowledges the premise that language users constantly change and update their grammars. The research on FCG is primarily carried out by Luc Steels and his teams at the VUB AI Lab in Brussels and the Language Evolution Lab in Barcelona, and the Sony Computer Science Laboratories in Paris. Besides Steels, current and former contributors to the FCG formalism include Katrien Beuls, Paul Van Eecke, Remi van Trijp, Joris Bleys, Joachim De Beule, Martin Loetzsch, Nicolas Neubauer, Michael Spranger, Wouter Van den Broeck, Pieter Wellens, and others.

Transient structure
FCG treats parsing and production as a search problem, in which the FCG engine searches for the best utterance to verbalize a meaning (language production) or the best semantic network (or meaning representation) to analyze an utterance (parsing). Each state representation in the search process is called a Transient Structure. A Transient Structure can be considered as an extended feature structure, as it consists of a (flat) list of "units" that consist of a unit-name (a unique constant symbol) and a unit-body (a set of feature-value pairs). Older versions of FCG (before 2011) used to split the transient structure into two separate poles for semantics and syntax, but the current version implements a single representation for all linguistic information.

Constructions
FCG constructions (or technically speaking: construction schemas) are treated as the operators of the search process. That is, by applying a construction to a transient structure, a new transient structure (or state representation) in the search space may be created. Just like transient structures, constructions mostly consists of units of feature-value pairs. Constructions are however more structured because they contain two distinct parts:
 * A conditional part: This part of the construction specifies the conditions under which the construction may apply. Moreover, units of features that appear in the conditional part are split into a "comprehension lock" and a "formulation lock". This split is important for ensuring the bidirectional application of an FCG construction (see below).
 * A Contributing part: This part of the construction specifies information that the construction may add to the transient structure if the conditions for application are satisfied.

Linguistic processing
To decide whether a construction can apply, the conditional part is "matched" against the current transient structure using a unification-based algorithm. In production, only features that are part of the formulation locks of the construction must be matched against the transient structure; whereas in parsing, only features that are part of the comprehension locks will be considered. If a match is successful, the FCG engine will "merge" all of the units of feature-value pairs with the transient structure in a similar unification-based process.

Flexibility
FCG features a meta-layers of diagnostics, repairs and consolidation strategies that allow the grammar designer to implement ways to handle novelty, errors and unexpected input during processing. These diagnostics and repairs can also be used for exploring the (automated) acquisition of new constructions.