TENET (Tool for Extraction using Net Extension by (semantic) Transduction)
TENET est un composant logiciel, générique et open source, qui peut être associée à d'autres composants pour construire des ontologies OWL à partir de textes écrits en langue naturelle (LN). Cet outil implémente un procédé d’extraction, basé sur le concept de transduction sémantique compositionnelle [1], en s'appuyant sur les standards du Web Sémantique du W3C (RDF, OWL, SPARQL, SHACL).
La construction automatique d’ontologies peut être structurée autour de différentes tâches complémentaires, en commençant par l’extraction de la terminologie jusqu’à la mise en évidence de relations et de propriétés complexes entre des concepts hiérarchisés. Dans cette optique, une chaîne de traitement globale peut être proposée, partant d’énoncés exprimés en langue naturelle pour aboutir à une ontologie représentant l'ensemble de connaissances décrites par ces énoncés. Cette chaîne est composée de plusieurs étapes : (1) la conversion des énoncés en langue naturelle dans une représentation sémantique pivot, (2) la sérialisation RDF des représentations obtenues, (3) l’extraction du contenu sémantique pour construire une ontologie OWL et (4) l'exploitation de l'ontologie produite en fonction du besoin applicatif.
L'extracteur TENET correspond la troisième étape d'une telle chaîne. Il requiert, en entrée, une ontologie cadre et un ensemble de structures pivot représentant le document à traiter. La sortie est un ensemble de triplets RDF-OWL enrichissant et instanciant l’ontologie cadre.
La structure pivot peut être produite en utilisant un analyseur linguistique, puis adaptée à l'aide d'un outil de sérialisation RDF. L'outil prend actuellement en charge les graphes du langage UNL [2] dans le format UNL-RDF.
L’analyse des structures pivot (UNL) est guidée par des schémas de transduction compositionnelle, implémentés sous la forme de requêtes SPARQL-construct. Ces règles dépendent fortement de la structure des graphes sémantiques en entrée, c’est à dire du formalisme UNL et des spécificités du corpus (syntaxe, registre, style, parfois phraséologie). En revanche, elles sont génériques du point de vue du contenu métier des phrases, qui est précisé au niveau de l’ontologie cadre.
Installation et usage
TENET est un module python. Les dépendances sont spécifiées dans le fichier requirements.txt
.
Les sources peuvent être copiées dans un repertoire local. Il est conseillé de créer un environnement virtuel, puis d'installer les paquets nécessaires, par exemple avec la commande pip :
pip install -r requirements.txt
L'outil TENET est constitué de librairies python (repertoire lib
) et de structures définissant le processus d'extraction (repertoire 'structure'). Les librairies peuvent être utilisées dans un script d'exécution pour mettre en oeuvre le processus d'exécution.
Le script run_execution.py
est proposé pour un usage simple. Les
données d'entrée doivent être placées dans le repertoire input
. Les résultats seront générées dans le repertoire output
. Pour lancer l'extraction, il suffit d'exécuter la commande suivante :
python3 run_extraction.py
Il est possible d'adapter la configuration de l'outil en modifiant le fichier config.xml
. Les références des données à traiter sont à définir dans le script d'exécution.
Implémentation
Le processus d’extraction implémente le concept de transduction sémantique, qui consiste à appliquer une série de transformations sur un graphe sémantique. Ce processus prend, en entrée, une ontologie cadre et un ensemble de graphes UNL-RDF. Il produit, en sortie, est un ensemble de triplets RDF-OWL enrichissant et instanciant l’ontologie cadre.
Exécution du processus
L'extraction est réalisée en trois étapes :
- le chargement de la configuration,
- la préparation de la structure de travail,
- l'application du mécanisme d'inférence sur la structure de travail.
Ces trois étapes sont implémentées dans les modules config, structure et inference du repertoire lib
.
Mécanisme d'inférence (structure d'inférence)
L’analyse de la structure pivot (UNL) est guidée à l’aide de schémas de transduction compositionnelle. Implémentés sous la forme de requêtes SPARQL-construct, ces schémas sont intégrés dans un graphe de contraintes (shapes) respectant la spécification SHACL-SPARQL. Ils sont organisés en niveaux d’application, grâce au mécanisme sh:order. Ces règles dépendent fortement de la structure des graphes sémantiques en entrée, c’est à dire du formalisme UNL et des spécificités du corpus (syntaxe, registre, style, parfois phraséologie). En revanche, elles sont génériques du point de vue du contenu métier des phrases, qui est seulement précisé au niveau de l’ontologie cadre.
En complément, un mode d’exécution à quatre niveaux est adopté pour le mise en œuvre du processus :
- l’extraction des éléments atomiques,
- la formation d’éléments composites par un procédé récursif,
- l’extraction des propriétés et relations pour les éléments atomiques et composites,
- la construction de l’ontologie cible.
Le typage des filets permet d’ajuster le traitement pour en assurer l’efficacité et la terminaison.
Ce mécanisme d'inférence est implenté, en s'appuyant sur les standards du Web Sémantique du W3C (RDF, OWL, SPARQL, SHACL), dans les structures du repertoire structure
.
Convention de nommage
Toutes les structures RDF utilisées par le processus d'extraction devraient respecter la convention de nommage suivante :
- séparation avec '/' pour les classes et sous-classes
- séparation avec '#' pour les nouvelles classes et instances
- identification des nouvelles classes avec la marque 'new-class#'
Ex. : https://tenet.tetras-libre.fr/frame/system/new-class#operator
[1] Lamercerie, A. (2021). Principe de transduction sémantique pour l’application de théories d’interfaces sur des documents de spécification. Thèse, Université de Rennes 1.
[2] UNL Specification 3.3 (2004). http ://www.unlweb.net/wiki/images/a/ab/Spec33.pdf
.