RDFS 개념은 Object-Oriented Programming 개념과 거의 같다고 보면 된다. OOP에 대해서는 아래의 Link에 포스팅을 해두었으니 OOP에 대해서 전혀 모르는 분들은 참고하길 바란다.
Link : http://operatingsystems.tistory.com/entry/Programming-OOP
RDFS는 이전 포스팅에서 이야기했듯이, 세상의 모든 사물과 개념들을 표현하기 위한 기본 틀이 필요하다. 예를 들어, 사람을 표현할 때는 나이, 키, 몸무게, 시력 등등의 개념들이 필요하다. 따라서 사람을 표현하기 위한 기본 틀은 위와 같은 요소들을 가지고 있어야 한다. 우리가 앞으로 이 기본 틀을 Class라고 부를 것이다. OOP에서도 Class라고 부른다. Java로는 아래와 같이 표현할 수 있다.
위 Class를 이용해서 우리는 각각의 객체들을 생성해낼 수 있다. 위의 Person Class를 가지고 우리는 무수히 많은 사람들을(객체들을) 생성해낼 수 있다.
이와 같은 원리를 똑같이 RDF를 통해 살펴보자.
왼쪽의 코드가 오른쪽의 그래프로 표현이 가능하다는 말이다. (엄밀히 말하면 뭔가 하나가 추가되어야 하는데 개념을 이해하는데는 위의 그래프로도 무방하다. 무시해도 좋다.) 위의 그래프는 Class만 표현이 되어있는데 한번 person 객체 john을 추가해보자.
animal, person, horse는 class이고 john은 객체이기 때문에 모양을 다르게 그려놨다.
RDF에서 데이터를 문장처럼 하나하나씩 설명을 하고 있다면, RDFS에서는 Class라는 개념을 통해서 데이터가 실제 세계와 비슷하게 그려질 수 있도록 관계를 나타내주고 있다. 이와 같이 Class의 구조를 설명하는 것 이외에 RDFS가 할 수 있는 것은 각 Class의 특징들을 명시해줄 수 있다는 것이다. 예를 들어 RDFS에서 subClassOf을 통해 어떤 Class가 어떤 Class 밑에 있는 것인지 명시해줄 수 있다. 사실 위에서 이미 적어뒀는데, person Class는 animal Class의 subClass가 되기 때문에 RDFS를 작성할 때 반드시 아래와 rdfs:subClassOf로 명시를 해줘야 한다.
이와 같이 특정 Class의 특징들을 명시해주는 것이 아래와 같이 여러 개 있다.
위의 것들은 지금 설명하지 않고 다음 포스팅에서 설명할 OWL을 설명하면서 이야기하려고 한다.
지금 이 시점에서 Linked Data의 개념을 다시 생각해보자. Linked Data는 결국 데이터가 어떻게 이어져 있는지를 설명해주는 것이다. 그것이 결국 RDFS와 같이 구조적으로 Class들이 서로 이어져 있는 형태로 존재한다는 것이다.
다음 포스팅에서는 조금 더 OWL을 설명하려고 한다. OWL은 Web Ontology Language의 약자이고, 이것을 통해 진정 Ontology 개념을 설명할 수 있다.
'etc...' 카테고리의 다른 글
[High Performance Computing] MPI (1) | 2018.02.19 |
---|---|
[Semantic Web] OWL (Web Ontology Language) (2) | 2017.02.06 |
[Semantic Web] Linked Data and RDF (0) | 2017.02.06 |
[Semantic Web] Basic of Semantic Web (2) | 2017.02.06 |
[Tensorflow] Multi linear Regreassion (1) | 2016.11.27 |