빅데이터

스마트의 시작, Ontology_1

CyberI 2017. 4. 28. 11:21


“ Ontology : 존재론


 IT분야에서 소위 말하는 ‘Smart’에는 거의 대부분 이 녀석이 떡 하니 자리를 잡고 있습니다. 고대 그리스 철학에서 시작된 ‘Ontology (존재론)’. 그 이름만 들어도 고리타분한 이 녀석(?)이 무엇이기에 요즘같이 다양한 이론과 기술이 넘쳐나는 시대에도 가치 있게 활용되는지 차근차근 알아보도록 하겠습니다.


1. Ontology 이해하기

An (Information Science)ontology is a formal, explicit specification of a shared conceptualization(of a domain of interest)

위 내용은 토마스 그루버(Thomas R Gruber, 1993)가 정의한 Ontology 입니다.


머리가 지끈거리기 시작하시죠?--; 머리가 아플 땐 일단 PASS!


먼저 하나의 예를 들어 설명해 보도록 하겠습니다.



사회자 : 위의 두 대상의 관계를 나타내는 괄호 안에 들어갈 말은 무엇일까요?

           사람의 대답 : 가르치다

           컴퓨터의 대답 : ??


 위 예를 통해 사람은 선생님은 학생을 가르친다라는 개념을 가지고 있고, 컴퓨터는 가지고 있지 않다는 것을 알 수 있습니다. 아마 이 질문을 외국인에게 한다고 해도 언어의 차이만 있을 뿐 동일한 의미를 가진 대답을 얻게 된다는 것 알 수 있습니다. (미국 사람은 ‘Teach’라고 대답하겠죠.)


 이렇듯 사람들에게는 공통적으로 대상 간의 관계에 대한 개념이 있습니다. 따라서 이러한 개념을 공유된 개념(shared conceptualization)’이라고 합니다.


 고대 그리스 철학에서 시작된 Ontology는 사람이 대상(사물, 개념,…)의 존재를 어떻게 인식하는지에 초점을 두고 있었습니다. 이후 시간이 지나며 연구되어 가는 동안 Ontology는 분류학, 논리학 등과 연결되며 존재의 인식 = 대상을 알다로 의미가 확대되었습니다. 이 과정에서 3가지의 연구방식이 생겨났습니다.


첫째는 대상 그 자체의 고유한 속성을 통해 대상을 아는 것

           둘째는 대상이 속한 범주를 통해 대상을 아는 것

           셋째는 대상이 속한 범주와 다른 범주들 간의 관계를 통해 대상을 아는 것


 저희가 앞서 살펴 보았던 예는 (세번째 방식인)범주들 간의 관계를 통해 대상을 아는 방식의 Ontology라는 것을 알 수 있습니다. 그러므로 사람과 컴퓨터의 차이는 Ontology의 존재 여부에 의해 발생한 것이라고 말할 수 있습니다.

 여기서 놓치지 마셔야 할 것! Ontology는 세번째 방식만을 말하지 않는다는 점입니다. 첫번째와 두번째 방식도 Ontology 안에 포함된다는 점을 잊지 마셔야 합니다.

 

 이제 다시 토마스 그루버가 정의한 내용을 살펴보겠습니다.

“An (Information Science)ontology is a formal, explicit specification of a shared conceptualization 

 번역하면 공유된 개념의 형식을 갖춘 명확한 명세입니다. 여기서 형식을 갖춘 = 컴퓨터가 이해할 수 있도록 표현된정도로만 바꿔 본다면 이해하시는데 무리 없으시겠죠?^^

 

2. 기존 관계형 데이터베이스랑 뭐가 다르지?

이제 Ontology의 정의를 통해 개념을 정리했으니 그 구성요소를 살펴보겠습니다. 구성요소는 크게 4가지로 볼 수 있습니다.

           1) Class : 사물이나 개념 등에 붙이는 이름

           2) Instance : 사물이나 개념의 구체적이고, 실질적인 형태 그 자체

           3) Property : Class Instance가 가지는 특정한 성질과 그 값

           4) Relation : Class or Instance 간에 존재하는 관계

.

   그런데 말입니다. ‘뭔가 이상하다?’, ‘어디서 많이 본거 같다?’ 하시는 분들 계신가요? 그런 분들은 ClassEntitiy로만 살짝 바꿔 보시면 뭔가 딱하고 떠오르실 겁니다. 이미 생각난 것이 있다면 그것은 바로 Relational Database(RDB) Modeling 구성요소 입니다. 실제로 아래 RDB ModelingOntology Modeling을 보시면 더 많이 비슷함을 느끼실 겁니다.


 

 분명 둘의 이름이 다르다는 건 뭔가 차이가 있다는 것인데 그 차이는 무엇일까요? (저도 이 차이를 몰라 고민이 많았습니다.열심히 공부해 본 결과 실제로 이 둘에는 컴퓨터가 관계의 의미를 인식하느냐? 하지 못하느냐?’의 차이가 있습니다. (좀 허무 하셨나요?)

RDB Model의 경우는 DB설계자가 설정한 관계에 따라 외래키(Foreign Key)만을 공유할 뿐 컴퓨터는 그 의미를 알지 못합니다. 반면에 Ontology Model의 경우는 가르치다라는 의미를 컴퓨터가 알게 됩니다. 작은 차이처럼 보이지만 이 차이가 Smart를 구분 짓는 중요한 포인트가 됩니다.

(분명 중요한 차이는 있지만, 그 차이를 쉽게 발견하기 어려울 만큼 비슷한 점도 많다는 것을 알 수 있습니다. 이 점을 활용해 과거 설계된 RDBRDF형태의 Ontology로 변환하는 언어들도 개발되어 활용되고 있습니다. 하지만 한계로는 기존 RDB Modeling 단계에서 사전에 필요를 정해 특정 Entity간에만 제한적으로 Relation을 연결하였기 때문에 Ontology를 구현하는데 필요한 Relation이 현저하게 부족하다는 점을 꼽을 수 있습니다.)

 

 지금까지 Ontology에 대한 전반적인 기본개념들과 개념을 이해하는데 혼동될 수 있는 부분을 찾아 정리해 보았습니다. 기초를 단단하게 다지기 위해 열심히 달려왔더니 생각보다 분량이 많이 길어졌네요. 개념 이해에 많은 도움이 되셨기를 바라며 이번 포스팅은 여기서 마무리 해볼까 합니다. 다음 포스팅에서는 좀더 실제적으로 Ontology가 어떻게 구현되고 활용되는지 알아보도록 하겠습니다.