SHRDLU

SHRDLU
Originalförfattare Terry Winograd
Initial release 1968
Skrivet i Micro Planner , Lisp programmeringsspråk
Operativ system PDP-6
Plattform DEC
Typ förståelse av naturligt språk

SHRDLU var ett tidigt datorprogram som förstår naturliga språk, utvecklat av Terry Winograd vid MIT 1968–1970. I programmet för användaren en konversation med datorn, flyttar objekt, namnger samlingar och frågar efter tillståndet för en förenklad " blockvärld ", i huvudsak en virtuell ruta fylld med olika block.

SHRDLU skrevs i programmeringsspråket Micro Planner och Lisp på DEC PDP-6- datorn och en DEC- grafikterminal . Senare tillägg gjordes vid datorgrafiklabbet vid University of Utah , och lade till en fullständig 3D-rendering av SHRDLU:s "värld".

Namnet SHRDLU härleddes från ETAOIN SHRDLU , arrangemanget av bokstavsknapparna på en Linotype-maskin , ordnade i fallande ordning efter användningsfrekvens på engelska.

Funktionalitet

SHRDLU var i första hand en språktolkare som tillät användarinteraktion med engelska termer . Användaren instruerade SHRDLU att flytta runt olika föremål i "blockvärlden" som innehåller olika grundläggande föremål: block, kottar, bollar, etc. Det som gjorde SHRDLU unik var kombinationen av fyra enkla idéer som gick ihop för att göra simuleringen av "förståelse" mycket mer övertygande.

En var att SHRDLU:s värld var så enkel att hela uppsättningen av objekt och platser kunde beskrivas genom att inkludera så få som kanske 50 ord: substantiv som "block" och "cone", verb som "place on" och "move to", och adjektiv som "stor" och "blå". De möjliga kombinationerna av dessa grundläggande språkbyggstenar var ganska enkla, och programmet var ganska skickligt på att ta reda på vad användaren menade.

SHRDLU inkluderade också ett grundläggande minne för att tillhandahålla sammanhang. Man skulle kunna be SHRDLU att "sätta den gröna konen på det röda blocket" och sedan "ta av konen"; "konen" skulle uppfattas som den gröna konen man just hade pratat om. SHRDLU kunde söka tillbaka längre genom interaktionerna för att hitta rätt sammanhang i de flesta fall när ytterligare adjektiv tillhandahölls. Man kan också ställa frågor om historien, till exempel kan man fråga "fick du upp något före konen?"

En bieffekt av detta minne, och de ursprungliga reglerna som SHRDLU levererades med, är att programmet kunde svara på frågor om vad som var möjligt i världen och vad som inte var det. Till exempel skulle SHRDLU dra slutsatsen att block kunde staplas genom att leta efter exempel, men skulle inse att trianglar inte kunde staplas efter att ha provat det. "Världen" innehöll grundläggande fysik för att få block att falla omkull, oberoende av språktolken .

Slutligen kunde SHRDLU också komma ihåg namn som gavs till föremål, eller arrangemang av dem. Till exempel kan man säga "ett torn är en liten triangel ovanpå en hög rektangel"; SHRDLU kunde sedan svara på frågor om torn i blockvärlden och bygga nya.

Här är en berömd demonstration av SHRDLU:

