온톨로지(Ontology)란?
온톨로지(Ontology)란 사람들이 세상에 대하여 보고 듣고 느끼고 생각하는 것에 대하여 서로 간의 토론을 통하여 합의를 이룬 바를, 개념적이고 컴퓨터에서 다룰 수 있는 형태로 표현한 모델로, 개념의 타입이나 사용상의 제약조건들을 명시적으로 정의한 기술이다.
온톨로지는 일종의 지식표현(knowledge representation)으로, 컴퓨터는 온톨로지로 표현된 개념을 이해하고 지식처리를 할 수 있게 된다.
프로그램과 인간이 지식을 공유하는데 도움을 주기 위한 온톨로지는, 정보시스템의 대상이 되는 자원의 개념을 명확하게 정의하고 상세하게 기술하여 보다 정확한 정보를 찾을 수 있도록 하는데 목적이 있다. 온톨로지는 시맨틱 웹을 구현할 수 있는 도구로서, 지식개념을 의미적으로 연결할 수 있는 도구로서 RDF, OWL, SWRL 등의 언어를 이용해 표현한다.
온톨로지는 일단 합의된 지식을 나타내므로 어느 개인에게 국한되는 것이 아니라 그룹 구성원이 모두 동의하는 개념이다. 그리고 프로그램이 이해할 수 있어야 하므로 여러 가지 정형화가 존재한다.
- formal : 일단 온톨로지는 formal(형식적인)이어야 한다. 사람의 개입없이 기계가 읽을 수 있는 언어로 작성되야 한다.
- explicit : 온톨로지는 explicit(명백한)해야 한다. 여러가지 뜻을 가진 단어를 상황에 맞는 뜻으로 해석할 수 있어야 한다.
- shared : 가장 중요한 조건 중에 하나다. 온톨로지를 만들었다고 해도 모든 사람들이 그 온톨로지를 사용하지 않는다면 쓸모가 없다. 온톨로지는 모든 사람(혹은 사물)들에게 shared(공유)되어야 한다.
- conceptualization : 온톨로지는 표현하고자 하는 대상 세계의 개념들을 특정 모델로 추상화해야 한다.
- domain : 온톨로지는 표현하고자하는 특정 영역이 존재한다.
특정 영역이나 세계를 개념과 개념 간의 관계로 표현한 것이고, 이 표현은 사람이 아닌 컴퓨터가 이해하도록 구현되어야 한다. 또한 이러한 관계는 컴퓨터가 이해하고 추론을 하기 위하여는 애매하지 않고 명백하게 정의해 주어야 한다. 마지막으로 이와 같은 절차를 통하여 온톨로지가 구성되어도 이들이 반드시 가져야 하는 속성은 공유이다.
온톨로지의 구성 요소는 클래스(class), 인스턴스(instance), 관계(relation), 속성(property)으로 구분할 수 있다.
클래스(Class)
클래스는 일반적으로 우리가 사물이나 개념 등에 붙이는 이름을 말한다고 설명할 수 있다. "키보드", "모니터", "사랑"과 같은 것은 모두 클래스라고 할 수 있다.
인스턴스(Instance)
인스턴스는 사물이나 개념의 구체물이나 사건 등의 실질적인 형태로 나타난 그 자체를 의미한다. 즉, "LG전자 ST-500 울트라슬림 키보드", "삼성 싱크마스터 Wide LCD 모니터", "로미오와 줄리엣의 사랑"은 일반적으로 인스턴스라 볼 수 있다. 이와 같은 클래스와 인스턴스의 구분은 응용과 사용목적에 따라서 매우 달라질 수 있다. 즉, 같은 표현의 개체가 어떠한 경우에는 클래스가 되었다가 다른 경우에는 인스턴스가 될 수 있다.
속성(Property)
속성은 클래스나 인스턴스의 특정한 성질, 성향 등을 나타내기 위하여 클래스나 인스턴스를 특정한 값(value)와 연결시킨 것이다. 예를 들어, "삼성 싱크마스터 Wide LCD 모니터는 XX인치이다."라는 것을 표현하기 위하여, hasSize와 같은 속성을 정의할 수 있다.
관계(Relation)
관계는 클래스, 인스턴스 간에 존재하는 관계들을 칭하며, 일반적으로 taxonomic relation과 non-taxonomic relation으로 구분할 수 있다.
Taxonomic Relation은 클래스, 인스턴스들의 개념분류를 위하여 보다 폭넓은 개념과 구체적인 개념들로 구분하여 계층적으로 표현하는 관계이다. 예를 들어, "사람은 동물이다"와 같은 개념간 포함관계를 나타내기 위한 "isA" 관계가 그것이다.
Non-taxonomic relation은 Taxonomic Relation이 아닌 관계를 말한다. 예를 들어, "운동으로 인해 건강해진다"는 것은 "cause" 관계(인과관계)를 이용하여 표현한다.
일반적으로 관계와 속성은 굳이 구분하여 칭하지 않는 경우가 많다. "isA(사람, 동물)", "cause(운동, 건강)", "hasSize(삼성 싱크마스터 Wide LCD, XX 인치)"와 같은 실제 클래스, 인스턴스들 사이의 관계로 선언한 관계, 속성을 관계, 속성 인스턴스(relation/property instance)라고 부르기도 하는데, 이는 "isA", "cause", "hasSize" 등과 같이 정의하여 명명한 관계, 속성과의 구분을 위하여서이다.
'Java > RDF&Jena' 카테고리의 다른 글
[RDF4J] 설치 및 사용법 (0) | 2021.05.04 |
---|---|
Jena TDB CRUD 사용 (0) | 2020.03.27 |
[Jena] Apache Jena TDB란? (0) | 2020.03.27 |
[RDF] Parse error: Bad character in IRI(space) 해결 방법 (0) | 2020.03.27 |
[Jena] Apache Jena Fuseki 리눅스 설치 방법 (0) | 2020.03.27 |