Intelligence Artificielle, gestion des connaissances,
langage naturel
© 2004 Jean-Marc Vanel - e-mail: Vos
commentaires -
Ma page d'accueil
|
Cette page présente ma vision du présent et du futur de
ces techniques (IA), ainsi que mes axes de recherche appliquée
dans ces domaines. Ce n'est pas donc pas une introduction à ces
sujets. Etant un développeur venant des mathématiques,
j'ai toujours été sensible au côté formel
des choses... Et sensible au manque de formalisme de la plupart
des projets. Depuis quelques années, au cours de mon projet "Worldwide Botanical Knowledge Base",
j'ai expérimenté le traitement du langage naturel, ici
des descriptions botaniques . Cela a déclanché un vif
intérêt pour l'IA .
Mes axes de recherche appliquée:
- intégrer l'IA dans les projets informatiques standards;
- s'appuyer sur le langage naturel et ses sémantiques pour
remplacer les processus de développements habituels par un
développement piloté par des règles
exprimées dans un formalisme basé sur le langage naturel ;
- réutiliser toutes les sources de données existantes
(relationnelles etc) pour les connecter à des moteurs
d'inférences;
- coupler les techniques de représentation des connaissance
avec des représentations graphiques interactives
L'idée du Web Sémantique chère à Tim
Berners-Lee a mis à la mode toutes ces techniques presques aussi
vieilles que l'informatique. On se souvient aussi du grandiose projet
Japonais dans les années 80 et 90. En 2005, il y a un hiatus
énorme entre le niveau technique des projets informatiques
courants et les possibilités de l'IA. Pendant que certains
galèrent avec PHP ou J2EE, les moteurs d'inférences et la
programmation à base de règles ont fait leurs preuves.
Mais l'IA est encore perçue comme quelque chose de
réservé à la recherche universitaire.
Il est vrai qu'il y a une reconnaissance du fait que moins on
programme, et moins le projet est risqué. On en tire les
conclusions qu'il faut soit déléguer aux prestataires
off-shore, soit utiliser des environnements graphiques variés,
en général propriétaires. Ma solution est tout
autre: il faut réduire la distance entre les ingrédients:
programmation procédurale, langage naturel, programmation
déclarative, règles, représentation graphiques.
Sans perdre de vue l'usage classique en IA: séparation entre les
faits, les règles et le moteur d'inférence, il est
possible et souhaitable d'avoir une vision globale. Il est par exemple
possible de combiner une analyse prenant en compte le langage naturel
avec une analyse standard pour un langage de programmation comme Java,
pour en extraire une sémantique beaucoup plus riche. Ceci
permettra de confronter le code avec des spécifications, et de
faciliter la maintenance. Inversement on peut recourir à un
langage naturel formalisé pour spécifier des
règles, et donc remplacer tout ou partie de la programmation
traditionnelle.
Les outils préconisés
- l'environnement Protégé
de Stanford est devenu le couteau Suisse de l'IA: éditeur,
bibliothèque Java, langage proche de CLIPS, de nombreux greffons
- moteur d'inférence Jess, lui aussi
basé sur Clips
- XSB a la
capacité à faire de la Programmation Logique en
s'appuyant sur les faits
pris dans une base relationnelle
- traitement du langage naturel : projet Projet Atoll de
l' INRIA, Link-grammar
- WordNet est un dictionnaire sémantique Anglais accessible
grâce à une IHM, un site Web et une bibliothèque en
C
Livres conseillés