In the next section, we can see the context free backbone of ALEP. The formulation of the rules is straightforward. But it was not possible to preserve the compact formulation of the rules of the source grammar, since optionality, for example, had to be spelled out in different rules. The number of rules in the target grammar increased a lot. A way to keep the rule system compact can be found with the use of macros (see the documentation of the final version of the core grammar [DC-WP6e], available under http://www.iai.uni-sb.de/LS-GRAM/papers.html). Or to use boolean feature types. In both cases, the migration has to be done in two steps: one step for the (straightforward) porting of the rules, and one step for the transformation of LFG specific expressions (including the annotations) into ALEP constructs. In the next rules, the mother-daughter relation is represented through a ``<''. The daughter are collected in a list (see the square brackets).
As an example, the following rule (D' D, NP) which seems to be complex, but this is due only to the immediate translation of the LFG rule into ALEP. For this reason, one should make an intensive use of macros for her grammar design in ALEP. With the use of the variables it is possible to reproduce the structure sharings formulated in the source grammar. The feature distribution corresponds to the one resulting from the `ups' and `downs' arrows in LFG.
sign:{
syn => n_syntax:{
cat => np,
agr=>A},
sem => N_SEM,
string=>S,
rest=>R } <
[ sign:{
syn => a_syntax:{
cat => ap,
agr=>A},
sem => A_SEM,
string=>S,
rest=>S1 },
sign:{
syn => n_syntax:{
cat => np,
agr=>A},
sem => N_SEM,
string=>S1,
rest=>R } ].
One can also see how the the names of the features of the source grammar have been introduced into a type system.