Person: Plocka upp ett stort rött block.
Dator: OK.
Person: Ta tag i pyramiden.
Dator: JAG FÖRSTÅR ​​INTE VILKEN PYRAMID DU MENER.
Person (ändrar sig): Hitta ett block som är högre än det du håller i och lägg det i lådan.
Dator: MED "DET" ANTAR JAG ATT DU MENER BLOCKET SOM ÄR HÖGRE ÄN DET JAG HÄR.
Dator: OK.
Person: Vad innehåller lådan?
Dator: DEN BLÅ PYRAMIDEN OCH DET BLÅ BLACKET.
Person: Vad stöds pyramiden av?
Dator: THE BOX.
Person: Hur många block finns inte i lådan?
Dator: FYRA AV DEM.
Person: Är åtminstone en av dem smalare än den som jag sa åt dig att plocka upp?
Dator: JA, DEN RÖDA KUBEN.
Person: Stöds det?
Dator: JA, VID BORDET.
Person: Kan bordet plocka upp klossar?
Dator: NEJ.
Person: Kan en pyramid stödjas av ett block?
Dator: JA.
Person: Kan en pyramid stödja en pyramid?
Dator: Jag VET INTE.
Person: Stapla två pyramider.
Dator: JAG KAN INTE.
Person: Kan du snälla stapla upp båda de röda blocken och antingen en grön kub eller en pyramid?
Dator: OK.
Person: Vilken kub sitter på bordet?
Dator: DEN STORA GRÖNA SOM STÖDER DEN RÖDA PYRAMIDEN.
Person: Finns det ett stort block bakom en pyramid?
Dator: JA, TRE AV DEM: EN STOR RÖD, EN STOR GRÖN KUB OCH DEN BLÅA.
Person: Lägg en liten på den gröna kuben som bär upp en pyramid.
Dator: OK.
Person: Lägg den minsta pyramiden ovanpå den.
Dator: OK.
Person: Stödjer det kortaste som den högsta pyramidens stöd stödjer något grönt?
Dator: JA, DEN GRÖNA PYRAMIDEN.
Person: Vilken färg är det?
Dator: MED "IT" ANTAR JAG ATT DU MENAR DET KORTSTA DET DEN HÖGSTA PYRAMIDENS STÖD STÖDER.
Dator: RÖD
Person: Hur många saker finns ovanpå gröna kuber?
Dator: JAG ÄR INTE SÄKER VAD DU MENAR MED "ÖVER "PÅ FRASEN "PÅ TOPPEN AV GRÖNA KUBAR ".
MENAR DU:
1 - DIREKT PÅ YTA
2 - NÅGONSTANS Ovanpå ?
Person: 2
Dator: TRE AV DEM.
Person: Hade du rört någon pyramid innan du satte den gröna på den lilla kuben?
Dator: JA, DEN GRÖNA.
Person: När hämtade du den?
Dator: MEDAN JAG STABLADE UPP DEN RÖDA KUBEN, ETT STORT RÖTT BLACK OCH EN STOR GRÖN KUB.
Person: Varför?
Dator: FÖR ATT BLI AV DEN.
Person: Varför gjorde du det?
Dator: FÖR ATT RENGÖRA UR DEN RÖDA KUBEN.
Person: Varför tog du bort den kuben?
Dator: ATT SÄTTA DEN PÅ EN STOR GRÖN KUB.
Person: Varför gjorde du det?
Dator: FÖR ATT STABLA UPP DEN RÖDA KUBEN, ETT STORT RÖTT BLOCK OCH EN STOR GRÖN KUB.
Person: Varför gjorde du det?
Dator: FÖR ATT DU BER MIG ATT.
Person: Hur gjorde du?
Dator: GENOM ATT SÄTTA ETT STORT RÖTT KLOCK PÅ BORDET ; SEDAN SLIPPA DET ; ATT SÄTTA EN STOR GRÖN KUB PÅ DET ; SEDAN släpper man DEN KUBEN ; ATT SÄTTA DEN RÖDA KUBEN PÅ DEN KUBEN; SEDAN SLÄPPAS DEN KUBEN.
Person: Hur många föremål rörde du när du gjorde det?
Dator: FYRA AV DEM.
Person: Vad stödde den röda kuben innan du började rensa bort den?
Dator: DEN GRÖNA PYRAMIDEN.
Person: Det var fem kvarter till vänster om rutan då.
Dator: NEJ, ENDAST FYRA AV DEM: DEN RÖDA KUBEN, TVÅ STORA GRÖNA KUBAR OCH ETT STORT RÖTT BLACK.
Person: Lägg den blå pyramiden på blocket i lådan.
Dator: OK.
Person: Finns det något som är större än varje pyramid men inte är lika brett som det som stöder den?
Dator: JA, DET BLÅ KLOCKET.
Person: Gör ett torn
Dator (avbryter): FÖRLÅT, JAG KAN INTE ORDET "STEEPLE".
Person: Ett "torn" är en stack som innehåller två gröna kuber och en pyramid.
Dator: JAG FÖRSTÅR.
Person: Finns det några torn nu?
Dator: NEJ.
Person: Bygg en.
Dator: OK.
Person: Kalla det största blocket för "superblock".
Dator: OK.
Person: Har du plockat upp superblock sedan vi började?
Dator: JA.
Person: Varför släppte du det?
Dator: MED "IT" ANTAR JAG ATT DU MENER SUPERBLOCKET.
JAG KAN INTE FÖRKLARA EN ICKE-EXISTERANDE HÄNDELSE.
Person: Finns det något till höger om den röda pyramiden?
Dator: JA, FYRA SAKER: LÅDAN , DEN RÖDA KUBEN, DEN BLÅ PYRAMIDEN OCH BLOCKET MED NAMN SUPERBLOCK
Person: Tack.
Dator: DU ÄR VÄLKOMMEN!

Konsekvenser

SHRDLU ansågs vara en oerhört framgångsrik demonstration av artificiell intelligens (AI). Detta ledde andra AI-forskare till överdriven optimism som snart gick förlorad när senare system försökte hantera situationer med en mer realistisk nivå av tvetydighet och komplexitet [ citat behövs ] . Efterföljande ansträngningar av SHRDLU-typ, som Cyc , har tenderat att fokusera på att förse programmet med betydligt mer information som det kan dra slutsatser från.

I en intervju 1991 sa Winograd om SHRDLU:

[...] den berömda dialogen med SHRDLU där man kunde plocka upp ett block, och så vidare, arbetade jag mycket noggrant igenom, rad för rad. Om du satte dig framför den och ställde en fråga till den som inte fanns i dialogen, fanns det en viss sannolikhet att den skulle svara på den. Jag menar, om det var någorlunda nära en av frågorna som fanns där till form och innehåll, så skulle den förmodligen få det. Men det fanns inget försök att få det till en punkt där du faktiskt kunde ge det till någon och de kunde använda det för att flytta runt block. Och det fanns ingen som helst press för det. Pressen var för något man kunde demonstrera. Ta ett färskt exempel, Negropontes Media Lab , där istället för " förgås eller publicera " är det "demo eller dö" . Jag tror att det är ett problem. Jag tror att AI led av det mycket, eftersom det ledde till " Potemkin-byar ", saker som - för de saker som de faktiskt gjorde i demon såg bra ut, men när man tittade bakom det fanns det inte tillräckligt med struktur för att få det att verkligen fungera mer allmänt.

Även om det inte är avsiktligt utvecklat som sådant, anses SHRDLU vara det första kända formella exemplet på interaktiv fiktion , eftersom användaren interagerar med enkla kommandon för att flytta objekt runt en virtuell miljö, även om den saknar det distinkta berättandet som normalt finns i den interaktiva fiktionsgenren. Spelet Colossal Cave Adventure från 1976-1977 anses allmänt vara det första verkliga verk av interaktiv fiktion.

Se även

externa länkar

  • Winograd, Terry (2001). "SHRDLU" . Arkiverad från originalet 2020-08-17. – Terry Winograds SHRDLU-sida, innehåller källkod