# SHRDLU

SHRDLU a été l’un des premiers programmes informatiques de compréhension du langage naturel. Il a été développé par Terry Winograd au MIT à partir de 1968. Il était écrit en Micro Planner (en) et en Lisp et implémenté sur un ordinateur PDP-6 de DEC équipé d’un terminal graphique DEC. Des ajouts ultérieurs, effectués dans les laboratoires d’infographie de l’université de l'Utah, permirent d’ajouter un rendu 3D au « monde » de SHRDLU.
Par la suite, Winograd semble avoir pris ses distances avec SHRDLU et le domaine de l’intelligence artificielle, convaincu que SHRDLU constituait une impasse.
Le nom de SHRDLU dérive de la séquence ETAOIN SHRDLU, qui reflétait l’arrangement anglo-saxon des touches alphabétiques sur les machines Linotypes, en fonction de leur fréquence décroissante en anglais.

## Fonctionnalités

SHRDLU est un logiciel qui permettait un dialogue interactif avec l’utilisateur à base de termes en anglais. L’utilisateur demandait à SHRDLU de déplacer divers objets dans un petit « monde de blocs », qui contenait divers objets de base tels que des cubes, des cônes, et des sphères. La particularité de SHRDLU tenait à la combinaison de quatre idées simples qui, s’additionnant, rendaient la simulation de la « compréhension » beaucoup plus convaincante.
L’une de ces idées était qu’un monde au sens de SHRDLU était si simple qu’un ensemble complet d’objets et de positions pouvait être décrit à partir d’une cinquantaine de mots à peine : des noms comme « bloc » ou « cône », des verbes comme « poser sur » ou « déplacer vers », et des adjectifs comme « gros » ou « bleu ». Les combinaisons possibles de ces éléments de base du langage étaient très simples, et le programme pouvait assez facilement déterminer ce que l’utilisateur voulait dire.
SHRDLU incluait aussi une mémoire contextuelle élémentaire. On pouvait demander à SHRDLU de « placer le cône vert sur le cube rouge » et ensuite d’« enlever le cône » : l’expression « le cône » était comprise comme signifiant le cône dont il venait d’être question. SHRDLU pouvait effectuer une recherche arrière plus poussée pour retrouver le contexte dans la plupart des cas lorsque des adjectifs complémentaires étaient fournis. On pouvait aussi poser des questions sur l’historique, par exemple demander « As-tu ramassé quelque chose avant le cône » ?
Par un effet annexe de cette mémoire, et des règles originelles dont SHRDLU était pourvu, le programme était en mesure de répondre à des questions sur ce qui était possible ou non dans le monde considéré. Par exemple, SHRDLU pouvait déduire que les cubes pouvaient être empilés en cherchant des exemples, mais pouvait aussi réaliser qu’il n'était pas possible d'empiler des pyramides, après l’avoir tenté. Le « monde » contenait des règles de physique élémentaire susceptibles de faire s’écrouler les blocs, indépendamment de l’analyseur du langage.
Enfin, SHRDLU pouvait aussi se rappeler les noms associés à des objets, ou à des arrangements d’objets. On pouvait par exemple définir un « clocher » comme étant une petite pyramide posée sur un grand parallélépipède ; SHRDLU était dès lors en mesure de répondre à des questions sur les clochers dans le monde des blocs, et d’en construire de nouveaux.

## Exemple de dialogue

On trouvera ci-dessous un extrait d’une démonstration célèbre de SHRDLU (les messages étaient originellement en majuscules seules, mais ont été convertis pour faciliter la lecture) :
   « Personne : Prends un gros bloc rouge. SHRDLU : OK. Personne : Attrape la pyramide. SHRDLU : Je ne comprends pas de quelle pyramide vous parlez. Personne (changeant d’avis) : Trouve un bloc plus grand que celui que tu tiens et mets-le dans la boîte. SHRDLU : Par « le », je suppose que vous voulez dire « le bloc plus grand que celui que je tiens ». SHRDLU : OK. Personne : Que contient la boîte ? SHRDLU : La pyramide bleue et le bloc. Personne : Qu’est-ce qui supporte la pyramide ? SHRDLU : La boîte. Personne : Combien de blocs ne sont pas dans la boîte ? SHRDLU : Quatre d’entre eux. Personne : Est-ce qu’au moins un d’entre eux est plus petit que celui que je t’ai dit de prendre ? SHRDLU : Oui, le bloc rouge. etc. »

## Conséquences

Cette démonstration d’« intelligence artificielle » eut un succès retentissant. Ceci conduisit d’autres chercheurs en IA à un optimisme excessif, bientôt reperdu lorsque des systèmes ultérieurs cherchèrent à affronter des situations plus réalistes, qui intégraient l’ambigüité et la complexité du monde réel. La poursuite des expériences dans le courant de SHRDLU lui-même ont eu tendance à se focaliser sur la mise à disposition du programme d’une quantité d’information beaucoup plus importante pour lui permettre de tirer des conclusions, et ont conduit à des tentatives telles que Cyc.