KR20120073651A - Apparatus and method for processing sparql queries for searching keyword - Google Patents

Apparatus and method for processing sparql queries for searching keyword Download PDF

Info

Publication number
KR20120073651A
KR20120073651A KR1020100135472A KR20100135472A KR20120073651A KR 20120073651 A KR20120073651 A KR 20120073651A KR 1020100135472 A KR1020100135472 A KR 1020100135472A KR 20100135472 A KR20100135472 A KR 20100135472A KR 20120073651 A KR20120073651 A KR 20120073651A
Authority
KR
South Korea
Prior art keywords
node
path length
minimum path
nodes
group
Prior art date
Application number
KR1020100135472A
Other languages
Korean (ko)
Other versions
KR101218577B1 (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 KR1020100135472A priority Critical patent/KR101218577B1/en
Publication of KR20120073651A publication Critical patent/KR20120073651A/en
Application granted granted Critical
Publication of KR101218577B1 publication Critical patent/KR101218577B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Abstract

PURPOSE: A SPARQL(SPARQL Protocol and RDF Query Language) query processing device and a method thereof are provided to perform efficient keyword search in an RDF graph structure. CONSTITUTION: A node number setting unit(110) is defined by resource/attribute/attribute value on an RDF(Resource Description Framework) document and sets up a node number in a tree structure. A node group forming unit(120) forms a node group as a member node based on a keyword inputted from a user. A node set forming unit(130) selects the member node as the node group based on the node number.

Description

키워드 검색을 위한 SPARQL 질의 처리 수행 장치 및 방법{APPARATUS AND METHOD FOR PROCESSING SPARQL QUERIES FOR SEARCHING KEYWORD}APPARATUS AND METHOD FOR PROCESSING SPARQL QUERIES FOR SEARCHING KEYWORD}

본 발명의 실시예들은 키워드 검색을 위한 SPARQL 질의 처리 수행 장치 및 방법에 관한 것으로서, 더욱 상세하게는 RDF(Resource Description Framework) 그래프 구조에서 효율적인 키워드 검색을 수행할 수 있도록 하는 SPARQL 질의 처리 수행 장치 및 방법에 관한 것이다. Embodiments of the present invention relate to an apparatus and method for performing SPARQL query processing for keyword search, and more particularly, to an apparatus and method for performing SPARQL query processing for performing an efficient keyword search in a resource description framework (RDF) graph structure. It is about.

일반적으로 키워드 검색은 정보 검색 분야에서 사용되는 용어로서 사용자로부터 입력된 하나 이상의 키워드를 나열하여 하나 이상의 키워드가 포함된 문서를 검색하는 질의 처리 기법이다. In general, keyword search is a term used in the field of information retrieval and is a query processing technique for retrieving a document including one or more keywords by listing one or more keywords input from a user.

이와 같은 검색 기법은 사용자가 복잡한 질의 언어 또는 데이터의 구조에 대한 사전 지식을 가지고 있지 않더라도 용이하게 검색을 수행할 수 있는 장점이 있다. 이러한 장점으로 인해 관계형(Relation) 데이터베이스 또는 XML(eXtensible Markup Language) 데이터베이스를 대상으로 하는 키워드 검색 연구가 활발히 진행되고 있다.Such a search technique has an advantage that a user can easily perform a search even if the user does not have prior knowledge of a complex query language or data structure. Due to these advantages, research on keywords is being actively conducted on relational databases or XML (eXtensible Markup Language) databases.

구조화된 데이터에 대한 키워드 검색의 경우, 사용자가 소정의 키워드를 입력하면 구조화된 데이터로부터 키워드를 모두 포함하는 하부구조가 추출되어 사용자에게 반환된다. 예를 들어, 관계형 데이터베이스상에서 키워드 검색을 수행하는 경우, 외래키(Foreign Key) 참조를 따라 튜플(Tuple)들을 조인(Join)한 결과 중에서 모든 키워드를 포함하는 결과가 반환된다. 그리고, 트리 구조나 그래프 구조를 가지는 XML에 대한 키워드 검색 기법에서는 모든 키워드를 포함하는 서브트리(subtree)가 반환된다. In the case of keyword search for structured data, when a user enters a predetermined keyword, an infrastructure including all of the keywords is extracted from the structured data and returned to the user. For example, when a keyword search is performed on a relational database, a result including all keywords among the results of joining tuples along a foreign key reference is returned. In a keyword search technique for XML having a tree structure or a graph structure, a subtree including all keywords is returned.

전통적인 검색에서 질의를 수행하기 위해서는 SQL(Structured Query Language) 질의어에 대한 사전 지식이 있어야 하고, XML 데이터베이스에 대해 질의를 수행하기 위해서는 XQuery에 대한 사전 지식이 있어야 한다. 반면에 구조화된 데이터에 대한 키워드 검색을 지원하면 질의 키워드 사이의 관계를 검색하는 방법으로 데이터의 구조에 대한 정보 없이도 검색이 가능하고, 특별한 질의 언어가 없어도 키워드 검색이 가능한 장점이 있다. To perform a query in a traditional search, you must have a prior knowledge of SQL (Structured Query Language) query language, and a prior knowledge of XQuery to perform a query against an XML database. On the other hand, if a keyword search for structured data is supported, it is possible to search the relation between query keywords without information on the structure of the data, and keyword search is possible even without a special query language.

최근 지능형 웹인 시맨틱 웹(Semantic Web)이 등장하면서 새로운 종류의 구조화된 RDF(Resource Description Framework)가 제안되었다. RDF는 컴퓨터가 이해할 수 있도록 자원(Resource)에 관한 정보(속성, Property)을 그래프 구조를 통해 기술하는 언어이다. Recently, with the emergence of the Semantic Web, an intelligent web, a new kind of structured Resource Description Framework (RDF) has been proposed. RDF is a language that describes information (property) about resource through graph structure so that computer can understand.

그리고, RDF/S(Resource Description Framework Schema)는 메타 데이터에서 정의하고 있는 어휘들(Vocabularies)을 선언하기 위해 선언된다. 어휘란 속성 집합으로 자원을 기술하기 위한 각 메타 데이터 형식들에서 정의하고 있는 메타 데이터 요소 집합을 말한다. OWL(Ontology Web Language)은 RDF/S를 확장하고 웹 자원을 의미적으로 기술하기 위하여 "owl:TransitiveProperty", "owl:SymmetricProperty", "owl:SameAs" 등을 지원한다.In addition, RDF / S (Resource Description Framework Schema) is declared to declare vocabularies defined in metadata. A vocabulary is a set of metadata elements defined by each metadata type for describing a resource as a set of attributes. OWL (Ontology Web Language) supports "owl: TransitiveProperty", "owl: SymmetricProperty", "owl: SameAs", etc. to extend RDF / S and semantically describe web resources.

RDF 데이터에 대한 질의 언어로서, 원하는 데이터를 그래프 패턴 형태로 기술하는 SPARQL이 있다. RDF 데이터에 대해서도 키워드 검색을 지원하게 되면 SPARQL이라는 질의 언어의 사전지식 없이도 사용자들이 손쉽게 RDF 데이터를 검색할 수 있다.As a query language for RDF data, there is SPARQL that describes desired data in the form of a graph pattern. Supporting keyword search for RDF data also allows users to easily search for RDF data without prior knowledge of the query language SPARQL.

그러나 기존의 구조화된 데이터에 대한 키워드 검색 기법을 RDF 데이터에 그대로 적용하는 데에는 몇 가지 문제가 있다. However, there are some problems in applying the existing keyword search technique for structured data to RDF data.

먼저 RDF 그래프에서 키워드 검색을 제안한 BLINKS는 키워드 - 노드 리스트 인덱스와 노드-키워드 리스트 인덱스를 구성하고 있어야 하기 때문에 인덱스가 너무 커서 유지관리가 어렵다는 문제점이 있다. 여기서, 노드는 RDF 문서 상에서 자원/속성/속성값에 의해 정의된다. BLINKS, which proposed keyword search in RDF graph, has a problem that it is difficult to maintain because the index is too large because it must compose keyword-node list index and node-keyword list index. Here, nodes are defined by resource / attribute / attribute values on the RDF document.

다음으로, RDF 그래프는 다이렉트 그래프 구조 이기 때문에 모든 패스(path)를 유지해야 하는 단점이 존재하였다. Next, since the RDF graph is a direct graph structure, there are disadvantages in maintaining all paths.

그리고, XML 에서의 키워드 검색 방법은 XML 노드 기반의 라벨 넘버링 인덱스(Label Numbering Index)를 이용하는데 이는 XML 트리 기반의 인덱스이기 때문에 트리플 그래프 구조를 가지는 OWL 문서에는 적용이 어렵다는 문제점 또한 존재하였다. In addition, the keyword search method in XML uses an XML node-based label numbering index, which is difficult to apply to an OWL document having a triple graph structure because it is an XML tree-based index.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 RDF(Resource Description Framework) 그래프 구조에서 효율적인 키워드 검색을 수행할 수 있도록 하는 SPARQL 질의 처리 수행 장치 및 방법을 제안하고자 한다. In order to solve the problems of the prior art as described above, the present invention proposes an apparatus and method for performing a SPARQL query processing to enable efficient keyword search in the Resource Description Framework (RDF) graph structure.

본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.Other objects of the present invention may be derived by those skilled in the art through the following examples.

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, RDF 문서 상에서 자원/속성/속성값에 의해 정의되며 루프가 형성된 트리 구조(루프 트리 구조)로 배열되는 복수의 노드 각각에 대하여 드웨이 넘버 및 최소 경로 길이 넘버를 포함하는 노드 넘버를 설정하는 노드 넘버 설정부 - 상기 최소 경로 길이 넘버는 상기 드웨이 넘버와 동일한 길이를 가지며, 상기 드웨이 넘버에 의해 표현되는 적어도 하나의 노드 중 하나 이상의 노드 각각까지의 최소 경로 길이를 포함함 -; 사용자로부터 입력된 n(2 이상의 정수임)개의 키워드에 기초하여, 상기 n개의 키워드 각각과 대응되며 하나 이상의 상기 노드를 멤버노드로서 포함하는 n개의 노드 그룹을 형성하는 노드 그룹 형성부; 상기 노드 넘버를 이용하여 상기 n개의 노드 그룹 각각에서 하나의 멤버노드를 선택하여 n개의 멤버노드를 포함하는 m(1 이상의 정수임)개의 노드 세트를 형성하는 노드 세트 형성부; 상기 m개의 노드 세트 별로 상기 노드 세트에 포함된 첫번째 노드 그룹의 멤버노드와 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하고, 상기 산출된 최소 경로 길이를 상기 m개의 노드 세트 각각의 세트값으로 설정하는 노드 세트값 설정부; 및 상기 m개의 노드 세트의 세트값 중 최소의 세트값, 상기 최소의 세트값을 가지는 노드 세트 내의 첫번째 노드 그룹의 멤버노드 및 마지막 노드 그룹의 멤버노드를 이용하여 SPARQL 질의 처리를 수행하는 질의 처리 수행부를 포함하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치가 제공된다. In order to achieve the above object, according to a preferred embodiment of the present invention, each node is defined for each of a plurality of nodes defined by resource / property / property values in an RDF document and arranged in a looped tree structure (loop tree structure). A node number setting unit for setting a node number including a way number and a minimum path length number, wherein the minimum path length number has the same length as the dewway number and is one of at least one node represented by the dewway number. Includes a minimum path length to each of the above nodes; A node group forming unit for forming n node groups corresponding to each of the n keywords and including one or more of the nodes as member nodes based on n keywords input from a user; A node set forming unit which selects one member node from each of the n node groups using the node number to form m node sets including n member nodes; For each of the m node sets, a minimum path length between a member node of a first node group and a member node of a last node group included in the node set is calculated, and the calculated minimum path length is set for each of the m node sets. A node set value setting unit set to be; And performing SPARQL query processing using the minimum set value among the set values of the m node sets, the member node of the first node group in the node set having the minimum set value, and the member node of the last node group. A SPARQL query processing execution apparatus for keyword search including a portion is provided.

