KR20150028934A - 데이터 검색 방법 및 장치 - Google Patents

데이터 검색 방법 및 장치 Download PDF

Info

Publication number
KR20150028934A
KR20150028934A KR20130107503A KR20130107503A KR20150028934A KR 20150028934 A KR20150028934 A KR 20150028934A KR 20130107503 A KR20130107503 A KR 20130107503A KR 20130107503 A KR20130107503 A KR 20130107503A KR 20150028934 A KR20150028934 A KR 20150028934A
Authority
KR
South Korea
Prior art keywords
graph
triple data
subgraph
index
query
Prior art date
Application number
KR20130107503A
Other languages
English (en)
Other versions
KR102104496B1 (ko
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 KR1020130107503A priority Critical patent/KR102104496B1/ko
Publication of KR20150028934A publication Critical patent/KR20150028934A/ko
Application granted granted Critical
Publication of KR102104496B1 publication Critical patent/KR102104496B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F17/271

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)

Abstract

본 발명의 실시예는 RDF(Resource Description Framework) 데이터를 검색하는 데에 소요되는 시간을 감소시킬 수 있는 데이터 검색 방법 및 장치에 관한 것으로서, 노드(node) 및 에지(edge)를 포함하는 그래프(graph)에 대응되는 적어도 하나 이상의 트리플 데이터(triple data)를 수신하는 단계, 트리플 데이터를 이용하여 그래프의 서브그래프에 대한 인덱스를 생성하는 단계, 그래프에서 검색할 질의 그래프에 대응되는 질의 트리플 데이터를 수신하는 단계, 질의 트리플 데이터 및 생성된 인덱스를 이용하여 트리플 데이터를 필터링하는 단계, 필터링된 트리플 데이터를 이용하여 질의 트리플 데이터를 검색하는 단계, 및 검색된 결과를 출력하는 단계를 포함하는 데이터 검색 방법을 제공할 수 있다.

Description

