35분
RDF 기초: 트리플, URI, 리터럴
RDF & 트리플의 세계
RDF 기초: 트리플, URI, 리터럴
온톨로지 & 시맨틱웹 > RDF & 트리플의 세계
학습 목표
RDF 트리플의 세 요소를 정확히 구분할 수 있다 URI/IRI 체계와 네임스페이스 활용법을 이해한다 리터럴의 데이터타입과 언어태그를 사용할 수 있다 Blank Node의 용도와 한계를 설명할 수 있다
RDF의 세 가지 구성 요소 완벽 이해
학습 목표
- RDF 트리플의 세 요소(Subject, Predicate, Object)를 정확히 구분할 수 있다
- URI/IRI 체계를 이해하고 네임스페이스 활용법을 안다
- 리터럴(Literal)의 종류와 데이터타입을 알고 사용할 수 있다
- Blank Node의 개념과 사용 시점을 이해한다
1. RDF 트리플 (Triple)
RDF의 기본 단위는 **트리플(Triple)**입니다. 하나의 사실(fact)을 3개의 요소로 표현합니다.
에디터 로딩 중...
주의: 트리플은 반드시 마침표(.)로 끝납니다 (Turtle 구문).
Subject가 될 수 있는 것: URI 또는 Blank Node Predicate가 될 수 있는 것: URI만 가능 (항상 URI!) Object가 될 수 있는 것: URI, Blank Node, 또는 리터럴
에디터 로딩 중...
2. URI/IRI — 전 세계 고유 식별자
RDF에서 모든 리소스는 **URI(Uniform Resource Identifier)**로 식별합니다.
에디터 로딩 중...
네임스페이스(Namespace)와 접두어(Prefix):
URI가 길어서 매번 쓰기 불편하므로, 접두어를 사용합니다:
에디터 로딩 중...
자주 쓰는 표준 네임스페이스:
| 접두어 | URI | 용도 |
|---|---|---|
rdf: | http://www.w3.org/1999/02/22-rdf-syntax-ns# | RDF 기본 어휘 |
rdfs: | http://www.w3.org/2000/01/rdf-schema# | RDF 스키마 |
xsd: | http://www.w3.org/2001/XMLSchema# | 데이터타입 |
owl: | http://www.w3.org/2002/07/owl# | OWL 온톨로지 |
foaf: | http://xmlns.com/foaf/0.1/ | 사람/조직 |
dc: | http://purl.org/dc/elements/1.1/ | 더블린 코어 (메타데이터) |
schema: | http://schema.org/ | Schema.org (검색엔진) |
skos: | http://www.w3.org/2004/02/skos/core# | 분류/시소러스 |
wdt: | http://www.wikidata.org/prop/direct/ | Wikidata 속성 |
wd: | http://www.wikidata.org/entity/ | Wikidata 엔티티 |
3. 리터럴 (Literal) — 데이터 값
Object 자리에 URI 대신 **값(Value)**이 올 수 있습니다:
에디터 로딩 중...
주요 XSD 데이터타입:
| 타입 | 예시 | 설명 |
|---|---|---|
xsd:string | "hello" | 문자열 (기본값) |
xsd:integer | "42"^^xsd:integer | 정수 |
xsd:float | "3.14"^^xsd:float | 부동소수점 |
xsd:double | "3.14159265"^^xsd:double | 배정밀도 |
xsd:boolean | "true"^^xsd:boolean | 참/거짓 |
xsd:date | "2024-01-15"^^xsd:date | 날짜 |
xsd:dateTime | "2024-01-15T10:30:00"^^xsd:dateTime | 날짜+시간 |
xsd:anyURI | URI 값 | URI 타입 |
xsd:decimal | "99.99"^^xsd:decimal | 고정 소수점 |
4. Blank Node (빈 노드)
URI 없이 "이름 없는 리소스"를 표현할 때 사용합니다:
에디터 로딩 중...
Blank Node 주의사항:
- 그래프 밖에서 참조 불가 (로컬 식별자)
- 가능하면 URI를 부여하는 것이 좋음 (Linked Data 원칙)
- 복잡한 구조를 표현할 때만 제한적으로 사용
5. Property Graph와 RDF 비교 (심화)
에디터 로딩 중...
| 관점 | Property Graph 유리 | RDF 유리 |
|---|---|---|
| 관계 속성 | 직접 저장 가능 | Reification 필요 (복잡) |
| 표준화 | GQL 진행 중 | W3C 확정 표준 |
| 추론 | 제한적 | OWL 기반 자동 추론 |
| 상호운용성 | 벤더 종속적 | 표준 기반 데이터 교환 |
| 학습 곡선 | 낮음 (직관적) | 높음 (URI, 네임스페이스) |
| 성능 | 트래버설 빠름 | 트리플 스토어 최적화 |
| 생태계 | Neo4j 중심 | Wikidata, SPARQL endpoints 풍부 |
핵심 정리
에디터 로딩 중...
📖 심화 읽기: 이강배 외, "지식그래프", 유원북스, 2025 — 2장 RDF 기초
핵심 포인트
- • RDF 트리플 = Subject(URI/Blank) + Predicate(URI) + Object(URI/Blank/Literal)
- • URI/IRI: 전 세계 고유 식별자, 네임스페이스로 축약 사용
- • 리터럴: 값 + 데이터타입(xsd:integer, xsd:date 등) 또는 언어태그(@ko, @en)
- • Blank Node: URI 없는 익명 리소스, 가능하면 URI 부여 권장
- • Property Graph vs RDF: 관계 속성은 PG가 편하고, 표준/추론은 RDF가 강함