RESEARCH & REPORT/IT 트렌드

RDF (Resource Description Framework) 1.1

(주)비트나인 2015. 9. 23. 11:06

RDF의 한계를 넘어, 그래프 데이터베이스 알아보기



Agens Graph(아젠스 그래프) 출시 이후 비정형데이터의 일부 영역인 웹상의 데이터를 기술하는 Resource Description Framework(RDF)에 대해 기술된 내용입니다.


출처: 한국정보화진흥원 국가DB구축사업의 연구결과인 "부록-데이터활용_신기술가이드-RDF.pdf"에서 발췌.




 제 2장. RDF

 (Resource Description Framework) 1.1


• RDF 가이드라인의 주요 대상 문건은 W3C RDF 1.1 Primer (2014년 6월 24일 발행문건, http://www.w3.org/TR/2014/NOTE-rdf11-primer -20140624/)임.

• RDF에 대한 필요성과 논의는 1995부터 시작되었고 1997년에 W3C에서 처음으로 권고문서가 발행되었음.

• RDF Primer는 2004년 첫 번째 공식문서가 발행된 이 후 10년 간 개정 작업이 었으나, 2014년 RDF Primer 1.1로 공식버전이 출간됨

• 본 장의 첫 도입부는 RDF Primer1.1을 그대로 활용하지 않고 보다 손쉬운 이해를 위해 부수적인 설명을 포함하고 있음

• 그 외의 그림, 문법 등 설명 예시와 설명은 공식문건을 준용함




1. RDF란


• RDF는 웹 상의 자원(Resource)을 기술하기 위한 W3C 표준

  - 웹 상의 자원을 기술한다는 것은 웹에서 자원을 가르키거나 표현하는 방법을 그대로 사용한다고 유추할 수 있음

  - Resource는 URI로 표현할 수 있는 모든 것으로 사람이 만들어내어 실재하거나(예: 책상, 야구공 등) 물리적인 실체는 없으나 개념적으로 존재하는 모든 것(예: 사랑 등)을 포함함

  - Description, 기술한다는 것은 아주 상세하게 설명한다는 것으로 자원이 가질 수 있는 속성, 특징 등을 설명함을  의미함

• RDF는 사람이 쉽게 읽고 이해할 수 있을 뿐만 아니라 기계적인 처리가 용이하여 응용프로그램들이 웹에 표현된 정보들을 처리하기  용이함

  - 정보를 표현하기 위해 공통 프레임워크 제공으로 의미손실 없이 응용 프로그램 간 정보교환 가능

  - 공통 프레임워크을 사용하기 때문에 애플리케이션 설계자는 공통의 RDF 파서와 처리 도구를 활용할 수 있음

• 다른 응용 프로그램 간의 정보 교환 할 수 있다는 것은 정보가 원래 작성된 이외의 응용 프로그램에서 정보를 사용할 수 있음을 의미함

  - RDF는 특히 웹에서 데이터를 공개하고 연결하는데 사용할 수  있음

  - 예를 들어, http://www.example.org/bob#me를 검색하면 ‘bob’에 대한 데이터를 확인할 수 있음

  - ‘bob’은 자신이 친구 ‘alice’를 알고 있다는 사실을 ‘alice’의 IRI (International Resource Identifier)를 사용해서 표현할 수  있음

  - ‘alice’의 IRI를 검색(혹은 링크를 따라가면)하면 ‘alice’가 제공하는 그녀의 정보와 또 다른 그녀의 친구들에 대한 데이터를 확인할 수 있음

  - 중요한 것은 이런 데이터간의 연결구조를 통해서 다양한 것 (things, URI로 표현가능한 모든 것)들에 대해서 사람 혹은 자동 프로세스가 데이터를 수집할 수 있다는 것임

• RDF가 갖는 이러한 특징으로 인해서 RDF는 특히 Linked Data에 적합함





2. RDF의 용도


• Google, Bing, Yahoo 등 거대 검색엔진(서비스) 기업들의 참여로 더 잘 알려진 Schema.org의 어휘들을 사용해서 기계가 처리할 수 있는 정보들을 웹페이지에 추가하면 검색엔진들이 보다 명확하게 정보를 처리할 수 있을 뿐만 아니라 또 다른 응용 프로그램에 의해서 공개된 데이터의 자동 처리가 가능함

• RDF 규격으로 구조화된 데이터를 발행하고 상호간의 연결을 확보하면 보다 풍부한 데이터셋을 활용할 수 있음

  - 예를 들어, ‘그림’에 대한 데이터셋을 ‘예술가’ 데이터셋과  연결하면 보다 풍부한 데이터셋을 만들 수 있고, ‘예술가’가 포함하고 있는 또 다른 데이터셋의 연결을 따라 보다 다양한 정보에 접근이  가능함

  - Interlinking API를 사용하면 클라이언트가 보다 많은 정보에 접근 할 수 있는 방법을 쉽게 발견할 수  있음

• 현재 Linked Data로 공개되어 있는 모든 데이터셋을 활용할 수 있음

• 특정적으로 여러 웹사이트에 RDF로 기술된 사람들의 정보를 연결함으로 분산 소셜 네트워크를 구축할 수 있음

• 데이터베이스 간에 데이터 교환을 위한 표준 방법론을 제시함

• RDF를 사용함으로써 조직안의 다양한 데이터셋을 연결하고 SPARQL을 사용하여 데이터셋 간 질의(query) 처리가 가능하게  함





3. RDF 데이터 모델


1) 트리플(Triples)


• RDF의 구조는 매우 간담함

• RDF는 자원에 대해서 설명해주는 간단한 문장(statements)을 만드는 것이 가능하고, 이 형식은 아래와 같이 매우 간단한 구조를 가짐


<주어>     <술어>     <목적어>


• RDF 문장은 두 자원간의 관계를 표현하는 것으로, ‘주어’와 ‘목적어’가 이 자원에 해당하고 ‘술어’는 이 ‘관계의 특징(특성)’을 표현함

• 관계는 방향성(주어에서 목적어로)을 가지며, 속성(Property)이라고 명명함

• 이런 구조의 한 문장을 트리플(triple)이라고 칭함

• RDF 트리플을 비형식적인 의사코드(pseudocode)로 표현한 예는 아래와 같음


예제 1 : 샘플 트리플 (비형식)


<Bob> <is a> <person>.

<Bob> <is a friend of> <Alice>.

<Bob> <is born on> <the 4th of July 1990>.

<Bob> <is interested in> <the Mona Lisa>.