상기 노드 그룹 형성부는 상기 복수의 노드 중에서 j(2 이상 n 이하의 정수임)번째 키워드를 속성값을 포함하는 노드를 상기 j번째 노드 그룹의 멤버 노드로서 포함시킬 수 있다. The node group forming unit may include, as a member node of the j-th node group, a node including an attribute value of the j-th keyword among the plurality of nodes.

상기 최소 경로 길이 넘버는 0 또는 1 이상의 숫자의 배열로 구성되고, 상기 복수의 노드 중 어느 하나의 노드에 대한 상기 최소 경로 길이 넘버에 포함된 k(1 이상의 정수임)번째 숫자 중 0 이외의 숫자는 상기 어느 하나의 노드에 대한 상기 드웨이 넘버에 포함된 첫번째 숫자로부터 k번째 숫자에 의해 표현되는 노드와 상기 어느 하나의 노드 사이의 최소 경로 길이를 의미할 수 있다. The minimum path length number is composed of an array of 0 or 1 or more numbers, and a number other than 0 of the k (which is an integer of 1 or more) included in the minimum path length number for any one of the plurality of nodes is It may mean a minimum path length between the node represented by the k-th number from the first number included in the dway number for the one node and the one node.

상기 노드 세트 형성부는 j번째 노드 그룹 내의 하나 이상의 멤버노드 중에서 i(1 이상 m 이하의 정수임)번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드와의 최소 경로 길이가 최소인 멤버노드를 상기 i번째 노드 세트에 포함되는 j번째 노드 그룹의 멤버노드로 선택할 수 있다. The node set forming unit may select a member node having a minimum path length with a member node of the j-1 th node group included in the i th node set among one or more member nodes in the j th node group. It can be selected as a member node of the j-th node group included in the i-th node set.

상기 노드 세트 형성부는 상기 최소 경로 길이 넘버를 이용하여 우선적으로 상기 j번째 노드 그룹 내의 어느 하나의 멤버노드와 상기 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하되, 상기 최소 경로 길이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출할 수 없는 경우, 상기 드웨이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출할 수 있다. The node set forming unit preferentially calculates a minimum path length between any member node in the j-th node group and member nodes of the j-1 th node group included in the i-th node set by using the minimum path length number. If the minimum path length between the one of the member node and the member node of the j-1 node group included in the i-th node set can not be calculated using the minimum path length number, The minimum path length between any one member node and the member node of the j-1 th node group included in the i th node set may be calculated using the number.

상기 노드 세트 형성부는 상기 노드 넘버를 이용하여 상기 복수의 노드 중 상기 루프 트리의 루트노드를 형성하는 노드까지의 최소 경로 길이에 따라 상기 j번째 노드 그룹 내의 하나 이상의 멤버 노드를 정렬하고, 상기 정렬된 j번째 노드 그룹 내의 하나 이상의 멤버노드에 대해 이진 탐색 기법을 적용하여 상기 i번째 노드 세트에 포함된 j-1번째 멤버노드와의 최소 경로 길이가 최소인 멤버노드를 선택할 수 있다. The node set forming unit aligns one or more member nodes in the j-th node group according to the minimum path length to the node forming the root node of the loop tree among the plurality of nodes using the node number, By applying a binary search technique to one or more member nodes in the j-th node group, a member node having a minimum path length with the j-1 th member node included in the i-th node set may be selected.

상기 노드 세트 형성부는 상기 최소 경로 길이 넘버를 이용하여 우선적으로 상기 j번째 노드 그룹 내의 어느 하나의 멤버노드와 상기 루트노드 사이의 최소 경로 길이를 산출하되, 상기 최소 경로 길이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 루트노드 사이의 최소 경로 길이를 산출할 수 없는 경우, 상기 드웨이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 루트노드 사이의 최소 경로 길이를 산출할 수 있다. The node set forming unit preferentially calculates a minimum path length between any one member node and the root node in the j-th node group using the minimum path length number, and uses the minimum path length number. When the minimum path length between the member node and the root node cannot be calculated, the minimum path length between any one member node and the root node may be calculated using the dewway number.

상기 노드 세트값 설정부는 상기 노드 세트 별로 상기 첫번째 노드 그룹의 멤버노드의 드웨이 넘버와 상기 마지막 노드 그룹의 멤버노드의 드웨이 넘버가 공통되는 부분 중 적어도 일부를 드웨이 넘버로 하는 적어도 하나의 레퍼런스 노드를 설정하고, 상기 첫번째 노드 그룹의 멤버노드와 상기 적어도 하나의 레퍼런스 노드 각각 사이의 제1 최소 경로 길이 및 상기 마지막 노드 그룹의 멤버노드와 상기 적어도 하나의 레퍼런스 노드 각각 사이의 제2 최소 경로 길이를 산출하며, 서로 대응되는 상기 제1 최소 경로 길이 및 상기 제2 최소 경로 길이를 합한 값 중에서 최소값을 상기 첫번째 노드 그룹의 멤버노드와 상기 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이로 산출할 수 있다. The node set value setting unit includes at least one reference for each node set having at least a part of a common part of a node number of a member node of the first node group and a node number of a member node of the last node group. Configure a node, and set a first minimum path length between each member node of the first node group and each of the at least one reference node and a second minimum path length between each member node and the at least one reference node of the last node group. The minimum value of the sum of the first minimum path length and the second minimum path length corresponding to each other may be calculated as the minimum path length between the member node of the first node group and the member node of the last node group. have.

상기 적어도 하나의 레퍼런스 노드의 개수는 상기 첫번째 노드 그룹의 멤버노드에 대한 최소 경로 길이 넘버 중 상기 드웨이 넘버가 공통되는 부분의 마지막 자리 숫자와 대응되는 위치로부터 시작하여 0의 숫자가 최초로 배열되는 위치까지의 숫자의 개수 및 상기 마지막 노드 그룹의 멤버노드에 대한 최소 경로 길이 넘버 중 상기 드웨이 넘버가 공통되는 부분의 마지막 자리 숫자와 대응되는 위치로부터 시작하여 0의 숫자가 최초로 배열되는 위치까지의 숫자의 개수 중 작은 값과 대응될 수 있다. The number of the at least one reference node is a position where the number of zeros is first arranged starting from the position corresponding to the last digit of the common part of the way number among the minimum path length numbers for the member nodes of the first node group. The number from 0 to the position where the number of 0 is first arranged, starting from the position corresponding to the last digit of the common part of the number among the minimum path length number for the member node of the last node group. The number may correspond to a smaller value.

상기 m개의 노드 세트의 개수는 상기 첫번째 노드 그룹에 포함된 멤버노드 개수와 동일하고, 상기 m개의 노드 세트에 각각 포함된 상기 첫번째 노드 그룹의 멤버노드는 서로 상이할 수 있다. The number of m node sets may be equal to the number of member nodes included in the first node group, and the member nodes of the first node group included in the m node sets may be different from each other.

상기 첫번째 노드 그룹은 상기 n개의 노드 그룹 중에서 상기 멤버노드의 개수가 최소인 노드 그룹일 수 있다. The first node group may be a node group having the minimum number of member nodes among the n node groups.

또한, 본 발명의 다른 실시예에 따르면, RDF 문서 상에서 자원/속성/속성값에 의해 정의되며 루프가 형성된 트리 구조(루프 트리 구조)로 배열되는 복수의 노드 각각에 대하여 드웨이 넘버 및 최소 경로 길이 넘버를 포함하는 노드 넘버를 설정하는 단계 - 상기 최소 경로 길이 넘버는 상기 드웨이 넘버와 동일한 길이를 가지며, 상기 드웨이 넘버에 의해 표현되는 적어도 하나의 노드 중 하나 이상의 노드 각각까지의 최소 경로 길이를 포함함 -; 사용자로부터 입력된 n(2 이상의 정수임)개의 키워드에 기초하여, 상기 n개의 키워드 각각과 대응되며 하나 이상의 상기 노드를 멤버노드로서 포함하는 n개의 노드 그룹을 형성하는 단계; 상기 노드 넘버를 이용하여 상기 n개의 노드 그룹 각각에서 하나의 멤버노드를 선택하여 n개의 멤버노드를 포함하는 m(1 이상의 정수임)개의 노드 세트를 형성하는 단계; 상기 m개의 노드 세트 별로 상기 노드 세트에 포함된 첫번째 노드 그룹의 멤버노드와 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하고, 상기 산출된 최소 경로 길이를 상기 m개의 노드 세트 각각의 세트값으로 설정하는 단계; 및 상기 m개의 노드 세트의 세트값 중 최소의 세트값, 상기 최소의 세트값을 가지는 노드 세트 내의 첫번째 노드 그룹의 멤버노드 및 마지막 노드 그룹의 멤버노드를 이용하여 SPARQL 질의 처리를 수행하는 단계를 포함하는 키워드 검색을 위한 SPARQL 질의 처리 수행 방법이 제공된다. In addition, according to another embodiment of the present invention, the draw number and the minimum path length for each of a plurality of nodes defined by resource / property / property values and arranged in a looped tree structure (loop tree structure) on an RDF document. Setting a node number including a number, wherein the minimum path length number has the same length as the dew number and indicates a minimum path length to each one or more nodes of at least one node represented by the dew number. Includes-; Forming an n node group corresponding to each of the n keywords and including one or more of the nodes as member nodes based on n keywords input from a user; Selecting one member node from each of the n node groups using the node number to form a set of m nodes (which are integers of 1 or more) including n member nodes; For each of the m node sets, a minimum path length between a member node of a first node group and a member node of a last node group included in the node set is calculated, and the calculated minimum path length is set for each of the m node sets. Setting to; And performing SPARQL query processing using the minimum set value among the set values of the m node sets, the member node of the first node group in the node set having the minimum set value, and the member node of the last node group. A method of performing SPARQL query processing for a keyword search is provided.