데이터 검색 방법 및 장치{METHOD AND APPARATUS OF SEARCHING DATA}
본 발명의 실시예는 데이터 검색 방법 및 장치에 관한 것으로서, 보다 상세하게는 RDF(Resource Description Framework) 데이터를 검색하는 데에 소요되는 시간을 감소시킬 수 있는 데이터 검색 방법 및 장치에 관한 것이다.
시멘틱 웹(Semantic Web)에 대한 표준으로서 RDF(Resource Description Framework)가 소개되었다. RDF 형식의 데이터는 유연성을 갖고 스키마에 제한이 없는 데이터 기술(description)이 필요한 분야에서 널리 이용되고 있다. 따라서, RDF 형식의 데이터는 그래프 형태의 데이터 기술이 필요한 바이오인포매틱스(bioinformatics), 메타데이터, 위키피디아, 소셜 네트워크 등과 같은 분야에서 대용량의 데이터를 기술하는 데에 널리 이용되고 있다.
또한, 대용량으로 축적된 RDF 데이터에 대한 질의어로서 SPARQL 표준이 소개되었다. 이에 따라 RDF 데이터에 대한 SPARQL 질의를 처리하는 방법에 대한 관심이 증가되고 있다.
대부분의 RDF 저장소들은 데이터를 주어, 동사 및 목적어에 해당하는 세 개의 정보(Subject, Predicate, Object)를 포함하는 트리플(triple)을 하나의 단위로 저장한다. 따라서, RDF 저장소에 SPARQL 질의(query)가 입력되면, 질의를 처리하기 위해 트리플 단위로 저장된 데이터를 이용하여 다수의 조인(join) 연산이 수행될 수 있다. 조인 연산은 다른 종류의 연산에 비해 시간이 많이 소요될 수 있다. 따라서, 조인 연산의 속도는 RDF 저장소의 질의 처리 속도를 좌우할 수 있다.
그래프 형태의 데이터에서의 질의를 처리할 때 수행되는 조인 연산의 수행 시간을 줄이기 위해서는 조인 연산이 수행되는 횟수를 줄이거나, 조인 연산의 효율을 향상시키거나, 조인 연산의 대상이 되는 데이터의 양을 줄이는 방법이 이용될 수 있다.
조인 연산이 수행되는 횟수를 줄이는 방법은 Jena 또는 Oracle에서 주로 이용되는 방법이다. 상기 방법에서는 자주 사용되는 패턴들에 대해 조인을 수행한 결과로서 생성된 테이블을 미리 별도로 저장해 놓을 수 있다. 그러나 미리 조인을 수행할 범위를 결정하기가 매우 어려우며, 널(null) 값과 다중(multi) 값이 발생되어 연산의 성능이 저하될 수 있다.
조인 연산의 효율을 향상시키는 방법은 SW-Store, Hexastore, RDF-3X에서 주로 이용되는 방법이다. 상기 방법에서는 각각의 트리플에 대해 SPO(Subject-Predicate-Object), PSO(Predicate-Subject-Object), OPS(Object-Predicate-Subject) 등의 여러 인덱스를 미리 생성할 수 있다. 이로써 트리플에 대한 접근 속도가 향상될 수 있다. 또한, 이들에 대해 병합 조인(merge join)이 수행되는 경우 보다 효율적으로 조인 연산이 수행될 수 있다.
조인 연산의 대상이 되는 데이터의 양을 줄이는 방법에서는, U-SIP(Ubiquitous Sideways Information Passing)와 같은 필터를 이용하여 조인 연산의 대상이 되지 않는 데이터를 입력 데이터에서 제외시킬 수 있다. RDF-3X에서도 이와 같은 방법이 이용되고 있다.
이외에도 GRIN index, DOGMA, PIG, gStore 등과 같은 SPARQL 질의 처리 시스템들이 인덱스 기법들을 제시하고 있다. 그러나, 이러한 시스템에서의 인덱스는 검색 범위를 줄이는 역할을 하는 것으로서, 조인 연산의 대상이 되는 데이터의 양을 줄이는 데에 적용하기에는 한계가 있을 수 있다.
본 발명의 실시예는 RDF(Resource Description Framework) 데이터를 검색하는 데에 소요되는 시간을 감소시킬 수 있는 데이터 검색 방법 및 장치를 제공할 수 있다.
본 발명의 실시예는 그래프 형태의 데이터에서의 질의를 처리할 때 수행되는 조인 연산의 수행 시간을 감소시킬 수 있는 데이터 검색 방법 및 장치를 제공할 수 있다.
본 발명의 실시예는 그래프 형태의 데이터에서의 질의를 처리할 때 수행되는 조인 연산의 대상이 되는 데이터의 양을 감소시킬 수 있는 데이터 검색 방법 및 장치를 제공할 수 있다.
본 발명의 실시예는 그래프 형태의 데이터를 이용한 조인 연산이 수행되는 속도를 향상시킬 수 있는 데이터 검색 방법 및 장치를 제공할 수 있다.
본 발명의 실시예는 노드(node) 및 에지(edge)를 포함하는 그래프의 구조에 대한 정보를 이용하여, 조인 연산의 대상이 되는 그래프 형태의 데이터의 양을 감소시킬 수 있는 데이터 검색 방법 및 장치를 제공할 수 있다.
본 발명의 실시예에 따른 데이터 검색 방법은, 노드(node) 및 에지(edge)를 포함하는 그래프(graph)에 대응되는 적어도 하나 이상의 트리플 데이터(triple data)를 수신하는 단계, 상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계, 상기 그래프에서 검색할 질의 그래프에 대응되는 질의 트리플 데이터를 수신하는 단계, 상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링하는 단계, 상기 필터링된 트리플 데이터를 이용하여 상기 질의 트리플 데이터를 검색하는 단계, 및 상기 검색된 결과를 출력하는 단계를 포함할 수 있다.
또한, 상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계는, 상기 트리플 데이터를 이용하여 상기 그래프를 재생성하는 단계, 상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계, 상기 선택된 서브그래프에 대한 상기 인덱스를 생성하는 단계, 및 상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계 내지 상기 선택된 서브그래프에 대한 인덱스를 생성하는 단계를 반복하는 단계를 포함할 수 있다.
또한, 상기 선택된 서브그래프에 대한 인덱스를 생성하는 단계는, 상기 그래프에서 상기 선택된 서브그래프가 매칭되는 횟수를 산출하는 단계, 및 상기 산출된 횟수가 기준 횟수보다 크거나 같은 경우 상기 선택된 서브그래프에 대한 상기 인덱스를 생성하는 단계를 포함할 수 있다.
또한, 상기 반복하는 단계는, 상기 그래프에 포함되고 상기 선택된 서브그래프와 서로 다른 서브그래프에 대해, 상기 서브그래프를 선택하는 단계 내지 상기 인덱스를 생성하는 단계를 반복하는 단계를 포함할 수 있다.
또한, 상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계는, 상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 노드에 대응되는 노드를 포함하는 목록을 생성하는 단계를 포함할 수 있다.
또한, 상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계는, 상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 목록을 생성하는 단계를 포함할 수 있다.
또한, 상기 서브그래프는 상기 그래프에 포함된 상기 에지 중에서 적어도 2개 이상의 에지를 포함할 수 있다.
또한, 상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링하는 단계는, 상기 질의 트리플 데이터를 이용하여 상기 질의 그래프를 재생성하는 단계, 상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터에 대한 조인 연산을 수행하는 순서를 결정하는 단계, 및 상기 생성된 인덱스를 이용하여 상기 각각의 조인 연산의 대상이 되는 상기 트리플 데이터를 필터링하는 단계를 포함할 수 있다.
또한, 상기 생성된 인덱스를 이용하여 상기 각각의 조인 연산의 대상이 되는 상기 트리플 데이터를 필터링하는 단계는, 상기 생성된 인덱스를 이용하여, 상기 그래프에 포함된 상기 노드 중에서 상기 질의 그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 적어도 하나 이상의 대응 노드 목록을 생성하는 단계, 상기 각각의 대응 노드 목록에 공통적으로 포함된 노드를 포함하는 공통 노드 목록을 생성하는 단계, 및 상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터 중에서, 상기 공통 노드 목록에 포함된 각각의 상기 노드에 대응되는 상기 트리플 데이터를 제외한 나머지 트리플 데이터를 필터링하는 단계를 포함할 수 있다.
또한, 상기 필터링된 트리플 데이터를 이용하여 상기 질의 트리플 데이터를 검색하는 단계는, 상기 필터링된 트리플 데이터를 이용하여 상기 조인 연산을 수행하는 단계, 및 상기 조인 연산이 수행된 결과에서 상기 질의 트리플 데이터를 검색하는 단계를 포함할 수 있다.
본 발명의 실시예에 따른 데이터 검색 장치는, 노드(node) 및 에지(edge)를 포함하는 그래프(graph)에 대응되는 적어도 하나 이상의 트리플 데이터(triple data)를 수신하고, 상기 그래프에서 검색할 질의 그래프에 대응되는 질의 트리플 데이터를 수신하는 입력부, 상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 인덱스 생성부, 상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링하는 필터링부, 상기 필터링된 트리플 데이터를 이용하여 상기 질의 트리플 데이터를 검색하는 검색부, 및 상기 검색된 결과를 출력하는 출력부를 포함할 수 있다.
또한, 상기 인덱스 생성부는 상기 트리플 데이터를 이용하여 상기 그래프를 재생성하고, 상기 인덱스 생성부는 상기 그래프에 포함된 임의의 서브그래프를 선택하고, 상기 인덱스 생성부는 상기 선택된 서브그래프에 대한 인덱스를 생성하고, 상기 인덱스 생성부는 상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계 내지 상기 선택된 서브그래프에 대한 상기 인덱스를 생성하는 단계를 반복할 수 있다.
또한, 상기 인덱스 생성부는 상기 그래프에서 상기 선택된 서브그래프가 매칭되는 횟수를 산출하고, 상기 인덱스 생성부는 상기 산출된 횟수가 기준 횟수보다 크거나 같은 경우 상기 선택된 서브그래프에 대한 상기 인덱스를 생성할 수 있다.
또한, 상기 인덱스 생성부는, 상기 그래프에 포함되고 상기 선택된 서브그래프와 서로 다른 서브그래프에 대해, 상기 서브그래프를 선택하는 단계 내지 상기 인덱스를 생성하는 단계를 반복할 수 있다.
또한, 상기 인덱스는, 상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 노드에 대응되는 노드를 포함하는 목록을 포함할 수 있다.
또한, 상기 인덱스는, 상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 목록을 포함할 수 있다.
또한, 상기 서브그래프는 상기 그래프에 포함된 상기 에지 중에서 적어도 2개 이상의 에지를 포함할 수 있다.
또한, 상기 필터링부는 상기 질의 트리플 데이터를 이용하여 상기 질의 그래프를 재생성하고, 상기 필터링부는 상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터에 대한 조인 연산을 수행하는 순서를 결정하고, 상기 필터링부는 상기 생성된 인덱스를 이용하여 상기 각각의 조인 연산의 대상이 되는 상기 트리플 데이터를 필터링할 수 있다.
또한, 상기 필터링부는 상기 생성된 인덱스를 이용하여, 상기 그래프에 포함된 상기 노드 중에서 상기 질의 그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 적어도 하나 이상의 대응 노드 목록을 생성하고, 상기 필터링부는 상기 각각의 대응 노드 목록에 공통적으로 포함된 노드를 포함하는 공통 노드 목록을 생성하고, 상기 필터링부는 상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터 중에서, 상기 공통 노드 목록에 포함된 각각의 상기 노드에 대응되는 상기 트리플 데이터를 제외한 나머지 트리플 데이터를 필터링할 수 있다.
또한, 상기 검색부는 상기 필터링된 트리플 데이터를 이용하여 상기 조인 연산을 수행하고, 상기 검색부는 상기 조인 연산이 수행된 결과에서 상기 질의 트리플 데이터를 검색할 수 있다.
본 발명의 실시예에 따르면 RDF(Resource Description Framework) 데이터를 검색하는 데에 소요되는 시간을 감소시킬 수 있다.
본 발명의 실시예에 따르면 그래프 형태의 데이터에서의 질의를 처리할 때 수행되는 조인 연산의 수행 시간을 감소시킬 수 있다.
본 발명의 실시예에 따르면 그래프 형태의 데이터에서의 질의를 처리할 때 수행되는 조인 연산의 대상이 되는 데이터의 양을 감소시킬 수 있다.
본 발명의 실시예에 따르면 그래프 형태의 데이터를 이용한 조인 연산이 수행되는 속도를 향상시킬 수 있다.
본 발명의 실시예에 따르면 노드(node) 및 에지(edge)를 포함하는 그래프의 구조에 대한 정보를 이용하여, 조인 연산의 대상이 되는 그래프 형태의 데이터의 양을 감소시킬 수 있다.
도 1은 본 발명의 실시예에 따른 데이터 검색 방법이 수행되는 과정을 나타내는 순서도이다.
도 2는 본 발명의 실시예에 따른 전체 그래프를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따라 서브그래프에 대한 인덱스를 생성하는 단계가 수행되는 과정을 나타내는 순서도이다.
도 4는 본 발명의 실시예에 따라 도 2에 나타난 그래프를 이용하여 생성된 인덱스를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 질의 그래프를 나타내는 도면이다.
도 6은 본 발명의 실시예에 따라 트리플 데이터를 필터링하는 단계가 수행되는 과정을 나타내는 순서도이다.
도 7은 본 발명의 실시예에 따라 질의 트리플 데이터에 대한 조인 연산을 수행하는 순서를 결정하는 단계를 설명하기 위한 참고도이다.
도 8은 본 발명의 실시예에 따른 데이터 검색 장치의 구성을 나타내는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
비록 "제1" 또는 "제2" 등이 다양한 구성요소를 서술하기 위해서 사용되나, 이러한 구성요소는 상기와 같은 용어에 의해 제한되지 않는다. 상기와 같은 용어는 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용될 수 있다. 따라서, 이하에서 언급되는 제1구성요소는 본 발명의 기술적 사상 내에서 제2구성요소일 수도 있다.
본 명세서에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소 또는 단계가 하나 이상의 다른 구성요소 또는 단계의 존재 또는 추가를 배제하지 않는다는 의미를 내포한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 해석될 수 있다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서는, 도 1 내지 도 8을 참조하여 본 발명의 실시예에 따른 데이터 검색 방법 및 데이터 검색 장치(100)에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 데이터 검색 방법이 수행되는 과정을 나타내는 순서도이다. 도 1을 참조하면 본 발명의 실시예에 따른 데이터 검색 방법에서는 먼저, 노드(node) 및 에지(edge)를 포함하는 그래프(graph)에 대응되는 적어도 하나 이상의 트리플 데이터(triple data)를 수신하는 단계(S100)가 수행될 수 있다.
그래프는 노드 및 상기 노드를 서로 연결하는 에지를 포함할 수 있다. 그래프에 포함된 에지는 방향을 가질 수 있다. 예를 들어, 제1노드와 제2노드가 에지에 의해 서로 연결되어 있고 상기 에지는 제1노드로부터 제2노드를 향하는 방향을 가질 수 있다. 이 때, 상기 제1노드는 출발 노드라 칭할 수 있고, 상기 제2노드는 도착 노드라 칭할 수 있다. 그래프가 복수의 에지를 포함하는 경우, 그래프는 적어도 3개 이상의 노드를 포함할 수 있다.
RDF(Resource Description Framework) 저장소에 저장되는 각각의 데이터는 주어, 동사 및 목적어에 대응되는 세 개의 정보(Subject, Predicate, Object)를 포함하는 트리플(triple) 형식을 가질 수 있다. 따라서, RDF 저장소에 저장되는 각각의 데이터는 트리플 데이터라 칭할 수 있다.
그래프에 포함된 각각의 에지는 트리플 데이터로 표현될 수 있다. 예를 들어, 출발 노드는 트레플 데이터에 포함된 세 개의 정보 중에서 주어에 대응되는 정보에 대응될 수 있다. 또한, 에지는 트리플 데이터에 포함된 세 개의 정보 중에서 동사에 대응되는 정보에 대응될 수 있다. 또한, 도착 노드는 트리플 데이터에 포함된 세 개의 정보 중에서 목적어에 대응되는 정보에 대응될 수 있다. 하나의 에지는 하나의 트리플 데이터로 표현될 수 있으므로, 트리플 데이터를 수신하는 단계(S100)에서는 그래프에 포함된 에지의 개수와 동일한 개수의 트리플 데이터를 수신할 수 있다.
도 2는 본 발명의 실시예에 따른 전체 그래프를 나타내는 도면이다. 도 2를 참조하면, 전체 그래프는 R1, R2, R3 및 R4의 4개의 분리된 그래프를 포함할 수 있다. 트리플 데이터를 수신하는 단계(S100)에서는 상기 전체 그래프에 대응되는 트리플 데이터를 수신할 수 있다. 다시 말해서, 전체 그래프에 포함된 각각의 에지에 대응되는 트리플 데이터가 수신될 수 있다. 또한, 전체 그래프에 포함된 에지의 개수와 동일한 개수의 트리플 데이터가 수신될 수 있다.
도 2에 도시된 전체 그래프에 포함된 각각의 에지에 대응되는 15개의 트리플 데이터가 수신될 수 있다. 예를 들어, 그래프 R1에 포함된 각각의 에지에 대응되는 4개의 트리플 T1, T2, T3 및 T4가 수신될 수 있다. 예를 들어, T1 = {v1, p3, v2}, T2 = {v5, p4, v2}, T3 = {v2, p2, v3}, T4 = {v3, p1, v4}와 같이 표현될 수 있다.
다시 도 1을 참조하면, 다음으로, 상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계(S110)가 수행될 수 있다. 도 3은 본 발명의 실시예에 따라 서브그래프에 대한 인덱스를 생성하는 단계(S110)가 수행되는 과정을 나타내는 순서도이다.
도 3을 참조하면, 서브그래프에 대한 인덱스를 생성하는 단계(S110)는 먼저, 상기 트리플 데이터를 이용하여 상기 그래프를 재생성하는 단계(S111)가 수행될 수 있다. 예를 들어, 상기 트리플 데이터를 이용하여 도 2에 도시된 바와 같은 전체 그래프가 재생성될 수 있다.
다음으로, 상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계(S112)가 수행될 수 있다. 예를 들어, 도 2에 도시된 전체 그래프 중에서 그래프 R1의 에지 p1만을 포함하는 서브그래프가 선택될 수 있다. 서브그래프의 크기는 상기 서브그래프에 포함된 에지의 개수와 같을 수 있다. 따라서, 에지 p1만을 포함하는 서브그래프의 크기는 1일 수 있다.
다시 도 3을 참조하면, 다음으로, 상기 그래프에서 상기 선택된 서브그래프가 매칭되는 횟수를 산출하는 단계(S113)가 수행될 수 있다. 예를 들어, 도 2에 도시된 전체 그래프에서 에지 p1이 매칭되는 횟수가 산출될 수 있다. 도 2을 참조하면, 그래프 R1, R2 및 R3에 각각 p1이 하나씩 포함되어 있으므로, 전체 그래프에서 에지 p1이 매칭되는 횟수는 3일 수 있다.
다시 도 3을 참조하면, 다음으로, 상기 산출된 횟수가 기준 횟수보다 크거나 같은 경우 상기 선택된 서브그래프에 대한 인덱스를 생성하는 단계(S114)가 수행될 수 있다. 상기 산출된 횟수가 기준 횟수보다 크거나 같은 경우에만 인덱스를 생성함으로써, 전체 그래프에 포함된 횟수가 비교적 많은 서브그래프에 대하여만 인덱스를 생성하도록 할 수 있다. 이와 같이, 전체 그래프에 포함된 횟수가 비교적 많은 서브그래프에 대하여 한정된 인덱스 저장 공간을 할당함으로써 효율을 향상시킬 수 있다.
예를 들어, 기준 횟수가 3인 경우, 에지 p1만을 포함하는 서브그래프에 대한 인덱스가 생성될 수 있다. 도 4는 본 발명의 실시예에 따라 도 2에 나타난 그래프를 이용하여 생성된 인덱스를 나타내는 도면이다. 예를 들어, 에지 p1만을 포함하는 서브그래프에 대한 인덱스로서, 상기 그래프에 포함된 노드 중에서 상기 서브그래프에 포함된 각각의 노드에 대응될 수 있는 노드의 목록인 대응 노드 목록이 생성될 수 있다. 다시 말해서, 그래프에 포함된 노드 중에서 서브그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드의 목록이 생성될 수 있다.
예를 들어, 그래프 R1, R2 및 R3에 포함된 에지 p1의 출발 노드는 각각 v3, v8, v14이므로, 도 4에 나타난 바와 같이 서브그래프 gp1의 제1노드에 대응될 수 있는 대응 노드 목록 Vlist(gp1, ?v1) = {v3, v8, v14}가 생성될 수 있다. 또한, 그래프 R1, R2 및 R3에 포함된 에지 p1의 도착 노드는 각각 v4, v9, v15이므로, 도 4에 나타난 바와 같이 서브그래프 gp1의 제2노드에 대응될 수 있는 대응 노드 목록 Vlist(gp1, ?v2) = {v4, v9, v15}가 생성될 수 있다.
다시 도 3을 참조하면, 다음으로, 상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계(S112) 내지 상기 선택된 서브그래프에 대한 인덱스를 생성하는 단계(S114)를 반복하는 단계(S115)가 수행될 수 있다. 다시 말해서, 상기 그래프에 포함되고 상기 선택된 서브그래프와 서로 다른 서브그래프에 대해 상기 과정이 반복될 수 있다. 이로써, 전체 그래프에 포함된 모든 서브그래프 각각에 대해, 서브그래프를 선택하는 단계(S112) 내지 상기 선택된 서브그래프에 대한 인덱스를 생성하는 단계(S114)가 반복될 수 있다.
최종적으로 완성된 인덱스는 도 4에 나타난 바와 같을 수 있다. 도 4를 참조하면, 최종적으로 완성된 인덱스는 서브그래프의 크기에 따라 정렬될 수 있다. 인덱스를 생성할 서브그래프의 최대 크기는 미리 정해질 수 있다. 예를 들어, 도 4에 나타난 바와 같이, 인덱스를 생성할 서브그래프의 최대 크기가 3으로 미리 정해질 수 있다.
상기와 같이, 인덱스를 생성할 서브그래프의 최대 크기가 미리 정해져 있고, 전체 그래프에 포함된 횟수가 비교적 많은 서브그래프에 대하여만 인덱스를 생성하므로, 인덱스를 생성하는 데에 소요되는 시간 및 공간이 절약될 수 있다.
다시 도 3을 참조하면, 다음으로, 상기 그래프에서 검색할 질의 그래프에 대응되는 질의 트리플 데이터를 수신하는 단계(S120)가 수행될 수 있다. 도 5는 본 발명의 실시예에 따른 질의 그래프를 나타내는 도면이다. 따라서, 질의 그래프에 포함된 각각의 에지에 대응되는 질의 트리플 데이터가 수신될 수 있다. 또한, 질의 그래프에 포함된 에지의 개수와 동일한 개수의 질의 트리플 데이터가 수신될 수 있다.
다시 도 3을 참조하면, 다음으로, 상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링하는 단계(S130)가 수행될 수 있다. 도 6은 본 발명의 실시예에 따라 트리플 데이터를 필터링하는 단계(S130)가 수행되는 과정을 나타내는 순서도이다.
도 6을 참조하면, 트리플 데이터를 필터링하는 단계(S130)는 먼저, 상기 질의 트리플 데이터를 이용하여 상기 질의 그래프를 재생성하는 단계(S131)가 수행될 수 있다. 예를 들어, 상기 질의 트리플 데이터를 이용하여 도 5에 도시된 바와 같은 질의 그래프가 재생성될 수 있다.
다시 도 6을 참조하면, 다음으로, 상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터에 대한 조인 연산을 수행하는 순서를 결정하는 단계(S132)가 수행될 수 있다. 도 7은 본 발명의 실시예에 따라 트리플 데이터에 대한 조인 연산을 수행하는 순서를 결정하는 단계(S132)를 설명하기 위한 참고도이다.
도 7을 참조하면, 예를 들어, 가장 먼저 에지 p1에 대응되는 트리플 데이터와 에지 p2에 대응되는 트리플 데이터에 대한 조인 연산이 수행되도록 할 수 있다. 다음으로, 상기 조인 연산이 수행된 결과와 에지 p3에 대응되는 트리플 데이터에 대한 조인 연산이 수행되도록 할 수 있다. 다음으로, 상기 조인 연산이 수행된 결과와 에지 p4에 대응되는 트리플 데이터에 대한 조인 연산이 수행되도록 할 수 있다.
다시 도 6을 참조하면, 다음으로, 상기 생성된 인덱스를 이용하여 상기 각각의 조인 연산의 대상이 되는 상기 트리플 데이터를 필터링하는 단계(S133)가 수행될 수 있다.
예를 들어, 가장 먼저 에지 p1에 대응되는 트리플 데이터가 필터링될 수 있다. 도 5를 참조하면, 에지 p1의 출발 노드에는 제3노드(?v3)가 위치하며 에지 p1의 도착 노드에는 제4노드(?v4)가 위치하고 있다. 또한, 에지 p1의 출발 노드에 대응되는 지점에는 에지 p3, p4 및 p2를 포함하는 서브그래프가 위치하므로, 제3노드(?v3)는 에지 p3, p4 및 p2를 포함하는 서브그래프의 일단에 위치한다.
도 2에 도시된 인덱스를 참조하면, 에지 p1의 출발 노드에 대응될 수 있는 대응 노드 목록을 산출하기 위해, 서브그래프 gp1의 제1노드(?v1)에 대한 대응 노드 목록 Vlist(gp1, ?v1) 및 서브그래프 gp5의 제4노드(?v4)에 대한 대응 노드 목록 Vlist(gp5, ?v4)가 참조될 수 있다. 에지 p1의 출발 노드에 대응되는 지점에는 에지 p3, p4 및 p2를 포함하는 서브그래프가 위치하므로 상기와 같이 서브그래프 gp5의 제4노드(?v4)에 대한 대응 노드 목록 Vlist(gp5, ?v4)가 참조될 수 있다.
대응 노드 목록 Vlist(gp1, ?v1)에는 v3, v8, v14가 포함되어 있으며 대응 노드 목록 Vlist(gp5, ?v4)에는 v3, v18이 포함되어 있다. 질의 그래프에서 에지 p1의 출발 노드는 서브그래프 gp1의 제1노드(?v1)이면서 동시에 서브그래프 gp5의 제4노드(?v4)이므로, 대응 노드 목록 Vlist(gp1, ?v1)과 대응 노드 목록 Vlist(gp5, ?v4)에 동시에 포함된 노드만이 에지 p1의 출발 노드에 대응될 수 있다. 따라서, v3만이 에지 p1의 출발 노드에 대응될 수 있다.
또한, 에지 p1의 도착 노드에 대응될 수 있는 대응 노드 목록을 산출하기 위해 서브그래프 gp1의 제2노드(?v2)에 대한 대응 노드 목록 Vlist(gp2, ?v2)이 참조될 수 있다. 대응 노드 목록 Vlist(gp2, ?v2)에는 v4, v9, v15가 포함되어 있다. 이 중에서 에지 p1의 출발 노드에 대응되는 v3에 대응되는 도착 노드는 그래프 R1의 v4뿐이므로, 에지 p1에 대한 모든 트리플 데이터 중에서 트리플 데이터 {v3, p1, v4}를 제외한 나머지 트리플 데이터는 필터링될 수 있다.
상기와 유사하게 에지 p2에 대한 트리플 데이터를 필터링하면, 에지 p2에 대한 모든 트리플 데이터 중에서 트리플 데이터 {v2, p2, v3}, {v17, p2, v18}을 제외한 나머지 트리플 데이터는 필터링될 수 있다. 또한, 에지 p3에 대한 모든 트리플 데이터 중에서 트리플 데이터 {v1, p3, v2}, {v16, p3, v17}을 제외한 나머지 트리플 데이터는 필터링될 수 있다. 또한, 에지 p4에 대한 모든 트리플 데이터 중에서 트리플 데이터 {v5, p4, v2}, {v19, p4, v17}을 제외한 나머지 트리플 데이터는 필터링될 수 있다.
다시 도 3을 참조하면, 다음으로, 상기 필터링된 트리플 데이터를 이용하여 상기 조인 연산을 수행하는 단계(S140)가 수행될 수 있다. 상기 실시예를 참조하면, 조인 연산의 대상이 되는 트리플 데이터의 수는 1 + 2 + 2 + 2 = 7개일 수 있다.
만약, 상기와 같이 트리플 데이터를 필터링하지 않고 조인 연산을 수행하는 경우에는, 각각의 에지에 대한 모든 트리플 데이터를 이용하여 조인 연산이 수행될 수 있다. 이 때, 조인 연산의 대상이 되는 트리플 데이터의 수는 3 + 5 + 4 + 3 = 15개일 수 있다.
또한, 만약 상기와 같이 생성된 인덱스를 이용하여 트리플 데이터를 필터링하지 않고, 단순히 출발 노드 및 도착 노드에 대응될 수 있는 대응 노드 목록을 이용하여 트리플 데이터를 필터링한 경우를 가정하기로 한다. 이 때, 조인 연산의 대상이 되는 트리플 데이터의 수는 3 + 4 + 3 + 1 = 11개일 수 있다.
따라서, 본 발명의 실시예에서와 같이 서로 다른 개수의 에지를 포함하는 서브그래프 각각에 대한 인덱스를 생성하고, 상기 생성된 인덱스를 이용하여 트리플 데이터를 필터링 하는 경우, 다른 방법에 비해 조인 연산의 대상이 되는 트리플 데이터의 개수가 가장 작을 수 있다.
다시 도 3을 참조하면, 다음으로, 상기 조인 연산이 수행된 결과에서 상기 질의 트리플 데이터를 검색하는 단계(S150)가 수행될 수 있다. 상기 실시예를 참조하면, 조인 연산이 수행된 결과 중에서 도 2의 그래프 R1에 대응되는 트리플 데이터가 검색될 수 있다.
다시 도 6을 참조하면, 다음으로, 상기 검색된 결과를 출력하는 단계(S160)가 수행될 수 있다.
도 8은 본 발명의 실시예에 따른 데이터 검색 장치(100)의 구성을 나타내는 블록도이다. 도 8을 참조하면, 본 발명의 실시예에 따른 데이터 검색 장치(100)는, 입력부(110), 인덱스 생성부(120), 필터링부(130), 검색부(140), 및 출력부(150)를 포함할 수 있다.
입력부(110)는 노드(node) 및 에지(edge)를 포함하는 그래프(graph)에 대응되는 적어도 하나 이상의 트리플 데이터(triple data)를 수신할 수 있다. 또한, 입력부(110)는 상기 그래프에서 검색할 질의 그래프에 대응되는 질의 트리플 데이터를 수신할 수 있다. 입력부(110)는 예를 들어, 네트워크 어댑터와 같은 통신 장치 또는 기타 입력 장치일 수 있다. 입력부(110)에 대한 상세한 내용은 상술한 트리플 데이터를 수신하는 단계(S100) 및 질의 트리플 데이터를 수신하는 단계(S120)와 대응되므로 자세한 설명은 생략하기로 한다.
인덱스 생성부(120)는 상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성할 수 있다. 인덱스 생성부(120)는 예를 들어, 중앙 처리 장치와 같은 연산 장치, 데이터베이스, 서버 또는 단말 장치일 수 있다. 인덱스 생성부(120)에 대한 상세한 내용은 상술한 인덱스를 생성하는 단계(S110)와 대응되므로 자세한 설명은 생략하기로 한다.
필터링부(130)는 상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링할 수 있다. 필터링부(130)는 예를 들어, 중앙 처리 장치와 같은 연산 장치, 데이터베이스, 서버 또는 단말 장치일 수 있다. 필터링부(130)에 대한 상세한 내용은 상술한 트리플 데이터를 필터링하는 단계(S130)와 대응되므로 자세한 설명은 생략하기로 한다.
검색부(140)는 상기 필터링된 트리플 데이터를 이용하여 상기 질의 트리플 데이터를 검색할 수 있다. 검색부(140)는 예를 들어, 중앙 처리 장치와 같은 연산 장치, 데이터베이스, 서버 또는 단말 장치일 수 있다. 검색부(140)에 대한 상세한 내용은 상술한 조인 연산을 수행하는 단계(S140) 및 질의 트리플 데이터를 검색하는 단계(S150)와 대응되므로 자세한 설명은 생략하기로 한다.
출력부(150)는 상기 검색된 결과를 출력할 수 있다. 출력부(150)는 예를 들어, 네트워크 어댑터와 같은 통신 장치 또는 기타 출력 장치일 수 있다. 출력부(150)에 대한 상세한 내용은 상술한 검색된 결과를 출력하는 단계(S160)와 대응되므로 자세한 설명은 생략하기로 한다.
이상에서 설명한 본 발명의 실시예에 따르면 RDF(Resource Description Framework) 데이터를 검색하는 데에 소요되는 시간을 감소시킬 수 있다. 또한, 그래프 형태의 데이터에서의 질의를 처리할 때 수행되는 조인 연산의 수행 시간을 감소시킬 수 있다. 또한, 그래프 형태의 데이터에서의 질의를 처리할 때 수행되는 조인 연산의 대상이 되는 데이터의 양을 감소시킬 수 있다. 또한, 그래프 형태의 데이터를 이용한 조인 연산이 수행되는 속도를 향상시킬 수 있다. 또한, 노드(node) 및 에지(edge)를 포함하는 그래프의 구조에 대한 정보를 이용하여, 조인 연산의 대상이 되는 그래프 형태의 데이터의 양을 감소시킬 수 있다.
이상에서 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 데이터 검색 장치
110: 입력부
120: 인덱스 생성부
130: 필터링부
140: 검색부
150: 출력부

