Lankide:Jongui14/SHRDLU

Wikipedia, Entziklopedia askea
Jatorrizko egilea Terry Winograd
Hasierako bertsioa 1968
Idatzitako hizkuntza
Micro Planner, Lisp programming language
Sistema eragilea PDP-6
Plataforma DEC
Mota Hizkuntza naturaleko ulermena

SHRDLU lengoaia naturalaren edukia ulertzen zuen lehen programetako bat izan zen, Terry Winograd informatikariak garatua MITen 1968-1970 urteen artean. Bertan, erabiltzaileak ordenagailuarekin hitzegin, objektuak mugitu, bildumak izendatu eta "blokez osaturiko mundu" baten egoera kontsultatzeko aukera du, azken finean bloke desberdinez osaturiko kaxa birtual bat da.

Gordon Bell eta Alan Kotok PDP-6 bat erabiltzen 1964an

SHDRLU Micro Planner eta Lisp programazio-lengoaiak erabiliz idatzia izan zen, DEC PDP-6 ordenagailu eta DEC grafiko terminal batean. Ondorengo aldaketak Utahko Unibertsitateko laborategietako ordenagailu grafikoetan egin ziren, SHRDLU "World" -ren 3D irudikapen osoa gehituz.

SHDRLU izena, ETAOIN SHRDLU-etik dator. Letren teklak Linotype makina batean jarri eta ingelesezko erabilera-maiztasunaren arabera alderantzizko noranzkoan ordenatzean lortzen den emaitza da.

Funtzionaltasuna[aldatu | aldatu iturburu kodea]

SHRDLU, nagusiki, erabiltzailearen interakzioa ahalbidetzen duen hizkuntza-aztertzailea izan zen, ingelesezko terminoak erabiliz. Erabiltzaileak "blokeen munduan" hainbat objetu mugitzeko agindua ematen zion SHRDLUri. "Blokeen mundua" oinarrizko hainbat objekturen konbinaketa bat da: blokeak, konoak, baloiak... SHRDLU berezia bilakatzeko arrazoia, lau ideia sinpleen konbinazioa izan zen, "ulermenaren" simulaketa sinesgarriagoa bihurtuz.

SHRDLUren mundua horren sinplea izateko arrazoietako bat, munduko objetu multzo guztia eta dagokion kokapena deskribatzeko nahikoa ziren 50 hitz: "block" eta "cone" bezalako izenak, "place on" eta "move to" motako aditzak, "big" eta "blue" erako adjektiboak besteak beste. Hitz horien bitartez sortutako konbinaketak nahiko sinpleak ziren, eta programak nahiko ondo funtzionatzen zuen erabiltzaileak nahi zuena errepresentatuz.

SHRDLUk oinarrizko memoria bat gehitu zion testuingurua eskeintzeko. SHRDLUri "put the green cone on the red block" eta gero "take the cone off" esan diezaiokegu, eta modu horretan "the cone" aurretik adierazi diogun "the green cone"-rekin erlazionatuko du. Aldi berean, aurretik adierazitako interazioetan begiratuko du adjetibo gehiago esaten diren kasuetan. Hori dela eta, historikoaren kontsulta egiteko aukera eskeintzen digu "did you pick up anything before the cone?" motako galderak erantzunez.

Hasierako erregelak osatu zituen memoriak albo-ondorio bat sortu zuen, programa gai zen munduko egoerak ebaluatu eta ia posible ziren edo ez erantzun. Adibidez, SHRDLUk blokeak pilatuak izan zitezkeela deduzituko luke, baina proba egin ondoren triangeluak ezin direla pilatu ohartuko zen. "Munduak" oinarrizko fisikak zituen blokeak erortzeko, hizkuntza analizatzailetik guztiz independentea.

Bukatzeko, SHRDLUk objetuei emandako izenak ere gogoratu ditzake. Adibidez, "a steeple is a small triangle on top of a tall rectangle" ("kanpai-dorrea triangelu txiki bat da laukizuzen altu baten gainean"). Modu horretan, "kanpai-dorrei" eginiko erreferentziak erantzuteko ahalmena izango du, edo, nahi baldin badugu berriak sortu.

Laburpena[aldatu | aldatu iturburu kodea]

Hau SHRDLUren demostrazio famatu bat da:

Person: Pick up a big red block.
Computer: OK.
Person: Grasp the pyramid.
Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.
Person (changing their mind): Find a block which is taller than the one you are holding and put it into the box.
Computer: BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS TALLER THAN THE ONE I AM HOLDING.
Computer: OK.
Person: What does the box contain?
Computer: THE BLUE PYRAMID AND THE BLUE BLOCK.
Person: What is the pyramid supported by?
Computer: THE BOX.
Person: How many blocks are not in the box?
Computer: FOUR OF THEM.
Person: Is at least one of them narrower than the one which i told you to pick up?
Computer: YES, THE RED CUBE.
Person: Is it supported?
Computer: YES, BY THE TABLE.
Person: Can the table pick up blocks?
Computer: NO.
Person: Can a pyramid be supported by a block?
Computer: YES.
Person: Can a pyramid support a pyramid?
Computer: I DON'T KNOW.
Person: Stack up two pyramids.
Computer: I CAN'T.
Person: Will you please stack up both of the red blocks and either a green cube or a pyramid?
Computer: OK.
Person: Which cube is sitting on the table?
Computer: THE LARGE GREEN ONE WHICH SUPPORTS THE RED PYRAMID.
Person: Is there a large block behind a pyramid?
Computer: YES, THREE OF THEM: A LARGE RED ONE, A LARGE GREEN CUBE, AND THE BLUE ONE.
Person: Put a small one onto the green cube which supports a pyramid.
Computer: OK.
Person: Put the littlest pyramid on top of it.
Computer: OK.
Person: Does the shortest thing the tallest pyramid's support supports support anything green?
Computer: YES, THE GREEN PYRAMID.
Person: What color is it?
Computer: BY "IT", I ASSUME YOU MEAN THE SHORTEST THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS.
Computer: RED
Person: How many things are on top of green cubes?
Computer: I'M NOT SURE WHAT YOU MEAN BY "ON TOP OF "IN THE PHRASE "ON TOP OF GREEN CUBES " .
DO YOU MEAN:
1 - DIRECTLY ON THE SURFACE
2 - ANWHERE ON TOP OF ?
Person: 2
Computer: THREE OF THEM.
Person: Had you touched any pyramid before you put the green one on the little cube?
Computer: YES, THE GREEN ONE.
Person: When did you pick it up?
Computer: WHILE I WAS STACKING UP THE RED CUBE, A LARGE RED BLOCK AND A LARGE GREEN CUBE.
Person: Why?
Computer: TO GET RID OF IT.
Person: Why did you do that?
Computer: TO CLEAN OFF THE RED CUBE.
Person: Why did you clear off that cube?
Computer: TO PUT IT ON A LARGE GREEN CUBE.
Person: Why did you do that?
Computer: TO STACK UP THE RED CUBE , A LARGE RED BLOCK AND A LARGE GREEN CUBE.
Person: Why did you do that?
Computer: BECAUSE YOU ASKED ME TO.
Person: How did you do it?
Computer: BY PUTTING A LARGE RED BLOCK ON THE TABLE ; THEN LETTING GO OF IT ; THEN PUTTING A LARGE GREEN CUBE ON IT ; THEN LETTING GO OF THAT CUBE ; THEN PUTTING THE RED CUBE ON THAT CUBE; THEN LETTING GO OF THAT CUBE.
Person: How many objects did you touch while you were doing it?
Computer: FOUR OF THEM.
Person: What did the red cube support before you started to clean it off?
Computer: THE GREEN PYRAMID.
Person: There were five blocks to the left of the box then.
Computer: NO, ONLY FOUR OF THEM: THE RED CUBE, TWO LARGE GREEN CUBES AND A LARGE RED BLOCK.
Person: Put the blue pyramid on the block in the box.
Computer: OK.
Person: Is there anything which is bigger than every pyramid but is not as wide as the thing that supports it?
Computer: YES, THE BLUE BLOCK.
Person: Does a steeple
Computer (interrupting): SORRY, I DON'T KNOW THE WORD "STEEPLE".
Person: A "steeple" is a stack which contains two green cubes and a pyramid.
Computer: I UNDERSTAND.
Person: Are there any steeples now?
Computer: NO.
Person: Build one.
Computer: OK.
Person: Call the biggest block "superblock".
Computer: OK.
Person: Have you picked superblock up since we began?
Computer: YES.
Person: Why did you drop it?
Computer: BY "IT", I ASSUME YOU MEAN THE SUPERBLOCK.
I CAN'T EXPLAIN A NON-EXISTENT EVENT.
Person: Is there anything to the right of the red pyramid?
Computer: YES, FOUR THINGS: THE BOX , THE RED CUBE, THE BLUE PYRAMID AND THE BLOCK NAMED SUPERBLOCK
Person: Thank you.
Computer: YOU'RE WELCOME!

Ondorioak[aldatu | aldatu iturburu kodea]

SHRDLU Adimen Artifizialaren manifestazio arrakastatsu bat izan zen. Gainontzeko adimen artifizialeko ikertzaileek gehiegizko baikortasunean murgildu ziren, baina laister bukatu zen egoera hori ondorengo sistemek egoera errealistagoei aurre egin nahian aurkitu ziren anbiguotasun eta konplexutasun mailaren ondorioz.

Nahiz eta hasierako nahia hori ez izan, SHRDLU fikzio interaktiboaren lehen adibide formal bezala kontsideratua dago. 1977. urtean Colossal Cave Adventure jokoa publikatu zen, gehiengoarentzat fikzio interaktiboaren lehen aitzindari erreala.

Ikusi ere[aldatu | aldatu iturburu kodea]

Erreferentziak[aldatu | aldatu iturburu kodea]

Kanpo estekak[aldatu | aldatu iturburu kodea]

  • SHRDLU - Terry Winograd-en SHRDLU orrialdean, iturburu-kodea barne hartzen du
  • SHRDLU resurrection – SHRDLUren bertsio berrirak, Java3D bertsioa barne