상식의 표현
(Representing Commonsense Knowledge)
인공지능-지능형 에이전트를 중심으로 : Nils J.Nilsson 저서, 최중민. 김준태. 심광섭. 장병탁 공역, 사이텍미디어, 2000 (원서 : Artificial Intelligence : A New Synthesis 1998), Page 325~338
퍼즐, 게임 등을 사용하여 여러 가지 인공지능 기술들을 소개하였다. 앞장에서 대출 여부를 결정하는 매우 간단한 형태의 전문가 시스템에서의 순방향 추론과 역방향 추론에 대하여 소개하였다. 실제 전문가시스템은 이 책에서 본 것보다 훨씬 많은 규칙과 사실을 가지고 있지만 이것도 특정 분야의 극히 제한된 지식에 지나지 않는다.
인간 수준의 AI 시스템을 구현하려면 훨씬 광범위한 많은 지식이 필요하다. 그리고 이들 시스템은 형식적으로 개념화하기가 어려운 많은 주제에 대해서도 알고 있어야 한다. 10 세 정도의 인간이 쉽게 할 수 있는 일을 AI 적인 방법으로 처리하는 것은 대단히 어려운 일이다. 물리학자들은 파동식, 상대성 이론 또는 기타 여러 가지 수학적인 도구를 사용하여 물리적인 현상을 자세히 정확하게 기술할 수 있다. 그러나 AI 분야 학자들은 컵에 물을 부으면 컵의 모양에 따라 물이 차며, 이 컵이 넘어지면 물이 쏟아져 나온다는 아주 간단한 사실조차 어떻게 표현할 것인가에 대한 의견이 분분한 실정이다.
다음과 같이 10세 정도의 인간이 알고 있는 것들에 대해서 생각해 보자.
|
물건을 놓으면 그것은 땅으로 떨어진다 (10세 정도의 요즘 인간은 지구 주위를 도는 인공위성에서 물건을 놓으면 떨어지지 않는다는 것을 알고 있다). 사람은 자기 자신이 태어나기 전에는 존재하지 않는다. 물에서 살고 있는 고기가 물 밖으로 나오면 죽을 것이다. 빵과 우유는 상점에서 판다. 사람들은 보통 밤에 잠을 잔다. |
이러한 종류의 지식을 보통 상식 (commonsense knowledge) 이라고 한다. 어떤 분야에 대한 지식의 깊이는 천차만별이다. 지나가는 모든 사람이 알고 있는 지식도 있다. 기원전 500 년경의 가장 발전된 형태의 과학적 이론이란 그저 일상 생활에서 발견할 수 있는 현상을 조금 형식화한 정도이다. 예를 들어 당시 사람들은 지구는 평평하며 물체는 지구에 속하는 것이기 때문에 아래로 떨어지며 병은 여러 가지 다양한 색상의 영향에 의해 치유된다고 생각하였다. 지식이 빈약하던 시절에는 일상적인 상식과 발전된 형태의 과학적인 지식에는 큰 차이가 없었다. 그러나 사람들이 이 세상에 대하여 보다 많은 것을 알 게 되면서 과학적인 지식은 상식으로부터 점차 멀어졌다.
로봇이 우리를 대신해 주었으면 하는 대부분의 일들은 중세 과학으로도 충분하다. 예를 들어, (저기압 시스템에 대한 지식이 없어도) 비가 오면 지붕 밑으로 피해야 하고, (유체역학에 대한 지식이 업어도) 갑자기 멈추거나 회전할 때에는 컵에 든 물을 쏟지 않도록 조심해야 하고, (전기화학적인 지식이 없어도) 배터리가 방전되면 충전을 시켜야 하고, (채권자의 행동 양식에 대한 복잡한 심리학적 이론에 대한 지식이 없어도) 채권자가 법적인 조치를 취하기 전에 빚을 갚아야 한다는 것들이다.
복잡한 지식이 필요없다는 뜻은 아니다. 일기예보 시스템은 기상학에 대한 지식을 가지고 있어야 하며 핵발전소의 열교환 장치를 제어하는 시스템은 열역학에 대한 지식을 가지고 있어야 한다. 다만 위에서 말하고자 한 것은 많은 일들이 10세 정도의 인간이 가지고 있는 지식으로 충분하다는 것이다. 이러한 지식을 (어떻게 표현하는지 알기만 한다면) 사용하는 것은 과학적인 지식을 사용하는 것보다 훨씬 다루기 쉬워야 한다.
AI 을 연구하는 학자들은 상식적인 지식을 기초 지식 (naive knowledge) 이라고 한다. 그러므로 우리는 물리학, 경제학, 심리학, 통계학, 사회학 등에 대한 기초 지식에 관한 이론을 구축하고자 한다. 우리는 기초 지식과 전문적 지식을 비교했지만 이러한 용어는 연속적인 영역을 의미한다. 필요로 하는 지식의 수준은 일에 따라 다르다. 물리학의 경우를 예로 들어보자. 로봇이 테이블 위에 블록을 쌓기 위해서는 블록에 대한 간단한 성질만 알면 된다. 예를 들어, 이 로봇이 알아야 할 물리학에 대한 상식적인 수준의 지식이란 두 블록이 한 장소에 있을 수 없다거나, 블록은 다른 블록이나 테이블 위에 있어야 한다 등과 같은 것이다. 포켓볼을 하는 로봇의 경우엔 좀 더 많은 것을 알아야 한다. 예를 들어, 로봇은 구르는 알의 마찰력, 비탄성 충돌, 운동량 전달 등에 대하여 알아야 한다. 현대 과학의 첨단에 근접하는 복잡한 지식을 요구하는 일을 상상할 수 있을 것이다.
상식을 형식화하기가 어려운 이유는 무엇인가? 지식의 거대함이 그러한 이유 중의 하나가 아닐까? 전문적인 지식을 잘 정리한다면 유용한 전문가 시스템을 구축하는데 수백 개 내지는 수천 개의 사실만으로 충분할 것이다. 인간 수준의 기능을 가진 시스템은 얼마나 많은 사실을 필요로 하는가? 이 점에 대해서는 아무도 모른다. 이러한 사실을 모은 거대한 지식베이스 CYC 를 구축하려고 노력한 Doug Lenat 는 1 개에서 1,000 만 개 사이가 필요할 것이라고 생각하였다 [Guha & Lenat 1990, Lenat & Guha 1990, Lenat 1995]. 1990 년에 CYC 저자들은 다음과 같이 말했다.
|
아마도 가장 어려운 사실은 이렇게 방대한 지식베이스를 얻기 위한 손쉽고 멋진 방법이 없다는 것이다. 따라서 많은 사실들을 일일이 손으로 입력해 넣는 엄청난 노력을 기울여야 한다 [Guha & Lenat 1990, p33]. |
또 다른 어려움은 상식이 잘 정의되지 않아 이 지식을 여러 부문으로 나누고 각 부문을 독립적으로 모을 수가 없다는 것이다. 상식적인 세계에 대한 개념화는 아마도 (개념화 과정에서 산만하게 발생하는) 많은 개체, 함수, 관계 등을 수반할 것이다. 그러므로 개념화를 할 때 우리는 매우 큰 전체 작업을 거의 마칠 때까지 우리가 제대로 하고 있는지 알 수가 없다.
상식을 형식화하는 데 있어서 또 다른 어려움은 어떤 주제에 대한 지식이 글로 쉽게 파악되지 않는다는 점이다. 복잡한 물건의 모양을 글로 표현하는 것은 어렵다. 예를 들어 사람의 얼굴 모양을 글로 표현했을 때, 이를 읽고 전에 한 번도 본 적이 없는 사람을 알아볼 수 있을까? 나무, 산에서 내려다 본 광경, 열대 지방의 일몰 광경 등을 어떻게 글로써 표현할 수 있을까? 만약 영어나 다른 언어로 표현할 수 없는 것들이 있다면 논리로 표현할 수 있는 어떤 개념화도 발견할 수 없을 것이다.
문장으로부터 지식을 포착하기 어려운 것은 우리가 이 세계를 표현하는 데 사용하는 많은 문장이 근사적이라는 것과 관련이 있다. 특히 ("모든 x 는 y 다" 라는 문장에서와 같이) 전체 한정사에 의해 한정을 받는 문장은 이것이 단순한 정의가 아닌 한 대개는 타당하지 않다. 많은 지식이 근사적이라는 사실에 대처하기 위하여 논리학에 대한 다양한 수정안이 제시되었다. 이 장에서는 그 중 한 가지에 대해서만 소개하고 확률론에 기초를 둔 다른 방법에 대해서는 불확실한 정보를 이용한 추론과 베이지안 네트워크를 이용한 학습과 행동에서 소개하겠다.
상호의존적인 지식에 의해 야기되는 어려움 외에도 어떤 주제에 대한 개념화를 어떻게 해야 하는가가 항상 분명한 것은 아니다. 예를 들어, 시간을 실수 집합 (즉, 점 (instant) 들의 연속체) 으로 보아야 하는가 아니면 정수로 보아야 하는가 아니면 실선상의 간격으로 보아야 하는가 아니면 그 밖의 다른 어떤 것으로 보아야 하는가 ? 과거는 하나의 시간선 (time line) 으로 볼 수 있겠지만 그렇다면 미래는 어떠한가? 우리는 둘 이상의 미래가 있다는 것을 너무나 잘 알고 있다. 가령 "내가 법대에 가지 않았더라면 나는 너를 만나지 않았을 것이다" 라는 것이 말이 되도록 하려면 이 세계를 어떻게 개념화해야 할까? "나는 늦으려는 의도가 없었다" 라는 문장을 다룰 수 있도록 개념화를 하려면 의도라는 것이 어떤 종류의 개체일까?
상식을 가진 기계를 만드는 것이 어렵다고 하자. 상식이 왜 중요한가? (AI 에서 유용하다고 여기는 대부분의 응용은 지식을 형식화하는 것이 상대적으로 덜 어려운 전문가 시스템이 아닐까?) 이 질문에 대한 몇 가지 답이 있다. 먼저 상식을 가진 기계는 상업적으로 가치가 있는 많은 분야에 응용할 수 있다. 가정부 로봇의 가치에 대해서는 이의를 제기하는 사람이 거의 없다. 이러한 로봇은 집을 깨끗이 하고 세탁을 하고 식사 준비를 하고 고장난 전구를 가는 것과 같은 통상적인 관리 업무를 하고 설거지를 하는 등의 일을 할 수 있다. 그러나 이런 로봇이 지녀야 하는 지식에 대해서 한번 생각해 보자. 이러한 로봇은 고장난 전구를 어디에 버려야 하는가, 접시나 컵을 어떻게 들어야 하는가, 식기세척기에서 꺼낸 식기들을 어디에 두어야 하는가, 진공청소기의 먼지를 언제 비워야 하는가, 상추를 냉장고에 얼마나 보관할 수 있는가 등과 같은 질문에 대답할 수 있을 정도의 지식을 가져야 한다.
상식은 전문가 시스템을 보다 유용하게 하는 데에도 도움이 된다. 전문가 시스템은 극히 한정된 분야에 대해서만 전문성을 발휘한다. 일반 상식을 가지고 있다면 사용자가 전문가 시스템의 전문 분야를 벗어난 정보를 알려고 할 때 그것을 인식할 수 있도록 해준다. 또 이 지식을 이용해 현재 처리중인 일과 관련이 있는지의 여부도 정확하게 예측할 수 있다.
상식의 구조는 전문가 시스템의 지식을 확장하는 데에도 중요하다. 우리는 유추 및 은유에 대하여 매우 익숙하다. 공간적인 은유는 특히 일반적이다. 예를 들어, "양자전기역학은 우리의 지식 범위를 넘어선다" 라든가, "청결함은 경건함 다음 간다" 라든가 "영희의 봉급은 철수보다 위에 있다" 라든가 하는 것들이 있다. 은유법이 단순한 언어적인 일치 이상의 것이라는 점을 추측할 만한 충분한 이유가 있다. 실은 많은 주제에 대한 개념화의 기초는 공간적인 개념이나 다른 상식적인 개념에 기초를 두고 있다. 그래서 이 세계에 대한 상식적인 개념화를 가지고 있는 전문가 시스템은 약간의 확장과 수정만으로 지식베이스를 확장할 수 있다.
마지막으로 상식은 자연언어를 이해하기 위해 필요하다.
아직까지 (현재 진행중인 CYC 작업을 제외하고) 상식을 가진 시스템을 만들지 못했지만 AI 학자들은 다음과 같은 여러 가지 측면에서 상식을 표현하는 문제를 공략하고 있다.
|
1. 객체와 물질 : 세계는 객체로 이루어진다. 블록과 같은 객체는 비교적 기술하기가 쉬운 따로 따로 분리되는 고체물이다. 어떤 객체는 서로 결합할 수 있는 부분 부분으로 이루어져 있다는 의미에서 계층적이다. 액체, 가스, 모래 더미, 밀가루 가방, 우주 등과 같은 것들도 있다. 물질의 특성을 기술하는 대표적인 노력은 [Hayes 1978, Hayes 1985a, Hayes 1985b]에서 발견할 수 있다. 2. 공간 : 물리적인 세계는 공간을 가지고 있다. 객체는 공간내에 존재하며 다른 객체와의 상대적인 위치를 유지하고 있다. 그러므로 우리는 다른 사물의 안에, 위에 또는 옆에 있는 등의 위치 관계를 나타낼 수 있는 방법을 가지고 있어야 한다. 또 우리는 객체의 크기, 모양 등을 기술할 수도 있어야 한다. 공간에 대한 여러 가지 개념을 형식화하는 초기의 AI 적 노력에 대해서는 [Kautz 1985] 에서 볼 수 있다. 로봇의 업무와 관련한 여러 가지 공간 추론에 관한 논문은 [Chen 1990] 에서 발견할 수 있다. 3. 물리적인 성질 : AI 시스템은 질량, 온도, 부피, 압력, 방사선 수준, 파장 길이 및 이들 사이의 관계 등에 대한 물리적인 성질에 대해서도 추론할 수 있어야 한다. 4. 물리적인 처리 및 사건 : 물체가 떨어지고, 공이 날아가고, 풀이 자라고, 잔이 채워지기도 하고 비워지기도 하고, 초가 타고, 뜨거운 물체가 차가와진다. 물리학에서 이들은 미분 방정식으로 기술된다. 이러한 방정식을 AI 에서도 사용할 수 있을 것이다. 그러나 우리는 물리학에서와 달리 정확한 해가 필요없는 경우가 많다. 그래서 AI 학자들은 정확한 계산없이 일반적인 경향을 추론할 수 있는 정성 물리학 (qualitative physics) 을 발전시켰다 [Weld & de Kleer 1990]. 5. 시간 : (계산을 포함한) 처리는 시간과 관련이 있다. 전산학자와 AI 학자들은 시간을 표현하고 시간관련 추론을 하는 여러 가지 다양한 기술을 개발하였다. 컴퓨터 프로그램 분석에 쓰이는 시간논리 (temporal logic) 에서는 시간이 중요하게 취급된다 [Emerson 1989]. AI 을 연구하는 사람들은 시간을 두 가지 다른 방법으로 다루어왔다 (시간논리를 AI 에 사용한 것에 대해서는 [Shoham 1987] 을 참조하기 바란다). 먼저 실세계의 명시되지 않은 시간에 대한 스냅사진인 상황 (situation) 을 참조함으로써 시간에 대한 명시적인 언급은 무시될 수 있다. 이에 대해서는 상황논리에서 다룰 것이다. 둘째, 시간과 시간 간격은 명시적으로 추론할 개체들 사이에 포함될 수 있다. 상식적인 추론에 필요한 개념의 형식화에 대한 예로서 다음 절에서는 시간을 형식화하는 접근 방법에 대하여 설명하기로 한다.
|
시간에 대하여 어떻게 생각해야 하는가? 과거와 미래로 무한히 뻗은 실선과도 같은 것인가? 아니면 우주의 대폭발 이후 0 부터 시작하여 불연속적으로 값이 증가하는 셀 수 있는 정수와 같은 것인가? 초기 사회에서는 시간은 끝없이 반복 순환한다고 생각하였다. 시간에 대하여 말하기 전에 어떤 그림을 사용할 것인가에 대하여 알아보자.
AI 에서 가장 자주 사용되는 그림은 James Allen 에 의해 형식화되었다 [Allen 1983, Allen 1984] (시간을 표현하는 여러 가지 방법에 대해서는 [Allen 1991a] 를 참조하기 바란다). 이 그림에서 시간은 사건과 처리가 발생하는 곳이다 (아무 것도 진행될 것이 없는 완전히 정적인 세계에서는 시간이 불필요할 것이다. 사실 그러한 세계에서 시간을 정의하기는 어려울 것이다). 이러한 사건과 처리를 담기 위한 "용기 (container)" 를 상황 (situation) 이라고 한다. 시간 간격 (time interval) 은 실수에서의 구간과 같다. 이러한 개념화에서 시간 간격은 존재하는 개체들 사이에 있다.
시간 간격을 기술하기 위해 우리는 각각에 이름을 부여할 필요가 있다. 이런 목적으로 우리는 I1, I2, ... 등과 같은 술어논리에서의 객체상수를 사용할 것이다. 시간 간격 사이에서의 있는 E 라는 사건 또는 처리를 Occurs(E, I) 라고 표기한다 (사건과 처리에 대한 개념을 어떻게 형식화할 것인가에 대해서는 스스로 생각해 보기 바란다. 본 책의 목적상 이것도 "존재하는" 개체로 본다).
시간 간격은 시작하는 시점 (time point) 과 끝나는 시점을 가지고 있다. 시점은 실수로 간주된다. 시간 간격의 시작과 끝은 각각 start 와 end 라는 함수로 주어진다. 다음은 시간 간격에 대한 기본적인 사실이다.
(∀x, y) [start(x) ≤ end(x)]
다음은 시간 간격 사이의 기본적인 관계에 대한 정의이다.
(∀x, y) [Meets(x, y) ≡ (end(x) = start(y)]
[첫번째 시간 간격의 끝과 두번째 시간 간격의 시작이 같은 경우 두 시간 간격은 서로 만난다 (meet) 라고 한다] 시간 간격 사이의 6 개의 다른 관계도 Meets 나 시간 간격의 시작과 끝으로 정의할 수 있다. 이들 관계는 Before, Overlaps, Starts, Ends, During, Equals 로 나타낸다. Met_by, After, Overlapped_by, Started_by, Ended_by, Contains 와 같은 역 (inverse) 도 있다 (Equals 의 역은 자기 자신이다). 예를 들어 보자.
(∀x, y) {Before(x, y) ≡ (∃z)[Meets(x,
z) ∧ Meets(z, y)]}
(∀x, y) {Before(x, y) ≡ [(end(x) <
start (y)]}

그림 1 시간 간격 사이의 관계
그림 1 은 이러한 관계를 그림으로 나타낸 것이다. 위에서 Before 의 관계에 대한 정의를 하였는데 나머지 관계에 대한 정의를 스스로 해 보기 바란다.
이러한 관계는 시간과 관련된 사건에 대한 상식적인 사실을 표현하는 데 사용될 수 있다. 예를 들어, 수도밸브를 반시계 방향으로 돌리는 사건 이후에 수도꼭지에서 물이 흐르는 사건이 발생하며, 그 다음에 수도밸브를 시계 방향을 돌리는 사건이 그 뒤를 따른다는 것은 다음과 같이 표현할 수 있다.
(∀y) {Occurs(Flow, y)
⊃
(∃x, z) [Occurs (Turn_ccw, x) ∧ Occurs (Turn_cw, y)
∧
Overlpas (x, y) ∧ Overlaps (y, z)]}
또한 Before 의 이행성과 같은 것을 표현하는 기본적인 공리들이 있다. 시간에 대한 이러한 형식화는 다양한 시간 관련 문제에 적용되었다.
상식적인 영역과 전문적인 영역에 존재하는 개체를 (추론을 단순화할 수 있는) 계층 구조로 배열할 수 있는 경우가 많다. 예를 들어 CYC 의 상식 표현에서 가장 기본적인 개체는 객체상수 Thing 으로 나타낸다. CYC 에서는 여러 가지 종류의 개체가 있다. (예를 들면 실세계에 존재하는 객체, 수학적인 객체, 사건과 처리 등이 있다). 이들은 "X 는 P 이다, 모든 P 는 Q 이다, 모든 Q 는 R 이다" 등과 같은 형태의 사실을 묵시적으로 기호화하는 분류 구조 또는 계층 구조로 배열된다 (CYC 의 계층에 대해서는 [Guha & Lenat 1990] 을 참조하면 된다). 분류학적 계층은 네트워크나 프레임 (frame) 이라고 하는 자료 구조로 기호화할 수 있다. "Snoopy 는 레이저 프린터이다. 모든 레이저 프린터는 프린터이다, 모든 프린터는 기계이다" 등과 같은 사실들을 표현하려고 한다고 하자. 술어논리로 다음과 같이 표현할 수 있다.
Laser_printer (Snoopy)
(∀x)[Laser_printer
(x) ⊃ Printer(x)]
(∀x)[Printer (x) ⊃ Office_machine(x)]
Laser_printer, Printer, Office_machine 등과 같은 술어는 분류학적 범주들을 나타낸다. 분류학적 지식을 사용한 추론의 한 가지 중요한 유형은 범주들의 이행성을 수반한다. 예를 들어, 위와 같은 사실이 주어졌을 때 (∀x)[Laser_printer (x) ⊃ Office_machine(x)] 와 Office_machine(Snoopy) 를 추론할 수 있다.
각 분류학적 범주의 구성원들은 사무실 기계의 에너지원이 전기라는 것과 같은 어떤 성질을 가질 수 있다. 이러한 성질은 다음과 같이 함수와 동등 술어로 표현할 수 있다.
(∀x)[Office_machine(x) ⊃ [energy_source(x) = wall_outlet]]
하위 범주의 구성원들은 상위 범주로부터 성질을 상속받는다는 점에 주목하기 바란다.
(∀x)[Laser_printer (x) ⊃ [energy_source(x) = wall_outlet]]
분류학적 계층에서의 개체에 대한 공통적인 추론은 의미망 (semantic network) 이라는 것으로 쉽게 표현할 수 있다.
의미망은 객체와 그들의 성질에 관한 분류학적 지식을 나타내는 그래프 구조이다. 여기서는 주요 개념을 나타낼 수 있는 단순한 형태의 의미망에 대해서 설명하기로 한다. 다음과 같이 두 가지 종류의 노드가 있다.
이들 노드를 연결하는 다음과 같은 세 가지 종류의 아크 (arc) 가 있다.
그림 2 는 위에서 설명한 노드와 아크를 가진 네트워크에 대한 예이다.

그림 2 의미망
성질과 집합 구성원에 관한 추론은 논리융합을 사용하는 것보다 의미망을 사용하는 것이 훨씬 쉽고 효율적이다. 노드 A 로 표현되는 객체가 노드 B 로 표현되는 어떤 집합에 속하는가를 결정하려면 A 에서 시작하는 아크가 B 와 만나는지 따라 가본다. 예를 들어 그림 2 에서 R2D2 가 사무실 기계임을 결정하기는 쉽다. 노드 A 로 표현되는 객체의 성질값을 결정하려면 A 에서 시작하는 아크 중에 그러한 성질을 가진 노드가 있는지 찾아본다. 예를 들어, Snoopy 의 에너지원 (energy-source) 을 결정하기 위해 Snoopy 에서 Office_machines 노드로 가는 아크를 따라가서 거기에 답변에 해당하는 Wall_outlet 이 있는지 본다.
앞에서 이미 말한 것처럼 통상적인 논리에서의 추론은 논리 시스템에 새로운 공리가 추가되더라도 이 시스템으로부터 생성될 수 있는 정리의 집합 크기가 줄어들지 않으므로 이런 의미에서 단조롭다 (monotonic) 고 한다. 즉, △' 가 △ 를 포함한다면 △├ω 인 ω 에 대하여 △'├ω 도 성립한다. 그러나 사람의 상식적인 추론 중에는 단조롭지 않은 것들도 많다. 관련 지식이 없는 경우 우리는 일단 그것이 옳다고 생각되는 것으로 추론하는 소위 디폴트 추론 (default reasoning) 을 하게 된다. 그러나 나중에 모순되는 새로운 지식을 얻게 되면 우리는 디폴트 추론 결과를 철회해야 한다. 이러한 현상을 포착하기 위해 제시된 시스템이나 논리적 기법이 많이 있다 (TMS 에 대해서는 이미 설명하였다). 다른 형식론으로 디폴트논리 (default logic) [Reiter 1980], autoepistemic logic [Moore 1985a], 비단조논리 (nonmonotonic logic) [McDermott& Doyle 1980], 한계지정 (circumscription) [McCarthy 1980, McCarthy 1986] 등이 있다.
여기서는 상속 소거 (cancellation of inheritance) 라고 하는 간단한 형태의 비단조추론에 대하여 설명하기로 한다. 이 추론 기법은 의미망으로 잘 설명할 수 있다. 사무실 기계의 에너지원이 전기이지만 예외적으로 로봇의 에너지원은 배터리라고 가정하자. 우리는 그림 3 과 같이 의미망에 또 다른 함수 아크를 추가함으로써 이러한 지식을 표현할 수 있다.

그림 3 디폴트 추론을 위한 의미망
이 새로운 네트워크에서 성질 상속 (property inheritance) 기법은 모순에 이르게 될 것이다. 성질을 상속받음으로써 프린터의 에너지원도 전기라는 결론에 이르게 되지만 로봇의 에너지원은 배터리라는 명시적으로 표현된 사실과 모순이 된다 (전기와 배터리는 다르다고 가정한다). 이러한 모순을 피할 수 있는 방법으로 네트워크가 된 사용된다. 가장 제한적인 (부분집합이나 사례 아크에 따라 배열된) 범주는 보다 덜 제한적인 범주보다 우선한다. 그래서 R2D2 의 에너지원에 대한 질문을 하는 경우 우리는 네트워크에서 R2D2 란 표시가 있는 노드를 먼저 찾은 다음, 이 노드가 energy_source 함수 아크를 가지고 있는지 살펴본다. 만약 그러한 아크를 가지고 있다면 우리는 이 아크의 끝 부분에 있는 노드에 의해 주어진 답변을 수용한다. 그러한 아크를 가지고 있지 않다면 우리는 이 아크를 따라 energy_source 란 함수 아크를 가진 최초 노드를 만날 때까지 계층 구조를 거슬러 올라간다. 그리고 나서 이 아크의 끝에 있는 노드를 사용하여 질의에 대한 답을 한다. 분류학적 계층에서 높은 쪽에 있는 노드와 연관된 정보는 디폴트 정보이다. 이 정보는 계층에서 낮은 쪽에 있는 노드와 연관된 보다 제한적인 정보에 의해 취소될 수도 있다.

그림 4 모순이 있는 디폴트
성질 상속 기법에는 여러 가지 문제가 있다. 한 가지 문제는 다른 부모 노드로부터 상속받은 성질들간에 서로 모순이 있을 수 있다는 것이다. 그림 4 와 같은 부분 네트워크는 이러한 문제점을 보여 주고 있다. C3P0 는 배달도 하고 청소도 하는 로봇이다. 이 로봇은 야간조 (night shift) 로 일을 하는가 아니면 주간조 (day shift) 로 일을 하는가? 모순이 발생하는 경우 어떤 결론도 내릴 수 없다. 복잡한 비단조 시스템에서는 디폴트 지식 사이 사이에 우선 순위를 두기 때문에 나중 상속을 하는 경우 어떤 디폴트 지식은 우선 순위가 더 높은지 판단할 수 있다.
분류학적 지식은 프레임 (frame) 이라고 하는 자료 구조로 나타낼 수 있다. 프레임은 속성과 속성값의 쌍 (attribute-value pair) 에 대한 집합으로 나타낸다. 프레임 이름은 의미망에서의 노드에 해당한다. 속성은 이 노드와 연관된 아크의 이름에 해당하며 속성값은 이 아크의 다른 쪽 끝에 있는 노드에 해당한다. 이러한 속성과 속성 값의 쌍을 보통 슬롯 (slot) 이라고 하고, 속성을 슬롯 이름 (slot name) 이라고 하며, 값은 슬롯 채우기 (slot filler) 라고 한다. 그림 5 는 프레임의 한 예이다. 이러한 방법으로 흔히 메타지식 (metaknowledge) 이라는 것도 표현할 수 있다. 예를 들면, 프레임이 생성된 날짜와 프레임을 생성한 사람에 대한 지식은 프린터에 대한 지식이 아니라 프레임 자체에 대한 지식이다.

그림 5 프레임
의미망과 프레임으로 표현하기 어려운 지식이 있을 수 있다. 예를 들어 논리합 (더 나아가 함의), 부정, 일반적인 비분류학적 지식을 표현하는 것은 (불가능하지는 않지만 [Hendrix 1979]) 어렵다. 이러한 문제로 인해 KRYPTON[Brachman, Gilbert & Levesque 1985] 이나 CLASSIC[Borgida, et al. 1989] 과 같은 혼합형 시스템이 탄생하였다. 이러한 시스템에서는 개체, 클래스, 속성, 논리식을 나타내기 위해 계층 구조를 이용하는 소위 용어논리 (terminological logic) 라는 것이 사용된다.
상식의 표현과 추론 방법에 대하여 보다 자세한 내용을 보고 싶으면 [Davis 1990 (Davis, E., {Representations of Commonsense Knowledge, San Francisco: Morgan Kaufmann, 1990.), Hobbs & Moore 1985 (Hobbs, J., and Moore, R., (eds.), Formal Theories of the Commonsense World, Norwood, NJ: Ablex, 1985.)] 를 참조하라. CYC 에 대해서는 Artificial Intelligence 61 권 1 호 (1993) 41 페이지에서 104 페이지 사이에 [Lenat & Guha 1990 (Lenat, D., and Guha, R., Building Large Knowledge Bases, Reading, MA: Addison-Wesley, 1990.)] 에 대한 5 개의 논평을 참조하라.
[Sowa 1991 (Sowa, J. (ed.), Principles of Semantic Networks, San Francisco: Morgan Kaufmann, 1991.)] 은 의미망에 관련된 논문들을 모은 책이다. 의미망에서의 효율적인 추론을 위해 AI 학자들이 개발한 성질 상속 기법은 객체지향 프로그래밍 언어에 도입되었다. [Heinsohn, et al. 1992 (Heinsohn, J., Kudenko, D., Nebel, B., and Profitlich, H.-J., "An Empirical Analysis of Terminological Representation Systems," Proceedings of the Tenth National Conference on Artificial Intelligence (AAAI-92), pp.767-773, Menlo Park, CA: AAAI Press, 1992.)] 에서는 다양한 용어논리 시스템을 실험적으로 비교한 결과를 볼 수 있다.
의미망에서 상속 소거는 비단조 추론 기법이다. 디폴트 논리와 한계지정 (circum scription) 의 보다 복잡한 기법에 대해서는 이미 언급하였다. 이에 대한 개괄은 [Brewka, Dix & Konolige 1997 (Brewka, G., Dix, J., and Konolige, K., Nonmonotonic Reasoning: An Overview, CSLI Lecture Notes, No. 73, Center for the Study of Language and Information, Stanford, CA: Stanford University, 1997.)] 에 있다. 또 다른 비단조 추론 방법으로 폐쇄세계 가정 (closed-world assumption, CWA) 이라고 하는 것이 있다. CWA 는 술어논리식으로 주어진 지식베이스 △ 와 함께 △ 로부터 추론될 수 없는 모든 기초 아톰 (ground atom) 을 포함함으로써 △ 를 확장한다. 아톰 α 가 △ 에 추가되면 CWA 에 의해 추가된 ¬α 는 제거되어야 하므로 이 과정은 비단조적이다. 비단조 추론에 관한 논문을 보려면 [Ginsberg 1987 (Ginsberg, M. (ed.), Readings in Nonmonotonic Reasoning, San Francisco: Morgan Kaufmann, 1987.)] 을 참조하라.
지식 표현에 관한 일부 작업은 지식 집약적인 프로그램이 정보를 공유할 수 있도록 하는 언어와 형식론에 초점을 맞추었다. 이런 예로 KIF (knowledge interchange format) [Genesereth & Fikes 1992 (Genesereth, M., and Fikes, R. (eds.), Knowledge Interchange Format, Version 3.0 Reference Manual, Computer Science Department, Stanford University, Technical Report Logic-92-1, June 1992.)] 와 KQML [Finin, Labrou & Mayfield 1997 (Finin, T., Labrou, Y., and Mayfield, J., "KQML as an Agent Communication Language," in Bradshaw, J. (ed.), Software Agents, Cambridge, MA: MIT Press, 1997.)] 이 있다. 이들 시스템은 본체론 (ontology) 이라고 하는 지식의 공통적 개념화를 확립하는 데 의존한다. [Gruber 1997 (Gruber, T., "Toward Principles for the Design of Ontologies Used for Knowledge Sharing," in Guarino, N., and Poli, R. (eds.), Formal Ontology in Conceptual Analysis and Knowledge Representation, Amsterdam: Kluwer Academic Publishers, 1997. (Original paper presented at the International Workshop on Formal Ontology, March 1993, Stanford Knowledge Systems Laboratory Report KSL-93-04.)] 에서는 이들 시스템의 설계 원칙에 대해서 기술되어 있다.
인간의 상식 표현과 추론 방법은 이 책에서 설명하는 논리적인 추론 방법과 상당히 다르다. 유추와 은유의 사용은 기본적인 것처럼 보인다. 유추에 의한 추론에 대해서는 [Gentner 1983 (Gentner, D., "Structure Mapping: A Theoretical Framework for Analogy," Cognitive Science, 7:155-170, 1983.)] 을 포함한 AI 및 심리학 분야의 많은 학자들에 의해 연구되었다. [Lakoff 1987 (Lakoff, G., Women, Fire, and Dangerous Things: What Categories Reveal about the Mind, Chicago: The University of Chicago Press, 1987.), Lakoff & Johnson 1980 (Lakoff, G., and Johnson, M., Metaphors We Live By, Chicago: The University of Chicago Press, 1980.)] 은 사고와 언어에서 유추의 역할에 대해서 다룬 책이다. 사례기반 추론 (case-based resoning) 은 과거에 해결한 문제와의 유추 및 유사성을 이용하는 추론 방법이다 [Kolodner 1993 (Kolodner, J., Case-Based Reasoning, San Francisco: Morgan Kaufmann, 1993.)]. (Machine Learning 10 권 3 호 (1993) 1 페이지에서 5 페이지 사이의 사례기반 추론에 관한 특집도 참고하기 바란다).