지식그래프 - RDF란?

2022. 7. 28. 15:48knowledge graph/basic

반응형

RDF란?
Resource Description Framework의 약어이며, 직역하면 자원을 설명하는 프레임워크를 의미한다.

하나씩 살펴보면

1. Resource
자원이란 무엇을 의미할까?
자원은 웹 상에 존재하는 모든것을 의미한다.
웹 안에 있는 모든 자료를 의미하는데, 이것이 추상적인 개념일지라도 자원이라고 부른다.
이런 자원은 온톨리지에서 Entity로 포현한다.

2. Description
자원을 기술? 표현? 설명한다? 이 뜻은 무엇일까?
자원은 Attributes와 Relationship을 표현된다.
즉, Entity가 가지는 특성이 Attributes로 표현되고, Entity와 Entity 사이의 관계를 표현하는 것이 Relationships이다.

3. Framework
프레임워크는 스프링프레임워크처럼 뭔가 쉽게 제공해주는 틀을 말한다.
즉, 위에서 언급한 Resource Description을 편하고 잘 표현하기 위해 기계가 읽고 이해할 수 있는 방식으로 구조를 제공한다는 것이다.
첫번째로 이 프레임워크는 graph 구조를 따른다. node와 edge로 구성된 graph이다.
이 graph는 방향성이 존재하고(directed) 방향에 의미가 붙여진(labeled) 그래프 구조를 사용한다.
두번째로 데이터 모델을 읽어들일 수 있는 언어(languages)가 필요하고, 이 언어를 위해 문법(syntax)가 존재한다.

위를 요약하면 아래와 같이 정리할 수 있다.

RDF 요약

RDF Data Model
graph를 구성하는 최소 단위는 triple 이다.

여기서 triple이란 subject(주어), predicate(서술어), object(목적어)로 구성된다.

triple 이란?

아래의 문장을 가지고 triples로 표현 해보자!

태하팍은 서울에서 태어났다.

 

triples

triples는 방향이 있는 edge로 표현된다.
주어와 목적어는 node로 표현된다.
edge는 서술어에 의해 이름이 붙여진 형태로 표현된다.

데이터 모델의 설명을 이해하기 위해서는 URI에 대해서 알아야한다.
URI는 Uniform Resource Identifirer의 약자로 URL의 개념을 확장한 것이다.
형태가 URL과 비슷하지만 큰 차이가 있다면 Globally Unique한 특성을 지닌다.
즉, 웹을 사용하는 공간에서 특정 자원을 가리키는 URI는 유일하다는 말이다.

URI를 붙인 형태의 RDF Data Model
위의 자원 중 태하팍은 유일하게 표현할 수 있는 URI로 표현된다.
태어났다라는것을 의미하는 born의 property 또한 URI로 표현된다.
서울이라는 것은 자원이므로 URI로 표현될 수 있다.(목적어이기 때문에 literals로 표현도 가능하다.)

URI를 붙인 형태의 RDF Data Model

이러한 RDF 표현방식은 N-triples, N3, Turtle, JSON, XML등 여러가지 syntax로 표현할 수 있다.

Compact URI(CURIE)
URI를 Compact하게 표현하기 위해 Namespace를 활용한다.
내가 사용하는 어휘와 속성을 모두 넣어 하나의 namespace로 묶어두고, URI로 해당 어휘에 접근할 수 있다.
ex) http://taeha.com/name/태하팍  -> taeha:태하팍 처럼 간단히 축약하여 사용할 수 있다.

Turtle: 사람이 읽을 수 있는 형태로 RDF 표현하기
태하팍은 서울에서 태어났다.
이 문장을 가지고 Turtle로 표현하면 아래와 같다.

@prefix taeha: http://taeha.com/name/ .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

taeha:태하팍 p:born "서울"^^xsd:string .

Blank Nodes
태하팍은 2022년 7월 28일 오후 3시에 서울에서 태어났다, 

위의 문장은 2가지 정보를 담고 있다.
1) 태하팍은 서울에서 태어났다라는 것과
2) 2022년 7월 28일 오후 3시에 태어났다라는 것이다.
원래라면 서로 다른 2개의 triples를 만들어줘야한다. 그러나 여기에서 사용된 주어 "태하팍"은 두 정보에서 같은 인물이므로
이를 표현하기 위해 blank node를 사용한다. 
blank node는 동시조건을 만들어주는 것이다. 아무런 의미가 존재하지 않지만 그래프적으로 이를 표현해줄 뿐이다.
이처럼 blank node를 만들어 주는 것을 Reification(구체화) 라고 한다.

Reification은 의미를 가지지 않기 때문에 자칫하면 의미없는 질문을 할 수 있다.
따라서 가능한 Reification을 하지 않는 모델로 만드는것이 좋다.

반응형

'knowledge graph > basic' 카테고리의 다른 글

지식그래프 - RDF란?  (0) 2022.07.28