이 문서는 전산학과 컴퓨터 과학에서의 **온톨로지**에 관한 것입니다. 철학의 존재론에 대해서는 존재론 문서를 참고하십시오.
**온톨로지**(Ontology)란 사람들이 세상에 대하여 보고 듣고 느끼고 생각하는 것에 대하여 서로 간의 토론을 통하여 합의를 이룬 바를, 개념적이고 컴퓨터에서 다룰 수 있는 형태로 표현한 모델로, 개념의 타입이나 사용상의 제약조건들을 명시적으로 정의한 기술이다. 온톨로지는 일종의 지식표현(knowledge representation)으로, 컴퓨터는 온톨로지로 표현된 개념을 이해하고 지식처리를 할 수 있게 된다. 프로그램과 인간이 지식을 공유하는데 도움을 주기 위한 온톨로지는, 정보시스템의 대상이 되는 자원의 개념을 명확하게 정의하고 상세하게 기술하여 보다 정확한 정보를 찾을 수 있도록 하는데 목적이 있다. 온톨로지는 시맨틱 웹을 구현할 수 있는 도구로서, 지식개념을 의미적으로 연결할 수 있는 도구로서 RDF, OWL, SWRL 등의 언어를 이용해 표현한다.

온톨로지는 일단 합의된 지식을 나타내므로 어느 개인에게 국한되는 것이 아니라 그룹 구성원이 모두 동의하는 개념이다. 그리고 프로그램이 이해할 수 있어야 하므로 여러 가지 정형화가 존재한다.

어원
--

온톨로지(Ontology)는 '존재론'이라하며 원래 사물의 존재 의미를 논의하는 철학적인 연구 영역을 뜻하는 말이다. 이 존재론은 "이 세계에는 어떤 종류의 존재자들(물리적, 현상적, 개념적, 추상적, 감성적)이 존재하는가, 그들의 본성(본질)은 무엇인가, 그들 존재자들 사이에는 어떤 관계가 있는가, 그들 존재자들로부터 어떻게 세계가 구성될 수 있는가"를 다루는 분야이다. 또 온톨로지는 '실재'라는 의미의 그리스어 'onto'와 학문 또는 강연 등의 의미를 갖는 'logia'의 합성어로부터 유래되었다.

최근의 시맨틱 웹, 지식공학, 인공지능, 자연어처리 등 정보기술 분야에서의 온톨로지는 각각의 지식(혹은 단어, 개념)이 전체 지식 체계 중에서 어디에 위치하는지를 밝히는 연구 분야를 의미하는데, 어떤 단어와 단어 사이의 상관관계를 보다 빠르고 편하게 검색할 수 있도록 돕는 연구 분야를 의미한다.

개요
--

전산학과 정보 과학에서 온톨로지란 특정 분야를 기술하는 데이터 모델로서 특정한 분야(domain)에 속하는 개념과, 개념 사이의 관계를 기술하는 정형(formal) 어휘의 집합으로 이루어진다. 예를 들어 "종-속-과-목-강-문-계"로 분류되는 생물과 생물 사이의 분류학적 관계나, 혹은 영어 단어 사이의 관계를 정형 어휘로 기술하면 각각 온톨로지라고 할 수 있다. 정형 언어(formal language)로 기술된 어휘의 집합인 온톨로지는 연역과 추론에 사용된다.

온톨로지는 시맨틱 웹을 구현할 수 있는 도구로서 여러 지식 개념들을 의미적으로 서로 연결할 수 있는 도구이다. 웹 정보 검색은 웹을 통해 접근할 수 있는 모든 전자자원을 대상으로 하는 검색을 가능하게 하였다. 웹의 급속한 발달로 인해 검색 대상 범위가 확대됨에 따라 보다 정교한 검색을 필요로 하게 되었으며, 지능화된 정보 검색 시스템 개발을 촉진하는 계기가 되었다. 이런 계기를 바탕으로 웹 자원을 효과적으로 관리할 수 있는 정보 검색의 새로운 도구의 필요성이 대두되었고, 온톨로지가 각광을 받게 되었다.

온톨로지는 자연어의 기계 번역과 인공지능 분야에서 활용되며, 최근에는 특정 분야의 인터넷 자원과 그 사이의 관계를 기술하는 온톨로지를 사용하는 시맨틱 웹과 이것에서 파생된 시맨틱 웹 서비스 등의 핵심 요소로서 주목받고 있다.

주로 인용되는 온톨로지에 대한 정의는 '어떤 관심 분야를 개념화하기 위해 명시적으로 정형화한 명세서(an explicit and formal specification of a conceptualization of a domain of interest)'이다. 즉, 각 사물에서 공통점을 찾아내고 이를 하나의 집합 또는 범주로 나타내기 위해 의미, 지식의 쓰임새 등을 분명하고 자세하게 설명하는 것을 말한다. 또 보스트(Borst)는 온톨로지를 '공유된 개념의 정형화된 명세(a formal specification of a shared conceptualization)'라고 정의하고 있다. 그루버의 정의 위에 '공유'의 개념이 추가되었는데, 이는 하나의 잘 정의된 개념을 각 분야에서 공통적으로 사용한다는 의미로 볼 수 있다.

온톨로지의 필요성
---------

예전부터 사람들은 표준을 만드는 노력을 지속적으로 해왔다. 간단한 척도(거리, 시간, 온도 등)부터 용어 등을 표준화하는 작업을 지속적으로 하고 있었다. 그러나 일반적인 지식들을 이러한 표준화 작업을 통해서 용어를 정의해 나가는 데는 너무 많은 노력과 합의가 있어야 한다. 그래서 사람들이 방법을 바꾸게 된다. 현명한 선택이다. "각자가 다른 용어를 쓰더라도 같은 대상(존재)을 이야기 한다면, 그 속성이 같지 않겠는가"라는 생각에서 출발한 것이 온톨로지이다. 예를 들어, board가 있는데, 그 속성에 '눈'과 관련이 있으면 '스노보드'로 인식하는 것이고, 음식과 관련이 있으면 '식탁'으로, 인터넷과 관련이 있으면 '온라인 게시판'으로, 학교 및 학부모 등과 관련이 있으면 ‘학교 등의 위원회’, 또 회사 등이면 ‘이사회’ 등으로 인식할 수 있다. 이렇게 사람이 문맥을 보고 그 단어의 의미를 찾아가는 것과 비슷한데, '개념', '관계', '구조', '공리(axiom)', ‘제약’ 등 좀 더 복잡한 관계를 가지고 웹에 기계가 이해할 수 있는 방식으로 정보를 제공하려고 한다.

기계가 의미에 따라 정보를 추론하여 사용자에게 제공하는 환경을 시맨틱 웹이라고 한다면 그 중 이렇게 기계가 의미를 해석하는데 도움이 되는 뼈대를 온톨로지라고도 할 수 있다. 정보 기술에서의 온톨로지(Ontology)는 지식의 어떤 특정 영역 내에 있는 ‘실체’와 ‘그 실체가 의미하는 것’(또는 데이터와 그 데이터가 뜻하는 ‘의미’) 사이의 상호 작용의 작업 모델을 말하며, 실체와 가상(그것의 웹 표현) 사이의 윤활유가 필요하다. 이것을 웹상에서 공유하기 위한 표준들과 Best Practice들의 집합체를 말한다고도 볼 수 있다.

역할과 기능
------

시맨틱 웹 기술은 사람의 머리 속에 있는 언어에 대한 이해를 컴퓨터 언어로 표현하고 이것을 컴퓨터가 사용할 수 있게 만드는 것인데, 특별한 분산환경을 갖춘 웹에 구현하자는 것이다. 이것은 기계가 정보검색과 같은 사람의 요구를 더 잘 이해하고 적절하게 반응하도록 만들기 위해서이다. 사람과 기계 사이에 진정한 커뮤니케이션이 가능하기 위해서는 사람이 이해하는 수준으로 기계도 언어를 이해할 수 있어야 한다. 그러나 HTML 형태의 문서들로 이뤄진 현재의 웹은 사람에게 정보를 주는 역할은 하고 있지만 컴퓨터 프로그램이 각 문서의 내용을 정확히 파악할 수 없다. 온톨로지는 이러한 문제의식에서 출발한다. 세상에 있는 각각의 사물이나 사건들을 경험하면서 이들 속에 들어있는 특징을 파악해서 이해하는 방식을 개념화라고 하는데, 온톨로지는 컴퓨터에서도 사람이 갖고 있는 개념과 같은 것을 일종의 데이터베이스와 같은 형태로 만드는 기술이라 할 수 있다. 프로그램과 인간이 지식을 공유하는데 도움을 주기 위한 온톨로지는, 정보시스템의 대상이 되는 자원의 개념을 명확하게 정의하고 상세하게 기술하여 보다 정확한 정보를 찾을 수 있도록 하는데 목적이 있다. 온톨로지 기반의 시스템은 정보 콘텐츠 구조에 대한 명세서로서의 역할, 해당 분야의 지식 공유와 재사용, 해당 영역의 제약과 가정에 대한 명시, 지식과 프로세스의 분리 등의 장점을 가진다.

구성
--

온톨로지의 구성 요소는 클래스(class), 인스턴스(instance), 관계(relation), 속성(property)으로 구분할 수 있다.

클래스(Class)클래스는 일반적으로 우리가 사물이나 개념 등에 붙이는 이름을 말한다고 설명할 수 있다. "키보드", "모니터", "사랑"과 같은 것은 모두 클래스라고 할 수 있다.
인스턴스(Instance)인스턴스는 사물이나 개념의 구체물이나 사건 등의 실질적인 형태로 나타난 그 자체를 의미한다. 즉, "LG전자 ST-500 울트라슬림 키보드", "삼성 싱크마스터 Wide LCD 모니터", "로미오와 줄리엣의 사랑"은 일반적으로 인스턴스라 볼 수 있다. 이와 같은 클래스와 인스턴스의 구분은 응용과 사용목적에 따라서 매우 달라질 수 있다. 즉, 같은 표현의 개체가 어떠한 경우에는 클래스가 되었다가 다른 경우에는 인스턴스가 될 수 있다.
속성(Property)속성은 클래스나 인스턴스의 특정한 성질, 성향 등을 나타내기 위하여 클래스나 인스턴스를 특정한 값(value)과 연결시킨 것이다. 예를 들어, "삼성 싱크마스터 Wide LCD 모니터는 XX인치이다."라는 것을 표현하기 위하여, hasSize와 같은 속성을 정의할 수 있다.
관계(Relation)관계는 클래스, 인스턴스 간에 존재하는 관계들을 칭하며, 일반적으로 taxonomic relation과 non-taxonomic relation으로 구분할 수 있다.
* Taxonomic Relation은 클래스, 인스턴스들의 개념분류를 위하여 보다 폭넓은 개념과 구체적인 개념들로 구분하여 계층적으로 표현하는 관계이다. 예를 들어, "사람은 동물이다"와 같은 개념간 포함관계를 나타내기 위한 "isA" 관계가 그것이다.
* Non-taxonomic relation은 Taxonomic Relation이 아닌 관계를 말한다. 예를 들어, "운동으로 인해 건강해진다"는 것은 "cause" 관계(인과관계)를 이용하여 표현한다.

일반적으로 관계와 속성은 굳이 구분하여 칭하지 않는 경우가 많다. "isA(사람, 동물)", "cause(운동, 건강)", "hasSize(삼성 싱크마스터 Wide LCD, XX 인치)"와 같은 실제 클래스, 인스턴스들 사이의 관계로 선언한 관계, 속성을 관계, 속성 인스턴스(relation/property instance)라고 부르기도 하는데, 이는 "isA", "cause", "hasSize" 등과 같이 정의하여 명명한 관계, 속성과의 구분을 위하여서이다.

종류
--

### 시스템 측면에 따른 구분

* 언어 온톨로지(Linguistic Ontology) : 텍스트, 말뭉치 등에서 추출된 데이터나 정보에 대한 자연어 인터페이스를 지원하는 온톨로지이다. (예: CYC 온톨로지, EDR, WordNet)
* 공리 온톨로지(Axiomatized Ontology) : 정보시스템과 관련된 영역의 부분적 이해를 표현하는데 이용되는 규칙, 이론, 제한점 등의 스키마나 애플리케이션을 자동으로 생성시키는 것을 지원하는 온톨로지이다. (예: 웹 온톨로지)
* 언어 온톨로지 + 공리 온톨로지 : 인공지능 온톨로지이다.

### 구축 범위에 따른 구분

* 일반 온톨로지(Generic or common-sense ontology) : 우리 주위의 세상을 구성하는 일반적 개념들을 대상으로 구축한 온톨로지이다. 공간, 상태, 사건, 시간과 같은 일반적이고 포괄적인 지식에 대하여 의미론적 연관 관계를 구축한 개념의 집합체이다.
* 영역 온톨로지(Domain ontology) : 특정 영역에서 유효한 지식들을 대상으로 구축한 온톨로지이다. 구체적인 사물 혹은 특정 학문 영역과 같은 제한된 영역에서 의미론적 연관관계를 구축한 개념의 집합체라 할 수 있다.

### 구축 대상에 따른 구분

* 메타데이터 온톨로지 : 데이터베이스 정보의 의미론적 연결을 위한 기술 어휘와 기준의 집합이다.
* 웹 온톨로지(Web ontology) : 넓은 의미에서 메타데이터 온톨로지의 한 종류라 할 수 있으며, 웹 문서 작성 언어의 태깅과 정의에 필요한 기준, 기술방식의 의미론적 연결이라 할 수 있다.
* 표현 온톨로지(Representational ontology) : 특정 영역(domain)에 해당하지 않으면서 무엇을 표현해야 하는지에 대한 언급 없이, 프레임, 슬롯, 제한을 기술함으로써 개체(entity)를 표현하는 온톨로지이다.
* 업무 온톨로지(Method/Task ontology) : 특정한 업무에 관한 정보를 제공하는 온톨로지이다.

온톨로지 언어
-------

온톨로지에서 주로 사용하는 언어에는 RDF, OWL, SWRL 등이 있다. RDF는 XML에서 발전한 형태이며, subject, object, predicate으로 이루어지며, 단순하게 개념 혹은 인스턴스 사이의 관계를 나타낸다. 일반적으로 복잡한 제약조건이 필요없는 일반 응용을 산정할 경우에 RDF를 많이 사용한다. OWL은 관계들 간의 hierarchy, 관계 인스턴스 내에서의 논리적 제약조건 등을 포함한 언어이다. 정밀하고 논리적인 추론을 필요로 하는 경우에 사용한다. SWRL은 추론을 위한 규칙을 정의하기 위하여 사용한다.

적용 분야
-----

### 인공지능 분야

가장 먼저 온톨로지 개념을 적용한 컴퓨터 분야는 역시 지식 표현과 활용을 연구하는 인공지능 분야다. 특히 에이전트 분야는 이미 90년대 초부터 분산된 환경에서 에이전트들이 상호작용을 통해 의미있는 문제를 해결하기 위해서는 서로 공유할 수 있는 기본 지식 기반이 필요하다는 것을 인식하여 일종의 온톨로지라 할 수 있는 개념 계층도(concept hierarchy) 등을 이용했으며, 지식과 정보를 교환하기 위한 질의어(예: KQML-Knowledge Query and Manipulation Language)와 지식교환 형식(예: KIF-Knowledge Interchange Format) 등을 정의했다. 특히 미 국방연구처(DARPA)의 DAML-OIL(DARPA Agent Markup Language - Ontology Inference Layer)은 대표적인 온톨로지 표현언어 및 형식으로 받아들여지고 있다.

### 정보검색 분야

대표적 분야 중 하나인 정보검색 분야의 온톨로지는 용어모음이나 동의어사전 형태만으로도 불필요한 오류를 방지할 수 있고 검색 효율을 높일 수 있다. 예를 들어 사용자가 잘못 기재한 ‘불공정 거레’라는 키워드는 온톨로지를 이용해 ‘불공정 거래’로 바로잡힐 것이며, ‘불공정 경쟁, 독점, 덤핑, 정부 보조금’과 같은 유사 또는 관련어를 이용해 더욱 풍부한 검색 서비스를 제공할 수 있게 된다. 온톨로지는 또 어휘 간 의미 모호성을 통해 발생할 수 있는 의미충돌을 방지시켜주며, 같은 개념에 대한 다른 어휘를 연결시켜줌으로써 특정 개념에 대해 더욱 상세하고, 관련성 높은 정보 제공해 줄 수 있게 한다. 개방형 디렉터리 프로젝트에서는 자발적으로 참여하는 사람들이 인터넷 정보의 분류체계를 만들고 있으며, 이 분류체계는 구글 등 상용 검색 사이트를 비롯한 수많은 사이트에서도 사용될 정도로 대표적인 웹 정보 분류체계로 받아들여지고 있어, 처음 방문하는 사이트에서도 익숙한 분류 카테고리를 이용할 수 있는 경우가 점점 많아지고 있다.

### 유비쿼터스 컴퓨팅 분야

휴대형의 작은 무선기기들이 동적으로 임의 네트워크를 형성하는 환경에서 각 기기들이 서로의 서비스 기능을 광고하고 또 인식할 수 있어야 하는데, 서로 다른 시기에 상이한 업체에 의해 제조된 기기들 사이에서 이를 가능하게 하기 위해서는 동적으로 접근이 가능한 온톨로지의 사용이 타당한 대안으로 제시된다.

### 전자상거래 분야

온톨로지가 가장 널리 파급될 가능성이 있는 분야는 전자상거래 분야다. 컴퓨터 프로그램이 상거래의 일부 또는 전부를 맡아서 처리하는 것이므로 프로그램이 다양한 상거래 개념을 이해하고 처리해야 할 것이다. 로제타넷과 같은 전자상거래 프레임워크는 종합 온톨로지라 할 수 있는데, 예를 들어 로제타넷의 PIP(Partner Interface Process)는 거래 프로세스의 온톨로지로 볼 수 있고 로제타넷 비즈니스 사전(RNBD)과 로제타넷 기술 사전(RNTD)은 각각 비즈니스와 기술적인 개념들의 온톨로지로 볼 수 있다. 즉 표준화할 수 있고 일반화할 수 있는 개념들을 컴퓨터가 처리할 수 있는 형식으로 명시함으로써 공유할 수 있고 재사용이 가능한 틀을 제공할 수 있는 것이다.

출처
--

* 고영만. "온톨로지와 웹 온톨로지 (Ontology and Web Ontology)". 성균관대학교 문헌정보학과.
* 이상구 (2003). "[테마특강]온톨로지에 대한 새로운 접근".