This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (November 2018) (Learn how and when to remove this template message)

Combinatory categorial grammar (CCG) is an efficiently parsable, yet linguistically expressive grammar formalism. It has a transparent interface between surface syntax and underlying semantic representation, including predicate–argument structure, quantification and information structure. The formalism generates constituency-based structures (as opposed to dependency-based ones) and is therefore a type of phrase structure grammar (as opposed to a dependency grammar).

CCG relies on combinatory logic, which has the same expressive power as the lambda calculus, but builds its expressions differently. The first linguistic and psycholinguistic arguments for basing the grammar on combinators were put forth by Steedman and Szabolcsi.

More recent prominent proponents of the approach are Pauline Jacobson and Jason Baldridge. In these new approaches, the combinator B (the compositor) is useful in creating long-distance dependencies, as in "Who do you think Mary is talking about?" and the combinator W (the duplicator) is useful as the lexical interpretation of reflexive pronouns, as in "Mary talks about herself". Together with I (the identity mapping) and C (the permutator) these form a set of primitive, non-interdefinable combinators. Jacobson interprets personal pronouns as the combinator I, and their binding is aided by a complex combinator Z, as in "Mary lost her way". Z is definable using W and B.

## Parts of the formalism

The CCG formalism defines a number of combinators (application, composition, and type-raising being the most common). These operate on syntactically-typed lexical items, by means of Natural deduction style proofs. The goal of the proof is to find some way of applying the combinators to a sequence of lexical items until no lexical item is unused in the proof. The resulting type after the proof is complete is the type of the whole expression. Thus, proving that some sequence of words is a sentence of some language amounts to proving that the words reduce to the type S.

### Syntactic types

The syntactic type of a lexical item can be either a primitive type, such as S, N, or NP, or complex, such as S\NP, or NP/N.

The complex types, schematizable as X/Y and X\Y, denote functor types that take an argument of type Y and return an object of type X. A forward slash denotes that the argument should appear to the right, while a backslash denotes that the argument should appear on the left. Any type can stand in for the X and Y here, making syntactic types in CCG a recursive type system.

### Application combinators

The application combinators, often denoted by > for forward application and < for backward application, apply a lexical item with a functor type to an argument with an appropriate type. The definition of application is given as:

${\displaystyle {\dfrac {\alpha :X/Y\qquad \beta :Y}{\alpha \beta :X))>}$
${\displaystyle {\dfrac {\beta :Y\qquad \alpha :X\backslash Y}{\beta \alpha :X))<}$

### Composition combinators

The composition combinators, often denoted by ${\displaystyle B_{>))$ for forward composition and ${\displaystyle B_{<))$ for backward composition, are similar to function composition from mathematics, and can be defined as follows:

${\displaystyle {\dfrac {\alpha :X/Y\qquad \beta :Y/Z}{\alpha \beta :X/Z))B_{>))$
${\displaystyle {\dfrac {\beta :Y\backslash Z\qquad \alpha :X\backslash Y}{\beta \alpha :X\backslash Z))B_{<))$

### Type-raising combinators

The type-raising combinators, often denoted as ${\displaystyle T_{>))$ for forward type-raising and ${\displaystyle T_{<))$ for backward type-raising, take argument types (usually primitive types) to functor types, which take as their argument the functors that, before type-raising, would have taken them as arguments.

${\displaystyle {\dfrac {\alpha :X}{\alpha :T/(T\backslash X)))T_{>))$
${\displaystyle {\dfrac {\alpha :X}{\alpha :T\backslash (T/X)))T_{<))$

## Example

The sentence "the dog bit John" has a number of different possible proofs. Below are a few of them. The variety of proofs demonstrates the fact that in CCG, sentences don't have a single structure, as in other models of grammar.

Let the types of these lexical items be

${\displaystyle {\text{the)):NP/N\qquad {\text{dog)):N\qquad {\text{John)):NP\qquad {\text{bit)):(S\backslash NP)/NP}$

We can perform the simplest proof (changing notation slightly for brevity) as:

${\displaystyle {\dfrac ((\dfrac ((\dfrac {\text{the)){NP/N))\qquad {\dfrac {\text{dog)){N))}{NP))>\qquad {\dfrac ((\dfrac {\text{bit)){(S\backslash NP)/NP))\qquad {\dfrac {\text{John)){NP))}{S\backslash NP))>}{S))<}$

Opting to type-raise and compose some, we could get a fully incremental, left-to-right proof. The ability to construct such a proof is an argument for the psycholinguistic plausibility of CCG, because listeners do in fact construct partial interpretations (syntactic and semantic) of utterances before they have been completed.

${\displaystyle {\dfrac ((\dfrac ((\dfrac ((\dfrac ((\dfrac {\text{the)){NP/N)){\dfrac {\text{dog)){N))\qquad }{NP))>}{S/(S\backslash NP)))T_{>}\qquad {\dfrac {\text{bit)){(S\backslash NP)/NP))}{S/NP))B_{>}\qquad {\dfrac {\text{John)){NP))}{S))>}$

## Formal properties

This section needs expansion. You can help by adding to it. (June 2008)

CCGs are known to be able to generate the language ${\displaystyle {a^{n}b^{n}c^{n}d^{n}:n\geq 0))$ (which is a non-context-free indexed language). A grammar for this language can be found in Vijay-Shanker and Weir (1994).[1]

Vijay-Shanker and Weir (1994)[1] demonstrates that Linear Indexed Grammars, Combinatory Categorial Grammars, Tree-adjoining Grammars, and Head Grammars are weakly equivalent formalisms, in that they all define the same string languages. Kuhlmann et al. (2015)[2] show that this equivalence, and the ability of CCG to describe ${\displaystyle {a^{n}b^{n}c^{n}d^{n))}$, rely crucially on the ability to restrict the use of the combinatory rules to certain categories, in ways not explained above.