Construire un moteur de recommandation intelligent avec EDG et Neo4j : une architecture sémantique pour des données connectées
Ce tutoriel présente une méthode pour concevoir un moteur de recommandation basé sur un graphe en utilisant deux outils commerciaux complémentaires : EDG de TopQuadrant et Neo4j. L’approche repose sur une séparation claire entre la gestion du vocabulaire contrôlé (taxonomy) et celle des données d’instance, permettant une meilleure gouvernance, une inférence sémantique efficace et une évolutivité accrue. Le processus commence par la création d’une hiérarchie de catégories STEM dans EDG, une plateforme spécialisée dans la modélisation et la gestion des connaissances sémantiques via RDF et SHACL. Cette taxonomy définit les relations parent-enfant entre les concepts (ex. : Mathematical Software est un sous-type de Computer Science). Ces relations permettent d’inférer automatiquement des associations plus larges : un article étiqueté comme Mathematical Software est implicitement lié à Computer Science et STEM, même sans étiquetage explicite. Une fois la taxonomy définie dans EDG, elle est publiée dans une instance Neo4j via une intégration native. Cette étape utilise une connexion sécurisée configurée dans EDG, permettant de synchroniser automatiquement les classes du modèle (ici, les concepts) vers Neo4j sous forme de nœuds et de relations (ex. : BROADER). Cette synchronisation peut être répétée à tout moment, garantissant que les modifications apportées à la taxonomy sont reflétées immédiatement dans la base de données graphique. Les données d’instance — ici, une liste fictive d’articles académiques — sont ensuite chargées dans Neo4j depuis un fichier CSV. Chaque article est représenté comme un nœud avec des propriétés comme le titre et une URI correspondant à un concept de la taxonomy. Une requête Cypher permet ensuite de créer des relations TAGGED_WITH entre les articles et leurs concepts respectifs, en reliant les données d’instance à la structure sémantique. Le cœur du moteur de recommandation réside dans l’exploitation des relations hiérarchiques du graphe. Par exemple, pour recommander des articles similaires à un article sur Mathematical Software, une requête Cypher recherche non seulement les autres articles étiquetés avec ce concept, mais aussi ceux associés à d’autres branches de Computer Science. Cela fonctionne grâce à la capacité du graphe à suivre les chemins de parenté (BROADER) et à identifier les concepts frères sous un même parent commun. Un avantage majeur de cette architecture est la facilité de modification du modèle sémantique. Si on décide de reclasser Mathematical Software sous Mathematics au lieu de Computer Science, il suffit de déplacer le concept dans EDG. Après une nouvelle synchronisation avec Neo4j, toutes les recommandations sont automatiquement recalculées, reflétant la nouvelle structure — sans avoir à modifier manuellement des milliers d’étiquettes dans les données. Cette architecture offre plusieurs bénéfices : inférence sémantique, alignement entre plusieurs systèmes (ex. : SharePoint, AEM), gestion centralisée des taxonomies, et une séparation des rôles entre outils spécialisés. Cependant, elle comporte aussi des inconvénients : courbe d’apprentissage plus raide, surcharge de gestion des intégrations, et risque de verrouillage technologique, malgré l’adoption de standards ouverts comme RDF et SPARQL. En somme, cette approche démontre comment combiner la puissance de la modélisation sémantique (EDG) et l’analyse de graphes à grande échelle (Neo4j) pour construire un système de recommandation intelligent, évolutif et résilient aux changements de domaine. Elle s’impose comme une solution idéale pour des cas d’usage complexes, où la structure sémantique est aussi importante que les données elles-mêmes. Steve Hedden, responsable produit chez TopQuadrant, est un expert reconnu en gestion des connaissances, ontologies et intelligence artificielle sémantique. Il conçoit des solutions qui intègrent gouvernance des données et IA à travers des modèles sémantiques robustes.