Claims (20)

  1. 노드(node) 및 에지(edge)를 포함하는 그래프(graph)에 대응되는 적어도 하나 이상의 트리플 데이터(triple data)를 수신하는 단계;
    상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계;
    상기 그래프에서 검색할 질의 그래프에 대응되는 질의 트리플 데이터를 수신하는 단계;
    상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링하는 단계;
    상기 필터링된 트리플 데이터를 이용하여 상기 질의 트리플 데이터를 검색하는 단계; 및
    상기 검색된 결과를 출력하는 단계
    를 포함하는 데이터 검색 방법.
  2. 제1항에 있어서,
    상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계는,
    상기 트리플 데이터를 이용하여 상기 그래프를 재생성하는 단계;
    상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계;
    상기 선택된 서브그래프에 대한 상기 인덱스를 생성하는 단계; 및
    상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계 내지 상기 선택된 서브그래프에 대한 인덱스를 생성하는 단계를 반복하는 단계
    를 포함하는 데이터 검색 방법.
  3. 제2항에 있어서,
    상기 선택된 서브그래프에 대한 인덱스를 생성하는 단계는,
    상기 그래프에서 상기 선택된 서브그래프가 매칭되는 횟수를 산출하는 단계; 및
    상기 산출된 횟수가 기준 횟수보다 크거나 같은 경우 상기 선택된 서브그래프에 대한 상기 인덱스를 생성하는 단계
    를 포함하는 데이터 검색 방법.
  4. 제2항에 있어서,
    상기 반복하는 단계는,
    상기 그래프에 포함되고 상기 선택된 서브그래프와 서로 다른 서브그래프에 대해, 상기 서브그래프를 선택하는 단계 내지 상기 인덱스를 생성하는 단계를 반복하는 단계
    를 포함하는 데이터 검색 방법.
  5. 제1항에 있어서,
    상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계는,
    상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 노드에 대응되는 노드를 포함하는 목록을 생성하는 단계
    를 포함하는 데이터 검색 방법.
  6. 제1항에 있어서,
    상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 단계는,
    상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 목록을 생성하는 단계
    를 포함하는 데이터 검색 방법.
  7. 제1항에 있어서,
    상기 서브그래프는 상기 그래프에 포함된 상기 에지 중에서 적어도 2개 이상의 에지를 포함하는 데이터 검색 방법.
  8. 제1항에 있어서,
    상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링하는 단계는,
    상기 질의 트리플 데이터를 이용하여 상기 질의 그래프를 재생성하는 단계;
    상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터에 대한 조인 연산을 수행하는 순서를 결정하는 단계; 및
    상기 생성된 인덱스를 이용하여 상기 각각의 조인 연산의 대상이 되는 상기 트리플 데이터를 필터링하는 단계
    를 포함하는 데이터 검색 방법.
  9. 제8항에 있어서,
    상기 생성된 인덱스를 이용하여 상기 각각의 조인 연산의 대상이 되는 상기 트리플 데이터를 필터링하는 단계는,
    상기 생성된 인덱스를 이용하여, 상기 그래프에 포함된 상기 노드 중에서 상기 질의 그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 적어도 하나 이상의 대응 노드 목록을 생성하는 단계;
    상기 각각의 대응 노드 목록에 공통적으로 포함된 노드를 포함하는 공통 노드 목록을 생성하는 단계; 및
    상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터 중에서, 상기 공통 노드 목록에 포함된 각각의 상기 노드에 대응되는 상기 트리플 데이터를 제외한 나머지 트리플 데이터를 필터링하는 단계
    를 포함하는 데이터 검색 방법.
  10. 제1항에 있어서,
    상기 필터링된 트리플 데이터를 이용하여 상기 질의 트리플 데이터를 검색하는 단계는,
    상기 필터링된 트리플 데이터를 이용하여 상기 조인 연산을 수행하는 단계; 및
    상기 조인 연산이 수행된 결과에서 상기 질의 트리플 데이터를 검색하는 단계
    를 포함하는 데이터 검색 방법.
  11. 노드(node) 및 에지(edge)를 포함하는 그래프(graph)에 대응되는 적어도 하나 이상의 트리플 데이터(triple data)를 수신하고, 상기 그래프에서 검색할 질의 그래프에 대응되는 질의 트리플 데이터를 수신하는 입력부;
    상기 트리플 데이터를 이용하여 상기 그래프의 서브그래프에 대한 인덱스를 생성하는 인덱스 생성부;
    상기 질의 트리플 데이터 및 상기 생성된 인덱스를 이용하여 상기 트리플 데이터를 필터링하는 필터링부;
    상기 필터링된 트리플 데이터를 이용하여 상기 질의 트리플 데이터를 검색하는 검색부; 및
    상기 검색된 결과를 출력하는 출력부
    를 포함하는 데이터 검색 장치.
  12. 제11항에 있어서,
    상기 인덱스 생성부는 상기 트리플 데이터를 이용하여 상기 그래프를 재생성하고, 상기 인덱스 생성부는 상기 그래프에 포함된 임의의 서브그래프를 선택하고, 상기 인덱스 생성부는 상기 선택된 서브그래프에 대한 인덱스를 생성하고, 상기 인덱스 생성부는 상기 그래프에 포함된 임의의 서브그래프를 선택하는 단계 내지 상기 선택된 서브그래프에 대한 상기 인덱스를 생성하는 단계를 반복하는 데이터 검색 장치.
  13. 제12항에 있어서,
    상기 인덱스 생성부는 상기 그래프에서 상기 선택된 서브그래프가 매칭되는 횟수를 산출하고, 상기 인덱스 생성부는 상기 산출된 횟수가 기준 횟수보다 크거나 같은 경우 상기 선택된 서브그래프에 대한 상기 인덱스를 생성하는 데이터 검색 장치.
  14. 제12항에 있어서,
    상기 인덱스 생성부는, 상기 그래프에 포함되고 상기 선택된 서브그래프와 서로 다른 서브그래프에 대해, 상기 서브그래프를 선택하는 단계 내지 상기 인덱스를 생성하는 단계를 반복하는 데이터 검색 장치.
  15. 제11항에 있어서,
    상기 인덱스는, 상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 노드에 대응되는 노드를 포함하는 목록을 포함하는 데이터 검색 장치.
  16. 제11항에 있어서,
    상기 인덱스는, 상기 그래프에 포함된 상기 노드 중에서 상기 서브그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 목록을 포함하는 데이터 검색 장치.
  17. 제11항에 있어서,
    상기 서브그래프는 상기 그래프에 포함된 상기 에지 중에서 적어도 2개 이상의 에지를 포함하는 데이터 검색 장치.
  18. 제11항에 있어서,
    상기 필터링부는 상기 질의 트리플 데이터를 이용하여 상기 질의 그래프를 재생성하고, 상기 필터링부는 상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터에 대한 조인 연산을 수행하는 순서를 결정하고, 상기 필터링부는 상기 생성된 인덱스를 이용하여 상기 각각의 조인 연산의 대상이 되는 상기 트리플 데이터를 필터링하는 데이터 검색 장치.
  19. 제18항에 있어서,
    상기 필터링부는 상기 생성된 인덱스를 이용하여, 상기 그래프에 포함된 상기 노드 중에서 상기 질의 그래프에 포함된 각각의 에지와 인접한 노드에 대응되는 노드를 포함하는 적어도 하나 이상의 대응 노드 목록을 생성하고, 상기 필터링부는 상기 각각의 대응 노드 목록에 공통적으로 포함된 노드를 포함하는 공통 노드 목록을 생성하고, 상기 필터링부는 상기 질의 그래프에 포함된 각각의 에지에 대응되는 상기 트리플 데이터 중에서, 상기 공통 노드 목록에 포함된 각각의 상기 노드에 대응되는 상기 트리플 데이터를 제외한 나머지 트리플 데이터를 필터링하는 데이터 검색 장치.
  20. 제11항에 있어서,
    상기 검색부는 상기 필터링된 트리플 데이터를 이용하여 상기 조인 연산을 수행하고, 상기 검색부는 상기 조인 연산이 수행된 결과에서 상기 질의 트리플 데이터를 검색하는 데이터 검색 장치.
KR1020130107503A 2013-09-06 2013-09-06 데이터 검색 방법 및 장치 KR102104496B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130107503A KR102104496B1 (ko) 2013-09-06 2013-09-06 데이터 검색 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130107503A KR102104496B1 (ko) 2013-09-06 2013-09-06 데이터 검색 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20150028934A true KR20150028934A (ko) 2015-03-17
KR102104496B1 KR102104496B1 (ko) 2020-04-24

Family

ID=53023597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130107503A KR102104496B1 (ko) 2013-09-06 2013-09-06 데이터 검색 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102104496B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011142134A1 (ja) * 2010-05-14 2011-11-17 日本電気株式会社 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
US20120041974A1 (en) * 2009-04-15 2012-02-16 Baese Gero Method and device for generating an rdf database for an rdf database query and a search method and a search device for the rdf database query
KR20120073651A (ko) * 2010-12-27 2012-07-05 한양대학교 산학협력단 키워드 검색을 위한 sparql 질의 처리 수행 장치 및 방법
JP2013089236A (ja) * 2011-10-14 2013-05-13 Palo Alto Research Center Inc And/orグラフ探索における並列エッジ分割のためのシステム及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120041974A1 (en) * 2009-04-15 2012-02-16 Baese Gero Method and device for generating an rdf database for an rdf database query and a search method and a search device for the rdf database query
KR20120022957A (ko) * 2009-04-15 2012-03-12 지멘스 악티엔게젤샤프트 Rdf 데이터베이스 질문을 위한 rdf 데이터베이스를 생성하기 위한 방법 및 디바이스, 및 rdf 데이터베이스 질문을 위한 검색 방법 및 검색 디바이스
WO2011142134A1 (ja) * 2010-05-14 2011-11-17 日本電気株式会社 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
KR20120073651A (ko) * 2010-12-27 2012-07-05 한양대학교 산학협력단 키워드 검색을 위한 sparql 질의 처리 수행 장치 및 방법
JP2013089236A (ja) * 2011-10-14 2013-05-13 Palo Alto Research Center Inc And/orグラフ探索における並列エッジ分割のためのシステム及び方法

