Reification (linguistics)

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

Reification in natural language processing refers to where a natural language statement is transformed so actions and events in it become quantifiable variables. For example "John chased the duck furiously" can be transformed into something like

(Exists e)(chasing(e) & past_tense(e) & actor(e,John) & furiously(e) & patient(e,duck)).

Another example would be "Sally said John is mean", which could be expressed as something like

(Exists u,v)(saying(u) & past_tense(u) & actor(u,Sally) & that(u,v) & is(v) & actor(v,John) & mean(v)).

Such representations allow one to use the tools of classical first-order predicate calculus even for statements which, due to their use of tense, modality, adverbial constructions, propositional arguments (e.g. "Sally said that X"), etc., would have seemed intractable. This is an advantage because predicate calculus is better understood and simpler than the more complex alternatives (higher-order logics, modal logics, temporal logics, etc.), and there exist better automated tools (e.g. automated theorem provers and model checkers) for manipulating it.

Reified forms can be used for other purposes besides the application of first-order logic; one example is the automatic discovery of synonymous phrases.[1][2]

The reified forms are sometimes called quasi-logical forms, and the existential variables are sometimes treated as Skolem constants.[2]

Not all natural language constructs admit a uniform translation to first order logic. See donkey sentence for examples and a discussion.

See also[edit]


  1. ^ Dekang Lin and Patrick Pantel, "DIRT – Discovery of Inference Rules from Text", (2001) KDD01-Proceedings of the seventh ACM SIGKDD international conference on Knowledge discovery and data mining
  2. ^ a b Hoifung Poon and Pedro Domingos "Unsupervised Semantic Parsing" (2009) EMNLP09: Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing