# SHRDLU

SHRDLU és un programa d'ordinador per a la comprensió del llenguatge natural, que es considera que pertany a la primera fase de la intel·ligència artificial. Va ser desenvolupat per Terry Winograd al MIT entre els anys 1968 i 1970. Va ser codificat amb els llenguatges de programació Micro Planner i LISP per una màquina DEC PDP-6 amb terminal gràfic DEC. Posteriorment a la Universitat de Utah li va ser afegit un món en 3D on es representava gràficament els objectes coneguts pel programa. El nom SHRDLU no significa res en concret, sinó que està derivat de ETAOIN SHRDLU, que és l'alineament de les lletres en una linotíp, en ordre descendent respecte la freqüència d'ús en anglès.

## Funcionament

SHRDLU permet a l'usuari interaccionar mitjançant frases simples d'anglès. L'usuari ha d'instruir SHRDLU com moure els objectes del seu entorn. Aquest entorn va ser anomenat small blocks word (petit món de blocs). Contenia objectes com ara blocs, cons, boles i altres formes geomètriques. El que va fer únic a SHRDLU, és que amb la combinació dels conceptes anteriors es podia realitzar una simulació de la comprensió computacional del llenguatge. L'entorn o món de blocs era prou simple per poder ser descrit completament (objectes, característiques i posicions) usant un conjunt reduït de paraules en anglès (50 aproximadament). Noms com a bloc, con, i piràmide, verbs com posa, mou i deixa i adjectius com petit, gran i vermell. Les combinacions possibles d'aquest llenguatge bàsic permetien al programa realitzar el que l'usuari li ordenava. SHRDLU incloïa una memòria bàsica de treball que contenia el context de la conversa. Per exemple, se li podia dir: Posa el con verd sobre del bloc vermell. i a continuació: Agafa el con. El con que volem agafar ha de significar el que ens hem referit anteriorment i no qualsevol altre que aquest en l'entorn. SHRDLU havia de buscar l'últim context més proper en el qual hem parlat del con. Això permetia en moltes ocasions posar o no adjectius addicionals. D'altra banda es podia interrogar sobre l'historial d'accions, per exemple: Digues que has agafat abans del con.

## Diàleg d'exemple

A continuació es mostra, traduïda des de l'anglès, una part de la famosa conversa entre SHRDLU i una persona anònima.
    Persona: Pren un bloc vermell gran.
    SHRDLU: D'acord.
    Persona: Agafa la piràmide.
    SHRDLU: No entenc a quina piràmide es refereix.
    Persona: Troba un bloc més alt que aquest que estàs sostenint i posa-ho a la caixa.
    SHRDLU: Suposo que amb "ho" es refereix al bloc que és més alt que aquest que estic sostenint.
    SHRDLU: D'acord.
    Persona: Què conté la caixa?
    SHRDLU: La piràmide blau i el bloc blau.
    Persona: Què sosté a la piràmide?
    SHRDLU: La caixa.
    Persona: Quants blocs no estan en la caixa?
    SHRDLU: Quatre d'ells.
    Persona: És almenys un d'ells més petit que aquest que té dit que prenguessis?
    SHRDLU: Sí, el cub vermell
    Persona: Està sostingut?
    SHRDLU: Sí, per la taula.
    Persona: Pot la taula sostindre blocs?
    SHRDLU: No
    Persona: Apila dues piràmides.
    SHRDLU: No puc.
    Persona: La piràmide blava és meva.
    SHRDLU: Comprenc.
    Persona: Gràcies.
    SHRDLU: De res.

## Conseqüències

El resultat va ser una demostració d'un enorme èxit de la intel·ligència artificial. Això va portar a altres investigadors de la IA a un optimisme excessiu, que aviat es va perdre quan els sistemes més tard va tractar de fer front a situacions més realistes amb el món real ple d'ambigüitat i complexitat. Esforços continus en l'original codi de SHRDLU han tendit a centrar-se en l'aplicació del programa en casos més realistics.

## Enllaços externs

* SHRDLU Arxivat 2020-08-17 a Wayback Machine. - Pàgina web d'en Terry Winograd. Inclou el codi font del programa (anglès).
* SHRDLU resurrection Arxivat 2017-11-17 a Wayback Machine. - nova versió del programa que inclou JAVA3D, (anglès).

## Referències

* ↑ Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. MIT AI Technical Report 235, Febrer 1971, (anglès)
* ↑ Understanding Natural Language, Terry Winograd, Academic Press, Nova York (1972), (anglès)