In the case of phonological information of an utterance we make the simplified assumption that it is represented as a string, i.e., we represent the phonological structure of a sentence as a list of words. At least in the case of written text this simplification is not that critical and because most of todays natural language systems are designed for processing written text we are in good company (but see for example [ICSLP1992]).
We adapt the difference list notation known from standard Prolog interpreters for Definite Clause Grammars. Thus the utterance ``Peter loves Mary.'' will be represented as (using the matrix notation):
or more readable (using the notation introduced above)
The phonological information of a lexical entry like ``peter'' will be of form
Now it is very easy to represent a context-free grammar as a definite clause specification in . For example for the simple context-free grammar
a possible grammar is
Using constraints we have explicitly to specify the concatenation of substrings to build larger strings, implicitly specified in context-free grammar rules. However, using the difference list notation this is easily realized.
Note that since we have to explicitly specify how strings are combined to build larger strings, it is also possible to specify string combinations other than by simple concatenation, see for example [Gerdemann1991, VanNoord1993]. To illustrate this we adopt an example of a categorial style grammar from [Gerdemann1991].
which can be represented more readable as follows:
The last entry is an example of the head wrapping functor, call up, which shows that this approach can accommodate operations other than simple concatenation.