티스토리 뷰

시맥틱 웹(Semantic Web)은 무엇인가?

The Semantic Web is not a separate Web but an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation.

(T. Berners-Lee, J. Hendler & O. Lassila in "The Semantic Web")

 

 

시맨틱 웹은 웹의 창시자인 팀 버너스리1998년 제안했는데 시맨틱 웹은 기존 웹의 확장으로서 명확한 의미가 부여되어 사람 뿐만 아니라 기계도 정보를 이해할 수 있도록 해주는 기술을 말한다. 지금까지 정보는 사람이 이용하기 위해서만 처리되고 있어서 기계는 인식할 수 없었다.  예를 들어 사람은 수많은 숫자 가운데 어떤 것이 기온을 나타낸 숫자인지, 날짜를 나타내는 것인지를 쉽게 찾을 수 있지만 기계가 인식하기에는 모두 같은 숫자에 불과하다. 따라서 시맨틱 웹은 어느 숫자가 기온인지를 기계도 알 수 있도록 기온을 표시하는 코드(인공지능 언어)를 집어넣어 인간과 마찬가지로 기계도 정보를 인식할 수 있도록 해준 것이다.

 

위키피디아에 기재된 내용에 따르면

시맨틱 웹은 '의미론적인 웹'이라는 뜻으로,현재의 인터넷과 같은 분산환경에서 리소스(웹 문서, 각종 화일, 서비스 등)에 대한 정보자원 사이의 관계-의미 정보(Semanteme)를 기계(컴퓨터)가 처리할 수 있는 온톨로지 형태로 표현하고, 이를 자동화된 기계(컴퓨터)가 처리하도록 하는 프레임워크이자 기술이다고 말하고 있다.

 

기계가 사람이 이해하는 정도로 정보를 이해하고 처리하기 위해서 인공지능 언어로 표현을 해야 하는데 이때 정보를 개념화하고 그 개념들 간의 관계를 의미적으로 연결하여 표현할 수 있는 온톨로지가 핵심 역할을 하게 된다.

 

사람이 바라보는 웹

사람이 바라보는 웹페이지

동일한 IU에 대한 웹페이지를 보았을 때 사람은 어떤 것이 가수 IU에 대한 페이지인지를 쉽게 인지할 수 있다. 주어진 문장을 통해서 알수가 있고 사진이 있다면 더 쉽게 알 수가 있게 된다.

반면 기계가 이 두개의 페이지를 접근했을 때는 어떻게 가수 IU에 대한 페이지인지를 알아 차릴 수 있을가? 

물론 문장에 나와 있는 “가수”라는 문자를 통해 알 수 있다고 할 수도 있겠지만 그 명확한 의미를 이해하고서 알수는 없을 것이다.

 

이때 기계가 읽고 처리할 수 있는 정보를 제공한다면 어떻게 될까?

 

기계가 바라보는 웹

기계가 바라보는 웹

웹페이지의 문자를 제공하는 것이 아니라 기계가 처리할 있는 언어로 정보를 제공한다면 이를 통해 해당 페이지가 제공하는 정보가 어떤 의미를 가진 정보인지를 판단할 있게 된다.

@prefix dc: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix joy: <http://127.0.0.1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <http://schema.org/> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

joy:art123 a schema:Article ;
    dc:creator "joyhong" ;
    foaf:topic <http://www.example.com/#us> .

joy:joyhong a schema:Person ;
    foaf:knows joy:IU ;
    foaf:name "joyhong" .

joy:IU a schema:Person ;
    joy:dateOfBirth "1993-05-16"^^xsd:date ;
    schema:jobTitle "가수" ;
    owl:sameAs <https://ko.wikipedia.org/wiki/%EC%95%84%EC%9D%B4%EC%9C%A0> ;
    foaf:family_name "이" ;
    foaf:givenname "지은" ;
    foaf:name "IU",
        "李知恩"@zh .

이 웹페이지는 “art123” 이라는 번호를 가진 기사이고, 이 기사를 생성한 사람은 “joyhong” 이다. 

IU는 “사람”이고 1993년 5월 16일에 태어났으며 직업은 가수이다. 

이러한 정보를 알 수 있다는 것이다.

 

그럼 여기서  살펴볼 내용은 기존의 웹페이지는 링크를 통해 다른 웹페이지를 참조하도록 제공한다.

여기에서 joyhong 이라는 문자에 하이퍼링크가 걸려있는데 기계가 접근하여 정보를 보면 joyhong을 가리키는 URI가 포함되어 있다.

