SHRDLU est un programme informatique précoce de compréhension du langage naturel, développé par Terry Winograd au MIT entre 1968 et 1970. Il permettait aux utilisateurs de converser avec un ordinateur en anglais, en manipulant des objets dans un « monde de blocs » simplifié - une boîte virtuelle contenant des blocs, des cônes et des boules. Le programme combinait l'analyse syntaxique du langage, la mémoire et une physique de base pour simuler la compréhension, et était écrit en Micro Planner et Lisp sur un ordinateur DEC PDP-6 avec un terminal graphique DEC. Des ajouts ultérieurs à l'Université de l'Utah ont permis un rendu 3D complet du monde. Le nom dérive de ETAOIN SHRDLU, l'ordre des lettres sur les machines Linotype, classées par fréquence d'utilisation en anglais.
Fonctionnalités
Le cœur de SHRDLU était un analyseur syntaxique qui gérait les instructions et les questions des utilisateurs sur le monde de blocs. Le monde était délibérément simple, avec un vocabulaire d'environ 50 mots : des noms comme « bloc » et « cône », des verbes comme « placer sur » et « déplacer vers », et des adjectifs comme « grand » et « bleu ». Cette simplicité permettait au programme d'analyser les phrases et d'exécuter les actions de manière fiable.
Une caractéristique clé était sa mémoire, qui fournissait un contexte. Les utilisateurs pouvaient faire référence à des objets précédemment mentionnés sans répéter des descriptions complètes. Par exemple, après « mets le cône vert sur le bloc rouge », une instruction ultérieure « enlève le cône » identifiait correctement le cône vert. SHRDLU pouvait également répondre à des questions sur son historique, comme « as-tu ramassé quelque chose avant le cône ? »
Le programme incluait des règles de base sur la physique du monde, lui permettant de raisonner sur les possibilités. Il pouvait déduire que les blocs pouvaient être empilés mais que les pyramides ne le pouvaient pas, en se basant sur ses expériences. Cela lui permettait de répondre à des questions comme « Une pyramide peut-elle soutenir une pyramide ? » avec « JE NE SAIS PAS » ou « Empile deux pyramides » avec « JE NE PEUX PAS ».
SHRDLU permettait également aux utilisateurs de définir de nouveaux termes. Par exemple, on pouvait dire « un clocher est une pile qui contient deux cubes verts et une pyramide », et SHRDLU comprenait alors et répondait à des questions sur les clochers, en construisant même de nouveaux sur demande.
Une session typique (comme documenté dans les travaux de Winograd) montre le programme gérant des instructions complexes, résolvant des références pronominales et expliquant ses actions. Par exemple, lorsqu'on lui demandait « Pourquoi as-tu dégagé ce cube ? », il répondait « POUR LE METTRE SUR UN GRAND CUBE VERT », démontrant une chaîne de raisonnement.
Conséquences
SHRDLU a été considéré comme un succès marquant dans la recherche en intelligence artificielle (IA), démontrant le potentiel de la compréhension du langage naturel. Ses performances ont suscité un optimisme parmi les chercheurs en IA, qui pensaient que l'extension de tels systèmes pourrait atteindre une intelligence générale. Cependant, cet optimisme s'est estompé lorsque les systèmes ultérieurs ont été confrontés à l'ambiguïté et à la complexité du monde réel, que l'environnement contrôlé de SHRDLU évitait.
Le programme a influencé les travaux ultérieurs en intelligence artificielle et en traitement du langage naturel, bien qu'il n'ait pas directement conduit aux approches modernes comme apprentissage automatique ou modèles de langage de grande taille. Les travaux de Winograd au MIT CSAIL (alors le laboratoire d'IA du MIT) ont contribué aux concepts fondamentaux du domaine, y compris l'importance du contexte et de la connaissance du monde dans la compréhension du langage.
Détails techniques
SHRDLU fonctionnait sur un ordinateur DEC PDP-6, un mainframe de l'époque, et utilisait un terminal graphique DEC pour l'affichage. Le logiciel était écrit en Micro Planner, un langage de planification, et en Lisp, un langage de programmation populaire dans la recherche en IA. L'architecture du programme intégrait un analyseur syntaxique, une interprétation sémantique et un composant de résolution de problèmes qui manipulait le monde de blocs.
Le monde de blocs lui-même était un environnement simulé avec des objets comme des blocs, des pyramides et des boules, placés sur une table ou dans une boîte. Le programme suivait les positions, tailles, couleurs et relations des objets, lui permettant de répondre à des requêtes spatiales et d'exécuter des commandes de manipulation.
Héritage
SHRDLU reste un exemple classique de l'IA précoce, souvent cité dans les manuels et les récits historiques. Sa démonstration de dialogue sensible au contexte et de planification était en avance sur son temps, bien que ses limites aient également été instructives. La dépendance du programme à des règles codées à la main et à un domaine restreint contrastait fortement avec les approches ultérieures basées sur les données comme apprentissage profond et réseaux de neurones.
Winograd a ensuite déménagé à Stanford, où il a poursuivi des recherches sur l'interaction homme-machine. Le nom SHRDLU lui-même est devenu une curiosité, dérivé de l'ordre des touches de la machine Linotype, et est parfois utilisé comme terme en informatique.
Malgré son âge, les principes de SHRDLU - comme l'utilisation de la mémoire pour le contexte et le raisonnement sur les contraintes physiques - restent pertinents pour les systèmes d'IA modernes, bien qu'ils soient maintenant implémentés différemment. Le succès du programme et le déclin ultérieur de l'optimisme soulignent les défis pour atteindre une compréhension robuste du langage, un objectif toujours poursuivi par les chercheurs aujourd'hui.