John McCarthy
컴퓨터를 만든 15 인의 과학자 : Dennis Shasha. Cathy Lazere 공저, 박영숙 옮김, 세종연구원, 1998 (원서 : Out of Their Minds : 1995)
컴퓨터가 일반적인 지능을 갖게 되기를 원한다면, 그 외형적 구조는 상식적인 지식과 추론이 되어야 한다. - 존 매커시
한 5 살자리 아이가 플라스틱 장난감 차를 가지고 놀면서 그것을 앞뒤로 밀기도 하고 경적을 울리기도 한다. 그 아이는 자동차를 식탁 위에서 굴리거나 어린 동생의 머리 위로 던지면 안 된다는 것을 알고 있다. 학교에 갈 때에는 그 차를 동생의 손이 닿지 않는 높은 곳에 올려 놓고, 집으로 돌아올 때에는 자기가 놓아둔 바로 그 위치에서 자동차를 찾게 되기를 기대한다.
그녀의 행동과 기대를 이끌어 가는 추론은 그 또래의 아이라면 누구든지 이해할 수 있을 만큼 아주 단순하다. 하지만 대부분의 컴퓨터들은 아직까지 그렇지 못하다. 컴퓨터의 문제 가운데 일부는 가구에 흠집을 내거나 어린 동생을 다치게 하면 안 된다는 것과 같이, 5 살짜리가 그 부모로부터 배우는 일상의 사회적 관습에 관한 지식을 결여하고 있다는 점에 관련된 것이다. 또 한 가지 측면의 문제는 바로 우리가 일상에서 행하는 것처럼 경험에 의한 추측의 상식적 체계를 사용해 추론을 하는 것이 컴퓨터에서는 불가능하다는 점이다. 그와 같은 상식 체계는 틀에 박힌 평범한 논리에는 낯선 것이며, 따라서 당연히 평균적인 컴퓨터 프로그래머의 사고에는 익숙하지 않은 것이 된다. 평범한 논리는 '연역 (deduction)' 이라고 하는 추론의 형식을 사용한다. 연역은 우리에게 '고용되지 않은 배우들은 모두 웨이터다' 와 '세바스찬은 고용되지 않은 배우다' 같은 문장들에서 '세바스찬은 웨이터다' 와 같은 새로운 문장을 결론으로 이끌어 낼 수 있게 해 준다. 연역의 가장 큰 장점은 '견실 (sound)' 하다는 점, 다시 말해 그 전제가 유효하면 결론도 역시 유효할 것이라는 데 있다. 또한, 연역은 '단조적 (monotonic)' [본래 '변화하지 않는다 (unvarying)' 는 의미의 어원을 가진 수학 용어] 이라흔 특성을 가진다. 즉, 만일 전제에 모순되지 않는 새로운 사실들을 알게 된다 해도 그 결론들은 여전히 유효할 것이다.
그러나 우리 대부분이 학교에서는 연역을 배우는 반면, 그것을 실제로 사용하는 경우는 아주 드물다. 그 5 살짜리 아이는 장난감 자동차를 동생의 손이 닿지 않는 곳에 두었기 때문에 그것이 그 자리에 그대로 있을 것이라고 믿는다. 하지만 그날 학교에 가면서 동생이 의자에 기어올라가는 것을 보았다면 그러한 확신을 갖지는 않았을 것이다. 5 살짜리의 상식적 추론은 새로운 사실들이 표면화되는데 따라 '비단조적 (nonmonotonically)' 으로 수정되어야 할, 경험에 의한 추리에 의존하는 것이다. 그렇다고 해서 이러한 점에 5 살짜리들만이 특별한 것도 아니다.
연역의 대가로 알려진 상상 속의 인물 셜록 홈즈 (Sherlock Holmes) 조차도 실제로는 연역을 그다지 자주 사용하지 않았다. 부상 당한 경주마 실버 블레이즈 (Silver Blaze) 에 관련된 모험을 하는 동안 홈즈는 그의 가장 독창적인 통찰력 가운데 하나를 통해, 그 감시견이 짖지 않았던 것은 바로 범인을 알고 있었기 때문이라는 결론을 내렸다. 이것은 명석하고 그럴듯한 생각이며 실제로 그 이야기 속에서 사실로 판명되지만, 결코 연역은 아니다. 그 개에게 약을 먹였거나 재갈을 물렸을 수도 있고, 아니면 개가 토끼 사냥을 나가 있었을 수도 있는 것이다.
프로그래머들은 컴퓨터가 연역을 수행하도록 만드는 방법을 알고 있다. 연관된 수학적 계산들이 잘 이해되기 때문이다. 그러나 만일 컴퓨터가 인간의 생존이 달려 있는, 불확실하긴 하지만 대체로 옳은 상식적 추론을 수행하길 바란다면, 완전히 새로운 형태의 수학적 논리를 만들어 내야만 할 것이다. 그것이 바로 존 매커시가 스스로에게 설정했던 목표들 가운데 하나이다.
그 밖에도 매커시에 대해 알아야 할 이유들은 또 있다. 그는 인공 지능 (AI) 에서 주요한 언어로 사용될 뿐 아니라, 만들어진 초기부터 언어 설계에 대한 풍부한 아이디어의 원천이 되었던 '리스프 (Lisp, list processing)' 를 고안해 내었다. 매커시는 라빈과 타잔에 관한 장에서 보게 될 바와 같이, 교사로서 그리고 퍼즐 출제자로서 암호학에서 평면 테스트에까지 이르는 다양한 준 전문 분야의 다른 컴퓨터 과학자들에게 영감을 주어 왔다.
1927 년 보스턴에서 태어나 공산당 활동을 하게 될 때까지 매커시는 가족들과 함께 이리저리 옮겨다니면서 살았다. 아일랜드계 카톨릭교도였던 그의 아버지가 목수로, 어부로, 그리고 노동조합 조직가로 직업을 바꾸는 데 따라 가족들이 보스턴에서 뉴욕으로, 다음엔 로스앤젤레스로 계속해서 옮겨다녀야 했던 것이다.
리투아니아계 유대교도였던 그의 어머니는 저널리스트로 '연합 통신 (The Federated Press)' 이라는 통신사를 거쳐 공산당 신문에서 일하다가, 나중엔 사회사업가로 활동하였다. 매커시는 자신이 일찌기 과학에 관심을 갖게 되었던 것은 그의 가족의 정치적 입장과 연관이 있다고 생각한다.
단지 인류에 유익한 것이라는 이유에서 기술에 대해 막연한 자신감을 가지고 있었습니다. 내가 어렸을 때 『10 만 가지 불가사의 100,000 Whys』라는 책을 읽었던 일을 기억합니다. 그것은 1930 년대 초 일린 (M. Ilin) 의 저서로 아주 인기 있는 소비에트의 기술 서적이었지요. 미국에서는 한 번도 그런 성격의 책을 본 기억이 없습니다. 난 10 년에서 15 년쯤 전에 다소 극단적일 만큼 조숙한 어떤 중국 아이에 관한 글을 아주 흥미 있게 읽은 적이 있는데, 거기엔 그 아이가 바로 그 10 만 가지 불가사의라는 책을 읽었다는 이야기가 적혀 있었습니다.
매커시는 자신이 평범한 십대를 보낸 것으로 기억하지만, 실제로 보여지는 사실들은 그와 다르다. 고등학교 시절 그는 일명 캘테크 (Cal Tech) 라고 부르는 캘리포니아 공과대학에서 대학 편람 사본을 얻어, 수학과의 신입생 및 2 학년생들이 사용하는 계산법 서적들을 찾아 보았다. 그리고는 그 책들을 사서 거기에 실려 있는 연습 문제를 모두 풀어 버렸다. 그 덕택에 1944 년 그가 마침내 캘테크에 들어가게 되었을 때에는 대학 수학의 첫 2 년 과정을 건너 뛸 수 있었다.
1948 년 매커시는 수학 전공으로 대학원 과정을 시작하였다. 그해 9 월 그는 행동에서의 지적 메커니즘 (Cerebral Mechanisms in Behavior) 을 주제로 캘테크에서 개최된 힉슨 심포지엄에 참석하였다. 거기서 위대한 수학자이자 컴퓨터 설계자인 존 폰 노이만이 자체 복사 자동 기계 (self-replicating automata) 에 대한 논문을 발표하였다. 그것은 자체의 복사품을 만들어 낼 수 있는 기계였다. 그 회의에서 누구도 명시적으로 기계의 지능을 인간의 지능에 연관시켰던 것은 아니었지만, 폰 노이만의 강의는 매커시의 호기심에 불을 당겼다.
1949 년 매커시는 프린스턴에서 수학 박사 과정을 시작하면서 인간의 지능을 기계에 모델로 적용시키는 첫 시도를 하였다.
당시 난 지능을 갖춘 것이란 하나의 유한 오토머터인 환경에 연결된 하나의 유한 오토머터라고 생각하고 있었습니다. 나는 존 폰 노이만과 만날 약속을 하였지요. 그는 내게 용기를 북돋아 주었습니다. 내게 "그걸 논문으로 써 보시오. 한 번 써 봐요." 하고 권했지요. 하지만 난 그것을 정말 훌륭하다고 느끼지 않았기 때문에 결국 쓰지 않았습니다.
'오토머터 (automata)', 즉 자동 기계는 시간의 흐름에 따라 하나의 상태에서 다른 상태로 옮겨가는 기계를 모델로 한다. 예를 들어, 표준 변속 자동차는 운전자가 점화 장치를 맞물리게 하면 '시동이 꺼진 (off)' 상태에서 '중립에 시동이 걸린 (in-neutral-but-on)' 상태로 이동한다. 이어서 운전자가 주행으로 기어를 바꾸면 자동차는 '시동이 걸려 있는 1 단 기어 (in-first-gear-and-on)' 상태로 이동한다. '상호 작용 오토머터 (interacting automata)' 는 자체의 상태에 따라, 그리고 다른 기계들의 상태에 대해 자신이 관찰하는 바에 따라 상태를 바꾸어 가는 것이다.
오토머터 가운데에는 지능을 갖춘 것도 있지만 (추측컨대, 운전자도 그렇다), 그렇다고 해서 지능이 필수적인 요소는 아니다. 상호 작용 오토머터 모델은 바로 그 두 가지 사이에 어떤 연속성을 설정하고자 시도하는 것이다.
매커시는 오토머터를 인간 지능의 모델화에 사용하는 첫 번째 시도를 거부하였지만, 상태 (state) 와 전이 (transition) 에 대한 발상은 10 년도 더 되는 시간이 지난 후에 상황별 계산법에 대한 연구에서 다시 표면화된다.
그 시간을 거치는 동안에도 시간과 같은 지능을 갖춘 기계를 만드는 데 대한 매커시의 관심은 줄곧 사라지지 않았다. 1952 년 여름, 프린스턴의 대학원생 제리 레이너 (Jerry Rayna) 가 매커시에게 기계의 지능에 관심을 가진 사람들을 통해 그 주제에 대한 논문들을 수집해 볼 것을 제안하였다. 매커시가 맨 처음으로 접근한 사람들 가운데 하나는 클로드 섀넌 (Claude Shannon) 이었다. 그는 스스로가 '통신의 수학적 이론' 이라 명명했던 것을 고안해 낸 인물이다. 다른 사람들이 줄여서 '정보 이론 (information theory)' 이라 이름붙인 섀넌의 이론은 처음엔 원격 통신 분야에, 나중엔 언어학 및 수학과 컴퓨터 과학에 적용되었다.
섀넌은 현란한 전문 용어를 좋아하지 않았습니다. 그는 그 책에 『오토머터 연구 Automata Studies』 라는 제목을 붙였지요. 그리고 나서 논문들이 들어오기 시작했지만 난 실망하고 말았습니다. 그것들만으로는 지능에 관한 연구가 충분하지 않았기 때문이었지요.
그래서 난 1955 년 다트머스 프로젝트를 준비하기 시작하면서 우리의 색깔을 보다 명확히 해야겠다고 생각하였고, 그러기 위해서 참가자들에게 우리가 논의할 내용을 보다 분명히 밝힐 수 있는 인공지능이란 용어를 사용하였습니다.
1956 년 여름의 다트머스 인공 지능 연구 프로젝트는 컴퓨터 과학의 역사에 한 획을 긋는 사건으로 입증되었다. 두 달에 걸쳐 10 명이 동원된 그 연구의 야심찬 목표는 (발제 내용의 표현을 빌면) '원칙적으로, 기계가 자신을 시뮬레이트할 수 있게 만들 수 있을 만큼 모든 학습적 측면 혹은 지능의 다른 어떤 특징이 아주 정밀하게 묘사될 수 있다는 추측을 토대로 진행해 나간다' 는 것이었다.
프로젝트를 주관한 네 명의 인물 매커시, 마빈 민스키 (Marvin Minsky : 당시 하버드 재직), 내트 로체스터 (Nat Rochester : IBM 의 탁월한 컴퓨터 설계사), 섀넌은 록펠러 재단의 재정 지원을 요청하였다. 그들이 제시한 내역은 교수단 수준의 참가자들 각자에게 1200 달러씩의 연구비에다 '먼 곳에서 오는 참가자들의 기차삯' 을 더해 총액이 7500 달러로, 오늘날에 비추어 보면 유별나게 보일 만큼 절제된 요구였다. 그 안을 제출하면서 매커시가 작성했던 부분에는 그들이 컴퓨터가 '게임을 훌륭하게 실행하면서 다른 작업들도 수행하도록' 프로그래밍한다는 희망을 가지고 언어와 지능의 관계를 연구할 것이라고 적혀 있었다. 매커시는 거의 40 년 전으로 거슬러 올라가는 그 회의를 돌이켜 보면서, 자신의 성격을 그대로 드러내 주는 그 특유의 무뚝뚝한 말투로 당시 자신이 기대하고 있었던 바를 이렇게 묘사한다.
내가 그 회의에 걸었던 목표들은 전반적으로 비현실적이었습니다. 나는 큰 프로젝트들이 단 한 차례의 여름 회의 기간 내에 수행될 수 있으리라고 생각하였지요. 그 때 내가 모델로 삼고 있었던 것은 사실 한 번도 참석해 본 적은 없고, 단지 들어서만 알고 있었던 군대의 영공 방위에 대한 여름 회의였습니다.
그 회의는 진짜 지능을 갖춘 기계를 만들어 낸다는 엄청나게 어려운 문제를 해결하는 방안에 전혀 근접하지 못하였다. 하지만 거기서 확립된 목표와 기술들은 인공 지능이 컴퓨터 과학 내에서 독립된, 그리고 궁극적으로는 추진력을 갖게 될 하나의 연구 분야로 인식되도록 만들었다. 회의 참석자들 중 다수는 더 이상 그 분야의 연구를 추구하지 않았지만, 몇몇 사람들이 제출한 연구 성과들은 이후로도 오랜 시간동안 영향력을 가졌다.
카네기 멜런 대학의 앨런 뉴웰과 J. C. 쇼, 허버트 사이몬 등은 자신들의 정보 처리 언어 (Information Processing Language) 2차 버전 (IPL 2) 에 대해 설명하였다. IPL 2 는 그 세 과학자들이 논리 이론 기계라 불리는 프로그램을 제작하기 위해 쏟아 부었던 노력의 결과물이었다. 그것은 기본 논리로 정리들을 증명하고 게임을 수행할 수 있는 프로그램이었다. 이것을 위해서는 체스의 말과 같은 객체들에 대한 기호와 논리적 변수들의 진리값을 조작할 수 있는 프로그래밍 언어가 요구되었다. 그것은 숫자들에 대한 산술을 수행하는 것과는 완전히 다른 문제였기 때문에 그들은 자신들이 '리스트 구조 (list structure)' 라 이름붙인 것을 사용할 것을 제안하였다.
기호 처리를 위한 리스트의 사용이 어떤 것인지 보다 쉽게 이해되도록 『이상한 나라의 앨리스 Alice in Wonderland』를 변형시켜 인용해 보자. 돌연변이종 고양이인 체셔캣 (Cheshire Cat) 이 앨리스를 보고 "내가 미쳤거나 아니면 해터 (Hatter) 가 미친 거야." 라고 말한다. C, H, A 가 각각 체셔캣이나 해터 혹은 앨리스가 미쳤다고 주장들을 나타낸다고 가정해 보자. 고양이의 말을 리스트의 형식으로 표현하면 (or C H) 와 같이 나타낼 수 있을 것이다. 계속해서 고양이는 앨리스에게 이렇게 말한다. "네가 미쳤거나 아니면 해터가 미쳤어." 영리한 앨리스는 이 문장을 앞의 문장과 묶어 (and (or C H) (or A H)) 로 만들 것이다. 마지막으로 고양이는 이렇게 말한다. "우리 셋 가운데 하나만 미친 거야." 다시 말하면, 최소한 둘은 미치지 않았다 (NOT mad) 는 것이다. 앨리스는 이것을 (and (or C H) (or A H) (or (and (not A) (not C)) (and (not A) (not H)) (and (not C) (not H)))) 로 표현할 것이다.
이렇게 문장들을 리스트 형식으로 나타낸 다음에는 (and (or X Y) (or Z Y)) = (or (and X Z) Y) 와 같이 리스트 조작을 위한 규칙들을 만들 수가 있다. 다시 말해, X 나 Y 중 하나와 Z 나 Y 중 하나가 유효하다면, 그것은 곧 X 와 Z 가 유효하거나 아니면 Y 가 유효하다는 말이 되는 것이다. 이 규칙과 또 다른 것들을 적용하여 우리는 (and H (not C) (not A)) 라는 결론을 이끌어 낼 수 있을 것이다. 결국 고양이의 말에 따르면 해터 하나만 미친 것이라는 결과가 된다.
논리적 추론에 리스트를 사용하는 방법의 장점은 리스트들이 커지거나 줄어들 수 있으며, 추론이 진행되는 데 따라 스스로를 수정할 수 있다는 점이다. 뿐만 아니라, 규칙과 자료 양자 모두를 동일한 형식으로 표현할 수 있다. 당시 회의에 참석했던 대부분의 참가자들에게 리스트 조작은 명백한 승자로 보였다. 다트머스 회의의 또 한 가지 성과는 기하학의 정리들을 검증할 장치를 만들자고 한 마빈 민스키의 제안이었다. 민스키는 자신의 논문에서 몇 가지 예를 시험적으로 다룬 뒤 기하학의 정리들을 증명하는 것은 뉴웰과 사이먼이 주창한 원칙 기준의 접근 방식을 응용할 아주 적절한 대상이 될 것이라고 제안하였다. IBM 의 허버트 겔런터 (Herbert Gelernter) 와 나다니엘 로체스터 (Nathaniel Rochester) 는 그 프로그램을 실행에 옮기기로 결정하였다. 겔런터는 훗날 유기화학자들이 새로운 화학약품을 합성하는 일을 돕는 도구를 개발해 낸 인물이며, 그의 아들 데이비드는 병렬 프로그래밍과 의학의 인공 지능 분야에서 이름난 연구자이다. 매커시는 당시 그 정리 증명 프로젝트에 자문 역할을 맡아 그에게 지능적 행동을 프로그래밍해 볼 기회를 주었다.
겔런터와 그의 조수 카를 거버리히 (Carl Gerberich) 는 포트란을 가지고 시작하자는 내 제안을 받아들여, 그들이 FLPL, 즉 포트란 리스트 처리 언어 (Fortran List Processing Language) 라고 이름붙였던 것을 만들어 냈습니다. 그리고 자신들의 아이디어도 덧붙였지요.
1956 년 존 배커스와 그의 IBM 팀은 최초의 고급 프로그래밍 언어인 포트란을 소개하였다. 포트란은 수치 계산에 대한 작업을 하는 프로그래머들을 각각의 컴퓨터에 특정적인 어셈블리어를 써야 하는 어려움에서 해방시켜 주었다. 오늘날까지도 포트란은 과학 및 공학적 계산의 링궈 프랭커 (lingua franca), 즉 혼성 국제어로 자리를 지키고 있다. FLPL 은 포트란의 능력을 기호 조작에까지 확장시킨 첫 번째 시도였다. 1958 년 여름 IBM 에서 일하고 있었던 매커시는 고등학교 시절의 경험을 되살려 당시 대수식의 미분을 통해 그가 완전히 익혔던 한 응용 문제에 대한 리스트 프로그램을 작성하는 것으로 FLPL 의 사용을 시도해 보았다. 하지만 그 아이디어는 곧바로 재귀적 조건식을 요구하였고, 포트란에서는 재귀가 불가능하였다.
만일, 포트란이 재귀를 허용하기만 했다면, 난 FLPL 의 사용을 계속 추진하였을 겁니다. 실제로 포트란에 재귀를 추가할 방법까지 검토해 보았었지요. 하지만 그건 너무나도 조화롭지 못한 구성이었습니다.
결국 IBM 측에서는 얼마 못가 인공 지능에 대한 관심을 잃어버렸다. 일부 고객들은 지능을 갖춘 기계들이 자신들의 일자리를 위협하게 될 것이라고 생각하였고, 그 결과 1960 년대 초반에 이르면서 IBM 사 마케팅 메시지는 '컴퓨터란 더도 덜도 아닌, 오로지 명령받은 것만을 그대로 수행하는 멍청한 계산 기계에 지나지 않는다' 는 것이 되어 버리고 말았다.
매커시는 계속해서 포트란을 주물럭거리며 시간을 보내는 대신 리스프를 발명하였다. 훗날 뉴웰과 쇼, 사이먼 등이 IPL 을 시간이 갈수록 더 복잡해지는 언어였다고 묘사한 한편, 매커시는 리스프를 시간이 지날수록 더 단순해진 언어라고 묘사한다.
리스프는 리스트 처리 언어 (list processing language) 의 약어이다. 따라서, 쉽게 짐작할 수 있는 것처럼 리스프로 작성되는 모든 자료는 리스트로 표현된다. 그리고 그 리스트들은 괄호로 묶어 표시한다. 예를 들어, (Robert taught Dennis) 는 'Robert taught Dennis. (로버트가 데니스를 가르쳤다.)' 는 문장을 표현하는 리스트가 될 것이다. 여기서는 순서가 중요한 의미를 갖는다. 바로 순서에 따라 과연 누가 누구를 가르쳤는지 그 주체가 달라지기 때문이다.
한편, (cabbage lettuce strawberries) 같은 리스트는 장보기 목록을 표시한 리스트의 예가 될 것이다. 이 경우엔 순서는 문제가 되지 않는다. 배추, 상추, 딸기의 세 가지 품목을 아무 순서로나 살 수 있기 때문이다.
이 두 가지 예에서 리스트는 모두 그 구성 요소로 '아톰 (atom)' 들을 포함하고 있다. 하지만 리스트와 달리 각각의 아톰은 다시 그것을 구성하는 하위 요소들을 갖지 않는다. 한편, 리스트는 다른 리스트들을 구성 부분으로 포함할 수도 있다 (그리고 실제로 대부분이 그렇게 포함하고 있다). 예를 들어, (Robert splashed (Carol and Dennis)) 는 괄호가 캐롤과 데니스 모두 splashed 라는 동사의 목적어라는 것을 표시해 주는 문법 구조를 반영한다. 또 하나의 예로 (times 6 (plus x y)) 는 6 × (x + y) 를 표시하는 리스트가 될 것이다. 여기서는 순서가 중요한 의미를 가지며 괄호는 x 와 y 가 묶여진 것임을 나타낸다.
이처럼 리스트는 언어의 기초를 이루는 문장 구조뿐만 아니라, 과학 및 공학의 기초가 되는 표준적인 수학적 구조들까지도 모두 표현할 수 있다.
초기부터 매커시의 팀에 속한 공동 연구자들은 일단 무언가에 사로잡히면 아주 왕성한 의욕을 보이곤 했다.
1958 년 가을 내가 M.I.T. 로 돌아갔을 때, 민스키와 나에게는 커다란 연구실과 키 펀치, 비서, 두 명의 프로그래머, 그리고 수학과 대학원생 여섯 명이 할당되었습니다. 우린 이미 그 이전 봄에 인공 지능 프로젝트의 조직을 위해서 제리 비스너 (Jerry Wiesner) 에게 그러한 준비를 부탁해 놓았었거든요.
우리는 요구 사항들을 서면으로 제출하지 않았었는데도 그것들을 얻을 수 있었습니다. 다행히 당시 M.I.T. 의 전자학 연구소는 미연방국군에 의해 무제한의 공동 사용 제약을 막 얻어 내고 아직까지 모든 자원을 위임하지 않은 상태였던 것입니다. 난 바로 그와 같은 융통성이 AI 분야에서 미국이 다른 나라들보다 앞서 출발을 할 수 있었던 요인 중 하나라고 생각합니다. 뉴웰-사이먼의 작업 역시 미공군이 랜드사 (Rand Corporation) 측에 제공한 융통성 있는 지원 덕택에 가능했었지요.
연구가 진척을 보임에 따라 매커시는 그 언어의 표현 능력을 향상시키려는 시도를 하였다. 1959 년 그는 리스프가 어떠한 계산 함수라도 공식화할 수 있음을 보여 주려고 애쓰면서, '연산 (eval)' 이라고 알려져 있는 하나의 기능을 추가하였다.
연산은 프로그램이 어떤 새로운 함수나 절차를 정의한 뒤, 그것을 그 프로그램의 일부로 실행할 수 있게 해 준다. 대부분의 언어에서는 프로그램이 새로운 함수를 실행하려면, 그에 앞서 작동을 정지하고 '재컴파일' 을 해야만 하였다. 하지만 연산 함수는 어떠한 함수라도 받아들여 그것을 실행할 수 있기 때문에, 연산은 '범용 튜링기계 (Universal Turing Machine)' 의 역할, 즉 다른 컴퓨터들의 범용 시뮬레이터 역할을 한다.
연산의 개념은 아주 실용적인 목적에 도움이 된다. 예를 들어, 증권 거래소는 국제 금융 시장의 활동 때문에 하루 24 시간, 일주일 7 일 내내 자체의 컴퓨터 서비스를 가동시킨다. 누군가가 로이터의 주식 데이터를 새로운 방식으로 분석하는 프로그램을 작성한다고 가정해 보자. 브로커들은 그 프로그램을 곧바로 사용하게 되기를 바라겠지만, 그건 자신들의 기계도 계속해서 함께 사용할 수 있다는 보장이 있을 경우에만 해당되는 이야기일 것이다. 연산은 그것을 가능하게 해 준다.
리스프에 체현된 발상은 알골 (배커스와 나우어가 배커스-나우어 형식을 발명하게 된 동기가 되었던 언어) 의 설계를 맡은 국제 위원회의 관심을 끌었다. 1960 년 그 언어를 주제로 파리에서 개최된 회의에서 매커시는 재귀와 조건식 (conditional expression) 두 가지 모두를 제안하였다. 표기법을 놓고 한동안 승강이를 벌인 뒤 위원회는 그 아이디어를 받아들였다.
리스프
리스프로 표현된 기본 연산
전형적인 리스프 함수와 절차들은 하나의 리스트를 취하여 그것을 가르거나, 아니면 몇 개의 리스트를 취한 다음 하나의 새로운 리스트를 작성한다. 예를 들어, 함수 'append (추가)' 는 두 개의 리스트를 취한 다음, 하나를 다른 하나의 끝에 붙여 새로운 하나의 리스트를 만들어 낸다. 이러한 방식은 명사와 동사구들을 가지고 하나의 문장을 구성해야 할 때 유용하게 사용될 수 있다. 밥 (Bob) 과 앨리스 (Bob kissed Alice) 라는 리스트를 만들어 내는 것이다.
또 하나의 유용한 함수 'reverse (역)' 은 리스트에 들어 있는 원소들의 순서를 뒤에서 앞쪽으로 정렬시킬 것이다. 그 경우 (reverse (append (Bob kissed) (Alice))) 는 (reverse (Bob kissed Alice)) 를 만들어 내고, 이것은 다시 (Alice kissed Bob) 과 같은 리스트를 만들어 낼 것이다. 한편, (append (reverse (Bob kissed)) (Alice)) 는 (append (kissed Bob) (Alice)) 를 만들고, 이어서 (kissed Bob Alice) 라는 리스트를 만들어 낸다.
밥과 앨리스가 어떤 관계를 이루든, 우리는 하나의 리스프 프로그램이 리스트를 취해 새로운 리스트들을 만들어 내는 함수들로 작성될 수 있다는 것을 알 수 있다. 이것이 바로 배커스 FP 를 발명하
리스프에서의 재귀와 연산
매커시는 재귀를 리스프의 핵심적인 처리 전략으로 삼았다. 재귀는 어떤 연산을 그 자체의 용어들로 정의하기 위한 기법이다. 프로그래머들은 보다 단순한 문제를 언급하는 정의의 실례를 통해 순환적 정의들의 금기를 다룬다.
예를 들어, 리스트가 원소를 하나만 포함하고 있다면 어떤 리스트의 역을 그 리스트 자체로 정의할 수 있다. 그렇지 않고 리스트가 몇 개의 원소를 가지고 있을 경우, 그 리스트의 역은 다음과 같이 정의할 수 있다. 즉, 그 리스트에서 '첫 번째 것을 제외한' 모든 원소들의 역을 첫 번째 원소를 포함하는 리스트에 추가시키는 것이다.
그것이 장황하게 보인다면 이런 방법을 생각해 보자. 리스트 L 의 첫 번째 원소를 L 의 머리 (head) 라고 하여 (head L) 로 표시하고, 나머지 원소들을 L 의 꼬리 (tail) 또는 (tail L) 로 명명한다. 그렇게 하면 이 프로그램을 아래와 같이 리스프의 (구문은 아니지만) 정신으로 작성할 수 있을 것이다.
define (reverse L) as
if L has one element then L
else (append (reverse (tail L)) (list (head L)))
이번엔 이것을 앨리스와 밥, 그리고 캐럴 (Carol) 의 삼각 관계로 이루어진 한 구체적인 예에 적용해 보자.
(reverse (Alice Bob Carol)) = (append ((reverse (Bob Carol))
(Alice))) = (append ((Carol Bob) (Alice))) = (Carol Bob Alice)
함수나 절차 그 자체가 리스트로 정의되기 때문에, 이들은 다른 함수나 절차들을 통해 구성될 수 있다. 그런 다음엔 연산 함수가 그러한 함수나 절차를 취해 그것을 실행할 수 있다.
알골은 리스프의 혁신안들을 채택한 최초의 언어였지만, 최후는 아니었음이 분명하다. 파스칼, C, 에이다 등과 같은 알골의 후예들을 비롯해 그 밖의 많은 현대의 프로그래밍 언어들이 재귀와 조건식을 제공한다. 하지만 최근까지도 주류 언어들이 연산 기능을 제공하지는 않았다. 그 주된 이유는 언어 설계사들이 프로그래머들에게 어떤 실행 중인 프로그램에 새로운 기능을 포함시킬 수 있는 능력을 부여한다는 데 대해 두려움을 가졌기 때문이다. 하지만 많은 프로그램들이 하루 24 시간, 일주일에 7 일 동안 줄곧 가동되어야 하기 때문에 이 기능에 대한 요구는 점점 커지고 있으며, 새로운 실험적 언어들은 대부분이 연산과 유사한 무언가를 포함하고 있다.
리스프는 거의 40 년 동안 인공 지능의 표준 언어로 군림해 왔다. 매커시는 그것이 그리 오래 갈 것이라고 기대하지 않았었기 때문에, 그것을 알골과 유사하게 만들기 위한 변경안을 제안하기까지 했었다. 하지만 AI 의 프로그래머들은 리스프의 초기 구문들을 선호하였고, 결국 매커시는 선배인 배커스나 후배 케이처럼 그 언어에 대한 통제력을 잃고 말았다.
매커시의 연구에 대한 자존심을 생각하면 다행스럽게도 그는 항상 리스프를 자신의 주된 목표에 이르기 위한 하나의 수단으로 생각했었다. 그의 목표는 그때나 지금이나 변함없이 '인간과 같은 지능을 갖춘 기계를 만드는 것' 이다.
그는 1959 년에 발표한 '상식을 지닌 프로그램들 (Programs with Common Sense)' 이라는 제목의 논문을 통해 그 목표를 갈고 다듬었다. 그 논문은 매커시가 일생동안 추구해 온 것, 즉 상식이라고 부르는 모호한 형식의 추론에 수학의 정밀성을 적용시키려고 하였던 노력의 출발점이었다.
매커시는 자신의 목표를 구체적으로 표현하기 위해 상식을 지닌 프로그램이라는 것을 다음과 같이 정의하였다. 그것은 '명령받은 어떤 것과 이미 알고 있는 것의 즉각적인 결과들을 충분히 넓은 범위에서 자체적으로 연역' 할 수 있는 프로그램이라는 내용이었다. 그는 한 예로, 책상에 앉아 있는 어떤 사람이 자신의 차를 타고 공항에 가게 되기까지의 추론 과정을 묘사하였다.
논문의 발표에 이어 벌어진 토론에서 유명한 논리학자이자 언어학자인 여호수아 바-힐렐 (Yehoshua Bar-Hillel) 은 매커시의 접근 방식을 '설익은' 그리고 '철학을 가장한' 것이라고 규정하면서, 매커시가 내세운 추론은 그 결론이 항상 유효한 것이 아니기 때문에 연역으로 볼 수 없다고 주장하였다. 힐렐은 이렇게 묻는다. "택시를 불러 공항까지 타고 가는 것이 돈이 더 적게 들지는 않았을까요? 비행을 취소하거나, 아니면 그밖에 백 가지쯤 되는 다른 방법들을 택할 수는 없었을까요?"
이같은 비판에 대해 매커시는 그 논문이 '설명되지 않은 철학적 가정들에 의존하고 있으며 … 우리가 컴퓨터를 경험에 의한 학습을 할 수 있도록 프로그래밍할 때에는 언제나 그 프로그램에 일종의 인식을 포함시킨다' 는 사실을 인정하였다. 이후 그 인식론에 대한 작업은 줄곧 매커시를 비롯한 다른 한 줌의 AI 이론가들에게 연구의 초점이 되었다.
그 연구에 관한 내용을 실제로 읽어 보기 전에는 어째서 누군가가 상식을 컴퓨터 프로그램의 맨 우선 순위에 두고자 하는지 의아하게 생각될 것이다. 과연 그것이 과학이나 사회에 어떤 유익을 가져다 줄 것인가? 매커시는 이런 대답을 들려 준다.
모든 전문화된 이론들 뿐 아니라, 전체 과학이 상식 속에 담겨져 있습니다. 이 이론들을 개선하고자 할 때 여러분은 상식적 추론으로 돌아가며, 그것은 여러분들의 실험을 명령합니다.
따라서, 만일 누군가가 보다 나은 체스 프로그램을 만들고자 할 경우, 그는 자신이 현재 가지고 있는 프로그램을 이용해 그것에다 분석할 지점들을 지정하면서 실험을 할 것입니다. 어떤 실험을 할 것인가에 관련된 모든 추론은 상식의 구조 내에 들어 있습니다.
많은 과학자들의 저서가 그러한 견해에 공감하고 있음을 보여준다. 예를 들어, 리처드 파인먼 (Richard Feynman) 은 그의 유명한 물리학 강의를 통해 대칭 (symmetry) 의 문제를 다루면서 다음과 같은 사실에 주목하였다.
물리학에서 우리의 모든 아이디어는 그것을 응용함에 있어 특정한 양의 상식을 필요로 합니다. 그 아이디어들이 순전히 수학적이거나 혹은 추상적인 것이 아니기 때문이지요. 우리는 그 현상이 우리가 기구들을 새로운 위치로 옮길 때와 동일하다고 할 때 그것이 의미하는 바를 이해해야 합니다. 그건 우리가 관련이 있다고 믿는 모든 것을 이동시킨다는 의미이지요. 만일 그 현상이 동일하지 않다면, 우리는 관련 있는 무언가가 옮겨지지 않았다고 주장하면서 계속해서 그것을 찾을 것입니다.
상식적 추론의 주요한 장점 가운데 하나는 탄력성 (resiliency) 이다. 어떤 상황에 관련된 새로운 사실들에 직면했을 때 잘 적응할 수 있는 것이다. 매커시는 다음과 같은 예를 보여준다.
글래스고에서 런던을 경유하여 모스크바까지 가려고 하는 여행자가 있다고 상상해 봅시다. 이제 그가 비행기표의 필요성과 어느 한 장소에서 다른 장소를 향해 날아가는 것의 결과에 관한 어떤 사실들을 알고 있다고 가정합시다.
많은 프로그램들이 만일 그가 글래스고에서 런던으로 간 다음 다시 런던에서 모스크바까지 날아간다면, 결국 그는 모스크바에 있게 될 것이라는 추론을 하도록 만들어질 수 있습니다. 하지만 그가 런던에서 비행기표를 잃어버린다면 어떻게 될까요? 더 이상 원래의 계획이 유효할 것이라는 말은 할 수가 없겠지요. 그러나 그가 다른 비행기표를 구입한다는 것을 포함하는 계획이라면 그대로 유효할 것입니다. 기존의 응용 프로그램들에서는 어떤 한 가지 상황의 조건들을 이처럼 면밀하게 퇴고 (elaboration) 하는 것이 허용되지 않았습니다.
1964 년, 스탠퍼드 AI 연구실의 책임자가 된 매커시는 '상황별 계산법 (situational calculus)' 이라는 논리의 유형을 제안하였다. 여기서 '상황 (situation)' 이란 세계의 상태를 의미한다. 어떤 행위자가 행동을 할 때는 새로운 상황이 발생하게 된다. 그 때 그 행위자가 어떠한 행동을 취할 것인가는 그가 그 상황에 대해 무엇을 알고 있느냐에 달려 있다.
매커시가 이용한 비행기의 예를 인용해 보면, 비행기표를 잃어버린 사실을 알아채지 못하는 여행자는 곧장 공항으로 가겠지만, 그 사실을 깨닫는 사람은 여행사로 가서 (아마도 지능을 갖춘) 여행사 직원과 어떤 조치를 취할 것이다.
따라서, 상황 계산은 유한 오토머터 이론과 함께 전이의 개념을 공유한다. 하지만 상황 계산에서는 추론이 단지 상황에만 의존하는 것이 아니라, 그 행위자가 상황에 관해 무엇을 알고 있느냐에 따라서도 달라지게 된다. 그 사람이 알고 있거나 알아낼 수 있는 것이 많을수록 더 나은 결정을 내릴 수 있게 된다. 상황별 계산법은 그 자체 혹은 그것의 변형들을 다양한 방식으로 적용하였던 많은 연구자들의 관심을 끌어왔다. 하지만 그 이론은 아주 큰 새로운 문제에 초점을 맞추었다.
수많은 행위자들이 상호 작용을 하는 세계에서는 어떤 하나의 행위자에게 관련된 상황이 다른 행위자의 행동에 따라 달라질 수 있다. 하지만 우리의 상식 세계에서는 다른 행위자들의 행동이 대부분 실제로 우리의 결정에 영향을 미칠 수 없다는 것을 우리는 알고 있다.
예를 들어, 비행기표를 잃어버린 여행자 (행위자 A) 의 행동이 마침 워싱턴 D.C. 에서 아침 조깅을 하고 있던 미국 대통령 (행위자 B) 이 브랜 머핀을 산다고 해서 달라지지는 않을 것이다. 논리적으로 우리에게 이 행동이 무관한 것이라고 말해 주는 것은 아무것도 없다. 하지만 우리는 스스로의 직관에 의해 이같은 결론에 이르게 된다 (우리가 실현 가능성이 없어 보이는 음모들을 믿지 않는 한).
매커시는 에딘버러 대학의 패트릭 헤이즈 (Patrick Hayes) 와 함께 논문을 쓰면서, 특정한 행동에 영향을 받지 않고 그대로 유지되는 많은 사실들을 간결하게 표현한 개념인 일반 문제 (general problem) 에 골격 문제 (frame problem) 라는 이름을 붙였다.
간단히 말해 골격 문제란 특별한 행동이 발생할 때 변화되지 않는 모든 것들을 언급할 필요는 없다는 것입니다.
대부분 미스터리를 재현하는 데에서 성공 여부를 결정하는 요인은 골격이 되는 질문들에 대한 통찰력 있는 해답이다. 탐정 소설의 영웅이 어떤 해답을 찾아낼 때에는 대부분의 사람들이 완전히 잊어버리거나 지나쳐 버렸을 행위와 행위자들 사이의 연고나성을 감지해낸다. 예를 들어, 실버 블레이즈의 이야기로 되돌아가보면, 홈즈는 감시견이 짖지 않았다는 사실때문에 바로 그 감시견의 주인이 범인이라는 것을 알아 내었다. 그의 존경할 만한 동료 왓슨 (Dr. Watson) 까지 포함해서 이 같은 비약을 해낼 수 있는 사람은 거의 없었을 것이다.
"이 상황은 추리하는 사람의 솜씨가 어떤 신선한 증거를 확보하기 보다는 오히려 세부적인 사실들의 위치를 바꾸는 데 사용되어야 하는 경우에 속합니다", 홈즈는 조사에 착수하면서 그렇게 말했다. "그 비극은 아주 비범하고, 아주 완전하며, 또한 우리가 과다한 추측이나 짐작, 가정 같은 것들에 시달리게 할 만큼 아주 많은 사람들에게 개인적으로 중요한 의미를 가지는 것이었습니다. 여기서 어려운 일은 이론가나 기자들이 살을 붙인 이야기들로부터 사실을, 즉 절대적으로 부정할 수 없는 사실의 골격을 분리시켜 내는 것입니다."
컴퓨터가 언제라도 새롭고 놀라운 사실들이 입력될 수 있는 환경에서 골격 문제를 해결하려면 셜록 홈즈처럼 새로운 유형의 추론에 착수해야만 한다. 1974 년, 마빈 민스키는 『지식의 표현을 위한 골격 A Framework for Representing Knowledge (M.I.T. Press)』이라는 책을 펴냈다. 거기서 그는 논리란 본래 지나치게 보수적이기 때문에, AI 는 논리를 사용해선 안 된다고 주장하였다.
그의 주장을 좀 더 쉽게 이해할 수 있도록 당신이 어떤 친구에게서 그가 반조 (Banjo) 라는 새를 가지고 있다는 말을 듣게 될 때 어떤 일이 벌어지게 될 지를 생각해 보자. 그 상황에 대한 당신의 상상에는 아마도 반조는 날 수 있다고 하는 믿음이 포함될 것이다. 이번엔 만일 그 친구가 반조는 펭귄이라거나 혹은 날개가 부러졌거나 발이 묶였다거나 아니면 비행에 대한 공포를 가지고 있다고 이야기한다면, 당신은 더 이상 반조가 날 수 있다고 믿지 않을 것이다. 그 새로운 정보는 반조가 새라는 사실을 부정하지 않으면서 당신이 처음의 결론을 철회하도록 만드는 것이다.
민스키는 이러한 추론의 형식에 '비단조 (nonmonotonic)' 라는 이름을 붙였다. 고전적인 연역은 항상 단조적이다. 즉, 새로운 정보가 기존의 것에 모순되지 않는다면, 그 새로운 정보가 결코 원래의 결론을 철회하도록 만들지 않는 것이다. 비단조는 일상에서 행해지는 추론에 널리 퍼져 있다. 우리는 워싱턴 D.C. 에서 대통령이 게걸스럽게 머핀을 먹는 행위가 히스루 공항에 있는 여행자에게 영향을 미치지는 않을 것이라고 믿는다. 하지만 만일 그가 머핀을 먹는 것이 히스루 공항에서 행해질 색소폰 콘서트의 시작을 알리는 신호였음을 알게 된다면, 우리의 믿음은 달라질 것이다.
매커시는 비단조가 골격 문제를 해결할 수 있는 한 방법이라고 보았다. 지능을 갖춘 행위자라면 직관적으로는 먼 곳에서 이루어지는 행동이 문제가 되지 않을 것처럼 추론을 하겠지만, 그 행동들이 사실상 관련된 것임을 발견하게 되면서 다시 새로운 추론을 해야만 할 수도 있다. 민스키와 달리 매커시는 논리는 오로지 문제를 해결하는 데 견고한 토대만을 구성할 뿐이라고 여겼다. 그러기 위해서는 논리에 추론을 위한 형식적 기초가 요구되었다.
매커시는 '제한 (circumscription)', 즉 어떤 행위자가 다음과 같이 추측할 수 있도록 허용하는 규칙을 제안하였다. "나는 P 라는 고유의 속성을 가지고 있을 것으로 보이는 모든 대상들에 관해 이미 알고 있다. 따라서, 만일 새로운 대상을 발견하게 되면 나는 그것이 속성 P 를 갖고 있지 않다고 가정할 것이다."
예를 들어, 반조의 사례에서 당신은 반조가 난다고 가정한다. 다시 말해, 새들에 대해서 날지 않는다는 속성에 제한을 두는 경계를 설정하는 것이다. 반면에 코끼리의 경우라면, 당신은 날아 다닌다는 속성을 제한할 것이다. 어떤 반박할 증거가 없는 상태에서 코끼리 점보 (Jumbo) 는 날지 못한다. 즉, 날아 다닌다는 속성을 결여하고 있다고 가정하면서 말이다. 따라서 제한이란 어떤 사물에 대해 경험적으로 학습된 추측을 적용하는 한 방법이다. 당신이 좀 더 많은 것을 알게 되면 그것이 잘못된 것으로 판명될 수도 있지만, 그 사이엔 그것을 통해 유용한 가설들을 세울 수가 있다.
주어진 상황에서 어떤 속성들에 제한을 두어야 하는지를 알기 위해서는 세계에 관한 사실들을 알아야 한다. 반조와 점보의 예라면 정상적인 새들은 날아다니는 반면, 정상적인 코끼리들은 날지 못한다는 사실을 알아야만 한다. 사람들은 그와 같은 지식을 거의 무의식적으로 적용하지만, 그 문제는 어떤 근본적이 도전을 내보인다.
예를 들어, 백과사전에는 나폴레옹이 1821 년에 사망하였고 웰링턴은 1852 년에 사망하였으며, 당시 나폴레옹은 영국 정부의 죄수로 세인트 헬레나 섬에 갇혀 있었다고 적혀 있을 것입니다.
하지만 그 백과사전 자체는 우리에게 웰링턴이 나폴레옹의 사망소식을 들었다는 사실만을 뜻하지 않게 알려 주는 것일 뿐입니다. 그것을 알기 위해서는 백과사전의 지식에 상식을 적용시켜야 하는 것입니다.
여러분은 다음과 같이 추론할 것이다. '아마 웰링턴은 틀림없이 나폴레옹의 사망 소식을 들었을 것이다. 그는 일생 동안 많은 시간을 나폴레옹에게 사로잡혀 있었기 때문이다.' 따라서, 여러분은 '자신의 마음에서 떠나지 않고 있는 사람들의 부고를 듣지 못한다' 는 상황을 제한시킬 수 있을 것이다. 나폴레옹이 웰링턴의 사망 소식을 들었는가라는 보다 단순한 문제의 경우에는 '자신보다 나중에 죽는 사람들의 부고를 듣는다' 는 상황에 제한을 둘 것이다.
근본적인 쟁점은 이처럼 장군들은 자신의 적에게 관심을 가진다는 것과 같은 자연스런 추측을 하는 데 있어 어떤 상황의 맥락, 즉 전후 관계 (context) 를 사용하는 방법상의 문제이다. 매커시는 전후 관계들을 조작하고 사용하는 새로운 논리 형식을 개발하기 시작하였다.
그 목표의 일부는 단순히 사람들이 이야기하는 바를 이해하는 것입니다. 만일, 당신의 AI 시스템이 전후 관계를 사용하지 못한다면 사람들이 만들어 내는 문장들을 해석할 수 없을 것입니다.
이 문제의 중요성을 제대로 이해하기 위해서 올바른 전후 관계를 적용한다는 것이 단지 기계에게만 어려운 일이 아니라, 때로는 사람들에게도 곤란을 겪게 한다는 사실을 생각해 보자.
전직 하원의장 토머스 오닐 [Thomas P. (Tip) O'Neill] 은 신임 대통령으로 선출된 로널드 레이건 (Ronald Reagan) 을 사무실에 맞아들이던 때의 일을 곧잘 들려 주곤 했다. 오닐은 레이건에게 자신이 그로버 클리블랜드 (Grover Cleverland) 의 책상을 가지고 있다고 말했다. 그러자 레이건은 미소를 지으며 자신은 영화에서 클리블랜드의 역을 연기한 적이 있다고 했다. 레이건은 야구선수 그로버 클리블랜드 알렉산더를 가리켰던 것인 반면에, 오닐은 미국의 재선 대통령을 언급하였던 것이다.
상식적 추론이라는 판도라의 상자를 연 것으로 인해 매커시는 임의의 새로운 사실들을 덧붙일 수 있도록 허용하는 형식을 연구하게 되었다. 매커시는 그것을 '퇴고 용인 (elaboration tolerance)' 이라는 말로 표현하였다. 일단 퇴고가 허용되면 새로운 사실들이 추론자로 하여금 앞서 도출된 결론들 가운데 다른 것들은 그대로 둔 채 일부를 철회하도록 강요할 수가 있다. 올바른 것이든 잘못된 것이든 어떤 결론에 도달하기까지에는 제한을 적용하는 추측이 요구된다. 그 추측들은 예를 들어 새들은 날아다니지만 코끼리들은 날 수 없다는 것과 같이 어떤 가망성 있는 이전의 단정들을 토대로 이루어진다. 과연 어떠한 추측이 유효할 것인지를 알기 위해서는 지식과 더불어 그 지식을 전후 관계나 세부적인 마이크로 이론들 (microtheories) 로 조직화하는 수단이 필요하다. 또, 지식은 추론하는 사람이 행동을 하면서 새로운 사실들을 만들어 내는 데 따라 발전해 간다. 그 각각이 서로 상호 의존적 관계에 있는 것이다.
매커시는 1959 년의 논문에서 자신의 목표는 '정신 박약이 아니라면 누구나 수행할 수 있을 만큼 단순한 어떤 초보적 언어 추론 과정을 수행' 할 수 있는 기계를 만드는 것이라는 데 주목하였다. 그 표현대로라면 이 과업은 상당히 실현 가능성이 있는 것처럼 들린다. 하지만 그 목표는 여전히 요원한 상태로 남아 있다.
따라서, 이런 질문을 던져 볼 수 있을 것이다. 매커시가 인공 지능의 논리적 기초를 제공하기 위해서 행한 수많은 시도들은 성공이었는가 아니면 실패였는가? 그 자신이 따져 본 바에 의하면, 상황별 계산법 이후로 그의 연구에서 실행에 옮겨진 것은 거의 없었다. 예를 들어, 의학적 진단이나 주가 예측을 위한 전문가 시스템을 제작하는 사람은 자신의 시스템에 비단조 추론이나 일반 맥락 추론을 포함시키지 않기 위해 무진 애를 쓸 것이다. 매커시와 그의 동료들에 의해 표면화된 어려운 문제들이 '접근 금지 (keep off)' 경고의 역할만 하고 있는 것이다.
그러나 미래의 모습은 아주 다른 것이 될 수 있다. 수천만 가지 사실과 규칙들을 부호화한 더그 레넛 (Doug Lenat) 의 사이크 (Cyc) 처럼 깊이가 있고 그 폭도 광범위한 프로젝트라면 결코 달갑지 않은 많은 어려움들에 직면하게 된다. 그처럼 논리를 사용하는 프로젝트는 어떤 것이든 매커시의 연구를 토대로 작성될 것이다. [레넛에 대한 장에서 보게 될 것처럼, 레넛의 프로젝트는 매커시의 제자였던 구아 (R. V. Guha) 가 개발한 '마이크로 이론들' 을 사용한다.] 현재의 논리적 도구들은 유효할 것인가? 는 자신이 그것을 안다고 주장하지 않는다.
논리를 사용해 세계에 관한 사실들을 표현하는 부분의 진보는 언제나 느린 속도로 이루어져 왔습니다. 아리스토텔레스는 어떠한 형식도 만들어 낸 일이 없습니다. [고트프리드 (Gottfried) 라이프니츠 (Leibniz) 는 그가 뉴턴과 함께 고안해 냈던 극한 산법 (infinitesimal calculus) 에 비하면 명제 계산 (propositional calculus) 이 보다 쉬운 형식임에도 불구하고, 결코 그것을 발명하지는 않았지요. 또한, [조지 (George)] 불 (Boole) 은 명제 계산을 고안해 냈지만 술어 계산 (predicate calculus) 을 고안해 낸 것은 아니었고, [고트로프 (Gottlob)] 프레지 (Frege) 는 술어 계산을 고안해 냈지만 결코 비단조 추론의 형식화를 시도하지는 않았습니다. 나는 우리 인간들이 우리의 사고 과정과 관련해 떠올릴 때는 명백한 많은 사실들을 형식화하면서 어려움을 겪게 되는 것이라고 생각합니다.