그럼 URI 통해 해당 웹페이지에서 정보를 가져오면 어떻게 될까?

사람이 보면 하이퍼링크이지만 기계가 보았을 때 해당 자원을 가리키는 다른 데이터 자원이 된다.

만약 이렇게 연결되는 정보들을 활용하게 된다면 이번에는 어떻게 될까?

IU의 웹페이지에서는 IU의 이름, 생일 등을 알게 되었고, 추가적으로 joyhong이 IU를 알고 있다는 정보를 얻을 수 있다.

joyhong의 웹페이지에서는 이름, 관심사, 블로그 주소를 얻을 수 있다.

이 예시는 아주 심플하고 억지스러울 수도 있지만

“IU가 아는 사람의 취미가 무엇이지?” 라는 질문에 대해서 “루어낚시”라는 답을 찾을 수 있다.

왜냐하면 IU의 페이지에서 joyhong이 IU를 안다(knows)는 정보와

joyhong의 페이지에서 joyhong의 관심사 정보를 획득이 가능하기 때문이다.

물론 여기서는 knows 라는 것이 symmetric 성질이 있다는 정의를 기반으로 하기 때문에 joyhong이 IU를 안다고 했을 때 IU도 joyhong을 안다고 말할 수 있게 된다.

 

 

기존 웹과 시맨틱 웹의 기반 구조 차이

기존의 웹 기반 구조는 위에서 잠깐 언급했듯이 URL(Uniform Resource Locators)이라는 범용적인 링크를 이용하여 서로를 참조하는 웹 페이지의 분산 네트워크를 지원하고 있다.

그러나 시맨틱 웹은 데이터의 차원에서 분산된 웹을 지원하는 것이다. 하나의 웹 페이지가 다른 페이지를 가리키는 대신, URI로 불리는 범용적 참조를 사용하여 하나의 데이터 항목이 다른 항목을 가리킬 수 있다.

어떤 정보를 보여주는 페이지를 만들 때 이 정보에 대해 인간만이 읽을 수 있는 표현이 아니라, 데이터에 대해 분산 가능하며 기계도 읽을 수 있는 설명으로 페이지를 만든다. 

시맨틱 웹 기반 구조가 이러한 분산된 데이터의 웹을 표현하기 위해 사용하는 데이터 모델이 RDF(Resource Descripion Framework)이다.

 

위의 시맨틱 웹 스택은 시맨틱 웹 아키텍처를 보여주는 좋은 그림이다. 

URI는 시맨틱 웹 세계에서 사용하는 식별자로서 웹의 세상에서 특정 자원에 대한 고유한 문자열이다.

XML는 문서 내의 콘텐츠 구조에 대한 요소 구문을 제공한다. 단순히 구문에 대한 역할을 담당하고 콘텐츠의 의미와 의미체계를 연관시키지는 않는다. 현재 대부분의 경우에는 XML이 필수요소는 아니다. 하지만 RDF나 OWL이 XML에서 파생된 언어라는 점은 주목할 만 하다.

RDF는 자원과 자원들간의 관계를 참조하는 데이터 모델을 표현하는 언어이다. W3C의 표준으로 RDF/XML, N-Triples, Turtle, RDFa 등 다양한 구문으로 표현할 수 있다. 

RDFS(RDF Schema)는 RDF의 확장으로 RDF 기반 자원의 속성과 클래스를 설명하기 위하여 사용한다. 여기에 추가적으로 속성과 클래스의 일반화된 계층 구조에 대한 의미를 표현할 수 있게 된다.

OWL은 속성과 클래스를 설명하기 위해 더 많은 어휘들을 추가하게 된다. 클래스들 간의 관계에 대한 어휘, 카디털리티, 다양한 속성의 유형, 속성의 특성 등을 추가하면서 보다 다양한 의미들을 표현할 수 있게 된다. 즉 RDFS만으로 충분하지 않았던 표현력을 OWL을 통해서 그 표현력을 높일 수 있게 된다. OWL은 기술논리(Description Logic) 기반의 온톨로지 언어이다.  기술논리는 기본적인 개념을 표현하는 기호와 개념들을 구성하는 구성자를 사용하여 용어적 지식을 주로 다루는 지식표현체계를 말한다.

RIF는 W3C 규칙 교환 형식으로 기계가 실행할 수 있는 웹 규칙을 표현하기 위한 XML 언어이다.

SWRL은 규칙과 로직을 표현하기 위해 사용할 수 있는 언어로 규칙을 RDF 구문으로 표현한다.

RIF와 SWRL은 기술논리로 직접 표현할 수 없는 관계를 규칙으로 기술하는데 사용한다.

