J'ai le type Chien, qui a des caractéristiques size
, color
y other
Taille de la liste de mots : big, medium, small
Autre liste de mots : old, fat, happy, lazy
La liste de mots de couleur n'a aucune incidence dans ce cas, je ne la citerai donc pas.
Et mon code (juste pour le fichier principal) :
PACKAGE dog;
SCRIPT dog.Color;
SCRIPT dog.Size;
SCRIPT dog.Other;
TYPESYSTEM dogTypeSystemDescriptor;
ENGINE utils.PlainTextAnnotator;
TYPESYSTEM utils.PlainTextTypeSystem;
Document{-> CALL(Color)};
Document{-> CALL(Size)};
Document{-> CALL(Other)};
Document{-> EXEC(PlainTextAnnotator, {Line})};
Line{-> CREATE(Dog, "color" = Color, "size" = Size, "other" = Other)};
DECLARE Max, Milo;
Dog{Dog.color.ct == "black",
Dog.size.ct == "big" -> Max};
Dog{Dog.color.ct == "white",
Dog.other.ct == "fat" -> Milo};
Comme vous pouvez le voir sur la photo, l'annotation "Milo" n'est jamais créée (parce qu'il s'appuie sur la valeur "fat" de la caractéristique "other" qui est dans le même dictionnaire que le "happy", mais dans le mot d'entrée "happy" passe avant "fat"). Si nous mettons "fat" avant "happy" dans l'entrée - tout fonctionne comme prévu.
Donc, la question est comment puis-je avoir des annotations créées pour chaque caractéristique unique du même dictionnaire trouvée dans la même entrée ?