Generalized context-free grammar

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Generalized context-free grammar (GCFG) is a grammar formalism that expands on context-free grammars by adding potentially non-context-free composition functions to rewrite rules.[1] Head grammar (and its weak equivalents) is an instance of such a GCFG which is known to be especially adept at handling a wide variety of non-CF properties of natural language.

Description

[edit | edit source]

A GCFG consists of two components: a set of composition functions that combine string tuples, and a set of rewrite rules. The composition functions all have the form f(x1,...,xm,y1,...,yn,...)=γ, where γ is either a single string tuple, or some use of a (potentially different) composition function which reduces to a string tuple. Rewrite rules look like Xf(Y,Z,...), where Y, Z, ... are string tuples or non-terminal symbols.

The rewrite semantics of GCFGs is fairly straightforward. An occurrence of a non-terminal symbol is rewritten using rewrite rules as in a context-free grammar, eventually yielding just compositions (composition functions applied to string tuples or other compositions). The composition functions are then applied, successively reducing the tuples to a single tuple.

Example

[edit | edit source]

A simple translation of a context-free grammar into a GCFG can be performed in the following fashion. Given the grammar in (1), which generates the palindrome language {wwR:w{a,b}*}, where wR is the string reverse of w, we can define the composition function conc as in (2a) and the rewrite rules as in (2b).

The CF production of abbbba is

S
aSa
abSba
abbSbba
abbbba

and the corresponding GCFG production is

Sconc(a,S,a)
conc(a,conc(b,S,b),a)
conc(a,conc(b,conc(b,S,b),b),a)
conc(a,conc(b,conc(b,conc(ϵ,ϵ,ϵ),b),b),a)
conc(a,conc(b,conc(b,ϵ,b),b),a)
conc(a,conc(b,bb,b),a)
conc(a,bbbb,a)
abbbba

Linear Context-free Rewriting Systems (LCFRSs)

[edit | edit source]

Weir (1988)[1] describes two properties of composition functions, linearity and regularity. A function defined as f(x1,...,xn)=... is linear if and only if each variable appears at most once on either side of the =, making f(x)=g(x,y) linear but not f(x)=g(x,x). A function defined as f(x1,...,xn)=... is regular if the left hand side and right hand side have exactly the same variables, making f(x,y)=g(y,x) regular but not f(x)=g(x,y) or f(x,y)=g(x).

A grammar in which all composition functions are both linear and regular is called a Linear Context-free Rewriting System (LCFRS). LCFRS is a proper subclass of the GCFGs, i.e. it has strictly less computational power than the GCFGs as a whole.

On the other hand, LCFRSs are strictly more expressive than linear-indexed grammars and their weakly equivalent variant tree adjoining grammars (TAGs).[2] Head grammar is another example of an LCFRS that is strictly less powerful than the class of LCFRSs as a whole.

LCFRS are weakly equivalent to (set-local) multicomponent TAGs (MCTAGs) and also with multiple context-free grammar (MCFGs [1]).[3] and minimalist grammars (MGs). The languages generated by LCFRS (and their weakly equivalents) can be parsed in polynomial time.[4]

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).