본 발명에 따르면, RDF 그래프 구조에서 효율적인 키워드 검색을 수행할 수 있게 된다. According to the present invention, it is possible to perform an efficient keyword search in the RDF graph structure.

도 1은 본 발명의 일 실시예에 따른 키워드 검색을 위한 SPARQL 질의 처리 장치의 상세한 구성을 도시한 블록도이다.
도 2는 RDF 문서 상에서 루프 트리 구조를 형성하는 복수의 노드 및 복수의 노드에 부여되는 LDN의 일례를 도시한 도면이다.
도 3 및 도 4는 본 발명의 일 실시예에 따라서 구성된 n개의 노드 그룹 및 이를 이용하여 노드 세트를 형성하는 개념을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 키워드 검색을 위한 SPARQL 질의 처리 수행 방법의 전체적인 흐름을 도시한 순서도이다.
1 is a block diagram illustrating a detailed configuration of an SPARQL query processing apparatus for keyword search according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of LDNs given to a plurality of nodes and a plurality of nodes forming a loop tree structure on an RDF document.
3 and 4 are diagrams for explaining a concept of forming a node set and n node groups configured according to an embodiment of the present invention.
5 is a flowchart illustrating the overall flow of a method for performing SPARQL query processing for keyword search according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 키워드 검색을 위한 SPARQL 질의 처리 장치(이하, "SPARQL 질의 처리 장치"라고 함)의 상세한 구성을 도시한 블록도이다. 1 is a block diagram illustrating a detailed configuration of an SPARQL query processing apparatus (hereinafter, referred to as an "SPARQL query processing apparatus") for keyword search according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 SPARQL 질의 처리 장치(100)는 노드 넘버 설정부(110), 노드 그룹 형성부(120), 노드 세트 형성부(130), 노드 세트값 설정부(140) 및 질의 처리 수행부(150)를 포함한다. 이하, 각 구성 요소 별로 그 기능을 상술하기로 한다. Referring to FIG. 1, the SPARQL query processing apparatus 100 according to an exemplary embodiment may include a node number setting unit 110, a node group forming unit 120, a node set forming unit 130, and a node set value setting. The unit 140 and the query processing unit 150 is included. Hereinafter, the function of each component will be described in detail.

노드 넘버 설정부(110)는 RDF(Resource Description Framework) 문서 상에서 자원/속성/속성값(Resource/Property Type/Value)에 의해 정의되는 복수의 노드 각각에 대하여 노드 넘버(Node Number)를 설정한다. The node number setting unit 110 sets a node number for each of a plurality of nodes defined by a resource / property type / value on a resource description framework (RDF) document.

여기서, 복수의 노드는 도 2에 도시된 바와 같이 기본적으로 트리 구조(실선으로 표시)를 가지되, 루트 노드는 어느 하나의 자식 노드와 연결되어 루프를 형성한다(점선으로 표시). 즉, 복수의 노드는 루프가 형성된 트리 구조(루프 트리 구조)에 따라 연결된다. Here, the plurality of nodes basically have a tree structure (indicated by a solid line) as shown in FIG. 2, but the root node is connected to any one child node to form a loop (indicated by a dotted line). That is, the plurality of nodes are connected according to the tree structure in which the loop is formed (loop tree structure).

또한, 노드 넘버는 드웨이 넘버(DN: Dewey Number, 이하 "DN"이라고 함) 및 최소 경로 길이 넘버(MPLN: Minimal Path Length Number, 이하, "MPLN"이라고 함)를 포함한다. The node number also includes a Dewey Number (DN) and a Minimal Path Length Number (MPLN).

DN은 일반적인 RDP 문서(그래프) 상에서 각각의 노드로 부여되는 숫자이다. 그리고, MPLN은 DN과 동일한 길이를 가지며, DN에 의해 표현되는 적어도 하나의 노드 중 하나 이상의 노드 각각까지의 최소 경로 길이를 포함하는 넘버이다. 도 2에서는 DN과 MPLN을 포함하는 노드 넘버의 일례들을 도시하고 있다. DN is a number assigned to each node in a general RDP document (graph). The MPLN has a length equal to the DN, and is a number including a minimum path length to each of one or more nodes among the at least one node represented by the DN. 2 shows examples of node numbers including a DN and an MPLN.

도 2를 참조하면 원형으로 표시된 각 노드와 인접하여 사각형으로 표시된 노드 넘버가 도시되어 있다. 노드 넘버 중에서 상단에 표시된 숫자 배열이 DN이고, 하단에 표시된 숫자 배열이 MPLN이다. Referring to Fig. 2, a node number indicated by a rectangle is shown adjacent to each node indicated by a circle. The number array displayed at the top of the node number is DN, and the number array displayed at the bottom is MPLN.

도 2에 도시된 바와 같이, MPLN은 DN과 동일한 개수의 숫자 배열로 표시되며(즉 동일한 길이를 가지며), 배열되는 숫자는 0 또는 1 이상의 값을 가진다. As shown in FIG. 2, the MPLN is represented by the same number of numeric arrays as DN (ie, have the same length), and the arrayed numbers have a value of 0 or 1 or more.

여기서, 0을 제외한 숫자 중에서 k(1 이상의 정수임)번째 숫자는 DN의 첫번째 자리 숫자로부터 k번째 자리 숫자에 의해 표현되는 노드와 해당 노드 사이의 최소 경로 길이이다. 만약, MPLN의 k번째 자리 숫자가 0인 경우는 DN의 첫번째 자리 숫자로부터 k번째 자리 숫자에 의해 표현되는 노드와의 최소 경로 길이가 연산되지 않음을 의미한다. Here, k (the integer greater than or equal to 1) among the numbers except 0 is the minimum path length between the node represented by the k th digit from the first digit of the DN and the corresponding node. If the kth digit of the MPLN is 0, it means that the minimum path length with the node represented by the kth digit from the first digit of the DN is not calculated.

예를 들어, 노드 c의 경우, MPLN의 첫번째 자리 숫자는 1의 값을 갖고, 나머지 숫자들은 0의 숫자를 가지므로, "0"의 DN으로 표시되는 노드(즉, 노드 a)와 노드 c 사이의 최소 경로 길이는 1이 되고, "0.0", 0.0.0", "0.0.0.2"에 의해 각각 표시되는 노드(즉, 노드 b, 노드 d, 노드 e)와 노드 C와의 최소 경로 길이는 연산되지 않은 상태이다. For example, for node c, the first digit of the MPLN has a value of 1 and the remaining digits have a number of 0, so that between node c and the node represented by DN of "0" (that is, node a) The minimum path length of becomes 1, and the minimum path lengths of node C (ie, node b, node d, node e) and node C indicated by "0.0", 0.0.0 ", and" 0.0.0.2 "respectively are calculated. It is not.

다른 일례로, 노드 e의 경우, MPLN의 첫번째 자리 숫자는 2의 값을 갖고, 나머지 숫자들은 0의 숫자를 가지므로, "0"의 DN으로 표시되는 노드(즉, 노드 a)와 노드 e 사이의 최소 경로 길이는 2가 되고, "0.0", 0.0.0"에 의해 각각 표시되는 노드(즉, 노드 b, 노드 d)와 노드 e와의 최소 경로 길이는 연산되지 않은 상태이다.As another example, for node e, the first digit of the MPLN has a value of 2, and the remaining digits have a number of 0, so that between node e and node e represented by DN of "0" (ie, node a). The minimum path length of becomes 2, and the minimum path lengths of the nodes (i.e., node b, node d) and node e respectively indicated by "0.0" and 0.0.0 "are not calculated.

다시 말해, 복수의 노드 중 어느 하나의 노드에 대한 MPLN에 포함된 k번째 숫자 중 0 이외의 숫자는 상기 어느 하나의 노드에 대한 DN에 포함된 첫번째 숫자로부터 k번째 숫자에 의해 표현되는 노드와 상기 어느 하나의 노드 사이의 최소 경로 길이를 의미한다. In other words, a number other than 0 of the kth number included in the MPLN for any one node of the plurality of nodes is represented by the kth number from the first number included in the DN for the one node and the It means the minimum path length between any one node.

즉, MPLN은 트리 구조상에 형성되는 루프에 의하여 변경되는 최소 길이 경로를 반영한 넘버로서, 후술하는 바와 같이 노드 간의 최소 경로 길이를 산출하는데 필요한 연산량을 감소시키는데 용이하게 활용될 수 있다.That is, the MPLN is a number reflecting the minimum length path changed by the loop formed on the tree structure, and can be easily used to reduce the amount of computation required to calculate the minimum path length between nodes as described below.

이하에서는 설명의 편의를 위해 DN과 MPLN을 포함하는 노드 넘버를 LDN(Loopness Dewey Number)이라 칭하기로 한다.
Hereinafter, for convenience of description, a node number including a DN and an MPLN will be referred to as a loopiness depth number (LDN).

노드 그룹 형성부(120)는 사용자로부터 입력된 n(2 이상의 정수임)개의 키워드에 기초하여, n개의 키워드 각각과 대응되며 하나 이상의 노드를 멤버노드로서 포함하는 n개의 노드 그룹을 형성한다. The node group forming unit 120 forms n node groups that correspond to each of the n keywords and include one or more nodes as member nodes, based on n keywords (which are integers of 2 or more) input from the user.

일례로서, 사용자로부터 "B", "C", "D"의 세개의 키워드가 입력되는 경우, 노드 그룹 형성부(120)는 도 3에 도시된 바와 같이 각각의 키워드와 관련된 하나 이상의 노드(LDN으로 표시)를 선택하고, 선택된 하나 이상의 노드를 멤버노드로 포함하는 3개의 노드 그룹을 형성한다. As an example, when three keywords "B", "C", and "D" are input from the user, the node group forming unit 120 may include one or more nodes (LDNs) associated with each keyword as shown in FIG. And form a three node group including one or more selected nodes as member nodes.

여기서, 소정의 키워드와 대응되는 노드 그룹에 포함되는 노드들은 해당 키워드를 속성값으로 포함하는 노드일 수 있다. 즉, 노드 그룹 형성부(120)는 복수의 노드 중에서 j(2 이상 n 이하의 정수임)번째 키워드를 속성값을 포함하는 노드를 j번째 노드 그룹의 멤버 노드로서 포함시킬 수 있다. Here, the nodes included in the node group corresponding to the predetermined keyword may be nodes including the corresponding keyword as an attribute value. That is, the node group forming unit 120 may include the node including the j-th keyword (which is an integer of 2 or more and n or less) among the plurality of nodes as a member node of the j-th node group.

