Database

[Graph Database] RDF와 LPG

hou27 2025. 12. 1. 16:22

 

Knowledge Graph 연구와 이를 활용한 서비스 개발을 함께 공부하면서,

자연스럽게 두 가지 그래프 데이터 모델인 RDFLPG를 접하게 되어 이를 정리하고자 포스팅을 작성하게 되었다.
먼저 각 개념을 먼저 정리하고, 이어서 Cypher와 SPARQL의 특징까지 비교하며 전체적인 내용을 간단히 정리해보고자 한다.

Graph Database란?

Graph Database는 데이터를 노드(Node)와 엣지(Edge) 형태로 저장하며 관계를 1급 객체로 다루는 Database이다.
관계형 데이터베이스처럼 JOIN을 반복하지 않아도 되기 때문에 관계 중심 탐색에 매우 특화되어 있다.

그래프 모델은 아래와 같이 크게 두 가지로 나뉜다.

  • LPG (Labeled Property Graph)
  • RDF (Resource Description Framework)

두 모델 모두 그래프 구조를 사용하지만, 데이터 조직 방식과 그 철학이 다르다.


RDF와 LPG

LPG (Labeled Property Graph)

LPG는 Neo4j와 같은 Database가 사용하는 모델로, 노드와 엣지가 직접 key-value 형태의 property를 갖는다.

 

주요 특징으로는 다음과 같이

  • 노드와 엣지가 자체적으로 속성을 보유
  • 매우 유연한 스키마 구조
  • 빠른 서비스 개발과 복잡한 실시간 그래프 연산에 적합
  • 쿼리 언어는 Cypher 또는 Gremlin 사용

라고 설명할 수 있다.

예를 들어, User 노드에 name, age 같은 속성을 바로 저장할 수 있고, Edge에도 부가적인 property들인 timestamp와 같은 속성을 세팅해줄 수 있다.

RDF (Resource Description Framework)

RDF는 W3C 표준 기반 지식표현 모델로, 데이터를 Triple (subject, predicate, object) 구조의 트리플로 표현한다.

주요 특징으로는, 위와 같이

  • IRI라는 웹상의 자원을 고유하게 식별하기 위한 국제화된 자원 식별자가 존재하며
  • 국제 표준 기반 구조로 상호호환성이 매우 뛰어나고,
  • RDFS, OWL 등을 통한 온톨로지 기반 의미론적 추론을 지원한다.

생의학 지식그래프, 공공 데이터, Enterprise 급의 지식관리 등 의미 기반 데이터 통합이 필요한 분야에서 널리 사용된다.
Wikidata, Bio2RDF, DrugBank RDF 등 대부분의 공공 지식그래프는 RDF 기반이다.

RDF Schema(RDFS)와 OWL

RDFS와 OWL은 RDF 위에서 "어떤 의미 구조를 가진 데이터인지"를 정의하는 언어이다.

이전에 언급된 RDF와 RDFS, OWL의 관계를 그림으로 표현하면 아래와 같다.

RDF Schema (RDFS)

먼저 RDFS는 RDF에 스키마가 추가된 것이다.

  • 클래스(Class)와 속성(Property)의 기본 구조 정의
  • 단순한 계층 구조 표현에 적합

예를 들자면 hasName은 문자열 리터럴을 갖는 property라는 것을 추가로 정의할 수 있게 되는 것이다.

OWL (Web Ontology Language)

다음으로 OWL은 RDFS보다 훨씬 정교한 의미론 표현을 가능케한다.

  • 제약조건, 동등성, 불일치, 카디널리티 등 복잡한 논리 구조를 표현
    • 동등 및 배타(owl:equivalentClass, owl:disjointWith)
    • 속성 특성(owl:FunctionalProperty,owl:TransitiveProperty)
    • 카디널리티 제약(owl:minCardinality etc…)
    • 복합 클래스(owl:intersectionOf, owl:unionOf)
  • Reasoner를 사용하면 자동 추론 가능(TBox와 Reasoner)

즉, OWL은 기계가 "모든 고양이는 동물이다" 혹은 "사람은 정확히 하나의 생년월일을 가진다"와 같은 추론이 가능토록 하는
Semantic web 상에서 클래스/속성/개체/데이터 값을 표현하고, 형식적 의미론에 따라 컴퓨터가 추론할 수 있게 한 Ontology Language이다.

 

Cypher와 SPARQL 비교

그래프 데이터베이스를 사용할 때 가장 중요한 차이 중 하나는 쿼리 언어이다.
LPG는 대표적으로 Cypher를, RDF는 SPARQL을 사용한다.

Cypher의 특징

  • 패턴 매칭 중심 언어
  • (노드)-[관계]->(노드) 구조를 직관적으로 기술
  • 서비스 개발자가 빠르게 익히기 쉬움
  • 그래프 탐색과 실시간 질의 중심

SPARQL의 특징

  • Triple 패턴 기반 질의
  • RDF의 명확한 스키마와 온톨로지를 적극 활용 가능
  • FILTER, OPTIONAL, GRAPH 등 복잡한 패턴 표현이 강력
  • 대규모 지식그래프에서 정교한 정보 추출 가능

요약하자면
Cypher는 서비스를 위한 직관적인 그래프 쿼리 언어,
SPARQL은 의미론 기반 지식 탐색을 위한 정교한 추론형 질의 언어라고 볼 수 있다. (SPARQL 쪽이 조금 더 러닝커브가 있다)


정리

결론적으로 필자는 "이 둘은 단순 포맷 차이가 아닌 서로 다른 목적에 기반한 차이를 보이는 서로 다른 모델"이라고 이해하였다.

 

구분 RDF LPG
데이터 구조 Triple 기반 (subject–predicate–object) 노드(Node), 엣지(Edge) + Property (key–value)
스키마 RDFS/OWL 기반의 명시적 스키마 스키마 없어도 동작, 자유도 높음
표현 방식 URI와 Triple로 지식/의미를 표현 객체/엔티티 중심으로 그래프 구조 자체를 표현
쿼리 언어 SPARQL Cypher, Gremlin (패턴 기반 그래프 매칭)
표준화 W3C 표준(RDF, RDFS, OWL 등) 공식 표준 없음
강점 상호운용성, 시맨틱 웹/온톨로지, reasoning, 데이터 품질과 일관성 보장 개발 생산성, 직관적인 모델링, 유연한 스키마
사용처 예시 바이오 및 의학 KG, 공공데이터, 온톨로지 기반 시스템 등 추천 시스템, 서비스 내 관계 데이터 등


정리하자면 위 표와 같이
LPG는 스키마가 아예 없어도 되고, 강제 규칙이 없기 때문에 유연하고 빠르게 데이터를 구축할 수 있기 때문에 서비스와 애플리케이션 개발에 유리한 반면,
RDF는 의미가 명확한 스키마를 기반으로 구조화된 데이터이기 때문에 지식 통합 및 일관성에 더 강점이 있다.

따라서 LPG는 객체와 속성으로 데이터를 모델링하는 느낌이고 RDF는 문장(어떠한 사실)을 트리플 형태의 지식으로 표현하는 것이라는 느낌인 것이다.

 

 

개인적으로 워낙 헷갈리는 개념이고 둘 간의 경계가 모호하다고 생각하기에 다른 관점 혹은 의견이 있으시다면 공유부탁드립니다!


참고자료

 

가장 인기 있는 5가지 그래프 DB 쿼리 언어

https://www.w3.org/TR/rdf12-primer/

https://www.w3.org/TR/owl2-primer/

https://operatingsystems.tistory.com/entry/OWL-Web-Ontology-Language

https://www.w3.org/TR/rdf-schema

https://memgraph.com/docs/data-modeling/graph-data-model/lpg-vs-rdf

'Database' 카테고리의 다른 글

Cypher 기본 문법  (3) 2025.12.01