SPARQL은 시맨틱 웹 데이터 소스를 위한 프로토콜 및 쿼리 언어이다.

Logic은 기존에 정의된 정보들을 바탕으로 새로운 결론을 도출하는 추론 기능 등을 의미하는데 기술논리 기반의 OWL추론과 규칙 기반의 추론을 지원하게 된다.

Proof/Trust는 아직 완전히 실현되지 않은 영역이긴 하지만 2가지의 원칙을 가진다. 증명은 어떤 정보가 시맨틱 웹 상에 만들어져서 사용될 때 그 정보에 대한 출처가 어디인지를 증명한다는 것이고, 신뢰는 출처가 증명된 정보는 신뢰할 수 있다는 것이다. A소스를 신뢰할 수 있다면, A소스가 신뢰하는 다른 소스들도 신뢰할 수 있다는 개념으로 확장해 나갈 수 있다. 따라서 신뢰는 직접적인 경험과 전달된 믿음을 기반으로한 출처가 정확한 정보를 게시할 주관적 확률로 해석될 수 있다.

 

 

시맨틱 웹 그리고 웹 온톨로지 언어

지식표현과 온톨로지에서는 지식표현 관점에서 표현력과 형식성을 기반으로 지식을 표현하고 논리적인 추론을 하는 언어로서의 역할을 이야기 했었다. 

시맨틱 웹에서 온톨로지를 사용하면서는 데이터 관점에서 표현력을 낮추고 데이터를 공유하고 연결하는 형식성을 갖춘 언어로서의 역할로 사용되는 측면이 강하다.

 

초기 시맨틱 웹은 논리와 추론 중심의 지식표현에 초점을 두었다. 지식을 표현하기 위해서는 데이터가 필요한데 ’시맨틱 데이터 부족’이라는 문제를 안고 있었다. 이는 소수의 전문가들이 시맨틱 데이터를 만들어야 하는데 문제가 있었고, 웹이 발달하면서 사용자들이 자발적으로 참여하고 정보를 계속 생산하는 것에 대해 시맨틱 데이터를 생성할 수 없는 한계도 있었다. 물론 semantic annotation이라는 기술로 자동적으로 의미를 생성하는 시도도 있었지만 결과가 만족스럽지는 않았다. 

또한 시맨틱 웹의 모범 사례라고 하는 링크드 데이터(Linked Data)를 제안했는데 이를 계기로 기존의 지식 표현의 틀에 갇혀 있던 시맨틱 웹을 데이터 관점으로 전환하는데 큰 역활을 하게 되었다.

따라서 데이터에 대한 표현력을 풍부하게 하고 새로운 정보를 추론하는 방식과는 다르게 웹을 중심으로 방대한 데이터를 연결하고 공유하는 방식으로 전환하게 되었다.

 

시맨틱 웹의 한계, 실패일까?

시맨틱 웹은 ‘실용성이 없다’, ‘킬러앱이 없다’, ‘학문적 연구에서 벗어나지 못하고 있다’ 등의 부정적인 이야기들이 많다. 그렇다면 이는 실패한 기술인 것인가? 개인적인 생각으로는 비록 성공하지는 못했지만 실패한 기술은 없다고 생각한다.  실패했다고 보는 기술이건 성공한 기술이건 현재 단계의 기술이 있어야 이를 토대로 다음 단계의 기술이 나올 것이기 때문이다.

이러한 측면에서 시맨틱 웹이 남긴 산물은 웹 온톨로지 언어와 같은 표준 기술과 데이터 공유와 연결하는 역할로서의 온톨로지이다.

 

이전 글에서 온톨로지 언어는 구문 온톨로지 언어와 마크업 온톨로지 언어로 구분된다고 이야기 했었는데 다음 글에서 이야기 하고자 하는 온톨로지는 마크업 온톨로지 언어이다.


온톨로지 개발자를 위한 시맨틱웹

https://en.wikipedia.org/wiki/Semantic_Web

Tim Berners-Lee, James Hendler, and Ora Lassila. 2001. The SemanticWeb. Scientific American 284, no. 5, pages 34-43.

지식그래프 - 김학래

'J:::SemanticWeb' 카테고리의 다른 글

J_15.웹페이지로부터 지식그래프 생성  (0) 2022.05.06
J_14. 온톨로지 언어  (0) 2022.05.06
J_12. 지식표현과 온톨로지  (0) 2022.02.07
J_11. RDF 1.1 Primer  (0) 2014.11.26
J_10. SPARQL Endpoint 상태  (0) 2013.12.27
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함