G·Graph Daily Lab
DAY 39 / 100
내 학습 기록
DAY 39개념·실험RDF와 SPARQL

속성 그래프와 RDF 비교

같은 사실 ‘민수가 2021년부터 그래프연구실에 근무’를 두 모델로 적어 보고, 관계에 대한 정보를 다루는 방식과 각 모델의 강점을 비교합니다.

약 20분조작형 실험 확인 퀴즈
A SMALL DETOUR

이번 회차, 내 속도로.

기초를 더 짚거나 궁금한 주제로 잠깐 넓혀 보세요. 최대 3단계를 거쳐 DAY 39로 돌아옵니다.

난이도·관심 주제 고르기
이번 회차는 어느 속도로 볼까요?
더 살펴볼 주제 1~2개 선택

1/2개 선택 · 새 보충·심화 수업과 본과정 다시 읽기를 선택할 수 있어요.

이렇게 다녀와요 1단계 · 약 12분

  1. 출발 · DAY 39LPG vs RDF·RDF 1.2
  2. 1. 관심 주제빈 노드·데이터타입·언어 태그추가 15 · 새 추가 수업
  3. 복귀 · DAY 39원래 회차 이어가기
  • 빈 노드·데이터타입·언어 태그 · DAY 36·37에서 트리플과 IRI를 배운 뒤, 이름 없는 대상과 값의 타입 때문에 생기는 실수를 다루러 옵니다.

선택과 경로 기록은 이 브라우저에 저장됩니다. 본과정의 회차 완료와는 별도입니다.

복귀: DAY 39 → 본과정 다음 회차: DAY 40

핵심 개념

속성 그래프에서는 관계에 속성을 바로 붙입니다. (:Person {name:'민수'})-[:WORKS_AT {since:2021}]->(:Lab {name:'그래프연구실'}) 한 줄이면 됩니다. 반면 RDF 트리플 ex:minsu ex:worksAt ex:graphLab에는 since를 붙일 자리가 없습니다. 술어는 IRI일 뿐, 자기 속성을 가진 개별 연결이 아니기 때문입니다.

RDF 1.1까지의 표준 방법은 재정의(reification)였습니다. rdf:Statement 타입의 자원을 하나 만들고 rdf:subject, rdf:predicate, rdf:object로 원래 트리플을 가리킨 뒤, 그 자원에 ex:since 2021을 붙입니다. 원래 트리플까지 합하면 6개가 필요하고, 재정의 자원만으로는 원래 사실이 참이라고 주장하지도 않습니다. 근무 기록을 별도 자원으로 두는 n항 관계 모델링도 흔히 씁니다.

RDF 1.2는 트리플 텀(triple term)을 도입합니다. 트리플 하나를 다른 트리플의 목적어 자리에 둘 수 있고, rdf:reifies로 트리플 텀을 가리키는 자원(reifier)에 since 같은 정보를 붙입니다. Turtle 1.2 초안에서는 VERSION "1.2" PREFIX ex: <http://example.org/> ex:minsu ex:worksAt ex:graphLab {| ex:since 2021 |} .처럼 주석 문법으로 적으며, 이 문장은 원래 트리플을 주장하면서 reifier도 함께 만듭니다. 이 설계는 앞선 커뮤니티 작업 RDF-star에서 이어졌고, 2026년 10월 현재 RDF 1.2 Concepts는 W3C 후보 권고안, RDF 1.2 Turtle은 작업 초안 단계입니다.

두 모델의 강점은 다릅니다. RDF는 IRI로 데이터셋 사이에서 같은 대상을 공유하고, 표준 어휘·SPARQL·RDFS/OWL 추론(Part 3)을 쓸 수 있어 여러 기관의 데이터를 합치는 데 유리합니다. 속성 그래프는 관계 속성을 간결하게 담고 순회 중심의 질의가 편합니다. 어느 쪽이 늘 낫다기보다 요구에 따라 고르며, 서로 변환할 수 있지만 변환 규칙은 직접 정해야 합니다.

속성 그래프는 관계에 속성을 바로 붙이고, RDF는 재정의나 RDF 1.2 트리플 텀으로 트리플에 대한 진술을 표현합니다.

작은 예제로 따라가기

01

속성 그래프: 노드 2개와 관계 1개(속성 since 1개)로 끝납니다.

02

RDF 1.1 재정의: 원래 트리플 1개 + rdf:type rdf:Statement, rdf:subject, rdf:predicate, rdf:object, ex:since 5개 = 트리플 6개입니다.

03

RDF 1.2 주석 문법: 원래 트리플 1개 + _:r rdf:reifies <<( ex:minsu ex:worksAt ex:graphLab )>> 1개 + _:r ex:since 2021 1개 = 트리플 3개입니다.

직접 실험해 보기

Segmented를 ‘속성 그래프 → RDF 재정의 → RDF 1.2 트리플 텀’으로 바꾸며 footer의 노드·트리플 수를 비교하고, 각 표기에서 since가 어디에 붙는지 Code에서 찾아 적으세요.

LIVE EXPERIMENT · LPG VS RDF

'2021년부터 근무'를 세 방식으로 적기

사실: 민수가 2021년부터 그래프연구실에서 일한다. 2021년은 민수나 그래프연구실이 아니라 둘 사이의 근무 관계에 대한 정보다.
WORKS_AT {since: 2021}민수:Person {name}그래프실:Lab {name}
CREATE (:Person {name: '민수'})
       -[:WORKS_AT {since: 2021}]->
       (:Lab {name: '그래프연구실'})
MATCH (:Person {name: '민수'})
      -[r:WORKS_AT]->
      (:Lab {name: '그래프연구실'})
RETURN r.since
세 방식 비교
방식저장 단위since를 붙이는 곳
속성 그래프노드 2 · 관계 1관계 속성 {since: 2021}
RDF 재정의트리플 6rdf:Statement 노드 ex:stmt1
RDF 1.2트리플 3 · 트리플 텀 1재정의자 ex:emp1 (rdf:reifies)

RDF 1.2(2026년 현재 W3C 표준화 진행 중)에서 트리플 텀 <<( s p o )>>는 목적어 자리에만 오고, 재정의자(reifier)가 rdf:reifies로 그것을 가리킨다. << s p o ~ ex:emp1 >>는 그 재정의 트리플의 축약이고, ~ ex:emp1 {| … |}는 사실을 단언하면서 재정의자에 속성을 붙이는 주석 축약이다. 세 표기 모두 트리플 3개가 된다. 이전 이름인 RDF-star에서는 << s p o >>가 인용 트리플 자체였지만, RDF 1.2에서 같은 << >> 표기는 재정의자를 거쳐 트리플 텀을 가리킨다. 전역 식별(IRI)과 표준 추론은 RDF의 강점이다.

이번에는 직접 풀어 보세요

정답을 보기 전에 계산과 이유를 적어 보세요. 해설과 비교하고 확인 표시를 남기면 완료할 수 있습니다.

문제 1
힌트 보기

{| ... |} 안에 reifier에 붙일 술어와 값을 넣습니다. reifier를 따로 적지 않으면 빈 노드가 만들어집니다.

풀이와 비교하기

VERSION "1.2" PREFIX ex: <http://example.org/> ex:harin ex:worksAt ex:langLab {| ex:since 2019 |} .입니다. 트리플은 ex:harin ex:worksAt ex:langLab, _:r rdf:reifies <<( ex:harin ex:worksAt ex:langLab )>>, _:r ex:since 2019의 3개입니다.

풀이와 확인 표시는 이 브라우저에 저장됩니다.

YOUR NOTES

오늘 이해한 것과 다시 볼 것

계산이 달라진 이유, 헷갈린 개념, 다음에 확인할 질문을 남겨 보세요.

메모는 이 브라우저에 저장됩니다. 홈에서 전체 기록을 내려받을 수 있습니다.

오늘의 이해 확인

RDF 1.2에서 트리플 텀이 놓일 수 있는 자리는?

완료 조건: 확인 퀴즈 정답 · / 직접 풀기 0/1

FURTHER READING

더 깊이 읽기

예제와 실험 데이터는 이 과정을 위해 만든 것입니다. 원문은 선택 자료이며, 강의와 직접 풀기만으로도 다음 회차를 이어갈 수 있습니다.

RDF 1.2 Concepts and Abstract Data ModelW3CRDF 1.2 TurtleW3CRDF 1.1 PrimerW3C

이 자료는 개념 학습용입니다. 실제 데이터베이스·라이브러리·플랫폼의 동작과 설정은 제품과 버전마다 다를 수 있습니다.