Also Published As

Publication number Publication date
KR102104496B1 (ko) 2020-04-24

Similar Documents

Publication Publication Date Title
JP5635691B2 (ja) 複数のシステムを用いたデータ解析
CA2921616C (en) Data storage method and apparatus
Ren et al. Multi-query optimization for subgraph isomorphism search
US9507875B2 (en) Symbolic hyper-graph database
CN107515878B (zh) 一种数据索引的管理方法及装置
US20140074764A1 (en) Simplifying a graph of correlation rules while preserving semantic coverage
EP3117347A2 (en) Systems and methods for rapid data analysis
US8812492B2 (en) Automatic and dynamic design of cache groups
EP3188042A1 (en) System and method for performing blended data operations
CN110968429A (zh) 一种有向图中的环路检测方法、装置、设备和存储介质
WO2018196729A1 (zh) 一种查询处理方法、数据源注册方法及查询引擎
CN103324701A (zh) 数据搜索装置和数据搜索方法
CN113836163A (zh) 数据的关联查询方法、装置、设备及存储介质
CN108073641B (zh) 查询数据表的方法和装置
KR20230129555A (ko) 클라우드 리소스의 자바스크립트 객체 표기(json) 쿼리조인
WO2017206562A1 (zh) 一种数据表的处理方法、装置及系统
US8965910B2 (en) Apparatus and method of searching for instance path based on ontology schema
CN106326249B (zh) 数据整合处理方法及装置
CN111522918A (zh) 数据汇聚方法、装置、电子设备及计算机可读存储介质
KR102104496B1 (ko) 데이터 검색 방법 및 장치
CN107451229B (zh) 一种数据库查询方法和装置
CN111078728A (zh) 一种数据库归档模式下跨库查询方法和装置
CN105589969A (zh) 一种数据处理方法及装置
CN107203550B (zh) 一种数据处理方法和数据库服务器
CN116226082A (zh) 数据库模型的生成方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant