OWL(One World Language)의 다른 종류

언어로서 OWL은 두 가지 보충적이면서도 모순적인 목표를 가지고 있다. OWL은 다양한 종류의 개념과 그 관계를 기술하고자 하지만 또한 소프트웨어에 요구되는 이 개념을 사용하여 말이 되게 하려고 한다.

아쉽게도 언어가 더 많은 것을 제공할수록 모든 것을 가능케 하는 소프트웨어를 작성하기는 더 힘들다.

OWL은 세 가지 다른 종류와 단계를 통해 이 문제를 해결한다.

  • OWL Full: 세 종류 중 가장 표현력이 풍부한 OWL Full은 기본적으로 RDF가 허락하는 모든 것을 허락한다. 동작중에 클래스를 정의할 수 있고 특성이나 개체로 클래스를 사용할 수 있고 질문에 답하는 데 필요한 정보가 충분하지 않아도 되는 프로그램과 같은 온톨로지를 만들 수도 있다. 심지어 OWL 명세도 단일 도구가 모든 OWL Full을 지원하지 않아도 된다고 지적한다.
  • OWL DL: DL(Description Logic)은 OWL Full이 표현하는 것을 많이 표현하지만 온톨로지가 결정되어야 한다. 또한 모든 클래스는 명확하게 정의되어야 하고 OWL의 몇 가지 가장 진보적인 특성에 제한을 둔다.
  • OWL Lite: OWL Lite는 OWL의 축소판이다. 이는 더 단순한 온톨로지를 만들어야 하고 언어의 모든 표현법이 필요하지 않은 사람들에게 적당하다. 예를 들어 OWL Lite를 사용해 객체를 위해 반드시 존재하는 특성을 지정할 수 있고 이 객체는 값을 가지고 있어야 하지만 그 값이 무엇이어야 하는지 지정할 수는 없다. OWL Lite는 도구를 만들기 가장 쉬운 종류다.

이들 종류는 모두 함께 사용할 수 있다. 유효한 OWL Lite 온톨로지는 유효한 OWL DL과 OWL Full 온톨로지이고, 유효한 OWL DL 온톨로지는 또한 유효한 OWL Full 온톨로지다.

OWL(One World Language)은 무엇인가?

시맨틱 웹은 지능적인 결정을 내리는 곳이다. 이는 단순하게는 문자열로 나열되는 모든 키워드를 말하기보다는 검색했을 때 필요한 정보를 반환하는 것을 의미하고 복잡하게는 다수에게 맞는 일정이나 어제보다는 오늘의 특정 주제에 대한 사람들의 공통적인 생각을 찾는 것을 의미한다.

이를 위해 컴퓨터가 이해할 수 있는 방식으로 정보를 보여주고 싶을 것이다. 예를 들어 애플리케이션은 온 가족이 모이는 행사에 맞는 적당한 날짜를 찾는 데 가족 모두의 일정, 각자의 거리, 적절한 공항, 항공사 일정과 가격, 알레르기, 날씨 등과 같은 정보를 이해해야 한다(물론 이렇게 자세히 계획하지 않을지도 모르겠지만, 여하튼 컴퓨터에게 이런 일을 맡기려면 이런 방법으로 해야 한다).

정보를 기계가 읽을 수 있는 형태로 바꾸기 위해서는 이 모든 정보의 온톨로지를 인코드하는 표준화된 방법이 필요하다.

모든 정보를 RDF로 나타낼 수도 있지만 컴퓨터가 추론할 수 있게 만들어야 한다. 예를 들어 주디는 프란스빌에, 폴린은 인디애나폴리스에 살고 있다는 것을 알아야 한다. 또한 프란스빌도, 인디애나폴리스도 인디애나 주에 있다는 것을 알아야 한다. 하지만 여기에는 주디와 폴린이 같은 주에 살고 있다는 추론을 만드는 RDF가 없다. OWL은 RDF의 애플리케이션으로 이 정보를 인코드하는 방법을 제공하여 컴퓨터가 추론을 할 수 있도록 한다.

OWL은 그 이름과 맞지 않는다. 발음하기도 쉽고 로고로 만들기도 쉽다는 이유로 의도적으로 WOL을 OWL로 만들었기 때문이다. 이는 또한 19970년대에 윌리엄 마틴이 주장한 “One World Language”에 맞춘 것이기도 하다(Winnie the Pooh라고도 할 수 있지만 이는 진정한 유래는 아니다).

온톨로지(ontology)란 무엇인가?

온톨로지의 원래 개념은 “무엇인가”에 대해 연구다. 하지만 아리스토텔레스나 플라톤에서 벗어나 지금의 관점에서 보면 온톨로지는 개념의 분류법이라 할 수 있겠다. 온톨로지는 다양하다. 그 이유는 세상이 복잡하기 때문이다. 다행스럽게도 인간의 뇌는 이 복잡함에 잘 적응할 수 있다. 우리는 셔츠를 인식할 수 있고 이를 발에 걸치는 것이 아니라 상체에 입는 것임을 잘 알고 있다. 단순해 보인다. 셔츠를 상체에 입는 것 외에 다른 무엇을 할 수 있을 것인가? 하지만 다년간 셔츠를 입어 온 인간이기에 셔츠의 용도를 알 뿐이다.

컴퓨터는 물론 이를 모른다. 또한 컴퓨터는 줄무늬와 체크무늬를 함께 입으면 안 된다는 것도, 가로줄무늬를 입으면 뚱뚱해 보인다는 것도 모른다. 그러므로 누군가의 도움 없이 컴퓨터 혼자 무엇을 입을 지 결정하기는 힘들다. 하지만 온톨로지는 컴퓨터에게 모자, 신발, 양말, 스타일, 크기, 그리고 이와 관련된 정보 같은 약간의 개념을 정의할 수 있고 이 모든 것이 어떻게 잘 어울리는지 정의할 수 있다.

이상적으로는 컴퓨터가 이 개념을 인식하고 하이힐에 운동복 대신 티셔츠에 청바지를 추천할 수 있을 것이다(하이힐에 운동복도 어떤 상황에서는 적절할 수 있으니, 이 또한 온톨로지로 프로그래밍해야 한다).

온톨로지는 또한 전문적인 상황에도 적용할 수 있다. “ontology in industry”를 검색하면 자동차, 전력, 금속, 제조업계 등이 첫 페이지에 결과로 나온다 이 경우 온톨로지는 컴퓨터에게 무엇을 하라고 가르치는 것뿐만 아니라 생생한 경험을 가진 두뇌로부터 정보를 선택해 지식을 전파할 수 있도록 하기도 한다.

여러분이 가격을 원할 경우 시스템이 무슨 말인지 알 수 있게 하기 위해 애플리케이션에서 사용하는 웹 서비스 이면의 개념을 정의하는 온톨로지를 만들 것이다(또는 적어도 서비스 안에서 가격을 어떻게 찾을 것인지 알게 할 것이다).

Gruber(1993)에 의하면 온톨로지란 ‘공유된 개념화의 형식적이고도 명시적인 명세’(A formal, explicit specification of a shared conceptualization)로 정의된다.

다른 말로 하면, 온톨로지란 인간이 가지고 있는 세계에 대한 지식을 컴퓨터가 이해할 수 있는 명시적이고 형식적으로 엄격한 형태로 표현한 것을 말한다.

예를 들어 국가 정보기술 온톨로지(Information Technology Ontology, IT Ontology)는 국가 차원에서 구축되어 국내 IT 분야 및 국제 표준으로 활용할 수 있는 온톨로지를 의미하고, 기반 온톨로지, 코아 온톨로지, 디바이스 온톨로지, 서비스 온톨로지, 라이프 온톨로지 등으로 구성되어 있다.