Etape 3: Structures récursives dans les groupes nominaux.
Pour le moment, la description des groupes nominaux étaient simplistes. Il s'agit désormais de la compléter avec deux nouveaux constituants:
Pour cela, j'ai tout d'abord ajouté des adjectifs de couleur, en faisant attention aux couleurs invariables comme orange, marron...
Il s'agit ensuite de vérifier que le grammaire reconnait bien les syntagmes "le chat est blanc" ou "le chien bleu"
Une structure récursive est une structure qui s'appelle elle-même pour l'analyse en quelque sorte. Généralement, on parle de fonction récursive: c'est une fonction qui est composée d'un cas de base, et d'une boucle récursive dans laquelle on fait appel à la fonction elle même. En français, une structure récursive est, par exemple, "le chien de la mère du frère de la soeur du cousin de mon père". Pour que la grammaire gère ces cas de récursivité, il va falloir distinguer deux niveaux de groupes nominaux: le premier correspondrait ainsi à des noms, éventuellement suivis d'adjectifs, et le second niveau correspondrait à un groupe nominal du premier niveau précédé d'un article. Formulé plus simplement en termes de symboles et d'abréviation, on obtient donc: GN = DET (ADJ) N (GNP) et GN2 = DET GN1; On peut donc aussi trouver dans le groupe nominal "GN1" (du premier niveau) un "GNP", autrement dit un syntagme prépositionnel que l'on peut définir ainsi: GNP = PREP GN2.
Voici un exemple d'un "cas" de base d'une structure récursive: "le chien de la souris" (notons la portée intellectuelle de cet exemple).
Voici l'allure de la grammaire associée au logiciel, avec la différenciation entre GN1, GN2, GNP...
On peut ainsi désormais analyser les phrases bien plus complexes et possiblement infinies dérivées des structures récursives. Le cas de base étant défini, le logiciel peut analyser la phrase en appliquant les règles établies dans la grammaire.