SHRDLU
자연어 처리 (Natural Language Processing) 시스템의 최초의 성공 예인 유명한 SHRDLU 이다. 블록 쌓기의 질의 응답 시스템 이다. Terry Winograd 가 1971년 MIT 박사 논문에서 어린이의 제한된 블록 세계에서 컴퓨터가 영어 문장을 이해하는 것을 보여주었다. 그것은 자연어 이해 프로그램으로서 영어로 문서화된 명령을 수행하는 로봇 팔을 가지고 있다.
Pick up a big red block.
이라는 지시를 받고 커다란 빨간 나무토막을 팔로 들어올리는 화면이다.

Wikipedia : SHRDLU : MIT 의 Terry Winograd 가 개발한 자연어 이해 컴퓨터 프로그램으로서 DEC PDP-6 컴퓨터와 DEC graphics terminal 상에서 Lisp 언어로 작성되었다. 나중에 Utah 대학의 computer graphics lab 에서 개선되어 SHRDLU 의 "세계" 를 full 3D rendering 으로 표현하였다 (아래 그림, source).

SHRDLU 은 영어로 사용자와 대화하도록 만들어 졌다. 사용자는 다양한 블록, 원뿔, 볼 등을 가지고 있는 작은 "블록 세계" 에서 SHRDLU 에게 명령하여 그 물체들을 움지인다. SHRDLU 를 독특하게 만드는 것은 4 개의 간단한 아이디어를 결합하여 "이해 (understanding)" 의 시뮬레이션을 훨씬 더 확실하게 하였다는 것이다.
첫째는 SHRDLU 세계가 매우 단순해서 물체와 위치의 전체 집합이 약 50 개의 단어들, 예를들면 명사 "block" 과 "cone", 동사 "place on" 와 "move to" 형용사 "big" 와 "blue" 등등의 단어만을 사용하여 묘사될 수 있다. 이러한 기본적인 언어의 가능한 조합은 아주 단순하고, 그래서 사용자가 의미하는 것을 형상화하는데 쉽게 숙달되었다.
둘째는 맥락 (문장의 전후관계) 를 알려주는 기본적인 메모리가 포함된다. 사람이 SHRDLU 에 "녹색 원뿔을 적색 블록위에 위치시켜라" 라고 요청하면 "그 원뿔을 가지고 간다" ; "그 원뿔" 은 사람이 말한 바로 그 원뿔을 가져 갈 것이다. SHRDLU 는 부가적인 형용사가 주어지면 대부분의 경우에 적절한 맥락을 찾기위해 후진하여 탐색할 수 있다. 또한 "그 원뿔이전에 어떤 것을 집었느냐?" 라고 묻는 것과 같이 이전의 궤적에 대해서도 질문할 수 있다.
SHRDLU 에 처음 주어진 rule 과 이러한 메모리의 부수 효과는 (side effect, ?), 그 세계에서 가능한 것과 가능하지 않은 것에 대해 답변을 할 수 있다는 것이다. 예를들면 SHRDLU 는 시도해 보고나서 블록은 쌓아놓을 수 있지만, 삼각뿔은 그럴 수 없다고 추론할 것이다. 그 "세계" 는 블록이 밑으로 떨어지게 하는 기본적인 물리학을 포함하며, 그것은 language parser 와는 상관없는 것이다.
마지막으로 SHRDLU 는 물체의 이름들을 기억하고, 배열시킬 수 있다는 것이다. 예를들면 "뾰족탑 (steeple) 은 길다란 사각뿔 위에 작은 삼각뿔이다" 라고 사람이 말한다 ; 이때 SHRDLU 는 그 블록 세계에서 뾰족탑에 대한 질문에 답변을 하고 새로운 뾰족탑을 만들 수도 있다.
SHRDLU 는 AI 의 매우 성공적인 결과를 보여주었다. 이것은 AI 연구자들을 지나치게 낙관하게 만들었으나, 실제 상황에서는 실세계의 애매모호성과 복잡성을 다루려 시도한 시스템에서 곧 한계에 부딪혔다. 원래의 SHRDLU 흐름에 따라 계속적인 노력이 있었고, 프로그램에 상당히 많은 정보를 부여하여 결론을 이끌어 내는데 초점을 맞추게 되었다. 그 결과로 Cyc 같은 프로젝트가 나오게 되었다.
Winograd 는 그이후 스스로 SHRDLU 와 거리를 두었고, SHRDLU 를 믿는 AI 분야의 연구자들은 막다른 골목에 이르게 되었다. SHRDLU 라는 이름은 Linotype machine 의 핵심 키 (alpha keys) 의 배열인 ETAOIN SHRDLU (영어에서 가장 흔하게 사용되는 문자 12개를 나열한 것) 에서 따온 것이다.
참고문헌 : Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. MIT AI Technical Report 235, February 1971
참고 : PLANNER adventure game
링크 :
SHRDLU - Terry Winograd 의 SHRDLU page, source code 포함 ★★★
Conversation with SHRDLU - 주석을 붙인 버전 (annotated version)
SHRDLU resurrection - Java3D version 으로 다시 작성된 SHRDLU
SHRDLU demo 에 사용되는 대화 : source
Person: PICK UP A BIG RED BLOCK.
Computer: OK. (does it)
Person: GRASP THE PYRAMID.
Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.
Person: 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. (does it)
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. (does it)
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. (does it)
Person: PUT THE LITTLEST PYRAMID ON TOP OF IT.
Computer: OK. (does it)
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. (does it)
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. (does it)
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!