우리는 이전 포스팅을 통해 지식그래프의 개괄적인 부분에 대해서 알아보았다. 이번에는 구성원칙에 따른 지식그래프와 종류에 대해 알아볼 것이다. 지난 번의 설명했던 전통적인 그래프와 속성이 있는 그래프는 간단하게 소개만 하고 지나가겠다.

지난 번 포스팅에서 다루었던 전통적인 형태의 그래프이다. 전통적인 그래프 역시 효과적으로 정보를 다룰 수 있지만, 위의 그래프만으로 데이터를 설명할 수 없다는 한계점을 지니고 있다. 노드와 각 노드를 연결하는 엣지들에 대해 알기 위해서는 각 정보를 설명하는 매뉴얼이 필수적이다.

속성 그래프는 노드와 각 엣지에 대한 속성이 바인딩 되어 있는 그래프의 형태이다. 대부분의 경우에는 위와 같은 속성 그래프만으로도 데이터를 잘 표현할 수 있을 것이다. 위의 그래프는 위 정보만으로 추가적인 매뉴얼 없이 노드와 노드를 연결하는 엣지가 어떠한 역할과 정보를 가지고 있는지 손쉽게 확인이 가능하다. 다만, 위의 속성 그래프 역시 데이터를 표현하는는데에는 한계가 존재한다.
Taxonomy는그리스어에서 유래한 단어로, "taxis"(τάξις, 배열 또는 순서)와 "nomia"(νόμος, 법 또는 규칙)를 결합한 어휘이다. 원래는 '분류학'을 나타내는 어휘로 사용되었지만 지식그래프에서는 위계관계를 나타내는 구성원칙을 나타내기 위해서 사용된다. 자 그렇다면 위의 지식 그래프를 Taxonomy로 어떻게 바꿔볼 수 있을까?

위의 그래프는 좀 더 병원이라는 카테고리의 내부의 위계와 구조가 잘 표현되어 있다. 즉, 각 분과에 배정된 사람과 책임 관계 역시 파악할 수 있으며 추가적으로, 환자의 진료 방식과 환자를 케어하는 분과가 어디인지도 알 수 있다. 물론 갑자기 가운데 환자의 상태가 심각해진 것 같은 건 기분 탓이다.
Taxonomy는 속성 그래프를 보완하지만 역시 한계점을 지니고 있다. Taxonomy에서 나타낼 수 있는 관계가 '위계'에 한정되어 있다는 점이다. 이를 해결하기 위해서 아래의 Onthology가 제안되었다.
"Ontology"는 역시 그리스어에서 유래한 단어로, "onto-"(ὤν, 존재 또는 존재하는 것)와 "-logia"(λογία, 학문 또는 연구)를 결합한 것이다. 이를 직역하면 "존재에 대한 학문"이라는 뜻이다. 철학 용어로서 쓰였지만, 지식 그래프에선 특정 도메인의 개념과 그 개념을 둘러싼 관계들을 구성하는 원칙에 대한 용어로서 쓰인다.
Onthology는 Taxonomy보다 위계 관계 뿐만 아니라 좀 더 다양한 관계를 정의하고 구성하는데 사용된다. 즉, 동치 관계와 어디의 하위 혹은 소속이다 뿐만 아니라 다양한 관계를 표현 가능하다. 노드끼리의 수직적 관계 뿐만 아니라 수평적 관계 역시 표현이 가능하다.

위의 예시에서 우리는 진료 사이에전환 이라는 관계가 추가된 것을 확인할 수 있다. 이를 통해 같은 레벨의 노드끼리의 수평적 관계 역시 파악할 수 있는 것이다. 또한 이뿐만 아니라 온톨로지는 'cross-equivalence' 역시 표현이 가능하다.

위와 같이 서로 다른 도메인에 속한 '교수', '전공' 이라는 개념이 같은 것임을 나타낼 때 저런 동치 관계를 연결하여 표현할 수 있다.
저번 포스팅에 이어 이번에는 구성원칙에 따른 다양한 지식그래프의 형태에 대해서 알아보았다. 다음 포스팅에서는 이러한 지식그래프를 구축할 때 사용하는 툴인 그래프 데이터 베이스와 GQL(Graph Query Language)인 Cypher에 대해서 알아볼 예정이다.