CSVM : dictionnaires

3. Ensembles de traduction incomplets

Au cours d’un processus collaboratif, nous n’avons pas forcément réponse à toutes les questions, par exemple une équipe ne nous a pas envoyé toutes les déclinaisons de son dialecte. Ce qui fait que pour une clé donnée (correspondant à une notion) nous n’avons pas l’équivalent de sa valeur dans leur dialecte. Ce qui se traduit par un dictionnaire CSVM rempli de trous, matérialisés par le caractère blank (typiquement ‘-‘):

Nous constatons que la colonne ‘CN’ n’a pas d’équivalent pour certaines clés dans d’autres dialectes. Nous n’avons que ID, identificateur, vrac, plaque, mdl et smi qui sont définis vis à vis des deux autres colonnes. Dans ce cas, il faut implémenter deux modes de fonctionnement, activés par la variable mode de la fonction csvm_dict_file_filter dont le prototype est :

Première possibilité, le mode est standard (mode=0) et nous avons dans un dialecte des caractères blank (par exemple ‘-‘) définis dans la liste blank_list. Dans ce cas, les colonnes correspondantes vont être conservées dans le CSVM à filtrer, mais elles seront toutes identifiées avec le caractère blank correspondant. Il s’agit d’un marquage par la fonction csvm_dict_ptr_filter_blank  qui indique que ces colonnes ne devraient pas exister dnas le CSVM résultant, charge à l’utilisateur ou au curateur de les enlever.

Seconde possibilité, dans les mêmes conditions nous passons en mode strict (mode=1). Dans ce cas,  la fonction csvm_dict_ptr_filter_blank va se charger d’éliminer ces colonnes identifiées par ‘-‘ dans la liste #HEADER. Ce type de suppression intervient après les éliminations déclenchées via l’argument delcol (par exemple ‘__DEL__‘) que l’on à vu précédemment. Il s’agit d’un mécanisme de délétion à deux niveaux explicite/implicite.

Cette approche permet aussi de gérer les cas ou ce n’est pas les dialectes qui sont incomplets, mais des lignes de notions qui sont absentes dans le dictionnaire, mais dont les colonnes sont présentes dans le CSVM. Par exemple, avec le dictionnaire précédent, si les lignes ‘chemist‘ et ‘plate‘ étaient absentes ou sous forme de commentaires, donc non prises en compte dans le bloc DATA, le CSVM produit n’intègrerait pas ces colonnes.

Pour les usages avancés, il est possible de réaliser une union de deux fichiers CSVM afin de restaurer les colonnes manquantes (un fichier CSVM spécifique peut être créé pour servir de template). Les unions, intersections et additions de tableaux sont implémentées dans le toolkit Python CSVM.

Retour en haut