KR20160027455A - 대용량 rdf 데이터 관리 방법 및 장치 - Google Patents

대용량 rdf 데이터 관리 방법 및 장치 Download PDF

Info

Publication number
KR20160027455A
KR20160027455A KR1020140114327A KR20140114327A KR20160027455A KR 20160027455 A KR20160027455 A KR 20160027455A KR 1020140114327 A KR1020140114327 A KR 1020140114327A KR 20140114327 A KR20140114327 A KR 20140114327A KR 20160027455 A KR20160027455 A KR 20160027455A
Authority
KR
South Korea
Prior art keywords
rdf data
rdf
data
triple
triple elements
Prior art date
Application number
KR1020140114327A
Other languages
English (en)
Inventor
유윤식
권순현
김말희
박동환
방효찬
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140114327A priority Critical patent/KR20160027455A/ko
Publication of KR20160027455A publication Critical patent/KR20160027455A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 실시 예들은, 대용량 RDF 데이터를 관리하기 위한 방법 및 장치에 관한 것으로, 본 발명의 일 실시 예에 따른 대용량 RDF 데이터 관리 방법은, 제 1 배열 순서를 갖는 트리플 요소들로 구성된 제 1 RDF 데이터를 제 1 테이블에 저장하는 단계; 상기 제 1 RDF 데이터를 구성하는 트리플 요소들이 제 n(여기서, n은 2 이상의 자연수) 배열 순서를 갖도록 재배열하여, 상기 재배열된 트리플 요소들로 구성된 제 n RDF 데이터를 생성하는 단계; 및 상기 제 n RDF 데이터를 제 n 테이블에 저장하는 단계를 포함한다. 본 발명의 실시 예들에 따르면, 인터넷 기반의 서비스들이 RDF 데이터의 저장, 검색 및 추론 등을 원하는 경우, 해당 동작들이 빠르고 효율적으로 수행되도록 할 수 있다.

Description

대용량 RDF 데이터 관리 방법 및 장치{Large scale RDF data management method and apparatus thereof}
본 발명의 실시 예들은, 대용량 RDF 데이터를 관리하기 위한 방법 및 장치에 관한 것이다.
최근, 인터넷 기반의 지능화된 서비스 제공에 대한 요구가 급증하고 있다. 이에 따라, 웹의 메타 데이터를 기반으로 하는 지능화된 웹 서비스 기술 중 하나인 시맨틱 웹의 표준 표현 포맷인 RDF(Resource Description Framework) 데이터를 클라우드 상에 저장하고, 저장된 RDF 데이터를 사용자들에 효율적으로 제공하는 방법이 필요하게 되었다. 여러 인터넷 서비스들이 RDF 데이터를 클라우드 시스템 상에 누적시킴에 따라, 데이터의 양이 기하급수적으로 증가될 것으로 예측된다. 이에 따라, RDF 데이터를 효율적으로 관리하기 위한 방안이 필요하다.
따라서, 본 발명의 실시 예들은, 대용량 RDF 데이터를 효율적으로 관리할 수 있는 방안을 제공한다.
본 발명의 일 실시 예에 따른 대용량 RDF 데이터 관리 방법은, 제 1 배열 순서를 갖는 트리플 요소들로 구성된 제 1 RDF 데이터를 제 1 테이블에 저장하는 단계; 상기 제 1 RDF 데이터를 구성하는 트리플 요소들이 제 n(여기서, n은 2 이상의 자연수) 배열 순서를 갖도록 재배열하여, 상기 재배열된 트리플 요소들로 구성된 제 n RDF 데이터를 생성하는 단계; 및 상기 제 n RDF 데이터를 제 n 테이블에 저장하는 단계를 포함한다.
일 실시 예에서, 상기 제 n RDF 데이터를 생성하는 단계는, 트리플 요소들이 주어(subject)-술어(predicate)-목적어(object) 순서로 배열된 상기 제 1 RDF 데이터의 트리플 요소들을 재배열하여, 상기 트리플 요소들이 술어-목적어-주어 순서로 배열된 제 2 RDF 데이터 및 목적어-주어-술어 순서로 배열된 제 3 RDF 데이터를 생성하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 제 1 내지 제 n 테이블은, RDF 데이터를 사전식 순서(lexicographical order)로 저장할 수 있다.
일 실시 예에서, 상기 제 1 내지 제 n 테이블은, 트리플 요소들을 키(key)로서 갖는 테이블일 수 있다.
일 실시 예에서, 상기 방법은, 데이터 검색을 위한 트리플 형식의 질의를 입력받고, 상기 질의에 포함된 트리플 요소들 중 상수인 트리플 요소들을 확인하는 단계; 상기 상수로 확인된 트리플 요소들을 기반으로 상기 제 1 내지 제 n 테이블 중 어느 하나의 테이블을 선택하는 단계; 상기 선택된 테이블로부터 상기 상수로 확인된 트리플 요소들을 키로 갖는 RDF 데이터를 검색하는 단계를 더 포함할 수 있다.
일 실시 예에서, 상기 방법은, 상기 검색된 RDF 데이터 및 상기 입력된 질의를 기반으로 데이터 추론을 수행하는 단계를 더 포함할 수 있다.
일 실시 예에서, 상기 RDF 데이터를 검색하는 단계는, 상기 상수로 확인된 트리플 요소들을 기반으로 검색할 키의 범위를 결정하고, 결정된 범위에 따라 RDF 데이터를 사전식 순서(lexicographical order)로 검색하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 테이블을 선택하는 단계는, 상기 상수로 확인된 트리플 요소들이 주어이거나 주어 및 술어인 경우 상기 제 1 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 술어이거나 술어 및 목적어인 경우 제 2 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 목적어이거나 목적어 및 주어인 경우 제 3 테이블을 선택하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 대용량 RDF 데이터 관리 장치는, 제 1 배열 순서를 갖는 트리플 요소들로 구성된 제 1 RDF 데이터를 입력받는 RDF 데이터 입력부; 및 상기 제 1 RDF 데이터를 제 1 테이블에 저장하고, 상기 제 1 RDF 데이터를 구성하는 트리플 요소들이 제 n(여기서, n은 2이상의 자연수) 배열 순서를 갖도록 재배열하여 상기 재배열된 트리플 요소들로 구성된 제 n RDF 데이터를 생성하며, 상기 생성된 제 n RDF 데이터를 제 n 테이블에 저장하는 RDF 데이터 저장 영역을 포함할 수 있다.
일 실시 예에서, 상기 RDF 데이터 저장 영역은, 트리플 요소들이 주어(subject)-술어(predicate)-목적어(object) 순서로 배열된 상기 제 1 RDF 데이터의 트리플 요소들을 재배열하여, 상기 트리플 요소들이 술어-목적어-주어 순서로 배열된 제 2 RDF 데이터 및 목적어-주어-술어 순서로 배열된 제 3 RDF 데이터를 생성할 수 있다.
일 실시 예에서, 상기 장치는, 데이터 검색을 위한 트리플 형식의 질의를 입력받고, 상기 질의에 포함된 트리플 요소들 중 상수인 트리플 요소들을 확인하며, 상기 상수로 확인된 트리플 요소들을 기반으로 상기 제 1 내지 제 n 테이블 중 어느 하나의 테이블을 선택하고, 상기 선택된 테이블로부터 상기 상수로 확인된 트리플 요소들을 키로 갖는 RDF 데이터를 검색하는 RDF 데이터 추론부를 더 포함할 수 있다.
일 실시 예에서, 상기 RDF 데이터 추론부는, 상기 검색된 RDF 데이터 및 상기 입력된 질의를 기반으로 데이터 추론을 수행할 수 있다.
일 실시 예에서, 상기 RDF 데이터 추론부는, 상기 상수로 확인된 트리플 요소들을 기반으로 검색할 키의 범위를 결정하고, 결정된 범위에 따라 RDF 데이터를 사전식 순서(lexicographical order)로 검색할 수 있다.
일 실시 예에서, 상기 RDF 데이터 추론부는, 상기 상수로 확인된 트리플 요소들이 주어이거나 주어 및 술어인 경우 상기 제 1 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 술어이거나 술어 및 목적어인 경우 제 2 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 목적어이거나 목적어 및 주어인 경우 제 3 테이블을 선택할 수 있다.
일 실시 예에서, 상기 제 1 내지 제 n 테이블은, NoSQL(Not only Structured Query Language) 기반의 분산 데이터 노드에 나누어 저장될 수 있다.
본 발명의 실시 예들에 따르면, 인터넷 기반의 서비스들이 RDF 데이터의 저장, 검색 및 추론 등을 원하는 경우, 해당 동작들이 빠르고 효율적으로 수행되도록 할 수 있다.
본 발명의 실시 예들에 따르면, RDF 데이터를 네트워크(예를 들어, 인터넷) 상에 오픈하여, 인터넷 기반의 각종 서비스들이 RDF 데이터를 저장, 검색 및 추론하게끔 할 수 있다.
본 발명의 실시 예들에 따르면, 사용자가 모델링한 RDF 데이터, 각종 네트워크 시스템에서 생성된 RDF 데이터 또는 센서 노드(sensor node) 등의 분산 노드에서 수집된 데이터를 가공한 RDF 데이터 등을, 클라우드 시스템에 실시간으로 저장하여 둠으로써, 데이터 검색 및 추론이 용이하게 이루어지게끔 할 수 있다.
도 1은 본 발명의 실시 예들에 따른 대용량 RDF 데이터 관리 장치를 설명하기 위한 블록도,
도 2는 본 발명의 일 실시 예에 따른 RDF 데이터 저장 방식을 설명하기 위한 예시도,
도 3은 본 발명의 일 실시 예에 따른 테이블 선택 과정을 설명하기 위한 예시도,
도 4 내지 도 6은 본 발명의 일 실시 예에 따른 RDF 데이터 검색 방법을 설명하기 위한 예시도,
도 7은 본 발명의 일 실시 예에 따른 RDF 데이터 저장 과정을 설명하기 위한 흐름도,
도 8은 본 발명의 일 실시 예에 따른 데이터 추론 과정을 설명하기 위한 흐름도.
도 9는 본 발명의 일 실시 예에 따른 대용량 RDF 데이터 관리 장치를 설명하기 위한 블록도.
이하에서, 본 발명의 실시 예들을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
이하, 첨부되는 도면을 참조하여 본 발명의 실시 예들을 설명한다.
도 1은 본 발명의 실시 예들에 따른 대용량 RDF 데이터 관리 장치를 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명의 실시 예들에 따른 대용량 RDF 데이터 관리 장치(100)는, RDF 데이터 서비스 처리부(110), RDF 데이터 입력부(120), RDF 데이터 추론부(130) 및 RDF 데이터 저장 영역(140)을 포함한다. 실시 예에 따라, 전술한 구성 요소 중 적어도 하나는 생략될 수 있다.
RDF 데이터 서비스 처리부(110)는, 인터넷 등의 네트워크 상에 존재하는 사용자 또는 시스템으로부터 RDF 데이터와 관련된 요청을 수신하고, 수신된 요청을 RDF 데이터 입력부(120) 또는 RDF 데이터 추론부(130)로 전달한다. 이하에서, 설명의 편의를 위하여, 상기 RDF 데이터와 관련된 요청을 전송하는 네트워크 상의 사용자 또는 시스템을 요청 노드라 한다.
일 실시 예에서, 상기 요청은, HTTP(Hyper Text Tansfer Protocol) 기반으로 수신될 수 있으며, RDF 데이터 저장, 검색 및 추론 중 적어도 하나와 관련된 것일 수 있다.
상기 요청이 RDF 데이터 저장과 관련된 것인 경우, RDF 데이터 서비스 처리부(110)는, 해당 요청을 RDF 데이터 입력부(120)로 전달한다.
상기 요청이 RDF 데이터 검색 또는 추론과 관련된 것인 경우, RDF 데이터 서비스 처리부(110)는, 해당 요청을 RDF 데이터 추론부(130)로 전달한다. 그리고, RDF 데이터 추론부(130)로부터 수신되는 데이터(검색된 데이터 또는 추론된 데이터일 수 있다)를 요청 노드로 전송한다.
RDF 데이터 입력부(120)는, RDF 데이터 서비스 처리부(110)로부터 RDF 데이터 저장과 관련한 요청이 수신되는 경우, 저장할 데이터를 RDF 데이터 저장 영역(140)으로 전달한다. 상기 요청에는, 주어(subject)(S), 술어(predicate)(P) 및 목적어(object)(O)로 구성되는 트리플 형식의 RDF 데이터 또는 텍스트 형식의 원본 데이터(raw data)가 포함될 수 있다.
상기 요청에 트리플 형식의 RDF 데이터가 포함된 경우, RDF 데이터 입력부(120)는, 해당 RDF 데이터를 그대로 RDF 데이터 저장 영역(140)으로 전달할 수 있다.
상기 요청에 원본 데이터가 포함된 경우, RDF 데이터 입력부(120)는, 해당 원본 데이터를 기반으로 트리플 형식의 RDF 데이터를 생성하여 RDF 데이터 저장 영역(140)으로 전달할 수 있다. 이를 위하여, RDF 데이터 입력부(120)는, 텍스트 형식의 원본 데이터로부터 RDF 데이터를 생성하기 위한 위한 자연어 처리 모듈(미도시)을 포함할 수 있다. 자연어 처리 모듈은, 형태소 분석 및 문장 분석 등의 종래 이용되는 일반적인 자연어 처리 기술을 이용하여 텍스트 형식의 원본 데이터로부터 RDF 데이터를 생성할 수 있다.
RDF 데이터 저장 영역(140)은, RDF 데이터 저장을 위한 API를 이용하여, RDF 데이터 입력부(120)로부터 수신된 RDF 데이터들을 저장한다. RDF 데이터 저장 영역(140)에 저장되는 RDF 데이터는, 3개의 트리플 요소, 즉 주어, 술어 및 목적어로 구성되는 트리플 형식을 갖는다.
대용량 RDF 데이터의 관리를 위하여, 분산 노드에 RDF 데이터를 저장할 필요가 있고, 또한 분산 노드의 확장이 용이할 필요가 있다. 따라서, 본 발명의 일 실시 예에서, RDF 데이터 저장 영역(140)은, 대용량 데이터를 관리하기 위한 분산 데이터 베이스, 예를 들어 NoSQL(Not only Structured Query Language)을 기반으로 하는 다수의 RDF 데이터 저장부(140a~140e)를 포함할 수 있다. 따라서, 각각의 RDF 데이터 저장부(140a~140e)는, 클라우드 상에 존재하는 서로 다른 분산 노드에 위치할 수 있다.
본 발명의 실시 예들에서, RDF 데이터 저장 영역(140)은, RDF 데이터 입력부(120)로부터 수신된 RDF 데이터의 트리플 요소들의 배열 순서를 달리하는 새로운 RDF 데이터를 생성하여 저장할 수 있다. 이를 도 2를 참조하여 설명한다.
도 2는 본 발명의 일 실시 예에 따른 RDF 데이터 저장 방식을 설명하기 위한 예시도이다.
RDF 데이터 입력부(120)로부터 수신된 RDF 데이터는, 트리플 요소들이 주어-술어-목적어 순서로 배열된 'S1P1O1'이라고 가정하자. RDF 데이터 저장 영역(140)은, 해당 RDF 데이터(이하, 제 1 RDF 데이터라 함)를 제 1 테이블(SPO table)에 저장한다.
그리고, RDF 데이터 저장 영역(140)은, 제 1 RDF 데이터를 구성하는 트리플 요소들의 순서를 재배열하여 상기 제 1 테이블과는 다른 테이블에 저장한다. 예를 들어, 도 2에 도시된 바와 같이, RDF 데이터 저장 영역(140)은, 제 1 RDF 데이터를 술어-목적어-주어 순서로 배열한 제 2 RDF 데이터(P1O1S1)를 생성하고, 생성된 제 2 RDF 데이터(P1O1S1)를 제 2 테이블(POS table)에 저장한다.
마찬가지로, RDF 데이터 저장 영역(140)은, 제 1 RDF 데이터를 목적어-주어-술어 순서로 배열한 제 3 RDF 데이터(O1S1P1)를 생성하고, 생성된 제 2 RDF 데이터(O1S1P1)를 제 3 테이블(OSP table)에 저장한다.
여기서, 상기 제 1 내지 제 3 테이블은, 트리플 요소를 키(key)로서 가지며, 키만 가지는 테이블(key only table)이다. 그리고, 상기 테이블들은, NoSQL 기반의 분산 데이터 노드에 나누어 저장될 수 있다.
트리플 요소들의 순서를 달리 배열한 테이블들은, RDF 데이터 검색이 효율적으로 이루어질 수 있도록 하는데, 이는 도 3 내지 도 6을 참조하여 후술한다.
다시 도 1을 참조하여 설명하면, RDF 데이터 저장 영역(140)은, RDF 데이터를 검색하는 데 이용되는 API를 제공할 수 있다. 상기 API의 일 예를 <표 1>에 나타내었다.
입력 결과
Subject, Predicate Object
Predicate, Object Subject
Object, Subject Predicate
Subject Predicate, Object
Predicate Object, Subject
Object Subject, Predicate
< 표 1>에 나타낸 바와 같이, RDF 데이터 저장 영역(140)은, RDF 데이터 검색을 위한 API를 제공하며, RDF 데이터 추론부(130)는, 해당 API를 이용하여 RDF 데이터 검색을 수행할 수 있다.
RDF 데이터 추론부(130)는, RDF 데이터 서비스 처리부(110)로부터 RDF 데이터 검색과 관련한 요청이 수신되는 경우, RDF 데이터 저장 영역(140)에서 제공하는 API(Application Programming Interface)를 이용하여 RDF 데이터 검색을 수행한다. 검색된 RDF 데이터는, 요청 노드로의 전송을 위하여 RDF 데이터 서비스 처리부(110)로 전달된다.
RDF 데이터 추론부(130)는, RDF 데이터 서비스 처리부(110)로부터 RDF 데이터 추론과 관련한 요청이 수신되는 경우, RDF 데이터 저장 영역(140)에서 제공하는 API를 이용하여 RDF 데이터 검색을 수행하고, 검색된 RDF 데이터를 기반으로 데이터 추론을 수행한다. 상기 추론에는, 종래 일반적으로 이용되는 각종 데이터 추론 기법, 예를 들어 Rete 알고리즘이 이용될 수 있다. 추론된 데이터는, 요청 노드로의 전송을 위하여 RDF 데이터 서비스 처리부(110)로 전달된다.
상기 RDF 검색 및 추론과 관련한 요청에는, RDF schema 등의 트리플 형식의 질의가 포함될 수 있으며, RDF 데이터 추론부(130)는, 해당 질의에 포함된 트리플 요소들을 기반으로 RDF 데이터 검색을 수행할 수 있다. 예를 들어, 상기 질의에 포함된 트리플 요소들은 상수(constant) 또는 변수(variable) 값을 가질 수 있으며, RDF 데이터 추론부(130)는, 상수로 확인되는 하나 또는 두 개의 트리플 요소를 입력 값으로 하여 RDF 데이터 검색을 수행할 수 있다. RDF 데이터 검색을 위하여는, 먼저 테이블 선택이 이루어져야 하는 데, 이를 도 3을 참조하여 설명한다.
도 3은 본 발명의 일 실시 예에 따른 테이블 선택 과정을 설명하기 위한 예시도이다.
주어(S), 술어(P) 및 목적어(O)를 포함하는 트리플 형식의 질의가 입력되면, RDF 데이터 추론부(130)는, RDF 데이터 검색을 위한 테이블을 선택한다. 이를 위하여 RDF 데이터 추론부(130)는, 질의를 구성하는 트리플 요소들 중 상수인 트리플 요소를 확인한다. 그리고, 상수로 확인된 트리플 요소를 기반으로 테이블을 선택한다. 예를 들어, RDF 데이터 추론부(130)는, 상수로 확인된 트리플 요소가 키의 앞부분에 위치하는 테이블을 선택한다.
예를 들어, 질의를 구성하는 트리플 요소 중 상수인 트리플 요소가, 주어이거나 주어 및 술어인 경우, RDF 데이터 추론부(130)는, 주어가 키의 맨 앞에 위치하는 테이블인 제 1 테이블(SPO table)을 선택한다.
만약, 질의를 구성하는 트리플 요소 중 상수인 트리플 요소가 술어이거나 술어 및 목적어인 경우, RDF 데이터 추론부(130)는, 술어가 키의 맨 앞에 위치하는 테이블인 제 2 테이블(POS table)을 선택한다.
만약, 질의를 구성하는 트리플 요소 중 상수인 트리플 요소가 목적어이거나 목적어 및 주어인 경우, RDF 데이터 추론부(130)는, 목적어가 키의 맨 앞에 위치하는 테이블인 제 3 테이블(OSP table)을 선택한다.
전술한 바와 같이, 본 발명의 실시 예들에서, RDF 데이터 저장 영역(140)은, NoSQL을 기반으로 구성될 수 있다. NoSQL 기반의 테이블에서는, 키가 사전식 순서(lexicographical order)로 정렬된다. 따라서, RDF 데이터 검색 시에 키의 범위를 지정하면, 전체 테이블을 대상으로 검색하는 경우에 비하여 검색 속도의 향상을 이룰 수 있다. 이를 도 4 내지 도 6을 참조하여 설명한다.
도 4 내지 도 6은 본 발명의 일 실시 예에 따른 RDF 데이터 검색 방법을 설명하기 위한 예시도이다.
먼저, 도 4를 참조하는 실시 예에서, 질의를 구성하는 트리플 요소들 중 주어(S1)와 술어(P2)가 상수이고, 목적어(O?)는 변수라 가정한다.
이러한 경우, RDF 데이터 추론부(130)는, 상수에 해당하는 트리플 요소들 즉, S1 및 P2를 RDF 데이터 검색을 위한 키로 이용할 수 있다. 이러한 경우, 도 3을 참조하여 전술한 바와 같이, 검색을 위한 테이블로서 제 1 테이블(SPO table)이 선택된다.
RDF 데이터 검색 수행 시에, RDF 데이터 추론부(130)는, S1P2를 포함하는 모든 RDF 데이터가 검색되도록 입력 값(키)의 범위("S1P2", "~S1P2")를 결정한다. 그리고 결정된 범위에 따른 검색 명령을 실행함으로써, S1P2가 포함된 RDF 데이터들{S1P2O1, S1P2O2, S1P2O3}을 검색한다.
도 5 및 도 6을 참조하는 실시 예에서도 동일한 과정에 따라 테이블 선택 및 RDF 데이터 검색이 이루어진다.
즉, 도 5를 참조하는 실시 예에서는, 주어(S1)와 목적어(O2)가 상수이고, 술어(P?)가 변수이므로, RDF 데이터 추론부(130)는, 제 3 테이블(OSP table)을 선택하고, S1O2를 포함하는 모든 RDF 데이터가 검색되도록 입력 값의 범위("O2S1", "~O2S1")를 결정한다.
도 6을 참조하는 실시 예에서는, 술어(P2)가 상수이고, 주어(S?)와 목적어(O?)가 변수이므로, RDF 데이터 추론부(130)는, 제 2 테이블(POS table)을 선택하고, P2를 포함하는 모든 RDF 데이터가 검색되도록 입력 값의 범위("P2", "~P2")를 결정한다.
RDF 데이터 검색을 위한 종래의 방법은, 특정 트리플 요소를 포함하는 RDF 데이터 검색을 위하여, RDF 데이터를 저장하는 테이블 전체에 대한 검색을 수행하여야 하였으므로, 검색 시간이 상당히 소모되는 문제가 있다.
그러나, 본 발명의 실시 예에 따르면, RDF 데이터의 저장 및 검색이 사전식 순서로 이루어지기 때문에, 검색 구간을 지정하여 원하는 RDF 데이터를 빠르게 검색할 수 있다. 즉, 본 발명의 실시 예에 따르면, 불필요한 데이터에 대한 접근이 없어진다.
또한, 키를 메모리에 적재한 상태에서 동작하는 NoSQL의 특성을 기반으로, RDF 데이터 검색을 키만을 가지고 수행하기 때문에, 데이터 검색 및 추론의 성능 향상을 이룰 수 있다.
도 7은 본 발명의 일 실시 예에 따른 RDF 데이터 저장 과정을 설명하기 위한 흐름도이다. 실시 예에 따라, 단계(701) 내지 단계(707) 중 적어도 하나는 생략될 수 있다.
단계(701)에서, RDF 데이터 관리 장치는, 제 1 배열 순서를 갖는 트리플 요소들로 구성된 제 1 RDF 데이터를 입력받는다. 상기 제 1 배열 순서는, 예를 들어, 주어-술어-목적어 순서일 수 있다. 실시 예에 따라, RDF 데이터 관리 장치는, 제 1 RDF 데이터를 입력받는 대신, 텍스트 형식의 원본 데이터를 입력받고 해당 원본 데이터로부터 상기 제 1 RDF 데이터를 생성할 수도 있다.
단계(703)에서, RDF 데이터 관리 장치는, 상기 제 1 RDF 데이터를 제 1 테이블에 저장한다.
단계(705)에서, RDF 데이터 관리 장치는, 상기 제 1 RDF 데이터를 구성하는 트리플 요소들이 제 n 배열 순서를 갖도록 재배열하여, 상기 재배열된 트리플 요소들로 구성된 제 n RDF 데이터를 생성한다. 여기서, n은, 2 이상의 자연수일 수 있다. 예를 들어, RDF 데이터 관리 장치는, 트리플 요소들이 주어-술어-목적어 순서로 배열된 제 1 RDF 데이터의 트리플 요소들을 재배열하여, 트리플 요소들이 술어-목적어-주어 순서로 배열된 제 2 RDF 데이터 및 트리플 요소들이 목적어-주어-술어 순서로 배열된 제 3 RDF 데이터를 생성한다.
단계(707)에서, RDF 데이터 관리 장치는, 상기 생성된 제 n RDF 데이터를 제 n 테이블에 저장한다. 즉, RDF 데이터 관리 장치는, 제 2 RDF 데이터를 제 2 테이블에 저장하고, 제 3 RDF 데이터를 제 3 RDF 테이블에 저장한다.
상기 제 1 및 제 n 테이블은, NoSQL을 기반으로 하며, RDF 데이터들을 사전식 순서로 저장할 수 있다. 그리고, 상기 제 1 및 제 n 테이블은, 트리플 요소들을 키로서 가지며, 키로만 구성된 테이블일 수 있다.
도 8은 본 발명의 일 실시 예에 따른 데이터 추론 과정을 설명하기 위한 흐름도이다. 실시 예에 따라, 단계(801) 내지 단계(807) 중 적어도 하나는 생략될 수 있다.
단계(801)에서, RDF 데이터 관리 장치는, 데이터 추론을 위한 질의를 입력 받는다. 상기 질의는 요청 노드로부터 입력될 수 있으며, RDF 트리플 형식을 가질 수 있다. 예를 들어, 상기 질의는, RDF schema 형식일 수 있다.
단계(803)에서, RDF 데이터 관리 장치는, 질의에 포함된 트리플 요소들 중 상수에 해당하는 트리플 요소를 확인한 후, 단계(805)로 진행한다.
단계(805)에서, RDF 데이터 관리 장치는, 상수로 확인된 트리플 요소들을 기반으로 데이터 검색에 이용할 테이블을 선택한다.
예를 들어, 상수로 확인된 트리플 요소가 주어이거나 주어 및 술어인 경우에는, 주어가 키의 맨 앞에 위치하는 테이블, 즉 제 1 테이블(SPO)을 데이터 검색에 이용할 테이블로 선택한다. 만약, 상수로 확인된 트리플 요소가 술어이거나 술어 및 목적어인 경우에는, 술어가 키의 맨 앞에 위치하는 테이블, 즉 제 2 테이블(POS)을 데이터 검색에 이용할 테이블로 선택한다. 만약, 상수로 확인된 트리플 요소가 목적어이거나 목적어 및 주어인 경우에는, 목적어가 키의 맨 앞에 위치하는 테이블, 즉 제 3 테이블(OSP)를 데이터 검색에 이용할 테이블로 선택한다.
단계(807)에서, RDF 데이터 관리 장치는, 선택된 테이블로부터 RDF 데이터를 검색한다. RDF 데이터 검색을 위하여, RDF 데이터 관리 장치는, 상수로 확인된 트리플 요소들을 기반으로 입력 값으로 이용할 키의 범위를 결정하고, 결정된 범위에 따라 RDF 데이터를 사전식 순서로 검색할 수 있다.
단계(809)에서, RDF 데이터 관리 장치는, 검색된 RDF 데이터 및 입력된 질의를 기반으로 데이터 추론을 수행한다. 그리고, RDF 데이터 관리 장치는, 추론된 데이터를 요청 노드에 전송한다. 실시 예에 따라, RDF 데이터 관리 장치는, 데이터 추론을 수행하지 않고, 검색된 RDF 데이터를 요청 노드에 전송할 수도 있다.
본 발명의 실시 예들은, 컴퓨터 시스템 내에, 예를 들어, 컴퓨터 판독가능 기록 매체로 구현될 수 있다. 도 9에 도시된 바와 같이, 컴퓨터 시스템(900)은 하나 이상의 프로세서(910), 메모리(920), 저장부(930), 사용자 인터페이스 입력부(940) 및 사용자 인터페이스 출력부(950) 중 적어도 하나 이상의 요소를 포함할 수 있으며, 이들은 버스(960)를 통해 서로 통신할 수 있다. 또한, 컴퓨터 시스템(900)은 네트워크에 접속하기 위한 네트워크 인터페이스(970)를 또한 포함할 수 있다. 프로세서(910)는 메모리(920) 및/또는 저장소(930)에 저장된 처리 명령어를 실행시키는 CPU 또는 반도체 소자일 수 있다. 메모리(920) 및 저장부(930)는 다양한 유형의 휘발성/비휘발성 기억 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(924) 및 RAM(925)을 포함할 수 있다.
이에 따라, 본 발명의 실시 예들은 컴퓨터로 구현되는 방법 또는 컴퓨터 실행 가능 명령어들이 저장된 비휘발성 컴퓨터 기록 매체로 구현될 수 있다. 상기 명령어들은 프로세서에 의해 실행될 때 본 발명의 적어도 일 실시 예에 따른 방법을 수행할 수 있다.
이상에서 본 발명의 실시 예들을 설명함에 있어, 제 1 내지 제 3 테이블의 세 개의 테이블을 이용하는 실시 예에 대하여 설명하였으나, 실시 예에 따라, 트리플 요소들이 주어-목적어-술어 순서로 배열된 SOP 테이블, 트리플 요소들이 술어-주어-목적어 순서로 배열된 PSO 테이블 및 트리플 요소들이 목적어-술어-주어 순서로 배열된 OPS 테이블 등이 이용될 수 있다.

