[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