<the Mona Lisa> <was created by> <Leonardo da Vinci>.

<the video 'La Joconde à Washington'> <is about> <the Mona Lisa>.


※ pseudo code: 수도코드(의사코드)로 번역되며 프로그래밍 언어의 문법을 지키지 않고 모델링과 일반적인 이해를 위해  사용함

• 하나의 자원은 여러 트리플에서 참조될 수 있음

  - 위의 예시에서 밥(Bob)은 4개의 트리플에서 주어로, 모나리자(Mona Lisa) 는 1개의 트리플에서는 주어, 2개의 트리플에서는 목적어로 표현됨

• 같은 자원을 한 트리플에서는 주어로, 다른 트리플에서는 목적어로 표현됨으로서 트리플들 간의 연결을 발견할 수 있음

  - 이러한 연결점은 RDF가 갖는 아주 중요한 특징임

• 트리플들은 연결된 그래프로 시각화 할 수 있음

  - 그래프는 노드와 아크로 구성되며, 트리플의 주어와 술어는 그래프에서 노드로 구성됨

  - 아래의 그림은 샘플 트리플을 그래프로 표현한 것임

 



그림 11 샘플 트리플의 비형식 그래프


  - 일단 이와 같은 그래프가 있다면 SPARQL을 사용하여 질의(예시, 레오나르도 다 빈치의 그림에 관심을 가지고 있는 사람)를 할 수 있음



2) IRIs


• IRI는 International Resource Identifier의 약어로서 자원을 식별하는 역할을 함

  - 웹 주소로 사용하는 URL (Uniform Resource Locators)은 IRI의 한 형식임

  - IRI라는 개념은 URI (Uniform Resource Identifier)를 일반화 한 것으로, 비 ASCII 문자를 IRI의 문자열로 사용할 수 있음

※ 단적으로 웹의 URI에 영어 이외의 다양한 언어들을 그대로 활용할 수 있 음을 의미함

  - IRI는 트리플에서 주어, 술어, 목적어 모두에서 나타날 수 있음

• 위에서 언급한 바와 같이 IRI는 문서, 사람, 물체, 추상적인 개념 등의 자원을 식별하는데 사용되며, 레오나르도 다 빈치에 대한 IRI는 DBpedia에서는 아래와 같이 기술함.


 http://dbpedia.org/resource/leonardo_da_Vinci


  - Europeana 의 “La Joconde à Washington”라는 제목의 모나리자에

관한 INA 비디오가 사용하는 IRI는 아래와 같음


 http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619


  - IRI는 글로벌 식별자로서 동일한 자원을 확인하기 위해 재사용할 수 있음

  - 예를 들어, 사람들 사이의 친분 관계를 설명하기 위해 많은 사람들이 아래의 IRI를 RDF 속성(property)로 사용함


http://xmlns.com/foaf/0.1/knows


  - RDF는 IRI가 무엇을 나타내는지 인식할 수 없지만 IRI는 특정 어휘나 규칙에 의해 의미를 부여할 수 있음

  - 예를 들어, DBpedia는 해당 위키피디아 기사에서 기술된 것을 나타 내기 위해 http://dbpedia.org/resource/Name 형식의 IRI를 사용함



3) 문자열(Literals)


• 문자열은 IRI 형식을 준수하지 않는 기본 입력 값들을 의미함

  - 문자열은 “La Joconde”와 같은 문자, “the 4th of July 1990”와 같은 날짜, “3.14159”과 같은 숫자 등이 해당됨

  - 문자열은 그 값을 정확히 분석하고 해석할 수 있는 데이터타입과 연결되어짐

  - 문자열 리터널은 선택적으로 언어 태그와 연결될 수 있음

  - 예를 들어, “Léonard de Vinci”는 프랑스어임을 나타내는 “fr” 언어 태그와 연결되고, “李奥纳多•达•文西”는 “zh”언어 태그와 연결될 수 있음

  - 문자열은 트리플 구조 중 목적어 위치에만 나타날 수 있음



4) 공백 노드(Blank Nodes)


• IRI와 문자열은 모두 RDF 문장을 작성하기 위한 기본 요소임

• 또한, 글로벌 식별자를 사용하는 어려움없이 자원에 대해 기술하는 것을 이하게 할 수 있음

  - 예를 들어, 모나리자 그림의 배경에 ‘사이프러스 나무’로 알려진 불확실한 나무가 있다는 것을 RDF상에서는 글로벌 식별자를 사용하지 않고 공백 노드로 표현할 수 있음

  - 공백 노드는 단순 변수와 유사하며, 그 값이 무엇인지를 언급하지 않고 사물을 나타냄

• 공백 노드는 트리플의 주어와 목적에의 위치에 나타날 수 있으며, IRI로 명시적인 이름을 지정하지 않고 자원을 표현할 수 있음



그림 12 비형식적인 공백 노드의 예시 : 모나리자의 배경에는

사이프러스 나무 클래스에 속한 이름 없는 자원이 묘사되어 있음



5) 다중 그래프(Multiple Graphes)


• RDF는 다중 그래프의 RDF 문을 그룹화하고 이 그래프를 IRI에 연결 하는 방법을 제공함

  - 다중 그래프는 최근에 확장된 RDF 데이터 모델임

  - 실제로 RDF 도구 개발자와 데이터 관리자는 트리플 집합의 부분 집합에 대한 기술 방법이 필요했음

• 다중 그래프는 RDF 쿼리 언어인 SPARQL에서 처음 소개되었음

  - 따라서, RDF 데이터 모델은 SPARQL과 밀접하게 관련된 여러 그래프의 개념으로 확장되었음

• RDF 문서의 다중 그래프는 RDF 데이터셋을 구성함

  - RDF 데이터셋은 여러 개의 명명된 그래프와 하나의 명명되지 않은 (default) 그래프를 가질 수 있음

  - 예를 들어, 위의 Example 1의 문장들은 두 개의 명명된 그래프로 그룹화 할 수 있음

  - 첫 번째 그래프는 소셜 네트워킹 사이트에 제공되며 http://example.org/bob 로 구분됨


예제 2 : 샘플 데이터셋의 첫 번째 그래프


<Bob> <is a> <person>.

<Bob> <is a friend of> <Alice>.

<Bob> <is born on> <the 4th of July 1990>.

<Bob> <is interested in> <the Mona Lisa>.


  - 그래프와 관련된 IRI를 그래프명 이라고 함

  - 두 번째 그래프는 Wikidata에 제공하며 https://www.wikidata.org/wiki/Special:EntityData/Q12418 로 구분됨