Claims (17)

  1. 대용량 RDF 데이터 관리 방법으로서,
    제 1 배열 순서를 갖는 트리플 요소들로 구성된 제 1 RDF 데이터를 제 1 테이블에 저장하는 단계;
    상기 제 1 RDF 데이터를 구성하는 트리플 요소들이 제 n(여기서, n은 2 이상의 자연수) 배열 순서를 갖도록 재배열하여, 상기 재배열된 트리플 요소들로 구성된 제 n RDF 데이터를 생성하는 단계; 및
    상기 제 n RDF 데이터를 제 n 테이블에 저장하는 단계
    를 포함하는 RDF 데이터 관리 방법.
  2. 제 1 항에 있어서, 상기 제 n RDF 데이터를 생성하는 단계는,
    트리플 요소들이 주어(subject)-술어(predicate)-목적어(object) 순서로 배열된 상기 제 1 RDF 데이터의 트리플 요소들을 재배열하여, 상기 트리플 요소들이 술어-목적어-주어 순서로 배열된 제 2 RDF 데이터 및 목적어-주어-술어 순서로 배열된 제 3 RDF 데이터를 생성하는 단계
    를 포함하는 RDF 데이터 관리 방법.
  3. 제 1 항에 있어서, 상기 제 1 내지 제 n 테이블은,
    RDF 데이터를 사전식 순서(lexicographical order)로 저장하는
    RDF 데이터 관리 방법.
  4. 제 1 항에 있어서, 상기 제 1 내지 제 n 테이블은,
    트리플 요소들을 키(key)로서 갖는 테이블인
    RDF 데이터 관리 방법.
  5. 제 2 항에 있어서,
    데이터 검색을 위한 트리플 형식의 질의를 입력받고, 상기 질의에 포함된 트리플 요소들 중 상수인 트리플 요소들을 확인하는 단계;
    상기 상수로 확인된 트리플 요소들을 기반으로 상기 제 1 내지 제 n 테이블 중 어느 하나의 테이블을 선택하는 단계; 및
    상기 선택된 테이블로부터 상기 상수로 확인된 트리플 요소들을 키로 갖는 RDF 데이터를 검색하는 단계
    를 더 포함하는 RDF 데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 검색된 RDF 데이터 및 상기 입력된 질의를 기반으로 데이터 추론을 수행하는 단계
    를 더 포함하는 RDF 데이터 관리 방법.
  7. 제 5 항에 있어서, 상기 RDF 데이터를 검색하는 단계는,
    상기 상수로 확인된 트리플 요소들을 기반으로 검색할 키의 범위를 결정하고, 결정된 범위에 따라 RDF 데이터를 사전식 순서(lexicographical order)로 검색하는 단계
    를 포함하는 RDF 데이터 관리 방법.
  8. 제 5 항에 있어서, 상기 테이블을 선택하는 단계는,
    상기 상수로 확인된 트리플 요소들이 주어이거나 주어 및 술어인 경우 상기 제 1 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 술어이거나 술어 및 목적어인 경우 제 2 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 목적어이거나 목적어 및 주어인 경우 제 3 테이블을 선택하는 단계
    를 포함하는 RDF 데이터 관리 방법.
  9. 대용량 RDF 데이터 관리 장치로서,
    제 1 배열 순서를 갖는 트리플 요소들로 구성된 제 1 RDF 데이터를 입력받는 RDF 데이터 입력부; 및
    상기 제 1 RDF 데이터를 제 1 테이블에 저장하고, 상기 제 1 RDF 데이터를 구성하는 트리플 요소들이 제 n(여기서, n은 2이상의 자연수) 배열 순서를 갖도록 재배열하여 상기 재배열된 트리플 요소들로 구성된 제 n RDF 데이터를 생성하며, 상기 생성된 제 n RDF 데이터를 제 n 테이블에 저장하는 RDF 데이터 저장 영역
    을 포함하는 RDF 데이터 관리 장치.
  10. 제 9 항에 있어서, 상기 RDF 데이터 저장 영역은,
    트리플 요소들이 주어(subject)-술어(predicate)-목적어(object) 순서로 배열된 상기 제 1 RDF 데이터의 트리플 요소들을 재배열하여, 상기 트리플 요소들이 술어-목적어-주어 순서로 배열된 제 2 RDF 데이터 및 목적어-주어-술어 순서로 배열된 제 3 RDF 데이터를 생성하는
    RDF 데이터 관리 장치.
  11. 제 9 항에 있어서, 상기 제 1 내지 제 n 테이블은,
    RDF 데이터를 사전식 순서(lexicographical order)로 저장하는
    RDF 데이터 관리 장치.
  12. 제 9 항에 있어서, 상기 제 1 내지 제 n 테이블은,
    트리플 요소들을 키(key)로서 갖는 테이블인
    RDF 데이터 관리 장치.
  13. 제 10 항에 있어서,
    데이터 검색을 위한 트리플 형식의 질의를 입력받고, 상기 질의에 포함된 트리플 요소들 중 상수인 트리플 요소들을 확인하며, 상기 상수로 확인된 트리플 요소들을 기반으로 상기 제 1 내지 제 n 테이블 중 어느 하나의 테이블을 선택하고, 상기 선택된 테이블로부터 상기 상수로 확인된 트리플 요소들을 키로 갖는 RDF 데이터를 검색하는 RDF 데이터 추론부
    를 더 포함하는 RDF 데이터 관리 장치.
  14. 제 13 항에 있어서, 상기 RDF 데이터 추론부는,
    상기 검색된 RDF 데이터 및 상기 입력된 질의를 기반으로 데이터 추론을 수행하는
    RDF 데이터 관리 장치.
  15. 제 13 항에 있어서, 상기 RDF 데이터 추론부는,
    상기 상수로 확인된 트리플 요소들을 기반으로 검색할 키의 범위를 결정하고, 결정된 범위에 따라 RDF 데이터를 사전식 순서(lexicographical order)로 검색하는
    RDF 데이터 관리 장치.
  16. 제 13 항에 있어서, 상기 RDF 데이터 추론부는,
    상기 상수로 확인된 트리플 요소들이 주어이거나 주어 및 술어인 경우 상기 제 1 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 술어이거나 술어 및 목적어인 경우 제 2 테이블을 선택하고, 상기 상수로 확인된 트리플 요소들이 목적어이거나 목적어 및 주어인 경우 제 3 테이블을 선택하는
    RDF 데이터 관리 장치.
  17. 제 9 항에 있어서, 상기 제 1 내지 제 n 테이블은,
    NoSQL(Not only Structured Query Language) 기반의 분산 데이터 노드에 나누어 저장되는
    RDF 데이터 관리 장치.
KR1020140114327A 2014-08-29 2014-08-29 대용량 rdf 데이터 관리 방법 및 장치 KR20160027455A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140114327A KR20160027455A (ko) 2014-08-29 2014-08-29 대용량 rdf 데이터 관리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140114327A KR20160027455A (ko) 2014-08-29 2014-08-29 대용량 rdf 데이터 관리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20160027455A true KR20160027455A (ko) 2016-03-10

Family

ID=55538826

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140114327A KR20160027455A (ko) 2014-08-29 2014-08-29 대용량 rdf 데이터 관리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20160027455A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101718119B1 (ko) * 2016-04-22 2017-03-21 숭실대학교산학협력단 SparkSQL 기반의 SPARQL 질의 처리 수행 시스템
KR101854284B1 (ko) * 2016-12-26 2018-05-03 충북대학교 산학협력단 조인 비용 및 통신 비용 절감을 위한 분산 rdf 질의 처리 시스템
KR20220094797A (ko) * 2020-12-29 2022-07-06 케이웨어 (주) 메타정보를 관리하는 데이터 관리 서버 및 그 제어방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101718119B1 (ko) * 2016-04-22 2017-03-21 숭실대학교산학협력단 SparkSQL 기반의 SPARQL 질의 처리 수행 시스템
KR101854284B1 (ko) * 2016-12-26 2018-05-03 충북대학교 산학협력단 조인 비용 및 통신 비용 절감을 위한 분산 rdf 질의 처리 시스템
KR20220094797A (ko) * 2020-12-29 2022-07-06 케이웨어 (주) 메타정보를 관리하는 데이터 관리 서버 및 그 제어방법

Similar Documents

Publication Publication Date Title
US11593364B2 (en) Systems and methods for question-and-answer searching using a cache
US11763175B2 (en) Systems and methods for semantic inference and reasoning
EP2674875B1 (en) Method, controller, program and data storage system for performing reconciliation processing
Das et al. A Tale of Two Graphs: Property Graphs as RDF in Oracle.
JP4352079B2 (ja) 分散データベースから情報を検索するシステム、装置、および方法
JP6014725B2 (ja) 単文/複文構造の自然言語クエリに対する検索および情報提供方法並びにシステム
US8661004B2 (en) Representing incomplete and uncertain information in graph data
US20140201203A1 (en) System, method and device for providing an automated electronic researcher
JP2014194766A (ja) オントロジに基づく問い合わせ方法及び装置
Varfolomeyev et al. Smart personal assistant for historical tourism
KR101133993B1 (ko) 추론 검증 및 점증적 추론을 위한 트리플 저장 방법 및 장치 그리고 이에 적합한 추론 의존성 색인 방법 및 장치
US20120084299A1 (en) Matching information of chemical substance
KR20240144131A (ko) 질의 응답 과정에 대한 문맥 설명 및 명확화
KR101854284B1 (ko) 조인 비용 및 통신 비용 절감을 위한 분산 rdf 질의 처리 시스템
KR20160027455A (ko) 대용량 rdf 데이터 관리 방법 및 장치
Jayaram et al. Towards a query-by-example system for knowledge graphs
CN110309214B (zh) 一种指令执行方法及其设备、存储介质、服务器
Marx et al. Exploring term networks for semantic search over RDF knowledge graphs
CN106021306A (zh) 基于本体匹配的案例搜索系统
JP4854542B2 (ja) 文書検索システム及び文書検索方法
Vigneshwari et al. Personalized cross ontological framework for secured document retrieval in the cloud
KR101515304B1 (ko) 하둡 기반의 리듀스-사이드 조인 처리 시스템의 리듀스-사이드 조인 질의 처리 방법
US11550777B2 (en) Determining metadata of a dataset
Kuznetsov Scientific data integration system in the linked open data space
McGlothlin et al. Efficient RDF data management including provenance and uncertainty

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination