Consider the following phonological rule (from ) in which an underlying nasal segment N is mapped either to an m (if followed by a p) or an n:
A transducer implementing this phonological rule can be illustrated as follows:
This transducer contains a single start state 0, and two final states, 0 and 1. First consider the cyclic transition on state 0, labeled by the predicate , i.e., the predicate which is true of all symbols except the symbol N. As long as the transducer does not read this special nasal segment N, it remains in state 0 and simply copies its input. Upon reading an N, the transducer non-deterministically moves to state 1 or state 2, writing out an n or m respectively. In the first case, the next input symbol cannot be a p; in the second case the next input symbol must be a p.
Note that the transition from state 2 to state 0 simply contains a p. The idea here is that if the input and output symbol must be identical, only a single predicate is written for that transition. The same abbreviation is used for the transition from 1 to 0, as well as over the looping transition from 0 to 0 with predicate . The intention here of course is that every incoming segment which is not equal to N should be mapped to itself in the output. However, note that this is quite different from the pair of predicates . The latter would map an incoming symbol to an arbitrary output symbol, as long as both symbols are unequal to N.
The example illustrates an important point: if predicates are introduced in transducers, then for typical examples we must also be able to express the identity of input and output of a transition. In this example, if there were no way to express the identity between input and output, then we would be forced to have multiple transitions such as a:a, b:b, c:c, d:d for all of the relevant symbols; the introduction of predicates can be exploited in transducers only if identity between input and output can be expressed as well.
Expressing identity between input and output is crucial. This notion of identity can be seen as a consequence of the linguistic principle of Faithfulness: corresponding input and output segments tend to be identical. A similar argument is expressed in . Indeed, many interesting transducers are of the type `change all occurrences of in some specific context into , and pass on the rest of the input unaltered'. The various replacement and `local extension' operators all produce transducers of this kind [16,31,17,20,9]. Identities can be seen as a limited case of backreferencing. Backreferencing is an extension of regular expressions widely used in editors, scripting languages and other tools. A limited version of finite-state calculus backreferences is discussed in .