예제 3 : 샘플 데이터셋의  번째 그래프


<Leonardo da Vinci> <is the creator of> <the Mona Lisa>.

<The video 'La Joconde à Washington'> <is about> <the Mona Lisa>.


  - 아래는 명명되지 않은 그래프이며 이 그래프에는 주어로

  <http://example.org/bob> 이라는 그래프명을 가진 두 개의 트리플이 포함되어 있음

  - 이 트리플들은 발행자와 라이선스 정보가 그래프 IRI와 연결되어 있음


예제 4 : 샘플 데이터셋의 명명되지 않은 (default) 그래프


<http://example.org/bob> <is published by> <http://example.org>.

<http://example.org/bob> <has license> <http://creativecommons.org/licenses/by/3.0/>.


  - 이 데이터셋 예시에서 그래프명은 해당 그래프 내에서 제공되는

RDF 데이터의 출처를 표현함

  - 즉, <http://example.org/bob>을 검색하면 이 그래프에 있는 4개의 트리플에 접근할 수 있다고 간주함

 


그림 13 샘플 데이터셋의 비형식 그래프





4. RDF 어휘(Vocabularies)


• RDF 데이터 모델은 자원에 대한 문장(statement)을 만드는 방법을 제공함

  - 앞 절에서 언급한 바와 같이 데이터 모델은 IRI가 어떤 자원을 나타내는 지에 대해서 어떠한 가정도 하지 않음

  - 실제로, RDF는 이러한 자원에 대해 의미적인 정보를 제공하는 어휘 또는 기타 규정과 함께 일반적으로 사용됨

• 어휘 정의를 지원하기 위해 RDF는 RDF 스키마 언어를 제공함

  - 이 언어는 RDF 데이터의 의미적인 특성을 정의할 수 있게 해줌

  - 예를 들어, http://www.example.org/friendof IRI는 ‘속성’으로 사용되도록 명시할 수 있으며, 이 IRI 프로퍼티를 가진 트리플의 주어와 목적어는 반드시 http://www.example.org/Person 클래스의 자원이어야 함을 명시 할 수 있음

• RDF 스키마는 자원의 분류에 사용할 수 있는 카테고리를 지정하기 위해 클래스 개념을 사용함

  - 인스턴스와 클래스 사이의 관계는 type 프로퍼티를 통해 명시함

  - RDF 스키마로 클래스와 서브 클래스의 계층 구조 및 프로퍼티와 서브 프로퍼티의 계층 구조를 생성할 수 있음

  - 특정 트리플의 주저와 목적어에 대한 Type 제약(restrictions)은 도 메인(domain)과 레인지(range) 제약으로 정의할 수 있음

  - 도메인 제약의 예시는 위에서 설명한 바와 같이 "friendOf" 트리플의 주어는 “Person”클래스에 속해야 한다는 것임

• RDF 스키마에서 제공되는 주요 모델링 구성요소는 아래의 표와 같음


 구성요소

구문 형식

설명 

 Class(클래스)

 C rdf:type rdfs:Class

 C(자원) 는 RDF 클래스

 Property(클래스)

 P rdf:type rdf:Property

 P(자원) 는 RDF 프로퍼티

 type(속성)

 I rdf:type C

 I(자원)는 C(클래스)의 인스턴스

 subClassOf(속성)

 C1 rdfs:subClassOf C2

 C1(클래스)는C2 (클래스)의 서브

 subPropertyOf(속성)

 P1 rdfs:subPropertyOf P2

 P1(프로퍼티)은 P2(프로퍼티)의 하위 프로퍼티

 domain(속성)

 P rdfs:domain C

 P(프로퍼티)의 도메인은 C(클래스)

 range(속성)

 P rdfs:range C

 P(프로퍼티)의 레인지는 C(클래스)

표 10 RDF 스키마 구조


• RDF 스키마로 RDF 데이터 모델을 구축할 수 있으며 간단한 비형식적인 예시는 아래와 같음


예제 5 : RDF 스키마 트리플 (비형식)


<Person> <type> <Class>.

<is a friend of> <type> <Property>.

<is a friend of> <domain> <Person>.

<is a friend of> <range> <Person>.

<is a good friend of> <subPropertyOf> <is a friend of>.


  - <is a friend of>는 일반적으로 트리플의 술어(Example 1과 같이)로

사용되지만, 이 같은 속성은 그 자체가 자원으로서 트리플로 기술 되거나 다른 자원의 설명에 값을 제공할 수 있음을 유의해야 함

  - 예제 5에서 <is a friend of> 는 type, 도메인, 레인지 값을 할당한 트리플의 주어이며, <is a good friend of> 라는 프로퍼티에 관해서 무엇인가를 설명하고있는 트리플 목적어임

• 전 세계적으로 사용되고 있는 첫 번째 어휘 중 하나가 소셜 네트워크를 기술하기 위한 “Friend of a Friend" (FOAF) 어휘이며, 다른 RDF 어휘의 예는 아래와 같음

  - Dublin Core: Dublin Core Metadata Initiative는 광범위한 자원을 기술하기 위한 메타 데이터 요소 세트를 유지하고 있으며, 이 어휘는 "작성자"(creator) "게시자 "(publisher) "제목"(title) 등과 같은 속성을 제공함

  - schema.org: Schema.org 주요 검색 공급자 그룹에 의해 개발된 어휘로서, 그 발상은 웹 마스터가 이 용어를 사용하여 웹페이지를 마크 업 할 수 있도록 하여 검색 엔진이 무엇에 관한 페이지인지를 이해할 수 있게 한다는 것임

  - SKOS: SKOS는 웹에서 용어와 동의어 등의 분류표를 공개하는 어휘로서, 2009년부터 W3C 권고되고 있으며 도서관계에서 널리 이용되고 있음(미국 의회 도서관 (Library of Congress)은 자관의 주제명 표목을 SKOS 어휘로 공개하고 있음)

• 어휘는 재사용함으로서 가치를 가짐

  - 즉, 많은 어휘 IRI가 다른 사람에 의해 사용되어지면 질수록 가치를 가지게 되고, 그 가치가 다시 IRI를 사용하게 됨 (네트워크 효과와 같음)

  - 이것은 새로운 IRI를 만들어내는 것이 아니라, 누군가 다른 사람의 IRI를 재사용하는 것이 좋다는 것을 의미함





5. RDF 그래프 작성


