next up previous
Next: Formal grammars Up: 13.11.2001: Grammatik: prozedurale Aspekte Previous: Declarative and procedural aspects

Declarative and procedural descriptions

From a traditional linguistic point of view, declarative descriptions of language are descriptions of the structures of language. In traditional terms, these are accounts of the paradigmatic and syntagmatic and realisational relations into which the units of language (texts, sentences, words, morphemes, phonemes, ...) enter.

From this linguistic point of view, procedural descriptions of language are descriptions of the procedures which define processes of analysis and generation of these structures from basic units.

From a formal, computational point of view, a declarative description is a description, e.g. a grammar, formalised in terms of an algebra such as formal language theory or automaton theory, propositional and predicate logic, or some other calculus.

From this formal point of view, the procedural element of a description consists of the rules of inference, by means of which more complex structures may be derived from simpler units, or simpler units can be composed into complex structures.

Since all theoretically interesting descriptions require both structures and rules of inference, it does not make too much sense to speak of "purely declarative" and "purely procedural" approaches. A maximally declarative or minimally procedural approach could be based on a logic with only one rule of inference, for example - typically modus ponens. On the same lines, a procedural approach may contain many more rules of inference. This distinction will be illustrated further below.

In computational linguistics, a theory of language consists primarily of a declarative component, in which structures are described by formal languages of various kinds, for which models are provided as mappings into computable abstract data structures.

The procedural component of a theory of language described by rules of inference, for which models are provided as mappings into algorithms.

In general, the abstract data structures are further modelled by specific data structures such as strings, lists, arrays in specific programming languages, and the algorithms are further modelled by procedures in these programming languages.

The main programming languages used in creating operational models in Computational Linguistics are typically:

LISP:
LISP is the second oldest programming language (after FORTRAN), invented around 1960, and still (in a number of dialects) a very widely used language in Computational Linguistics and in Artificial Intelligence. LISP is the language in which the famous Emacs text editor is written, and derivatives of Its dialect Scheme are the main languages used in the automatic formatting of hypertexts. LISP (LISt Processing language) is modelled on the mathematical theory of functions (in particular function application, lambda calculus), and has an extremely simple syntax in which programs and data are all modelled as lists (permitting ``child'' procedures/programs to be generated on the fly during the execution of a ``parent'' procedure).
Prolog:
Prolog (Programming in logic) was invented in the early 1970s specifically for dealing with the analysis of natural languages. The core of the language is based on three basic ideas:
  1. The inference strategies of predicate logic.
  2. The interpretation of predicates as relations (i.e. ``bidirectional'', unlike functions).
  3. A relation of compatibility (term unification) between data structures.
Prolog is very widely used in Computational Linguistics and Artificial Intelligence, particularly for experimental parsing and translation systems.

Many other programming languages have also been used; C, C++ and Java are used nowadays for various practical purposes - C and C++ in general for large, efficient working systems, and Java in general for interactive systems with elaborate graphical user interfaces. With programming languages, however, the exception very often becomes the rule - LISP and Prolog have been used in commercial systems, and C, C++ and Java are also used in experimental research.

Note:
In linguistics, the terms rule, procedure, rule application, process, algorithm are often used loosely. For example, a rule is sometimes regarded as a language specific convention, such as final devoicing in German, and a process is regarded as a universal physical constraint such as some types of assimilation. For very general rules of language, i.e. universal constraints, the term principle is sometimes used. In some theories of language a principle is parametrised, so that different settings of the parameters of a principle (e.g. the different word orders which are found in different languages) define the differences between languages.


next up previous
Next: Formal grammars Up: 13.11.2001: Grammatik: prozedurale Aspekte Previous: Declarative and procedural aspects

Dafydd Gibbon, Wed Feb 12 10:50:41 MET 2003 Automatically generated, links may change - update every session.