시맨틱 웹

웹은 태어난 이래로 지속적으로 발전하여 오늘날에는 이 세상에서 가장 일상과 떼어놓을 수 없는 존재가 되었다. 웹은 특히 웹 2.0의 등장으로 일반 사용자들이 웹 컨텐츠를 직접 제작함으로써 웹 상의 데이터는 폭발적으로 증가하였다. 그리고 현재 웹 어플리케이션의 등장은 기존의 하드디스크에 존재하던 데이터마저 웹으로 옮기고 있다. 즉, 웹은 점점 세계의 데이터 저장소가 되어가고 있다. 이러한 웹 데이터의 폭발적인 증가로 인해, 기존의 단순 텍스트 검색 결과만으로는 사용자들이 원하는 정보를 충분히 제공하기가 힘들게 되었다. 이런 변화로 인해 나온 것이 시맨틱 웹이다. (사실 시맨틱 웹은 팀 버너스리가 처음부터 계획했던 것이다. 하지만 그간의 시도들을 구현하기엔 웹 환경이 너무 열악했다.)

시맨틱 웹(Semantic Web)을 알기 위해선 먼저 시맨틱의 의미를 정확하게 알아야 한다. 컴퓨터 공학에서 시맨틱의 의미는 신택스(syntax)와 상반된 개념으로, 신택스가 어떤 문구 자체를 가리키는데 반해, 시맨틱은 문구 안에 포함된 개념을 의미한다. 예를 들어 “I like a Rooney.”라는 문장이 있으면, 이 문장은 신택스 적으로 ‘영어로 작성되었으며 틀린 문법을 사용하고 있다’고 말하고, 시맨틱 적으로 ‘나는 루니를 좋아한다’는 뜻을 가진다고 말한다.

시맨틱 웹은 웹에 시맨틱을 부여한 것이다. 즉, 웹을 단순히 링크로 연결된 페이지들의 집합으로 보는 것이 아니라, 각각의 페이지들과 페이지들 간의 링크에 의미를 부과하고 나아가서 웹 상의 데이터들을 연결하고 그것들에 의미를 부과하는 것이다. 예를 들어 “Korea University is in Seoul.” 이라는 데이터와 “I’m a student of Korea University.”라는 데이터가 웹에 존재할 때, 이런 데이터들을 연결하여 “I’m in Seoul.”이라는 새로운 데이터를 추론할 수 있다.

시맨틱 검색은 웹의 시맨틱을 검색하는 것이다. 시맨틱 검색을 위해서 여러 방법들이 제안되고 있다. 다음은 전형적인 시맨틱 데이터 관리 시스템의 구조를 보여준다.

 

위의 그림처럼 시맨틱 데이터 관리 시스템은 크게 4가지 부분으로 구성된다. 각 부분은 다음과 같은 역할을 한다.

  • Crawling: 웹 상에 퍼져있는 데이터를 크로울링을 통해 모은다. 데이터는 보통 RDF 형태로 배포되는데, 여기서 구조화되지 않은 데이터를 어떻게 구조화시킬 것이냐는 것에 대한 이슈가 있다. 일반적으로 사람이 직접 데이터를 구조화시켜 배포하고 크로울러가 지능적으로 데이터를 구조화시키는 방법에 대한 연구가 이루어지고 있지만, 데이터의 양과 종류가 워낙 크고 다양하기 때문에 거의 불가능한 것으로 본다.
  • Storing: 크로울링을 통해 모아진 데이터를 저장소에 저장한다. 모아진 데이터의 양은 상상을 뛰어넘을 정도로 엄청나게 많다. 이런 대용량의 데이터를 다루기 위해 Column Store와 같은 기법들이 연구되고 있다.
  • Reasoning: 저장소에 저장된 데이터에 기반하여 새로운 지식을 추론하고, 추론된 지식을 다시 데이터 저장소에 저장한다. 기존에 모아진 데이터의 양만 해도 엄청났지만, reasoning을 통해 새롭게 얻어지는 데이터의 양은 훨씬 크다. 따라서 효과적으로 reasoning하는 방법과 새롭게 얻어진 데이터를 효율적으로 저장하는 방법에 대해 연구가 이뤄지고 있다.
  • Accessing: 사용자가 접근하여 데이터를 다룰 수 있도록 인터페이스를 제공한다.

하지만 기존의 시스템은 한 시스템에 데이터를 저장한다는 단점을 지니고 있었다. 이것은 scalability 면에서 매우 취약하다. 반면에, 웹 상에 존재하는 데이터는 무한히 증가하고 있다. 이에 따라 출현한 것이 Linked Data 이다. 이 작업을 통해 시맨틱 데이터를 분산 관리하려는 노력이 이루어지고 있다.

 

Linked Data 시스템에선 한 대상에 대한 데이터가 여러 서버에 나누어 저장된다. 예를 들어, ‘광주 시’에 대한 지리 정보는 한국 지리 정보 시스템이나 광주 시 정보 시스템 등에 저장된다. 하지만 ‘화려한 휴가’라는 영화의 배경이 광주이기 때문에, 영화 데이터베이스 또한 ‘광주 시’에 대한 데이터를 갖는다. 물론 이 경우는 광주 시의 자세한 데이터가 아닌 identifier를 비롯한 메타데이터만 저장된다. 기존 시스템에서는 이렇게 나뉘어 저장된 데이터에 대해 사용자가 직접 따로 검색해야 했지만, Linked Data 시스템에서는 이들을 연결함으로써 ‘광주 시’에 대해 검색하면 시에 대한 지리, 역사, 문화 등의 정보 뿐만아니라 ‘화려한 휴가’의 배경지라는 정보도 쉽게 얻을 수 있다.

이런 작업들의 최종 목표는 바로 이 세계의 데이터화이다. 이 세계를 구성하는 사물 하나 하나까지 전부 데이터화해서 저장하고 검색할 수 있도록 만들겠다는 것이다. 이것이 바로 데이터베이스 학문의 궁극적인 목표이긴 하지만, 조금 무서운 생각도 든다.

,
Menu