LOD 의 개념


LOD(Linked Open Data)는 데이터 기반의 웹(Web of Data)를 구축하기 위한 방법으로써, 웹에서 보다 자유롭게 데이터를 개방 및 공유하고 활용할 수 있는 방법을 제공하는 기술입니다.

현재의 웹은 HTML로 작성된 문서들간의 연결을 통해 이루어져 있지만, LOD가 추구하고 있는 데이터 기반의 웹은 데이터가 중심이 되어 서로간의 의미적인 연결 관계로 이루어진 웹을 지향합니다. 이를 통해 사용자는 지금의 웹 페이지를 접근하는 것과 같이 자유롭게 데이터에 접근하여 활용할 수 있습니다.

문서의 웹과 데이터의 웹을 비교 설명하는 이미지

LOD에서 “Linked”의 의미는 데이터들이 서로 의미적으로 연결되어 있음을 의미하며, “Open”은 말 그대로 개방되어 있음을 나타냅니다. 결국 LOD는 웹을 통해 데이터들을 의미적으로 연결하여 제공함으로써 누구나 데이터에 접근하여 이를 활용할 수 있도록 제공하는 것을 의미합니다.

서울 열린데이터 광장의 LOD 플랫폼은 LOD의 표준 기술을 활용하여 서울 열린데이터 광장에서 제공하고 있는 데이터셋을 누구나 자유롭게 접근하여 활용할 수 있도록 제공하는데 그 목적이 있습니다.

LOD의 기술 요소


LOD와 관련되어 있는 다양한 기술들은 모두 W3C의 표준을 바탕으로 하고 있습니다.

아이콘 URI (Uniform Resource Identifier)

LOD에서 제공되는 데이터들은 모두 각각을 식별할 수 있는 고유한 URI를 가지고 있습니다. 대한민국의 모든 국민은 각각의 개인을 식별하기 위해 중복되지 않는 고유한 주민등록번호를 가지고 있습니다. 이처럼 LOD에서 제공하는 데이터들 또한 각각의 데이터를 식별할 수 있도록 URI를 할당하고, 해당 URI를 통해 데이터에 접근할 수 있습니다. 예를 들어, 당산역은 당산역을 식별할 수 있도록 http://lod.seoul.go.kr/resource/SubwayStation/0237라는 URI를 가지고 있으며, 해당 URI에 접근하면 당산역에 대한 정보를 얻을 수 있습니다.

URI에 대한 결과 화면

아이콘 RDF (Resource Description Framework)

RDF는 데이터에 대한 정보를 기술할 수 있는 방법을 제공합니다. 우리가 흔히 많이 사용하고 있는 관계형 데이터베이스는 데이터에 대한 정보를 기술하기 위해 테이블 구조를 이용합니다. 하지만 LOD에서는 데이터에 대한 정보를 기술하기 위해 RDF라는 표준에 바탕을 두고 있으며, 이는 그래프 형태의 구조를 가집니다. 웹이라는 것을 생각해보면 이는 당연한 방법이기도 합니다. 웹은 웹 페이지가 존재하며, 웹 페이지들끼리 하이퍼링크(hyperlink)로 연결되어 있는 그래프 구조를 가집니다. LOD에서는 웹 페이지 대신 데이터가 존재하는 것이며, 이들끼리 단순한 하이퍼링크가 아닌 의미적인 관계로 연결되어 있는 그래프 구조인 것입니다.

RDF 형태의 그래프 구조

위의 그림은 동묘앞 역에 대한 실제 RDF 형태의 그래프 구조입니다. seoul:0159는 동묘앞 역에 할당된 URI를 의미하며, 다른 정보들과 그래프 형태로 연결되어 있는 것을 알 수 있습니다.

이와 같이 RDF는 LOD에서 사용되는 데이터를 기술하기 위한 방법을 제공하고 있으며, 이렇게 RDF의 그래프 형태로 표현된 데이터는 실제로 XML이나 Turtle 등 다양한 형태의 문법으로 나타낼 수 있습니다. 아래는 위의 동묘앞 역에 대한 RDF를 다양한 형태의 문법으로 나타낸 예시입니다.

예시
XML dongmyo_xml
Turtle dongmyo_turtle
nTriples dongmyo_ntriple

h4_circle.png SPARQL (SPARQL Protocol And RDF Query Language)

SPARQL은 LOD 형태로 구축된 데이터를 위한 W3C 표준 질의언어입니다. 관계형 데이터베이스로부터 자신이 원하는 데이터를 가져오기 위해 SQL이란 표준 질의언어를 사용하는 것과 마찬가지로 LOD 플랫폼에서는 SPARQL이란 질의언어를 이용하여 자신이 원하는 데이터를 질의하여 사용할 수 있습니다.

SPARQL의 질의가 가능하다는 것은 개발자 혹은 사용자에게 보다 높은 수준의 자유도를 제공할 수 있습니다. 개발자는 자신이 원하는 데이터를 SPARQL을 이용하여 제공받을 수 있습니다. 다음은 6호선 전철역의 목록을 얻기 위한 SPARQL 구문입니다.

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 seoul: <http://lod.seoul.go.kr/ontology/>
select * where {
    ?station rdf:type schema:SubwayStation .
    ?station seoul:subwayLine <http://lod.seoul.go.kr/resource/SubwayLine/6> .
    ?station rdfs:label ?name .
} limit 50
prefix nlon: <http://lod.nl.go.kr/ontology/>

SAPRQL Endpoint 바로가기

위의 SPARQL을 입력하고 실행버튼을 클릭하면 6호선 지하철 역의 목록이 역 이름과 함께 출력됩니다. SPARQL의 자세한 활용방법은 아래의 링크를 참조하시기 바랍니다.

서울 열린데이터 광장 LOD 플랫폼의    icon_manual.png SPARQL 매뉴얼 바로가기.