• RDF 그래프를 작성하기 위한 다양한 형식이 존재하지만, 동일한 그래프를 작성하는 각각의 형식은 동일한 트리플을 생성하고 논리적으로도 동일함

• 이번 장에서는 아래와 같은 다양한 형식들을 간략하게 다룸

  - RDF 언어의 Turtle family (N-Triples, Turtle, TriG, N-Quads)

  - JSON-LD (JSON 기반 RDF 구문)

  - RDFa (HTML 및 XML embedding 용)

  - RDF/XML (RDF를 위한 XML 구문)


1) RDF 언어의 Turtle family

• 1절에서는 RDF 트리플을 쓰기 위한 기본적인 구문인 N-Triples를 먼저 소개함

• Turtle 구문은 가독성을 향상시키기 위해 다양한 구문 형식으로 기본 구문을 확장한 구문임

• TriG와 N-Quads 구문은 여러 그래프를 인코딩하기 위해 Turtle와 N-Triples를 각각 확장한 구문임

 이상 4개의 구문을 RDF 언어의 Turtle family 라고 함



a) N-Triples

  - N-Triples 은 간단한 라인 기반의 일반 텍스트로 RDF 그래프를 쓰는 방법을 제공함

  - 그림 1의 그래프는 아래와 같이 N-Triples 구문으로 표현할 수 있음

 

예제 6 : N-Triples

01

<http://example.org/bob#me>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://xmlns.com/foaf/0.1/Person> .

<http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows>

<http://example.org/alice#me> .

<http://example.org/bob#me> <http://schema.org/birthDate>

"1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date> .

<http://example.org/bob#me> <http://xmlns.com/foaf/0.1/topic_interest>

<http://www.wikidata.org/entity/Q12418> .

<http://www.wikidata.org/entity/Q12418> <http://purl.org/dc/terms/title>

"Mona Lisa" .

<http://www.wikidata.org/entity/Q12418>

<http://purl.org/dc/terms/creator>

<http://dbpedia.org/resource/Leonardo_da_Vinci> .

<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5

F9AA4D619> <http://purl.org/dc/terms/subject>

<http://www.wikidata.org/entity/Q12418> .


02

03

04

05

06

 

07


  - 각 행은 트리플을 나타내고 Full IRI는 꺽쇠(< >)로 묶어져 있음

  - 행의 마지막에 있는 마침표는 트리플이 끝났음을 의미함

  - 3번째 행에서는 문자열(literal)의 예를 볼 수 있으며, 이 예시에서는 날짜임

  - 데이터타입(datatype)은 ^^ 라는 구분기호로 문자열 뒤에 추가됨

  - 날짜를 표현하는 것은 XML 스키마 데이터타입의 날짜 규정에 따름

  - 문자 문자열은 도처에 출현하기 때문에 N-Triples에서는 문자 문자열을 쓰는 경우에 데이터타입을 생략할 수 있음

  - 5번째 행의 “Mona Lisa"는 "Mona Lisa"^^xsd:string 와 동일함

  - 언어 태그 문자열의 경우에는 문자열 뒤에 @ 기호로 구분하여 태그를 사용함 ("La Joconde"@fr (모나리자의 프랑스어 이름))

  - 아래의 그림은 예제 6의 트리플을 나타냄



그림 14 N-Triples 예시의 RDF 그래프


  - N-Triples의 7개의 행은 위의 그림에서 7개의 아크(방향성을 갖는 화살표)에 해당됨

  - N-Triples는 대량의 RDF 교환이나 라인 지향의 텍스트 처리 도구로 대량의 RDF 그래프를 처리하기 위해 종종 사용됨



b) Turtle

  - Turtle은 N-Triples의 확장으로서 기본적인 N-Triples 구문에 추가적으로 네임스페이스 접두어(namespace prefixes), 목록, 데이터타입형 문자열의 약어를 지원하는 다양한 구문 생략형을 도입함

  - 그림 4의 그래프는 아래와 같이 Turtle로 표현할 수 있음

 

예제 7 : Turtle

01

BASE <http://example.org/>

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>PREFIX schema: <http://schema.org/>

PREFIX dcterms: <http://purl.org/dc/terms/>PREFIX wd: <http://www.wikidata.org/entity/>

 

<bob#me>

a foaf:Person ; foaf:knows <alice#me> ;

schema:birthDate "1990-07-04"^^xsd:date ; foaf:topic_interest wd:Q12418 .

 

wd:Q12418

dcterms:title "Mona Lisa" ;

dcterms:creator <http://dbpedia.org/resource/Leonardo_da_Vinci>

.

 

<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619>

dcterms:subject wd:Q12418 .

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19


  - 이 Turtle 예제는 N-Triples의 예제와 논리적으로 동일함

  - 1-6번째 행에서는 IRI를 쓰기 위한 약어를 제공하는 다양한 지시어가 포함되어 있음

  - 8번째 행의 bob#me와 같은 IRI는 첫 번째 행의 base IRI로 해결됨

  - 2-6번째 행에서는 (foaf:와 같은) IRI 프리픽스를 정의하고 있으며, full IRI 대신에 (foaf:Person과 같은) 접두어를 사용할 수 있음

  - 해당하는 IRI는 그 IRI에 상응하는 접두어로 대체하여 생성되어짐(이 예제에서는 foaf:Person 이  <http://xmlns.com/foaf/0.1/Person>을 나타냄)

  - 8-12번째 행은 동일한 주어를 가진 트리플들은 어떻게 약어를 사용

하는지를 나타내는 것으로서 9-12번째 행은 주어인

  <http://example.org/bob#me>를 가지는 트리플들의 술어-목적어를 명시하고 있으며, 9-11번째 행의 끝에 세미콜론은 각 행의 술어-목적어 쌍은 데이터 상에서 가장 최근의 주어 (여기서는 bob#me)를 그 쌍의 주어로 사용하는 새로운 트리플이란 것을 표시함

  - 9번째 행은 문법적으로 특별한 종류의 예제로서 이 트리플은 “Bob (is) a Person"으로 읽어야 함

  - 술어 a 는 rdf:type 프로퍼티의 단축형으로 인스턴스 관계 (표1 참조)를 모델링하는 것에 사용함

  - 단축형 a 는 rdf:type에 대한 사람의 직관과 일치시키기 위한 것임


공백 노드의 표현

  - 아래는 모나리자 그림의 사이프러스 나무 예제에서 사용하는 공백 노드를 쓰기 위한 두 가지 구문을 표현함


예제 8 : 공백 노드

01

PREFIX lio: <http://purl.org/net/lio#>

02

 

03

<http://dbpedia.org/resource/Mona_Lisa> lio:shows _:x .

04

_:x a <http://dbpedia.org/resource/Cypress> .


  - _:x 라는 용어는 공백 노드로서 모나리자 그림에서 이름이 없는 자원을 명시하고, 그 이름이 없는 자원은 Cypress 클래스의 인스턴스 라는 것을 명시하고 있음

  - 예제 8 은 그림 2에서 보여준 비형식적인 그래프의 구체적 구문임


예제 9 : 공백 노드 (다른 표기법)

01

02

03

04

05

06

07

08

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

 

# Some resource (blank node) is interested in some other resource

# entitled "Mona Lisa" and created by Leonardo da Vinci.

 

[] foaf:topic_interest [ dcterms:title "Mona Lisa" ;

dcterms:creator <http://dbpedia.org/resource/Leonardo_da_Vinci> ]

.


  - 대괄호는 공백 노드를 나타내는 것으로서 대괄호 안의 술어-목적어 쌍은 주어를 공백 노드로 가지는 트리플로 해석되며 ‘#’으로 시작 하는 행은 주석을 의미함



c) TriG

  - Turtle 구문은 명명된 그래프를 사용하지 않는 단일 그래프만 사용함

  - TriG는 Turtle을 확장한 것으로 RDF 데이터셋 형태에 여러 개의 그래프의 명세를 가능하게 해 줌

  - 위에서 사용한 예제의 여러 그래프 버전은 TriG로 명시할 수 있음


예제 10 TriG

01

BASE <http://example.org/>

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>PREFIX schema: <http://schema.org/>

PREFIX dcterms: <http://purl.org/dc/terms/> PREFIX wd: <http://www.wikidata.org/entity/>

 

GRAPH <http://example.org/bob>

{

<bob#me>

a foaf:Person ; foaf:knows <alice#me> ;

schema:birthDate "1990-07-04"^^xsd:date ; foaf:topic_interest wd:Q12418 .

}

 

GRAPH <https://www.wikidata.org/wiki/Special:EntityData/Q12418>

{

wd:Q12418

dcterms:title "Mona Lisa" ; dcterms:creator

<http://dbpedia.org/resource/Leonardo_da_Vinci> .

 

<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619>

dcterms:subject wd:Q12418 .

}

 

<http://example.org/bob>

dcterms:publisher <http://example.org> ;

dcterms:rights <http://creativecommons.org/licenses/by/3.0/> .

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

 

  - 이 RDF 데이터셋은 두 개의 명명된 그래프를 포함하고 있으며 각각 8번째 행과 17번째 행에서 그 이름을 기술하고 있음

  - 명명된 그래프에 속한 트리플들은 중괄호 안에 위치함 (9번째와 15번째 행, 18번째와 25번째 행)

  - 선택적으로 GRAPH 키워드를 그래프 이름 앞에 사용할 수 있음

  - 이에 따라 가독성을 향상시킬 수도 있지만 이것은 주로 SPARQL 업데이트와의 조화를 위해 도입되었음

  - 상단의 트리플과 지시어의 구문은 Turtle 구문을 준수하고 있음

  - 27-29번째 행에서 명시한 두 개의 트리플은 명명된 그래프의 일부가 아니라 RDF 데이터셋의 명명되지 않은 (default) 그래프를 형성하고 있음

  - 아래의 그림은 이 예제의 결과를 도식화하였음



그림 15 TriG 예제의 트리플

 


d) N-Quads

  - N-Quads는 N-Triples를 간단히 확장하여 RDF 데이터셋의 교환이 가능하도록 한 것으로 각 행의 4번째 요소에 트리플의 그래프 IRI를 추가하도록 허용함

  - 위에서 설명한 TriG 예제의 N-Quads 버전은 아래와 같음


예제 11 N-Quads

01

<http://example.org/bob#me>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://xmlns.com/foaf/0.1/Person> <http://example.org/bob> .

<http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows>

<http://example.org/alice#me<http://example.org/bob> .

<http://example.org/bob#me> <http://schema.org/birthDate>

"1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date>

<http://example.org/bob> .

<http://example.org/bob#me>

<http://xmlns.com/foaf/0.1/topic_interest>

<http://www.wikidata.org/entity/Q12418>

<http://example.org/bob> .

<http://www.wikidata.org/entity/Q12418>

<http://purl.org/dc/terms/title> "Mona Lisa"

<https://www.wikidata.org/wiki/Special:EntityData/Q12418> .

<http://www.wikidata.org/entity/Q12418>

<http://purl.org/dc/terms/creator>

<http://dbpedia.org/resource/Leonardo_da_Vinci>

<https://www.wikidata.org/wiki/Special:EntityData/Q12418> .

<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B81

3C5F9AA4D619> <http://purl.org/dc/terms/subject>

<http://www.wikidata.org/entity/Q12418>

<https://www.wikidata.org/wiki/Special:EntityData/Q12418> .

<http://example.org/bob> <http://purl.org/dc/terms/publisher>

<http://example.org> .

<http://example.org/bob> <http://purl.org/dc/terms/rights>

<http://creativecommons.org/licenses/by/3.0/> .

 

02

03

 

04

 

05

 

06

 

07

 

08

09


  - N-Quads 예제에서 9개의 행은 그림 5 에서의 9개 아크에 해당됨

  - 1-7번째 행은 그래프 IRI를 구성하고 있는 quads를 나타냄

  - 8-9번째 행은 4번째 요소가 없는 명명되지 않은 그래프인 문장을 나타냄

  - N-Triples과 N-Quads는 일반적으로 대량의 RDF 데이터셋의 교환과 라인 지향 텍스트 처리 도구에서 RDF를 처리하는 데 사용됨



2) JSON-LD


• JSON-LD는 RDF 그래프와 데이터셋을 위한 JSON 구문을 제공함

  - JSON-LD는 최소한의 변화로 JSON 문서를 RDF로 변환하는데 사용됨

  - JSON-LD는 데이터타입과 언어 처리 이외에 JSON 문서가 웹 상의 다른 위치에 있는 다른 JSON 문서에서 기술하고 있는 객체를 참조할 수 있는 메커니즘으로 JSON 객체에 대한 범용적인 식별자를 제공함

  - JSON-LD는 @graph 라는 키워드를 사용하여 RDF 데이터셋을 저장 하는 방법도 제공함


• 그림 4의 그래프를 JSON-LD로 표현한 예제는 아래와 같음


예제 12 JSON-LD

01

{

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

"@context": "example-context.json", "@id": "http://example.org/bob#me","@type": "Person",

"birthdate": "1990-07-04",

"knows": "http://example.org/alice#me","interest": {

"@id": "http://www.wikidata.org/entity/Q12418",

"title": "Mona Lisa", "subject_of":

"http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619",

"creator": "http://dbpedia.org/resource/Leonardo_da_Vinci"

}

02

03

04

05

06

07

08

09

10

 

11

12

13


  - 두 번째 행의 @context 키는 어떻게 문서를 RDF 그래프로 매핑 할 수 있는지를 설명하는 JSON 문서를 가리키고 있음

  - 각각의 JSON 객체는 RDF 자원에 대응됨

  - 이 예제에서는 3번째 행과 같이 @id 키워드를 사용함으로 예제에서 설명하고 있는 주요 자원은 http://example.org/bob#me 임을 보여 주고 있음

  - @id 키워드는 JSON-LD 문서에서 키로 이용한 경우에 현재 JSON 객체에 대응하는 자원을 식별하는 IRI를 가리킴

  - 4번째 행에서는 자원의 타입을, 5번째 행에서는 생일을, 6번째 행에서는 그의 친구들 중의 한명을 표현하고 있음

  - 7-12번째 행은 흥미를 가지고 있는 것 중의 하나인 모나지라 그림에 대해서 표현하고 있음

  - 이 그림을 표현하기 위해서 7번째 행에서 새로운 JSON 객체를 생성 하고, 8번째 행에서 Wikidata에 있는 모나리자의 IRI를 연결하였음

  - 9-11번째 행은 그 그림의 다양한 특성들을 표현하고 있음

  - 이 예제에서 사용하는 JSON-LD의 컨텍스트는 아래와 같음


예제 13 JSON-LD 컨텍스트 명세

01

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

"@context": {

"foaf": "http://xmlns.com/foaf/0.1/","Person": "foaf:Person",

"interest": "foaf:topic_interest", "knows": {

"@id": "foaf:knows",

"@type": "@id"

},

"birthdate": {

"@id": "http://schema.org/birthDate",

"@type": "http://www.w3.org/2001/XMLSchema#date"

},

"dcterms": "http://purl.org/dc/terms/", "title": "dcterms:title",

"creator": {

"@id": "dcterms:creator", "@type": "@id"

},

"subject_of": {

"@reverse": "dcterms:subject", "@type": "@id"

}

}

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25


  - 이 컨텍스트는 어떻게 JSON-LD 문서를 RDF 그래프로 매핑할 수 있는지를 설명하고 있음

  - 4-9번째 행은 Person, interest, knows가 어떻게 3번째 행에서 정의한

FOAF 네임스페이스의 타입과 속성으로 매핑이 되는지를 명시하고 있음

  - 8번째 행에서는 @type와 @id 키워드를 사용함으로 인해 knows 키가 IRI로 해석되어지는 값을 가진다는 것을 명시하고 있음

  - 10-12번째 행은 birthdate를 schema.org 프로퍼티 IRI에 매핑하고 그 값을 xsd:date 데이터타입으로 매핑하도록 명시하고 있음

  - 14-23번째 행은 title, creator, subject_of를 어떻게 더블린 코어 프로퍼티 IRI에 매핑하는지를 명시하고 있으며, 21번째 행의 @reverse 키워드는 이 컨텍스트를 이용하는 JSON-LD 문서에서 "subject_of": "x"가 존재할 경우에 주어는 x IRI이고, 술어는 dcterms:subject 이며, 목적어는 부모 JSON 객체에 대응되는 자원으로 매핑되어야 한다는 것을 명시하고 있음



3) RDFa


• RDFa는 HTML과 XML 문서안에 RDF 데이터를 포함하는데 사용할 수 있는 RDF 구문임

• 예를 들면, RDFa는 검색 엔진이 웹을 크롤링하고 검색 결과를 풍부 하게 만들기 위해 이 데이터를 수집하는 것을 가능하게 함 (schema.org 와 Rich Snippets 참조)

• 아래의 HTML 예제는 그림 4에 그려져 있는 RDF 그래프를 인코딩한 것임


예제 14 : RDFa

01

<body prefix="foaf: http://xmlns.com/foaf/0.1/

schema: http://schema.org/ dcterms:http://purl.org/dc/terms/">

<div resource="http://example.org/bob#me" typeof="foaf:Person">

<p>

Bob knows <a property="foaf:knows"

href="http://example.org/alice#me">Alice</a>

and was born on the <time  property="schema:birthDate"

datatype="xsd:date">1990-07-04</time>.

</p>

<p>

Bob is interested in <span property="foaf:topic_interest"resource="http://www.wikidata.org/entity/Q12418">the MonaLisa</span>.

</p>

</div>

<div resource="http://www.wikidata.org/entity/Q12418">

<p>

The <span property="dcterms:title">Mona Lisa</span> was

painted by

<a property="dcterms:creator"

href="http://dbpedia.org/resource/Leonardo_da_Vinci">Leonardo daVinci</a>

and is the subject of the video

<a href="http://data.europeana.eu/item/04802/243FA8618938F41

17025F17A8B813C5F9AA4D619">'La Joconde à Washington'</a>.

</p>

</div>

<div resource="http://data.europeana.eu/item/04802/243FA8618938

F4117025F17A8B813C5F9AA4D619">

<link property="dcterms:subject"

href="http://www.wikidata.org/entity/Q12418"/>

</div>

</body>

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

 

18

19

20

21

22

23

24

25


  - 위의 예제는 HTML 내에서 RDF 트리플 명세를 가능하게 하는 4개의

