지식 표현 및 추론

**지식 표현**(Knowledge representation, **KR**)은 지식 기반 시스템에서 지식으로 공식화하기 위해 정보를 구조화된 방식으로 모델링하는 것을 목표로 한다. 반면 **지식 표현 및 추론**(Knowledge representation and reasoning, **KRR**, **KR&R** 또는 **KR<sup>2</sup>**)은 지식을 이해하고 추론하며 해석하는 것까지 목표로 한다. KRR은 인공지능(AI) 분야에서 널리 사용되며, 의학적 상태 진단이나 자연어 대화와 같은 복잡한 작업을 해결하기 위해 컴퓨터 시스템이 사용할 수 있는 형태로 세상에 대한 정보를 표현하는 것을 목표로 한다. KR은 복잡한 시스템을 더 쉽게 설계하고 구축할 수 있는 형식 체계를 고안하기 위해, 인간이 문제를 해결하고 지식을 표현하는 방식에 대한 심리학의 연구 결과를 통합한다. 또한 KRR은 다양한 종류의 추론을 자동화하기 위해 논리학의 연구 결과를 통합한다.

전통적인 KRR은 지식의 선언적 표현에 더 집중한다. 관련 지식 표현 형식에는 주로 어휘, 시소러스, 시맨틱 네트워크, 공리 체계, 프레임, 규칙, 논리 프로그램 및 온톨로지가 포함된다. 자동화된 추론 엔진의 예로는 추론 엔진, 정리 증명기, 모델 생성기 및 분류기가 있다.

더 넓은 의미에서, 합성곱 신경망 및 트랜스포머와 같은 인공 신경망 구조를 포함한 기계 학습의 매개변수화된 모델도 지식 표현 형식의 일종으로 간주될 수 있다. 지식 기반 시스템에 어떤 형식이 가장 적합한지에 대한 문제는 오랫동안 광범위한 논쟁의 주제였다. 예를 들어, 프랑크 판 하르멜런 등은 지식 표현 형식으로서 논리의 적합성을 논의하고 반논리주의자들이 제시한 주장들을 검토했다. 폴 스몰렌스키는 기호적 형식주의의 한계를 비판하고 이를 연결주의 접근 방식과 통합할 가능성을 탐구했다.

## 역사

컴퓨터화된 지식 표현에 관한 초기 연구는 1959년 앨런 뉴얼과 허버트 사이먼이 개발한 제너럴 프라블럼 솔버(GPS) 시스템과 역시 1959년 존 매카시가 제안한 어드바이스 테이커(Advice Taker)와 같은 일반적인 문제 해결기에 집중되었다. GPS는 계획 및 분해를 위한 데이터 구조를 특징으로 했다. 시스템은 목표에서 시작하여 그 목표를 하위 목표로 분해한 다음, 각 하위 목표를 달성할 수 있는 전략을 구축했다. 반면 어드바이스 테이커는 상식적 추론을 구현하기 위해 술어 논리를 사용할 것을 제안했다.

인공지능(AI) 초기 지식 표현 접근 방식의 상당수는 오늘날의 지식 그래프와 유사한 그래프 표현과 시맨틱 네트워크를 사용했다. 이러한 접근 방식에서 문제 해결은 A* 알고리즘에서와 같이 그래프 탐색이나 경로 찾기의 형태였다. 전형적인 응용 분야에는 로봇 계획 형성 및 게임 플레이가 포함되었다.

다른 연구자들은 수학을 정형화하고 수학적 정리의 증명을 자동화하기 위해 수리논리학을 사용하는 것에 동기 부여를 받아 1차 논리를 위한 자동 정리 증명기 개발에 집중했다. 이 방향에서 중요한 단계는 존 앨런 로빈슨에 의한 분해 증명법의 개발이었다.

한편, 존 매카시와 패트 헤이스는 원인과 결과의 법칙에 관한 상식적 지식의 논리적 표현으로서 상황 미적분학을 개발했다. 이어서 코델 그린은 상황 미적분학에 분해법을 적용하여 로봇 계획을 형성하는 방법을 보여주었다. 그는 또한 질의 응답과 자동 프로그래밍에 분해법을 사용하는 방법을 보여주었다.

대조적으로 매사추세츠 공과대학교(MIT)의 연구자들은 분해법 중심의 획일적인 증명 절차 패러다임을 거부하고 대신 지식의 절차적 임베딩을 주장했다. 논리적 표현의 사용과 절차적 표현의 사용 사이의 이러한 갈등은 1970년대 초 혼 절을 목표 감소 절차로 다루기 위해 SLD 분해를 사용하는 논리형 프로그래밍과 프롤로그의 개발로 해결되었다.

초기 논리 프로그래밍의 발전은 주로 유럽의 현상이었다. 북미에서 에드워드 파이겐바움과 프레더릭 헤이스-로스 같은 AI 연구자들은 범용 추론보다는 특정 도메인 지식의 표현을 주장했다.

이러한 노력은 심리학의 인지 혁명과 1970년대와 80년대에 전문가 시스템, 생산 시스템, 프레임 언어 등을 낳은 지식 표현 중심의 AI 단계로 이어졌다. 일반적인 문제 해결기 대신 AI는 의료 진단과 같은 특정 작업에서 인간의 능력에 필적할 수 있는 전문가 시스템으로 초점을 옮겼다.

전문가 시스템은 AI 시스템을 문제 도메인에 대한 사실과 규칙을 포함하는 지식 베이스와, 해당 도메인의 질문에 답하고 문제를 해결하기 위해 지식 베이스의 지식을 적용하는 추론 엔진으로 나누는 오늘날에도 사용되는 용어 체계를 제공했다. 초기 시스템에서 지식 베이스의 사실들은 상당히 평면적인 구조를 갖는 경향이 있었으며, 본질적으로 규칙에 의해 사용되는 변수의 값에 대한 주장이었다.

한편, 마빈 민스키는 1970년대 중반에 프레임의 개념을 개발했다. 프레임은 객체 클래스와 유사하다. 그것은 세상의 사물, 문제 및 잠재적 해결책을 설명하는 카테고리의 추상적인 설명이다. 프레임은 원래 인간의 상호 작용에 맞춘 시스템, 예를 들어 자연어 이해나 레스토랑에서 음식을 주문하는 것과 같은 다양한 기본 기대치가 탐색 공간을 좁히고 시스템이 역동적인 상황에 적절한 반응을 선택할 수 있게 해주는 사회적 환경에 사용되었다.

얼마 지나지 않아 프레임 커뮤니티와 규칙 기반 연구자들은 그들의 접근 방식 사이에 시너지 효과가 있다는 것을 깨달았다. 프레임은 클래스, 서브클래스, 다양한 제약 조건이 있는 슬롯(데이터 값)으로 설명되는 실제 세상을 표현하는 데 좋았다. 규칙은 의료 진단을 내리는 과정과 같은 복잡한 논리를 표현하고 활용하는 데 좋았다. 프레임과 규칙을 결합한 통합 시스템이 개발되었다. 가장 강력하고 잘 알려진 것 중 하나는 1983년 인텔리코프의 지식 엔지니어링 환경(KEE)이었다. KEE는 전방 추론과 후방 추론을 갖춘 완전한 규칙 엔진을 가지고 있었다. 또한 트리거, 슬롯, 상속 및 메시지 전달이 있는 완전한 프레임 기반 지식 베이스를 갖추고 있었다. 메시지 전달은 AI가 아닌 객체 지향 커뮤니티에서 시작되었지만, KEE와 같은 환경이나 심볼릭스, 제록스, 텍사스 인스트루먼트의 리스프 머신용 운영 체제에서 AI 연구자들에 의해 빠르게 수용되었다.

프레임, 규칙 및 객체 지향 프로그래밍의 통합은 다양한 연구 프로젝트에서 파생된 KEE 및 심볼릭스와 같은 상업적 벤처에 의해 크게 추진되었다. 동시에 상업적 초점은 덜하지만 수리 논리와 자동 정리 증명에 의해 추진된 또 다른 연구 흐름이 있었다. 이 연구에서 가장 영향력 있는 언어 중 하나는 80년대 중반의 KL-ONE 언어였다. KL-ONE은 엄격한 의미론과 Is-A 관계와 같은 개념에 대한 공식적인 정의를 가진 프레임 언어였다. KL-ONE과 Loom 같이 그 영향을 받은 언어들은 IF-THEN 규칙이 아닌 형식 논리에 기반한 자동 추론 엔진을 가지고 있었다. 이 추론기를 분류기(classifier)라고 부른다. 분류기는 선언 집합을 분석하고 새로운 주장을 추론할 수 있다. 예를 들어, 공식적으로 지정되지 않은 다른 클래스의 서브클래스나 슈퍼클래스로 클래스를 재정의할 수 있다. 이런 방식으로 분류기는 기존 지식 베이스에서 새로운 사실을 연역해내는 추론 엔진 역할을 할 수 있다. 분류기는 또한 지식 베이스(KL-ONE 언어의 경우 온톨로지라고도 함)에 대한 일관성 검사를 제공할 수 있다.

지식 표현 연구의 또 다른 영역은 상식적 추론 문제였다. 인간의 자연어를 처리할 수 있는 소프트웨어를 만들려는 시도에서 처음 깨달은 것 중 하나는, 인간이 우리가 당연하게 여기지만 인공 에이전트에게는 전혀 명확하지 않은 실제 세상에 대한 광범위한 기초 지식(상식 물리학의 기본 원리, 인과 관계, 의도 등)을 규칙적으로 활용한다는 점이었다. 그 예가 프레임 문제인데, 사건 기반 논리에서는 어떤 외부의 힘에 의해 움직이지 않는 한 사물이 한 순간에서 다음 순간까지 위치를 유지한다는 것을 명시하는 공리가 필요하다는 것이다. 인간과 자연어로 대화하고 세상에 대한 기본적인 진술과 질문을 처리할 수 있는 진정한 인공지능 에이전트를 만들기 위해서는 이러한 종류의 지식을 표현하는 것이 필수적이다. 매카시와 헤이스의 상황 미적분학 외에도 이 문제를 해결하려는 가장 야심 찬 프로그램 중 하나는 더글러스 레넛의 Cyc 프로젝트였다. Cyc는 자체적인 프레임 언어를 구축하고 수많은 분석가가 그 언어로 상식적 추론의 다양한 영역을 문서화하게 했다. Cyc에 기록된 지식에는 시간, 인과 관계, 물리학, 의도 등에 대한 상식 모델이 포함되었다.

지식 표현의 출발점은 1985년 브라이언 캔트웰 스미스가 처음 공식화한 지식 표현 가설이다.

기계적으로 구현된 모든 지능적 과정은 다음과 같은 구조적 성분으로 구성될 것이다. a) 외부 관찰자인 우리가 자연스럽게 그 과정 전체가 보여주는 지식에 대한 명제적 설명으로 받아들이는 성분, b) 그러한 외부적 의미론적 속성과는 독립적으로, 그 지식을 나타내는 행동을 발생시키는 데 있어 형식적이지만 인과적이고 필수적인 역할을 하는 성분.

지식 표현 연구의 가장 활발한 분야 중 하나는 시맨틱 웹이다. 시맨틱 웹은 현재의 인터넷 위에 의미(semantics) 계층을 추가하고자 한다. 키워드를 통해 웹 사이트와 페이지의 색인을 생성하는 대신, 시맨틱 웹은 개념에 대한 거대한 온톨로지를 생성한다. 개념을 검색하는 것이 전통적인 텍스트 전용 검색보다 더 효과적일 것이다. 프레임 언어와 자동 분류는 미래의 시맨틱 웹에 대한 비전에서 큰 역할을 한다. 자동 분류는 개발자에게 끊임없이 진화하는 지식 네트워크에 질서를 제공하는 기술을 부여한다. 정적이고 즉각적인 진화가 불가능한 온톨로지를 정의하는 것은 인터넷 기반 시스템에 매우 제한적일 것이다. 분류기 기술은 인터넷의 역동적인 환경을 다룰 수 있는 능력을 제공한다.

주로 미국 국방고등연구계획국(DARPA)의 지원을 받은 최근 프로젝트들은 프레임 언어와 분류기를 XML 기반의 마크업 언어와 통합했다. 자원 기술 프레임워크(RDF)는 객체의 클래스, 서브클래스 및 속성을 정의하는 기본 기능을 제공한다. 웹 온톨로지 언어(OWL)는 추가적인 수준의 의미론을 제공하고 분류 엔진과의 통합을 가능하게 한다.

## 개요
지식 표현은 복잡한 문제를 해결하는 데 사용할 수 있는 세상에 대한 정보를 캡처하는 컴퓨터 표현을 설계하는 데 집중하는 인공지능 분야이다.

지식 표현의 정당성은 전통적인 절차적 코드가 복잡한 문제를 해결하는 데 최적의 형식이 아니라는 점에 있다. 지식 표현은 복잡한 소프트웨어를 절차적 코드보다 정의하고 유지 관리하기 쉽게 만들며 전문가 시스템에서 사용될 수 있다.

예를 들어, 코드 대신 비즈니스 규칙의 관점에서 전문가와 소통하는 것은 사용자와 개발자 사이의 의미론적 격차를 줄이고 복잡한 시스템의 개발을 더 실용적으로 만든다.

지식 표현은 자동화된 추론과 밀접한 관련이 있는데, 지식을 명시적으로 표현하는 주요 목적 중 하나가 그 지식에 대해 추론하고, 추론을 이끌어내며, 새로운 지식을 주장할 수 있도록 하기 위해서이기 때문이다. 사실상 거의 모든 지식 표현 언어는 시스템의 일부로 추론 또는 추론 엔진을 가지고 있다.

지식 표현 형식의 설계에서 핵심적인 트레이드오프는 표현력과 처리 효율성(tractability) 사이의 관계이다. 높은 표현력을 가지고 수학의 많은 부분을 공식화할 수 있는 1차 논리(FOL)는 지식 표현 언어의 표현력을 비교하는 표준이다.

틀림없이 FOL은 그 자체로 지식 표현 형식으로서 두 가지 단점, 즉 사용의 용이성과 구현의 효율성을 가지고 있다. 첫째, 높은 표현력 때문에 FOL은 동일한 정보를 표현하는 많은 방법을 허용하며, 이는 사용자가 복잡하고 수학 중심적인 방식으로 표현된 지식을 공식화하거나 이해하기 어렵게 만들 수 있다. 둘째, 복잡한 증명 절차 때문에 사용자가 복잡한 증명과 설명을 이해하기 어려울 수 있으며 구현이 효율적이기도 어려울 수 있다. 결과적으로 제한 없는 FOL은 많은 소프트웨어 개발자에게 위협적일 수 있다.

1970년대 AI 연구의 핵심적인 발견 중 하나는 FOL의 완전한 표현력을 갖추지 않은 언어도 여전히 FOL과 거의 유사한 표현력을 제공할 수 있으며, 일반 개발자와 컴퓨터 모두가 이해하기 더 쉬울 수 있다는 것이었다. 데이터베이스에서 시맨틱 네트, 생산 시스템에 이르기까지 초기 AI 지식 표현 형식의 상당수는 표현력과 표현의 자연스러움 및 효율성 사이의 균형을 맞추기 위한 다양한 설계 결정을 내린 것으로 볼 수 있다. 특히 이러한 균형 잡기는 규칙 기반 전문가 시스템에서 IF-THEN 규칙의 개발을 이끄는 동기였다.

유사한 균형 잡기는 논리형 프로그래밍(LP)과 논리 프로그래밍 언어 프롤로그의 개발 동기이기도 했다. 논리 프로그램은 규칙 기반 구문을 가지고 있어 생산 규칙의 IF-THEN 구문과 혼동하기 쉽다. 그러나 논리 프로그램은 잘 정의된 논리적 의미론을 갖는 반면 생산 시스템은 그렇지 않다.

초기 형태의 논리 프로그래밍은 FOL의 혼 절 부분 집합을 기반으로 했다. 그러나 나중에 확장된 LP에는 부정 허위 가정 추론 규칙이 포함되어 LP를 기본 추론을 위한 비단조 논리로 변환했다. 그 결과로 나타난 LP의 확장된 의미론은 혼 절과 FOL의 표준 의미론의 변형이며, 고유 이름 가정과 일종의 폐쇄 세계 가정을 포함하는 데이터베이스 의미론의 형태이다. 이러한 가정들은 FOL의 표준 의미론을 사용하여 명시적으로 기술하고 추론하기가 훨씬 어렵다.

이 주제에 관한 1993년의 핵심 논문에서 MIT의 랜들 데이비스는 지식 표현 프레임워크를 분석하기 위한 다섯 가지 뚜렷한 역할을 개략적으로 설명했다.

* "지식 표현(KR)은 근본적으로 대리물(surrogate), 즉 사물 그 자체의 대체물이며, 개체가 행동하는 대신 생각함으로써 결과를 결정할 수 있게 하는 데 사용된다." 즉, "세상에서 행동을 취하는 대신 세상에 대해 추론하는 것"이다.
* "그것은 온톨로지적 서약(ontological commitments)의 집합이다." 즉, "나는 세상을 어떤 용어로 생각해야 하는가?라는 질문에 대한 답이다."
* "그것은 지능적 추론에 대한 단편적인 이론이며, 세 가지 구성 요소로 표현된다. (i) 표현의 지능적 추론에 대한 근본적인 개념, (ii) 표현이 허용하는 추론의 집합, (iii) 표현이 권장하는 추론의 집합이다."
* "그것은 실용적으로 효율적인 계산을 위한 매체이다." 즉, "생각이 완수되는 계산 환경이다. 이러한 실용적 효율성에 대한 한 가지 기여는 표현이 정보를 조직화하기 위해 제공하는 지침에 의해 공급되며," 이는 "권장되는 추론을 용이하게 하기 위함"이다.
* "그것은 인간 표현의 매체이다." 즉, "우리가 세상에 대해 말하는 언어이다."

지식 표현과 추론은 시맨틱 웹을 가능하게 하는 핵심 기술이다. 자동 분류 기능이 있는 프레임 모델에 기반한 언어는 기존 인터넷 위에 의미론 계층을 제공한다. 오늘날 일반적인 텍스트 문자열 검색 대신, 논리적 쿼리를 정의하고 해당 쿼리에 매핑되는 페이지를 찾는 것이 가능해질 것이다. 이러한 시스템의 자동 추론 구성 요소는 분류기(classifier)로 알려진 엔진이다. 분류기는 규칙보다는 지식 베이스의 포함(subsumption) 관계에 집중한다. 분류기는 새로운 클래스를 추론할 수 있으며 새로운 정보가 가용해짐에 따라 온톨로지를 동적으로 변경할 수 있다. 이 기능은 인터넷의 끊임없이 변화하고 진화하는 정보 공간에 이상적이다.

시맨틱 웹은 지식 표현 및 추론의 개념을 XML 기반의 마크업 언어와 통합한다. 자원 기술 프레임워크(RDF)는 Is-A 관계 및 객체 속성과 같은 기본 기능을 사용하여 인터넷상에 지식 기반 객체를 정의하는 기본 기능을 제공한다. 웹 온톨로지 언어(OWL)는 추가적인 의미론을 더하고 자동 분류 추론기와 통합된다.

## 특징
1985년 로널드 J. 브래크먼은 지식 표현의 핵심 이슈를 다음과 같이 분류했다.

* 프리미티브(Primitives). 지식을 표현하는 데 사용되는 기본 프레임워크는 무엇인가? 시맨틱 네트워크는 최초의 지식 표현 프리미티브 중 하나였다. 또한 빠른 전역 탐색을 위한 데이터 구조와 알고리즘이 있다. 이 영역은 컴퓨터 과학의 데이터 구조 및 알고리즘 연구와 강하게 겹친다. 초기 시스템에서는 람다 대수를 모델로 한 리스프 프로그래밍 언어가 함수형 지식 표현의 형태로 자주 사용되었다. 프레임과 규칙이 그다음 종류의 프리미티브였다. 프레임 언어는 프레임 데이터를 표현하고 제약 조건을 강제하기 위한 다양한 메커니즘을 가졌다. 프레임의 모든 데이터는 슬롯에 저장된다. 슬롯은 엔터티-관계 모델링의 관계 및 객체 지향 모델링의 객체 속성과 유사하다. 프리미티브를 위한 또 다른 기법은 1차 논리(FOL)를 모델로 한 언어를 정의하는 것이다. 가장 잘 알려진 예는 프롤로그이지만, 많은 특수 목적의 정리 증명 환경도 존재한다. 이러한 환경은 논리 모델을 검증하고 기존 모델에서 새로운 이론을 도출할 수 있다. 본질적으로 논리학자가 모델을 분석하는 과정을 자동화한다. 정리 증명 기술은 소프트웨어 공학 분야에서 구체적인 실용적 응용 분야를 가졌다. 예를 들어, 소프트웨어 프로그램이 공식적인 논리 명세서를 엄격하게 준수함을 증명하는 것이 가능하다.
* 메타-표현(Meta-representation). 이는 컴퓨터 과학에서 반영(reflection) 문제로도 알려져 있다. 이는 형식 체계가 자신의 상태에 관한 정보에 접근할 수 있는 능력을 의미한다. 그 예로 스몰토크와 CLOS의 메타-객체 프로토콜이 있는데, 이는 개발자에게 런타임 시 클래스 객체에 대한 접근권을 부여하고 런타임 중에도 지식 베이스의 구조를 동적으로 재정의할 수 있게 한다. 메타-표현은 지식 표현 언어 자체가 그 언어로 표현됨을 의미한다. 예를 들어, 대부분의 프레임 기반 환경에서 모든 프레임은 프레임 클래스의 인스턴스일 것이다. 해당 클래스 객체는 런타임에 검사될 수 있으므로, 객체가 자신의 내부 구조나 모델의 다른 부분의 구조를 이해하고 심지어 변경할 수도 있다. 규칙 기반 환경에서 규칙 또한 보통 규칙 클래스의 인스턴스였다. 규칙에 대한 메타 프로토콜의 일부는 규칙 발화의 우선순위를 정하는 메타 규칙이었다.
* 불완전성. 전통적인 논리는 수학의 세계와 반대되는 현실 세계를 다루기 위해 추가적인 공리와 제약 조건이 필요하다. 또한 진술에 신뢰도를 연관시키는 것이 유용할 때가 많다. 즉, 단순히 "소크라테스는 인간이다"라고 말하는 것이 아니라 "소크라테스는 50%의 신뢰도로 인간이다"라고 말하는 것이다. 이는 일부 상용 도구로 이식된 전문가 시스템 연구의 초기 혁신 중 하나였으며, 규칙과 결론에 확실성 요인을 연관시키는 기능이었다. 이 분야의 이후 연구는 퍼지 논리로 알려져 있다.
* 정의와 보편자 대 사실과 기본값. 보편자는 "모든 인간은 죽는다"와 같은 세상에 대한 일반적인 진술이다. 사실은 "소크라테스는 인간이며 그러므로 죽는다"와 같은 보편자의 구체적인 사례이다. 논리적 용어로 정의와 보편자는 전칭 기호에 관한 것이고, 사실과 기본값은 존재 기호에 관한 것이다. 모든 형태의 지식 표현은 이 측면을 다루어야 하며 대부분은 보편자를 집합과 부분집합으로, 정의를 그 집합의 요소로 모델링하는 집합론의 변형을 통해 이를 수행한다.
* 비단조 추론. 비단조 추론은 다양한 종류의 가설적 추론을 허용한다. 시스템은 주장된 사실을 그것을 정당화하는 데 사용된 규칙 및 사실과 연관시키고, 해당 사실이 변경됨에 따라 의존적인 지식도 업데이트한다. 규칙 기반 시스템에서 이 기능은 진리 유지 시스템(truth maintenance system)으로 알려져 있다.
* 표현적 적절성. 브래크먼과 대부분의 AI 연구자들이 표현적 적절성을 측정하기 위해 사용하는 표준은 보통 1차 논리(FOL)이다. 이론적인 한계 때문에 FOL의 완전한 구현은 실용적이지 않다. 연구자들은 자신의 표현이 얼마나 표현력이 있는지(전체 FOL 표현력 중 어느 정도인지)를 명확히 해야 한다.
* 추론 효율성. 이는 시스템의 런타임 효율성, 즉 지식 베이스가 업데이트되고 추론기가 합리적인 시간 내에 새로운 추론을 도출하는 능력을 의미한다. 어떤 면에서 이것은 표현적 적절성의 반대 급부이다. 일반적으로 표현이 더 강력할수록(표현적 적절성이 높을수록), 자동화된 추론 엔진의 효율성은 떨어질 것이다. 특히 지식 표현 기술의 초기 응용 분야에서 효율성은 종종 문제가 되었다. 그것들은 대개 당시의 전통적인 플랫폼에 비해 느린 리스프와 같은 인터프리터 환경에서 구현되었다.

## 온톨로지 공학

지식 기반 시스템의 초기에는 지식 베이스가 상당히 작았다. 개념 증명 시연이 아니라 실제로 실제 문제를 해결하기 위한 지식 베이스는 잘 정의된 문제에 집중해야 했다. 예를 들어, 의학 진단 전체가 아니라 특정 종류의 질병에 대한 의학 진단에 집중하는 식이었다.

지식 기반 기술의 규모가 커지면서, 더 큰 지식 베이스와 서로 통신하고 통합할 수 있는 모듈식 지식 베이스의 필요성이 분명해졌다. 이로 인해 여러 프로젝트에서 사용할 수 있는 대규모 지식 베이스를 설계하고 구축하는 학문인 온톨로지 공학이 탄생했다. 이 분야의 선도적인 연구 프로젝트 중 하나는 Cyc 프로젝트였다. Cyc는 전문가 지식뿐만 아니라 상식 지식까지 포함하는 거대한 백과사전적 지식 베이스를 구축하려는 시도였다. 인공지능 에이전트를 설계할 때, 인간이 당연하게 여기는 지식인 상식 지식을 표현하는 것이 인간과 자연어로 상호 작용할 수 있는 AI를 만드는 데 필수적이라는 것이 곧 깨달아졌다. Cyc는 이 문제를 해결하기 위한 것이었다. 그들이 정의한 언어는 CycL로 알려졌다.

CycL 이후 많은 온톨로지 언어가 개발되었다. 대부분은 선언적 언어이며, 프레임 언어이거나 1차 논리에 기반한다. 특정 도메인과 문제 공간 주위에 경계를 정의하는 능력인 모듈성은 이러한 언어에 필수적이다. 톰 그루버가 말했듯이 "모든 온톨로지는 조약, 즉 공유에 공통된 동기를 가진 사람들 사이의 사회적 합의"이기 때문이다. 일반적인 목적의 온톨로지를 불가능하게 만드는 경쟁적이고 상이한 관점들이 항상 존재한다. 일반적인 목적의 온톨로지는 모든 도메인에 적용 가능해야 하며 서로 다른 지식 영역들이 통합되어야 한다.

다양한 작업 도메인을 위한 온톨로지를 구축하려는 시도는 긴 역사를 가지고 있다. 예를 들어 액체를 위한 온톨로지, 전자 회로를 표현하는 데 널리 사용되는 집중 정수 모델(예:), 그리고 시간, 믿음, 심지어 프로그래밍 자체를 위한 온톨로지가 있다. 이것들 각각은 세상의 일부를 보는 방식을 제공한다.

예를 들어 집중 정수 모델은 회로를 신호가 연결을 따라 즉각적으로 흐르는 구성 요소와 그들 사이의 연결이라는 관점에서 생각할 것을 제안한다. 이것은 유용한 관점이지만 유일한 가능성은 아니다. 장치 내부의 전기역학에 주의를 기울여야 한다면 다른 온톨로지가 발생한다. 여기서는 신호가 유한한 속도로 전파되며, 이전에는 I/O 동작을 가진 단일 구성 요소로 보았던 객체(저항기 등)를 이제는 전자기파가 흐르는 확장된 매질로 생각해야 할 수도 있다.

온톨로지는 물론 다양한 언어와 표기법(논리, LISP 등)으로 작성될 수 있다. 필수적인 정보는 그 언어의 형태가 아니라 내용, 즉 세상을 생각하는 방식으로 제공되는 개념의 집합이다. 간단히 말해서 중요한 부분은 그것들을 술어로 쓰느냐 LISP 구문으로 쓰느냐의 선택이 아니라 연결과 구성 요소 같은 개념이다.

어느 한 온톨로지를 선택하느냐에 따라 당면한 작업에 대해 확연히 다른 견해를 가질 수 있다. 회로를 전자기학적 관점이 아닌 집중 정수 관점으로 선택할 때 발생하는 차이를 생각해보라. 두 번째 예로, 규칙의 관점에서 본 의료 진단(예: MYCIN)은 프레임의 관점에서 본 동일한 작업(예: INTERNIST)과 상당히 다르게 보인다. MYCIN이 의료계를 증상과 질병을 연결하는 경험적 연관성으로 구성된 것으로 본다면, INTERNIST는 당면한 사례와 일치시켜야 할 일련의 프로토타입, 특히 전형적인 질병들의 집합으로 본다.

## 같이 보기
* 인공 지능
* 정보과학

## 각주

## 외부 링크
* 


분류:인공지능
분류:정보과학
분류:지식
분류:프로그래밍 패러다임
분류:자동 추론