KR20120097220A - 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법 - Google Patents

플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법 Download PDF

Info

Publication number
KR20120097220A
KR20120097220A KR1020110016661A KR20110016661A KR20120097220A KR 20120097220 A KR20120097220 A KR 20120097220A KR 1020110016661 A KR1020110016661 A KR 1020110016661A KR 20110016661 A KR20110016661 A KR 20110016661A KR 20120097220 A KR20120097220 A KR 20120097220A
Authority
KR
South Korea
Prior art keywords
unit
data
plug
processing
inference
Prior art date
Application number
KR1020110016661A
Other languages
English (en)
Other versions
KR101248192B1 (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 KR1020110016661A priority Critical patent/KR101248192B1/ko
Publication of KR20120097220A publication Critical patent/KR20120097220A/ko
Application granted granted Critical
Publication of KR101248192B1 publication Critical patent/KR101248192B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론장치는 웹 규모의 이질적인 대용량 데이터 또는 상기 대용량 데이터에 대해 추론 처리 가능한 데이터로 변환한 RDF 데이터를 분산하여 저장하는 저장부; 상기 대용량 데이터의 질의를 위한 SPARQL 질의어를 전송하고, 상기 SPARQL 질의어에 따른 처리 결과를 수신하는 응용 처리부; 상기 응용 처리부로부터 제공된 상기 SPARQL 질의어에 따라, 상기 대용량 데이터에 대해 상기 RDF 데이터로의 변환 및 추론 처리를 수행하는 플러그인부; 상기 플러그인부가 필요로 하는 데이터를 제공하고, 상기 플러그인부를 관리하는 플랫폼부; 및 질의 및 추론 처리를 위해 필요한 저장 및 처리를 동시에 또는 개별적인 프로세스를 지원하는 병렬 처리 지원부를 포함하고, 상기 병렬 처리 지원부의 지원에 따라, 상기 플러그인부는 질의 및 추론 처리를 위한 순서를 파이프라인 형태로 복수의 프로세스를 생성하여 병렬 처리하는 것을 특징으로 한다.

Description

플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법{An apparatus and method for parallel inference processing of mass data based on plug-in}
본 발명은 플러그인 기반 대용량 데이터의 병렬처리 추론 방법 및 장치에 관한 것으로, 보다 상세하게는 다수의 사용자들이 웹 규모의 대용량 데이터에 대한 추론처리를 기반한 응용처리를 지원하기 위해 추론처리 가능한 데이터 형태로 변환 및 분산 저장하고, 추론처리에 따른 다양한 질의에 맞는 데이터를 식별하고, 분산 저장된 데이터들 중 식별된 데이터 부분을 선택하고, 추론 처리하여 결과를 응용처리부에 전달하는 프로세스를 플러그인 단위로 병렬 처리하는 기술에 관한 것이다.
Web2.0 환경의 참여형 웹과 모바일 장치, 기업, 공공기관, 연구기관 등으로부터 서로 다른 형태의 정형 및 비정형 데이터들이 기하급수적으로 증가하고 있다.이렇게 증가한 웹 규모의 대용량 데이터들을 의미적으로 연결하기 위하여 W3C(www.w3c.org)에서 표준으로 정하고 있는 XML 기반 RDF(Resource Definition Framework)와 OWL(Web Ontology Language)에 맞게 데이터를 가공 및 통합할 수 있다.
다양한 형태 데이터를 RDF 혹은 OWL로 통합하여 응용프로그램의 목적에 맞게 데이터를 조회할 수 있으며 RDF 및 OWL에서 제공하는 표현력에 따라 추론처리 엔진으로 추론처리를 한다. 이렇게 추론 처리된 데이터들을 기반으로 응용 처리하는 프로그램들은 수집된 데이터의 규모에 따라 처리 한계를 가진다.
즉, 웹 상의 데이터와 조직 내 닫혀진 형태의 정형 및 비정형 데이터, 모바일 단말에서 생성되는 대용량 데이터를 관계형 데이터베이스에 저장하지만 데이터들간의 의미적 연결성을 제공하지는 못한다. 의미적 연결성을 기반한 응용처리를 위해 응용프로그램 혹은 데이터 처리부에서 프로그램 처리에 의한 대용량 분산 데이터의 의미처리를 수행하여야 하며 데이터들간의 관계에 의한 새로운 데이터 생성이 불가하다.
추론엔진을 이용하여 추론이 가능한 데이터 형태인 RDF와 OWL가 웹 규모의 대용량 데이터가 되어 일괄적인 데이터 저장보다 분산저장을 하여 데이터 인출의 효율성을 높일 수 있도록 하기 위해, RDF 및 OWL의 단위 데이터는 트리플(Triple)로 분산 저장된다. 응용처리 프로그램에서 SPARQL 이라는 RDF 및 OWL 대상 질의언어를 이용하여 필요한 트리플들을 분산 저장소에서 찾아오기 위해서는 필요한 트리플들은 무엇이며 어느 분산 저장소들에 있는지 인식하고 신속하게 관련 트리플들을 조회하여 프로그램 처리에 사용하게 한다.
이는 시맨틱 기술의 구성요소로서 이질적이고 분산된 정형 및 비정형 데이터의 RDF 및 OWL로의 통합 저장처리와 이를 기반하여 추론엔진을 이용한 추론처리를 통하여 처리가능 하다. 이질적이고 분산된 데이터를 통합하고 추론처리를 통해 이들 데이터들 간의 의미적 관계를 통해 데이터를 생성하는 시맨틱 기술을 활용하는 응용프로그램이 데이터 분석, 과학분야 혹은 기업환경에서의 데이터 처리 및 관리 등 응용처리를 하는데 있어 웹 규모의 대용량 데이터에 대해 실시간으로 추론 처리가 가능한 인프라로서의 플랫폼이 필요하다.
본 발명이 해결하고자 하는 과제는 웹 규모의 대용량 데이터를 기반으로 추론처리를 필요로 하는 응용프로그램을 지원하기 위해 추론처리에 필요한 데이터인 RDF 및 OWL의 단위인 트리플로 10억 트리플 이상으로 웹 규모의 대용량 데이터에 대해 실시간으로 추론 처리가 가능하도록 분산 저장, 저장 위치 식별, 추론처리에 필요한 트리플 선택, 선택된 트리플들에 대한 추론와 이들 과정을 프로세스를 관리하는 결정처리를 담당하는 모듈들을 등록하고 관리가능한 플러그인 형태로 만들어 각 과정을 조합적으로 병렬처리가 가능하도록 하는 장치와 방법을 제공하는데 있다.
상기의 과제를 해결하기 위해, 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론장치는 웹 규모의 이질적인 대용량 데이터 또는 상기 대용량 데이터에 대해 추론 처리 가능한 데이터로 변환한 RDF 데이터를 분산하여 저장하는 저장부; 상기 대용량 데이터의 질의를 위한 SPARQL 질의어를 전송하고, 상기 SPARQL 질의어에 따른 처리 결과를 수신하는 응용 처리부; 상기 응용 처리부로부터 제공된 상기 SPARQL 질의어에 따라, 상기 대용량 데이터에 대해 상기 RDF 데이터로의 변환 및 추론 처리를 수행하는 플러그인부; 상기 플러그인부가 필요로 하는 데이터를 제공하고, 상기 플러그인부를 관리하는 플랫폼부; 및 질의 및 추론 처리를 위해 필요한 저장 및 처리를 동시에 또는 개별적인 프로세스를 지원하는 병렬 처리 지원부를 포함하고, 상기 병렬 처리 지원부의 지원에 따라, 상기 플러그인부는 질의 및 추론 처리를 위한 순서를 파이프라인 형태로 복수의 프로세스를 생성하여 병렬 처리하는 것을 특징으로 한다.
바람직하게는, 상기 응용 처리부는, HTTP 프로토콜 통신에 의해 상기 플러그인부에 상기 SPARQL 질의어를 전송하고, 상기 플러그인부로부터 상기 SPARQL 질의어에 따른 처리 결과를 HTTP, XML, JSON 중 어느 하나의 데이터 형태로 수신하는 응용 처리 통신부를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 플러그인부는, 상기 응용 처리부로부터 상기 SPARQL 질의어를 수신하고, 상기 SPARQL 질의어에 따른 처리 결과를 상기 응용 처리부로 전송하는 플러그인 통신부; 상기 플러그인 통신부를 통해 수신한 상기 SPARQL 질의어에 대응하는 조회 및 추론 처리의 순서를 결정하는 결정부; 상기 저장부에 저장된 상기 대용량 데이터를 상기 RDF 데이터로 변환하는 변환부; 상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하고, 상기 RDF 데이터가 상기 저장부에 저장된 위치를 파악하는 식별부; 상기 식별부에서 식별된 상기 RDF 데이터를 상기 저장부로부터 인출하여 임시 저장공간에 저장하는 선택부; 및 상기 임시 저장공간에 저장된 상기 RDF 데이터에 대한 추론 처리를 수행하는 추론부를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 추론부는, 선행 추론 처리 및 후행 추론 처리 중 어느 하나의 추론 처리를 수행하는 것을 특징으로 한다.
바람직하게는, 상기 플랫폼부는, 상기 플러그인부과 API 통신을 제공하는 플랫폼 통신부; 상기 저장부에 저장된 데이터에 대한 저장, 삭제, 변경의 데이터 관리 처리를 수행하는 저장 관리부; 상기 플러그인부의 각 구성요소를 서비스로 정의하여 WSDL(Web Service Description Language)를 사용해 등록하는 플러그인 등록부; 상기 플러그인 등록부에 등록된 상기 플러그인부의 각 구성요소에 대한 생성 및 소멸을 관리하는 플러그인 관리부; 및 상기 저장 관리부 및 상기 플러그인 등록부를 관리하는 플랫폼 관리부를 포함하는 것을 특징으로 한다.
상기의 과제를 해결하기 위해, 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론방법은 웹 규모의 이질적인 대용량 데이터를 분산하여 저장하는 단계; 상기 대용량 데이터의 질의를 위한 SPARQL 질의어를 수신하고, 상기 SPARQL 질의어에 대응하는 조회 및 추론 처리의 순서를 결정하는 단계; 상기 대용량 데이터를 상기 RDF 데이터로 변환하는 단계; 상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하고, 상기 RDF 데이터가 저장된 위치를 파악하는 단계; 상기 식별된 RDF 데이터를 인출하여 임시 저장공간에 저장하는 단계; 및 상기 임시 저장공간에 저장된 상기 RDF 데이터에 대한 추론 처리를 수행하는 단계를 포함하고, 상기 조회 및 추론 처리의 순서 결정, 상기 RDF 데이터로의 변환, 상기 RDF 데이터의 식별, 상기 RDF 데이터의 인출, 상기 RDF 데이터의 추론 처리 각각에 대한 순서를 파이프라인 형태로 복수의 프로세스를 생성하여 병렬 처리하는 것을 특징으로 한다.
바람직하게는, HTTP 프로토콜 통신에 의해 상기 SPARQL 질의어를 전송하고, 상기 SPARQL 질의어에 따른 처리 결과를 HTTP, XML, JSON 중 어느 하나의 데이터 형태로 전송하는 것을 특징으로 한다.
바람직하게는, 상기 추론 처리를 수행하는 단계는, 선행 추론 처리 및 후행 추론 처리 중 어느 하나의 추론 처리를 수행하는 것을 특징으로 한다.
바람직하게는, 상기 플러그인 기반의 대용량 데이터의 병렬처리 추론방법은, 상기 추론 처리결과가 상기 SPARQL 질의어에 대응하는 처리 결과인가를 판단하여, 처리결과에 해당하지 않는다고 판단되면, 상기 RDF 데이터로의 변환, 상기 RDF 데이터의 식별, 상기 RDF 데이터의 인출, 상기 RDF 데이터의 추론 처리의 각 단계를 반복하는 것을 특징으로 한다.
본 발명에 따르면, 이질적이고 분산된 웹 규모의 대용량의 데이터를 RDF 데이터로 통합하고 이를 분산 저장하고, RDF 데이터들의 식별, 선택, 추론처리의 과정을 조합하여 다양한 프로세스들로 생성하여, 이러한 데이터들에 대해 병렬적으로 추론 처리하도록 함으로써, 대용량의 데이터들에 대해 시간의 변화에 따라 실시간 추론처리 결과를 제공하는 효과가 있다.
도 1은 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론장치를 설명하기 위한 일 실시예의 블록도이다.
도 2는 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론방법을 설명하기 위한 일 실시예의 플로차트이다.
이하, 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론장치를 첨부된 도면을 가지고 상세히 설명한다.
도 1은 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론장치를 설명하기 위한 일 실시예의 블록도로서, 응용 처리부(100), 플러그인부(200), 플랫폼부(300), 저장부(400) 및 병렬처리 지원부(500)로 구성된다.
저장부(400)는 웹 규모의 이질적인 대용량 데이터 또는 상기 대용량 데이터에 대해 추론 처리 가능한 데이터로 변환한 RDF 데이터(또는, OWL 데이터를 포함한다)를 분산하여 저장하고 있다.
저장부(400)는 웹 페이지, 데이터베이스, 다양한 형태의 파일들과 같이 이질적이고 분산된 데이터를 수집하여 저장하거나, 플러그인부(200)에 의해 변환된 RDF 혹은 OWL형태의 질의 및 추론 결과 데이터를 저장하는 RDF 저장소이다. RDF 또는 OWL 데이터는 subject, predicate, object라 불리는 URI(Unique Resource Identifier)로 구성된 트리플(Triple)로 분산 저장된다.
응용 처리부(100)는 상기 저장부(400)에 저장되어 있는 대용량 데이터 또는 RDF 데이터의 질의를 위한 SPARQL 질의어를 플러그인부(200)로 전송하고, 상기 플러그인부(200)로부터 SPARQL 질의어에 따른 처리 결과를 수신한다. SPARQL 질의어의 전송 및 이에 따른 처리 결과의 수신을 위해, 응용 처리부는 응용 처리 통신부(110)을 구비한다.
응용 처리 통신부(110)는 HTTP 프로토콜 통신에 의해 상기 플러그인부(200)에 상기 SPARQL 질의어를 전송하고, 상기 플러그인부(200)로부터 상기 SPARQL 질의어에 따른 처리 결과를 HTTP, XML, JSON 중 어느 하나의 데이터 형태로 수신한다.
응용 처리부(100)는 SPARQL 질의어에 따른 처리 결과를 분석하고, 응용 목적에 맞게 활용 및 디스플레이한다.
플러그인부(200)는 상기 응용 처리부(100)로부터 제공된 상기 SPARQL 질의어에 따라, 상기 대용량 데이터에 대해 상기 RDF 데이터로의 변환 및 추론 처리를 수행한다.
특히, 플러그인부(200)는 병렬 처리 지원부(500)의 지원에 따라, SPARQL 질의 및 추론 처리를 위한 순서를 파이프라인 형태로 복수의 프로세스를 생성하여 병렬 처리한다. 이를 위해, 플러그인부(200)는 플러그인 통신부(210), 결정부(220), 변환부(230), 식별부(240), 선택부(250) 및 추론부(260)으로 구성된다. 플러그인부(200)의 각 구성요소들은 자체 개발 혹은 외부 상용 모듈들을 플랫폼부(300)에서 관리 가능하게 플러그인으로 래핑(Wrapping)한다. 래핑된 모듈들은 로컬(local)에서 처리하거나 혹은 리모트(remote)의 다른 서버의 처리를 지원 받을 수 있다.
플러그인 통신부(210)는 상기 응용 처리 통신부(110)로부터 상기 SPARQL 질의어를 수신하고, 상기 SPARQL 질의어에 따른 처리 결과를 상기 응용 처리 통신부(110)로 전송한다.
결정부(220)는 상기 플러그인 통신부(210)를 통해 수신한 상기 SPARQL 질의어에 대응하는 조회 및 추론 처리의 순서를 결정한다. 결정부(220)는 응용 처리부(100)로부터 수신한 SPARQL 질의어에 따라, SPARQL 질의에 필요한 조회 및 추론처리를 위한 프로세스로서 플러그인부(200)의 구성요소인 변환부(230), 식별부(240), 선택부(250), 추론부(260)를 조합하여 파이프라인 프로세스를 생성한다. 플러그인으로 래핑(Wrapping)된 결정부(220)가 응용처리부(100)의 목적에 맞는 다양한 조합의 파이프라인 프로세스를 생성한다.
결정부(220)는 프로세스로서의 파이프라인의 단말인 추론부(260)의 결과를 받아서, SPARQL 질의 처리의 결과에 해당하는가 여부를 판단하여, 응용처리부(100)에 처리결과를 보내어 종료하거나, 올바른 결과가 나올 때까지 계속해서 해당 프로세스를 진행시킨다.
변환부(230)는 결정부(220)에서 결정된 프로세스의 순서에 따라, 상기 저장부(400)에 저장된 상기 대용량 데이터를 상기 RDF 데이터로 변환한다. 변환부(230)는 이질적인 데이터 형태의 데이터를 RDF 형태로 변환하는 플러그인으로서 RDF 데이터로 변환하는 과정이 다단계가 필요한 경우 복수의 변환부를 이어 다양한 형태의 데이터 변환을 거쳐 RDF 데이터로 변환한다.
식별부(240)는 상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하고, RDF 데이터가 저장부(400)에 저장된 위치를 파악한다. 식별부(240)은 SPARQL 질의어에 대해 필요한 RDF와 리소스Resource가 무엇인지 알아낸다. 또한 이들 RDF와 리소스가 분산 저장된 상태에서 어느 저장소 어느 위치에 저장되어 있는지 알아낸다. 식별부(240)는 병렬적인 처리를 위해 복수개를 구비할 수 있으며, 결정부(220)의 다양한 조합에 따라, 상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하는 작업을 병렬적으로 수행할 수 있다.
선택부(250)는 상기 식별부(240)에서 식별된 상기 RDF 데이터를 상기 저장부(400)로부터 인출하여 임시 저장공간(미도시)에 저장한다. 선택부(250)은 식별된 RDF 데이터를 데이터가 분산 저장된 저장부(400)로부터 가져와 임시 저장소에 모아둔다. 선택부(250)는 병렬적인 처리를 위해 복수개를 구비할 수 있으며, 결정부(220)의 다양한 조합에 따라, 상기 RDF 데이터를 상기 저장부(400)로부터 인출하는 작업을 병렬적으로 수행할 수 있다.
추론부(260)는 상기 임시 저장공간에 저장된 상기 RDF 데이터에 대한 추론 처리를 수행한다. 추론부(260)는 선택부(250)에 의해 선택된 RDF 데이터들을 가지고 SPARQL 질의어에서 요청하는 질의처리 및 추론처리를 상용 혹은 공개용 추론엔진 모듈로 래핑(wrapping)한 플러그인으로서 추론처리를 수행한다.
추론부(260)는 추론처리의 목적과 추론엔진의 특성에 따라 선행 추론 처리와 후행 추론 처리를 사용할 수 있다. 선행 추론 처리는 이미 수집되어 저장된 데이터들을기반으로 RDF 혹은 OWL의 표현에 따라 개념 정의 및 관계에 충족하는 데이터들을 미리 생성한다. 후행 추론 처리는 새롭게 추가된 원천 데이터가 RDF로 변형되어 추가된 후 새로운 관계 데이터들을 생성을 위해 추론처리를 수행한다.
플랫폼부(300)는 상기 플러그인부(200)가 필요로 하는 데이터를 제공하고, 상기 플러그인부(200)를 관리한다. 이를 위해, 플랫폼부(300)는 플랫폼 통신부(310), 플랫폼 관리부(320), 플러그인 등록부(330), 저장 관리부(340) 및 플러그인 관리부(350)으로 구성된다.
플랫폼 통신부(310)는 상기 플러그인부(200)과 API(Application Programming Interface) 통신을 제공한다. 플랫폼 통신부(310)는 플러그인부(200)로부터 플랫폼부(300)에 요청하는 메시지와 그에 대한 응답을 전달하는 API를 제공한다.
플랫폼 관리부(320)는 플러그인 등록부(330) 및 저장 관리부(340)의 구동을 관리한다. 플랫폼 관리부(320)는 파이프라인 내에 서로 다른 플러그인들 간의 데이터를 교환하고, 플러그인들 간의 통제 메시지를 관리한다. 또한 플랫폼 관리부(320)는 플러그인들에서 발생되는 에러, 경고, 정보 등의 이력 정보를 생성한다.
플러그인 등록부(330)는 플러그인부(200)의 각 구성요소를 서비스로 정의하여 WSDL(Web Service Description Language)를 사용해 다양한 플러그인들을 등록한다. 각 플러그인들의 이름, 종류, 플러그인 객체를 실행시킬 명령어, 필요로 하는 데이터 타입, 출력결과 형태정보를 각 플러그인 별 WSDL에 명세하여, 플러그인 등록부(330)의 내부 저장소에 저장한다. 결정부(220)에서 서로 다른 플러그인들의 조합으로 만들어진 파이프라인을 생성 시, 각 플러그인들의 WSDL정보를 참조하여 파이프라인 동작시 각 플러그인들의 기능을 수행하게 한다.
저장 관리부(340)는 저장부(400)에 저장된 데이터에 대한 저장, 삭제, 변경의 데이터 관리 요청을 처리한다. 저장 관리부(340)는 저장부(400)에 저장되는 RDF 데이터를 SPARQL에 의해 질의 처리에 의해 질의조건에 맞는 RDF 데이터를 가져온다. 각 플러그인들간의 데이터 교환을 위한 중간 매개 역할로서, 저장된 데이터들 중 일부에 별도 레이블을 달아 플러그인들간 데이터 교환시, 레이블 정보를 교환하여 플러그인들이 RYDDB할 데이터를 사용할 수 있게 관리한다.
플러그인 관리부(350)는 플러그인 등록부(330)에 등록된 플러그인부(200)의 각 구성요소에 대한 생성 및 소멸을 관리한다. 플러그인 등록부(330)에 등록된 명세서를 참조하여 결정부(220)가 파이프라인을 생성하고 실제 동작 실행시에, 플러그인 관리부(350)는 명시적인 플러그인을 플러그인 인스턴스를 실행 메모리에 적재하여 실제 플러그인 인스턴스가 동작하게 한다. 파이프라인이 모든 동작을 마치면, 실행 메모리에서 플러그인 인스턴스를 해제한다. 이는 실행 시에 메모리를 할당하여 사용하게 함으로써, 메모리 자원의 활용도를 높인다.
병렬처리 지원부(500)는 질의 및 추론 처리를 위해 필요한 저장 및 처리를 동시에 또는 개별적인 프로세스를 지원한다. 병렬처리지원부(500)는 파이프라인의 병렬 처리 및 파이프라인 내 병렬 조합된 플러그인들의 처리를 하는데 있어서, 병렬 저장 및 질의 처리와 같은 자원 사용시, 플랫폼부(300)에서 사용가능한 다중 분산된 하드웨어 자원들에 대해 병렬 처리가 가능한 프로세스를 관리한다.
이하, 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론방법을 첨부된 도면을 가지고 상세히 설명한다.
도 2는 본 발명에 따른 플러그인 기반의 대용량 데이터의 병렬처리 추론방법을 설명하기 위한 일 실시예의 플로차트이다.
먼저, 웹 규모의 이질적인 대용량 데이터를 분산하여 저장한다(제600 단계). 한편, 대용량 데이터로서 추론 처리 가능한 데이터로 변환한 RDF 데이터(또는, OWL 데이터)를 분산하여 저장할 수도 있다. RDF 또는 OWL 데이터는 subject, predicate, object라 불리는 URI(Unique Resource Identifier)로 구성된 트리플(Triple)로 분산 저장된다.
제600 단계 후에, 상기 대용량 데이터의 질의를 위한 SPARQL 질의어를 수신하고, 상기 SPARQL 질의어에 대응하는 조회 및 추론 처리의 순서를 결정한다(제602 단계). HTTP 프로토콜 통신에 의해 상기 SPARQL 질의어를 수신한다. 수신한 SPARQL 질의어에 따라, SPARQL 질의에 필요한 조회 및 추론처리를 위한 프로세스로서 플러그인들에 대한 각각에 대한 순서, 예를 들어, 변환, 식별, 선택, 추론을 위한 파이프라인 프로세스를 조합하여 생성한다.
질의 및 추론을 위한 각 구성요소들은 플랫폼부에서 관리 가능하게 플러그인으로 래핑(Wrapping)하여 SPARQL 질의 목적에 맞는 다양한 조합의 파이프라인 프로세스를 생성한다. 래핑된 모듈들은 로컬(local)에서 처리하거나 혹은 리모트(remote)의 다른 서버의 처리를 지원 받을 수 있다.
제602 단계 후에, 상기 대용량 데이터를 상기 RDF 데이터로 변환한다(제604 단계). 결정된 프로세스의 순서에 따라, 대용량 데이터가 분산되어 저장된 저장소로부터 대용량 데이터를 인출하여 RDF 데이터로 변환한다. 이질적인 데이터 형태의 데이터를 RDF 형태로 변환하는 플러그인으로서 RDF 데이터로 변환하는 과정이 다단계가 필요한 경우, 다단계에 의한 다양한 형태의 데이터 변환을 거쳐 RDF 데이터로 변환한다.
제604 단계 후에, 상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하고, 상기 RDF 데이터가 저장된 위치를 파악한다(제606 단계).
SPARQL 질의어에 대해 필요한 RDF와 리소스Resource가 무엇인지 알아낸다. 또한 이들 RDF와 리소스가 분산 저장된 상태에서 어느 저장소 어느 위치에 저장되어 있는지 알아낸다. 특히, 다양한 조합에 따른 병렬 프로세스의 수행을 위해, 상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하는 작업을 병렬적으로 수행할 수 있다.
제606 단계 후에, 상기 식별된 RDF 데이터를 인출하여 임시 저장공간에 저장한다(제608 단계). 식별된 RDF 데이터를 데이터가 분산 저장된 저장소로부터 가져와 임시 저장소에 모아둔다. 특히, 다양한 조합에 따른 병렬 프로세스의 수행을 위해, 상기 RDF 데이터를 상기 저장소로부터 인출하는 작업을 병렬적으로 수행할 수 있다.
제608 단계 후에, 상기 임시 저장공간에 저장된 상기 RDF 데이터에 대한 추론 처리를 수행한다(제610 단계). 저장소로부터 선택된 RDF 데이터들을 가지고 SPARQL 질의어에서 요청하는 질의처리 및 추론처리를 상용 혹은 공개용 추론엔진 모듈로 래핑(wrapping)한 플러그인으로서 추론처리를 수행한다. 특히, 추론처리의 목적과 추론엔진의 특성에 따라 선행 추론 처리와 후행 추론 처리를 사용할 수 있다. 선행 추론 처리는 이미 수집되어 저장된 데이터들을기반으로 RDF 혹은 OWL의 표현에 따라 개념 정의 및 관계에 충족하는 데이터들을 미리 생성한다. 후행 추론 처리는 새롭게 추가된 원천 데이터가 RDF로 변형되어 추가된 후 새로운 관계 데이터들을 생성을 위해 추론처리를 수행한다.
제610 단계 후에, 상기 추론 처리결과가 상기 SPARQL 질의어에 대응하는 처리 결과인가를 판단한다(제612 단계). 만일, 상기 추론 처리결과가 상기 SPARQL 질의어에 대응하는 처리 결과에 해당하지 않는다고 판단되면, 상기 RDF 데이터로의 변환, 상기 RDF 데이터의 식별, 상기 RDF 데이터의 인출, 상기 RDF 데이터의 추론 처리의 각 단계를 반복한다. SPARQL 질의 처리의 결과에 해당하는가 여부를 판단하여, 올바른 결과가 나올 때까지 계속해서 해당 프로세스를 진행시킨다.
만일, SPARQL 질의어에 대응하는 처리 결과에 해당한다면, 상기 SPARQL 질의어에 따른 추론 처리 결과는 HTTP, XML, JSON 중 어느 하나의 데이터 형태로 클라이언트(응용 처리부)로 전송한다.
한편, 전술한 각 단계 즉, 상기 조회 및 추론 처리의 순서 결정, 상기 RDF 데이터로의 변환, 상기 RDF 데이터의 식별, 상기 RDF 데이터의 인출, 상기 RDF 데이터의 추론 처리 각각에 대한 순서를 파이프라인 형태로 복수의 프로세스를 생성하여 병렬 처리할 수 있다. 즉, 상기 제602 단계에서 추론 처리를 위한 순서를 다양한 조합에 의해 복수개로 결정하고, 각 조합에 대응하는 작업을 병렬적으로 수행하도록 함으로써, 대용량의 데이터에 대한 병렬 추론 처리가 가능하도록 한다.
한편, 상술한 본 발명의 플러그인 기반의 대용량 데이터의 병렬처리 추론방법은 컴퓨터에서 읽을 수 있는 코드/명령들(instructions)/프로그램으로 구현될 수 있다. 예를 들면, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 코드/명령들/프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는 마그네틱 저장 매체(예를 들어, 롬, 플로피 디스크, 하드디스크, 마그네틱 테이프 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 와 같은 저장 매체를 포함한다.
이러한 본원 발명인 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법은 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.
100: 응용 처리부
110: 응용 처리 통신부
200: 플러그인부
210: 플러그인 통신부
220: 결정부
230: 변환부
240: 식별부
250: 선택부
260: 추론부
300: 플랫폼부
310: 플랫폼 통신부
320: 플랫폼 관리부
330: 플러그인 등록부
340: 저장 관리부
350: 플러그인 관리부
400: 저장부
500: 병렬처리 지원부

Claims (9)

  1. 웹 규모의 이질적인 대용량 데이터 또는 상기 대용량 데이터에 대해 추론 처리 가능한 데이터로 변환한 RDF 데이터를 분산하여 저장하는 저장부;
    상기 대용량 데이터의 질의를 위한 SPARQL 질의어를 전송하고, 상기 SPARQL 질의어에 따른 처리 결과를 수신하는 응용 처리부;
    상기 응용 처리부로부터 제공된 상기 SPARQL 질의어에 따라, 상기 대용량 데이터에 대해 상기 RDF 데이터로의 변환 및 추론 처리를 수행하는 플러그인부;
    상기 플러그인부가 필요로 하는 데이터를 제공하고, 상기 플러그인부를 관리하는 플랫폼부; 및
    질의 및 추론 처리를 위해 필요한 저장 및 처리를 동시에 또는 개별적인 프로세스를 지원하는 병렬 처리 지원부를 포함하고,
    상기 병렬 처리 지원부의 지원에 따라, 상기 플러그인부는 질의 및 추론 처리를 위한 순서를 파이프라인 형태로 복수의 프로세스를 생성하여 병렬 처리하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론장치.
  2. 제1항에 있어서, 상기 응용 처리부는
    HTTP 프로토콜 통신에 의해 상기 플러그인부에 상기 SPARQL 질의어를 전송하고, 상기 플러그인부로부터 상기 SPARQL 질의어에 따른 처리 결과를 HTTP, XML, JSON 중 어느 하나의 데이터 형태로 수신하는 응용 처리 통신부를 포함하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론장치.
  3. 제1항에 있어서, 상기 플러그인부는
    상기 응용 처리부로부터 상기 SPARQL 질의어를 수신하고, 상기 SPARQL 질의어에 따른 처리 결과를 상기 응용 처리부로 전송하는 플러그인 통신부;
    상기 플러그인 통신부를 통해 수신한 상기 SPARQL 질의어에 대응하는 조회 및 추론 처리의 순서를 결정하는 결정부;
    상기 저장부에 저장된 상기 대용량 데이터를 상기 RDF 데이터로 변환하는 변환부;
    상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하고, 상기 RDF 데이터가 상기 저장부에 저장된 위치를 파악하는 식별부;
    상기 식별부에서 식별된 상기 RDF 데이터를 상기 저장부로부터 인출하여 임시 저장공간에 저장하는 선택부; 및
    상기 임시 저장공간에 저장된 상기 RDF 데이터에 대한 추론 처리를 수행하는 추론부를 포함하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론장치.
  4. 제3항에 있어서, 상기 추론부는
    선행 추론 처리 및 후행 추론 처리 중 어느 하나의 추론 처리를 수행하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론장치.
  5. 제1항에 있어서, 상기 플랫폼부는
    상기 플러그인부과 API 통신을 제공하는 플랫폼 통신부;
    상기 저장부에 저장된 데이터에 대한 저장, 삭제, 변경의 데이터 관리 처리를 수행하는 저장 관리부;
    상기 플러그인부의 각 구성요소를 서비스로 정의하여 WSDL(Web Service Description Language)를 사용해 등록하는 플러그인 등록부;
    상기 플러그인 등록부에 등록된 상기 플러그인부의 각 구성요소에 대한 생성 및 소멸을 관리하는 플러그인 관리부; 및
    상기 저장 관리부 및 상기 플러그인 등록부를 관리하는 플랫폼 관리부를 포함하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론장치.
  6. 웹 규모의 이질적인 대용량 데이터를 분산하여 저장하는 단계;
    상기 대용량 데이터의 질의를 위한 SPARQL 질의어를 수신하고, 상기 SPARQL 질의어에 대응하는 조회 및 추론 처리의 순서를 결정하는 단계;
    상기 대용량 데이터를 상기 RDF 데이터로 변환하는 단계;
    상기 SPARQL 질의어에 대응하는 RDF 데이터를 식별하고, 상기 RDF 데이터가 저장된 위치를 파악하는 단계;
    상기 식별된 RDF 데이터를 인출하여 임시 저장공간에 저장하는 단계; 및
    상기 임시 저장공간에 저장된 상기 RDF 데이터에 대한 추론 처리를 수행하는 단계를 포함하고,
    상기 조회 및 추론 처리의 순서 결정, 상기 RDF 데이터로의 변환, 상기 RDF 데이터의 식별, 상기 RDF 데이터의 인출, 상기 RDF 데이터의 추론 처리 각각에 대한 순서를 파이프라인 형태로 복수의 프로세스를 생성하여 병렬 처리하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론방법.
  7. 제6항에 있어서,
    HTTP 프로토콜 통신에 의해 상기 SPARQL 질의어를 수신하고, 상기 SPARQL 질의어에 따른 처리 결과를 HTTP, XML, JSON 중 어느 하나의 데이터 형태로 전송하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론방법.
  8. 제6항에 있어서, 상기 추론 처리를 수행하는 단계는
    선행 추론 처리 및 후행 추론 처리 중 어느 하나의 추론 처리를 수행하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론방법.
  9. 제6항에 있어서, 상기 플러그인 기반의 대용량 데이터의 병렬처리 추론방법은
    상기 추론 처리결과가 상기 SPARQL 질의어에 대응하는 처리 결과인가를 판단하여, 처리결과에 해당하지 않는다고 판단되면, 상기 RDF 데이터로의 변환, 상기 RDF 데이터의 식별, 상기 RDF 데이터의 인출, 상기 RDF 데이터의 추론 처리의 각 단계를 반복하는 것을 특징으로 하는 플러그인 기반의 대용량 데이터의 병렬처리 추론방법.
KR1020110016661A 2011-02-24 2011-02-24 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법 KR101248192B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110016661A KR101248192B1 (ko) 2011-02-24 2011-02-24 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110016661A KR101248192B1 (ko) 2011-02-24 2011-02-24 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120097220A true KR20120097220A (ko) 2012-09-03
KR101248192B1 KR101248192B1 (ko) 2013-04-03

Family

ID=47108613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110016661A KR101248192B1 (ko) 2011-02-24 2011-02-24 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법

Country Status (1)

Country Link
KR (1) KR101248192B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010659A (ko) * 2018-06-29 2020-01-31 서울시립대학교 산학협력단 스트림리즈닝 시스템
WO2022092330A1 (ko) * 2020-10-26 2022-05-05 주식회사 데이터누리 Dcat 기반 메타데이터 변환 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250048B2 (en) * 2009-04-20 2012-08-21 Oracle International Corporation Access control for graph data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010659A (ko) * 2018-06-29 2020-01-31 서울시립대학교 산학협력단 스트림리즈닝 시스템
WO2022092330A1 (ko) * 2020-10-26 2022-05-05 주식회사 데이터누리 Dcat 기반 메타데이터 변환 시스템

Also Published As

Publication number Publication date
KR101248192B1 (ko) 2013-04-03

Similar Documents

Publication Publication Date Title
US11567956B2 (en) Background format optimization for enhanced queries in a distributed computing cluster
US9639575B2 (en) Method and system for processing data queries
CN109656963B (zh) 元数据获取方法、装置、设备及计算机可读存储介质
CN111752959B (zh) 一种实时数据库跨库sql交互方法和系统
US20160012097A1 (en) Checking freshness of data for a data integration system, dis
KR102662252B1 (ko) 자동화 목적들을 위한 데이터 모델을 타겟 온톨로지로 변환하기 위한 방법
US20190213007A1 (en) Method and device for executing the distributed computation task
El Kaed et al. Forte: A federated ontology and timeseries query engine
KR101248192B1 (ko) 플러그인 기반의 대용량 데이터의 병렬처리 추론장치 및 방법
Grasic et al. Automating ontology based information integration using service orientation
CN102456070B (zh) 检索装置和检索方法
Alaoui et al. Semantic oriented data modeling based on RDF, RDFS and OWL
CN113326305A (zh) 一种处理数据的方法和装置
Rani et al. Big social data provenance framework for zero-information loss key-value pair (KVP) database
Viola et al. Performance Evaluation Suite for Semantic Publish-Subscribe Message-oriented Middlewares
EP4235517A1 (en) Wrapper, computer program product, system and computer implemented method for data transformation
Sellami et al. A decentralized and service‐based solution for data mediation: the case for data providing service compositions
CN116795663B (zh) 一种跟踪分析trino引擎执行性能的方法
CN110555042A (zh) 一种数据的实时检索方法,装置及系统
Kumar et al. Things Data Interoperability Through Annotating oneM2M resources for NGSI-LD Entities
Gan et al. Heterogeneous information knowledge construction based on Ontology
Zhang et al. Current and future challenges of geospatial semantic web
Park et al. Scalable visualization for DBpedia ontology analysis using Hadoop
Rabhi et al. Saving Knowledge About Sources: An Efficient Method for Querying Distributed Data
KR20150095459A (ko) 의미 데이터 구축 서버, 의미 데이터 구축 클라이언트, 및 이들을 포함하는 의미 데이터 구축 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190314

Year of fee payment: 7

R401 Registration of restoration