특별한 RDFa 속성인 resource, property, typeof, prefix 이 포함되어 있음

  - 1번째 행의 prefix 속성은 Turtle 프리픽스와 유사한 모양으로 IRI 단축형을 명시하고 있으나 엄밀히 말하면 이 프리픽스는 이 예제에서 사용하는 것을 포함하여 미리 정의된 프리픽스의 목록을 가지고 있기 때문에 생략될 수도 있음

  - 4번째 행과 14번째 행의 div 요소는 RDF 문장이 HTML 요소 내에서 생성되어질 수 있는 IRI를 명시하고 있는 resource 속성을 가짐

  - 4번째 행의 typeof 속성의 의미는 Trutle에서 (is) a 단축형과 유사함 (주어인 http://example.org/bob#me 는 foaf:Person 클래스의 인스턴스 임을 의미함)

  - 6번째 행의 property 속성은 이 속성의 값 (foaf:knows)이 RDF 프로퍼티 IRI로 해석되고, href 속성의 값 (http://example.org/alice#me) 은 이 트리플의 목적어로 해석되어 짐

  - 따라서 6번째 행으로부터 도출되는 결과인 RDF 문장은 아래와 같음


 <http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows> <http://example.org/alice#me>


  - 7번째 행은 리터널 값을 목적어로 갖는 트리플이며 property 속성은

HTML의 time 요소로 명시되어 있으며 HTML은 time 요소의 내용이 어떤 유효한 시간 값이어야 함을 요구함

  - time 요소의 내장된 HTML 문법을 이용함으로서 RDFa는 명시적인 데이터타입의 선언없이 값이 xsd:date로 해석 할 수 있음

  - 10-11번째 행에서는 트리플의 목적어를 명시하는데 사용되는 resource 속성이 있음

  - 이 방법은 객체가 IRI이고 IRI 자체는 (href 속성처럼) HTML 내용의

일부가 아닌 경우에 사용됨

  - 16번째 행은 리터널의 두 번째 예 (모나리자)를 포함하고 있으며, 여기에서는 span속성의 내용으로 정의되어 있음

  - RDFa는 리터널의 데이터타입을 유추할 수 없을 경우에는 데이터 타입을 xsd:string으로 간주함

  - RDF 문장을 문서의 HTML 콘텐츠의 일부로 정의할 수 없는 경우도 있으며 이 경우에는 콘텐츠를 표시하지 않는 HTML 구조를 사용하여 트리플을 명시할 수 있음

  - 22-23번째 행이 이러한 경우의 예로서 23번째 행의 HTML link 요소는 유로피아나의 주제가 무엇인지를 명시하기 위해 사용되고 있음



4) RDF/XML


• RDF/XML은 RDF 그래프에 대한 XML 구문을 제공함

  - RDF가 처음 개발된 1990년대 후반에는 이 구문이 유일한 구문이었으며 아직까지 이 구문을 RDF라고 부르는 사람이 있음

  - 2001년에는 Turtle의 전신은 N3가 제안되었고, 이 문서에서 열거하고 있는 다른 언어들이 점차적으로 채택되어 표준화되었음

• 그림 4의 RDF 그래프에 대한 RDF/XML 예는 아래와 같음


예제 15 : RDF/XML

01

<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF

xmlns:dcterms="http://purl.org/dc/terms/"xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:schema="http://schema.org/">

<rdf:Description rdf:about="http://example.org/bob#me">

<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>

<schema:birthDate

rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-07-04</schema:birthDate>

<foaf:knows rdf:resource="http://example.org/alice#me"/>

<foaf:topic_interest

rdf:resource="http://www.wikidata.org/entity/Q12418"/>

</rdf:Description>

<rdf:Description rdf:about="http://www.wikidata.org/entity/Q12418">

<dcterms:title>Mona Lisa</dcterms:title>

<dcterms:creator

rdf:resource="http://dbpedia.org/resource/Leonardo_da_Vinci"/>

</rdf:Description>

<rdf:Description

rdf:about="http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619">

<dcterms:subject

rdf:resource="http://www.wikidata.org/entity/Q12418"/>

</rdf:Description>

</rdf:RDF>

02

03

04

05

06

07

08

09

 

10

11

12

13

14

15

16

17

 

18

19

20


  - RDF/XML에서 RDF 트리플은 XML 요소인 rdf:RDF (2번째 행과 20번째행) 안에 정의되어 짐

  - rdf:RDF 시작 태그 (3-6번째 행)의 속성은 XML 요소와 속성의 이름을 쓰기 위한 단축형을 제공함

  - rdf:Description (http://www.w3.org/1999/02/22-rdf-syntax-ns#Description 축약형)

XML 요소는 about 속성으로 명시된 IRI를 주어로 가지는 트리플셋을 정의하는데 사용됨

  - 첫 번째 설명 블록(7-12번째 행)은 4개의 하위 요소를 가지며 하 위 요소의 이름은 RDF 속성(예, rdf:type, 8번재 행)를 나타내는 IRI이며, 각각의 하위요소는 하나의 트리플을 나타냄

  - 트리플의 목적어가 IRI일 경우는 프로퍼티 하위요소는 내용이 없고 그 목적어의 IRI는 (8번째 행, 10-11번째 행, 15번째와 18번째 행처럼) rdf:resource 속성을 사용하여 명시되어짐

  - 10번째 행과 대응되는 트리플은 아래와 같음


<http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows>

<http://example.org/alice#me> 


  - 트리플의 목적어가 문자열이면, 그 문자열 값은 속성 요소의 내용

으로 입력됨 (9번째와 14번째 행)

  - 데이터타입은 (9번째 행과 같이) 속성 요소의 속성으로 명시됨

  - (14번째 행처럼) 데이터타입이 생략되고 언어 태그가 존재하지 않는 경우 문자열은 xsd:string 데이터타입을 가지는 것으로 간주함





6. RDF 그래프의 의미


• RDF를 사용하는 중요한 목표는 일관성과 유용성을 유지하면서 더 큰 집합을 형성하기 위해 다양한 출처의 유용한 정보를 자동으로 결합 할 수 있는 것임

  - 이 결합을 위한 출발점으로 위에서 언급했듯이 모든 정보는 주어- 술어-목적어 트리플이라는 간단한 형식으로 전달되는 것임

  - 정보의 무결성을 유지하기 위해서는 단순한 표준 구문 이상의 것이 필요하고 이러한 트리플의 의미에 대해 합의를 해야 함

• 주어, 술어, 목적어의 이름으로 사용된 IRI는 글로벌한 범위에서 그들이 매번 사용할 때마다 같은 것을 지정됨

  - 주어와 목적어 사이에 술어 관계가 존재한다면 각각의 트리플은 참(true)임

  - 모든 트리플들이 참인 경우에 RDF 그래프는 정확히 참임

• 이러한 개념 또는 다른 것들도 RDF Semantics 문서에서 수학적 정확성을 열거하고 있음

• 이러한 선언적 의미를 갖는 RDF의 장점 중 하나는 시스템이 논리적인 추론을 할 수 있다는 것임

  - 즉, 사실로 받아들여진 입력 트리플들의 집합이 주어지면 시스템은 특정 상황에서 다른 트리플도 논리적으로 사실이라고 추론할 수 있음

  - 첫 번째 트리플셋이 추가적인 트리플을 수반한다고 이야기함

  - “추론기(reasoners)”라고 부르는 이러한 시스템은 때때로 입력 트리플 들이 서로 모순되는 것을 추론할 수 있음

• RDF의 유연성으로 인해 사람들이 새로운 개념을 사용하고자 새로운 어휘들이 생성되는 경우에 추론을 수행할 수 있는 많은 종류의 추론이 존재함

• 특정 유형의 추론이 다양한 응용 프로그램에서 유용할 때 이를 함의 규정 (entailment regime)으로 설명할 수 있음

• 일부 함의 규정은 RDF Semantics에 명시되어 있음

  - 보다 많은 기술적인 설명과 SPARQL로 사용하는 방법은 SPARQL11- ENTAILMENT 문서를 참조하기를 권함

  - 일부 함의 규정은 상당히 쉽게 구현이 가능하고 추론도 빠르게 수행 되지만, 효율적으로 구현하기 위해서는 정교한 기술이 필요한 것도 있음

• 아래의 두 개의 문장은 함의의 예제임


ex:bob foaf:knows ex:alice .

foaf:knows rdfs:domain foaf:Person


• RDF Semantics 문서는 위의 그래프로부터 아래의 트리플이 도출되는 것이 정당하는 것을 말해주고 있음


 ex:bob rdf:type foaf:Person


  - 위에서 도출된 것은 RDF 스키마 함의의 예제임

  - ex:bob ex:age "forty"^^xsd:integer. 이 트리플에 대해서는 이 트리플의 리터널값이 XML 스키마 데이터타입의 integer에 정의된 제약을 준수 하지 않았기 때문에 RDF Semantics가 논리적으로 모순되었다고 말해줌

• RDF 도구가 모든 데이터타입을 인식한다고 할 수는 없으나, 최소한 으로 도구는 문자 문자열과 언어 태그 문자열의 데이터타입을 지원 하는 것이 요구됨

• RDF 스키마 모델링은 다른 데이터 모델링 언어와는 달리 상당한 자유 로움을 허용하고 있음

  - 예를 들면 동일한 엔티티는 클래스와 프로퍼티를 모두 사용할 수 있으며, 클래스와 인스턴스의 영역에 엄격한 구분이 없음

  - 따라서 아래의 그래프는 RDF Semantics가 유효한 것으로 간주함


ex:Jumbo rdf:type ex:Elephant .

ex:Elephant rdf:type ex:Species


• elephant는 (Jumbo를 인스턴스로 가지는) 클래스 와 (Species 클래스에 속하는) 인스턴스가 모두 될 수 있음





7. RDF 데이터


• RDF는 모든 소스의 여러 트리플을 그래프로 결합시키고 유효한 RDF로 처리할수 있음

• 대량의 RDF 데이터는 Linked Data로 활용이 가능함

• 데이터셋은 웹 상에서 발행되고 연결되어지며, 그 중 대부분은 SPARQL을 통해 쿼리 기능을 제공함

• 위의 예제에서 사용하는 데이터셋의 예시는 아래와 같음

  - Wikidata: 무료, 공동협력형 다국어 데이터베이스이며 Wikimedia 재단에서 운영하고 있음

  - DBpedia: Wikipedia infoboxes에서 추출한 데이터를 공개하고 있음

  - WordNet: 동의어의 집합으로 그룹화된 의미적 상호관계를 가진 영어 용어의 어휘 데이터베이스이며 다른 언어를 위해 같은 데이터베이스가 존재하고 있음

  - Europeana: 많은 유럽의 기관에서 보유하고 있는 문화적 객체들에 대한 데이터를 공개하고 있음

  - VIAF: 많은 국립 도서관 및 기타 기관이 보유한 사람, 창작물, 지리적 위치에 대한 데이터를 공개하고 있음

 Linked Data로 사용할 수 있는 데이터셋의 목록은 datahub.io에서 유지되고 있음

• RDF 데이터 소스 간에 연결을 기록하기 위한 어휘 용어가 많이 보급 되었으며 OWL 어휘에서 제공하는 sameAs 속성이 대표적임

  - 이 속성은 두 개의 IRI가 실제적으로 동일한 자원이란 것을 나타 내기 위해 사용할 수 있음

  - 이것은 다른 게시자가 다른 식별자를 사용하여 같은 것을 나타낼 수 있기 때문에 유용함

  - 예를 들면, VIAF에 레오나르도 다 빈치를 나타내는 IRI가 있으면 owl:sameAs를 통해 아래와 같이 정보를 기록할 수 있음


예제 16 데이터셋 간의 연결

01

<http://dbpedia.org/resource/Leonardo_da_Vinci>

owl:sameAs <http://viaf.org/viaf/24604287/> .


• 이러한 링크는 동일한 자원을 가리키는 RDF 데이터를 비교하거나

  결합하는 것과 같이 RDF 데이터 처리 소프트웨어를 통해 배포될 수 있음








 이드인은 W3C RDF Primer 으로 하고 습니. 주요 용자는 발현에서

RDF 하고하는 들입RDF  구조 데이 표현 위한 입니. 

RDF 대한 요성과 용에 대한 해를 서는 Web of Data, Linked Data에  이해가 요합. 

 가이라인에  교육, 명회  대상, 준별로 세한  설명이  예정니다. 






첨부파일(참조 파일:내용원문): 


 데이터베이스활용기술전망.pdf


 부록-데이터활용_신기술가이드-RDF.pdf



 

현실 세계를 반영한 네트워크 중심의 데이터베이스, “그래프 데이터베이스(Graph Database)”란?

현실 세계를 반영한 네트워크 중심의 데이터베이스, “그래프 데이터베이스(Graph Database)”란? 안녕하세요, 국내 유일 그래프 데이터베이스(Graph Database) 연구 개발 전문 기업 비트나인입니다. 해.

bitnine.tistory.com


인공지능과의 연결고리

그래프 데이터베이스

Bitnine

https://bitnine.net/usecases/

다양한 AgensGraph 적용사례를 확인하세요




Posted by Bitnine(비트나인)

'RESEARCH & REPORT > IT 트렌드' 카테고리의 다른 글

비트코인(bitcoin)이란?  (0) 2016.01.15
ICT와 빅데이터  (0) 2015.12.31
세계 속의 빅데이터 BigData World Report  (0) 2015.10.30
애플 시리를 이루는 오픈소스 기술  (0) 2015.10.02
빅데이터의 고찰  (0) 2015.09.23