C++ n'offre pas la possibilité de créer des objets persistants. La sauvegarde et le chargement du graphe des objets à maintenir doivent être programmés.
Relativement à la persistance des données nous avons donc effectué, pendant cette première phase de développement, les choix suivants :
Ceci donne un caractère modulaire qui permet la modification locale de l'information sauvegardée (ajouter un attribut persistant) sans avoir à modifier la manière dont est effectuée la sauvegarde des autres classes.
Par exemple, une lexie positionnée est sauvegardée en utilisant une référence à la lexie type, au texte englobant et à sa position dans le texte. Le dictionnaire des lexies, qui contient toutes les lexies positionnées n'est pas sauvé. Il est reconstruit chaque fois que l'application est chargée : une lexie positionnée qui est lue est identifiée auprès du dictionnaire en appelant une de ses méthodes ; le dictionnaire se met ainsi à jour.
Nous avons choisi une sauvegarde dans des fichiers de texte (caractères ASCII). Outre le fait qu'il est très facile de vérifier si les données sont bonnes, ce type de sauvegarde semble naturel pour des entités principalement textuelles.
Une entité textuelle positionnée est sauvegardée une seule fois en tant que chaîne de caractères. Cependant elle est identifiée par une référence (courte). De cette façon elle peut être référencée plusieurs fois sans gaspillage d'espace.
Chaque entité textuelle a son propre fichier de sauvegarde et chaque niveau de textualité a son propre espace de sauvegarde. Ces espaces coïncident aux répertoires dans un système de fichiers. Cette localité permet une vérification plus facile pendant la phase du contrôle de la persistance