RDF (Resource Description Framework)
정의: W3C에서 정의한 시맨틱 웹 표준. 모든 정보를 트리플(Triple) (Subject, Predicate, Object) 형태로 표현하는 데이터 모델.
핵심 특징
트리플 구조
(주어, 술어, 목어) = (Subject, Predicate, Object)
예:
(Alice, knows, Bob)
(Alice, age, 30)
(Google, founded, 1998)
구성 요소:
- Subject: 문장의 주인공 (URI 또는 리소스)
- Predicate: 관계 또는 속성 (URI로 표현)
- Object: 값 또는 다른 리소스 (URI 또는 리터럴)
시맨틱 웹 기반
- 의미 중심 — 기계가 이해 가능한 의미를 명시
- 상호운용성 — URI를 통해 전 세계 데이터 연결
- 표준화 — W3C 국제 표준으로 광범위 지원
직렬화 형식
Turtle (가장 읽기 쉬움)
@prefix ex: <http://example.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
ex:alice a foaf:Person ;
foaf:name "Alice" ;
foaf:age 30 ;
foaf:knows ex:bob .RDF/XML
<rdf:RDF xmlns:rdf="..." xmlns:foaf="...">
<rdf:Description rdf:about="http://example.org/alice">
<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<foaf:name>Alice</foaf:name>
<foaf:age>30</foaf:age>
</rdf:Description>
</rdf:RDF>N-Triples (정규 형태)
<http://example.org/alice> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<http://example.org/alice> <http://xmlns.com/foaf/0.1/name> "Alice" .
쿼리 언어: SPARQL
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?person ?name
WHERE {
?person a foaf:Person ;
foaf:name ?name ;
foaf:knows ?other .
}RDF의 장점
✅ 표준화 — W3C 국제 표준으로 광범위 지원 ✅ 의미론적 정밀성 — 명확한 의미 표현 ✅ 상호운용성 — 서로 다른 시스템 간 데이터 통합 용이 ✅ 확장성 — 새로운 술어 추가 쉬움
RDF의 단점
❌ 복잡한 학습곡선 — URI, 네임스페이스, 직렬화 형식 이해 필요 ❌ 성능 — 대규모 쿼리에서 느림 ❌ 속성 표현 제한 — 복잡한 속성 표현이 번거로움 ❌ 실무 채용 낮음 — 주로 학술/표준화 도메인
사용 사례
✅ 의료/법률 — 표준화가 중요한 도메인 ✅ 학술 연구 — 온톨로지 기반 지식 표현 ✅ 정부 데이터 — 공개 데이터 상호운용성 ✅ 도서관/박물관 — 메타데이터 관리
LPG와의 비교
| 항목 | RDF | LPG |
|---|---|---|
| 기본 단위 | 트리플 (S-P-O) | 노드 + 관계 |
| 속성 | 제한적 | 풍부함 |
| 학습곡선 | 가파름 | 완만함 |
| 표준화 | W3C 표준 | 업계 표준 |
| 실무 채용 | 낮음 | 높음 |
관련 개념
- Ontology — RDF 설계의 기초
- SemanticWeb — RDF가 실현하는 비전
- LPG — 대안적 그래프 표현 방식
- SPARQL — RDF 쿼리 언어
- Knowledge Graph — RDF의 응용
출처: rdf-lpg — RDF vs LPG 상세 비교