Gurugail Main/Ontology
Main

Ontology

인공지능을 접하다 보면 종종 온톨로지(Ontology)라는 이해가 필요한 시점이 오게 된다. 그만큼 인공지능에서 빈번하게 사용되는 의미이다.

온톨로지에 대한 정의가 여러 가지가 있지만 Borst의 정의가 특히 간결해서 좋다

온톨로지를 공유된 개념의 정형화된 명세라고 정의한다 (Ontologies are definded as a formal specification of a shared conceptualization)

개요

위 언급에서 공유된 개념의 정형화된 명세 라는 것이 무엇일까? 세상에는 수 만가지 데이터 포맷이 있다. 데이터 포맷은 결국은 데이터 포맷을 만든 사람의 주관이 들어갈 수 밖에 없다. 가령 A 라는 사람이 동물이라는 개념(데이터)를 모델링한다고 하자. 동물은 다리가 있다. (animal has-a leg) 명세일수 있다 그러나 사람 B 는 동물을 살아있다 (animal is-a alive) 라고 정의했다고 가정해 보자, 같은 동물이라는 개념을 정의할 때도 데이터 모델이 이렇게 달라질 수 있다. 그렇다면 A가 만든 데이터와 B가 만든 데이터는 같은 개념을 표기함에도 불구하고 전혀 다르다. 즉 공유가 전혀 될 수 없는 상황이다. 그렇다면 공유를 할 수 있는 방법은 무엇인가? 누군가 개념을 정의하고 그것을 공유하는 것이다. 온톨로지가 추구하는 것이다. 결론적으로 프로그램과 인간이 지식을 공유하는데 도움을 주기 위한 온톨로지는, 정보시스템의 대상이 되는 자원의 개념을 명확하게 정의하고 상세하게 기술하여 보다 정확한 정보를 찾을 수 있도록 하는데 목적이 있다.

구성

온톨로지의 기능이나 개요는 앞 단락에서 '공유된 개념의 정형화된 명세'라는 말을 하였는데, 명세를 위해서 여러 가지의 방법이 있을 것이다. 실제 명세마다 조금씩 표현 방식이 다르다. 하지만 온톨로지에서 공통적으로 구성되는 요소는 아래와 같다.

  • 클래스(또는 개체, class) : 사물이나 개념 등 객체 지향적인 모델을 일컫는다
  • 인스턴스 : C++ 프로그래밍을 익숙한 사람이면 인스턴스라는 개념에 익숙할텐데 클래스의 실질적인 오브젝트이다. 가령, 컴퓨터 라는 클래스가 있을 경우 삼성 컴퓨터, 현주 컴퓨터, LG, 또는 조립 PC 등 여러 가지의 형태가 있을 수 있다. 이런 사례가 바로 인스턴스의 개념이다.
  • 속성 : 클래스나 인스턴스의 성질, 성향 등을 나타내기 위한 것
  • 관계 : 온톨로지에서는 관계가 중요하다. is-a, has-a etc...

구현(언어)

온톨러지의 실체를 정의하는, 명세를 정의하는 데 사용되는 언어가 있다. GUI 방식으로 구성된 예도 있긴 하다. 온톨로지에서 주로 사용하는 언어는 RDF, OWL 등이 있다. RDF는 XML 의 한 기술 부류라 할 수 있으며 단순하는 개념 혹은 인스턴스 사이의 관계를 나타낸다. 복잡한 제약 조건이 필요없는 경우에 사용된다. RDF는 웹 상의 수많은 URL (자원이라고 하면)들의 메타데이터 (저자, 서명? 등) 들과 자원상호간의 데이터 교환을위한 방식(구문)등을 정의한 것이다. 결국 객체와 속성 그리고 관계 등이 기술될 수 있는 규격인 셈이다. RDF는 따라서 온톨로지를 구현(명세)할 수 있는 언어의 자격을 갖추고 있다. OWL는 RDF보다는 논리적 제약 조건 등이 포함되어 추론 등 여러 가지 고차원적(인공지능) 도메인에서 사용되고 있는 언어이다.

<rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/">

   <rdf:Description rdf:about="http://www.chaosmagnet.com/blog">

      <dc:creator>Nicholas Chase</dc:creator>
      <dc:title>Chaos Magnet</dc:title>
      <dc:description>
           The personal and professional ramblings of technology 
           author Nicholas Chase
      </dc:description> 
      <dc:date>2006-06-30</dc:date>

   </rdf:Description> 
</rdf:RDF>
저자와 제목에 대한 간단한 RDF 문서
(참고 : http://www.ibm.com/developerworks/kr/library/tutorial/x-ultimashup4/section2.html)

적용 분야

온톨로지의 대표적인 활용 분야는 인공지능이다. 지능적인 처리를 하기 위해선 지식이라는 다소 모호한 정보를 지능 모듈간 처리해야 하는 상황이 발생하게 된다. 예로 분산 에이전트 인 경우이다. 다음으로 정보 검색 부분에서 온톨로지가 사용되고 있다. 검색 부분에서 온톨로지의 사용은 검색 단어로부터 잘못 입력된 검색어에 대하여 바로 잡아주거나 혹은 검색 범위를 유사 단어를 추가하거나 하여 조절해 주기도 한다.

참고