Chapitre 3. Proposition d’une chaîne de formalisation des connaissances pour la maîtrise
3.3 Intégration des connaissances
3.3.2 Fonctionnement technique
L’outil est réalisé dans un environnement Java, le choix de ce langage a été fait suite à l’inventaire des solutions par ailleurs existantes. Il est vrai que la plupart des outils permettant
de traiter les ontologies sont réalisés avec le langage Java. Bien qu’ayant pour objectif d’être utilisé au sein de la plateforme Preventeo® opérée en Php, le choix s’est donc avéré limité.
La base de données est au format MySQL 5.1. Là encore le choix s’est porté sur cet outil en
raison de l’utilisation de celui-ci au sein de la plateforme Preventeo®.
Afin de réaliser les opérations de traitement sur l’ontologie, la bibliothèque Jena est utilisée
pour réaliser les requêtes de récupération des informations au sein de l’ontologie.
Le langage SparQL permettant dans le cas présent d’interroger l’ontologie pour récupérer les
sèmes des différents concepts (Agent de direction, Agent de personnel et Action) est utilisé.
En l’état actuel, le prototype est fonctionnel et s’exécute en “invité de commande”, l’informaticien est alors chargé de lancer l’outil avec les paramètres de l’application. Il est
nécessaire de spécifier l’identifiant du texte à analyser ainsi que le souhait de recréer ou non
une copie du texte ou d’écraser une précédente analyse par l’outil. Cette option permet par
exemple de générer plusieurs versions de l’analyse au fur et à mesure des améliorations apportées sur l’outil ou sur l’ontologie.
Les étapes du fonctionnement du prototype sont décrites ci-après.
Etape 1. Connexion à la base de données
La connexion à la base de données est réalisée dans le langage Java en utilisant un connecteur à la base de données MySQL.
Etape 2. Récupération du texte dont l’identifiant est passé en paramètre de l’application Les données du texte sont récupérées, ici, si l’outil a déjà proposé une analyse du texte,
l’identifiant correspondant est récupéré dans cette requête afin, selon le paramètre passé à l’application, de l’écraser ou de créer un nouveau texte. Il est à considérer aussi le découpage proposé par l’opérateur qui analyse le texte, il est possible de réaliser un découpage manuel
du texte en articles, ceci permet de renseigner ces informations de découpage directement dans le texte. Ainsi, plutôt que de réaliser un traitement du texte complet, il est possible de traiter les différents articles qui composent le texte en question.
Etape 3. Découpage du texte en phrases
Le texte est ensuite découpé en phrases. L’outil propose une analyse sur chaque phrase du texte récupéré. Ceci dans le but de proposer une extraction la plus fine possible des exigences réglementaires. Cette méthode présente l’avantage de la précision sur les exigences réglementaires mais engendre aussi des inconvénients tels que la non gestion des exigences sur plusieurs phrases. Il est à considérer une phrase dans le langage français comme une chaîne de caractères qui commence par une majuscule et se termine par un point. Si le point de départ est celui-ci, les textes étant insérés en base de données au format HTML, certaines particularités sont ajoutées pour le traitement, ainsi, les retours à la ligne ou fin de paragraphe (</p> </div>) considèrent aussi un bloc comme une phrase à analyser.
Etape 4. Connexion sur l’ontologie
De la même manière que le prototype se connecte à la base de données, la connexion sur
l’ontologie est relativement long, cependant, l’ontologie est alors chargée en mémoire, ce qui
permet par la suite d’être très performant sur les requêtes effectuées.
Etape 5. Récupération des termes candidats porteurs d’exigences réglementaires
Le langage SPARQL, présenté dans le chapitre précédent, permet d’effectuer des requêtes sur l’ontologie. Ainsi, au travers d’une requête syntaxiquement proche du langage SQL, il est aisé de traiter les informations contenues dans l’ontologie. L’exemple ci-dessous sélectionne les
étiquettes rédigées dans la langue française de toutes les sous-classes du concept Agent.
Tableau 4 - Requête SPARQL
PREFIX onto: <http://monontologie.com/ressources#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?label ?class
WHERE { ?class rdfs:subclassof 'Agent' . ?class rdfs:label ?label .
FILTER (?label rdfs:lang('fr') ) }
Cette requête est effectuée pour vérifier la présence des termes dans le texte, il est nécessaire
ensuite de récupérer certaines informations telles que l’instance correspondant au terme ainsi
que les principes de management liés dans le cas d’un concept d’action.
Etape 6. Vérification sur chaque phrase de la présence des différents concepts
Il est ensuite possible de traiter chaque phrase, les informations basiques de l’ontologie étant
récupérées et stockées en mémoire, il est nécessaire de vérifier la présence des différents
termes dans les phrases. Lors de cette phase, l’outil vérifie la présence d’au moins un terme de
chaque concept ainsi que la position les uns par rapport aux autres afin de proposer ou non une exigence réglementaire. Toutefois, les informations relevées sont annotées sur le texte final.
Etape 7. Annotation du texte
Durant cette étape, le texte se voit ajouter toutes les informations permettant de prendre une décision, premièrement, tous les termes sont mis en sur brillance selon trois couleurs, une pour chaque famille de concepts : Agent de direction, Agent de personnel et Action. De
même, lors du repérage d’une exigence réglementaire, la phrase est soulignée afin que l’opérateur puisse visualiser directement les exigences proposées. Ajouté à ces informations, un récapitulatif des traitements effectués est affiché, le nombre d’exigences repérés, le
nombre de termes repérés pour chaque famille et le nombre de phrases analysées et la version du texte proposé.
Etape 8. Enregistrement du texte dans la base de données ou écrasement de la précédente analyse
Toutes les informations étant ajoutées sur le texte, celui-ci peut ensuite être enregistré dans la
base de données. Si l’utilisateur a choisi d’écraser les propositions précédentes des analyses, l’identifiant récupéré dans la troisième étape est utilisé pour la mise en base de données.
Sinon, un nouveau texte est créé et la version est incrémentée.