Les techniques et technologies sémantiques à l’épreuve du Big Data

En France, chaque année, depuis bientôt quinze ans, les techniques et technologies du web sémantique font l’objet de dizaines de thèses et de milliers d’articles ! Pourtant, face aux très gros volumes de données, elles peinent à dévoiler tout leur potentiel.

En 2012, j’orientais nos travaux de R&D à Toulouse dans l’exploration des techniques et technologies du web sémantique, outillage prometteur pour la compréhension et la meilleure maîtrise de la complexité des systèmes socio-techniques… Soit trois ans après les « early adopters » du Gartner, identifiés à l’époque dans le monde de la santé, de l’énergie et télécoms, des médias, et de la production. Ces techniques et technologies ont été exploitées pour :

  • Lier causes, symptômes, diagnostics et traitements,
  • Intégrer des « smart » systèmes (factories, cities, grids…),
  • Annoter vidéos et photos et rechercher plus efficacement dans ces banques de données  particulières,
  • Optimiser processus, acteurs de la chaîne de valeur et objectifs, et rendre plus interopérable leur système d’information.

De très nombreux systèmes basés sur ces techniques et technologies du web sémantique opèrent quotidiennement. Par exemple, lorsque vous surfez sur le web, vous êtes sans doute « profilé » par l’un de ces systèmes, lorsque vous contactez un service client, vous êtes probablement aiguillé par l’un d’eux qui s’enrichit de vos interactions. Pourtant, ces techniques et technologies ne passent pas encore l’échelle du Big Data, même si certains services offerts d'enrichissement sémantique pourraient laisser penser le contraire... En effet, l’expressivité de RDF (Resource Description Language), utilisé par ces services, est bien moindre que celle d’un langage plus récent comme OWL (Ontology Web Language). Or, de grands espoirs reposent sur OWL, et en particulier OWL-DL (OWL muni de logiques de description). Pour certains, il s’agit de pouvoir mieux contrôler l’émergence de comportements non planifiés dans des systèmes complexes. Cette requête nécessite de traiter de très gros volumes de données, de l’échelle du Big Data. Deux raisons expliquent la difficulté à passer cette étape : le calcul d’inférences et l’héritage d’outils de laboratoires.

Les familles de langages RDF et OWL sont les seules à permettre la spécification des concepts dans le domaine de l’IT, avec des niveaux de formalisation variables et d’expressivité suffisante. Quid de ces concepts ? Un utilisateur, un agent (humain  ou machine), un processus, une application, une transformation, etc. Très souvent, ils sont vus  sous l’angle de l’agrégation de concepts (un utilisateur et son smartphone par exemple). Ils forment alors un système de systèmes, où chaque composante a son propre cycle de vie. Plusieurs  expérimentations ont été entreprises, avec pour objectif de mieux comprendre et maîtriser les comportements de ces systèmes de systèmes. Elles relèvent de l’automatisation de systèmes, sensible au contexte. Thématique récurrente en intelligence artificielle, où il s’agit de faire exécuter par une machine, un savoir-faire modélisé dans une base de connaissances. Ces différentes expérimentations amènent à considérer deux cas. Le premier cas apparaît au travers d’une expérience de conception et développement d’un générateur automatique de code d’application mobile, à partir de ses maquettes d’écrans. Il est  intéressant pour prouver la testabilité d’une application générée de la sorte, de spécifier la transformation d’un méta-modèle vers un modèle à l’aide d’ontologies  et d’un raisonneur (calcul d’inférence). Trois ontologies, composées chacune de quelques dizaines de classes (pour un peu plus d’un millier d’axiomes ou propriétés), sont nécessaires. Les calculs d’inférences du raisonneur, réalisés sur un poste de développement classique, sont d’environ une seconde pour du code écrit en Java. Cet ordre de temps est négligeable pour un générateur d’application.

Le second cas apparaît au travers d’une expérience menée dans le cadre d’un projet plus ambitieux de contrôle/commande de très grands systèmes (de l’ordre du million de machines). Basé sur des agents autonomes distribués, il fait appel à des ontologies utilisant jusqu’à plusieurs milliers de classes, soit un nombre d’axiomes encore plus grand (plusieurs centaines de milliers). Mais, il faut plus de seize heures de calcul sur une station de travail musclée afin de faire aboutir une simple requête ! Ce délai n’est évidemment pas compatible avec des interactions de contrôle/commande temps réel. Nous ne disposons d’aucune technologie, autre que l’ajout de puissance brute pour réaliser ces calculs d’inférence en un temps raisonnable.

Deux voies se dessinent lors de l’utilisation des techniques et technologies sémantiques.

  • Les concepteurs seront vigilants quant au nombre de classes et d’axiomes de leurs ontologies. Si ces dernières sont volumineuses, ils chercheront à réduire le nombre d’inférences par des mécanismes de filtrage sur les classes, les axiomes et les individus (les instances des classes). Ils pourront également concevoir les ontologies de leur domaine sous forme de réseaux d’ontologies. Pour améliorer ces problèmes de vitesse d’inférence, quelques laboratoires travaillent sur des mécanismes de cache sémantique. Notons qu’ils sont complexes à mettre en œuvre avec peu de réutilisation.
  • Il s’agit d’exploiter les caractéristiques des outils. Comment ? En utilisant la rapidité des moteurs de recherches récents pour effectuer des inférences sur de gros volumes. Après tout, inférer, c’est trouver les occurrences des classes ou des individus qui satisfont aux propriétés (axiomes), et trouver revient au final à un problème d’indexation… que réalisent particulièrement bien ces nouveaux moteurs. Un autre exemple ?  Exploiter des bases de données orientées graphes pour stocker des ontologies, et utiliser les algorithmes de la théorie des graphes, généralement implémentés dans ces moteurs de base de données. L’idée directrice est de réduire les cas d’inférences (mécanisme de filtrage) et de rechercher par patterns (concordance de graphes). 

La quasi-totalité des technologies sémantiques ont été développées en Java, souvent par des laboratoires qui les ont mises à disposition des communautés open sources. Conscient du besoin en rapidité, des tentatives existent pour développer de nouveaux outils en C/C++ ; FACT ++ étant le seul raisonneur robuste maintenu disponible en C++. Cette tâche de refonte de l’outillage sémantique est très coûteuse et nécessitera plusieurs années !

Les langages comme OWL-DL offrent des perspectives très intéressantes pour spécifier la structure et la dynamique des objets de notre environnement, voire cet environnement lui-même. Comment réaliser le rêve de voir s’auto-adapter des systèmes complexes, ou des systèmes socio-techniques ? Avec les techniques et technologies sémantiques. Elles nécessitent de régler ce problème de performances ou de changer d’approche en utilisant les graphes à tous les niveaux, de la conception à l’implémentation.