Utilisation d’outils de TAL pour la compréhension des spécifications de validation de données (Use of NLP tools for automatic comprehension of data validation specifications) (2021)

Abstract: La validation de données consiste à vérifier formellement la cohérence de données utilisées en entrée de systèmes critiques. L’essentiel du travail des ingénieurs consiste donc à traduire une spécification, écrite en langage naturel, en un ensemble de règles formelles permettant l’automatisation de la vérification. Notre objectif à long terme est d’automatiser complètement le processus de validation de données. Dans cet article, nous présentons une première étape et détaillons les différentes techniques de traitement automatique de la langue que nous avons déployées pour générer un squelette de règle formelle à partir d’une spécification textuelle. La particularité de ces spécifications est qu’elles peuvent contenir beaucoup d’informations implicites qui rendent difficile la tâche de traduction. D’autre part, le fait qu’il n’existe pas de grand corpus d’apprentissage disponible rend difficile l’emploi des méthodes d’apprentissage neuronal profond. Néanmoins des approches plus classiques à base de règles et de représentations symboliques permettent d’apporter un premier élément de réponse.

## introduction la validation formelle de données consiste en la vérification formelle des données d'entrée et de fonctionnement de systèmes critiques. l'objectif est de vérifier la cohérence des données entre elles afin de détecter de potentielles erreurs de relevé, voire du système @xcite . par exemple, un système de guidage de train doit nécessairement avoir en entrée un plan des voies identique à la réalité. toutes ces données sont difficiles à vérifier manuellement de par leurs tailles et nombres importants, mais on peut vérifier automatiquement qu'elles suivent les spécifications des voies, par exemple "a signal shall be at least 100 meters before a crossover". le travail des ingénieurs en validation de données consiste en grande partie à traduire en règles formelles les spécifications des clients concernant les propriétés à vérifier sur les données. la majorité de ces spécifications sont des phrases simples, que l'on voudrait pouvoir traiter automatiquement ou semi-automatiquement, afin que les ingénieurs consacrent plus de temps aux spécifications plus complexes qui demandent plus de réflexion. dans cette optique, l'utilisation d'outils d'analyse de la langue est nécessaire afin de pouvoir saisir le sens de la vérification à appliquer. la traduction de spécifications en règles formelles a déjà été exploré par le passé @xcite , mais avec des techniques de traitement de la langue éloignées de l'état de l'art. actuellement, les programmes les plus performants pour la traduction, et l'extraction d'informations d'un texte reposent sur des techniques d'apprentissage automatique @xcite , utilisant d'importants corpus de textes pour la phase d'apprentissage. or, les différents projets industriels de validation de données ne comprennent, en général, guère plus de quelques centaines de spécifications au maximum, avec de grandes différences d'un projet à l'autre. a la connaissance des auteurs, il n'existe pas de corpus dans ce domaine permettant d'entraîner des réseaux de neurones profonds pour des tâches de traitement automatique de la langue. a cause de la grande complexité de la production de données annotées, et des données existantes en faible quantité, il convient d'expérimenter ces réseaux neuronaux pour des tâches plus simples que la traduction directe, et de combiner ces résultats pour parvenir à cet objectif. cet article montre différentes approches du traitement de la langue utilisées dans cet objectif industriel, afin d'établir un prototype pour traduire des spécifications, en partant d'un modèle de phrase précis (proche d'un langage contrôlé) pour ensuite l'étendre sur des formulations plus complexes et plus variées. la section 2 détaillera les techniques abordées, tout en prenant en compte la contrainte du corpus d'apprentissage afin de concevoir le prototype. ensuite la section 3 détaillera un essai du prototype sur des spécifications issues d'un projet industriel. enfin la conclusion apportera un bilan de ce travail et les perspectives d'avenir pour ce prototype. parmi les informations que nous voulons extraire, nous voulons principalement savoir quelles données vont être analysées et quelle(s) vérification(s) est (sont) à appliquer. pour cela, l'extraction d'entités et l'étiquetage de relations permet de ressortir les données et de voir comment elles s'articulent entre elles, et l'analyse syntaxique indiquera la vérification à effectuer et l'ordre des données en paramètre. ## utilisation du prototype sur un projet concret de validation de données les différentes techniques d'analyse de spécifications présentées dans la section précédente ont été testées sur un projet concret de validation de données de l'entreprise clearsy foot_0 . l'objectif n'est pas de tout traduire parfaitement, mais de quantifier le nombre de spécifications pouvant être analysées entièrement par ce prototype. ## conclusion la validation de données est une étape nécessaire pour le développement de systèmes critiques. le principal travail des ingénieurs dans cette tâche est de traduire en règles formelles les spécifications écrites en langage naturel. pour aider et accélérer ce processus, les outils de traitement de la langue semblent tout indiqués. plusieurs outils sont combinés afin d'extraire le plus d'informations possibles dans un prototype. celui-ci associe ces informations avec des schémas existants afin de traduire automatiquement les spécifications les plus simples. les résultats de l'utilisation de ce prototype sur un projet industriel montrent les limitations de cette approche, à savoir le manque de souplesse par rapport aux variations syntaxiques. pour accomplir cette tâche de traduction, d'autres pistes sont envisagées, notamment du côté de l'analyse sémantique des phrases, aidées des connaissances implicites du projet via par exemple un graphe de connaissances.