A control interface is characterized by an encoding, which is a mapping of a list of LSs into a SS. Different encodings can be used with the same transducer provided that they can handle the same logical alphabet. In fact, a logical alphabet represents the interface among transducers and control interfaces: the output of the former is the input of the latter. Furthermore, as described in [Bianchi et al., 2007] the performances of a complete system depend on the way a transducer and a control interface adapt themselves. Thus, it follows the need of having many encodings in order to choose the best one for each application and for each user.
The Encoder Generator toy is a tool that allows to build a virtually unlimited number of encodings according to many different strategies. After running it from the BF++ Toys menu the form illustrated in Fig. 1 will appear:

Fig. 1 – The Encoder Generator main form


The two entities that are necessary for building an encoding are the logical and semantic alphabets, which are the input and the output of a Control Interface. Then, according to them, many different rules can be applied to generate different encodings.
Once the two alphabets have been loaded (after pressing the corresponding “Load” buttons), the previous form will appear as the one illustrated in Fig. 2:

Fig. 2 – The Encoder Generator main form with the loaded alphabets

On the two top main rows (surrounded by a red rectangle) some description of the alphabets is provided, while in the large left grid (surrounded by a large green rectangle) the semantic alphabet is listed with also the probabilities of occurrence of each symbol. From the logical symbols it is possible to select one of them to be used as an UNDO key (blue rectangle). This character will be excluded from the encoding and will be used just for correcting errors. Finally, in the central part, it is possible to select which strategy should be used to generate an encoding (black rectangle). You can play with them. Once configured these options, after selecting the ‘D’ logical symbol as the UNDO key, and after pressing the “Generate” button, the same form will appear as the one of Fig. 3:


Fig. 3 – The Encoder Generator main form with a computed encoding

Some metrics is provided as well as the corresponding probability of occurrence of each logical symbol (see also the piechart), that is computed from the probability of occurrence of each semantic symbol. The occurrence on the UNDO symbol cannot be computed at this stage because the probability of making an error depends on the transducer (and then on the Extended Confusion Matrix). Other BF++ Toys, such as the Optimizers, will do it. Once generated, the encoding can be saved on a file by pressing the Save button and using the File Save Dialog Box. Again, the XML technology is used store the data.