최종적으로 Ontology를 설명하기 위해서 Semantic Web에 대해 살짝 이야기해보고 넘어가자.
1999년 Tim Berners-Lee라는 사람은 이런 말을 했다.
컴퓨터가 웹에 있는 데이터의 관계를 마치 사람처럼 이해했으면 한다는 것이 포인트이다. 데이터를 이해한다가 무엇인지 한번 개념적으로 이야기를 해보자.
문장1 : “내가 태어난 날은 8월 28일이다.”
문장2 : “내 생일은 8월 28일이다.”
문장1과 문장2는 같은 문장이다. 그런데 컴퓨터는 이 두 개를 같은 문장이라고 이해하지 않는다. 생일과 태어난 날이 같다는 개념을 모른다. 컴퓨터 입장에서는 “나”와 “8월 28일”을 그냥 어떠한 관계로 엮어버렸을 뿐이다. 위의 문장1과 문장2를 데이터를 표현하기 위해서 많이 사용하는 XML 파일로 쓰자면 이렇게 쓸 수 있다.
문장1.xml을 내가 썼고, 문장2.xml을 다른 사람이 썼을 경우, 원래 컴퓨터는 이 두 개가 같은 뜻이라는 것을 모른다. 또 다른 문제를 이야기해보자. Apple이라고 했을 때, 누구는 스티브잡스의 Apple을 생각하고 또 다른 사람은 과일 Apple을 생각한다. 이런 문제들을 어떻게 해결할까? 두 문제는 모두 컴퓨터가 실제로 데이터의 속성을 파악하지 못 해서 발생한다. 그것을 가능하게 하기 위해서 Ontology를 사용한다.
Ontology는 원래 철학쪽에서 “존재”와 같은 개념으로 쓰이는 것 같다. 그런데 컴퓨터 쪽에서 Ontology는 세상의 모든 사물들 간의 관계를 나타내는 것으로 쓰인다. 마치 Object-Oriented Programming(객체지향언어)과 같이 말이다.
최종적으로 Ontology를 알기 위해서 어떤 것을 공부해야 하는지 알아보자.
Linked Data : Ontology에서 데이터가 표현되는 기본적인 방식이다.
RDF : Ontology에 존재하는 가장 작은 단위의 데이터 집합이다. 우리가 보통, 책에 챕터가 있고 챕터 안에 문단이 있고 문단 안에 문장이 있는데, RDF는 문장이라고 생각하면 된다. 즉 데이터를 표현하는 문장이라고 생각하면 된다.
RDFS : 여러 개의 RDF를 이어서 만들어진 Class들의 집합. OOP에서 Class라고 생각하면 쉽다.
OWL : 여기서부터 실제로 RDFS에서 만들어진 Class간의 관계를 정의할 수 있다.
위의 설명은 어렵게 되어있다. 나도 안다. 그래서 앞으로 2~3개의 포스팅에 걸쳐서 위의 개념들을 쉽게 설명할 것이고 그러면 Ontology에 대한 개념은 어느 정도 마무리가 되지 않을까 싶다.
'etc...' 카테고리의 다른 글
[Semantic Web] RDFS (0) | 2017.02.06 |
---|---|
[Semantic Web] Linked Data and RDF (0) | 2017.02.06 |
[Tensorflow] Multi linear Regreassion (1) | 2016.11.27 |
[Tensorflow] Basic of Tensorflow (0) | 2016.11.27 |
[Programming] OOP (0) | 2015.12.18 |