티스토리 뷰

J:::SemanticWeb

J_2. 온톨로지

joyHong 2012. 4. 26. 21:02

온톨로지

온톨로지는 철학에서 말하는 온톨로지* 가 있고 철학 이외의 학문분야에서 말하는 온톨로지가 있다.
철학에서 말하는 온톨로지라는 용어가 다른 학문분야에서 사용되기 시작한 것은 1970년 중반 이후에 인공지능 분야에서 사용하기 시작하면서 발생하였다는 이야기도 있다. 원래 철학의 한 분야였지만 시간이 지나면서 보다 광범위한 분야에서 수용되어졌으며, 어떠한 세상 또는 그 일부분에 대한 지식 표현의 한 형태라는 새로운 개념의 온톨로지는 인공지능, 시맨틱웹, 소프트웨어공학, 생명의학정보학, 도서관학 등에 적용되어 사용되고 있다. 그렇다면 철학에서 이야기하는 온톨로지보다는 지금 우리(?)가 사용하는 온톨로지, 다시말해서 '시맨틱웹에서 사용하고 있는 온톨로지라는 용어는 과연 무엇인가?'를 알아보고 싶다는 생각이 들 것 같다.


온톨로지의 정의

1970년대 중반 이후로 인공지능 분야의 연구자들은 지식 획득이 거대하고 강력한 AI 시스템을 구축하는 핵심이라는 것을 인식하였다. 그들은 자동추론을 가능하게 하는 computational model로서의 새로운 온톨로지를 생성할 수 있다고 주장하였다. 1980년대에 들어 '모델화된 세상에 대한 이론'과 '지식시스템의 한 구성요소'를 지칭하기 위해 온톨로지라는 용어를 사용하기 시작하였다. 1990년대 초반에 Tom Gruber는 컴퓨터 사이언스의 기술 용어로서 온톨로지를 간주하면서 온톨로지를 개념화된 명세로 소개하였다.

"An ontology is a description (like a formal specification of a program) of the concepts and relationships that can formally exist for an agent or a community of agents. This definition is consistent with the usage of ontology as set of concept definitions, but more general. And it is a different sense of the word than its use in philosophy."

온톨로지는 철학에서 시작하여 인공지능, 정보과학 분야로 지나면서 정의되고 사용되어졌고 사용되고 있다. 그리고 분명한 것은 시맨틱웹에서도 온톨로지가 사용되고 있다는 것이다.

본론으로 들어가서, 온톨로지의 정의는 무엇일까?
가장 많이 들어봤고 사용되는 정의는 Gruber의 '공유된 개념화(shared conceptualization)에 대한 정형화되고 명시적인 명세(formal and explicit specification)' 이다.
하나씩 살펴보면
- '공유된' 이라는 것은 개인과 개인이 속한 커뮤니티 그리고 그 구성원은 물론 기계(컴퓨터)간에도 합의가 되었다는 것을 뜻한다.
- '개념화'는 특정 분야에서 일어나는 현상에 연관된 것들을 추상화환 모델을 뜻한다.
- '정형화'는 기계가 읽고 처리할 수 있다는 형태를 뜻한다.
- '명시적'이란 개념화한 개념의 종류와 개념들간의 관계, 그리고 그 것들을 사용하는 제약 조건들을 명확히 정의하는 것을 뜻한다.
정리해보면, 온톨로지는 특정 영역이나 세계를 개념과 개념간의 관계로 표현한 것이다.어떠한 대상을 표현하는 방법으로 개념과 개념간의 관계를 추상화하여 사용하며(개념화), 이 표현은 사람뿐만 아니라 기계도 읽고 처리할 수 있는 형태로 표현되어져야(정형화) 한다. 또한 이러한 표현은 기계가 이해하고 추론과 같은 처리를 하기 위해 애매하지 않고 명확하게 정의가 되어 표현하며(명시적), 이렇게 표현된 온톨로지는 개인과 개인이 속한 커뮤니티, 그 구성원 및 기계가 그 의미를 동의하며 공통적으로 사용하는 것으로서(공유) 구성이 되어진다.


온톨로지 언어

이렇게 구성되는 온톨로지는 어떻게 인관과 기계가 이해하도록 기술될 것인가? 어떠한 사물이나 세상을 개념화하여 놓은 명세인 온톨로지는 어떠한 언어로 정형화하는 것인가? 에 대한 답을 이미 알고 있다.(왜냐하면 많이 들었고 사용하고 있기 때문에) 온톨로지 언어는 RDF, OWL 등을 사용하여 기술한다. RDF는 XML에서 발전한 형태이며, subject, object, predicate으로 이루어지며, 단순하게 개념 혹은 인스턴스 사이의 관계를 나타낸다. 일반적으로 복잡한 제약조건이 필요없는 일반 응용을 기술할 경우에 RDF를 많이 사용한다. OWL은 관계들 간의 hierarchy, 관계, 인스턴스 내에서의 논리적 제약조건 등을 포함한 언어이다. 정밀하고 논리적인 추론을 필요로 하는 경우에 사용한다.


온톨로지의 활용

그렇다면 이 온톨로지는 어떻게 활용되고 어느 측면에서 장점이 있는것일까? 딱 세 가지로 말하고 싶다.

1) 지식표현, 2) 재사용, 3) 공유

온톨로지를 사용하면 위의 세가지 측면에서 뛰어나다고 생각한다. 온톨로지의 정의에서도 '명세'라고 나타나듯이 지식을 표현하기 위해 온톨로지라는 것을 만들어 표현한다. 그 표현된 대상은 인간 뿐만 아니라 기계도 이해하도록 하는 역할을 하고 있다. 또한 특정 개념에 대해서 명세를 함으로서 동일한 개념에 대해서 재사용할 수 있다는 측면도 장점으로 나타나고 이를 공유하여 많은 사람들이 공통된 의미로 하나의 개념 혹은 온톨로지로 표현된 것을 사용하게 할 수 있다는 장점이 있다.

그렇다면 '추론이라는 것에도 유용하지 않는가?' 라고 질문을 할수도 있다. 어떠한 지식을 추론해내는 역할에도 온톨로지가 유용하다. 온톨로지를 표현하는 언어가 Description Logic과 깊은 관계가 있음으로 DL에 의한 추론을 통해 또 다른 지식을 획득할 수 있다. 또한 이 추론 메커니즘을 통해 온톨로지 모델을 설계하고 원하는 목적대로 제대로 설계가 되었는지 검증하는 것에도 유용하다. 그러나 추론을 위해 맹목적인 온톨로지의 사용에 대해서는 온톨로지 이외에 더 좋은 매커니즘과 기술들이 있는데 굳이 온톨로지로 추론을 할 필요가 있는지는 한번 생각해 볼 만한 문제인 것 같다. (이러한 이유로 상황인식에 온톨로지를 사용하는 것을 그리 달가워하지 않는 편이다).
정리하면 온톨로지를 활용하면 추론이라는 장점을 얻을 수 있다. 추론을 통해 지식을 획득한다. 이를 부정하는 것이 아니라 추론을 하기 위해 맹목적으로 온톨로지면 가능하고 온톨로지를 사용해야 한다는 생각을 좀 바꿔야 한다고 말하고 싶다.


온톨로지와 데이터베이스

또 다른 질문이 나올 수 있을 것 같다. '온톨로지와 데이터베이스의 차이는 무엇인가?' 라는 질문은 온톨로지를 구축할때 자주 받아보는 질문이다. 두 개의 차이는 목적부터 차이가 난다. 데이터베이스는 데이터들이 통합되고 저장되어있는 데이터의 집합인 것이고 온톨로지는 사물을 개념과 개념간의 관계로 표현해 놓은 것이다.
데이터베이스의 목표는 효율적인 데이터 관리 및 저장이고 온톨로지는 살새걔의 사물을 제약사항을 이용해 관계를 상세하고 체계적으로 표현하는 것이다.
온톨로지와 데이테베이스는 동일하게 모델링 과정을 통해 설계가 된다. 그러나 모델링 관점에서도 차이가 있다. 데이터베이스는 데이터의 삽입,삭제, 갱신 과정에서 데이터의 중복, 오류를 최소화 하고 이를 사용하기에 최적화하기 위한 설계를 지향하고 온톨로지는 실세계의 현상을 개념화하고 관계를 만들어 유연하고 명확하게 표현하기 위한 설계를 지향한다.
애플리케이션 관점에서 데이터베이스와 온톨로지를 바라보면 데이터베이스는 자신과 궁합이 잘 맞는 아주 훌륭한 파트너이다. 그러나 자신에 맞춰져서 설계된 데이터베이스만이 자신의 파트너로서 제 역할을 충실히 한다고 볼 수 있다. 다른 데이터베이스가 들어오면 처음부터 친숙해지는 과정을 다시 거쳐야한다. 반면에 온톨로지는 '공유된 개념화'라는 특징으로 인해 좀더 친숙해지는 과정이 쉽다고 볼 수 있다. 다시 말하면 데이터베이스는 데이터 고립의 문제점을 벗어날 수 없다. 각기 저마다의 데이터베이스를 구축함과 동시에 접근 권한을 가진 사람만이 사용할 수 있으며, 다른 기계나 사람과 공유하고 재사용하는 상호운용성 능력이 떨어진다. 반면에 온톨로지는 좀더 범용적으로 사용할 수 있으며, 공유와 재사용에 뛰어난 장점이 있다.

 

*철학에서의 온톨로지
철학에서의 온톨로지는 존재론이라고 한다. 이 용어는 독일어로 온톨로기(Ontologie), 영어로 온톨로지(ontology). 그리스어의 <존재하는 것(on)>과 <학문(logos)>에서 만들어진 라틴어 <온톨로기아(ontologia)> 즉, <존재자에 대한 철학(philosophia de ente)>에 거슬러 올라가며, 17세기 초 독일의 아리스토텔레스주의자인 고클레니우스(Rudolf Goclenius)에 유래하는 용어이다.

 


위키피디아
네이버 지식사전
Gruber, T. (2001). "What is an Ontology?". Stanford University. Retrieved 2009-11-09.
지상블로그, 도서관문화 Vol.50 No.10(2009.10)

'J:::SemanticWeb' 카테고리의 다른 글

J_6. 문화정보 관련 Ontology & Vocabulary  (0) 2012.05.16
J_5. SPIN(SPARQL Inference Notation)  (0) 2012.05.07
J_4. OWL2 세미나 자료  (0) 2012.04.30
J_3. RDF  (0) 2012.04.26
J_1. 시맨틱웹  (0) 2012.04.26
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함