**SHRDLU** oli loomuliku keele mõistmiseks loodud arvutiprogramm, mille töötas välja Terry Winograd Massachusettsi Tehnoloogiainstituudis aastail 1968–1970. Programmis vestleb kasutaja arvutiga, andes talle käske objektide liigutamiseks, gruppidele nime panemiseks ning kastidest koosneva lihtsa maailma seisundi teadasaamiseks.

SHRDLU kirjutati programmeerimiskeeltes Micro Planner ja Lisp arvutil DEC PDP-6. Hiljem lisati Utah' Ülikooli arvutigraafikalaboris täielik 3D-kujutis SHRLDU "maailmast".

Nimi SHRDLU on tuletis sõnadest ETAOIN SHRDLU, mis tähistavad esimest kaht rida Linotype-tüüpi masina klaviatuuri tähestikuosast, kus tähed on sorteeritud esinemistiheduse kahanevas järjekorras ingliskeelsetes tekstides.

SHRDLU-st on pärast esialgset avaldamist tehtud eri programmeerimiskeeltes uusi versioone.

Programmi tegevus
-----------------

### Ülevaade

SHRDLU oli peamiselt keeletöötlusprogramm, mis võimaldas kasutajal suhelda inglise keeles. Kasutaja andis programmile käske liigutamaks lihtsaid objekte: plokke, koonuseid, kerasid jne. SHRDLU tegid eriliseks neli lihtsat ideed, mis üheskoos jätsid varasemaga võrreldes usutavama mulje, et programm mõistab kasutaja öeldut. 

Üks nendest ideest oli mõte, et SHRDLU maailm oli nii lihtne, et kogu objektide ja asukohtade hulga saab ära kirjeldada väga väikese arvu sõnadega – ligikaudu 50 sõnaga: nimisõnadega nagu "plokk" ja "koonus", tegusõnadega nagu "[millegi] peale asetama" ja "[kuhugi] liigutama" ja omadussõnadega nagu "suur" ja "sinine". Nende sõnade võimalikud kombinatsioonid olid üsna lihtsad ja programm sai üsna hästi hakkama kasutaja öeldu mõistmisega. 

SHRDLU-l oli ka algeline mälu, et mõista konteksti. Kui kasutaja ütles: "Pane roheline koonus punase ploki peale!" ja seejärel "Võta koonus ära!", siis programm tõlgendas teises lauses sõna "koonus" kui esimeses lauses mainitud rohelist koonust. SHRDLU otsis konteksti ka kaugemalt vestlusajaloost, kui kasutaja lisas objekti kohta omadussõnu. Kasutajal oli võimalik esitada küsimusi ka vestlusajaloo kohta, näiteks: "Kas sa tõstsid midagi enne koonust üles?" 

SHRDLU mälu ja programmi sisse kirjutatud reeglite abil suutis programm vastata küsimustele selle kohta, mis oli ja mis ei olnud selles maailmas võimalik. Näiteks järeldas SHRDLU näidete põhjal, et plokke saab üksteise otsa laduda, ja proovides jõudis järeldusele, et kolmnurki ei ole võimalik kuhja laduda. SHRDLU maailmas toimisid põhilised füüsikaseadused sõltumatult keeletöötlusega tegelevast osast. 

SHRDLU suutis ka meelde jätta objektidele või nende kombinatsioonidele antud nimesid. Näiteks võis kasutaja öelda "kirikutorn on väike kolmnurk kõrge ristküliku peal", misjärel suutis programm vastata küsimustele kirikutornide kohta ja ehitada uusi kirikutorne.

### Tehniline teostus

SHRDLU ehitab inimkeele lausete töötlemiseks süntaksipuu (*parse tree*), nagu enamik sarnase eesmärgiga programme. Esialgu hoitakse infot ainult üksikute sõnade semantika kohta; olulistes kohtades programmi töö käigus käivitatakse "semantikaspetsialistid", mis kombineerivad väiksemad osised üheks suureks seni töödeldud lause kohta käivaks semantiliseks struktuuriks.

Mõju
----

Programmiga näidati väga edukalt tehisintellekti võimalusi. See viis teised tehisintellekti uurijad liigse optimismini, mis kadus, kui üritati arendada süsteeme, mis tegeleksid ebamääraste ja keeruliste olukordadega, mis on tegelikule maailmale lähedasemad.

Edasine töö SHRDLU suunal on peamiselt keskendunud sellesse süsteemi teabe lisamisele ning viinud selliste projektideni nagu Cyc, mille üheks võimalikuks kasutusalaks on terve interneti läbitöötamine eesmärgiga saada korrastatud andmekogum.

Viited
------

1. ↑  SHRDLU, vaadatud 19.09.2013
2. ↑  SHRDLU resurrection, vaadatud 21.10.2013
3. ↑  Andee Rubin, "Grammar for the People: Flowcharts of SHRDLU's Grammar", MIT A.I. Laboratory Memo No. 282, March 1973
4. ↑  Cyc R&D, vaadatud 21.10.2013