이하에서는 설명의 편의를 위해, 도 3의 일례에서 키워드 B와 대응되는 노드 그룹을 "노드 그룹 B", 키워드 C와 대응되는 노드 그룹을 "노드 그룹 C", 키워드 D와 대응되는 노드 그룹을 "노드 그룹 D"라 칭하기로 한다.
Hereinafter, for convenience of description, in the example of FIG. 3, the node group corresponding to the keyword B is referred to as "node group B", the node group corresponding to the keyword C as "node group C", and the node group corresponding to the keyword D as ". Node group D ".

노드 세트 형성부(130)는 LDN을 이용하여 n개의 노드 그룹 각각에서 하나의 멤버노드를 선택하여 n개의 멤버노드를 포함하는 m(1 이상의 정수임)개의 노드 세트를 형성한다.The node set forming unit 130 selects one member node from each of the n node groups using the LDN to form a set of m nodes (which are integers of 1 or more) including n member nodes.

본 발명의 일 실시예에 따르면, m개의 노드 세트의 개수는 n개의 노드 그룹 중에서 첫번째 노드 그룹에 포함된 멤버노드 개수와 동일하고, m개의 노드 세트에 각각 포함된 첫번째 노드 그룹의 멤버노드는 서로 상이할 수 있다. 즉, 노드 세트 형성부(130)는 첫번째 노드 그룹에 포함된 멤버노드 별로 노드 세트를 생성할 수 있다. According to an embodiment of the present invention, the number of m node sets is equal to the number of member nodes included in the first node group among the n node groups, and the member nodes of the first node group each included in the m node sets are mutually different. Can be different. That is, the node set forming unit 130 may generate a node set for each member node included in the first node group.

또한, 본 발명의 일 실시예에 따르면, 첫번째 노드 그룹은 개의 n개의 노드 그룹 중에서 멤버노드의 개수가 최소인 노드 그룹일 수 있다. 이는 후술하는 노드 세트값 설정부(140)에서의 연산량을 줄이기 위함이다. 첫번째 노드 그룹 이외의 다른 노드 그룹은 임의로 그 순서가 설정될 수 있다. According to an embodiment of the present invention, the first node group may be a node group having the minimum number of member nodes among n node groups. This is to reduce the amount of computation in the node set value setting unit 140 to be described later. The node groups other than the first node group may be arbitrarily set in order.

즉, 도 3의 일례에서, 노드 세트 형성부(130)는 멤버노드의 개수가 제일 작은(=4) 노드 그룹 D를 첫번째 노드 그룹으로 선택할 수 있다. That is, in the example of FIG. 3, the node set forming unit 130 may select the node group D having the smallest number of member nodes (= 4) as the first node group.

이하, 도 3 및 도 4를 참조하여 노드 세트 형성부(130)가 m개의 노드 세트를 형성하는 동작을 보다 상세히 설명하기로 한다. Hereinafter, an operation in which the node set forming unit 130 forms m node sets will be described in detail with reference to FIGS. 3 and 4.

먼저, 노드 세트 형성부(130)는 n개의 노드 그룹 중에서 멤버노드의 개수가 최소인 노드 그룹을 첫번째 노드 그룹으로 배열하고, 나머지 노드 그룹을 임의의 순서에 따라 배열한다. 본 과정은 앞서 설명한 바와 같이 노드 세트값 설정부(140)의 연산량을 줄이기 위한 것으로서, 이는 사용자에 의해 선택적으로 생략되어 수행될 수 있다. First, the node set forming unit 130 arranges the node group having the minimum number of member nodes among the n node groups as the first node group, and arranges the remaining node groups in any order. This process is to reduce the amount of calculation of the node set value setting unit 140 as described above, which may be omitted by a user selectively.

일례로서, 도 3의 일례에서 설명한 바와 같이 3개의 키워드가 입력된 경우, 노드 세트 형성부(130)는 도 4의 (a)에 도시된 바와 같이 3개의 노드 그룹을 배열할 수 있다. As an example, when three keywords are input as described in the example of FIG. 3, the node set forming unit 130 may arrange three node groups as shown in FIG. 4A.

다음으로, 노드 세트 형성부(130)는 j번째 노드 그룹 내의 하나 이상의 멤버노드 중에서 i(1 이상 m 이하의 정수임)번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드와의 최소 경로 길이가 최소인 멤버노드를 i번째 노드 세트에 포함되는 j번째 노드 그룹의 멤버노드로 선택할 수 있다. Next, the node set forming unit 130 has a minimum path length with the member node of the j-1th node group included in the i-th node set among one or more member nodes in the jth node group. A member node having a minimum of may be selected as a member node of the j th node group included in the i th node set.

다시 말해, 노드 세트 형성부(130)는 노드 그룹의 순서에 따라서 노드 세트에 포함되는 멤버노드를 선택하여 해당 노드 세트에 포함시키되, 이전 노드 그룹에서 선택된 멤버노드와 최소 경로 길이가 최소인 다음 노드 그룹의 멤버 노드를 해당 노드 세트에 포함시킬 수 있다. In other words, the node set forming unit 130 selects the member nodes included in the node set according to the order of the node groups and includes them in the corresponding node set, but the next node whose minimum path length is the minimum and the member node selected in the previous node group. Member nodes of a group can be included in the node set.

이를 위해, 노드 세트 형성부(130)는 MPLN을 이용하여 우선적으로 j번째 노드 그룹 내의 어느 하나의 멤버노드와 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하되, MPLN을 이용하여 상기 어느 하나의 멤버노드와 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출할 수 없는 경우, DN을 이용하여 상기 어느 하나의 멤버노드와 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출할 수 있다. To this end, the node set forming unit 130 preferentially determines the minimum path length between any one member node in the j-th node group and the member node of the j-1 th node group included in the i-th node set using the MPLN. If it is not possible to calculate the minimum path length between any one member node and a member node of the j-1th node group included in the i-th node set using the MPLN, the DN may be used. The minimum path length between the member node and the member node of the j-1th node group included in the i-th node set may be calculated.

예를 들어, 도 4의 (a)의 경우에 있어서, 노드 그룹 D에서 노드(0.0.1 / 0.0.0)가 먼저 첫번째 노드 세트의 멤버로 선택된 경우, 노드 세트 형성부(130)는 MPLN을 이용하여 노드(0.0.1 / 0.0.0)와의 최소 경로 길이 산출이 가능한 노드 그룹 B의 노드를 검색한다. 이에 따라, 노드 그룹 B에 포함된 노드(0.0.1.2.0.0 / 2.0.0.2.0.0)와 노드(0.0.1 / 0.0.0) 사이의 최소 길이 경로가 산출(=2)된다. For example, in the case of (a) of FIG. 4, when node (0.0.1 / 0.0.0) is first selected as a member of the first node set in node group D, node set forming unit 130 selects MPLN. Search for nodes in node group B that can calculate the minimum path length with node (0.0.1 / 0.0.0). Accordingly, the minimum length path between the node (0.0.1.2.0.0 / 2.0.0.2.0.0) and the node (0.0.1 / 0.0.0) included in the node group B is calculated (= 2).

이 후, 노드 세트 형성부(130)는 DN을 이용하여 노드 그룹 B에 포함된 나머지 노드들과 노드(0.0.1 / 0.0.0) 사이의 최소 길이 경로를 산출한다. 그 결과, 노드(0.0.1.2 / 2.0.0.0)와의 거리는 1로, 노드(0.0.1.2.0.0.0.0 / 4.0.0.0.0.0.0.0)와의 거리는 5로, 노드(0.0 / 0.0)와의 거리는 1로, 노드(0.0.1.2.0.0.0.1.2 / 6.0.0.0.0.0.0.0.0)와의 거리는 6으로, 노드(0.0.1.2.0.0.0.1.1 / 5.0.0.0.0.0.0.0.0)와의 거리는 6으로 산출된다. Thereafter, the node set forming unit 130 calculates a minimum length path between the remaining nodes included in the node group B and the node (0.0.1 / 0.0.0) using the DN. As a result, the distance from the node (0.0.1.2 / 2.0.0.0) is 1, the distance from the node (0.0.1.2.0.0.0.0 / 4.0.0.0.0.0.0.0) is 5, and the distance from the node (0.0 / 0.0) is 1 The distance from the node (0.0.1.2.0.0.0.1.2 / 6.0.0.0.0.0.0.0.0) is 6, and the node (0.0.1.2.0.0.0.1.1 / 5.0.0.0.0.0.0.0.0) ) Is calculated as 6.

이 중에서 노드(0.0 / 0.0) 및 노드(0.0.1.2 / 2.0.0.0)가 노드(0.0.1 / 0.0.0)와 최소 경로 길이가 가장 짧은 것으로 산출되었는바, 노드 세트 형성부(130)는 노드(0.0 / 0.0) 및 노드(0.0.1.2 / 2.0.0.0) 중 어느 하나를 해당 노드 세트에 포함시킨다. 일례로서, 노드 세트 형성부(130)는 루트노드와의 거리가 보다 가까운 노드(0.0 / 0.0)를 선택할 수 있다. Of these, the node (0.0 / 0.0) and the node (0.0.1.2 / 2.0.0.0) was calculated to have the shortest path length with the node (0.0.1 / 0.0.0), the node set forming unit 130 is Include either node (0.0 / 0.0) or node (0.0.1.2 / 2.0.0.0) in the node set. As an example, the node set forming unit 130 may select a node (0.0 / 0.0) that is closer to the root node.

계속하여, 노드 세트 형성부(130)는 위에서 설명한 과정과 동일한 과정에 따라 노드 그룹 B에서 선택된 노드(0.0 / 0.0)와 가장 짧은 최소 경로 길이를 갖는 노드 그룹 C 내의 하나의 노드를 선택한다. 이에 따라 노드 그룹 C에서는 노드(0.0.0 / 0.0.0)가 선택된다. Subsequently, the node set forming unit 130 selects one node in the node group C having the shortest minimum path length with the node (0.0 / 0.0) selected in the node group B according to the same process as described above. Accordingly, in the node group C, the node (0.0.0 / 0.0.0) is selected.

이에 따라, 노드 세트 형성부(130)는 [노드(0.0.1 / 0.0.0), 노드(0.0 / 0.0), 노드(0.0.0 / 0.0.0)]를 하나의(첫번째) 노드 세트로 형성하게 된다. Accordingly, the node set forming unit 130 converts [node (0.0.1 / 0.0.0), node (0.0 / 0.0), and node (0.0.0 / 0.0.0)] into one (first) node set. To form.

한편 본 발명의 다른 실시예에 따르면, 노드 세트 형성부(130)는 연산량을 줄이기 위해 이진 탐색 기법을 이용하여 i번째 노드 세트에 포함된 j-1번째 멤버노드와의 최소 경로 길이가 최소인 멤버노드를 j번째 노드 그룹 내에서 선택할 수 있다. 이에 대해 보다 상세히 설명하면 아래와 같다. Meanwhile, according to another exemplary embodiment of the present invention, the node set forming unit 130 uses a binary search technique to reduce the amount of computation, and the member having the minimum path length with the j-1 th member node included in the i th node set is minimum. You can select a node within the j th node group. This will be described in more detail below.

먼저, 노드 세트 형성부(130)는 LDN을 이용하여 루프 트리의 루트노드를 형성하는 노드까지의 최소 경로 길이에 따라 j번째 노드 그룹 내의 하나 이상의 멤버 노드를 정렬한다. First, the node set forming unit 130 sorts one or more member nodes in the j-th node group according to the minimum path length to the node forming the root node of the loop tree using the LDN.

본 발명의 일 실시예에 따르면, 노드 세트 형성부(130)는 MPLN을 이용하여 우선적으로 j번째 노드 그룹 내의 어느 하나의 멤버노드와 루트노드 사이의 최소 경로 길이를 산출하되, MPLN을 이용하여 상기 어느 하나의 멤버노드와 상기 루트노드 사이의 최소 경로 길이를 산출할 수 없는 경우, DN을 이용하여 상기 어느 하나의 멤버노드와 루트노드 사이의 최소 경로 길이를 산출할 수 있다. According to an embodiment of the present invention, the node set forming unit 130 first calculates a minimum path length between any one member node and the root node in the j-th node group by using the MPLN, but uses the MPLN as described above. If the minimum path length between any one member node and the root node cannot be calculated, the minimum path length between any one member node and the root node can be calculated using the DN.

일례로서, 노드 세트 형성부(130)는 도 4의 (a)에 도시된 노드 그룹들 내의 멤버노드들을 도 4의 (b)에 도시된 바와 같이 정렬할 수 있다. As an example, the node set forming unit 130 may arrange the member nodes in the node groups shown in FIG. 4A as shown in FIG. 4B.

이와 관련하여, 노드 그룹 D의 멤버노드의 정렬 동작을 보다 상세히 설명하면, 먼저 노드(0.0.1.2.0.0.0.1 / 4.0.0.0.0.0.0.0) 및 노드(0.0.1.2.0.0.0.1.2 / 5.0.0.0.0.0.0.0.0)의 경우 MPLN을 이용하여 루트노드 사이와의 최소 경로 길이를 산출할 수 있으므로, 루트노드와의 최소 경로 길이가 MPLN에 의해 각각 4 및 5로 설정된다. 그리고, 노드(0.0.1 / 0.0.0) 및 노드(0.0.0.0.0 / 0.0.0.0.0)의 경우, MPLN을 이용하여 루트노드 사이와의 최소 경로 길이를 산출할 수 없으므로(MPLN의 첫번째 자리의 숫자의 값이 "0"임), DN에 의해 최소 경로 길이가 각각 2 및 4로 설정된다. 따라서, 노드 그룹 D의 경우, 도 4의 (b)에 도시된 바와 같이 산출된 최소 경로 길이의 순서 즉, "노드(0.0.1 / 0.0.0), 노드(0.0.0.0.0 / 0.0.0.0.0), 노드(0.0.1.2.0.0.0.1 / 4.0.0.0.0.0.0.0) 및 노드(0.0.1.2.0.0.0.1.2 / 5.0.0.0.0.0.0.0.0)"의 순서대로 정렬되게 된다. 나머지 노드 그룹들 역시 위와 같은 방법에 따라 멤버노드를 정렬한다. In this regard, the sorting operation of member nodes of node group D will be described in more detail, firstly, the nodes (0.0.1.2.0.0.0.1 / 4.0.0.0.0.0.0.0) and the nodes (0.0.1.2.0.0.0.1.2). /5.0.0.0.0.0.0.0.0), since the minimum path length between the root nodes can be calculated using the MPLN, the minimum path length with the root nodes is set to 4 and 5 by the MPLN, respectively. In the case of nodes (0.0.1 / 0.0.0) and nodes (0.0.0.0.0 / 0.0.0.0.0), the minimum path length between the root nodes cannot be calculated using the MPLN (MPLN The value of the first digit is "0"), the minimum path length is set to 2 and 4 by DN, respectively. Therefore, in the case of node group D, the order of the minimum path lengths calculated as shown in FIG. 4 (b), that is, "node (0.0.1 / 0.0.0), node (0.0.0.0.0 / 0.0. 0.0.0), nodes (0.0.1.2.0.0.0.1 / 4.0.0.0.0.0.0.0), and nodes (0.0.1.2.0.0.0.1.2 / 5.0.0.0.0.0.0.0.0) " Will be aligned. The remaining node groups also sort member nodes in the same way.

다음으로, 노드 세트 형성부(130)는 정렬된 j번째 노드 그룹 내의 하나 이상의 멤버노드에 대해 이진 탐색 기법을 적용하여 i번째 노드 세트에 포함된 j-1번째 멤버노드와의 최소 경로 길이가 최소인 멤버노드를 선택한다. Next, the node set forming unit 130 applies a binary search technique to one or more member nodes in the sorted j-th node group, thereby minimizing a minimum path length with the j-1 th member node included in the i-th node set. Select an in-member node.

일례로서, 도 4의 (b)와 같이 멤버노드들이 정렬된 경우에 있어서, 이진 탐색 기법에 따라 노드 그룹 B에 포함된 멤버노드 중 하나의 멤버노드를 선택하는 동작을 설명하면 다음과 같다. As an example, in the case where the member nodes are arranged as shown in FIG. 4B, an operation of selecting one member node among the member nodes included in the node group B according to the binary search scheme will be described as follows.

노드 세트 형성부(130)는 노드 그룹 D에 포함된 노드(0.0.1 / 0.0.0)와 노드 그룹 B에 포함된 6개의 노드 중 루트노드와의 최소 경로 길이가 중간값(=4)인 노드(0.0.1.2.0.0.0.0 / 4.0.0.0.0.0.0.0) 사이의 최소 경로 길이를 산출한다. 이 경우에도 MPLN이 우선적으로 이용되고, MPLN을 이용할 수 없는 경우에 한해 DN이 이용된다. 이에 따라, 노드(0.0.1 / 0.0.0)와 노드(0.0.1.2.0.0.0.0 / 4.0.0.0.0.0.0.0) 사이의 최소 경로 길이는 5로 산출된다. The node set forming unit 130 has a median value (= 4) of a minimum path length between the node (0.0.1 / 0.0.0) included in the node group D and the root node among the six nodes included in the node group B. Calculate the minimum path length between nodes (0.0.1.2.0.0.0.0 / 4.0.0.0.0.0.0.0). Also in this case, MPLN is used preferentially, and DN is used only when MPLN is not available. Accordingly, the minimum path length between node (0.0.1 / 0.0.0) and node (0.0.1.2.0.0.0.0 / 4.0.0.0.0.0.0.0) is calculated as 5.

계속하여, 노드 세트 형성부(130)는 노드 그룹 D에 포함된 노드(0.0.1 / 0.0.0) 및 루트노드와의 최소 경로 길이가 1 이상 4 이하의 값을 갖는 노드(0.0.1.2 / 2.0.0.0) 및 노드(0.0.1.2.0.0 / 2.0.0.2.0.0)와의 최소 경로 길이를 산출한다. Subsequently, the node set forming unit 130 includes nodes (0.0.1.2 / 0.0.0) included in the node group D and nodes having a minimum path length between the root node and a value of 1 or more and 4 or less (0.0.1.2 / 2.0.0.0) and node (0.0.1.2.0.0 / 2.0.0.2.0.0) to calculate the minimum path length.

이 경우, 최소 경로 길이는 1 및 3으로 설정되는데, 이는 앞서 산출된 최소 경로 길이(=4)보다 작으므로, 노드 세트 형성부(130)는 루트노드와의 최소 경로 길이가 1인 노드(0.0 / 0.0)와 노드(0.0.1 / 0.0.0) 사이의 최소 경로 길이를 산출한다. In this case, the minimum path length is set to 1 and 3, which is smaller than the previously calculated minimum path length (= 4), so that the node set forming unit 130 has a node having a minimum path length of 1 with the root node (0.0). Calculate the minimum path length between /0.0) and node (0.0.1 / 0.0.0).

이 경우에도 최소 경로 길이는 1로 산출되므로, 노드 세트 형성부(130)는 루트노드와 보다 가까운 노드(0.0 / 0.0)를 해당 노드 세트에 포함시킬 멤버노드로 선택한다. In this case, since the minimum path length is calculated as 1, the node set forming unit 130 selects a node (0.0 / 0.0) closer to the root node as a member node to be included in the node set.

이러한 동작은 모든 노드 세트의 형성 시 동일하게 적용될 수 있다. This operation can be equally applied in the formation of all node sets.

이상에서 살펴본 과정을 통해 본 발명의 일 실시예에 따른 노드 세트 형성부(130)는 m개의 노드 세트를 형성한다.
Through the above-described process, the node set forming unit 130 according to an embodiment of the present invention forms m node sets.

계속하여, 노드 세트값 설정부(140)는 m개의 노드 세트 별로 상기 노드 세트에 포함된 첫번째 노드 그룹의 멤버노드와 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하고, 상기 산출된 최소 경로 길이를 m개의 노드 세트 각각의 세트값으로 설정한다. Subsequently, the node set value setting unit 140 calculates the minimum path length between the member node of the first node group and the member node of the last node group included in the node set for every m node sets, and calculates the calculated minimum path. Set the length to the set value of each set of m nodes.

본 발명의 일 실시예에 따르면, 노드 세트값 설정부(140)는 노드 세트 별로 첫번째 노드 그룹의 멤버노드의 DN과 마지막 노드 그룹의 멤버노드의 DN이 공통되는 부분 중 적어도 일부를 DN으로 하는 적어도 하나의 레퍼런스 노드를 설정하고, 첫번째 노드 그룹의 멤버노드와 적어도 하나의 레퍼런스 노드 각각 사이의 제1 최소 경로 길이 및 마지막 노드 그룹의 멤버노드와 적어도 하나의 레퍼런스 노드 각각 사이의 제2 최소 경로 길이를 산출하며, 서로 대응되는 제1 최소 경로 길이 및 제2 최소 경로 길이를 합한 값 중에서 최소값을 첫번째 노드 그룹의 멤버노드와 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이로 산출할 수 있다. According to one embodiment of the present invention, the node set value setting unit 140 includes at least some of the DNs of the member nodes of the first node group and the DNs of the member nodes of the last node group as DNs, for each node set. Set one reference node, and set the first minimum path length between the member node of the first node group and each of the at least one reference node and the second minimum path length between each member node and the at least one reference node of the last node group. The minimum value among the sum of the first minimum path length and the second minimum path length corresponding to each other may be calculated as the minimum path length between the member nodes of the first node group and the member nodes of the last node group.

이 경우, 적어도 하나의 레퍼런스 노드의 개수는 "첫번째 노드 그룹의 멤버노드에 대한 MPLN 중 상기 DN이 공통되는 부분의 마지막 자리 숫자와 대응되는 위치로부터 시작하여 0의 숫자가 최초로 배열되는 위치까지의 숫자의 개수" 및 "마지막 노드 그룹의 멤버노드에 대한 MPLN 중 상기 DN이 공통되는 부분의 마지막 자리 숫자와 대응되는 위치로부터 시작하여 0의 숫자가 최초로 배열되는 위치까지의 숫자의 개수" 중에서 작은 값과 대응될 수 있다. In this case, the number of the at least one reference node is "a number starting from the position corresponding to the last digit of the part where the DN is common among the MPLNs for the member nodes of the first node group to the position where the number of zero is first arranged. And "the number of digits starting from the position corresponding to the last digit of the part where the DN is common among the MPLNs for the member nodes of the last node group" to the position where the number of zeros is first arranged. " Can correspond.

이하, 소정의 세트 그룹에 포함되는 첫번째 노드 그룹의 멤버노드(이하, "제1 노드"라고 함)가 (0.0.0.0.0.0.0 / 0.0.0.0.1.0.0)의 LDN을 갖고, 상기 소정의 세트 그룹에 포함되는 마지막 노드 그룹의 멤버노드(이하, "제2 노드"라고 함)가 (0.0.0.0.0.0.0.0.0.0.0 / 0.0.0.0.1.0.0.0.0.0.0)의 LDN을 가지는 일례를 중심으로 노드 세트값 설정부(140)의 동작을 보다 상세히 설명하기로 한다. Hereinafter, member nodes (hereinafter, referred to as "first nodes") of the first node group included in the predetermined set group have an LDN of (0.0.0.0.0.0.0 / 0.0.0.0.1.0.0), and The member nodes (hereinafter referred to as "second nodes") of the last node group included in a given set group are (0.0.0.0.0.0.0.0.0.0.0 / 0.0.0.0.1.0.0.0.0.0.0) The operation of the node set value setting unit 140 will be described in more detail with reference to an example having the LDN.

제1 단계에서, 노드 세트값 설정부(140)는 2개의 노드의 DN이 공통되는 부분(0.0.0.0.0.0.0)을 DN으로 하는 레퍼런스 노드를 설정한다. In the first step, the node set value setting unit 140 sets a reference node whose DN is a portion (0.0.0.0.0.0.0) where the DNs of the two nodes are common.

이 때, 해당 레퍼런스 노드의 DN에 포함되는 마지막 자리(7번째 자리)의 숫자의 위치와 동일한 위치에 0이 아닌 숫자를 포함하는 MPLN이 존재하지 않으므로, 노드 세트값 설정부(140)는 DN을 이용하여 제1 노드와 레퍼런스 노드 사이의 제1 최소 경로 거리(=0) 및 제2 노드와 레퍼런스 노드 사이의 제2 최소 경로 거리(=4)를 산출하고, 이를 합산하여 "4"의 값을 산출한다. At this time, since the MPLN including the non-zero number does not exist at the same position as the position of the last digit (7th digit) included in the DN of the corresponding reference node, the node set value setting unit 140 determines the DN. Calculates a first minimum path distance (= 0) between the first node and the reference node and a second minimum path distance (= 4) between the second node and the reference node, and adds the values to " 4 " Calculate.

이 후 제2 단계에서, 노드 세트값 설정부(140)는 DN의 길이가 1만큼 감소한 새로운 레퍼런스 노드를 설정한다. 즉, 노드 세트값 설정부(140)는 (0.0.0.0.0.0)을 DN으로 하는 새로운 레퍼런스 노드를 생성한다. Thereafter, in the second step, the node set value setting unit 140 sets a new reference node whose length of DN is reduced by one. That is, the node set value setting unit 140 generates a new reference node whose DN is (0.0.0.0.0.0).

이 때, 새로운 레퍼런스 노드의 DN에 포함되는 마지막 자리(6번째 자리)의 숫자의 위치와 동일한 위치에 0이 아닌 숫자를 포함하는 MPLN이 존재하지 않으므로, 노드 세트값 설정부(140)는 다시 DN을 이용하여 제1 노드와 레퍼런스 노드 사이의 제1 최소 경로 거리(=1) 및 제2 노드와 레퍼런스 노드 사이의 제2 최소 경로 거리(=5)를 산출하고, 이를 합산하여 "6"의 값을 산출한다.At this time, since the MPLN including the non-zero number does not exist at the same position as the position of the last digit (6th digit) included in the DN of the new reference node, the node set value setting unit 140 again performs the DN. Calculates a first minimum path distance (= 1) between the first node and the reference node and a second minimum path distance (= 5) between the second node and the reference node, and adds the values to " 6 " To calculate.

계속하여, 제3 단계에서 노드 세트값 설정부(140)는 DN의 길이를 또 다시 1만큼 감소시킨 새로운 레퍼런스 노드를 설정한다. 즉, 노드 세트값 설정부(140)는 (0.0.0.0.0)을 DN으로 하는 새로운 레퍼런스 노드를 생성한다.Subsequently, in the third step, the node set value setting unit 140 sets a new reference node having the length of DN reduced by one again. That is, the node set value setting unit 140 generates a new reference node whose DN is (0.0.0.0.0).

이 때, 새로운 레퍼런스 노드의 DN에 포함되는 마지막 자리(5번째 자리)의 숫자의 위치와 동일한 위치에 0이 아닌 숫자를 포함하는 MPLN이 존재하므로(제1 노드 및 제2 노드), 노드 세트값 설정부(140)는 MPLN을 이용하여 제1 노드와 레퍼런스 노드 사이의 제1 최소 경로 거리(=1) 및 제2 노드와 레퍼런스 노드 사이의 제2 최소 경로 거리(=1)를 산출하고, 이를 합산하여 "2"의 값을 산출한다.At this time, since there is an MPLN containing a non-zero number at the same position as that of the last digit (5th digit) included in the DN of the new reference node (first node and second node), the node set value The setting unit 140 calculates a first minimum path distance (= 1) between the first node and the reference node and a second minimum path distance (= 1) between the second node and the reference node by using the MPLN. The sum is calculated to yield a value of "2".

이 후, MPLN을 이용하여 제1 최소 경로 거리 및 제2 최소 경로 거리를 산출하였으므로, 노드 세트값 설정부(140)는 더 이상 DN을 감소시키지 않고, 산출된 3개의 값 중 최소값(=2)를 2개의 노드 간의 최소 경로 길이로 산출하고, 이를 해당 노드 세트의 세트값으로 설정한다. Afterwards, since the first minimum path distance and the second minimum path distance are calculated using the MPLN, the node set value setting unit 140 no longer decreases the DN, and the minimum value (= 2) of the calculated three values is not reduced. Is calculated as the minimum path length between two nodes, and is set as the set value of the corresponding node set.

한편, 상기의 예에서는 제3 단계에서 2개의 노드 모두의 MPLN이 이용되는 경우, DN을 감소시켜 제1 최소 경로 길이 및 제2 최소 경로 길이를 구하는 동작이 중단되는 것으로 설명하였지만, 어느 하나의 노드의 MPLN이 이용되는 경우에도 DN을 감소시켜 제1 최소 경로 길이 및 제2 최소 경로 길이를 구하는 동작이 중단될 수 있다. Meanwhile, in the above example, when the MPLNs of both nodes are used in the third step, the operation of obtaining the first minimum path length and the second minimum path length by reducing the DN is stopped. Even when MPLN is used, the operation of obtaining the first minimum path length and the second minimum path length by reducing the DN may be stopped.

이러한 동작은 모든 노드 세트 별로 동일하게 적용되고, 이에 따라 노드 세트값 설정부(140)는 노드 세트 별로 세트값을 설정할 수 있다.
This operation is equally applied to every node set, and accordingly, the node set value setting unit 140 may set the set value for each node set.

마지막으로, 질의 처리 수행부(150)는 m개의 노드 세트의 세트값 중 최소의 세트값, 상기 최소의 세트값을 가지는 노드 세트 내의 첫번째 노드 그룹의 멤버노드 및 마지막 노드 그룹의 멤버노드를 이용하여 SPARQL 질의 처리를 수행한다. Finally, the query processing unit 150 uses the minimum set value among the set values of the m node sets, the member node of the first node group in the node set having the minimum set value, and the member node of the last node group. Performs SPARQL query processing.

본 발명은 SPARQL 질의 처리를 수행하기 위해 필요한 검색어 세트에 포함되는 첫번째 노드, 마지막 노드, 및 둘 사이의 거리를 산출하는 동작과 관련된 것이며, 이를 이용하여 SPARQL 질의 처리를 수행하는 동작은 널리 알려진 공지 기술이므로 본 실시예에서는 SPARQL 질의 처리를 수행하는 동작에 대해서는 설명을 생략하기로 한다. The present invention relates to an operation of calculating a distance between a first node, a last node, and two included in a set of search words necessary to perform SPARQL query processing, and an operation of performing SPARQL query processing using the same is well known in the art. Therefore, in this embodiment, description of the operation for performing the SPARQL query processing will be omitted.

이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 SPARQL 질의 처리 장치는 사용자가 입력한 키워드와 직접적으로 관련된 의미있는 정보를 제공하고, RDF 그래프의 문제점이었던 전체적인 그래프 탐색 없이 인덱스만을 가지고 검색이 가능한 장점이 있다. 즉, RDF 그래프의 각 노드에 LDN을 부여하여 각 노드들 사이의 거리를 빠르게 계산할 수 있게 하였고, 이진 탐색을 이용하여 검색하고자 하는 키워드에 대해 각 노드들의 최소 거리를 가지는 정보를 추출하여 자동으로 SPARQL질의로 변환 후 처리하도록 하여 RDF 그래프의 문제점이었던 전체적인 그래프 탐색을 하여 생기는 비용을 탐색없이 검색함으로써 연산량을 감소시키는 장점이 있다.
As described above, the SPARQL query processing apparatus according to an embodiment of the present invention provides meaningful information directly related to a keyword input by a user, and can be searched using only an index without searching the entire graph, which was a problem of the RDF graph. There is an advantage. In other words, LDN is assigned to each node of the RDF graph so that the distance between each node can be calculated quickly, and SPARQL is automatically extracted by extracting information with minimum distance of each node for keyword to search using binary search. By converting the query into a query, it is possible to reduce the amount of computation by searching without searching the cost of the entire graph search, which was a problem of the RDF graph.

도 5는 본 발명의 일 실시예에 따른 키워드 검색을 위한 SPARQL 질의 처리 수행 방법의 전체적인 흐름을 도시한 순서도이다. 이하, 각 단계 별로 수행되는 과정을 설명한다. 5 is a flowchart illustrating the overall flow of a method for performing SPARQL query processing for keyword search according to an embodiment of the present invention. Hereinafter, a process performed in each step will be described.

먼저, 단계(S510)에서는 RDF 문서 상에서 표현되는 복수의 노드 각각에 대하여 DN 및 MPLN을 포함하는 LDN을 부여한다. First, in step S510, LDN including DN and MPLN is assigned to each of the plurality of nodes represented on the RDF document.

단계(S520)에서는 사용자로부터 입력된 n개의 키워드에 기초하여, n개의 키워드 각각과 대응되며 하나 이상의 노드를 멤버노드로서 포함하는 n개의 노드 그룹을 형성한다. In step S520, based on the n keywords input from the user, n node groups corresponding to each of the n keywords and including one or more nodes as member nodes are formed.

단계(S530)에서는 각 노드에 부여된 LDN을 이용하여 n개의 노드 그룹 각각에서 하나의 멤버노드를 선택하여 n개의 멤버노드를 포함하는 m개의 노드 세트를 형성한다. In step S530, one member node is selected from each of the n node groups using the LDN assigned to each node to form a set of m nodes including n member nodes.

그리고, 단계(S540)에서는 m개의 노드 세트 별로 세트값을 설정한다. In operation S540, a set value is set for each m node sets.

이 경우, 단계(S540)에서는 노드 세트에 포함된 첫번째 노드 그룹의 멤버노드와 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하고, 산출된 최소 경로 길이를 m개의 노드 세트 각각의 세트값으로 설정할 수 있다. In this case, in step S540, the minimum path length between the member node of the first node group and the member node of the last node group included in the node set is calculated, and the calculated minimum path length is set to each of the m node sets. Can be set.

마지막으로, 단계(S550)에서는 m개의 노드 세트의 세트값 중 최소의 세트값, 상기 최소의 세트값을 가지는 노드 세트 내의 첫번째 노드 그룹의 멤버노드 및 마지막 노드 그룹의 멤버노드를 이용하여 SPARQL 질의 처리를 수행한다. Finally, in step S550, SPARQL query processing is performed using the minimum set value among the set values of the m node sets, the member node of the first node group and the member node of the last node group in the node set having the minimum set value. Perform

지금까지 본 발명에 따른 SPARQL 질의 처리 수행 방법의 실시예들에 대하여 설명하였고, 앞서 도 1 내지 도 4를 통해 설명한 SPARQL 질의 처리 장치(100)에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.So far, embodiments of the SPARQL query processing method according to the present invention have been described, and the configuration of the SPARQL query processing apparatus 100 described above with reference to FIGS. 1 to 4 may be applied to the present embodiment as it is. Hereinafter, a detailed description will be omitted.

또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, embodiments of the present invention may be implemented in the form of program instructions that may be executed by various computer means to be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. 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. Examples of program instructions such as magneto-optical, ROM, RAM, flash memory, etc. may be executed by a computer using an interpreter as well as machine code such as produced by a compiler. Contains high-level language codes. The hardware device described above may be configured to operate as one or more software modules to perform the operations of one embodiment of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and limited embodiments and drawings. However, it should be understood that the present invention is not limited to the above- Various modifications and variations may be made thereto by those skilled in the art to which the present invention pertains. Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents or equivalents of the claims as well as the claims to be described later will belong to the scope of the present invention. .

100: SPARQL 질의 처리 장치 110: 노드 넘버 설정부
120: 노드 그룹 형성부 130: 노드 세트 형성부
140: 노드 세트값 설정부 150: 질의 처리 수행부
100: SPARQL query processing unit 110: node number setting unit
120: node group forming unit 130: node set forming unit
140: node set value setting unit 150: query processing execution unit

Claims (12)

RDF 문서 상에서 자원/속성/속성값에 의해 정의되며 루프가 형성된 트리 구조(루프 트리 구조)로 배열되는 복수의 노드 각각에 대하여 드웨이 넘버 및 최소 경로 길이 넘버를 포함하는 노드 넘버를 설정하는 노드 넘버 설정부 - 상기 최소 경로 길이 넘버는 상기 드웨이 넘버와 동일한 길이를 가지며, 상기 드웨이 넘버에 의해 표현되는 적어도 하나의 노드 중 하나 이상의 노드 각각까지의 최소 경로 길이를 포함함 -;
사용자로부터 입력된 n(2 이상의 정수임)개의 키워드에 기초하여, 상기 n개의 키워드 각각과 대응되며 하나 이상의 상기 노드를 멤버노드로서 포함하는 n개의 노드 그룹을 형성하는 노드 그룹 형성부;
상기 노드 넘버를 이용하여 상기 n개의 노드 그룹 각각에서 하나의 멤버노드를 선택하여 n개의 멤버노드를 포함하는 m(1 이상의 정수임)개의 노드 세트를 형성하는 노드 세트 형성부;
상기 m개의 노드 세트 별로 상기 노드 세트에 포함된 첫번째 노드 그룹의 멤버노드와 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하고, 상기 산출된 최소 경로 길이를 상기 m개의 노드 세트 각각의 세트값으로 설정하는 노드 세트값 설정부; 및
상기 m개의 노드 세트의 세트값 중 최소의 세트값, 상기 최소의 세트값을 가지는 노드 세트 내의 첫번째 노드 그룹의 멤버노드 및 마지막 노드 그룹의 멤버노드를 이용하여 SPARQL 질의 처리를 수행하는 질의 처리 수행부
를 포함하는 것을 특징으로 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
Node number that sets the node number including the draw number and the minimum path length number for each of the plurality of nodes defined by resource / property / property values in the RDF document and arranged in a looped tree structure (loop tree structure). A setting unit, wherein the minimum path length number has the same length as the draw number and includes a minimum path length to each of at least one node of at least one node represented by the dew number;
A node group forming unit for forming n node groups corresponding to each of the n keywords and including one or more of the nodes as member nodes based on n keywords input from a user;
A node set forming unit which selects one member node from each of the n node groups using the node number to form m node sets including n member nodes;
For each of the m node sets, a minimum path length between a member node of a first node group and a member node of a last node group included in the node set is calculated, and the calculated minimum path length is set for each of the m node sets. A node set value setting unit set to be; And
A query processing execution unit that performs SPARQL query processing using the minimum set value among the set values of the m node sets, the member node of the first node group and the member node of the last node group in the node set having the minimum set value.
Apparatus for performing SPARQL query processing for keyword search comprising a.
제1항에 있어서,
상기 노드 그룹 형성부는
상기 복수의 노드 중에서 j(2 이상 n 이하의 정수임)번째 키워드를 속성값을 포함하는 노드를 상기 j번째 노드 그룹의 멤버 노드로서 포함시키는 것을 특징으로 하는 키워드 검색을 위한 SPQRQL 질의 처리 수행 장치.
The method of claim 1,
The node group forming unit
And a node (j) which is an integer of 2 or more and n or less among the plurality of nodes, including a node including an attribute value as a member node of the j-th node group.
제1항에 있어서,
상기 최소 경로 길이 넘버는 0 또는 1 이상의 숫자의 배열로 구성되고,
상기 복수의 노드 중 어느 하나의 노드에 대한 상기 최소 경로 길이 넘버에 포함된 k(1 이상의 정수임)번째 숫자 중 0 이외의 숫자는 상기 어느 하나의 노드에 대한 상기 드웨이 넘버에 포함된 첫번째 숫자로부터 k번째 숫자에 의해 표현되는 노드와 상기 어느 하나의 노드 사이의 최소 경로 길이를 의미하는 것을 특징으로 하는 키워드 검색을 위한 SPQRQL 질의 처리 수행 장치.
The method of claim 1,
The minimum path length number is comprised of an array of zero or one or more numbers,
A number other than 0 of k (which is an integer of 1 or more) included in the minimum path length number for any one of the plurality of nodes is different from the first number included in the dway number for the one of the nodes. SPQRQL query processing apparatus for a keyword search, characterized in that the minimum path length between the node represented by the k-th number and any one of the nodes.
제3항에 있어서,
상기 노드 세트 형성부는
j번째 노드 그룹 내의 하나 이상의 멤버노드 중에서 i(1 이상 m 이하의 정수임)번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드와의 최소 경로 길이가 최소인 멤버노드를 상기 i번째 노드 세트에 포함되는 j번째 노드 그룹의 멤버노드로 선택하는 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 3,
The node set forming unit
Among the one or more member nodes in the j-th node group, the i-th node set includes a member node having a minimum path length that is the minimum with a member node of the j-th node group included in the i-th node set. SPARQL query processing for the keyword search, characterized in that the selection as a member node of the j-th node group included in.
제4항에 있어서,
상기 노드 세트 형성부는
상기 최소 경로 길이 넘버를 이용하여 우선적으로 상기 j번째 노드 그룹 내의 어느 하나의 멤버노드와 상기 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하되,
상기 최소 경로 길이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출할 수 없는 경우, 상기 드웨이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 i번째 노드 세트에 포함된 j-1번째 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하는 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 4, wherein
The node set forming unit
First of all, using the minimum path length number, a minimum path length between any one member node in the j-th node group and a member node of the j-th node group included in the i-th node set is calculated.
If the minimum path length between the one of the member nodes and the member node of the j-1th node group included in the i-th node set cannot be calculated using the minimum path length number, the dewway number is used. And calculating a minimum path length between the any one member node and the member nodes of the j-1th node group included in the i-th node set.
제4항에 있어서,
상기 노드 세트 형성부는
상기 노드 넘버를 이용하여 상기 복수의 노드 중 상기 루프 트리의 루트노드를 형성하는 노드까지의 최소 경로 길이에 따라 상기 j번째 노드 그룹 내의 하나 이상의 멤버 노드를 정렬하고, 상기 정렬된 j번째 노드 그룹 내의 하나 이상의 멤버노드에 대해 이진 탐색 기법을 적용하여 상기 i번째 노드 세트에 포함된 j-1번째 멤버노드와의 최소 경로 길이가 최소인 멤버노드를 선택하는 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 4, wherein
The node set forming unit
Align one or more member nodes in the j-th node group according to the minimum path length to the node forming the root node of the loop tree using the node number, and in the sorted j-th node group SPARQL query processing for keyword searching by selecting a member node having a minimum path length with the j-1 th member node included in the i th node set by applying a binary search technique to at least one member node. Perform device.
제6항에 있어서,
상기 노드 세트 형성부는
상기 최소 경로 길이 넘버를 이용하여 우선적으로 상기 j번째 노드 그룹 내의 어느 하나의 멤버노드와 상기 루트노드 사이의 최소 경로 길이를 산출하되,
상기 최소 경로 길이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 루트노드 사이의 최소 경로 길이를 산출할 수 없는 경우, 상기 드웨이 넘버를 이용하여 상기 어느 하나의 멤버노드와 상기 루트노드 사이의 최소 경로 길이를 산출하는 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 6,
The node set forming unit
A minimum path length between any one member node and the root node in the j-th node group is first calculated using the minimum path length number,
If the minimum path length between the any one member node and the root node cannot be calculated using the minimum path length number, the minimum between the any one member node and the root node is used using the dewway number. SPARQL query processing for the keyword search, characterized in that for calculating the path length.
제3항에 있어서,
상기 노드 세트값 설정부는
상기 노드 세트 별로 상기 첫번째 노드 그룹의 멤버노드의 드웨이 넘버와 상기 마지막 노드 그룹의 멤버노드의 드웨이 넘버가 공통되는 부분 중 적어도 일부를 드웨이 넘버로 하는 적어도 하나의 레퍼런스 노드를 설정하고,
상기 첫번째 노드 그룹의 멤버노드와 상기 적어도 하나의 레퍼런스 노드 각각 사이의 제1 최소 경로 길이 및 상기 마지막 노드 그룹의 멤버노드와 상기 적어도 하나의 레퍼런스 노드 각각 사이의 제2 최소 경로 길이를 산출하며,
서로 대응되는 상기 제1 최소 경로 길이 및 상기 제2 최소 경로 길이를 합한 값 중에서 최소값을 상기 첫번째 노드 그룹의 멤버노드와 상기 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이로 산출하는 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 3,
The node set value setting unit
Setting at least one reference node having at least some of a common part of a node number of a member node of the first node group and a part number of a member node of the last node group as the node number for each node set,
Calculate a first minimum path length between the member node of the first node group and each of the at least one reference node and a second minimum path length between the member node of the last node group and each of the at least one reference node,
The minimum value of the sum of the first minimum path length and the second minimum path length corresponding to each other is calculated as a minimum path length between the member node of the first node group and the member node of the last node group. SPARQL query processing device for searching.
제8항에 있어서,
상기 적어도 하나의 레퍼런스 노드의 개수는
상기 첫번째 노드 그룹의 멤버노드에 대한 최소 경로 길이 넘버 중 상기 드웨이 넘버가 공통되는 부분의 마지막 자리 숫자와 대응되는 위치로부터 시작하여 0의 숫자가 최초로 배열되는 위치까지의 숫자의 개수 및 상기 마지막 노드 그룹의 멤버노드에 대한 최소 경로 길이 넘버 중 상기 드웨이 넘버가 공통되는 부분의 마지막 자리 숫자와 대응되는 위치로부터 시작하여 0의 숫자가 최초로 배열되는 위치까지의 숫자의 개수 중 작은 값과 대응되는 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 8,
The number of the at least one reference node is
The number of the last node and the number of the last node starting from the position corresponding to the last digit of the common part of the minimum number of path length numbers for the member nodes of the first node group and the position where the number of 0 is first arranged; Among the minimum path length numbers for the member nodes of the group, the dway number corresponds to the smaller value among the number of numbers starting from the position corresponding to the last digit of the common part and up to the position where the number of zero is first arranged. Apparatus for performing SPARQL query processing for keyword retrieval.
제1항에 있어서,
상기 m개의 노드 세트의 개수는 상기 첫번째 노드 그룹에 포함된 멤버노드 개수와 동일하고, 상기 m개의 노드 세트에 각각 포함된 상기 첫번째 노드 그룹의 멤버노드는 서로 상이한 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 1,
The number of the m node sets is equal to the number of member nodes included in the first node group, and the member nodes of the first node group included in the m node sets are different from each other. Query processing device.
제10항에 있어서,
상기 첫번째 노드 그룹은 상기 n개의 노드 그룹 중에서 상기 멤버노드의 개수가 최소인 노드 그룹인 것을 특징으로 하는 키워드 검색을 위한 SPARQL 질의 처리 수행 장치.
The method of claim 10,
And wherein the first node group is a node group having the minimum number of member nodes among the n node groups.
RDF 문서 상에서 자원/속성/속성값에 의해 정의되며 루프가 형성된 트리 구조(루프 트리 구조)로 배열되는 복수의 노드 각각에 대하여 드웨이 넘버 및 최소 경로 길이 넘버를 포함하는 노드 넘버를 설정하는 단계 - 상기 최소 경로 길이 넘버는 상기 드웨이 넘버와 동일한 길이를 가지며, 상기 드웨이 넘버에 의해 표현되는 적어도 하나의 노드 중 하나 이상의 노드 각각까지의 최소 경로 길이를 포함함 -;
사용자로부터 입력된 n(2 이상의 정수임)개의 키워드에 기초하여, 상기 n개의 키워드 각각과 대응되며 하나 이상의 상기 노드를 멤버노드로서 포함하는 n개의 노드 그룹을 형성하는 단계;
상기 노드 넘버를 이용하여 상기 n개의 노드 그룹 각각에서 하나의 멤버노드를 선택하여 n개의 멤버노드를 포함하는 m(1 이상의 정수임)개의 노드 세트를 형성하는 단계;
상기 m개의 노드 세트 별로 상기 노드 세트에 포함된 첫번째 노드 그룹의 멤버노드와 마지막 노드 그룹의 멤버노드 사이의 최소 경로 길이를 산출하고, 상기 산출된 최소 경로 길이를 상기 m개의 노드 세트 각각의 세트값으로 설정하는 단계; 및
상기 m개의 노드 세트의 세트값 중 최소의 세트값, 상기 최소의 세트값을 가지는 노드 세트 내의 첫번째 노드 그룹의 멤버노드 및 마지막 노드 그룹의 멤버노드를 이용하여 SPARQL 질의 처리를 수행하는 단계
를 포함하는 것을 특징으로 키워드 검색을 위한 SPARQL 질의 처리 수행 방법.
Setting a node number including a way number and a minimum path length number for each of a plurality of nodes defined by resource / property / property values in the RDF document and arranged in a looped tree structure (loop tree structure)- The minimum path length number has a length equal to the dway number and includes a minimum path length to each of one or more nodes of at least one node represented by the dway number;
Forming an n node group corresponding to each of the n keywords and including one or more of the nodes as member nodes based on n keywords input from a user;
Selecting one member node from each of the n node groups using the node number to form a set of m nodes (which are integers of 1 or more) including n member nodes;
For each of the m node sets, a minimum path length between a member node of a first node group and a member node of a last node group included in the node set is calculated, and the calculated minimum path length is set for each of the m node sets. Setting to; And
Performing SPARQL query processing using the minimum set value among the set values of the m node sets, the member node of the first node group and the member node of the last node group in the node set having the minimum set value.
SPARQL query processing for the keyword search, characterized in that it comprises a.
KR1020100135472A 2010-12-27 2010-12-27 Apparatus and method for processing sparql queries for searching keyword KR101218577B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100135472A KR101218577B1 (en) 2010-12-27 2010-12-27 Apparatus and method for processing sparql queries for searching keyword

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100135472A KR101218577B1 (en) 2010-12-27 2010-12-27 Apparatus and method for processing sparql queries for searching keyword

Publications (2)

Publication Number Publication Date
KR20120073651A true KR20120073651A (en) 2012-07-05
KR101218577B1 KR101218577B1 (en) 2013-01-04

Family

ID=46707972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100135472A KR101218577B1 (en) 2010-12-27 2010-12-27 Apparatus and method for processing sparql queries for searching keyword

Country Status (1)

Country Link
KR (1) KR101218577B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150028934A (en) * 2013-09-06 2015-03-17 삼성전자주식회사 Method and apparatus of searching data
CN109710621A (en) * 2019-01-16 2019-05-03 福州大学 In conjunction with the keyword search KSANEW algorithm of semantic category node and side right weight

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101082814B1 (en) * 2008-12-29 2011-11-11 한양대학교 산학협력단 Searching method for ontology information using keyword and device thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150028934A (en) * 2013-09-06 2015-03-17 삼성전자주식회사 Method and apparatus of searching data
CN109710621A (en) * 2019-01-16 2019-05-03 福州大学 In conjunction with the keyword search KSANEW algorithm of semantic category node and side right weight
CN109710621B (en) * 2019-01-16 2022-06-21 福州大学 Keyword search KSANEW method combining semantic nodes and edge weights

Also Published As

Publication number Publication date
KR101218577B1 (en) 2013-01-04

Similar Documents

Publication Publication Date Title
US9798772B2 (en) Using persistent data samples and query-time statistics for query optimization
CN102270232B (en) Semantic data query system with optimized storage
CN107169033A (en) Relation data enquiring and optimizing method with parallel framework is changed based on data pattern
US20040111388A1 (en) Evaluating relevance of results in a semi-structured data-base system
CN103646032A (en) Database query method based on body and restricted natural language processing
Ji et al. Tag tree template for Web information and schema extraction
KR100902843B1 (en) Method for ontology form creation from a database and Apparatus thereof
Li et al. Schema-free SQL
CN102819600A (en) Keyword searching method facing to relational database of power production management system
CN104156431B (en) A kind of RDF keyword query methods based on sterogram community structure
Pokorný Integration of relational and NoSQL databases
Tuzhilin et al. Querying multiple sets of discovered rules
CN107391690B (en) Method for processing document information
KR101218577B1 (en) Apparatus and method for processing sparql queries for searching keyword
Cozza Implementation of a framework for graph-based keyword search over relational data
CN112148830A (en) Semantic data storage and retrieval method and device based on maximum area grid
Saissi et al. Towards XML schema extraction from deep web
Madria et al. Efficient processing of XPath queries using indexes
Liu et al. Significant-attributed Community Search in Heterogeneous Information Networks
Saveliev Implementation of generalized relational algebraic operations with AsterixDB BDMS
JP5374456B2 (en) Method of operating document search apparatus and computer program for causing computer to execute the same
Qtaish et al. Query mapping techniques for XML documents: A comparative study
Kim et al. Efficient processing of regular path joins using PID
Haw et al. Structural query optimization in native XML databases: a hybrid approach
Sima et al. Keyword query approach over rdf data based on tree template

Legal Events

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

Payment date: 20151002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160927

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee