[Knowledge Graph] 1. What is RDF? RDF란 무엇인가?
이 글은 2021년 대학원 수업 지식 표현 연구를 중심으로 작성된 포스트이다. 수업시간에 이해한 내용을 복습하는 차원에서 적는 글이니 언제든 댓글은 환영한다🙌
- 지식 표현 연구 시리즈
- 🤚 What is RDF? RDF란 무엇인가?
- From XML to RDF (XML에서 RDF로)
- RDF Schema
- SPARQL
- RDFa란?
1. RDF in General
RDF란 무엇일까? RDF는 Resource Decription Framework의 약자이다. 아주 간단히 표현하면, 자원을 표현하는 틀(구조)라는 것을 의미한다. 해석은 어렵지 않지만, 실제 자원, 표현, 틀이 무엇을 의미하는지 이해하기는 쉽지 않다. 하나씩 의미를 들여다보자.
1.1 Resource
자원이란 무엇일까? 자원은 ‘웹 상에 존재하는 모든 것’을 의미한다. 웹 안에 있는 모든 자료들을 의미하는데, 이것이 추상적인 개념(intangible)일지라도 자원이라 부른다. 이러한 자원은 온톨로지(Ontology)에서 Entity로 표현된다.
1.2 Description
그렇다면 자원을 ‘기술’한다는 것의 의미는 무엇일까? 자원은 Attributes와 Relationship로 표현된다. 즉, Entity가 가지는 특성이 Attributes로 표현되고, Entity와 Entity 사이의 관계를 표현하는 것이 Relationships이다.
1.3 Framework
마지막으로 프레임워크는 공학적 언어로 표현된 Resource Description을 기계가 읽고 이해할 수 있는 방식으로 구조를 제공한다는 것이다. 첫번째로 이 프레임워크는 Graph 구조를 따른다. node와 edge로 구성된 그래프이나 1) 방향성이 존재하고(directed) 2) 방향에 의미가 붙여진(labeled) 그래프 구조를 사용한다. 두번째로 데이터 모델을 읽어들일 수 있는 언어(languages)가 필요하고, 이 언어를 위해 문법(syntax)가 존재한다.
정리하면, RDF는 아래와 같이 정리할 수 있다.
| 명칭 | 한글 | 설명 |
|---|---|---|
Resource |
자원 | 웹 상에 존재하는 모든 것 |
Description |
기술 | Attributes와 Relationships로 표현 |
Framework |
틀 | Graph 구조와 Languages & syntax를 따름 |
2. RDF Data Model
그래프를 구성하는 최소 단위는 a set of triples이다. 여기서 말하는 triple은 subject, predicate, object로 구성된다.
| 명칭 | 한글 | 설명 |
|---|---|---|
subject |
주어 | resources로 표현 |
predicate |
서술어 | properties로 표현 |
object |
목적어 | resources이나 literals으로 표현 |
아래의 문장을 가지고 triples로 표현해보자.
- Saoirse Ronan was born in April 12, 1994.

여기에서 주목해야 할 점은 3가지이다.
triples는 방향이 있는edge로 표현된다. (Triples as directed edges)- 주어와 목적어는
node로 표현된다. (Subjects and Objects as vertices) edge는 서술어에 의해 이름이 붙여진 형태로 표현된다. (Edges labeled by predicate)
3. URI
더 깊이 데이터 모델을 설명하기위해 URI를 알아야 한다. URI는 Uniform Resource Identifier의 약자로, URL의 개념을 확장한 것이다. 형태가 URL과 상당히 비슷한데, 큰 차이가 있다면 URI는 Globally Unique한 특성을 지닌다. 즉, 웹을 사용하는 공간에서 특정 자원을 가리키는 URI는 유일하다는 것이다.
4. 다시 RDF Data Model로!
URI를 붙인 형태로 다시 RDF Data Model을 이해해보자. Saoirse Ronan은 자원이므로, 유일하게 표현할 수 있는 URI로 표현된다. 태어난 날을 의미하는 birthdate의 property 또한 URI로 표현된다. 그러나 1994-04-12와 같은 DataTime은 literals로 표현된다.1

이러한 RDF 표현 방식은 N-triples, N3, Turtle, JSON, XML 등의 여러가지 syntax로 표현할 수 있다.
5. Compact URI (CURIE)
URI를 Compact하게 표현하기위해 NAME SPACE를 활용한다. 내가 사용하는 어휘와 속성을 모두 넣어 하나의 name space로 묶어두고, URI로 해당 어휘에 접근할 수 있다. 앞서 나타낸 https://dbpedia.org/page/Saoirse_Ronan을 dbpedia:Saoirse_Ronan으로 간단히 축약하여 사용할 수 있다.
6. Turtle: 사람이 읽을 수 있는 형태로 RDF 표현하기
- Saoirse Ronan was born in April 12, 1994.
이 문장을 가지고 Turtle로 표현해보자.
@prefix dbpedia: https://dbpedia.org/resource/ .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
dbpedia:Saoire_Ronan p:birthdate "1994-04-12"^^xsd:integer .
7. Blank Nodes
- Saoirse Ronan who was born in April 12, 1994, was grown up in New York.
위의 문장은 2가지 정보를 담고있다. 1) Saoirse Ronan이 1994년 4월 12일에 태어났다는 것과 2) 미국 여성 배우라는 것이다. 따라서 원래라면 서로 다른 2개의 triples를 만들어주어야 한다.
그러나 여기에서 사용된 주어 Saoirse Ronan은 두 정보에서 모두 같은 인물이므로 이를 표현하기 위해 blank node를 사용한다. blank node는 동시조건을 만들어주는 것이다. 아무런 의미가 존재하지 않지만, 그래프적으로 이를 표현해줄 뿐이다. 따라서 blank node를 만들어주는 것을 Reification 구체화라고 한다.2

Leave a comment