Nothing Special   »   [go: up one dir, main page]

KR20090044463A - System and method for converting rdql query to sql query using optimization transformation rule - Google Patents

System and method for converting rdql query to sql query using optimization transformation rule Download PDF

Info

Publication number
KR20090044463A
KR20090044463A KR1020070110580A KR20070110580A KR20090044463A KR 20090044463 A KR20090044463 A KR 20090044463A KR 1020070110580 A KR1020070110580 A KR 1020070110580A KR 20070110580 A KR20070110580 A KR 20070110580A KR 20090044463 A KR20090044463 A KR 20090044463A
Authority
KR
South Korea
Prior art keywords
query
sql
rdql
triple pattern
rdf graph
Prior art date
Application number
KR1020070110580A
Other languages
Korean (ko)
Other versions
KR100912190B1 (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 KR1020070110580A priority Critical patent/KR100912190B1/en
Publication of KR20090044463A publication Critical patent/KR20090044463A/en
Application granted granted Critical
Publication of KR100912190B1 publication Critical patent/KR100912190B1/en

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/24Querying
    • G06F16/242Query formulation
    • 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/2453Query optimisation

Landscapes

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

Abstract

최적화 변환 규칙을 적용하여 RDQL(Resource Description Framework Data Query Language) 질의를 SQL 질의로 변환하는 RDQL-TO-SQL 시스템 및 방법이 개시된다. RDQL-TO-SQL 시스템은 RDQL 질의의 트리플 패턴(triple pattern)을 이용하여 RDF 그래프를 결정하고, 상기 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF(Resource Description Framework) 그래프로 변환하는 RDF 그래프 변환부 및 상기 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 상기 RDQL 질의에 대응하는 SQL 질의를 생성하는 SQL 질의 생성부를 포함한다. 본 발명에 따르면, RDQL 질의에서 SQL 질의로 효율적인 질의 처리가 가능하다.Disclosed are an RDQL-TO-SQL system and method for converting a Resource Description Framework Data Query Language (RDQL) query to an SQL query by applying an optimization conversion rule. The RDQL-TO-SQL system determines an RDF graph using a triple pattern of RDQL queries, and converts the RDF graph into an optimized Resource Description Framework (RDF) graph by applying an optimization conversion rule to the RDF graph. And an SQL query generator for generating a SQL query corresponding to the RDQL query by applying a graph search to the triple pattern existing in the optimized RDF graph. According to the present invention, efficient query processing is possible from an RDQL query to an SQL query.

RDQL 질의, SQL 질의, OTR, 데이터베이스, 최적화 변환 RDQL Query, SQL Query, OTR, Database, Optimization Conversion

Description

최적화 변환 규칙을 적용하여 RDQL 질의를 SQL 질의로 변환하는 RDQL-TO-SQL 시스템 및 방법 {SYSTEM AND METHOD FOR CONVERTING RDQL QUERY TO SQL QUERY USING OPTIMIZATION TRANSFORMATION RULE}System and method for converting an RDDL query into a SLD query by applying an optimization transformation rule {SYSTEM AND METHOD FOR CONVERTING RDQL QUERY TO SQL QUERY USING OPTIMIZATION TRANSFORMATION RULE}

본 발명은 최적화 변환 규칙을 적용하여 RDQL(Resource Description Framework Data Query Language) 질의를 SQL 질의로 변환하는 RDQL-TO-SQL 시스템 및 방법에 관한 것이다. 구체적으로, 본 발명은 차세대 지능형 웹인 시멘틱 웹(semantic web) 기반에서 최적화 변환 규칙을 통해 RDQL 질의를 관계형 데이터 베이스 시스템(RDBMS)에서 처리할 수 있는 SQL 질의로 변환하는 RDQL-TO-SQL 시스템 및 방법에 관한 것이다.The present invention relates to an RDQL-TO-SQL system and method for converting a Resource Description Framework Data Query Language (RDQL) query into an SQL query by applying an optimization conversion rule. Specifically, the present invention provides an RDQL-TO-SQL system and method for converting an RDQL query into an SQL query that can be processed in a relational database system (RDBMS) through an optimization conversion rule based on the semantic web, which is a next-generation intelligent web. It is about.

최근, 시멘틱 웹 환경에서 RDF/S 또는 OWL(Web Ontology Language)로 기술된 웹 페이지, 이미지, 동영상 등의 웹 자원인 온톨로지/인스턴스를 효율적으로 질의하기 위한 연구가 활발히 진행되고 있다.Recently, research has been actively conducted to efficiently query ontologies / instances which are web resources such as web pages, images, and videos described in RDF / S or OWL (Web Ontology Language) in a semantic web environment.

RDF/S 또는 OWL로 기술된 온톨로지/인스턴스 문서가 방대해짐에 따라 이를 처리할 수 있는 온톨로지 데이터 베이스 시스템을 필요로 한다. 또한 대용량 온톨로지 데이터베이스 시스템에서 효율적인 온톨로지/인스턴스 질의 처리를 요구한다. 이러한 요구 조건을 충족시키기 위해 높은 성능을 나타내는 RDQL 질의 처리 기법이 문제된다.As ontology / instance documents described as RDF / S or OWL become huge, they need an ontology database system that can handle them. It also requires efficient ontology / instance query processing in large-scale ontology database systems. In order to satisfy this requirement, a high performance RDQL query processing technique is problematic.

종래의 RDQL 질의 처리 기법은 특정한 저장소로부터 질의 대상이 되는 네임스페이스에 대응하는 그래프를 클라이언트로 전부 가져와서, RDQL 질의에 대한 결과를 제공한다. 그러나, 종래의 RDQL 질의 처리 기법에 의하면, RDQL 질의를 RDQL 질의 처리를 위해 필요하지 않는 데이터까지 클라이언트로 가져오기 때문에 비효율적인 문제점이 있었다. 그리고, 불필요한 데이터를 전송하기 위해 네트워크 전송 오버헤드가 발생하는 문제점이 있었다.Conventional RDQL query processing techniques bring all the graphs corresponding to the namespace to be queried from a particular repository to the client, and provide the results for the RDQL query. However, according to the conventional RDQL query processing technique, there is an inefficient problem because the RDQL query is imported to the client even data that is not necessary for RDQL query processing. In addition, there is a problem in that network transmission overhead occurs to transmit unnecessary data.

따라서, 불필요한 질의를 제거하고, RDQL 질의를 보다 빠르게 처리할 수 있는 발명이 절실히 요구된다고 하겠다.Therefore, there is an urgent need for an invention that can remove unnecessary queries and process RDQL queries faster.

본 발명은 최적화 변환 규칙을 적용하여 RDQL 질의를 SQL 질의로 변환함으로써 RDQL 질의를 효율적으로 처리할 수 있는 RDQL-TO-SQL 시스템 및 방법을 제공한다.The present invention provides an RDQL-TO-SQL system and method capable of efficiently processing an RDQL query by applying an optimization conversion rule to convert the RDQL query into an SQL query.

본 발명은 RDQL 질의의 트리플 패턴을 통해 결정된 RDF 그래프에서 최적화 변환 규칙을 적용하여 불필요한 SQL 질의가 생성되는 것을 방지함으로써 RDQL 질의를 보다 빠르게 처리할 수 있는 RDQL-TO-SQL 시스템 및 방법을 제공한다.The present invention provides an RDQL-TO-SQL system and method that can process an RDQL query faster by applying an optimization conversion rule in the RDF graph determined through the triple pattern of the RDQL query to prevent unnecessary SQL queries from being generated.

본 발명의 일실시예에 따른 RQDL-TO-SQL 시스템은 RDQL 질의의 트리플 패턴(triple pattern)을 이용하여 RDF 그래프를 결정하고, 상기 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF(Resource Description Framework) 그래프로 변환하는 RDF 그래프 변환부 및 상기 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 상기 RDQL 질의에 대응하는 SQL 질의를 생성하는 SQL 질의 생성부를 포함한다.According to an embodiment of the present invention, the RQDL-TO-SQL system determines an RDF graph by using a triple pattern of RDQL queries, and applies an RDF graph to an optimized transformation rule by applying an optimization conversion rule to the RDF graph. RDF graph conversion unit for converting to a graph and SQL query generation unit for generating a SQL query corresponding to the RDQL query by applying a graph search to the triple pattern existing in the optimized RDF graph.

본 발명의 일측면에 따르면, 상기 RDF 그래프 변환부는 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 로컬 최적화부 및 트리플 패턴에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 글로벌 최적화부를 포함한다.According to an aspect of the present invention, the RDF graph converter considers whether a triple pattern exists and a local optimizer that removes the triple pattern from the RDF graph and considers whether a preset selection variable exists in the triple pattern. And a global optimizer to remove the triple pattern from the RDF graph.

본 발명의 일측면에 따르면, 상기 SQL 질의 생성부는 상기 최적화된 RDF 그 래프에서 트리플 패턴 각각에 대한 SQL 질의를 생성하고, 상기 RDF 그래프에 대한 그래프 탐색 과정을 적용하여 트리플 패턴의 공유 방식에 따라 상기 SQL 질의 사이에 조인(join)을 수행할 수 있다.According to an aspect of the present invention, the SQL query generating unit generates a SQL query for each of the triple patterns in the optimized RDF graph, and applying the graph search process for the RDF graph according to the sharing method of the triple pattern You can join between SQL queries.

본 발명의 일실시예에 따른 RDQL-TO-SQL 방법은 RDQL 질의의 트리플 패턴을 이용하여 RDF 그래프를 결정하는 단계, 상기 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF 그래프로 변환하는 단계 및 상기 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 상기 RDQL 질의에 대응하는 SQL 질의를 생성하는 단계를 포함한다.RDQL-TO-SQL method according to an embodiment of the present invention to determine the RDF graph using the triple pattern of the RDQL query, converting to the optimized RDF graph by applying an optimization conversion rule to the RDF graph and Generating a SQL query corresponding to the RDQL query by applying a graph search to a triple pattern existing in the optimized RDF graph.

본 발명의 일측면에 따르면, RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF 그래프로 변환하는 상기 단계는 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 단계 및 트리플 패턴에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 단계를 포함한다.According to an aspect of the present invention, the step of converting into an optimized RDF graph by applying an optimization conversion rule to the RDF graph, the step of removing the triple pattern from the RDF graph and the triple pattern in consideration of the position where the triple pattern exists; Removing the triple pattern from the RDF graph in consideration of whether a preset selection variable exists.

본 발명의 일측면에 따르면, 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 상기 단계는 어느 트리플 패턴이 RDF 그래프의 특정 위치에서 다른 트리플 패턴의 부모 집합이 될 때, 부모 집합이 되는 트리플 패턴을 삭제할 수 있다.According to an aspect of the present invention, the step of removing a triple pattern from the RDF graph in consideration of the position where the triple pattern exists is a parent when one triple pattern becomes a parent set of another triple pattern at a specific position of the RDF graph. You can delete the triple pattern that becomes the set.

본 발명에 따르면, 최적화 변환 규칙을 적용하여 RDQL 질의를 SQL 질의로 변환함으로써 RDQL 질의를 효율적으로 처리할 수 있는 RDQL-TO-SQL 시스템 및 방법 이 제공된다.According to the present invention, an RDQL-TO-SQL system and method are provided that can efficiently process an RDQL query by converting the RDQL query into an SQL query by applying an optimization conversion rule.

본 발명에 따르면, RDQL 질의의 트리플 패턴을 통해 결정된 RDF 그래프에서 최적화 변환 규칙을 적용하여 불필요한 SQL 질의가 생성되는 것을 방지함으로써 RDQL 질의를 보다 빠르게 처리할 수 있는 RDQL-TO-SQL 시스템 및 방법이 제공된다.According to the present invention, there is provided an RDQL-TO-SQL system and method that can process an RDQL query faster by applying an optimization conversion rule in the RDF graph determined through the triple pattern of the RDQL query to prevent unnecessary SQL query generation. do.

본 발명에 따르면, RDQL 질의 처리에 대한 빠른 성능을 보장할 수 있기 때문에 온톨로지(ontology)를 이용하는 로봇, 텔레매틱스, 지능형 홈네트워크와 같은 실시간 질의 처리를 요구하는 환경에서 유용하게 적용될 수 있다.According to the present invention, since it is possible to ensure fast performance for RDQL query processing, it can be usefully applied in an environment requiring real-time query processing such as robots, telematics, and intelligent home networks using ontology.

본 발명에 따르면, 방대한 온톨로지 데이터베이스가 구축되어 있고, 이를 사용하는 사용자가 많은 경우 효율적인 RDQL 질의 처리 성능을 보장할 수 있다.According to the present invention, a large ontology database is constructed, and when a large number of users use it, it is possible to ensure efficient RDQL query processing performance.

이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다. 다만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, with reference to the contents described in the accompanying drawings will be described in detail an embodiment according to the present invention. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일실시예에 따른 RDQL-TO-SQL 시스템의 내부 구성을 도시한 블록 다이어그램이다.1 is a block diagram showing the internal configuration of the RDQL-TO-SQL system according to an embodiment of the present invention.

도 1을 참조하면, RDQL-TO-SQL 시스템(101)은 트리플 패턴 추출부(102), RDF 그래프 변환부(103), SQL 질의 생성부(106) 및 SQL 질의 처리부를 포함한다. 이 때, RDF 그래프 변환부(103)는 로컬 최적화부(104)와 글로벌 최적화부(105)를 포함한다.Referring to FIG. 1, the RDQL-TO-SQL system 101 includes a triple pattern extractor 102, an RDF graph converter 103, an SQL query generator 106, and an SQL query processor. In this case, the RDF graph converter 103 includes a local optimizer 104 and a global optimizer 105.

트리플 패턴 파싱부(102)는 RDQL 질의를 파싱하여 상기 RDQL 질의로부터 주 어, 목적어 및 서술어의 구성 요소를 포함하는 트리플 패턴(triple pattern)을 추출할 수 있다. 시멘틱 웹 환경에서 가장 기초가 되는 것은 RDF(Resource Description Framework)이다. RDF는 특정 자원에 대한 메타 데이터를 기술하는 XML 기반의 프레임워크이다. 이 때, RDQL은 RDF를 위한 질의 언어라고 할 수 있다.The triple pattern parsing unit 102 may parse the RDQL query and extract a triple pattern including components of the subject, the object, and the descriptor from the RDQL query. The most basic in the semantic web environment is the RDF (Resource Description Framework). RDF is an XML-based framework for describing metadata about specific resources. In this case, RDQL may be referred to as a query language for RDF.

RDF는 레코드(record)를 하나의 기술 단위로 취급해온 기존의 방식과는 달리 자원, 속성, 속성 값을 하나의 단위로 취급할 수 있다. 이 때, RDF는 자원을 나타내는 주어(Subject), 속성을 나타내는 서술어(Predicate), 속성의 값을 나타내는 목적어(Object)의 구성 요소를 포함하는 트리플 패턴으로 표현할 수 있다.RDF can treat resources, attributes, and attribute values as a unit, unlike traditional methods that treat records as a unit of description. In this case, the RDF may be expressed in a triple pattern including components of a subject representing a resource, a predicate representing an attribute, and an object representing an attribute value.

RDF 그래프 변환부(103)는 RDQL 질의의 트리플 패턴을 이용하여 RDF 그래프를 결정하고, 상기 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF 그래프로 변환할 수 있다. 도 3에서 볼 수 있듯이, RDF 그래프 변환부(103)는 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 로컬 최적화부(104) 및 트리플 패턴에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 글로벌 최적화부(105)를 포함할 수 있다.The RDF graph converter 103 may determine an RDF graph by using a triple pattern of an RDQL query, and convert the RDF graph into an optimized RDF graph by applying an optimization conversion rule to the RDF graph. As shown in FIG. 3, the RDF graph converter 103 includes a local optimizer 104 that removes the triple pattern from the RDF graph in consideration of the position where the triple pattern exists, and a selection variable set in advance in the triple pattern. It may include a global optimizer 105 for removing a triple pattern in the RDF graph in consideration of whether or not.

이 때, RDF 그래프 변환부(103)는 순차적으로 입력되는 트리플 패턴의 주어 및 서술어를 상기 RDF 그래프의 노드로 지정하고, 트리플 패턴의 목적어를 노드를 연결하는 연결 통로로 지정하여 RDF 그래프를 결정할 수 있다.In this case, the RDF graph converter 103 may determine the RDF graph by designating the subject and the descriptor of the triple pattern sequentially input as the nodes of the RDF graph, and the object of the triple pattern as the connection path connecting the nodes. have.

RDF 그래프 변환부(103)는 RDF 그래프에서 불필요한 SQL 질의가 생성되는 것을 방지하기 위해 미리 최적화 변환 규칙을 적용하여 RDF 그래프에 있는 불필요한 그래프 노드를 제거할 수 있다. 최적화 변환 규칙은 도 3을 통해 구체적으로 설명된다.The RDF graph converter 103 may remove an unnecessary graph node in the RDF graph by applying an optimization conversion rule in advance to prevent unnecessary SQL queries from being generated in the RDF graph. The optimization transformation rule is described in detail with reference to FIG. 3.

SQL 질의 생성부(106)는 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 RDQL 질의에 대응하는 SQL 질의를 생성할 수 있다. SQL 질의 생성부(106)는 2단계의 과정을 거쳐 RDQL 질의에 대응하는 SQL 질의를 생성할 수 있다. The SQL query generator 106 may generate a SQL query corresponding to the RDQL query by applying the graph search to the triple pattern existing in the optimized RDF graph. The SQL query generator 106 may generate an SQL query corresponding to the RDQL query through a two step process.

일례로, SQL 질의 생성부(106)는 최적화된 RDF 그래프에서 트리플 패턴 각각에 대한 SQL 질의를 생성하고, 상기 RDF 그래프에 대한 그래프 탐색 과정을 적용하여 트리플 패턴의 공유 방식에 따라 상기 SQL 질의 사이에 조인(join)을 수행할 수 있다. SQL 질의 생성부(106)에 대한 구체적인 내용은 도 5를 통해 상세히 설명된다.For example, the SQL query generating unit 106 generates an SQL query for each triple pattern in the optimized RDF graph, and applies a graph search process for the RDF graph to between the SQL queries according to the sharing method of the triple pattern. You can do a join. Details of the SQL query generator 106 will be described in detail with reference to FIG. 5.

SQL 질의 처리부(107)는 생성된 SQL 질의를 데이터베이스에 전달하고, 상기 데이터베이스로부터 질의 결과를 수신하여 SQL 질의를 처리할 수 있다. 일례로, SQL 질의 처리부(107)는 생성한 SQL 질의를 온톨로지 데이터베이스에 전달하고, 온톨로지 데이터베이스로부터 SQL 질의에 대한 결과를 수신하여 SQL 질의를 처리할 수 있다.The SQL query processing unit 107 may transfer the generated SQL query to a database, receive a query result from the database, and process the SQL query. For example, the SQL query processing unit 107 may deliver the generated SQL query to the ontology database, and receive a result of the SQL query from the ontology database to process the SQL query.

도 2는 본 발명의 일실시예에 따라 RDQL 질의의 트리플 패턴을 이용하여 최적화된 RDF 그래프로 변환하는 과정을 도시한 도면이다.2 is a diagram illustrating a process of converting an optimized RDF graph using a triple pattern of an RDQL query according to an embodiment of the present invention.

도 2에서 볼 수 있듯이, RDF 그래프 변환부(103)는 RDQL 질의의 트리플 패 턴(201)을 이용하여 RDF 그래프(202)를 결정하고, 상기 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF 그래프(203)로 변환할 수 있다.As shown in FIG. 2, the RDF graph converter 103 determines the RDF graph 202 using the triple pattern 201 of the RDQL query, and applies an optimization conversion rule to the RDF graph to optimize the RDF graph. Can be converted to (203).

RDQL 질의의 트리플 패턴(201)은 RDQL 질의의 자원을 나타내는 주어(Subject), 속성을 나타내는 서술어(Predicate), 속성의 값을 나타내는 목적어(Object)로 나타낼 수 있다. 도 2는 변수를 가지는 트리플 패턴을 나타내고 있다. 이 때, 변수는 RDQL 질의가 구문적인 유연성을 가질 수 있게 해준다. The triple pattern 201 of the RDQL query may be represented by a subject representing a resource of the RDQL query, a predicate representing an attribute, and an object representing an attribute value. 2 shows a triple pattern with variables. At this point, the variable allows the RDQL query to have syntactic flexibility.

트리플 패턴(201)은 트리플 패턴 추출부(102)가 RDQL 질의에 대한 파싱 과정을 통해 추출될 수 있다. 즉, 트리플 패턴 추출부(102) RDQL 질의에 대해 구문 분석을 하여, RDQL 질의로부터 주어, 목적어 및 서술어의 3가지 구성요소로 이루어진 트리플 패턴(201)을 추출할 수 있다.The triple pattern 201 may be extracted by the triple pattern extractor 102 by parsing an RDQL query. That is, the triple pattern extractor 102 may parse the RDQL query, and extract the triple pattern 201 having three components of the object and the predicate given from the RDQL query.

도 2의 트리플 패턴(201)은 변수는 ?a, ?e, ?x, ?p, ?f로 되어 있는 것을 알 수 있다. 또한, 선택 변수는 ?a라고 되어 있다. 글로벌 최적화부(105)가 RDF 그래프에서 트리플 패턴을 제거할 때, 트리플 패턴(201)에 미리 설정한 선택 변수가 존재하는 지 여부를 고려할 수 있다. 트리플 패턴(201)이 도 2에 도시되어 있는데, (?a d ?e)에서 ?a는 주어, d는 서술어, ?e는 목적어를 나타낸다.It can be seen that the triple pattern 201 of FIG. 2 has variables? A,? E,? X,? P, and? F. In addition, the selection variable is? A. When the global optimizer 105 removes the triple pattern from the RDF graph, it may be considered whether the preset variable exists in the triple pattern 201. The triple pattern 201 is shown in Fig. 2, where? A is given, d is a predicate, and? E is an object.

일례로, RDF 그래프 변환부(103)는 순차적으로 입력되는 트리플 패턴(201)의 주어 및 목적어를 상기 RDF 그래프(202)의 노드로 지정하고, 트리플 패턴의 목적어를 노드를 연결하는 연결 통로로 지정하여 RDF 그래프(202)를 결정할 수 있다. 순차적으로 입력되는 트리플 패턴(201)의 순서로, 노드와 연결 통로로 이루어진 RDF 그래프(202)가 결정될 수 있다. 그리고, 이 때, RDF 그래프에서 각 트리플 패 턴(201)은 2개의 노드와 1개의 연결 통로로 이루어진 것을 알 수 있다. For example, the RDF graph converter 103 designates the subject and the object of the triple pattern 201 sequentially input to the node of the RDF graph 202, and designates the object of the triple pattern as a connection path connecting the nodes. RDF graph 202 can be determined. In order of the triple pattern 201 to be sequentially input, the RDF graph 202 composed of nodes and connection passages may be determined. In this case, it can be seen that each triple pattern 201 consists of two nodes and one connection passage in the RDF graph.

일례로, 노드는 주어와 목적어로 이루어 질 수 있으며, 주어 노드에서 목적어 노드 방향으로 연결 통로가 이루어짐을 알 수 있다. 따라서, 도 2의 RDF 그래프(202)는 총 6개의 트리플 패턴(201)으로 구성되어 있음을 알 수 있다. 일례로, RDF 그래프(202)는 Brute-force 형식으로 이루어 질 수 있다.For example, the node may be composed of the subject and the object, it can be seen that the connection path is made from the subject node toward the object node. Accordingly, it can be seen that the RDF graph 202 of FIG. 2 includes six triple patterns 201. In one example, the RDF graph 202 may be in Brute-force format.

RDQL 질의의 트리플 패턴(201) 모두에 대해 RDF 그래프(202)로 결정함으로써, 추후에 SQL 질의 생성시 불필요한 SQL 질의가 생성될 수 있다. 그래서, 최적화 변환과정을 통해 RDF 그래프(201)에서 불필요한 노드를 제거하여 최적화된 RDF 그래프(203)로 변환하는 것이 요구된다. By determining the RDF graph 202 for all the triple patterns 201 of the RDQL query, unnecessary SQL queries can be generated later in generating the SQL query. Therefore, it is required to remove unnecessary nodes from the RDF graph 201 and to convert the optimized RDF graph 203 through an optimization conversion process.

일례로, 최적화 변환은 로컬 최적화부(104)와 글로벌 최적화부(105)에서 이루어질 수 있다. 로컬 최적화부(104)는 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프(202)에서 트리플 패턴(201)을 제거할 수 있다. 또한, 글로벌 최적화부(105)는 트리플 패턴(201)에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 상기 RDF 그래프(202)에서 트리플 패턴(201)을 제거할 수 있다. 결국, 최적화된 RDF 그래프(203)을 통해 실질적으로 필요한 RDQL 질의에 대해서 SQL 질의로 변환함으로써 보다 빠르게 RDQL 질의를 처리할 수 있다.For example, the optimization transformation may be performed in the local optimizer 104 and the global optimizer 105. The local optimizer 104 may remove the triple pattern 201 from the RDF graph 202 in consideration of the location where the triple pattern exists. In addition, the global optimizer 105 may remove the triple pattern 201 from the RDF graph 202 in consideration of whether a predetermined selection variable exists in the triple pattern 201. As a result, the RDQL query can be processed more quickly by converting the RDQL query into a SQL query for the substantially required RDF graph 203.

도 3은 본 발명의 일실시예에 따라 RDQL-TO-SQL 시스템의 로컬 최적화부와 글로벌 최적화부를 통해 RDF 그래프를 최적화하는 과정을 도시한 도면이다.3 is a diagram illustrating a process of optimizing an RDF graph through a local optimizer and a global optimizer of an RDQL-TO-SQL system according to an exemplary embodiment of the present invention.

도 3을 참조하면, 그래프(301)는 로컬 최적화부(104)를 통해 RDF 그래프가 최적화되는 과정을 나타내고 있다. 일례로, 로컬 최적화부(104)는 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거할 수 있다. 구체적으로 보면, 로컬 최적화부(104)는 어느 트리플 패턴이 RDF 그래프의 특정 위치에서 다른 트리플 패턴의 부모 집합이 될 때, 부모 집합이 되는 트리플 패턴을 삭제할 수 있다.Referring to FIG. 3, the graph 301 illustrates a process of optimizing the RDF graph through the local optimizer 104. For example, the local optimizer 104 may remove the triple pattern from the RDF graph in consideration of the location where the triple pattern exists. Specifically, the local optimizer 104 may delete the triple pattern that becomes the parent set when one triple pattern becomes a parent set of another triple pattern at a specific position of the RDF graph.

일례로, RDF 그래프에서 트리플 패턴의 위치에 따라서 두 개의 규칙으로 나누어 질 수 있다. 규칙1(303)는 트리플 패턴의 주어와 목적어가 서로 공유될 때이고, 규칙2(304)는 트리플 패턴의 주어만 공유할 때를 의미한다. 예를 들어, 도 3을 참조하면, 트리플 패턴 (?a ?p c)는 (?a b c)와 (?a d ?e)의 부모 집합이기 때문 규칙 1(303)을 통해 제거될 수 있다. 그리고, 노드 ?k는 변수에 존재하지 않기 때문에, 규칙 2(304)를 통해 제거될 수 있다.For example, it can be divided into two rules according to the position of the triple pattern in the RDF graph. Rule 1 303 means when the subject and object of the triple pattern are shared with each other, and rule 2 304 means when only the subject of the triple pattern is shared. For example, referring to FIG. 3, the triple pattern (? A? C) may be removed through rule 1 (303) because it is a parent set of (? A b c) and (? A d? E). And since node? K is not present in the variable, it can be removed via rule 2 (304).

그래프(302)는 글로벌 최적화부(105)를 통해 RDF 그래프가 최적화되는 과정을 나타내고 있다. 일례로, 글로벌 최적화부(105)는 트리플 패턴에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 RDF 그래프에서 트리플 패턴을 제거할 수 있다. 즉, RDQL 질의의 선택 변수가 RDF 그래프의 "Root"에 연결된 트리플 패턴에 존재하지 않을 때, 상기 트리플 패턴을 제거될 수 있다. The graph 302 illustrates a process of optimizing the RDF graph through the global optimizer 105. For example, the global optimizer 105 may remove the triple pattern from the RDF graph in consideration of whether a predetermined selection variable exists in the triple pattern. That is, when the selection variable of the RDQL query does not exist in the triple pattern connected to the "Root" of the RDF graph, the triple pattern may be removed.

즉, 도 2를 참조하면, 선택 변수는 ?a라고 되어 있다. RDF 그래프에서 Root와 연결된 노드 중 선택 변수인 ?a를 제외한 ?x, ?p 노드와 연결된 트리플 패턴(305, 306)은 글로벌 최적화부(105)를 통해 제거될 수 있다. 결국, RDF 그래프에서 로컬 최적화부(104)와 글로벌 최적화부(105)를 통해 남아있는 트리플 패턴은 (?a b c), (?a d ?e), (?e f g)임을 알 수 있다. That is, referring to FIG. 2, the selection variable is? A. In the RDF graph, the triple patterns 305 and 306 connected to the? X and? P nodes other than? A, which is a selection variable among the nodes connected to Root, may be removed through the global optimizer 105. As a result, it can be seen that the triple patterns remaining through the local optimizer 104 and the global optimizer 105 in the RDF graph are (? A b c), (? A d? E), and (? E f g).

일례로, 로컬 최적화부(104)는 하나의 트리플 패턴의 입력이 끝나는 시점에서 해당 트리플 패턴을 제거할지 여부를 판단할 수 있다. 마지막으로 모든 트리플 패턴의 입력이 완료되면, 글로벌 최적화부(105)가 트리플 패턴을 제거할 지 여부를 판단할 수 있다.In one example, the local optimizer 104 may determine whether to remove the triple pattern at the time when the input of one triple pattern ends. Finally, when the input of all the triple patterns is completed, the global optimizer 105 may determine whether to remove the triple patterns.

도 4는 본 발명의 일실시예에 따라 정렬된 어레이를 통해 RDQL 질의의 트리플 패턴으로부터 RDF 그래프로 변환하는 과정을 도시한 도면이다. 일례로, RDF 그래프 변환부(103)는 RQDL 질의의 트리플 패턴(401)을 키와 포인터를 포함하는 정렬된 어레이(403)를 이용하여 RDF 그래프(404)를 결정할 수 있다. 즉, 정렬된 어레이(403)을 통해, RDF 그래프 변환부(103)는 트리플 패턴(401)을 보다 효율적이고 빠르게 처리함으로써 RDF 그래프(404)를 결정할 수 있다.4 is a diagram illustrating a process of converting a triple pattern of an RDQL query from an RDQL query into an RDF graph through an aligned array according to an embodiment of the present invention. In one example, the RDF graph converter 103 may determine the RDF graph 404 by using the triple pattern 401 of the RQDL query using the sorted array 403 including a key and a pointer. That is, through the aligned array 403, the RDF graph converter 103 may determine the RDF graph 404 by processing the triple pattern 401 more efficiently and quickly.

도 4를 참조하면, 순차적으로 입력되는 트리플 패턴(401)의 주어와 목적어를 정렬된 어레이(403)의 키와 연결시킬 수 있다. 이 때, 정렬된 어레이(403)에 포함된 각 키는 순차적으로 입력되는 트리플 패턴의 주어와 목적어의 순서로 정렬될 수 있다. 그리고, 주어와 목적어 중에서 변수가 보다 상위에 정렬될 수 있다.Referring to FIG. 4, the subject and the object of the triple pattern 401 sequentially input may be connected with the keys of the aligned array 403. At this time, each key included in the sorted array 403 may be arranged in the order of the subject and the object of the triple pattern sequentially input. And, among the subject and object, the variable can be sorted higher.

앞에서 이미 언급했듯이, 하나의 트리플 패턴에 대한 입력이 완료되면, 그 때마다 로컬 최적화부(104)가 해당 트리플 패턴을 제거할 지 판단할 수 있다. 그런 후, 모든 트리플 패턴의 입력이 종료되면, 글로벌 최적화부(105)가 조건에 맞는 트리플 패턴을 제거할 지 판단할 수 있다.As mentioned above, when the input for one triple pattern is completed, the local optimizer 104 may determine whether to remove the triple pattern each time. Thereafter, when the input of all the triple patterns is finished, the global optimizer 105 may determine whether to remove the triple pattern meeting the condition.

정렬된 어레이(403)에서 각 키는 포인터와 연결되어 있으며, 트리플 패턴의 각 노드를 의미하는 키는 포인터를 통해 RDF 그래프(404)에서 위치가 지정될 수 있 다. 결국, RDF 그래프 변환부(103)는 정렬된 어레이의 키와 포인터를 통해 보다 빠른 RDF 그래프 결정 과정을 수행할 수 있다.In the sorted array 403, each key is connected to a pointer, and a key representing each node of the triple pattern may be positioned in the RDF graph 404 through the pointer. As a result, the RDF graph converter 103 may perform a faster RDF graph determination process through the keys and pointers of the aligned array.

도 5는 본 발명의 일실시예에 따라 RDQL-TO-SQL 시스템의 SQL 생성부가 SQL 질의를 생성하는 과정을 도시한 도면이다.5 is a diagram illustrating a process of generating an SQL query by an SQL generator of the RDQL-TO-SQL system according to an exemplary embodiment of the present invention.

일례로, SQL 질의 생성부(106)는 RDQL 질의의 트리플 패턴으로부터 결정된 RDF 그래프에서 최적화 변환 단계를 통해 변환된 최적화된 RDF 그래프를 이용할 수 있다. 구체적으로 보면, 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 상기 RDQL 질의에 대응하는 SQL 질의를 생성할 수 있다.For example, the SQL query generator 106 may use the optimized RDF graph converted through the optimization conversion step in the RDF graph determined from the triple pattern of the RDQL query. Specifically, a graph search may be applied to the triple pattern existing in the optimized RDF graph to generate an SQL query corresponding to the RDQL query.

일례로, SQL 질의 생성부(106)는 두 가지 정리를 통해 최적화된 RDF 그래프에서 SQL 질의를 생성할 수 있다. 제1 정리(501)는 RDF 그래프에서 두 개 이상의 트리플 패턴 사이의 관계를 통해서 SQL 질의가 어떻게 결합되는지를 나타낸다. 그리고, 제2 정리(502)는 단일 트리플 패턴이 SQL 질의로 생성될 수 있음을 의미한다. For example, the SQL query generator 106 may generate an SQL query from an optimized RDF graph through two theorems. The first theorem 501 illustrates how SQL queries are combined through a relationship between two or more triple patterns in an RDF graph. The second theorem 502 means that a single triple pattern can be generated as an SQL query.

실질적으로, SQL 질의 생성부(106)는 RDF 그래프에 존재하는 다수의 트리플 패턴 각각에 대해 먼저 제2 정리(502)를 적용하여 SQL 질의를 생성할 수 있다. 그리고, RDF 그래프에서 트리플 패턴은 다른 트리플과 특정 노드를 공유할 수 있기 때문에, SQL 질의 생성부(106)는 제1 정리(501)을 적용하여 트리플 패턴의 공유 방식에 따라 생성된 SQL 질의 사이에 조인을 수행할 수 있다.In fact, the SQL query generator 106 may generate a SQL query by first applying the second theorem 502 to each of the plurality of triple patterns existing in the RDF graph. In addition, since the triple pattern in the RDF graph may share a specific node with other triples, the SQL query generator 106 may apply the first theorem 501 to between the SQL queries generated according to the triple pattern sharing scheme. Joins can be performed.

먼저 SQL 질의 생성부(106)는 제2 정리(502)를 통해 최적화된 RDF 그래프(508)에서 트리플 패턴 각각에 대한 SQL 질의(509)를 생성할 수 있다. 만약, RDF 그래프에서 트리플 패턴이 10개가 존재하면, 생성되는 SQL 질의도 10개가 될 수 있다. 트리플 패턴에서 SQL 질의가 생성되는 방법은 여러 가지가 존재할 수 있으며, 본 발명은 특정한 방법에 한정되지 않는다. First, the SQL query generator 106 may generate an SQL query 509 for each triple pattern in the optimized RDF graph 508 through the second theorem 502. If ten triple patterns exist in the RDF graph, ten SQL queries can be generated. There are a number of ways in which the SQL query is generated in the triple pattern, and the present invention is not limited to a specific method.

일례로, SQL 질의 생성부(106)는 제2 정리(502)를 통해 RDF 그래프에서 깊이 우선 탐색을 적용하여 트리플 패턴 각각에 대해 SQL 질의를 생성할 수 있다. 도 5에서 볼 수 있듯이, 각 트리플 패턴 tn 에 대응하는 SQL 질의 Sn가 생성됨을 알 수 있다. 단일 트리플 패턴에 대한 SQL 질의는 데이터베이스의 테이블 구조에 따라 유동적일 수 있다.For example, the SQL query generator 106 may generate a SQL query for each triple pattern by applying depth-first search in the RDF graph through the second theorem 502. As can be seen in Figure 5, each triple pattern t n It can be seen that the SQL query S n corresponding to is generated. SQL queries for a single triple pattern can be flexible, depending on the table structure of the database.

SQL 질의 생성부(106)는 제1 정리(501)를 통해 두 개 이상의 트리플 패턴 사이의 공유 관계를 고려하여 SQL 질의를 결합할 수 있다. 공유 관계(503)는 두 개의 트리플 패턴 ① ②가 서로 주어를 공유하는 것을 나타내고 있다. 즉, 트리플 패턴 (?a b c)는 트리플 패턴(?a d ?e)와 동일한 주어인 ?a를 공유하고 있음을 나타낸다. 그러면, 제2 정리(502)를 통해 생성된 트리플 패턴 (?a b c)의 SQL 질의와 트리플 패턴(?a d ?e)의 SQL 질의를 서로 조인하여 결합할 수 있다. 일례로, 공유 관계(503)일 때, 두 개의 SQL 질의는 SQL(①) JOIN SQL(②) ON SQL(①).subject=SQL(②).subject의 관계식(504)을 통해 조인될 수 있다.The SQL query generator 106 may combine the SQL queries in consideration of a sharing relationship between two or more triple patterns through the first theorem 501. The sharing relationship 503 indicates that two triple patterns ① ② share a subject. That is, the triple pattern (? A b c) indicates that they share the same subject? A with the triple pattern (? A d? E). Then, the SQL query of the triple pattern (? A b c) and the SQL query of the triple pattern (? A d? E) generated through the second theorem 502 may be joined to each other. For example, in a shared relationship 503, two SQL queries may be joined through the relation 504 of SQL (①) JOIN SQL (②) ON SQL (①) .subject = SQL (②) .subject. .

공유 관계(505)는 트리플 패턴 ① 의 목적어와 트리플 패턴 ②의 주어가 서로 공유하는 것을 나타내고 있다. 즉, 트리플 패턴 (?a b c)의 목적어와 트리플 패턴(c d ?e)의 주어가 서로 동일함을 알 수 있다. 그러면, 제2 정리(502)를 통해 생성된 트리플 패턴 (?a b c)의 SQL 질의와 트리플 패턴(c d ?e)의 SQL 질의를 서로 조인하여 결합할 수 있다. 일례로, 공유 관계(505)일 때, 두 개의 SQL 질의는 SQL(①) JOIN SQL(②) ON SQL(①).subject=SQL(②).object의 관계식(506)을 통해 조인될 수 있다.The sharing relationship 505 indicates that the object of the triple pattern ① and the subject of the triple pattern ② share each other. That is, it can be seen that the object of the triple pattern? A b c and the subject of the triple pattern c d? E are the same. Then, the SQL query of the triple pattern (? A b c) and the SQL query of the triple pattern (c d? E) generated through the second theorem 502 may be joined to each other. For example, in a shared relationship 505, two SQL queries may be joined through a relation 506 of SQL (①) JOIN SQL (②) ON SQL (①) .subject = SQL (②) .object. .

공유 관계(507)는 두 개의 트리플 패턴 ① ②가 서로 목적어를 공유하는 것을 나타내고 있다. 즉, 트리플 패턴 (?a b c)는 트리플 패턴(?e d c)와 동일한 목적어인 c를 공유하고 있음을 나타낸다. 도 5에서 볼 수 있듯이, 공유 관계(507)는 임의로 가상의 노드를 가정하여, 공유 관계(503)과 공유 관계(505)가 서로 결합되어 있는 것으로 변환할 수 있다. 트리플 패턴(①)과 트리플 패턴(②)는 각각 공유 관계(503)과 공유 관계(505)로 변환되어, 관계식(504)와 관계식(506)을 통해 처리될 수 있다. The sharing relationship 507 shows that two triple patterns ① ② share the object. That is, the triple pattern? A b c indicates that the same target word c is shared with the triple pattern? E d c. As can be seen in FIG. 5, the sharing relationship 507 can be converted to a combination of the sharing relationship 503 and the sharing relationship 505, assuming virtual nodes at random. The triple pattern ① and the triple pattern ② may be converted into a sharing relationship 503 and a sharing relationship 505, respectively, and processed through the relational expression 504 and the relational expression 506.

도 6은 본 발명의 일실시예에 따른 RDQL-TO-SQL 방법을 도시한 순서도이다.6 is a flowchart illustrating an RDQL-TO-SQL method according to an embodiment of the present invention.

본 발명의 일실시예에 따른 RDQL-TO-SQL 방법은 RDQL 질의를 파싱하여 상기 RDQL 질의로부터 주어, 목적어 및 서술어의 구성 요소를 포함하는 트리플 패턴을 추출할 수 있다(S601).The RDQL-TO-SQL method according to an embodiment of the present invention may parse a RDQL query and extract a triple pattern including components of an object and a predicate given from the RDQL query (S601).

본 발명의 일실시예에 따른 RDQL-TO-SQL 방법은 순차적으로 입력되는 트리플 패턴의 주어 및 서술어를 RDF 그래프의 노드로 지정하고, 트리플 패턴의 목적어를 노드를 연결하는 연결 통로로 지정하여 RDF 그래프를 결정할 수 있다.The RDQL-TO-SQL method according to an embodiment of the present invention designates a subject and descriptor of a triple pattern sequentially input as a node of an RDF graph, and designates an object of the triple pattern as a connection path connecting nodes to the RDF graph. Can be determined.

이 때, RDF 그래프를 결정하는 단계는 RQDL 질의의 트리플 패턴을 키와 포인터를 포함하는 정렬된 어레이(array)를 이용하여 RDF 그래프를 결정할 수 있다.In this case, the determining of the RDF graph may determine the RDF graph by using an ordered array including keys and pointers in the triple pattern of the RQDL query.

본 발명의 일실시예에 따른 RDQL-TO-SQL 방법은 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF 그래프로 변환할 수 있다. 이 때, 최적화된 RDF 그래프로 변환하는 단계는 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 단계(S602) 및 트리플 패턴에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 단계를 포함할 수 있다.The RDQL-TO-SQL method according to an embodiment of the present invention may be converted into an optimized RDF graph by applying an optimization conversion rule to the RDF graph. In this case, the step of converting to the optimized RDF graph may include removing the triple pattern from the RDF graph in consideration of the position where the triple pattern exists (S602) and considering whether a preset selection variable exists in the triple pattern. And removing the triple pattern from the RDF graph.

이 때, 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 단계(S602)는 어느 트리플 패턴이 RDF 그래프의 특정 위치에서 다른 트리플 패턴의 부모 집합이 될 때, 부모 집합이 되는 트리플 패턴을 삭제할 수 있다.At this time, the step of removing the triple pattern from the RDF graph in consideration of the position where the triple pattern exists (S602) is a parent set when one triple pattern becomes a parent set of another triple pattern at a specific position of the RDF graph. You can delete the triple pattern.

본 발명의 일실시예에 따른 RDQL-TO-SQL 방법은 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 RDQL 질의에 대응하는 SQL 질의를 생성할 수 있다(S604).The RDQL-TO-SQL method according to an embodiment of the present invention may generate a SQL query corresponding to the RDQL query by applying a graph search to a triple pattern existing in the optimized RDF graph (S604).

이 때, RDQL 질의에 대응하는 SQL 질의를 생성하는 단계(S604)는 상기 최적화된 RDF 그래프에서 트리플 패턴 각각에 대한 SQL 질의를 생성하는 단계, 상기 RDF 그래프에 대한 그래프 탐색 과정을 적용하여 트리플 패턴의 공유 방식에 따라 상기 SQL 질의 사이에 조인(join)을 수행하는 단계를 포함할 수 있다.At this time, the step of generating a SQL query corresponding to the RDQL query (S604) generating a SQL query for each triple pattern in the optimized RDF graph, applying a graph search process for the RDF graph of the triple pattern The method may include performing a join between the SQL queries according to a sharing scheme.

이 때, 트리플 패턴의 공유 방식은 2개 이상의 트리플 패턴이 주어를 공유하거나 또는 어느 트리플 패턴의 주어와 다른 트리플 패턴의 목적어가 공유하는 것을 특징으로 할 수 있다.In this case, the triple pattern sharing method may be characterized in that two or more triple patterns share a subject or a subject of a triple pattern and a subject of another triple pattern share.

본 발명의 일실시예에 따른 RDQL-TO-SQL 방법은 생성된 상기 SQL 질의를 데이터베이스에 전달하고, 상기 데이터베이스로부터 질의 결과를 수신하여 SQL 질의를 처리할 수 있다(S605).The RDQL-TO-SQL method according to an embodiment of the present invention may transfer the generated SQL query to a database, receive a query result from the database, and process the SQL query (S605).

도 6에서 구체적으로 설명되지 않는 부분은 도 1 내지 도 5를 참고할 수 있다.Parts not specifically described in FIG. 6 may refer to FIGS. 1 to 5.

또한 본 발명의 일실시예에 따른 RDQL-TO-SQL 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.In addition, the RDQL-TO-SQL method according to an embodiment of the present invention includes a computer readable medium including program instructions for performing operations implemented by various computers. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The medium or program instructions may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에 서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described with reference to the limited embodiments and the drawings, but the present invention is not limited to the above embodiments, which can be variously modified by those skilled in the art to which the present invention pertains. And variations are possible. Accordingly, the spirit of the present invention should be understood only by the claims set forth below, and all equivalent or equivalent modifications thereof will belong to the scope of the present invention.

도 1은 본 발명의 일실시예에 따른 RDQL-TO-SQL 시스템의 내부 구성을 도시한 블록 다이어그램이다.1 is a block diagram showing the internal configuration of the RDQL-TO-SQL system according to an embodiment of the present invention.

도 2는 본 발명의 일실시예에 따라 RDQL 질의의 트리플 패턴을 이용하여 최적화된 RDF 그래프로 변환하는 과정을 도시한 도면이다.2 is a diagram illustrating a process of converting an optimized RDF graph using a triple pattern of an RDQL query according to an embodiment of the present invention.

도 3은 본 발명의 일실시예에 따라 RDQL-TO-SQL 시스템의 로컬 최적화부와 글로벌 최적화부를 통해 RDF 그래프를 최적화하는 과정을 도시한 도면이다.3 is a diagram illustrating a process of optimizing an RDF graph through a local optimizer and a global optimizer of an RDQL-TO-SQL system according to an exemplary embodiment of the present invention.

도 4는 본 발명의 일실시예에 따라 정렬된 어레이를 통해 RDQL 질의의 트리플 패턴으로부터 RDF 그래프로 변환하는 과정을 도시한 도면이다.4 is a diagram illustrating a process of converting a triple pattern of an RDQL query from an RDQL query into an RDF graph through an aligned array according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따라 RDQL-TO-SQL 시스템의 SQL 생성부가 SQL 질의를 생성하는 과정을 도시한 도면이다.5 is a diagram illustrating a process of generating an SQL query by an SQL generator of the RDQL-TO-SQL system according to an exemplary embodiment of the present invention.

도 6은 본 발명의 일실시예에 따른 RDQL-TO-SQL 방법을 도시한 순서도이다.6 is a flowchart illustrating an RDQL-TO-SQL method according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

101: RDQL-TO-SQL 시스템101: RDQL-TO-SQL System

102: 트리플 패턴 추출부102: triple pattern extraction unit

103: RDF 그래프 변환부103: RDF graph converter

104: 로컬 최적화부104: local optimizer

105: 글로벌 최적화부105: Global Optimization Department

106: SQL 질의 생성부106: SQL query generator

107: SQL 질의 처리부107: SQL query processing unit

Claims (19)

RDQL(Resource Description Framework Data Query Language) 질의의 트리플 패턴(triple pattern)을 이용하여 RDF 그래프를 결정하고, 상기 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF(Resource Description Framework) 그래프로 변환하는 RDF 그래프 변환부; 및An RDF graph that determines an RDF graph using a triple pattern of a Resource Description Framework Data Query Language (RDQL) query, and converts the RDF graph into an optimized Resource Description Framework (RDF) graph by applying an optimization conversion rule to the RDF graph. A conversion unit; And 상기 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 상기 RDQL 질의에 대응하는 SQL 질의를 생성하는 SQL 질의 생성부SQL query generation unit for generating a SQL query corresponding to the RDQL query by applying a graph search to the triple pattern existing in the optimized RDF graph 를 포함하는 RQDL-TO-SQL 시스템.RQDL-TO-SQL system, including. 제1항에 있어서,The method of claim 1, RDQL 질의를 파싱하여 상기 RDQL 질의로부터 주어, 목적어 및 서술어의 구성 요소를 포함하는 트리플 패턴을 추출하는 트리플 패턴 추출부;A triple pattern extracting unit for parsing an RDQL query and extracting a triple pattern including components of an object and a predicate given from the RDQL query; 를 더 포함하는 RDQL-TO-SQL 시스템.RDQL-TO-SQL system further comprising. 제1항에 있어서,The method of claim 1, 상기 RDF 그래프 변환부는,The RDF graph converter, 순차적으로 입력되는 트리플 패턴의 주어 및 목적어를 상기 RDF 그래프의 노드로 지정하고, 트리플 패턴의 서술어를 노드를 연결하는 연결 통로로 지정하여 RDF 그래프를 결정하는 것을 특징으로 하는 RDQL-TO-SQL 시스템.RDQL-TO-SQL system characterized in that the RDF graph is determined by specifying the subject and the object of the triple pattern sequentially input to the node of the RDF graph, and the descriptor of the triple pattern as a connection path connecting the nodes. 제1항에 있어서,The method of claim 1, 상기 RDF 그래프 변환부는,The RDF graph converter, 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 로컬 최적화부; 및A local optimizer which removes the triple pattern from the RDF graph in consideration of the position where the triple pattern exists; And 트리플 패턴에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 글로벌 최적화부A global optimizer which removes a triple pattern from the RDF graph in consideration of whether a preset variable exists in the triple pattern. 를 포함하는 RDQL-TO-SQL 시스템.RDQL-TO-SQL system, including. 제4항에 있어서,The method of claim 4, wherein 상기 로컬 최적화부는,The local optimizer, 어느 트리플 패턴이 RDF 그래프의 특정 위치에서 다른 트리플 패턴의 부모 집합이 될 때, 부모 집합이 되는 트리플 패턴을 삭제하는 것을 특징으로 하는 RDQL-TO-SQL 시스템.RDQL-TO-SQL system characterized in that when one triple pattern becomes a parent set of another triple pattern at a specific position of the RDF graph, the triple pattern that becomes the parent set is deleted. 제1항에 있어서,The method of claim 1, 상기 RDF 그래프 변환부는,The RDF graph converter, 상기 RQDL 질의의 트리플 패턴을 키와 포인터를 포함하는 정렬된 어레이(array)를 이용하여 RDF 그래프를 결정하는 것을 특징으로 하는 RDQL-TO-SQL 시스템.RDQL-TO-SQL system, characterized in that for determining the RDF graph using an ordered array including a key and a pointer to the triple pattern of the RQDL query. 제1항에 있어서,The method of claim 1, 상기 SQL 질의 생성부는,The SQL query generation unit, 상기 최적화된 RDF 그래프에서 트리플 패턴 각각에 대한 SQL 질의를 생성하고, 상기 RDF 그래프에 대한 그래프 탐색 과정을 적용하여 트리플 패턴의 공유 방식에 따라 상기 SQL 질의 사이에 조인(join)을 수행하는 것을 특징으로 하는 RDQL-TO-SQL 시스템.Generating an SQL query for each triple pattern in the optimized RDF graph and applying a graph search process to the RDF graph to perform joins between the SQL queries according to the sharing scheme of the triple pattern. RDQL-TO-SQL system. 제7항에 있어서,The method of claim 7, wherein 상기 트리플 패턴의 공유 방식은,The sharing method of the triple pattern is, 2개 이상의 트리플 패턴이 주어를 공유하거나 또는 어느 트리플 패턴의 주어와 다른 트리플 패턴의 목적어가 공유하는 것을 특징으로 하는 RDQL-TO-SQL 시스템.An RDQL-TO-SQL system, wherein two or more triple patterns share a subject, or a subject of a triple pattern and a subject of another triple pattern share. 제1항에 있어서,The method of claim 1, 생성된 상기 SQL 질의를 데이터베이스에 전달하고, 상기 데이터베이스로부터 질의 결과를 수신하여 SQL 질의를 처리하는 SQL 질의 처리부An SQL query processing unit which delivers the generated SQL query to a database, receives a query result from the database, and processes an SQL query. 를 더 포함하는 RDQL-TO-SQL 시스템.RDQL-TO-SQL system further comprising. RDQL 질의의 트리플 패턴을 이용하여 RDF 그래프를 결정하는 단계;Determining an RDF graph using the triple pattern of the RDQL query; 상기 RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF 그래프로 변환하는 단계; 및Converting the RDF graph into an optimized RDF graph by applying an optimization conversion rule to the RDF graph; And 상기 최적화된 RDF 그래프에 존재하는 트리플 패턴에 대해서 그래프 탐색을 적용하여 상기 RDQL 질의에 대응하는 SQL 질의를 생성하는 단계Generating a SQL query corresponding to the RDQL query by applying a graph search to a triple pattern existing in the optimized RDF graph 를 포함하는 RQDL-TO-SQL 방법.RQDL-TO-SQL method, including. 제10항에 있어서,The method of claim 10, RDQL 질의를 파싱하여 상기 RDQL 질의로부터 주어, 목적어 및 서술어의 구성 요소를 포함하는 트리플 패턴을 추출하는 단계;Parsing an RDQL query and extracting a triple pattern from the RDQL query, the triple pattern including components of objects and descriptors; 를 더 포함하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method including more. 제10항에 있어서,The method of claim 10, RDQL 질의의 트리플 패턴을 이용하여 RDF 그래프를 결정하는 상기 단계는,The step of determining the RDF graph using the triple pattern of the RDQL query, 순차적으로 입력되는 트리플 패턴의 주어 및 목적어를 상기 RDF 그래프의 노드로 지정하고, 트리플 패턴의 서술어를 노드를 연결하는 연결 통로로 지정하여 RDF 그래프를 결정하는 것을 특징으로 하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method characterized in that the subject and the object of the triple pattern sequentially input to the node of the RDF graph, and the descriptor of the triple pattern to the connection path connecting the nodes to determine the RDF graph. 제10항에 있어서,The method of claim 10, RDF 그래프에 최적화 변환 규칙을 적용하여 최적화된 RDF 그래프로 변환하는 상기 단계는,The above step of applying an optimized conversion rule to the RDF graph to convert it into an optimized RDF graph, 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 단계; 및Removing the triple pattern from the RDF graph in consideration of the position where the triple pattern exists; And 트리플 패턴에 미리 설정한 선택 변수가 존재하는 지 여부를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 단계Removing the triple pattern from the RDF graph by considering whether a preset selection variable exists in the triple pattern; 를 포함하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method, including. 제13항에 있어서,The method of claim 13, 트리플 패턴이 존재하는 위치를 고려하여 상기 RDF 그래프에서 트리플 패턴을 제거하는 상기 단계는,The step of removing the triple pattern from the RDF graph in consideration of the position where the triple pattern exists, 어느 트리플 패턴이 RDF 그래프의 특정 위치에서 다른 트리플 패턴의 부모 집합이 될 때, 부모 집합이 되는 트리플 패턴을 삭제하는 것을 특징으로 하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method characterized in that when one triple pattern becomes a parent set of another triple pattern at a specific position of the RDF graph, the triple pattern that becomes the parent set is deleted. 제10항에 있어서,The method of claim 10, RDQL 질의의 트리플 패턴을 이용하여 RDF 그래프를 결정하는 상기 단계는,The step of determining the RDF graph using the triple pattern of the RDQL query, 상기 RQDL 질의의 트리플 패턴을 키와 포인터를 포함하는 정렬된 어레이(array)를 이용하여 RDF 그래프를 결정하는 것을 특징으로 하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method, characterized in that for determining the RDF graph using an ordered array including a key and a pointer to the triple pattern of the RQDL query. 제10항에 있어서,The method of claim 10, RDQL 질의에 대응하는 SQL 질의를 생성하는 상기 단계는,The step of generating an SQL query corresponding to the RDQL query, 상기 최적화된 RDF 그래프에서 트리플 패턴 각각에 대한 SQL 질의를 생성하는 단계;Generating an SQL query for each triple pattern in the optimized RDF graph; 상기 RDF 그래프에 대한 그래프 탐색 과정을 적용하여 트리플 패턴의 공유 방식에 따라 상기 SQL 질의 사이에 조인(join)을 수행하는 단계Applying a graph search process to the RDF graph to perform joins between the SQL queries according to a triple pattern sharing method; 를 포함하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method, including. 제16항에 있어서,The method of claim 16, 상기 트리플 패턴의 공유 방식은,The sharing method of the triple pattern is, 2개 이상의 트리플 패턴이 주어를 공유하거나 또는 어느 트리플 패턴의 주어와 다른 트리플 패턴의 목적어가 공유하는 것을 특징으로 하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method characterized in that two or more triple patterns share a subject, or a subject of a triple pattern and a subject of another triple pattern share. 제10항에 있어서,The method of claim 10, 생성된 상기 SQL 질의를 데이터베이스에 전달하고, 상기 데이터베이스로부터 질의 결과를 수신하여 SQL 질의를 처리하는 단계Passing the generated SQL query to a database, and receiving a query result from the database to process an SQL query 를 더 포함하는 RDQL-TO-SQL 방법.RDQL-TO-SQL method including more. 제10항 내지 제18항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the method of any one of claims 10 to 18 is recorded.
KR1020070110580A 2007-10-31 2007-10-31 System and method for converting rdql query to sql query using optimization transformation rule KR100912190B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070110580A KR100912190B1 (en) 2007-10-31 2007-10-31 System and method for converting rdql query to sql query using optimization transformation rule

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070110580A KR100912190B1 (en) 2007-10-31 2007-10-31 System and method for converting rdql query to sql query using optimization transformation rule

Publications (2)

Publication Number Publication Date
KR20090044463A true KR20090044463A (en) 2009-05-07
KR100912190B1 KR100912190B1 (en) 2009-08-14

Family

ID=40855021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070110580A KR100912190B1 (en) 2007-10-31 2007-10-31 System and method for converting rdql query to sql query using optimization transformation rule

Country Status (1)

Country Link
KR (1) KR100912190B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019241293A1 (en) * 2018-06-13 2019-12-19 Stardog Union Multi-source-type interoperability and/or information retrieval optimization
US10599719B2 (en) 2018-06-13 2020-03-24 Stardog Union System and method for providing prediction-model-based generation of a graph data model
KR102177064B1 (en) * 2019-11-18 2020-11-10 재단법인대구경북과학기술원 Method and apparatus for processing query using n-ary join operators
US11093498B2 (en) 2018-06-13 2021-08-17 Stardog Union System and method for reducing resource usage in a data retrieval process

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703830B2 (en) 2014-10-09 2017-07-11 International Business Machines Corporation Translation of a SPARQL query to a SQL query

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100756978B1 (en) * 2005-11-02 2007-09-07 정민경 System and method for processing query for XML based in Relational Database

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019241293A1 (en) * 2018-06-13 2019-12-19 Stardog Union Multi-source-type interoperability and/or information retrieval optimization
US10599719B2 (en) 2018-06-13 2020-03-24 Stardog Union System and method for providing prediction-model-based generation of a graph data model
US11093498B2 (en) 2018-06-13 2021-08-17 Stardog Union System and method for reducing resource usage in a data retrieval process
KR102177064B1 (en) * 2019-11-18 2020-11-10 재단법인대구경북과학기술원 Method and apparatus for processing query using n-ary join operators
US11409746B2 (en) 2019-11-18 2022-08-09 Daegu Gyeongbuk Institute Of Science And Technology Method and apparatus for processing query using N-ary join operators

Also Published As

Publication number Publication date
KR100912190B1 (en) 2009-08-14

Similar Documents

Publication Publication Date Title
US11042537B2 (en) Link-formative auxiliary queries applied at data ingestion to facilitate data operations in a system of networked collaborative datasets
US11036697B2 (en) Transmuting data associations among data arrangements to facilitate data operations in a system of networked collaborative datasets
JP6014725B2 (en) Retrieval and information providing method and system for single / multi-sentence natural language queries
KR101082814B1 (en) Searching method for ontology information using keyword and device thereof
Ren et al. Building quick service query list using WordNet and multiple heterogeneous ontologies toward more realistic service composition
US20170060977A1 (en) Data preparation for data mining
KR100912190B1 (en) System and method for converting rdql query to sql query using optimization transformation rule
Lee et al. Table2graph: A scalable graph construction from relational tables using map-reduce
Abul-Basher et al. Tasweet: optimizing disjunctive regular path queries in graph databases
Ge et al. A cost-driven top-K queries optimization approach on federated RDF systems
Hidalgo-Delgado et al. Methodological guidelines for publishing library data as linked data
JP4854542B2 (en) Document search system and document search method
Li et al. Research on storage method for fuzzy RDF graph based on Neo4j
KR20120097840A (en) Method and apparatus for selecting rdf triple using vector space model
Li et al. A fast big data collection system using MapReduce framework
Tadesse et al. ARDI: automatic generation of RDFS models from heterogeneous data sources
Kontopoulos et al. A Domain-Agnostic Tool for Scalable Ontology Population and Enrichment from Diverse Linked Data Sources.
KR20160027455A (en) Large scale RDF data management method and apparatus thereof
Lee et al. Similarity-based change detection for RDF in MapReduce
CN114443699A (en) Information query method and device, computer equipment and computer readable storage medium
Jamadagni et al. GoDB: From batch processing to distributed querying over property graphs
CN102508828A (en) Method for finding path relationship of graph based on multiple agent routes
Kawises et al. A development of RDF data transfer and query on Hadoop Framework
Li Study on information recommendation of scientific and technological achievements based on user behavior modeling and big data mining
Taveekarn et al. Data++: An automated tool for intelligent data augmentation using wikidata

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: 20130628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140703

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee