Appeler SMS WhatsApp Email

Définition Knowledge Engineering

Knowledge Engineering

Knowledge Engineering est une discipline au carrefour de l’intelligence artificielle, de l’informatique, de l’ingénierie logicielle et des sciences cognitives, qui se concentre sur la conception, le développement, la maintenance et l’application de systèmes à base de connaissances (Knowledge-Based Systems, KBS). Elle vise à expliciter, structurer et opérationnaliser les connaissances humaines, souvent détenues par des experts dans un domaine spécifique, afin de créer des systèmes informatiques capables de résoudre des problèmes complexes, de prendre des décisions ou de fournir des conseils avec une compétence comparable à celle d’un expert humain.

Les concepts fondamentaux du Knowledge Engineering reposent sur le cycle de vie de la connaissance au sein d’un système. L’acquisition de connaissances (Knowledge Acquisition ou Elicitation) est une étape cruciale où l’ingénieur du savoir interagit avec des experts humains et d’autres sources (documents, bases de données) pour extraire les connaissances pertinentes, qu’elles soient factuelles, procédurales, heuristiques ou métacognitives. La représentation des connaissances (Knowledge Representation) consiste à choisir des formalismes appropriés (règles de production SI-ALORS, réseaux sémantiques, logiques formelles, ontologies, frames) pour structurer et encoder ces connaissances de manière à ce qu’elles soient compréhensibles et utilisables par un ordinateur. Le raisonnement (Inference) est le processus par lequel le système utilise la base de connaissances et un moteur d’inférence pour déduire de nouvelles informations, résoudre des problèmes ou répondre à des requêtes. La validation et la vérification des connaissances assurent que la base de connaissances est correcte, cohérente et utile pour la tâche visée. Enfin, la maintenance et l’évolution de la base de connaissances sont essentielles pour maintenir la pertinence du système au fil du temps.

L’importance du Knowledge Engineering réside dans sa capacité à capturer et préserver l’expertise humaine, qui est une ressource précieuse mais souvent volatile (départ à la retraite, mobilité des employés). En formalisant cette expertise, les entreprises et organisations peuvent la diffuser plus largement, assurant une plus grande cohérence dans la prise de décision et les opérations. Les systèmes issus du Knowledge Engineering peuvent automatiser des tâches complexes nécessitant un jugement expert, libérant ainsi les experts humains pour des problèmes plus difficiles ou nouveaux. Ils servent également d’outils de formation puissants pour les novices, leur donnant accès à un raisonnement expert structuré. Son impact historique sur l’intelligence artificielle est majeur, ayant conduit au développement des premiers systèmes experts performants et ayant jeté les bases de domaines plus récents comme l’ingénierie ontologique et le web sémantique.

Les applications pratiques du Knowledge Engineering sont variées. Dans le domaine médical, des systèmes d’aide au diagnostic ont été développés pour assister les médecins en suggérant des diagnostics possibles basés sur les symptômes et les données patient (par exemple, le système historique MYCIN pour les infections sanguines). En finance, il est utilisé pour l’évaluation du risque de crédit, la détection de fraudes ou le conseil en investissement. Dans l’industrie manufacturière, il aide à la planification de la production, au contrôle qualité, au diagnostic de pannes sur des équipements complexes (par exemple, le système XCON de DEC pour la configuration d’ordinateurs VAX). D’autres applications incluent les systèmes de recommandation, les configurateurs de produits, le support client intelligent, la prospection géologique (PROSPECTOR), ou l’analyse de structures chimiques (DENDRAL).

Le terme Knowledge Engineering peut présenter quelques nuances. Historiquement, il était très fortement associé au développement de systèmes experts basés sur des règles. Aujourd’hui, l’approche est souvent plus large, intégrant des techniques issues de l’apprentissage automatique (Machine Learning) pour aider à l’acquisition ou à la maintenance des connaissances, ou se concentrant fortement sur le développement d’ontologies formelles pour représenter des domaines de manière riche et réutilisable (Ontology Engineering). La perspective peut varier, certains mettant l’accent sur les aspects cognitifs et l’interaction avec l’expert, tandis que d’autres se concentrent davantage sur les formalismes de représentation et les mécanismes de raisonnement. Il y a aussi un débat continu sur la frontière entre la connaissance explicitement modélisée (typique du KE) et les connaissances implicites apprises par les modèles de ML.

Plusieurs concepts sont étroitement liés au Knowledge Engineering. L’Intelligence Artificielle (IA) est le domaine parent. Les Systèmes Experts (Expert Systems) et les Systèmes à Base de Connaissances (Knowledge-Based Systems, KBS) sont les artefacts typiques produits par le KE. La Représentation des Connaissances (Knowledge Representation) est une composante technique essentielle. L’Ingénierie Ontologique (Ontology Engineering) est une spécialisation axée sur la modélisation formelle des concepts et relations d’un domaine. La Gestion des Connaissances (Knowledge Management, KM) est un domaine plus large qui inclut les aspects organisationnels, sociaux et culturels de la gestion des savoirs dans une entreprise, le KE étant une des approches techniques possibles au sein du KM. Des termes comme Apprentissage Automatique (Machine Learning) et Exploration de Données (Data Mining) sont souvent considérés comme distincts (apprentissage implicite à partir de données vs modélisation explicite de connaissances) mais sont de plus en plus intégrés dans des systèmes hybrides. Un synonyme partiel pourrait être « Développement de Systèmes Experts ». Il n’y a pas d’antonyme direct, mais on pourrait opposer le KE aux approches purement algorithmiques ou statistiques qui ne modélisent pas explicitement la connaissance experte humaine.

L’origine du terme « Knowledge Engineering » est souvent attribuée à Edward Feigenbaum dans les années 1970, lors du développement de systèmes pionniers comme DENDRAL à l’Université de Stanford. Cette période a vu l’émergence de l’idée que le pouvoir des systèmes intelligents résidait moins dans des mécanismes de raisonnement généraux que dans la quantité et la qualité des connaissances spécifiques à un domaine qu’ils possédaient. Les années 1980 ont été l’âge d’or des systèmes experts, avec un intérêt commercial et de recherche considérable. Cependant, la fin des années 80 et le début des années 90 ont vu un certain désenchantement (parfois appelé « AI Winter »), en partie dû aux difficultés rencontrées dans l’acquisition des connaissances et à la « fragilité » (brittleness) des systèmes en dehors de leur domaine strict. Depuis lors, le KE a évolué, s’intégrant davantage avec d’autres technologies, mettant l’accent sur les ontologies réutilisables et trouvant une nouvelle pertinence dans des domaines comme le Web Sémantique, les graphes de connaissances (Knowledge Graphs) et la nécessité d’explicabilité pour les systèmes d’IA (Explainable AI, XAI).

Le Knowledge Engineering présente des avantages significatifs : la formalisation et la préservation de l’expertise, l’amélioration de la cohérence et de la rapidité des décisions, l’automatisation de tâches complexes, et la capacité, pour certains systèmes, à expliquer leur raisonnement. Cependant, il fait face à des défis majeurs. Le « goulot d’étranglement de l’acquisition des connaissances » (Knowledge Acquisition Bottleneck) reste la difficulté principale : extraire, articuler et formaliser le savoir, notamment tacite, des experts est un processus long, coûteux et complexe. Les systèmes résultants peuvent être « fragiles » (brittle), c’est-à-dire qu’ils fonctionnent bien dans leur domaine mais échouent souvent de manière abrupte face à des situations imprévues ou légèrement en dehors de leur champ de compétence. La maintenance de la base de connaissances pour refléter l’évolution du domaine est une tâche continue et exigeante. La validation de la correction et de la complétude de vastes bases de connaissances est également un problème difficile. Enfin, le développement initial d’un KBS robuste via le KE peut nécessiter un investissement initial important en temps et en ressources.