컴퓨터
09/01/23 23:44(년/월/일 시:분)
시맨틱 웹이란 무엇인가?
현재의 웹 검색은 키워드 중심이다. 본문이나 태그에 "소녀시대"가 포함되면 검색이 된다.
반면, 의미로 보면 소녀시대의 신곡 "Gee"에 대한 글이 맞지만, 본문에 "소녀시대"라는 단어를 한 번도 언급하지 않는다면 검색이 되지 않는다.
또는 내가 와인에 대해서 검색하고 싶은데, 달달하지는 않지만 쓴맛과 신맛이 조화를 이룬 5만원 대 칠레산 와인을 찾고 싶다면, 이것 또한 키워드 검색으로는 잘 안 된다.
이렇게
1. 본문에서 키워드를 언급하지 않거나
2. 키워드로는 검색하기 어려운 복잡한 검색을 하려면
어떻게 해야 할까?
한 가지 방법으로 '추론'이 있다.
1. A는 B다.
2. B는 C다.
그렇다면 A는 C다.
예를 들자면
1. 소크라테스는 사람이다.
2. 사람은 죽는다.
그렇다면 소크라테스는 죽는다.
이런 건데.
이것도 A->B->C 하는 식으로 논리적으로 꼬리에 꼬리를 물고 따라가면 되니까, 컴퓨터로 처리가 가능하다.
문제는, 추론은 완전히 새로운 명제가 나오지는 않는다는 것이다.
위의 예에서 소크라테스->사람 이런 식으로 상위 개념으로만 올라간다.
그러므로 애초에 '사람' 같은 상위 개념이 정의되어 있어야만 '소크라테스'도 추론이 가능하다.
그렇다면 개념, 관념은 어떻게 정의할 것인가?
여기에는 고전 희랍 철학의 관점과 현대 철학의 관점이 있다.
결론부터 말하자면 시맨틱 웹에서는 현대 철학의 관점을 사용한다.
예전에는 이런 관념, 존재가 선험적이라고 생각했다.
세상 이전에, 우리가 경험하기 이전에 이미 존재는 존재하고, 우리가 사는 세상은 존재들의 구체화라고 생각했다... 말이 어렵구나.
하여간 넘어가고, 요즘에는 그렇게 생각하지 않는다.
요즘에는 존재는 스스로 존재하는 게 아니라, 서로 충돌하고 관계를 맺는 과정에서 생겨나는 거라고 생각한다.
스스로 존재하는 존재는 없다.
아니 있어도 존재하는지를 알 수 없지.
존재하는지 아는 유일한 방법은 관계를 맺는 것이다.
그러므로 존재는, 관계로 정의할 수 있다.
반대로 말하자면, 관계를 맺는 모든 것들은, 존재한다.
이것을 온톨로지(존재론)라고 하는데
이런걸 정의하기는 어려우니까, 권위있는 전문가 집단이 미리 정의해놓는다.
그러면 이런 온톨로지들을 라이브러리 가져다 쓰듯이 가져다 쓰면 된다.
와인 온톨로지도 있고. (진짜다)
그래서 이런 온톨로지들을 기반으로
상위 개념에서 하위 개념으로 추론해서, 관계를 따라서 주루룩 내려오면
단순히 키워드로 검색이 안 되던 의미들도 검색이 될 것이다!
근데 여기에는 크게 2가지 문제가 있는데
1. 언어는 계속 변한다. 그러므로 온톨로지도 계속 변해야 한다.
2. 무척 느리다.
안 그래도 애매모호한 언어를
딱 부러지게 온톨로지로 정의하는 것도 어려운데
그나마도 계속 변하니... 이 많은 비용을 어떻게 감당하나.
그리고 이게 A->B->C 하는 식으로 그래프로 계속 분기하니까
연산 시간이 엄청나게 오래 걸린다.
가능은 한데 너무 느려.
그러므로 실제로 시맨틱웹이 사용할 수 있으려면
1. 컴퓨터가 지금보다 훨씬 빨라지고
2. 온톨로지 정의를 시대의 흐름에 따라 재빨리 변경할 방법을 찾아야 한다.
2번은 일단 비트겐슈타인의 언어 게임 이론을 기반으로 해야 할텐데.
사람들이 언어를 사용하는 패턴을 분석해서 정의를 이끌어내면 되려나?
그리고 컴퓨터가 빨라지는 거야 뭐 시간이 해결해줄 문제고.
예를 들어 통신에서 int형을 그냥 TCP/IP에서 4byte로 넘기는 거랑
XML로 해서
42 이렇게 넘기는 거랑
측정해보면 한 50배 정도는 느려진다고 한다.
하지만 매년 컴퓨터 속도가 2배 정도 빨라진다고 가정하면
50배는 한 5~6년이면 따라잡는다. (2^5=32, 2^6=64)
그리고 세상에는 똑똑한 사람들이 엄청 많고
컴퓨터 공학은 아직도 초창기니까
가능성이야 많이 남아있지.
당장은 안 되더라도
결국은 이런 흐름으로 가지 않을까.