콘텐츠로 이동

Ch 3. 트리플과 그래프 데이터 모델 (RDF vs LPG)

이 챕터에서 배우는 것

  • 지식의 최소 단위 트리플(주어-술어-목적어)
  • 두 그래프 데이터 모델 — RDF(트리플 스토어)와 LPG(라벨드 프로퍼티 그래프)
  • 같은 사실을 둘이 어떻게 다르게 담는지, 언제 무엇을 고르는지
  • 이 코스가 LPG(Neo4j)를 중심에 두는 이유

전제

Ch 2. 온톨로지(스키마)와 지식 그래프(인스턴스)의 구분이 머리에 있어야 한다.


1. 개념 — 모든 지식은 트리플로 쪼개진다

지식 그래프의 원자는 트리플이다. 사실 하나를 주어 — 술어 — 목적어로 적는다.

(이수진)  —[고용]→  (애플)
 주어        술어      목적어

"이수진은 애플에 고용되어 있다"가 트리플 하나다. 문장 여럿도 트리플의 묶음으로 쪼갤 수 있다.

(아스피린) —[치료]→ (두통)
(아스피린) —[성분]→ (아세틸살리실산)
(두통)     —[부위]→ (머리)

이 트리플들을 이으면 그래프가 된다. 주어·목적어는 노드, 술어는 엣지다. 지식 그래프란 결국 수많은 트리플이 공유 노드를 통해 연결된 거대한 그래프다.

2. 왜 필요한가 — 표현 방식이 두 갈래로 갈렸다

같은 트리플을 저장·질의하는 방식이 역사적으로 둘로 나뉘었다. 둘 다 "노드-엣지-노드"지만 강조점이 다르다.

RDF (Resource Description Framework)

시맨틱 웹의 표준. 모든 것을 순수한 트리플로 본다. 노드와 술어는 전역 식별자(URI)를 갖고, 관계 자체에 속성을 붙이려면 트리플을 더 만들어야 한다(reification). 질의는 SPARQL, 추론은 OWL로 한다.

:이수진  :고용  :애플 .
:애플    :산업  :기술 .

강점: 표준화·상호운용성·전역 식별자. 공공데이터, 생명과학, 지식 통합에서 강하다.

LPG (Labeled Property Graph)

Neo4j로 대표되는 산업 표준. 노드와 관계 둘 다에 속성(key-value)을 직접 붙인다. "이수진이 2019년부터 애플에 고용"처럼 관계에 시점을 매다는 게 자연스럽다. 질의는 Cypher.

(이수진:Person)-[:고용 {since: 2019}]->(애플:Company {industry: "기술"})

강점: 직관적 모델링, 관계 속성, 빠른 순회. 애플리케이션·실시간 서비스에서 인기.

3. 어디에 쓰이는가 — 같은 사실, 다른 그릇

"이수진은 2019년부터 애플에 고용되어 있다"를 둘이 어떻게 담는지 비교하면 차이가 또렷하다.

RDF LPG
관계에 속성(since=2019) 직접 못 붙임 → reification 필요 관계에 그냥 {since: 2019}
식별자 URI(전역) 내부 ID(로컬)
질의 언어 SPARQL Cypher
추론(OWL) 강함 약함(앱 레벨에서)
주 사용처 공공·학술·데이터 통합 앱·실시간·추천

규칙적인 추론과 전역 상호운용이 핵심이면 RDF, 관계에 속성이 많고 직관적 모델링·빠른 순회가 중요하면 LPG가 편하다.

4. 이 코스의 선택 — LPG/Neo4j

이 코스는 LPG(Neo4j)를 중심에 둔다. 이유는 셋이다. 관계에 속성을 붙이는 모델링이 GraphRAG의 실전 패턴(시점·가중치·출처 표기)과 잘 맞고, Cypher가 진입 장벽이 낮으며, GraphRAG 오픈소스 생태계가 대체로 property graph 쪽에 모여 있다. RDF/SPARQL은 필요할 때 맥락으로 언급한다.

둘 중 하나가 '옳은' 건 아니다

개념(트리플로 지식을 표현한다)은 동일하다. 데이터 모델은 도구 선택이지 신념이 아니다. 이 코스에서 배운 그래프 사고는 RDF로도 그대로 옮겨간다.

5. 자주 깨지는 포인트

관계를 노드로 만들지 속성으로 둘지 헷갈린다. "고용"에 시작일·직책·부서가 줄줄이 붙으면, 관계가 아니라 별도 노드(예: Employment)로 승격하는 게 낫다. LPG에서 흔한 모델링 결정이다.

트리플을 너무 잘게 쪼갠다. 모든 형용사를 트리플로 만들면 그래프가 폭발한다. "질문에서 따라가야 할 관계"만 엣지로, 나머지 디테일은 속성으로 두는 게 균형이다.

6. 연습 & 다음 챕터

확인 문제

  1. 내 도메인의 문장 3개를 트리플로 쪼개 보라. 어떤 정보가 노드가 되고, 어떤 게 관계가 되고, 어떤 게 속성이 되는가?
  2. "고용"에 시작일·종료일·직책이 붙는다면 RDF와 LPG에서 각각 어떻게 표현하겠는가?

다음

Part 2로 넘어가, 트리플 이전 단계 — 어떤 개념과 관계를 둘지 설계하는 온톨로지 모델링으로 간다 → Part 2.


원전

  • W3C. RDF 1.1 Primer.
  • Robinson, Webber & Eifrem (2015). Graph Databases (2nd ed.), O'Reilly
  • Angles et al. (2017). Foundations of Modern Query Languages for Graph Databases. ACM Computing Surveys