JP2019144780A - Generating device, generating method, and generating program - Google Patents

Generating device, generating method, and generating program Download PDF

Info

Publication number
JP2019144780A
JP2019144780A JP2018027427A JP2018027427A JP2019144780A JP 2019144780 A JP2019144780 A JP 2019144780A JP 2018027427 A JP2018027427 A JP 2018027427A JP 2018027427 A JP2018027427 A JP 2018027427A JP 2019144780 A JP2019144780 A JP 2019144780A
Authority
JP
Japan
Prior art keywords
node
edge
graph
selection
nodes
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2018027427A
Other languages
Japanese (ja)
Other versions
JP6959164B2 (en
Inventor
岩崎 雅二郎
Masajiro Iwasaki
雅二郎 岩崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Japan Corp
Original Assignee
Yahoo Japan Corp
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 Yahoo Japan Corp filed Critical Yahoo Japan Corp
Priority to JP2018027427A priority Critical patent/JP6959164B2/en
Publication of JP2019144780A publication Critical patent/JP2019144780A/en
Application granted granted Critical
Publication of JP6959164B2 publication Critical patent/JP6959164B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

To allow efficient search for a given object.SOLUTION: A generation device according to the present application includes an acquisition unit, a first selection unit, a second selection unit, and a generation unit. The acquisition unit acquires information on a plurality of nodes to be searched for data, a first graph and a second graph. The first graph contains information on a first edge group that is a directed edge group connecting the plurality of nodes. The second graph contains information on the plurality of nodes. The first selection unit selects a first selection node from the plurality of nodes based on the number of output edges that end at other nodes in the first graph. The second selection unit selects a second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph. If the number of output edges starting from the first selection node is less than a predetermined threshold in the second graph, the generation unit generates a second graph in which the output edges are added as second edges.SELECTED DRAWING: Figure 3

Description

本発明は、生成装置、生成方法、及び生成プログラムに関する。   The present invention relates to a generation device, a generation method, and a generation program.

従来、種々の情報を検索する技術が提供されている。例えば、無向エッジによって生成されたグラフデータを用いて検索を行う技術が提供されている。また、このような技術は、例えば画像検索等に用いられる。   Conventionally, techniques for retrieving various information have been provided. For example, a technique for performing a search using graph data generated by an undirected edge is provided. Such a technique is used for image retrieval, for example.

特開2011−090351号公報JP 2011-090351 A 特許第5208001号公報Japanese Patent No. 5208001

しかしながら、上記の従来技術では、所定の対象に関する効率的な検索を可能にすることが難しい場合がある。例えば、各対象に対応する各ノードが無向エッジにより連結されたグラフデータを用いて検索を行う場合、遠回りな経路の探索が生じる等により、処理時間等のコストを抑制することが難しい。   However, with the above-described conventional technology, it may be difficult to enable an efficient search for a predetermined target. For example, when a search is performed using graph data in which each node corresponding to each target is connected by an undirected edge, it is difficult to suppress costs such as processing time due to a search for a detour route.

本願は、上記に鑑みてなされたものであって、所定の対象に関する効率的な検索を可能にする生成装置、生成方法、及び生成プログラムを提供することを目的とする。   The present application has been made in view of the above, and an object thereof is to provide a generation device, a generation method, and a generation program that enable an efficient search for a predetermined target.

本願に係る生成装置は、データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフと、前記複数のノードの情報を含む第2グラフを取得する取得部と、前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択部と、前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択部と、前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2エッジが追加された第2グラフを生成する生成部と、を備えたことを特徴とする。   The generating apparatus according to the present application includes a first graph including information on a plurality of nodes that are targets of data search, and information on a first edge group that is a directed edge group that connects the plurality of nodes, and the plurality of nodes An acquisition unit that acquires a second graph including node information; and a first selection node that selects a first selection node based on the number of output edges that end at another node in the first graph among the plurality of nodes. A first selection unit, and a second selection unit that selects a second selection node based on a length of the output edge from among target nodes to which an output edge starting from the first selection node is connected in the first graph In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the second selection node starts from the first selection node in the first edge group. The updating process for adding the output edge of the end point as the information of the second edge in the second graph, is characterized in that and a generator for generating a second graph the second edge is added.

実施形態の一態様によれば、所定の対象に関する効率的な検索を可能にすることができるという効果を奏する。   According to one aspect of the embodiment, there is an effect that it is possible to efficiently search for a predetermined target.

図1は、実施形態に係る生成処理の一例を示す図である。FIG. 1 is a diagram illustrating an example of a generation process according to the embodiment. 図2は、実施形態に係る生成システムの構成例を示す図である。FIG. 2 is a diagram illustrating a configuration example of the generation system according to the embodiment. 図3は、実施形態に係る生成装置の構成例を示す図である。FIG. 3 is a diagram illustrating a configuration example of the generation apparatus according to the embodiment. 図4は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。FIG. 4 is a diagram illustrating an example of the object information storage unit according to the embodiment. 図5は、実施形態に係る基グラフデータ記憶部の一例を示す図である。FIG. 5 is a diagram illustrating an example of the base graph data storage unit according to the embodiment. 図6は、実施形態に係る第1グラフデータ記憶部の一例を示す図である。FIG. 6 is a diagram illustrating an example of the first graph data storage unit according to the embodiment. 図7は、実施形態に係る閾値情報記憶部の一例を示す図である。FIG. 7 is a diagram illustrating an example of the threshold information storage unit according to the embodiment. 図8は、実施形態に係る第2グラフデータ記憶部の一例を示す図である。FIG. 8 is a diagram illustrating an example of the second graph data storage unit according to the embodiment. 図9は、実施形態に係る生成処理の一例を示すフローチャートである。FIG. 9 is a flowchart illustrating an example of the generation process according to the embodiment. 図10は、実施形態に係る入力追加処理の一例を示すフローチャートである。FIG. 10 is a flowchart illustrating an example of the input addition process according to the embodiment. 図11は、実施形態に係る入力追加処理の一例を示す図である。FIG. 11 is a diagram illustrating an example of the input addition process according to the embodiment. 図12は、実施形態に係る比較例を示す図である。FIG. 12 is a diagram illustrating a comparative example according to the embodiment. 図13は、グラフデータを用いた検索処理の一例を示すフローチャートである。FIG. 13 is a flowchart illustrating an example of search processing using graph data. 図14は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。FIG. 14 is a hardware configuration diagram illustrating an example of a computer that implements the function of the generation device.

以下に、本願に係る生成装置、生成方法、及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。   Hereinafter, a generation apparatus, a generation method, and a mode for executing a generation program (hereinafter referred to as “embodiment”) according to the present application will be described in detail with reference to the drawings. Note that the generation device, the generation method, and the generation program according to the present application are not limited by this embodiment. In the following embodiments, the same portions are denoted by the same reference numerals, and redundant description is omitted.

(実施形態)
〔1.生成処理〕
図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1では、生成装置100(図3参照)が与えられたグラフデータ(以下、「第1グラフデータ」ともいう)に基づいて、新たなグラフデータ(以下、「第2グラフデータ」ともいう)を生成する場合を示す。なお、図1の例では、生成装置100は、所定のグラフデータ(以下、「基グラフデータ」ともいう)から第1グラフデータを生成するが詳細は後述する。また、以下では、グラフデータを単にグラフと記載する場合がある。例えば、第1グラフデータを第1グラフと記載し、第2グラフデータを第2グラフとを記載する場合がある。すなわち、図1では、生成装置100が、基グラフデータから第1グラフデータを生成し、生成した第1グラフデータから第2グラフデータを生成する場合を示す。なお、対象とする情報(オブジェクト)は、ベクトルとして表現可能であれば、どのような情報であってもよい。なお、以下では、画像情報を対象としたベクトル情報について説明するが、ベクトル情報の対象は、動画情報や音声情報等の他の対象であってもよい。
(Embodiment)
[1. Generation process)
An example of the generation process according to the embodiment will be described with reference to FIG. FIG. 1 is a diagram illustrating an example of a generation process according to the embodiment. In FIG. 1, new graph data (hereinafter also referred to as “second graph data”) based on the graph data (hereinafter also referred to as “first graph data”) provided by the generation apparatus 100 (see FIG. 3). The case of generating is shown. In the example of FIG. 1, the generation device 100 generates first graph data from predetermined graph data (hereinafter also referred to as “base graph data”), which will be described in detail later. Hereinafter, the graph data may be simply referred to as a graph. For example, the first graph data may be described as a first graph and the second graph data may be described as a second graph. That is, FIG. 1 shows a case where the generation apparatus 100 generates first graph data from base graph data and generates second graph data from the generated first graph data. The target information (object) may be any information as long as it can be expressed as a vector. In the following, vector information for image information will be described, but the target of vector information may be other targets such as moving image information and audio information.

また、生成装置100は、図1に示すように、グラフデータを対象に生成処理を行う。なお、ここでいう、有向エッジとは、一方向にしかデータを辿れないエッジを意味する。以下では、エッジにより辿る元、すなわち始点となるノードを参照元とし、エッジにより辿る先、すなわち終点となるノードを参照先とする。例えば、所定のノード「A」から所定のノード「B」に連結される有向エッジとは、参照元をノード「A」とし、参照先をノード「B」とするエッジであることを示す。   Further, as illustrated in FIG. 1, the generation device 100 performs generation processing on graph data. Here, the directed edge means an edge whose data can be traced only in one direction. In the following, a source traced by an edge, that is, a node as a starting point is referred to as a reference source, and a destination traced by an edge, that is, a node as an end point is defined as a reference destination. For example, the directed edge connected from the predetermined node “A” to the predetermined node “B” indicates that the reference source is the node “A” and the reference destination is the node “B”.

以下では、このようにノード「A」を参照元とするエッジをノード「A」の出力エッジという。また、以下では、このようにノード「B」を参照先とするエッジをノード「B」の入力エッジという。すなわち、ここでいう出力エッジ及び入力エッジとは、一の有向エッジをその有向エッジが連結する2つのノードのうち、いずれのノードを中心として捉えるかの相違であり、一の有向エッジが出力エッジ及び入力エッジになる。すなわち、出力エッジ及び入力エッジは、相対的な概念であって、一の有向エッジについて、参照元となるノードを中心として捉えた場合に出力エッジとなり、参照先となるノードを中心として捉えた場合に入力エッジとなる。なお、本実施形態においては、エッジについては、出力エッジや入力エッジ等の有向エッジを対象とするため、以下では、有向エッジを単に「エッジ」と記載する場合がある。   Hereinafter, the edge having the node “A” as a reference source in this way is referred to as an output edge of the node “A”. In the following, an edge with the node “B” as a reference destination is referred to as an input edge of the node “B”. In other words, the output edge and the input edge here are differences in which one of the two nodes connected to the directed edge is regarded as the center, and the one directed edge. Becomes the output edge and the input edge. In other words, the output edge and the input edge are relative concepts, and for one directional edge, when the node as the reference source is regarded as the center, the output edge is regarded as the center, and the node as the reference destination is regarded as the center. The input edge. In the present embodiment, since the edges are directed edges such as output edges and input edges, the directed edges may be simply referred to as “edges” below.

また、ここでいう、各ノードは、各オブジェクトに対応する。例えば、画像から抽出された複数の局所特徴量のそれぞれがオブジェクトであってもよい。また、例えば、オブジェクト間の距離が定義された種々のデータがオブジェクトであってもよい。   Each node here corresponds to each object. For example, each of the plurality of local feature amounts extracted from the image may be an object. Further, for example, various data in which distances between objects are defined may be objects.

生成装置100は、例えば数百万〜数億単位の膨大な画像情報に対応するノードを対象に処理を行うが、図面においてはその一部のみを図示する。図1の例では、説明を簡単にするために、12個のノードのみを図示して処理の概要を説明する。例えば、生成装置100は、図1中のノードN1〜N12に示すような複数のノードを含み、エッジを含まない第2グラフデータGR12−1から開始し、順次エッジを追加することにより第2グラフデータGR12を生成する。   The generation apparatus 100 performs processing on a node corresponding to, for example, millions to hundreds of millions of units of image information, but only a part thereof is illustrated in the drawing. In the example of FIG. 1, in order to simplify the description, only 12 nodes are illustrated and an outline of the process will be described. For example, the generation apparatus 100 includes a plurality of nodes as indicated by the nodes N1 to N12 in FIG. 1, starts from the second graph data GR12-1 that does not include an edge, and sequentially adds the second graph. Data GR12 is generated.

また、このように「ノードN*(*は任意の数値)」と記載した場合、そのノードはノードID「N*」により識別されるノードであることを示す。例えば、「ノードN1」と記載した場合、そのノードはノードID「N1」により識別されるノードである。   In addition, when “node N * (* is an arbitrary numerical value)” is described in this way, this indicates that the node is identified by the node ID “N *”. For example, when “node N1” is described, the node is a node identified by the node ID “N1”.

また、このように「エッジE*(*は任意の数値)」と記載した場合、そのエッジはエッジID「E*」により識別されるエッジであることを示す。例えば、「エッジE2」と記載した場合、そのエッジはエッジID「E2」により識別されるエッジである。例えば、ノードN1を参照元とし、ノードN2を参照先として連結されるエッジE2により、ノードN1からノードN2に辿ることが可能となる。この場合、有向エッジであるエッジE2は、ノードN1を中心として識別される場合、出力エッジとなり、ノードN2を中心として識別される場合、入力エッジとなる。言い換えると、有向エッジであるエッジE2は、ノードN1側からの視点でとらえた場合、自身から他のエッジへ矢印が向いているエッジ、すなわち外向きエッジとなり、ノードN2側からの視点でとらえた場合、自身の方に矢印が向いているエッジ、すなわち内向きエッジとなる。つまり、ここでいう出力エッジは、外向きエッジと読み替えることができ、入力エッジは、内向きエッジと読み替えることができる。   In addition, when “edge E * (* is an arbitrary numerical value)” is described in this way, it indicates that the edge is an edge identified by the edge ID “E *”. For example, when “edge E2” is described, the edge is an edge identified by the edge ID “E2”. For example, it is possible to trace from the node N1 to the node N2 by the edge E2 connected with the node N1 as a reference source and the node N2 as a reference destination. In this case, the edge E2, which is a directed edge, becomes an output edge when identified with the node N1 as the center, and becomes an input edge when identified with the node N2 as the center. In other words, the edge E2, which is a directed edge, when viewed from the viewpoint from the node N1 side, becomes an edge in which an arrow points from itself to another edge, that is, an outward edge, and is viewed from the viewpoint from the node N2 side. In this case, the edge is directed toward itself, that is, an inward edge. That is, the output edge here can be read as an outward edge, and the input edge can be read as an inward edge.

また、図1に示す空間情報VS1−1〜VS1−6は、グラフデータの生成過程を模式的に示す図であり、空間情報VS1−1〜VS1−6に示す空間は、同一の空間であってもよい。また、以下では、空間情報VS1−1〜VS1−6について、特に区別なく説明する場合には、空間情報VS1と記載する。   Also, the spatial information VS1-1 to VS1-6 shown in FIG. 1 is a diagram schematically showing a graph data generation process, and the spaces shown in the spatial information VS1-1 to VS1-6 are the same space. May be. Hereinafter, the spatial information VS1-1 to VS1-6 will be referred to as spatial information VS1 when they are not particularly distinguished.

また、図1中の空間情報VS1は、ユークリッド空間であってもよい。また、図1に示す空間情報VS1は、各ベクトル間の距離等の説明のための概念的な図であり、空間情報VS1は、多次元空間である。例えば、図1に示す空間情報VS1は、平面上に図示するため2次元の態様にて図示されるが、例えば100次元や1000次元等の多次元空間であるものとする。   Further, the spatial information VS1 in FIG. 1 may be a Euclidean space. Further, the spatial information VS1 shown in FIG. 1 is a conceptual diagram for explaining the distance between the vectors, and the spatial information VS1 is a multidimensional space. For example, the spatial information VS1 illustrated in FIG. 1 is illustrated in a two-dimensional manner to be illustrated on a plane, but is assumed to be a multidimensional space such as 100 dimensions or 1000 dimensions.

また、図1に示す第2グラフデータGR12−1〜GR12−4は、グラフデータの生成過程を模式的に示す図であり、第2グラフデータGR12−1〜GR12−4は、生成処理により生成される同一のグラフデータである。また、以下では、第2グラフデータGR12−1〜GR12−4について、特に区別なく説明する場合には、第2グラフデータGR12と記載する。   Further, the second graph data GR12-1 to GR12-4 shown in FIG. 1 are diagrams schematically showing the generation process of the graph data, and the second graph data GR12-1 to GR12-4 are generated by the generation process. Are the same graph data. In the following description, the second graph data GR12-1 to GR12-4 will be referred to as second graph data GR12 when they are not particularly distinguished.

また、図1に示す例においては、基グラフデータGR10、第1グラフデータGR11及び第2グラフデータGR12−1〜GR12−4においては、適宜「ノードN*(*は任意の数値)」の図示を省略し、取得した各ノードを「○」内に「ノードN*」の「*」の値を付すことにより表現する。すなわち、「ノードN*」の部分の「*」が一致するノードに対応する。例えば、空間情報VS1中の左上の「○」であって、内部に「2」が付された「○」は、ノードID「N2」により識別されるノードに対応する。例えば、図1に示す例において、各ノードに対応するベクトルデータは、N次元の実数値ベクトルであってもよい。   In the example shown in FIG. 1, in the base graph data GR10, the first graph data GR11, and the second graph data GR12-1 to GR12-4, “node N * (* is an arbitrary numerical value)” is appropriately illustrated. Is expressed by adding the value of “*” of “node N *” in “◯”. That is, it corresponds to the node with the “*” in the “node N *” part. For example, “O” in the upper left in the spatial information VS1 and “O” with “2” inside corresponds to the node identified by the node ID “N2”. For example, in the example shown in FIG. 1, the vector data corresponding to each node may be an N-dimensional real value vector.

本実施形態においては、空間情報VS1における各ノードの距離を対応する各オブジェクト間の類似度とする。例えば、各ノードに対応する対象(画像情報)の類似性が、空間情報VS1内におけるノード間の距離として写像されているものとする。例えば、各ノードに対応する概念間の類似度が各ノード間の距離に写像されているものとする。ここで、図1に示す例においては、空間情報VS1における各ノード間の距離が短いオブジェクト同士の類似度が高く、空間情報VS1における各ノード間の距離が長いオブジェクト同士の類似度が低い。例えば、図1中の空間情報VS1において、ノードID「N5」により識別されるノードと、ノードID「N8」により識別されるノードとは近接している、すなわち距離が短い。そのため、ノードID「N5」により識別されるノードに対応するオブジェクトと、ノードID「N8」により識別されるノードに対応するオブジェクトとは類似度が高いことを示す。   In the present embodiment, the distance of each node in the spatial information VS1 is set as the similarity between corresponding objects. For example, it is assumed that the similarity of objects (image information) corresponding to each node is mapped as a distance between nodes in the spatial information VS1. For example, it is assumed that the similarity between concepts corresponding to each node is mapped to the distance between the nodes. Here, in the example shown in FIG. 1, the similarity between the objects having a short distance between the nodes in the spatial information VS1 is high, and the similarity between the objects having a long distance between the nodes in the spatial information VS1 is low. For example, in the spatial information VS1 in FIG. 1, the node identified by the node ID “N5” and the node identified by the node ID “N8” are close to each other, that is, the distance is short. Therefore, the object corresponding to the node identified by the node ID “N5” and the object corresponding to the node identified by the node ID “N8” have a high degree of similarity.

また、例えば、図1中の空間情報VS1において、ノードID「N8」により識別されるノードと、ノードID「N12」により識別されるノードとは遠隔にある、すなわち距離が長い。そのため、ノードID「N8」により識別されるノードに対応するオブジェクトと、ノードID「N12」により識別されるノードに対応するオブジェクトとは類似度が低いことを示す。なお、類似度を示す指標としての距離は、ベクトル(N次元ベクトル)間の距離として適用可能であれば、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等の種々の距離が用いられてもよい。   Further, for example, in the spatial information VS1 in FIG. 1, the node identified by the node ID “N8” and the node identified by the node ID “N12” are remote, that is, have a long distance. Therefore, the degree of similarity between the object corresponding to the node identified by the node ID “N8” and the object corresponding to the node identified by the node ID “N12” is low. The distance as the index indicating the similarity may be any distance as long as it can be applied as the distance between the vectors (N-dimensional vectors), such as the Euclidean distance, the Mahalanobis distance, and the cosine distance. Various distances may be used.

また、図1の例では、生成装置100は、後述する更新処理により、ノードを有向エッジで連結することにより、グラフデータGR12を生成する。例えば、グラフデータGR12を用いた検索においては、検索時はグラフ構造型インデックスと同様の処理を行うが、開始位置(起点)は所定のインデックスを用いて決定した起点ノードからスタートしてもよい。また、例えば、生成装置100が生成したグラフデータGR12を用いて検索を行う場合、予め決定された起点ノードを起点として検索を行ってもよい。例えば、検索時においては、起点ノードがノードN1である場合、ノードN1から有向エッジを辿ることにより、ノードN2〜N12等を検索してもよい。なお、生成装置100は、検索時において図13に示すような処理手順により検索を行ってもよいが、詳細は後述する。   In the example of FIG. 1, the generation device 100 generates graph data GR12 by connecting nodes with directed edges by an update process described later. For example, in the search using the graph data GR12, the same processing as the graph structure type index is performed at the time of search, but the start position (start point) may be started from a start point node determined using a predetermined index. Further, for example, when the search is performed using the graph data GR12 generated by the generation device 100, the search may be performed using a predetermined starting node as a starting point. For example, at the time of searching, when the starting node is the node N1, the nodes N2 to N12 and the like may be searched by following the directed edge from the node N1. Note that the generation apparatus 100 may perform a search according to the processing procedure illustrated in FIG. 13 at the time of the search, but details will be described later.

ここから、図1を用いて生成処理の詳細を説明する。なお、図1に示す各ステップは、第2グラフデータの生成を説明するための便宜的なステップであり、実際の処理はより詳細な処理ステップにより行われてもよい。なお、生成装置100が行う生成処理は、図1中の第2グラフデータGR12−4に示すような第2グラフデータGR12が生成されれば、どのような処理フローであってもよい。   From here, the detail of a production | generation process is demonstrated using FIG. Each step shown in FIG. 1 is a convenient step for explaining the generation of the second graph data, and the actual processing may be performed by more detailed processing steps. The generation process performed by the generation apparatus 100 may be any processing flow as long as the second graph data GR12 as shown in the second graph data GR12-4 in FIG. 1 is generated.

まず、生成装置100は、基グラフデータを取得する(ステップS10)。例えば、生成装置100は、基グラフデータ記憶部122から基グラフデータを取得する。図1の例では、生成装置100は、空間情報VS1−1に示すような基グラフデータGR10を取得する。例えば、基グラフデータGR10は、所定の基準に基づいて生成された近傍グラフであってもよい。例えば、基グラフデータGR10は、k近傍(k-nearest neighbor)グラフデータである。図1の例では、基グラフデータGR10は、kが「10」であり、各ノードから近傍の410個のノードに出力エッジが連結されたグラフデータである場合を例に説明する。なお、kは「200」等の種々の値であってもよい。   First, the generation device 100 acquires base graph data (step S10). For example, the generation device 100 acquires base graph data from the base graph data storage unit 122. In the example of FIG. 1, the generation device 100 acquires base graph data GR10 as indicated by the spatial information VS1-1. For example, the base graph data GR10 may be a neighborhood graph generated based on a predetermined standard. For example, the base graph data GR10 is k-nearest neighbor graph data. In the example of FIG. 1, the base graph data GR10 will be described as an example in which k is “10” and the output edge is connected to 410 nodes in the vicinity from each node. Note that k may be various values such as “200”.

なお、基グラフデータは、k近傍グラフデータに限らず、近似k近傍グラフデータ等、複数のノードが有向エッジに連結されたグラフであればどのようなグラフデータであってもよい。また、図1では、処理の説明に必要なノード及びエッジのみを図示し、他のノードやエッジについては図示を省略する。例えば、基グラフデータGR10におけるノードN2〜N4、N6〜N8等からの出力エッジについては図示を省略する。   The base graph data is not limited to k-neighborhood graph data, but may be any graph data as long as it is a graph in which a plurality of nodes are connected to directed edges, such as approximate k-neighborhood graph data. In FIG. 1, only the nodes and edges necessary for the description of the processing are shown, and the other nodes and edges are not shown. For example, illustration of output edges from the nodes N2 to N4, N6 to N8, etc. in the base graph data GR10 is omitted.

そして、生成装置100は、基グラフデータから第1グラフデータを生成する(ステップS11)。例えば、生成装置100は、基グラフデータ中のエッジの向きを反転させることにより、基グラフデータのエッジの向きが逆となった第1グラフデータを生成する。すなわち、生成装置100は、各ノード等間の距離を変えずに、エッジの向きだけを反転させた第1グラフデータを生成する。例えば、生成装置100は、基グラフデータにおける一のノードの入力エッジを出力エッジとし、一のノードの出力エッジを入力エッジとすることにより、エッジの向きだけを反転させた第1グラフデータを生成する。   And the production | generation apparatus 100 produces | generates 1st graph data from base graph data (step S11). For example, the generating apparatus 100 generates first graph data in which the direction of the edge of the base graph data is reversed by inverting the direction of the edge in the base graph data. That is, the generating apparatus 100 generates first graph data in which only the direction of the edge is inverted without changing the distance between the nodes and the like. For example, the generation apparatus 100 generates first graph data in which only the direction of the edge is inverted by using the input edge of one node in the base graph data as an output edge and the output edge of one node as an input edge. To do.

図1の例では、生成装置100は、基グラフデータGR10から空間情報VS1−2に示すような第1グラフデータGR11を生成する。生成装置100は、基グラフデータGR1の転置グラフである第1グラフデータGR11を生成する。例えば、生成装置100は、図5中の基グラフデータ記憶部122に示す各ノードの参照先を始点とし、各ノードを終点として、各エッジの始点と終点を入れ替えることにより、図6中の第1グラフデータ記憶部123に示す第1グラフデータを生成する。例えば、生成装置100は、ノードN1を始点とし、ノードN2を終点とするエッジE2を反転させることにより、空間情報VS1−2に示すように、ノードN2を始点とし、ノードN1を終点とするするエッジE2−1を含む第1グラフデータGR11を生成する。例えば、生成装置100は、種々の従来技術を適宜用いて、グラフデータの転置グラフを生成してもよい。なお、生成装置100は、基グラフデータGR10の第1グラフデータGR11を生成できれば、どのような処理により第1グラフデータGR11を生成してもよい。   In the example of FIG. 1, the generation device 100 generates first graph data GR11 as indicated by the spatial information VS1-2 from the base graph data GR10. The generation device 100 generates first graph data GR11 that is a transposed graph of the base graph data GR1. For example, the generating apparatus 100 replaces the start point and the end point of each edge with the reference destination of each node shown in the base graph data storage unit 122 in FIG. First graph data shown in the one graph data storage unit 123 is generated. For example, the generation apparatus 100 reverses the edge E2 having the node N1 as the start point and the node N2 as the end point, thereby setting the node N2 as the start point and the node N1 as the end point as shown in the spatial information VS1-2. First graph data GR11 including the edge E2-1 is generated. For example, the generating apparatus 100 may generate a transposed graph of graph data by appropriately using various conventional techniques. Note that the generation device 100 may generate the first graph data GR11 by any process as long as the first graph data GR11 of the base graph data GR10 can be generated.

そして、生成装置100は、第1グラフデータから第2グラフデータを生成する(ステップS12)。まず、生成装置100は、第1グラフデータからエッジ(第1エッジ)を除いた第2グラフデータを生成する。例えば、生成装置100は、第1グラフデータからエッジ群(第1エッジ群)を除くことにより、ノードのみを有する第2グラフデータを生成する。図1の例では、生成装置100は、空間情報VS1−3に示すように、第1グラフデータGR11からノードのみを有する第2グラフデータGR12−1を生成する。生成装置100は、ノードのみを有する第2グラフデータGR12−1から開始して、第2グラフデータに条件を満たすエッジ(以下、「第2エッジ」ともいう)を順次追加する。これにより、生成装置100は、第2エッジ群を含む第2グラフデータを生成する。   And the production | generation apparatus 100 produces | generates 2nd graph data from 1st graph data (step S12). First, the generation device 100 generates second graph data obtained by removing an edge (first edge) from the first graph data. For example, the generating apparatus 100 generates second graph data having only nodes by removing an edge group (first edge group) from the first graph data. In the example of FIG. 1, the generation device 100 generates second graph data GR12-1 having only nodes from the first graph data GR11, as indicated by the spatial information VS1-3. The generation apparatus 100 starts from the second graph data GR12-1 having only nodes, and sequentially adds edges (hereinafter also referred to as “second edges”) that satisfy the conditions to the second graph data. Thereby, the generation device 100 generates second graph data including the second edge group.

そして、生成装置100は、第2グラフデータにおけるノードのうち、第1グラフデータにおける出力エッジの数に基づいてノード(以下、「第1選択ノード」ともいう)を選択する。そして、生成装置100は、第1選択ノードからの出力エッジが連結されたノード(以下、「対象ノード」ともいう)のうち、出力エッジの短さ、すなわち第1選択ノードとの距離の近さに基づいて、ノード(以下、「第2選択ノード」ともいう)を選択する。   Then, the generation apparatus 100 selects a node (hereinafter also referred to as “first selection node”) based on the number of output edges in the first graph data among the nodes in the second graph data. Then, the generation apparatus 100 has a short output edge among the nodes (hereinafter also referred to as “target nodes”) to which the output edges from the first selection node are connected, that is, the proximity of the distance to the first selection node. Based on the above, a node (hereinafter also referred to as “second selection node”) is selected.

そして、生成装置100は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が他の閾値(以下、「第1閾値」ともいう)未満であり、第1選択ノードを始点とする出力エッジの数が所定の閾値(以下、「第2閾値」ともいう)未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する。生成装置100は、上記の更新処理を第1選択ノード毎に繰り返すことにより、第2グラフデータを生成する。図1の例では、閾値一覧TL11に示すように、第1閾値「4」未満であり、第2閾値「3」未満である場合を一例として説明する。   In the second graph, the generation apparatus 100 has less than another threshold value (hereinafter, also referred to as “first threshold value”) that has the second selection node as the end point, and the first selection node as the start point. When the number of output edges to be performed is less than a predetermined threshold (hereinafter also referred to as “second threshold”), an output edge having the first selection node as a start point and the second selection node as an end point is added to the second graph. The generation device 100 generates the second graph data by repeating the above update process for each first selection node. In the example of FIG. 1, as illustrated in the threshold value list TL <b> 11, a case where it is less than the first threshold “4” and less than the second threshold “3” will be described as an example.

例えば、生成装置100は、第2グラフデータにおけるノードのうち、第1グラフデータにおける出力エッジが少ない方から順に第1選択ノードを選択する。図1の例では、生成装置100は、一覧情報LT11に示すような各ノードN1〜N12の出力エッジ数に基づいて、第1選択ノードを選択する。   For example, the generation apparatus 100 selects the first selection node in order from the node having the smaller output edge in the first graph data among the nodes in the second graph data. In the example of FIG. 1, the generation device 100 selects the first selection node based on the number of output edges of each of the nodes N1 to N12 as shown in the list information LT11.

生成装置100は、最も出力エッジ数が少ない(0本である)ノードN1を第1選択ノードとして選択し、更新処理を行う。そして、生成装置100は、ノードN1の次に出力エッジ数が少ない(1本である)ノードN2を第1選択ノードとして選択し、更新処理を行う。また、生成装置100は、ノードN1の次に出力エッジ数が少ない(1本である)ノードN2を第1選択ノードとして選択し、更新処理を行う。また、生成装置100は、ノードN1の次に出力エッジ数が少ない(1本である)ノードN3を第1選択ノードとして選択し、更新処理を行う。このように、図1の例では、生成装置100は、ノードN1〜N4を順次第1選択ノードとして、更新処理を行うことにより第2エッジが追加された第2グラフデータを生成する(ステップS13)。すなわち、生成装置100は、更新処理を行うことにより、第2グラフデータに含まれるエッジ(第2エッジ)を更新(追加)することにより、第2エッジが追加された第2グラフデータを生成する。   The generation apparatus 100 selects the node N1 having the smallest number of output edges (zero) as the first selection node, and performs the update process. Then, the generation apparatus 100 selects the node N2 having the smallest number of output edges (one) next to the node N1 as the first selection node, and performs the update process. In addition, the generation apparatus 100 selects the node N2 having the smallest number of output edges (one) next to the node N1 as the first selection node, and performs the update process. Further, the generation device 100 selects the node N3 having the fewest number of output edges (one) next to the node N1 as the first selection node, and performs the update process. As described above, in the example of FIG. 1, the generation apparatus 100 generates the second graph data to which the second edge is added by performing the update process using the nodes N1 to N4 as the first selection nodes sequentially (step S13). ). In other words, the generation apparatus 100 generates the second graph data with the second edge added by updating (adding) the edge (second edge) included in the second graph data by performing the update process. .

生成装置100は、第1グラフデータGR11中のノードN1を始点とする出力エッジは0本であるため、第2選択ノードとして選択される対象ノードがないため、第2グラフデータGR12−1にエッジ(第2エッジ)を追加することなく、ノードN1を第1選択ノードとする更新処理を終了する。   Since the generation apparatus 100 has zero output edges starting from the node N1 in the first graph data GR11, there is no target node to be selected as the second selection node, and thus the second graph data GR12-1 has an edge. The update process using the node N1 as the first selected node is terminated without adding (second edge).

また、生成装置100は、ノードN2を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN2を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。そして、生成装置100は、第2グラフデータGR12−1において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN2を始点とする出力エッジの数が第2閾値「3」未満の1本であるため、ノードN2を始点としノードN1を終点とするエッジE2−1を第2グラフデータGR12に追加する。このように、生成装置100は、エッジの本数と第1閾値及び第2閾値との比較に基づく条件を満たすかどうかを判定する。そして、生成装置100は、条件を満たすと判定した場合、その判定対象のノードに対応するエッジを第2グラフデータに追加する。   Further, in the update process in which the node N2 is the first selection node, the generation apparatus 100 has one output edge starting from the node N2 in the first graph data GR11. Select as the second selection node. In the second graph data GR12-1, the generation device 100 has zero input edges whose end point is the node N1 that is the second selection node, which is less than the first threshold “4”, and the first selection node Since the number of output edges having the node N2 as the starting point is one less than the second threshold “3”, the edge E2-1 having the node N2 as the starting point and the node N1 as the ending point is added to the second graph data GR12. To do. As described above, the generation apparatus 100 determines whether or not the condition based on the comparison between the number of edges and the first threshold value and the second threshold value is satisfied. If the generation apparatus 100 determines that the condition is satisfied, the generation apparatus 100 adds an edge corresponding to the determination target node to the second graph data.

また、生成装置100は、ノードN3を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN3を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。そして、生成装置100は、エッジE2−1追加後の第2グラフデータGR12において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の1本であり、第1選択ノードであるノードN3を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN3を始点としノードN1を終点とするエッジE3−1を第2グラフデータGR12に追加する。   In addition, in the update process in which the node N3 is the first selected node, the generation apparatus 100 has one output edge starting from the node N3 in the first graph data GR11. Select as the second selection node. In the second graph data GR12 after the addition of the edge E2-1, the generation apparatus 100 has one input edge whose end point is the node N1, which is the second selection node, less than the first threshold “4”. The number of output edges starting from the node N3 that is the first selection node is zero, which is less than the second threshold “3”. Therefore, the generation device 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E3-1 having the node N3 as the start point and the node N1 as the end point to the second graph data GR12.

また、生成装置100は、ノードN4を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN4を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。そして、生成装置100は、エッジE2−1、E3−1追加後の第2グラフデータGR12において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の2本であり、第1選択ノードであるノードN4を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN4を始点としノードN1を終点とするエッジE4−1を第2グラフデータGR12に追加する。これにより、生成装置100は、空間情報VS1−4に示すように、エッジE2−1、E3−1、E4−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−2を生成する。   In addition, in the update process in which the node N4 is the first selection node, the generation apparatus 100 has one output edge starting from the node N4 in the first graph data GR11. Select as the second selection node. Then, in the second graph data GR12 after the addition of the edges E2-1 and E3-1, the generation apparatus 100 has the number of input edges whose end point is the node N1 that is the second selection node is less than the first threshold “4”. There are two, and the number of output edges starting from the node N4 that is the first selection node is zero, which is less than the second threshold “3”. Therefore, the generating apparatus 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds an edge E4-1 having the node N4 as a start point and the node N1 as an end point to the second graph data GR12. As a result, the generating apparatus 100, as shown in the spatial information VS1-4, the second graph data GR12- to which three edges (second edges) of the edges E2-1, E3-1, and E4-1 are added. 2 is generated.

そして、生成装置100は、一覧情報LT11に示すように、ノードN2〜N4の次に出力エッジ数が少ない(3本である)ノードN10を第1選択ノードとして選択する(ステップS14)。   Then, as illustrated in the list information LT11, the generation apparatus 100 selects, as the first selection node, the node N10 having the next smallest number of output edges (three) from the nodes N2 to N4 (step S14).

そして、生成装置100は、第1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、出力エッジの長さに基づいて、第2選択ノードを順次選択することにより、第2グラフデータを生成する(ステップS15)。図1の例では、生成装置100は、ノードN10からの出力エッジが連結されるノードN1、N11、N12の3つのノードを対象ノードとして、第2選択ノードを選択する。例えば、生成装置100は、第1グラフデータGR11においてノードN10を始点とするエッジE10−1、E11−1、E12−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。   Then, the generation apparatus 100 sequentially selects the second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph, Second graph data is generated (step S15). In the example of FIG. 1, the generation device 100 selects the second selection node using the three nodes N1, N11, and N12 to which the output edge from the node N10 is connected as target nodes. For example, in the first graph data GR11, the generation apparatus 100 selects the second selection in order from the node to which the short edge is connected among the edges E10-1, E11-1, and E12-1 starting from the node N10. Select as a node.

図1の例では、生成装置100は、一覧情報LT12に示すように、各エッジE10−1、E11−1、E12−1の長さ、すなわちノードN10と、ノードN1、N11、N12の3つのノードとの間の距離を算出する。例えば、生成装置100は、2つのノードのベクトルを用いて2つのノード間の距離を算出する。例えば、生成装置100は、ノードN10のベクトルとノードN1のベクトルとを用いて、エッジE10−1の長さ、すなわちノードN10とノードN1との間の距離を算出する。なお、生成装置100が算出するエッジの長さ、すなわちノード間の距離は、どのような距離であってもよく、例えば、ユークリッド距離やマハラノビス距離やコサイン距離等であってもよい。   In the example of FIG. 1, as illustrated in the list information LT12, the generation apparatus 100 includes the lengths of the edges E10-1, E11-1, and E12-1, that is, the node N10 and the three nodes N1, N11, and N12. Calculate the distance to the node. For example, the generation device 100 calculates a distance between two nodes using a vector of two nodes. For example, the generating apparatus 100 calculates the length of the edge E10-1, that is, the distance between the node N10 and the node N1, using the vector of the node N10 and the vector of the node N1. Note that the edge length calculated by the generation apparatus 100, that is, the distance between nodes may be any distance, and may be, for example, a Euclidean distance, a Mahalanobis distance, a cosine distance, or the like.

図1の例では、生成装置100は、一覧情報LT12に示すように、ノードN10と、ノードN1、N11、N12の3つのノードとの間の距離を各々距離D10、D11、D12と算出する。すなわち、生成装置100は、エッジE10−1の長さを、距離D10と算出し、エッジE11−1の長さを距離D11と算出し、エッジE12−1の長さを距離D12と算出する。また、図1中の一覧情報LT12に示すように、距離D10、D11、D12のうち、距離D11が最も小さく、距離D10が最も大きいものとする。   In the example of FIG. 1, as illustrated in the list information LT12, the generation apparatus 100 calculates distances between the node N10 and the three nodes N1, N11, and N12 as distances D10, D11, and D12, respectively. That is, the generation apparatus 100 calculates the length of the edge E10-1 as the distance D10, calculates the length of the edge E11-1 as the distance D11, and calculates the length of the edge E12-1 as the distance D12. Also, as shown in the list information LT12 in FIG. 1, it is assumed that the distance D11 is the smallest and the distance D10 is the largest among the distances D10, D11, and D12.

そして、生成装置100は、一覧情報LT12に示す順位1位から順に参照先に示す各ノードを第2選択ノードとして選択し、エッジを追加するかを判定する。図1の例では、生成装置100は、順位1位の参照先であるノードN11を第2選択ノードとして選択し、エッジを追加するかを判定する。   Then, the generation device 100 selects each node indicated as a reference destination in order from the first rank shown in the list information LT12, and determines whether to add an edge. In the example of FIG. 1, the generation apparatus 100 selects the node N11 that is the reference destination of the first rank as the second selection node, and determines whether to add an edge.

第1選択ノードがノードN10であり、ノードN11を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN11を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN10を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN11を終点とするエッジE11−1を第2グラフデータGR12に追加する。   When the first selection node is the node N10 and the node N11 is the second selection node, the generation apparatus 100 has the number of input edges whose end point is the node N11 that is the second selection node being less than the first threshold “4”. The number of output edges starting from the node N10, which is the first selection node, is 0, which is less than the second threshold “3”. Therefore, the generating apparatus 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E11-1 having the node N10 as a start point and the node N11 as an end point to the second graph data GR12.

次に、第1選択ノードがノードN10であり、ノードN12を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN12を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN10を始点とする出力エッジの数がエッジE11−1の1本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN12を終点とするエッジE12−1を第2グラフデータGR12に追加する。   Next, when the first selection node is the node N10 and the node N12 is the second selection node, the generation apparatus 100 determines that the number of input edges whose end point is the node N12 that is the second selection node is the first threshold “ The number of output edges starting from the node N10 that is the first selection node is one of the edges E11-1 and is less than the second threshold value “3”. Therefore, the generation device 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E12-1 having the node N10 as a start point and the node N12 as an end point to the second graph data GR12.

次に、第1選択ノードがノードN10であり、ノードN1を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN1を終点とする入力エッジの数がエッジE2−1、E3−1、E4−1の3本であり、第1閾値「4」未満であり、第1選択ノードであるノードN10を始点とする出力エッジの数がエッジE11−1、E12−1の2本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN1を終点とするエッジE10−1を第2グラフデータGR12に追加する。これにより、生成装置100は、空間情報VS1−5に示すように、エッジE10−1、E11−1、E12−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−3を生成する。   Next, when the first selection node is the node N10 and the node N1 is the second selection node, the generation apparatus 100 determines that the number of input edges whose end point is the node N1 that is the second selection node is the edge E2-1. , E3-1 and E4-1, which are less than the first threshold “4”, and the number of output edges starting from the node N10 which is the first selection node is the edges E11-1 and E12-1. The number is two and is less than the second threshold “3”. Therefore, the generation device 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E10-1 having the node N10 as the start point and the node N1 as the end point to the second graph data GR12. As a result, the generation apparatus 100, as shown in the spatial information VS1-5, the second graph data GR12- to which three edges (second edges) of the edges E10-1, E11-1, and E12-1 are added. 3 is generated.

そして、生成装置100は、一覧情報LT11に示すように、ノードN10の次に出力エッジ数が少ない(5本である)ノードN5を第1選択ノードとして選択する(ステップS16)。   Then, as illustrated in the list information LT11, the generation apparatus 100 selects, as the first selection node, the node N5 having the next smallest number of output edges (five) after the node N10 (step S16).

そして、生成装置100は、第1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、出力エッジの長さに基づいて、第2選択ノードを順次選択することにより、第2グラフデータを生成する(ステップS17)。図1の例では、生成装置100は、ノードN5からの出力エッジが連結されるノードN1、N6〜N9の5つのノードを対象ノードとして、第2選択ノードを選択する。例えば、生成装置100は、第1グラフデータGR11においてノードN5を始点とするエッジE5−1〜E9−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。   Then, the generation apparatus 100 sequentially selects the second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph, Second graph data is generated (step S17). In the example of FIG. 1, the generation apparatus 100 selects the second selection node using five nodes N1 and N6 to N9 to which the output edge from the node N5 is connected as target nodes. For example, in the first graph data GR11, the generation apparatus 100 selects, as the second selection node, in order from the node to which the edge having the short length is connected among the edges E5-1 to E9-1 starting from the node N5. .

図1の例では、生成装置100は、一覧情報LT13に示すように、各エッジE5−1〜E9−1の長さ、すなわちノードN5と、ノードN1、N6〜N9の5つのノードとの間の距離を算出する。図1の例では、生成装置100は、一覧情報LT13に示すように、ノードN5と、ノードN1、N6〜N9の5つのノードとの間の距離を各々距離D5〜D9と算出する。すなわち、生成装置100は、エッジE10−1の長さを、距離D10と算出し、エッジE11−1の長さを距離D11と算出し、エッジE12−1の長さを距離D12と算出する。また、図1中の一覧情報LT12に示すように、距離D5〜D9のうち、距離D8が最も小さく、距離D9が最も大きいものとする。また、距離D8、D6、D5、D7、D9の順で小さいものとする。   In the example of FIG. 1, as illustrated in the list information LT13, the generation apparatus 100 has a length of each edge E5-1 to E9-1, that is, between the node N5 and the five nodes N1, N6 to N9. The distance is calculated. In the example of FIG. 1, as illustrated in the list information LT13, the generation apparatus 100 calculates distances between the node N5 and the five nodes N1, N6 to N9 as distances D5 to D9, respectively. That is, the generation apparatus 100 calculates the length of the edge E10-1 as the distance D10, calculates the length of the edge E11-1 as the distance D11, and calculates the length of the edge E12-1 as the distance D12. Also, as shown in the list information LT12 in FIG. 1, it is assumed that the distance D8 is the smallest and the distance D9 is the largest of the distances D5 to D9. Further, the distances D8, D6, D5, D7, and D9 are assumed to be smaller in this order.

そして、生成装置100は、一覧情報LT13に示す順位1位から順に参照先に示す各ノードを第2選択ノードとして選択し、エッジを追加するかを判定する。図1の例では、生成装置100は、順位1位の参照先であるノードN8を第2選択ノードとして選択し、エッジを追加するかを判定する。   Then, the generation device 100 selects each node indicated as the reference destination in order from the first rank in the list information LT13, and determines whether to add an edge. In the example of FIG. 1, the generation apparatus 100 selects the node N8 that is the reference destination of the first rank as the second selection node, and determines whether to add an edge.

まず、第1選択ノードがノードN5であり、ノードN8を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN8を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN5を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN5を始点としノードN8を終点とするエッジE8−1を第2グラフデータGR12に追加する。   First, when the first selection node is the node N5 and the node N8 is the second selection node, the generation apparatus 100 determines that the number of input edges whose end point is the node N8 that is the second selection node is the first threshold “4”. The number of output edges starting from the node N5 that is the first selection node is zero that is less than the second threshold “3”. Therefore, the generation device 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E8-1 having the node N5 as the start point and the node N8 as the end point to the second graph data GR12.

次に、第1選択ノードがノードN5であり、ノードN6を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN6を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE8−1の1本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN5を始点としノードN6を終点とするエッジE6−1を第2グラフデータGR12に追加する。   Next, when the first selection node is the node N5 and the node N6 is the second selection node, the generation apparatus 100 determines that the number of input edges having the node N6 that is the second selection node as the end point is the first threshold “ The number of output edges starting from the node N5 that is the first selection node is one of the edges E8-1, and is less than the second threshold “3”. Therefore, the generating apparatus 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E6-1 having the node N5 as the start point and the node N6 as the end point to the second graph data GR12.

次に、第1選択ノードがノードN5であり、ノードN1を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN1を終点とする入力エッジの数がエッジE2−1、E3−1、E4−1、E10−1の4本であり、第1閾値「4」未満ではない。そのため、生成装置100は、第1選択ノードがノードN5であり、ノードN1を第2選択ノードである組合せが第1閾値に基づく条件を満たさないと判定し、ノードN5を始点としノードN1を終点とするエッジE5−1を第2グラフデータGR12に追加しない。これにより、生成装置100は、特定のノードに入力エッジが集中することを抑制することができる。   Next, when the first selection node is the node N5 and the node N1 is the second selection node, the generation apparatus 100 determines that the number of input edges whose end point is the node N1 that is the second selection node is the edge E2-1. , E3-1, E4-1, and E10-1, and are not less than the first threshold “4”. Therefore, the generation apparatus 100 determines that the combination in which the first selection node is the node N5 and the node N1 is the second selection node does not satisfy the condition based on the first threshold, and the node N5 is the start point and the node N1 is the end point. The edge E5-1 is not added to the second graph data GR12. Thereby, the generation device 100 can suppress the concentration of input edges at a specific node.

次に、第1選択ノードがノードN5であり、ノードN7を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN7を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE8−1、E6−1の2本であり、第2閾値「3」未満である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN5を始点としノードN7を終点とするエッジE7−1を第2グラフデータGR12に追加する。   Next, when the first selection node is the node N5 and the node N7 is the second selection node, the generation apparatus 100 determines that the number of input edges having the node N7 that is the second selection node as the end point is the first threshold “ The number of output edges starting from the node N5 that is the first selection node is two, that is, the edges E8-1 and E6-1, and is less than the second threshold “3”. Therefore, the generation device 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E7-1 having the node N5 as a start point and the node N7 as an end point to the second graph data GR12.

次に、第1選択ノードがノードN5であり、ノードN9を第2選択ノードとする場合、生成装置100は、第2選択ノードであるノードN9を終点とする入力エッジの数が第1閾値「4」未満の0本であるため、第1閾値の条件を満たすと判定する。一方、生成装置100は、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE6−1〜E8−1の3本であり、第2閾値「3」未満ではないため、第2閾値の条件を満たさないと判定する。そのため、生成装置100は、ノードN5を始点としノードN9を終点とするエッジE9−1を第2グラフデータGR12に追加しない。これにより、生成装置100は、特定のノードの出力エッジの増大を抑制することにより、処理時間や処理負荷が増大することを抑制することができる。これにより、生成装置100は、空間情報VS1−6に示すように、エッジE6−1〜E8−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−4を生成する。   Next, when the first selection node is the node N5 and the node N9 is the second selection node, the generation apparatus 100 determines that the number of input edges whose end point is the node N9 that is the second selection node is the first threshold “ Since it is 0 less than 4 ”, it is determined that the first threshold condition is satisfied. On the other hand, in the generation apparatus 100, the number of output edges starting from the node N5 that is the first selection node is three edges E6-1 to E8-1, and is not less than the second threshold “3”. It is determined that the two threshold conditions are not satisfied. Therefore, the generation device 100 does not add the edge E9-1 having the node N5 as the start point and the node N9 as the end point to the second graph data GR12. Thereby, the production | generation apparatus 100 can suppress that processing time and a processing load increase by suppressing the increase in the output edge of a specific node. Accordingly, the generation device 100 generates the second graph data GR12-4 to which the three edges (second edges) of the edges E6-1 to E8-1 are added, as indicated by the spatial information VS1-6. .

上述したように、生成装置100は、第1グラフデータGR11中の第1エッジ群のうち、第1閾値及び第2閾値に基づく条件を満たすと判定されたエッジのみを第2エッジとして、第2グラフデータに追加することにより、特定のノードに入力エッジや出力エッジが集中することが抑制された第2グラフデータを生成することができる。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 uses only the edge determined to satisfy the condition based on the first threshold value and the second threshold value as the second edge, out of the first edge group in the first graph data GR11. By adding to the graph data, it is possible to generate second graph data in which input edges and output edges are suppressed from being concentrated on a specific node. Thereby, the generating apparatus 100 can generate graph data that enables an efficient search for a predetermined target.

このように、生成装置100は、適宜設定可能な第1閾値と第2閾値との2つの閾値を用いて、エッジを追加するかどうか判定する。これにより、生成装置100は、出力エッジや入力エッジの本数について所望の第2グラフを生成することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 determines whether to add an edge using two threshold values of the first threshold value and the second threshold value that can be appropriately set. Thereby, the generation device 100 can generate a desired second graph for the number of output edges and input edges. Therefore, the generation device 100 can generate graph data that enables an efficient search for a predetermined target.

従来から、グラフ構造において各ノードが近傍ノードに有向エッジで接続されている近傍グラフ(k近傍グラフ等を含む)が近傍検索に利用されている。このような、有向エッジを含む近傍グラフを用いた検索においては、入力エッジが少なすぎるノードは、そのノードへ到達する可能性を低め、検索精度の低下につながる。また、出力エッジが多すぎる大きすぎるノードは、距離計算回数を増大させ、検索時間の増加につながる。そこで、生成装置100は、入力エッジ及び出力エッジの各々に対応する閾値(第1閾値、第2閾値)を用いて、入力エッジの数が小さいノードや出力エッジの数が大きいノードをグラフ生成時に減らす。言い換えると、生成装置100は、入力エッジの数が小さいノードや出力エッジの数が大きいノードが含まれる第2グラフが生成されることを抑制するように、第2グラフを生成する。これにより、生成装置100は、所望の第2グラフを生成し、第2グラフによる検索性能の向上を可能にする。   Conventionally, neighborhood graphs (including k-neighbor graphs and the like) in which each node is connected to neighboring nodes by directed edges in the graph structure are used for neighborhood search. In such a search using a neighborhood graph including a directed edge, a node with too few input edges is less likely to reach that node, leading to a decrease in search accuracy. A node having too many output edges increases the number of distance calculations, leading to an increase in search time. Therefore, the generation apparatus 100 uses a threshold value (first threshold value, second threshold value) corresponding to each of the input edge and the output edge to generate a node with a small number of input edges or a node with a large number of output edges when generating a graph. cut back. In other words, the generation device 100 generates the second graph so as to suppress generation of a second graph including a node having a small number of input edges and a node having a large number of output edges. Thereby, the generation device 100 generates a desired second graph, and enables the search performance to be improved by the second graph.

また、例えば、グラフデータ中に多数(例えば1000個、1万個等)の出力エッジを含むノードが含まれる場合、そのノードを辿る検索の処理負荷が増大する。また、例えば、グラフデータ中に少数(例えば0個や1個等)の入力エッジを含むノードが含まれる場合、そのノードが検索される可能性が低くなる。このように、生成装置100は、各ノードについて、出力エッジや入力エッジに偏りが生じないよう、特に特定のノードの出力エッジが増大しないようにエッジを調整することにより、処理負荷が増大するノードや、検索される可能性が低いノードが含まれる可能性を低減することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。また、生成装置100により生成されたグラフデータは、エッジの数の増大を抑制しつつ、所定の対象に関する効率的な検索を可能にすることができる。   Further, for example, if the graph data includes a large number (for example, 1000, 10,000, etc.) of nodes including output edges, the processing load of the search that follows the nodes increases. Further, for example, when a node including a small number (for example, 0 or 1) of input edges is included in the graph data, the possibility that the node is searched is reduced. As described above, the generation device 100 adjusts the edges so that the output edges and the input edges are not biased, and particularly the output edges of the specific nodes are not increased. In addition, it is possible to reduce the possibility of including a node that is unlikely to be searched. Therefore, the generation device 100 can generate graph data that enables an efficient search for a predetermined target. In addition, the graph data generated by the generation device 100 can enable an efficient search for a predetermined target while suppressing an increase in the number of edges.

〔1−1.第1グラフデータ〕
図1の例では、生成装置100が与えられた第1グラフデータGR11から第2グラフデータGR12を生成する場合を示したが、生成装置100は、第1グラフデータを用いることなく第2グラフデータを生成してもよい。例えば、生成装置100は、エッジが連結されていない複数のノードから第2グラフデータを生成してもよい。
[1-1. First graph data]
In the example of FIG. 1, the generation apparatus 100 generates the second graph data GR12 from the given first graph data GR11. However, the generation apparatus 100 uses the second graph data without using the first graph data. May be generated. For example, the generation device 100 may generate the second graph data from a plurality of nodes whose edges are not connected.

例えば、生成装置100は、各ノードから他の全ノードまでの距離に基づく順位に基づいて、第2グラフデータを生成してもよい。例えば、生成装置100は、各ノードを始点ノードとし、各ノードとの距離が短い方から順に第1閾値の数の他のノードを終点ノードとする出力エッジと、各ノードを終点ノードとし、各ノードとの距離が短い方から順に第2閾値の数の他のノードを始点ノードとする入力エッジとを、各ノードに連結することによりグラフデータを生成する。この場合、生成装置100は、各ノードから他の全ノードに出力エッジが連結されたグラフデータを対象とする場合を同様の処理となる。このように、生成装置100は、エッジが連結されていない複数のノードから第2グラフデータを生成してもよい。   For example, the generation device 100 may generate the second graph data based on the rank based on the distance from each node to all other nodes. For example, the generation apparatus 100 sets each node as a start point node, and in order from the shortest distance from each node, an output edge having another node of the first threshold number as an end node, and each node as an end point node, Graph data is generated by linking each node with an input edge having another node of the second threshold number as a starting point node in order from the shortest distance to the node. In this case, the generation apparatus 100 performs the same processing when the graph data in which the output edge is connected from each node to all other nodes is the target. As described above, the generation device 100 may generate the second graph data from a plurality of nodes whose edges are not connected.

〔1−2.第1閾値、第2閾値〕
図1の例では、第1閾値を「4」とし、第2閾値を「3」とする場合を示したが、第1閾値や第2閾値には種々の値が選択されてもよい。例えば、第1閾値と第2閾値とは同じ値であってもよい。例えば、第1閾値は、第2閾値よりも小さい値であってもよい。
[1-2. First threshold, second threshold]
In the example of FIG. 1, the first threshold is set to “4” and the second threshold is set to “3”, but various values may be selected for the first threshold and the second threshold. For example, the first threshold value and the second threshold value may be the same value. For example, the first threshold value may be smaller than the second threshold value.

〔1−3.インデックスデータ〕
また、生成装置100は、検索時に用いるインデックスデータを生成してもよい。例えば、生成装置100は、高次元ベクトルを検索する検索インデックスをインデックスデータとして生成する。ここでいう高次元ベクトルとは、例えば、数百次元から数千次元のベクトルであってもよいし、それ以上の次元のベクトルであってもよい。
[1-3. Index data)
Further, the generation device 100 may generate index data used at the time of search. For example, the generating apparatus 100 generates a search index for searching for a high-dimensional vector as index data. The high-dimensional vector here may be, for example, a vector of several hundreds to thousands of dimensions, or a vector of more dimensions.

例えば、生成装置100は、ツリー構造(木構造)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、生成装置100は、kd木(k-dimensional tree)に関する検索インデックスをインデックスデータとして生成してもよい。例えば、生成装置100は、VP木(Vantage-Point tree)に関する検索インデックスをインデックスデータとして生成してもよい。   For example, the generating apparatus 100 may generate a search index related to a tree structure (tree structure) as index data. For example, the generating apparatus 100 may generate a search index related to a kd tree (k-dimensional tree) as index data. For example, the generation apparatus 100 may generate a search index related to a VP tree (Vantage-Point tree) as index data.

また、例えば、生成装置100は、その他の木構造を有するインデックスデータとして生成してもよい。例えば、生成装置100は、木構造のインデックスデータのリーフがグラフデータに接続する種々のインデックスデータを生成してもよい。例えば、生成装置100は、木構造のインデックスデータのリーフが第2グラフデータ中のノードに対応する種々のインデックスデータを生成してもよい。また、生成装置100は、このようなインデックスデータを用いて検索を行う場合、インデックスデータを辿って到達したリーフ(ノード)からグラフデータを探索してもよい。   For example, the generating apparatus 100 may generate index data having other tree structures. For example, the generation apparatus 100 may generate various index data in which leaves of tree-structured index data are connected to graph data. For example, the generating apparatus 100 may generate various index data in which the leaf of the tree-structured index data corresponds to a node in the second graph data. Further, when performing a search using such index data, the generation apparatus 100 may search for graph data from a leaf (node) that arrives by tracing the index data.

なお、上述したようなインデックスデータは一例であり、生成装置100は、グラフデータ中のクエリを高速に特定することが可能であれば、どのようなデータ構造のインデックスデータを生成してもよい。例えば、生成装置100は、クエリに対応するセントロイド情報を高速に特定することが可能であれば、バイナリ空間分割に関する技術等の種々の従来技術を適宜用いて、インデックスデータを生成してもよい。例えば、生成装置100は、高次元ベクトルの検索に対応可能なインデックスであれば、どのようなデータ構造のインデックスデータを生成してもよい。生成装置100は、上述のようなインデックスデータと第2グラフデータとを用いることにより、所定の対象に関するより効率的な検索を可能にすることができる。   Note that the index data as described above is an example, and the generation apparatus 100 may generate index data having any data structure as long as it can identify a query in the graph data at high speed. For example, as long as the centroid information corresponding to the query can be identified at high speed, the generation apparatus 100 may generate index data by appropriately using various conventional techniques such as a technique related to binary space division. . For example, the generation apparatus 100 may generate index data having any data structure as long as it is an index that can be used to search for a high-dimensional vector. By using the index data and the second graph data as described above, the generation device 100 can enable more efficient search regarding a predetermined target.

〔2.生成システムの構成〕
図2に示すように、生成システム1は、端末装置10と、情報提供装置50と、生成装置100とが含まれる。端末装置10と、情報提供装置50と、生成装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る生成システムの構成例を示す図である。なお、図2に示した生成システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の生成装置100が含まれてもよい。
[2. Generation system configuration)
As illustrated in FIG. 2, the generation system 1 includes a terminal device 10, an information providing device 50, and a generation device 100. The terminal device 10, the information providing device 50, and the generating device 100 are connected via a predetermined network N so as to be communicable by wire or wirelessly. FIG. 2 is a diagram illustrating a configuration example of the generation system according to the embodiment. The generation system 1 illustrated in FIG. 2 may include a plurality of terminal devices 10, a plurality of information providing devices 50, and a plurality of generation devices 100.

端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。   The terminal device 10 is an information processing device used by a user. The terminal device 10 receives various operations by the user. Hereinafter, the terminal device 10 may be referred to as a user. That is, hereinafter, the user can be read as the terminal device 10. The terminal device 10 described above is realized by, for example, a smartphone, a tablet terminal, a notebook PC (Personal Computer), a desktop PC, a mobile phone, a PDA (Personal Digital Assistant), or the like.

情報提供装置50は、ユーザ等に種々の情報提供を行うための情報が格納された情報処理装置である。例えば、情報提供装置50は、ウェブサーバ等の種々の外部装置から収集した文字情報等に基づくオブジェクトIDが格納される。例えば、情報提供装置50は、ユーザ等に画像検索サービスを提供する情報処理装置である。例えば、情報提供装置50は、画像検索サービスを提供するための各情報が格納される。例えば、情報提供装置50は、画像検索サービスの対象となる画像に対応するベクトル情報を生成装置100に提供する。また、情報提供装置50は、クエリを生成装置100に送信することにより、生成装置100からクエリに対応する画像を示すオブジェクトID等を受信する。   The information providing apparatus 50 is an information processing apparatus in which information for providing various information to a user or the like is stored. For example, the information providing device 50 stores an object ID based on character information collected from various external devices such as a web server. For example, the information providing apparatus 50 is an information processing apparatus that provides an image search service to a user or the like. For example, the information providing apparatus 50 stores information for providing an image search service. For example, the information providing apparatus 50 provides the generating apparatus 100 with vector information corresponding to an image that is a target of the image search service. In addition, the information providing apparatus 50 receives the object ID indicating the image corresponding to the query from the generating apparatus 100 by transmitting the query to the generating apparatus 100.

生成装置100は、各ノードを始点ノードとし、各ノードとの距離が短い方から順に第1閾値の数の他のノードを終点ノードとする出力エッジと、各ノードを終点ノードとし、各ノードとの距離が短い方から順に第2閾値の数の他のノードを始点ノードとする入力エッジとを、第1グラフデータから第2グラフデータを生成各ノードに連結することによりグラフデータを生成する。例えば、生成装置100は、第1グラフデータから第2グラフデータを生成する。   The generation device 100 sets each node as a start point node, an output edge having other nodes of the first threshold number in order from the shortest distance from each node as an end point node, each node as an end point node, The graph data is generated by connecting the second graph data from the first graph data with the input edge having the other node of the second threshold number as the starting node in order from the shortest distance to the respective nodes. For example, the generation device 100 generates second graph data from the first graph data.

例えば、生成装置100は、端末装置からクエリ情報(以下、単に「クエリ」ともいう)を受信すると、クエリに類似する対象(ベクトル情報等)を検索し、検索結果を端末装置に提供する。また、例えば、生成装置100が端末装置に提供するデータは、画像情報等のデータ自体であってもよいし、URL(Uniform Resource Locator)等の対応するデータを参照するための情報であってもよい。また、クエリや検索対象のデータは、画像、音声、テキストデータなど、如何なる種類のデータであってもよい。本実施形態において、生成装置100が画像を検索する場合を一例として説明する。   For example, when receiving the query information (hereinafter, also simply referred to as “query”) from the terminal device, the generation device 100 searches for an object (such as vector information) similar to the query and provides the search result to the terminal device. Further, for example, the data provided to the terminal device by the generating apparatus 100 may be data such as image information itself or information for referring to corresponding data such as a URL (Uniform Resource Locator). Good. The query and search target data may be any kind of data such as images, sounds, text data, and the like. In the present embodiment, a case where the generation apparatus 100 searches for an image will be described as an example.

〔3.生成装置の構成〕
次に、図3を用いて、実施形態に係る生成装置100の構成について説明する。図3は、実施形態に係る生成装置100の構成例を示す図である。図3に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
[3. Configuration of the generator
Next, the configuration of the generation apparatus 100 according to the embodiment will be described with reference to FIG. FIG. 3 is a diagram illustrating a configuration example of the generation apparatus 100 according to the embodiment. As illustrated in FIG. 3, the generation device 100 includes a communication unit 110, a storage unit 120, and a control unit 130. The generation device 100 includes an input unit (for example, a keyboard and a mouse) that receives various operations from an administrator of the generation device 100 and a display unit (for example, a liquid crystal display) for displaying various types of information. May be.

(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図2中のネットワークN)と有線または無線で接続され、端末装置10や情報提供装置50との間で情報の送受信を行う。
(Communication unit 110)
The communication unit 110 is realized by, for example, a NIC (Network Interface Card). The communication unit 110 is connected to a network (for example, the network N in FIG. 2) by wire or wireless, and transmits and receives information to and from the terminal device 10 and the information providing device 50.

(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、オブジェクト情報記憶部121と、基グラフデータ記憶部122と、第1グラフデータ記憶部123と、閾値情報記憶部124と、第2グラフデータ記憶部125とを有する。
(Storage unit 120)
The storage unit 120 is realized by, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. As shown in FIG. 3, the storage unit 120 according to the embodiment includes an object information storage unit 121, a base graph data storage unit 122, a first graph data storage unit 123, a threshold information storage unit 124, and a second graph. And a data storage unit 125.

(オブジェクト情報記憶部121)
実施形態に係るオブジェクト情報記憶部121は、オブジェクトに関する各種情報を記憶する。例えば、オブジェクト情報記憶部121は、オブジェクトIDやベクトルデータを記憶する。図4は、実施形態に係るオブジェクト情報記憶部の一例を示す図である。図4に示すオブジェクト情報記憶部121は、「オブジェクトID」、「ベクトル情報」といった項目が含まれる。
(Object information storage unit 121)
The object information storage unit 121 according to the embodiment stores various types of information related to objects. For example, the object information storage unit 121 stores an object ID and vector data. FIG. 4 is a diagram illustrating an example of the object information storage unit according to the embodiment. The object information storage unit 121 illustrated in FIG. 4 includes items such as “object ID” and “vector information”.

「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。また、「ベクトル情報」は、オブジェクトIDにより識別されるオブジェクトに対応するベクトル情報を示す。すなわち、図4の例では、オブジェクトを識別するオブジェクトIDに対して、オブジェクトに対応するベクトルデータ(ベクトル情報)が対応付けられて登録されている。   “Object ID” indicates identification information for identifying an object. “Vector information” indicates vector information corresponding to the object identified by the object ID. That is, in the example of FIG. 4, vector data (vector information) corresponding to an object is registered in association with an object ID for identifying the object.

例えば、図4の例では、ID「OB1」により識別されるオブジェクト(対象)は、「10,24,51,2...」の多次元のベクトル情報が対応付けられることを示す。   For example, in the example of FIG. 4, the object (target) identified by the ID “OB1” is associated with multidimensional vector information “10, 24, 51, 2.

なお、オブジェクト情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。   The object information storage unit 121 is not limited to the above, and may store various information according to the purpose.

(基グラフデータ記憶部122)
実施形態に係る基グラフデータ記憶部122は、グラフデータに関する各種情報を記憶する。例えば、基グラフデータ記憶部122は、第1グラフデータを生成する基となるグラフデータを記憶する。図5の例は、基グラフデータ記憶部122は、近傍グラフデータを記憶する。図5は、実施形態に係る基グラフデータ記憶部の一例を示す図である。図5に示す基グラフデータ記憶部122は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Base graph data storage unit 122)
The base graph data storage unit 122 according to the embodiment stores various types of information related to graph data. For example, the base graph data storage unit 122 stores graph data serving as a basis for generating the first graph data. In the example of FIG. 5, the base graph data storage unit 122 stores neighborhood graph data. FIG. 5 is a diagram illustrating an example of the base graph data storage unit according to the embodiment. The base graph data storage unit 122 illustrated in FIG. 5 includes items such as “node ID”, “object ID”, and “directed edge information”. The “directed edge information” includes information such as “edge ID” and “reference destination”.

「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。   “Node ID” indicates identification information for identifying each node (target) in the graph data. The “object ID” indicates identification information for identifying the object.

また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図5の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図5の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。   “Directed edge information” indicates information related to an edge connected to a corresponding node. In the example of FIG. 5, “directed edge information” indicates information regarding the output edge output from the corresponding node. “Edge ID” indicates identification information for identifying an edge connecting nodes. “Reference destination” indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 5, with respect to a node ID for identifying a node, information for identifying an object (target) corresponding to the node and a reference destination to which a directed edge (output edge) from the node is linked ( Node) is registered in association with each other.

例えば、図5の例では、ノードID「N1」により識別されるノード(ノードN1)は、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。また、ノードN1からは、エッジID「E2」により識別されるエッジ(エッジE2)が、ノードID「N2」により識別されるノード(ノードN1)に連結されることを示す。すなわち、図5の例では、基グラフデータにおけるノードN1からはエッジE2によりノードN2へ辿ることができることを示す。   For example, in the example of FIG. 5, the node (node N1) identified by the node ID “N1” corresponds to the object (target) identified by the object ID “OB1”. The node N1 indicates that the edge (edge E2) identified by the edge ID “E2” is connected to the node (node N1) identified by the node ID “N2”. That is, in the example of FIG. 5, it can be traced from the node N1 in the base graph data to the node N2 by the edge E2.

なお、基グラフデータ記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、基グラフデータ記憶部122は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、基グラフデータ記憶部122は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。   The base graph data storage unit 122 is not limited to the above, and may store various types of information according to the purpose. For example, the base graph data storage unit 122 may store the lengths of edges connecting between nodes (vectors). That is, the base graph data storage unit 122 may store information indicating the distance between each node (vector).

(第1グラフデータ記憶部123)
実施形態に係る第1グラフデータ記憶部123は、第1グラフデータに関する各種情報を記憶する。例えば、第1グラフデータ記憶部123は、第2グラフデータを生成する基となる第1グラフデータを記憶する。図6は、実施形態に係る第1グラフデータ記憶部の一例を示す図である。図6に示す第1グラフデータ記憶部123は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(First graph data storage unit 123)
The 1st graph data storage part 123 concerning an embodiment memorizes various information about the 1st graph data. For example, the first graph data storage unit 123 stores first graph data that is a basis for generating second graph data. FIG. 6 is a diagram illustrating an example of the first graph data storage unit according to the embodiment. The first graph data storage unit 123 illustrated in FIG. 6 includes items such as “node ID”, “object ID”, and “directed edge information”. The “directed edge information” includes information such as “edge ID” and “reference destination”.

「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。   “Node ID” indicates identification information for identifying each node (target) in the graph data. The “object ID” indicates identification information for identifying the object.

また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図6の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図6の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。   “Directed edge information” indicates information related to an edge connected to a corresponding node. In the example of FIG. 6, “directed edge information” indicates information regarding the output edge output from the corresponding node. “Edge ID” indicates identification information for identifying an edge connecting nodes. “Reference destination” indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 6, with respect to a node ID for identifying a node, information for identifying an object (target) corresponding to the node and a reference destination to which a directed edge (output edge) from the node is linked ( Node) is registered in association with each other.

例えば、図6の例では、ノードID「N1」により識別されるノードは、オブジェクトID「OB1」により識別されるオブジェクト(対象)に対応することを示す。   For example, in the example of FIG. 6, the node identified by the node ID “N1” corresponds to the object (target) identified by the object ID “OB1”.

なお、ノードID中の括弧内は、各グラフデータ間のノードIDを識別可能にする場合のIDを示す。図6の例では、第1グラフデータ記憶部123の各ノードIDには、基グラフデータ記憶部122において対応するノードIDに「−1」が追加されたIDが記憶される。この場合、参照先にも対応するノードIDが記憶される。具体的には、参照先には、図6中のノードIDの末尾に「−1」が追加されたノードIDが記憶されてもよい。例えば、エッジE2−1に対応する参照先には、ノードID「N1−1」が記憶される。   The parentheses in the node ID indicate the ID when the node ID between the graph data can be identified. In the example of FIG. 6, each node ID in the first graph data storage unit 123 stores an ID in which “−1” is added to the corresponding node ID in the base graph data storage unit 122. In this case, the node ID corresponding to the reference destination is also stored. Specifically, a node ID in which “−1” is added to the end of the node ID in FIG. 6 may be stored in the reference destination. For example, the node ID “N1-1” is stored in the reference destination corresponding to the edge E2-1.

図6の例では、ノードID「N1」により識別されるノードからは、出力エッジがないことを示す。また、ノードID「N2」により識別されるノード(ノードN2)からは、エッジID「E2−1」により識別されるエッジ(エッジE2−1)が、ノードID「N1」により識別されるノード(ノードN1)に連結されることを示す。すなわち、図6の例では、第1グラフデータにおけるノードN2からはエッジE2−1によりノードN1へ辿ることができることを示す。   The example of FIG. 6 indicates that there is no output edge from the node identified by the node ID “N1”. Further, from the node (node N2) identified by the node ID “N2”, the edge (edge E2-1) identified by the edge ID “E2-1” is identified by the node ID (N1) ( Node N1) is connected. That is, in the example of FIG. 6, it can be traced from the node N2 in the first graph data to the node N1 by the edge E2-1.

なお、第1グラフデータ記憶部123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、第1グラフデータ記憶部123は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、第1グラフデータ記憶部123は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。   In addition, the 1st graph data memory | storage part 123 may memorize | store not only the above but various information according to the objective. For example, the first graph data storage unit 123 may store the lengths of edges connecting between nodes (vectors). That is, the first graph data storage unit 123 may store information indicating the distance between each node (vector).

(閾値情報記憶部124)
実施形態に係る閾値情報記憶部124は、閾値に関する各種情報を記憶する。例えば、閾値情報記憶部124は、第1閾値や第2閾値を記憶する。図7は、実施形態に係る閾値記憶部の一例を示す図である。図7に示す閾値情報記憶部124は、「閾値名」、「値」、「対象ノード」、「対象エッジ」といった項目が含まれる。
(Threshold information storage unit 124)
The threshold information storage unit 124 according to the embodiment stores various types of information related to the threshold. For example, the threshold information storage unit 124 stores a first threshold and a second threshold. FIG. 7 is a diagram illustrating an example of a threshold storage unit according to the embodiment. The threshold information storage unit 124 illustrated in FIG. 7 includes items such as “threshold name”, “value”, “target node”, and “target edge”.

「閾値名」は、閾値を識別するための情報(名称)を示す。また、「値」は、対応する閾値の具体的な値を示す。「対象ノード」は、対応する閾値が用いられる対象となるノードを示す。また、「対象エッジ」は、対応する閾値が用いられる対象となるエッジを示す。   “Threshold name” indicates information (name) for identifying a threshold. The “value” indicates a specific value of the corresponding threshold value. “Target node” indicates a target node for which a corresponding threshold is used. The “target edge” indicates an edge that is a target for which a corresponding threshold value is used.

図7の例では、閾値名「第1閾値」の値は、「4」であることを示す。第1閾値の対象ノードは、第2選択ノードであり、対象エッジは入力エッジであることを示す。また、閾値名「第2閾値」の値は、「3」であることを示す。第2閾値の対象ノードは、第1選択ノードであり、対象エッジは出力エッジであることを示す。   In the example of FIG. 7, the value of the threshold name “first threshold” is “4”. The target node having the first threshold is the second selection node, and the target edge is an input edge. Further, the value of the threshold name “second threshold” is “3”. The target node with the second threshold is the first selection node, and the target edge is the output edge.

なお、閾値情報記憶部124は、上記に限らず、目的に応じて種々の情報を記憶してもよい。   The threshold information storage unit 124 is not limited to the above, and may store various information according to the purpose.

(第2グラフデータ記憶部125)
実施形態に係る第2グラフデータ記憶部125は、第2グラフデータに関する各種情報を記憶する。図8は、実施形態に係る第2グラフデータ記憶部の一例を示す図である。図8の例では、第2グラフデータ記憶部125は、「ノードID」、「オブジェクトID」、および「有向エッジ情報」といった項目を有する。また、「有向エッジ情報」には、「エッジID」や「参照先」といった情報が含まれる。
(Second graph data storage unit 125)
The 2nd graph data storage part 125 concerning an embodiment memorizes various information about the 2nd graph data. FIG. 8 is a diagram illustrating an example of the second graph data storage unit according to the embodiment. In the example of FIG. 8, the second graph data storage unit 125 includes items such as “node ID”, “object ID”, and “directed edge information”. The “directed edge information” includes information such as “edge ID” and “reference destination”.

「ノードID」は、グラフデータにおける各ノード(対象)を識別するための識別情報を示す。また、「オブジェクトID」は、オブジェクトを識別するための識別情報を示す。   “Node ID” indicates identification information for identifying each node (target) in the graph data. The “object ID” indicates identification information for identifying the object.

また、「有向エッジ情報」は、対応するノードに接続されるエッジに関する情報を示す。図8の例では、「有向エッジ情報」は、対応するノードから出力される出力エッジに関する情報を示す。また、「エッジID」は、ノード間を連結するエッジを識別するための識別情報を示す。また、「参照先」は、エッジにより連結された参照先(ノード)を示す情報を示す。すなわち、図8の例では、ノードを識別するノードIDに対して、そのノードに対応するオブジェクト(対象)を識別する情報やそのノードからの有向エッジ(出力エッジ)が連結される参照先(ノード)が対応付けられて登録されている。   “Directed edge information” indicates information related to an edge connected to a corresponding node. In the example of FIG. 8, “directed edge information” indicates information regarding output edges output from the corresponding nodes. “Edge ID” indicates identification information for identifying an edge connecting nodes. “Reference destination” indicates information indicating a reference destination (node) connected by an edge. That is, in the example of FIG. 8, with respect to a node ID for identifying a node, information for identifying an object (target) corresponding to the node and a reference destination to which a directed edge (output edge) from the node is linked ( Node) is registered in association with each other.

例えば、図8の例では、ノードID「N2」により識別されるノードは、オブジェクトID「OB2」により識別されるオブジェクト(対象)に対応することを示す。   For example, in the example of FIG. 8, the node identified by the node ID “N2” corresponds to the object (target) identified by the object ID “OB2”.

なお、ノードID中の括弧内は、各グラフデータ間のノードIDを識別可能にする場合のIDを示す。図8の例では、第2グラフデータ記憶部125の各ノードIDには、基グラフデータ記憶部122において対応するノードIDに「−2」が追加されたIDが記憶される。この場合、参照先にも対応するノードIDが記憶される。具体的には、参照先には、図8中のノードIDの末尾に「−2」が追加されたノードIDが記憶されてもよい。例えば、エッジE6−1に対応する参照先には、ノードID「N6−2」が記憶される。   The parentheses in the node ID indicate the ID when the node ID between the graph data can be identified. In the example of FIG. 8, each node ID of the second graph data storage unit 125 stores an ID in which “−2” is added to the corresponding node ID in the base graph data storage unit 122. In this case, the node ID corresponding to the reference destination is also stored. Specifically, a node ID in which “−2” is added to the end of the node ID in FIG. 8 may be stored in the reference destination. For example, the node ID “N6-2” is stored in the reference destination corresponding to the edge E6-1.

図8の例では、ノードID「N1」により識別されるノードからは、出力エッジがないことを示す。また、ノードID「N2」により識別されるノード(ノードN2)からは、エッジID「E2−1」により識別されるエッジ(エッジE2−1)が、ノードID「N1」により識別されるノード(ノードN1)に連結されることを示す。すなわち、図8の例では、第1グラフデータにおけるノードN2からはエッジE2−1によりノードN1へ辿ることができることを示す。すなわち、図8の例では、第1グラフデータにおけるエッジE2−1が条件を満たしたため、第2グラフデータにも追加されたことを示す。   The example of FIG. 8 indicates that there is no output edge from the node identified by the node ID “N1”. Further, from the node (node N2) identified by the node ID “N2”, the edge (edge E2-1) identified by the edge ID “E2-1” is identified by the node ID (N1) ( Node N1) is connected. That is, the example of FIG. 8 shows that the node N2 in the first graph data can be traced to the node N1 by the edge E2-1. That is, in the example of FIG. 8, since the edge E2-1 in the first graph data satisfies the condition, it is added to the second graph data.

なお、第2グラフデータ記憶部125は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、第2グラフデータ記憶部125は、各ノード(ベクトル)間を連結するエッジの長さが記憶されてもよい。すなわち、第2グラフデータ記憶部125は、各ノード(ベクトル)間の距離を示す情報が記憶されてもよい。例えば、第2グラフデータ記憶部125は、各ノードへの入力エッジの数を示す情報が記憶されてもよい。また、第2グラフデータは、クエリを入力とし、グラフデータ中のエッジを辿ることによりノードを探索し、クエリに類似するノードを抽出し出力するプログラムモジュールを含んでもよい。すなわち、第2グラフデータは、第2グラフを用いて検索処理を行うプログラムモジュールとしての利用が想定されるものであってもよい。例えば、第2グラフデータGR12は、クエリとしてベクトルデータが入力された場合に、そのベクトルデータに類似するベクトルデータに対応するノードを第2グラフ中から抽出し、出力するプログラムであってもよい。例えば、第2グラフデータGR12は、クエリ画像に対応する類似画像を検索するプログラムモジュールとして利用されるデータであってもよい。例えば、第2グラフデータGR12は、入力されたクエリに基づいて、第2グラフにおいてそのクエリに類似するノードを抽出し、出力するよう、コンピュータを機能させる。   In addition, the 2nd graph data storage part 125 may memorize | store not only the above but various information according to the objective. For example, the second graph data storage unit 125 may store the length of the edge connecting between the nodes (vectors). That is, the second graph data storage unit 125 may store information indicating the distance between each node (vector). For example, the second graph data storage unit 125 may store information indicating the number of input edges to each node. The second graph data may include a program module that receives a query, searches for a node by tracing an edge in the graph data, extracts a node similar to the query, and outputs the extracted node. That is, the second graph data may be assumed to be used as a program module that performs a search process using the second graph. For example, the second graph data GR12 may be a program that, when vector data is input as a query, extracts and outputs nodes corresponding to vector data similar to the vector data from the second graph. For example, the second graph data GR12 may be data used as a program module for searching for a similar image corresponding to the query image. For example, the second graph data GR12 causes the computer to extract and output a node similar to the query in the second graph based on the input query.

(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置100内部の記憶装置に記憶されている各種プログラム(生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
(Control unit 130)
Returning to the description of FIG. 3, the control unit 130 is a controller and is stored in a storage device inside the generation apparatus 100 by, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like. Various programs (corresponding to an example of a generation program) are implemented by using the RAM as a work area. The control unit 130 is a controller, and is realized by an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

図3に示すように、制御部130は、取得部131と、第1選択部及び第2選択部としての選択部132と、生成部133と、生成部134と、提供部135とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。   As illustrated in FIG. 3, the control unit 130 includes an acquisition unit 131, a selection unit 132 as a first selection unit and a second selection unit, a generation unit 133, a generation unit 134, and a provision unit 135. The functions and operations of information processing described below are realized or executed. Note that the internal configuration of the control unit 130 is not limited to the configuration illustrated in FIG. 3, and may be another configuration as long as the information processing described below is performed.

(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、記憶部120から各種情報を取得する。例えば、取得部131は、オブジェクト情報記憶部121や、基グラフデータ記憶部122や、第1グラフデータ記憶部123や、閾値情報記憶部124や、第2グラフデータ記憶部125等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得する。
(Acquisition part 131)
The acquisition unit 131 acquires various types of information. For example, the acquisition unit 131 acquires various types of information from the storage unit 120. For example, the acquisition unit 131 receives various information from the object information storage unit 121, the base graph data storage unit 122, the first graph data storage unit 123, the threshold information storage unit 124, the second graph data storage unit 125, and the like. get. The acquisition unit 131 acquires various types of information from an external information processing apparatus.

取得部131は、データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフ(第1グラフデータGR11)と、複数のノードの情報を含む第2グラフデータGR12−1を取得する。   The acquisition unit 131 includes a first graph (first graph data GR11) including information on a plurality of nodes to be subjected to data search and information on a first edge group that is a directed edge group connecting the plurality of nodes. ) And second graph data GR12-1 including information on a plurality of nodes.

例えば、取得部131は、第1グラフデータGR11を第1グラフデータ記憶部123から取得する。また、例えば、取得部131は、第2グラフデータGR12−1を第2グラフデータ記憶部125から取得する。取得部131は、所定の基準に基づいて生成された近傍グラフ(基グラフデータGR10)であって、複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフのうち、所定のエッジ群の各エッジの向きを反転させた第1エッジ群の情報を含む転置グラフである第1グラフを取得する。   For example, the acquisition unit 131 acquires the first graph data GR11 from the first graph data storage unit 123. For example, the acquisition unit 131 acquires the second graph data GR12-1 from the second graph data storage unit 125. The acquisition unit 131 is a neighborhood graph (base graph data GR10) generated based on a predetermined criterion, and is a neighborhood graph connected by a predetermined edge group that is a directed edge group connecting a plurality of nodes. Among these, a first graph that is a transposed graph including information of the first edge group obtained by inverting the direction of each edge of the predetermined edge group is acquired.

例えば、取得部131は、基グラフデータを取得する。図1の例では、生成装置100は、基グラフデータGR10を取得する。例えば、取得部131は、第1グラフデータを取得してもよい。例えば、生成装置100は、情報提供装置50等の外部装置から第1グラフデータGR11を取得してもよい。   For example, the acquisition unit 131 acquires base graph data. In the example of FIG. 1, the generation device 100 acquires base graph data GR10. For example, the acquisition unit 131 may acquire the first graph data. For example, the generation device 100 may acquire the first graph data GR11 from an external device such as the information providing device 50.

例えば、取得部131は、検索クエリに関する情報を取得する。例えば、取得部131は、画像検索に関する検索クエリを取得する。例えば、取得部131は、利用する端末装置10からクエリを受け付けた情報提供装置50からクエリを取得する。   For example, the acquisition unit 131 acquires information related to the search query. For example, the acquisition unit 131 acquires a search query related to image search. For example, the acquisition unit 131 acquires a query from the information providing device 50 that has received the query from the terminal device 10 to be used.

(選択部132)
選択部132は、各種情報を選択する。なお、図3では、第1選択部と第2選択部とを併せて選択部132とする構成を示すが、第1選択部と第2選択部とは各々異なる部(第1選択部及び第2選択部)として構成されてもよい。すなわち、選択部132の処理として説明する各処理は、個別に構成された第1選択部や第2選択部により実行されてもよい。
(Selection unit 132)
The selection unit 132 selects various information. FIG. 3 shows a configuration in which the first selection unit and the second selection unit are combined into the selection unit 132, but the first selection unit and the second selection unit are different from each other (the first selection unit and the first selection unit). 2 selection unit). That is, each process described as the process of the selection unit 132 may be executed by a first selection unit or a second selection unit configured individually.

選択部132は、更新処理においてノードを選択する。選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する。選択部132は、1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する。   The selection unit 132 selects a node in the update process. The selection unit 132 selects a first selection node among a plurality of nodes based on the number of output edges that end at another node in the first graph. The selection unit 132 selects the second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in one graph.

選択部132は、出力エッジの数に基づいて第1選択ノードを選択する。選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択する。選択部132は、出力エッジの長さに基づいて第2選択ノードを選択する。選択部132は、対象ノードのうち、各ノードから第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択する。   The selection unit 132 selects the first selection node based on the number of output edges. The selection unit 132 selects a plurality of nodes as the first selection node in order from the node with the smallest number of output edges having the other node as an end point in the first graph. The selection unit 132 selects the second selection node based on the length of the output edge. The selection unit 132 selects, from among the target nodes, the second selection node in order from the node with the short output edge starting from the first selection node.

図1の例では、選択部132は、第2グラフデータにおけるノードのうち、第1グラフデータにおける出力エッジが少ない方から順に第1選択ノードを選択する。選択部132は、一覧情報LT11に示すような各ノードN1〜N12の出力エッジ数に基づいて、第1選択ノードを選択する。   In the example of FIG. 1, the selection unit 132 selects the first selection node in order from the node with the fewest output edges in the first graph data among the nodes in the second graph data. The selection unit 132 selects the first selection node based on the number of output edges of each of the nodes N1 to N12 as shown in the list information LT11.

図1の例では、選択部132は、ノードN2を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN2を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。選択部132は、ノードN3を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN3を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。選択部132は、ノードN4を第1選択ノードとする更新処理においては、第1グラフデータGR11中のノードN4を始点とする出力エッジは1本であるため、その終点であるノードN1を第2選択ノードとして選択する。   In the example of FIG. 1, in the update process in which the node N2 is the first selection node, the selection unit 132 has one output edge starting from the node N2 in the first graph data GR11. A node N1 is selected as the second selection node. In the update process in which the node N3 is the first selection node, the selection unit 132 has one output edge starting from the node N3 in the first graph data GR11. Select as a selection node. In the update process in which the node N4 is the first selection node, the selection unit 132 has one output edge starting from the node N4 in the first graph data GR11. Select as a selection node.

図1の例では、選択部132は、一覧情報LT11に示すように、ノードN2〜N4の次に出力エッジ数が少ない(3本である)ノードN10を第1選択ノードとして選択する。選択部132は、ノードN10からの出力エッジが連結されるノードN1、N11、N12の3つのノードを対象ノードとして、第2選択ノードを選択する。選択部132は、第1グラフデータGR11においてノードN10を始点とするエッジE10−1、E11−1、E12−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。   In the example of FIG. 1, as illustrated in the list information LT11, the selection unit 132 selects a node N10 having the next smallest number of output edges (three) as the first selection node after the nodes N2 to N4. The selection unit 132 selects the second selection node using the three nodes N1, N11, and N12 to which the output edge from the node N10 is connected as target nodes. In the first graph data GR11, the selection unit 132 selects the edges E10-1, E11-1, and E12-1 starting from the node N10 as the second selection node in order from the node to which the short edge is connected. select.

図1の例では、選択部132は、一覧情報LT11に示すように、ノードN10の次に出力エッジ数が少ない(5本である)ノードN5を第1選択ノードとして選択する。選択部132は、ノードN5からの出力エッジが連結されるノードN1、N6〜N9の5つのノードを対象ノードとして、第2選択ノードを選択する。選択部132は、第1グラフデータGR11においてノードN5を始点とするエッジE5−1〜E9−1のうち、長さが短いエッジが連結されるノードから順に、第2選択ノードとして選択する。   In the example of FIG. 1, as illustrated in the list information LT11, the selection unit 132 selects a node N5 having the next smallest number of output edges (five) as the first selection node after the node N10. The selection unit 132 selects the second selection node using the five nodes N1 and N6 to N9 to which the output edge from the node N5 is connected as target nodes. The selection unit 132 selects, as the second selection node, in order from the node to which the edge having the short length is connected among the edges E5-1 to E9-1 starting from the node N5 in the first graph data GR11.

(生成部133)
生成部133は、各種情報を生成する。例えば、生成部133は、記憶部120に記憶された情報(データ)から各種情報(データ)を生成する。例えば、生成部133は、オブジェクト情報記憶部121や、基グラフデータ記憶部122や、第1グラフデータ記憶部123や、閾値情報記憶部124から各種情報を生成する。例えば、生成部133は、基グラフデータから第1グラフデータを生成する。例えば、生成部133は、第1グラフデータから第2グラフデータを生成する。
(Generator 133)
The generation unit 133 generates various information. For example, the generation unit 133 generates various types of information (data) from information (data) stored in the storage unit 120. For example, the generation unit 133 generates various types of information from the object information storage unit 121, the base graph data storage unit 122, the first graph data storage unit 123, and the threshold information storage unit 124. For example, the generation unit 133 generates first graph data from the base graph data. For example, the generation unit 133 generates second graph data from the first graph data.

例えば、生成部133は、第1グラフデータGR11を生成する。生成部133は、所定の基準に基づいて生成された近傍グラフ(基グラフデータGR10)であって、複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフから第1グラフデータGR11を生成する。生成部133は、基グラフデータGR10うち、各エッジの向きを反転させることにより、基グラフデータGR10の転置グラフである第1グラフデータGR11を生成する。   For example, the generation unit 133 generates the first graph data GR11. The generation unit 133 is a neighborhood graph (base graph data GR10) generated based on a predetermined criterion, and is based on a neighborhood graph connected by a predetermined edge group that is a directed edge group connecting a plurality of nodes. First graph data GR11 is generated. The generating unit 133 generates first graph data GR11 that is a transposed graph of the base graph data GR10 by inverting the direction of each edge in the base graph data GR10.

また、生成部133は、第1グラフデータGR11のエッジを削除することにより、ノードのみが含まれる第2グラフを生成する。例えば、生成部133は、第1グラフデータGR11のエッジを削除することにより、第2グラフデータGR12−1を生成する。生成部133は、近傍グラフの各エッジの向きを反転させた転置グラフである第1グラフデータを用いて第2グラフデータを生成する。   In addition, the generation unit 133 generates a second graph including only nodes by deleting the edge of the first graph data GR11. For example, the generation unit 133 generates the second graph data GR12-1 by deleting the edge of the first graph data GR11. The generation unit 133 generates second graph data using first graph data that is a transposed graph obtained by inverting the direction of each edge of the neighborhood graph.

生成部133は、第2グラフにおいて、第1選択ノードを始点とする出力エッジの数が所定の閾値(第2閾値)未満である場合、第1エッジ群において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに第2エッジの情報として追加する更新処理により、第2グラフを生成する。生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が他の閾値(第1閾値)未満であり、第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、更新処理により、第2エッジが追加された第2グラフを生成する。生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1エッジ群において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに第2エッジの情報として追加する更新処理により、第2グラフ(第2グラフデータGR12−4)を生成する。生成部133は、例えば第2グラフデータGR12−1〜GR12−3等において、第2選択ノードを終点とする入力エッジの数が第1閾値「4」未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値記「3」未満である場合、第1グラフデータGR11において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフデータGR12−1〜GR12−3等に追加する更新処理により、第2グラフデータGR12−4を生成する。   When the number of output edges starting from the first selection node in the second graph is less than a predetermined threshold (second threshold) in the second graph, the generation unit 133 sets the second selection starting from the first selection node in the first edge group. A second graph is generated by an update process in which an output edge having the selected node as an end point is added to the second graph as second edge information. In the second graph, the generation unit 133 has a number of input edges having the second selected node as an end point less than another threshold (first threshold), and the number of output edges having the first selected node as a starting point is a predetermined number. If it is less than the threshold value, a second graph with the second edge added is generated by the update process. In the second graph, the generation unit 133 has a number of input edges whose end point is the second selection node that is less than the first threshold value, and a number of output edges whose start point is the first selection node is less than the second threshold value. In the first edge group, the second graph (second graph data GR12− is updated by adding an output edge having the first selected node as the start point and the second selected node as the end point to the second graph as the second edge information. 4) is generated. For example, in the second graph data GR12-1 to GR12-3, the generation unit 133 has the number of input edges whose end point is the second selection node is less than the first threshold “4”, and the first selection node is the start point. When the number of output edges to be performed is less than the second threshold value “3”, output edges having the first selection node as the start point and the second selection node as the end point in the first graph data GR11 are set to the second graph data GR12-1 Second graph data GR12-4 is generated by update processing added to GR12-3 and the like.

生成部133は、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードから第2選択ノードへの出力エッジを第2グラフデータに追加する更新処理により、第2グラフデータGR12を生成する。生成部133は、選択された第1選択ノードと第2選択ノードとの組合せごとに更新処理を繰り返す。   When the number of input edges having the second selection node as an end point is less than the first threshold and the number of output edges having the first selection node as a start point is less than the second threshold, the generation unit 133 generates the first selection node The second graph data GR12 is generated by the update process for adding the output edge from the node to the second selection node to the second graph data. The generation unit 133 repeats the update process for each combination of the selected first selection node and second selection node.

生成部133は、第1選択部としての選択部132により選択される第1選択ノードと、第2選択部としての選択部132により選択される第2選択ノードとの組合せごとに更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。生成部133は、更新処理時の第2グラフに含まれる第2エッジの情報を対象として、更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。   The generation unit 133 repeats the update process for each combination of the first selection node selected by the selection unit 132 as the first selection unit and the second selection node selected by the selection unit 132 as the second selection unit. Thus, the second graph to which the second edge is added is generated. The generation unit 133 generates the second graph to which the second edge is added by repeating the update processing on the second edge information included in the second graph at the time of the update processing.

生成部133は、第2グラフにおける複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが所定の基準を満たすエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。生成部133は、第2グラフにおける複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、入力追加処理により入力エッジが0本である、すなわち入力エッジが無いノードを無くすために、第2グラフに入力無エッジの入力エッジを追加する。生成部133は、各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成する。生成部133は、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能な第2エッジが追加された第2グラフを生成する。   When there is an input no-node that is a node to which the input edge is not connected among the plurality of nodes in the second graph, the generation unit 133 has a length of the input edges connected to the node in the first graph. A second graph to which the second edge is added is generated by an input addition process for adding an edge satisfying a predetermined criterion to the second edge as an input edge of the node. When there are no input nodes that are nodes whose input edges are not connected among a plurality of nodes in the second graph, the generation unit 133 has zero input edges due to the input addition process, that is, a node that has no input edges In order to eliminate this, an input edge having no input edge is added to the second graph. The generation unit 133 generates a second graph in which at least one input edge is connected to each node. The generation unit 133 eliminates the nodes that cannot be reached by following the edges during the search, and generates a second graph in which the second edges that can reach each node are added by following the edges.

生成部133は、第1グラフにおいて入力無ノードに対応するノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。生成部133は、入力追加処理において、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが最も短いエッジ、すなわち類似性の高いノード間のエッジを追加することができる。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   The generation unit 133 adds an edge having the shortest length among the input edges connected to the node corresponding to the no-input node in the first graph by an input addition process for adding the second edge as the input edge of the node, A second graph with the second edge added is generated. In the input addition process, the generation unit 133 can add an edge having the shortest length among input edges connected to the node in the first graph, that is, an edge between nodes having high similarity. Thereby, the generating apparatus 100 can generate graph data that enables an efficient search for a predetermined target.

生成部133は、更新処理時において入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。生成部133は、更新処理の中で各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成する。生成部133は、更新処理の繰り返し終了後において入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。例えば、生成部133は、各ノードを第1選択ノードとして選択した更新処理の繰り返し終了後において、入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。例えば、生成部133は、第1選択ノードの選択候補となる全ノードが第1選択ノードとして選択された全更新処理の終了後において、入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。生成部133は、更新処理の繰り返し終了後において、入力エッジが0本となっているノード(入力無ノード)のみを対象として入力追加処理を行う。生成部133は、全ノードを第1選択ノードとして繰り返した更新処理後において入力エッジが0本であるノードのみを対象として、入力追加処理を行う。   The generation unit 133 generates a second graph to which the second edge is added by performing an input addition process during the update process. The generation unit 133 generates a second graph in which at least one input edge is connected to each node in the update process. The generation unit 133 generates the second graph to which the second edge is added by performing the input addition process after the repetition of the update process. For example, the generation unit 133 generates the second graph to which the second edge is added by performing the input addition process after the end of the update process in which each node is selected as the first selection node. For example, the generation unit 133 adds the second edge by performing the input addition process after the completion of the all update process in which all the nodes that are selection candidates of the first selection node are selected as the first selection node. A second graph is generated. The generation unit 133 performs an input addition process only on a node (node with no input) having zero input edges after the end of the update process. The generation unit 133 performs an input addition process only for a node having zero input edges after the update process in which all nodes are repeated as the first selection node.

図1の例では、生成部133は、更新処理により、ノードを有向エッジで連結することにより、グラフデータGR12を生成する。生成部133は、図1に示すように、第1閾値及び第2閾値に基づく条件を満たすと判定されたエッジのみを第2エッジとして、第2グラフデータに追加することにより、第2グラフデータを生成する。   In the example of FIG. 1, the generation unit 133 generates graph data GR12 by connecting nodes with directed edges by an update process. As illustrated in FIG. 1, the generating unit 133 adds only the edge determined to satisfy the condition based on the first threshold value and the second threshold value as the second edge to the second graph data by adding the second edge to the second graph data. Is generated.

また、図1の例では、生成部133は、基グラフデータから第1グラフデータを生成する。生成部133は、基グラフデータ中のエッジの向きを反転させることにより、基グラフデータのエッジの向きが逆となった第1グラフデータを生成す。生成部133は、各ノード等間の距離を変えずに、エッジの向きだけを反転させた第1グラフデータを生成する。生成部133は、基グラフデータにおける一のノードの入力エッジを出力エッジとし、一のノードの出力エッジを入力エッジとすることにより、エッジの向きだけを反転させた第1グラフデータを生成する。   In the example of FIG. 1, the generation unit 133 generates first graph data from the base graph data. The generation unit 133 generates first graph data in which the direction of the edge of the base graph data is reversed by inverting the direction of the edge in the base graph data. The generation unit 133 generates first graph data in which only the direction of the edge is inverted without changing the distance between the nodes and the like. The generation unit 133 generates first graph data in which only the direction of the edge is inverted by using the input edge of one node in the base graph data as an output edge and the output edge of one node as an input edge.

図1の例では、生成部133は、基グラフデータGR10から空間情報VS1−2に示すような第1グラフデータGR11を生成する。生成部133は、基グラフデータGR1の転置グラフである第1グラフデータGR11を生成する。例えば、生成部133は、図5中の基グラフデータ記憶部122に示す各ノードの参照先を始点とし、各ノードを終点として、各エッジの始点と終点を入れ替えることにより、図6中の第1グラフデータ記憶部123に示す第1グラフデータを生成する。例えば、生成部133は、ノードN1を始点とし、ノードN2を終点とするエッジE2を反転させることにより、空間情報VS1−2に示すように、ノードN2を始点とし、ノードN1を終点とするするエッジE2−1を含む第1グラフデータGR11を生成する。例えば、生成部133は、種々の従来技術を適宜用いて、グラフデータの転置グラフを生成してもよい。なお、生成部133は、基グラフデータGR10の第1グラフデータGR11を生成できれば、どのような処理により第1グラフデータGR11を生成してもよい。   In the example of FIG. 1, the generation unit 133 generates first graph data GR11 as shown in the spatial information VS1-2 from the base graph data GR10. The generation unit 133 generates first graph data GR11 that is a transposed graph of the base graph data GR1. For example, the generation unit 133 uses the reference destination of each node shown in the base graph data storage unit 122 in FIG. First graph data shown in the one graph data storage unit 123 is generated. For example, the generation unit 133 reverses the edge E2 having the node N1 as the start point and the node N2 as the end point, thereby setting the node N2 as the start point and the node N1 as the end point as shown in the spatial information VS1-2. First graph data GR11 including the edge E2-1 is generated. For example, the generation unit 133 may generate a transposed graph of graph data by appropriately using various conventional techniques. The generation unit 133 may generate the first graph data GR11 by any process as long as the first graph data GR11 of the base graph data GR10 can be generated.

図1の例では、生成部133は、第1グラフデータから第2グラフデータを生成する。まず、生成部133は、第1グラフデータからエッジ(第1エッジ)を除いた第2グラフデータを生成する。例えば、生成部133は、第1グラフデータからエッジ群(第1エッジ群)を除くことにより、ノードのみを有する第2グラフデータを生成する。生成部133は、空間情報VS1−3に示すように、第1グラフデータGR11からノードのみを有する第2グラフデータGR12−1を生成する。生成部133は、ノードのみを有する第2グラフデータGR12−1から開始して、第2グラフデータに条件を満たすエッジ(第2エッジ)を順次追加する。生成部133は、第2エッジ群を含む第2グラフデータを生成する。   In the example of FIG. 1, the generation unit 133 generates second graph data from the first graph data. First, the generation unit 133 generates second graph data obtained by removing an edge (first edge) from the first graph data. For example, the generation unit 133 generates second graph data having only nodes by removing an edge group (first edge group) from the first graph data. The generation unit 133 generates second graph data GR12-1 having only nodes from the first graph data GR11 as indicated by the spatial information VS1-3. The generation unit 133 starts from the second graph data GR12-1 having only nodes, and sequentially adds edges (second edges) that satisfy the condition to the second graph data. The generation unit 133 generates second graph data including the second edge group.

また、生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する。生成部133は、更新処理を第1選択ノード毎に繰り返すことにより、第2グラフデータを生成する。   In addition, in the second graph, the generation unit 133 has the number of input edges having the second selection node as an end point less than the first threshold value, and the number of output edges having the first selection node as the start point is less than the second threshold value. In some cases, an output edge starting from the first selection node and ending at the second selection node is added to the second graph. The generation unit 133 generates second graph data by repeating the update process for each first selection node.

図1の例では、生成部133は、第2グラフデータGR12−1において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の0本であり、第1選択ノードであるノードN2を始点とする出力エッジの数が第2閾値「3」未満の1本であると判定する。生成部133は、エッジの本数と第1閾値及び第2閾値との比較に基づく条件を満たすかどうかを判定する。そして、生成部133は、条件を満たすと判定した場合、その判定対象のノードに対応するエッジを第2グラフデータに追加する。図1の例では、生成部133は、第1選択ノードがノードN2であり、第2選択ノードがノードN1である組合せについて、第1閾値及び第2閾値との比較に基づく条件を満たすと判定し、ノードN2を始点としノードN1を終点とするエッジE2−1を第2グラフデータGR12に追加する。   In the example of FIG. 1, the generation unit 133 has zero input edges with the node N1 that is the second selection node as the end point in the second graph data GR12-1, which is less than the first threshold “4”. It is determined that the number of output edges starting from the node N2 that is the first selection node is one less than the second threshold “3”. The generation unit 133 determines whether a condition based on a comparison between the number of edges and the first threshold value and the second threshold value is satisfied. If the generation unit 133 determines that the condition is satisfied, the generation unit 133 adds an edge corresponding to the determination target node to the second graph data. In the example of FIG. 1, the generation unit 133 determines that the condition based on the comparison between the first threshold value and the second threshold value is satisfied for the combination in which the first selection node is the node N2 and the second selection node is the node N1. Then, an edge E2-1 having the node N2 as the start point and the node N1 as the end point is added to the second graph data GR12.

図1の例では、生成部133は、空間情報VS1−4に示すように、エッジE2−1、E3−1、E4−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−2を生成する。また、生成部133は、空間情報VS1−5に示すように、エッジE10−1、E11−1、E12−1の3本のエッジ(第2エッジ)が追加された第2グラフデータGR12−3を生成する。   In the example of FIG. 1, the generation unit 133 is a second graph in which three edges (second edges) of edges E2-1, E3-1, and E4-1 are added, as indicated by the spatial information VS1-4. Data GR12-2 is generated. In addition, as illustrated in the spatial information VS1-5, the generation unit 133 adds the second graph data GR12-3 to which three edges (second edges) of the edges E10-1, E11-1, and E12-1 are added. Is generated.

図1の例では、生成部133は、第2選択ノードであるノードN1の入力エッジの数がエッジE2−1、E3−1、E4−1、E10−1の4本であり、第1閾値「4」未満ではないと判定する。生成部133は、第1選択ノードがノードN5であり、ノードN1を第2選択ノードである組合せが第1閾値に基づく条件を満たさないと判定する。この場合、生成部133は、ノードN5を始点としノードN1を終点とするエッジE5−1を第2グラフデータGR12に追加しない。   In the example of FIG. 1, the generation unit 133 has four input edges E2-1, E3-1, E4-1, and E10-1 of the node N1, which is the second selection node, and the first threshold value. It is determined that it is not less than “4”. The generation unit 133 determines that the combination in which the first selection node is the node N5 and the node N1 is the second selection node does not satisfy the condition based on the first threshold value. In this case, the generation unit 133 does not add the edge E5-1 having the node N5 as the start point and the node N1 as the end point to the second graph data GR12.

図1の例では、生成部133は、第2選択ノードであるノードN9を終点とする入力エッジの数が第1閾値「4」未満の0本であるため、第1閾値の条件を満たすと判定する。一方、生成部133は、第1選択ノードであるノードN5を始点とする出力エッジの数がエッジE6−1〜E8−1の3本であり、第2閾値「3」未満ではないため、第2閾値の条件を満たさないと判定する。この場合、生成部133は、ノードN5を始点としノードN9を終点とするエッジE9−1を第2グラフデータGR12に追加しない。   In the example of FIG. 1, since the number of input edges whose end point is the node N9, which is the second selection node, is 0, which is less than the first threshold “4”, the generation unit 133 satisfies the first threshold condition. judge. On the other hand, the generation unit 133 has three output edges starting from the node N5 that is the first selection node, ie, the edges E6-1 to E8-1, and is not less than the second threshold “3”. It is determined that the two threshold conditions are not satisfied. In this case, the generation unit 133 does not add the edge E9-1 having the node N5 as the start point and the node N9 as the end point to the second graph data GR12.

(検索部134)
検索部134は、各種情報を検索する。例えば、検索部134は、グラフデータを探索することにより、オブジェクトを検索する。例えば、検索部134は、取得部131により取得されたクエリが取得された場合、グラフデータを探索することにより、クエリに類似するオブジェクトを検索する。例えば、検索部134は、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。例えば、検索部134は、図13に示すような処理手順に基づいて、グラフデータを探索することにより、クエリに類似するオブジェクトを抽出する。なお、検索部134は、検索サービスを提供しない場合、検索部134を有しなくてもよい。
(Search unit 134)
The search unit 134 searches various information. For example, the search unit 134 searches for an object by searching for graph data. For example, when the query acquired by the acquisition unit 131 is acquired, the search unit 134 searches for graph data and searches for an object similar to the query. For example, the search unit 134 extracts objects similar to the query by searching for graph data. For example, the search unit 134 extracts graph-like objects by searching for graph data based on the processing procedure as shown in FIG. The search unit 134 may not include the search unit 134 when the search service is not provided.

(提供部135)
提供部135は、各種情報を提供する。例えば、提供部135は、端末装置10や情報提供装置50に各種情報を提供する。例えば、提供部135は、クエリに対応するオブジェクトIDを検索結果として提供する。例えば、提供部135は、検索部134により検索されたオブジェクトIDを情報提供装置50へ提供する。例えば、提供部135は、検索部134が検索により抽出したオブジェクトIDを情報提供装置50へ提供する。提供部135は、検索部134により抽出されたオブジェクトIDをクエリに対応するベクトルを示す情報として情報提供装置50に提供する。
(Providing unit 135)
The providing unit 135 provides various types of information. For example, the providing unit 135 provides various types of information to the terminal device 10 and the information providing device 50. For example, the providing unit 135 provides an object ID corresponding to the query as a search result. For example, the providing unit 135 provides the object ID retrieved by the retrieving unit 134 to the information providing apparatus 50. For example, the providing unit 135 provides the information providing apparatus 50 with the object ID extracted by the searching unit 134 through the search. The providing unit 135 provides the object ID extracted by the search unit 134 to the information providing apparatus 50 as information indicating a vector corresponding to the query.

また、提供部135は、生成部133により生成された第2グラフデータを外部の情報処理装置へ提供してもよい。例えば、提供部135は、生成部133により生成された第2グラフデータGR12を情報提供装置50に送信してもよい。   The providing unit 135 may provide the second graph data generated by the generating unit 133 to an external information processing apparatus. For example, the providing unit 135 may transmit the second graph data GR12 generated by the generating unit 133 to the information providing apparatus 50.

〔4.生成処理のフロー〕
次に、図9を用いて、実施形態に係る生成システム1による生成処理の手順について説明する。図9は、実施形態に係る生成処理の一例を示すフローチャートである。
[4. Generation process flow)
Next, the procedure of the generation process by the generation system 1 according to the embodiment will be described with reference to FIG. FIG. 9 is a flowchart illustrating an example of the generation process according to the embodiment.

図9に示すように、生成装置100は、基グラフデータを取得する(ステップS101)。例えば、生成装置100は、基グラフデータ記憶部122から基グラフデータを取得する。図1の例では、生成装置100は、基グラフデータGR10を取得する。   As illustrated in FIG. 9, the generation apparatus 100 acquires base graph data (step S101). For example, the generation device 100 acquires base graph data from the base graph data storage unit 122. In the example of FIG. 1, the generation device 100 acquires base graph data GR10.

そして、生成装置100は、基グラフデータから第1グラフデータを生成する(ステップS102)。例えば、生成装置100は、基グラフデータ中のエッジの向きを反転させることにより、基グラフデータのエッジの向きが逆となった第1グラフデータを生成する。図1の例では、生成装置100は、基グラフデータGR10から基グラフデータGR1の転置グラフである第1グラフデータGR11を生成する。   And the production | generation apparatus 100 produces | generates 1st graph data from base graph data (step S102). For example, the generating apparatus 100 generates first graph data in which the direction of the edge of the base graph data is reversed by inverting the direction of the edge in the base graph data. In the example of FIG. 1, the generation device 100 generates first graph data GR11 that is a transposed graph of the base graph data GR1 from the base graph data GR10.

そして、生成装置100は、第1グラフデータからエッジを除いた第2グラフデータを生成する(ステップS103)。例えば、生成装置100は、第1グラフデータからエッジを除くことにより、ノードのみを有する第2グラフデータを生成する。図1の例では、生成装置100は、第1グラフデータGR11からノードのみを有する第2グラフデータGR12−1を生成する。   Then, the generation device 100 generates second graph data obtained by removing the edge from the first graph data (step S103). For example, the generating apparatus 100 generates second graph data having only nodes by removing edges from the first graph data. In the example of FIG. 1, the generation device 100 generates second graph data GR12-1 having only nodes from the first graph data GR11.

そして、生成装置100は、第2グラフデータにおいて第1選択ノードとして選択前のノード(第1未選択ノード)のうち、第1グラフデータにおける出力エッジの数に基づいて、第1選択ノードを選択する(ステップS104)。例えば、生成装置100は、第2グラフデータGR12−1における第1未選択ノード(ノードN5〜N11)うち、第1グラフデータGR11において最も出力エッジが少ない(3本である)ノードN10を、第1選択ノードとして選択する。   Then, the generation apparatus 100 selects the first selection node based on the number of output edges in the first graph data among the nodes before selection (first unselected nodes) as the first selection node in the second graph data. (Step S104). For example, the generation apparatus 100 selects the node N10 having the fewest output edges (three) in the first graph data GR11 among the first unselected nodes (nodes N5 to N11) in the second graph data GR12-1. Select as one selection node.

そして、生成装置100は、第1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、出力エッジの長さに基づいて、第2選択ノードを選択する(ステップS105)。例えば、生成装置100は、第1選択ノードがノードN10である場合、ノードN10からの出力エッジが連結されるノードN1、N11、N12の3つのノードを対象ノードとして、第2選択ノードを選択する。例えば、生成装置100は、第1グラフデータGR11においてノードN10を始点とするエッジE10−1、E11−1、E12−1のうち、長さが最も短いエッジ(例えば、エッジE10−1)が連結されるエッジ(例えば、ノードN1)を、第2選択ノードとして選択する。   Then, the generation device 100 selects the second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph (step S105). . For example, when the first selection node is the node N10, the generation apparatus 100 selects the second selection node using the three nodes N1, N11, and N12 to which the output edge from the node N10 is connected as target nodes. . For example, in the first graph data GR11, the generation device 100 connects the edge having the shortest length (for example, the edge E10-1) among the edges E10-1, E11-1, and E12-1 starting from the node N10. The selected edge (for example, the node N1) is selected as the second selection node.

そして、生成装置100は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が第1閾値未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する(ステップS106)。例えば、生成装置100は、第2グラフデータGR12−2において、第2選択ノードを終点とする入力エッジの数が第1閾値「4」未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値「3」未満である場合、第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに追加する。図1の例では、生成装置100は、第2グラフデータGR12−2において、第2選択ノードであるノードN1を終点とする入力エッジの数が第1閾値「4」未満の3本であり、第1選択ノードであるノードN10を始点とする出力エッジの数が第2閾値「3」未満の0本である。そのため、生成装置100は、第1閾値及び第2閾値に基づく条件を満たすと判定し、ノードN10を始点としノードN1を終点とするエッジE10−1を第2グラフデータGR12に追加する。   Then, in the second graph, the generation device 100 has the number of input edges having the second selection node as the end point less than the first threshold value, and the number of output edges having the first selection node as the start point is less than the second threshold value. If there is, an output edge starting from the first selection node and ending at the second selection node is added to the second graph (step S106). For example, in the second graph data GR12-2, the generation apparatus 100 has the number of input edges having the second selected node as the end point being less than the first threshold “4”, and the output edge having the first selected node as the start point. When the number is less than the second threshold “3”, an output edge having the first selection node as a start point and the second selection node as an end point is added to the second graph. In the example of FIG. 1, the generation apparatus 100 includes three input edges whose end point is the node N1 that is the second selection node in the second graph data GR12-2 that is less than the first threshold “4”. The number of output edges starting from the node N10 that is the first selection node is zero, which is less than the second threshold “3”. Therefore, the generation device 100 determines that the condition based on the first threshold value and the second threshold value is satisfied, and adds the edge E10-1 having the node N10 as the start point and the node N1 as the end point to the second graph data GR12.

そして、生成装置100は、第2選択ノードとして未選択の対象ノードが有るかどうかを判定する(ステップS107)。具体的には、生成装置100は、選択中の第1選択ノードに対する第2選択ノードとして未選択の対象ノードが有るかどうかを判定する。すなわち、各ノードは、異なる第1選択ノードに対する第2選択ノードとして複数回選択され得る。例えば、生成装置100は、一のノードを異なる第1選択ノードに対する第2選択ノードとして複数回選択する。例えば第1グラフデータGR11における入力エッジの本数が5本であるノードN1の場合、生成装置100は、ノードN1を異なる5個の第1選択ノード(ノードN2〜5、N10)に対する第2選択ノードとして5回選択する。   Then, the generation device 100 determines whether there is an unselected target node as the second selection node (step S107). Specifically, the generation device 100 determines whether there is an unselected target node as the second selection node for the currently selected first selection node. That is, each node can be selected multiple times as a second selection node for a different first selection node. For example, the generation device 100 selects one node as a second selection node for different first selection nodes a plurality of times. For example, in the case of the node N1 in which the number of input edges in the first graph data GR11 is 5, the generation apparatus 100 sets the node N1 as the second selection node for five different first selection nodes (nodes N2 to N5 and N10). Select 5 times.

生成装置100は、第2選択ノードとして未選択の対象ノードが有ると判定した場合(ステップS107:Yes)、ステップS105に戻って、ステップS105において第2選択ノードとして未選択の対象ノードから第2選択ノードを選択し、以降の処理を繰り返す。また、生成装置100は、第2選択ノードとして未選択の対象ノードが無いと判定した場合(ステップS107:No)、第1選択ノードとして未選択のノードが有るかどうかを判定する(ステップS108)。   If the generation apparatus 100 determines that there is an unselected target node as the second selection node (step S107: Yes), the generation apparatus 100 returns to step S105, and in step S105, the second selection node starts from the unselected target node. Select the selected node and repeat the subsequent processing. When determining that there is no unselected target node as the second selection node (step S107: No), the generation apparatus 100 determines whether there is an unselected node as the first selection node (step S108). .

生成装置100は、第1選択ノードとして未選択の対象ノードが有ると判定した場合(ステップS108:Yes)、ステップS104に戻って、処理を繰り返す。また、生成装置100は、第1選択ノードとして未選択の対象ノードが無いと判定した場合(ステップS108:No)、処理を終了する。   If it is determined that there is an unselected target node as the first selection node (step S108: Yes), the generation device 100 returns to step S104 and repeats the process. If the generation apparatus 100 determines that there is no unselected target node as the first selection node (step S108: No), the process ends.

〔5.入力エッジが無い場合〕
次に、図10を用いて、実施形態に係る生成システム1による入力追加処理の手順について説明する。図10は、実施形態に係る入力追加処理の一例を示すフローチャートである。
[5. (When there is no input edge)
Next, the procedure of the input addition process by the generation system 1 according to the embodiment will be described with reference to FIG. FIG. 10 is a flowchart illustrating an example of the input addition process according to the embodiment.

図10に示すように、生成装置100は、入力エッジの数が0であるノードを処理ノードとして選択する(ステップS201)。例えば、生成装置100は、あるノードが最初に第1選択ノードとして行われた更新処理終了後において、そのノードの入力エッジの数が0本である場合、そのノードを処理ノードとして選択する。また。例えば、生成装置100は、更新処理の繰返し終了後の第2グラフデータ中のノードのうち、入力エッジの数が0本であるノードを処理ノードとして選択する。図11の例では、生成装置100は、更新処理の繰返し終了後の第2グラフデータGR12−21中のノードのうち、入力エッジの数が0本であるノードN5を処理ノードとして選択する。例えば、生成装置100は、第2グラフ中の全ノード(ノードN1〜N12等)の各々が第1選択ノードとして選択された更新処理の繰返し終了後の第2グラフデータGR12−21中のノードのうち、入力エッジの数が0本であるノードN5を処理ノードとして選択する。   As illustrated in FIG. 10, the generation apparatus 100 selects a node having the number of input edges of 0 as a processing node (Step S201). For example, the generation device 100 selects a node as a processing node when the number of input edges of the node is zero after the end of the update process performed first as the first selection node. Also. For example, the generation apparatus 100 selects a node having 0 input edges as a processing node among nodes in the second graph data after the end of the update process. In the example of FIG. 11, the generation apparatus 100 selects, as a processing node, a node N5 having zero input edges among the nodes in the second graph data GR12-21 after the end of the updating process. For example, the generation apparatus 100 may include the nodes in the second graph data GR12-21 after the end of the update process in which all the nodes (nodes N1 to N12, etc.) in the second graph are selected as the first selection nodes. Among these, the node N5 having zero input edges is selected as a processing node.

そして、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが所定の条件を満たす入力エッジを第2グラフデータに追加する(ステップS202)。例えば、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが最も短い入力エッジを第2グラフデータに追加する。図11の例では、生成装置100は、第1グラフデータGR11中においてノードN5を終点とするエッジE51−1、E52−1のうち、最も短いエッジE51−1を追加した第2グラフデータGR12−22を生成する。また、図1の例では、更新処理中に入力追加処理を行う場合、生成装置100は、ノードN1を第1選択ノードとする更新処理更新処理後において、ノードN1の入力エッジは0本であるため、グラフデータGR11中においてノードN1を終点とするエッジE2−1〜E5−1のうち、最も短いエッジE2−1を追加する。   Then, the generation apparatus 100 adds, to the second graph data, an input edge whose length satisfies a predetermined condition among the input edges connected to the processing node in the first graph data (step S202). For example, the generation apparatus 100 adds the input edge having the shortest length among the input edges connected to the processing node in the first graph data to the second graph data. In the example of FIG. 11, the generation device 100 adds the shortest edge E51-1 among the edges E51-1 and E52-1 that end at the node N5 in the first graph data GR11. 22 is generated. In the example of FIG. 1, when performing the input addition process during the update process, the generation apparatus 100 has zero input edges of the node N1 after the update process update process with the node N1 as the first selection node. Therefore, the shortest edge E2-1 is added among the edges E2-1 to E5-1 whose end point is the node N1 in the graph data GR11.

〔6.入力追加処理の例〕
ここで、図11を用いて、入力追加処理を行う場合を説明する。図11は、実施形態に係る入力追加処理の一例を示す図である。具体的には、図11は、入力エッジが無い(0本である)ノードについて、入力エッジを追加する処理を示す。なお、図1と同様の点については適宜説明を省略する。例えば、図11に示すベクトル空間である空間情報VS1は、図1の空間情報VS1と同様である。また、例えば、図11に示す第1グラフデータGR11は、図1に示す第1グラフデータGR11と同様である。
[6. Example of input addition processing)
Here, the case where an input addition process is performed is demonstrated using FIG. FIG. 11 is a diagram illustrating an example of the input addition process according to the embodiment. Specifically, FIG. 11 shows a process of adding an input edge for a node having no input edge (zero lines). The description of the same points as in FIG. 1 will be omitted as appropriate. For example, the spatial information VS1 that is the vector space shown in FIG. 11 is the same as the spatial information VS1 in FIG. Further, for example, the first graph data GR11 shown in FIG. 11 is the same as the first graph data GR11 shown in FIG.

なお、図11の例では、説明を簡単にするために、空間情報VS1−22中の第2グラフデータGR12−21においては、ノードN5を除く全てのノードに少なくとも1本の入力エッジが連結されている場合を示す。   In the example of FIG. 11, in order to simplify the description, in the second graph data GR12-21 in the spatial information VS1-22, at least one input edge is connected to all the nodes except the node N5. Indicates the case.

まず、生成装置100は、入力エッジの数が0であるノードを処理ノードとして選択する(ステップS21)。図11の例では、生成装置100は、更新処理の繰返し終了後の第2グラフデータGR12−21中のノードのうち、入力エッジの数が0本であるノードN5を処理ノードとして選択する。   First, the generation device 100 selects a node with the number of input edges being 0 as a processing node (step S21). In the example of FIG. 11, the generation apparatus 100 selects, as a processing node, a node N5 having zero input edges among the nodes in the second graph data GR12-21 after the end of the updating process.

そして、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが所定の条件を満たす入力エッジを第2グラフデータに追加する(ステップS22)。例えば、生成装置100は、第1グラフデータにおいて処理ノードに連結される入力エッジのうち、長さが最も短い入力エッジを第2グラフデータに追加する。図11の例では、一覧情報LT21に示すように、距離D51、D52のうち、距離D51が最も小さく、距離D52が最も大きいものとする。   Then, the generation apparatus 100 adds, to the second graph data, an input edge whose length satisfies a predetermined condition among the input edges connected to the processing node in the first graph data (step S22). For example, the generation apparatus 100 adds the input edge having the shortest length among the input edges connected to the processing node in the first graph data to the second graph data. In the example of FIG. 11, it is assumed that the distance D51 is the smallest and the distance D52 is the largest of the distances D51 and D52, as shown in the list information LT21.

そのため、生成装置100は、一覧情報LT21に示すように、第1グラフデータGR11中においてノードN5を終点とするエッジE51−1、E52−1のうち、最も短いエッジE51−1を追加する。これにより、生成装置100は、空間情報VS1−22に示すように、エッジE51−1が追加され入力エッジが0本となるノードがない第2グラフデータGR12−22を生成する。このように、生成装置100は、他のノードから到達することができないノードを無くすことにより、第2グラフを用いた検索処理時において検索されないノード(対象)が生じることを抑制することにより、所定の対象に関する効率的な検索を可能にすることができる。   Therefore, as illustrated in the list information LT21, the generation apparatus 100 adds the shortest edge E51-1 among the edges E51-1, E52-1 having the node N5 as the end point in the first graph data GR11. As a result, the generation apparatus 100 generates the second graph data GR12-22 without the node to which the edge E51-1 is added and the input edge becomes zero, as indicated by the spatial information VS1-22. In this way, the generation apparatus 100 eliminates the nodes that cannot be reached from other nodes, thereby suppressing the occurrence of a node (target) that is not searched during the search process using the second graph. It is possible to enable an efficient search for the target of the subject.

〔7.比較例〕
ここで、第1選択ノードの選択順序が異なる場合における結果との比較を示す。図12は、実施形態に係る比較例を示す図である。なお、図1と同様の点については適宜説明を省略する。例えば、図12に示すベクトル空間である空間情報VS1は、図1の空間情報VS1と同様である。また、例えば、図12に示す第2グラフデータGR12−4は、図2に示す第2グラフデータGR12−4と同様であり、第1選択ノードを出力エッジが少ない方から順に選択した場合の結果である。
[7. Comparative example)
Here, a comparison with the result when the selection order of the first selection node is different is shown. FIG. 12 is a diagram illustrating a comparative example according to the embodiment. The description of the same points as in FIG. 1 will be omitted as appropriate. For example, the spatial information VS1 that is the vector space shown in FIG. 12 is the same as the spatial information VS1 shown in FIG. Further, for example, the second graph data GR12-4 shown in FIG. 12 is the same as the second graph data GR12-4 shown in FIG. 2, and the result when the first selection nodes are selected in order from the one with the fewest output edges. It is.

一方、図12に示す第2グラフデータGR31は、第1選択ノードをノードIDが小さい方から順に選択した場合の結果である。図12に示す第2グラフデータGR31は、「ノードN*(*は任意の数値)」の「*」が小さい方から順に第1選択ノードを選択した場合に生成される第2グラフデータを示す。   On the other hand, the second graph data GR31 shown in FIG. 12 is a result when the first selection nodes are selected in order from the node having the smallest node ID. The second graph data GR31 illustrated in FIG. 12 indicates the second graph data generated when the first selection node is selected in order from the smallest “*” of “node N * (* is an arbitrary numerical value)”. .

第2グラフデータGR31に示すように、ノードIDが小さい方から順に選択した場合、ノードN10よりも先にノードN5が第1選択ノードとして選択される。そのため、第2グラフデータにエッジE5−1が追加される。これにより、第2グラフデータGR12−4において追加されたエッジE10−1やエッジE7−1が追加されないこととなる。このように、第2グラフデータGR31においては、エッジE7−1が追加されなくなるため、各ノードの入力エッジ(内向きエッジ)を多くすることが難しい場合がある。   As shown in the second graph data GR31, when the node IDs are selected in ascending order, the node N5 is selected as the first selection node before the node N10. Therefore, an edge E5-1 is added to the second graph data. As a result, the edge E10-1 and the edge E7-1 added in the second graph data GR12-4 are not added. As described above, in the second graph data GR31, since the edge E7-1 is not added, it may be difficult to increase the input edges (inward edges) of each node.

一方で、図12に示す第2グラフデータGR12−4は、ノードN7にも内向きエッジであるエッジE7−1が連結されており、できるだけ多くのノードに内向きエッジを連結させることができる。   On the other hand, in the second graph data GR12-4 shown in FIG. 12, the edge E7-1 which is an inward edge is also connected to the node N7, and the inward edge can be connected to as many nodes as possible.

〔8.検索例〕
ここで、上述したグラフデータを用いた検索の一例を示す。なお、生成したグラフデータを用いた検索は下記に限らず、種々の手順により行われてもよい。この点について、図13を一例として説明する。図13は、グラフデータを用いた検索処理の一例を示すフローチャートである。以下に説明する検索処理は、生成装置100の検索部134によって行われる。また、以下でいうオブジェクトは、ノードと読み替えてもよい。なお、以下では、生成装置100(検索部134)が検索処理を行うものとして説明するが、検索処理は他の装置により行われてもよい。この場合、生成装置100は検索部134を有しなくてもよい。
[8. Search example)
Here, an example of the search using the graph data described above is shown. The search using the generated graph data is not limited to the following, and may be performed by various procedures. This point will be described with reference to FIG. FIG. 13 is a flowchart illustrating an example of search processing using graph data. The search process described below is performed by the search unit 134 of the generation device 100. Further, the object described below may be read as a node. In the following description, it is assumed that the generation apparatus 100 (search unit 134) performs a search process, but the search process may be performed by another apparatus. In this case, the generation apparatus 100 may not include the search unit 134.

ここでは、近傍オブジェクト集合N(G,y)は、ノードyに付与されているエッジにより関連付けられている近傍のオブジェクトの集合である。「G」は、所定のグラフデータ(例えば、第2グラフデータGR12等)であってもよい。例えば、生成装置100は、k近傍検索処理を実行する。   Here, the neighboring object set N (G, y) is a set of neighboring objects that are related by the edge given to the node y. “G” may be predetermined graph data (for example, the second graph data GR12 or the like). For example, the generation device 100 performs k neighborhood search processing.

例えば、生成装置100は、超球の半径rを∞(無限大)に設定し(ステップS300)、既存のオブジェクト集合から部分集合Sを抽出する(ステップS301)。例えば、生成装置100は、ルートノードとして選択されたオブジェクト(ノード)を部分集合Sとして抽出してもよい。また、例えば、超球とは、検索範囲を示す仮想的な球である。なお、ステップS301において抽出されたオブジェクト集合Sに含まれるオブジェクトは、同時に検索結果のオブジェクト集合Rの初期集合にも含められる。   For example, the generating apparatus 100 sets the radius r of the hypersphere to ∞ (infinity) (step S300), and extracts the subset S from the existing object set (step S301). For example, the generation apparatus 100 may extract the object (node) selected as the root node as the subset S. Further, for example, a hypersphere is a virtual sphere that indicates a search range. It should be noted that the objects included in the object set S extracted in step S301 are also included in the initial set of the search result object set R at the same time.

次に、生成装置100は、オブジェクト集合Sに含まれるオブジェクトの中で、検索クエリオブジェクトをyとするとオブジェクトyとの距離が最も短いオブジェクトを抽出し、オブジェクトsとする(ステップS302)。例えば、生成装置100は、ルートノードとして選択されたオブジェクト(ノード)のみがSの要素の場合には、結果的にルートノードがオブジェクトsとして抽出される。次に、生成装置100は、オブジェクトsをオブジェクト集合Sから除外する(ステップS303)。   Next, the generation apparatus 100 extracts an object having the shortest distance from the object y from the objects included in the object set S, where y is a search query object, and sets the object as an object s (step S302). For example, when only the object (node) selected as the root node is an element of S, the generation apparatus 100 extracts the root node as the object s as a result. Next, the generating apparatus 100 excludes the object s from the object set S (Step S303).

次に、生成装置100は、オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超えるか否かを判定する(ステップS304)。ここで、εは拡張要素であり、r(1+ε)は、探索範囲(この範囲内のノードのみを探索する。検索範囲よりも大きくすることで精度を高めることができる)の半径を示す値である。オブジェクトsとオブジェクトyとの距離d(s,y)がr(1+ε)を超える場合(ステップS304:Yes)、生成装置100は、オブジェクト集合Rをオブジェクトyの近傍オブジェクト集合として出力し(ステップS305)、処理を終了する。   Next, the generating apparatus 100 determines whether or not the distance d (s, y) between the object s and the object y exceeds r (1 + ε) (step S304). Here, ε is an expansion element, and r (1 + ε) is a value indicating the radius of the search range (search only for nodes within this range. The accuracy can be increased by making it larger than the search range). is there. When the distance d (s, y) between the object s and the object y exceeds r (1 + ε) (step S304: Yes), the generation device 100 outputs the object set R as a neighborhood object set of the object y (step S305). ), The process is terminated.

オブジェクトsと検索クエリオブジェクトyとの距離d(s,y)がr(1+ε)を超えない場合(ステップS304:No)、生成装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトの中からオブジェクト集合Cに含まれないオブジェクトを一つ選択し、選択したオブジェクトuを、オブジェクト集合Cに格納する(ステップS306)。オブジェクト集合Cは、重複検索を回避するために便宜上設けられるものであり、処理開始時には空集合に設定される。   When the distance d (s, y) between the object s and the search query object y does not exceed r (1 + ε) (step S304: No), the generation device 100 includes the neighborhood object set N (G, s) of the object s. One object that is not included in the object set C is selected from the objects that are elements, and the selected object u is stored in the object set C (step S306). The object set C is provided for convenience in order to avoid duplicate search, and is set to an empty set at the start of processing.

次に、生成装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下であるか否かを判定する(ステップS307)。オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下である場合(ステップS307:Yes)、生成装置100は、オブジェクトuをオブジェクト集合Sに追加する(ステップS308)。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr(1+ε)以下ではない場合(ステップS307:No)、生成装置100は、ステップS309の判定(処理)を行う。   Next, the generating apparatus 100 determines whether or not the distance d (u, y) between the object u and the object y is equal to or less than r (1 + ε) (step S307). When the distance d (u, y) between the object u and the object y is equal to or less than r (1 + ε) (step S307: Yes), the generation apparatus 100 adds the object u to the object set S (step S308). In addition, when the distance d (u, y) between the object u and the object y is not equal to or less than r (1 + ε) (step S307: No), the generation apparatus 100 performs the determination (processing) in step S309.

次に、生成装置100は、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下であるか否かを判定する(ステップS309)。オブジェクトuとオブジェクトyとの距離d(u,y)がrを超える場合、生成装置100は、ステップS315の判定(処理)を行う。また、オブジェクトuとオブジェクトyとの距離d(u,y)がr以下ではない場合(ステップS309:No)、生成装置100は、ステップS315の判定(処理)を行う。   Next, the generating apparatus 100 determines whether or not the distance d (u, y) between the object u and the object y is equal to or less than r (step S309). When the distance d (u, y) between the object u and the object y exceeds r, the generation device 100 performs determination (processing) in step S315. Further, when the distance d (u, y) between the object u and the object y is not less than or equal to r (step S309: No), the generation device 100 performs the determination (processing) in step S315.

オブジェクトuとオブジェクトyとの距離d(u,y)がr以下である場合(ステップS309:Yes)、生成装置100は、オブジェクトuをオブジェクト集合Rに追加する(ステップS310)。そして、生成装置100は、オブジェクト集合Rに含まれるオブジェクト数がksを超えるか否かを判定する(ステップS311)。所定数ksは、任意に定められる自然数である。例えば、ks=2であってもよい。オブジェクト集合Rに含まれるオブジェクト数がksを超えない場合(ステップS311:No)、生成装置100は、ステップS313の判定(処理)を行う。   When the distance d (u, y) between the object u and the object y is equal to or less than r (step S309: Yes), the generation apparatus 100 adds the object u to the object set R (step S310). Then, the generation device 100 determines whether or not the number of objects included in the object set R exceeds ks (step S311). The predetermined number ks is a natural number that is arbitrarily determined. For example, ks = 2 may be sufficient. When the number of objects included in the object set R does not exceed ks (step S311: No), the generation device 100 performs the determination (processing) in step S313.

オブジェクト集合Rに含まれるオブジェクト数がksを超える場合(ステップS311:Yes)、生成装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトを、オブジェクト集合Rから除外する(ステップS312)。   When the number of objects included in the object set R exceeds ks (step S <b> 311: Yes), the generation apparatus 100 selects an object having the longest (far) object from the object y as the object included in the object set R. Exclude from set R (step S312).

次に、生成装置100は、オブジェクト集合Rに含まれるオブジェクト数がksと一致するか否かを判定する(ステップS313)。オブジェクト集合Rに含まれるオブジェクト数がksと一致しない場合(ステップS313:No)、生成装置100は、ステップS315の判定(処理)を行う。また、オブジェクト集合Rに含まれるオブジェクト数がksと一致する場合(ステップS313:Yes)、生成装置100は、オブジェクト集合Rに含まれるオブジェクトの中でオブジェクトyとの距離が最も長い(遠い)オブジェクトと、オブジェクトyとの距離を、新たなrに設定する(ステップS314)。   Next, the generating apparatus 100 determines whether or not the number of objects included in the object set R matches ks (step S313). When the number of objects included in the object set R does not match ks (step S313: No), the generation device 100 performs determination (processing) in step S315. When the number of objects included in the object set R matches ks (step S313: Yes), the generation apparatus 100 has the longest (distant) object from the object y among the objects included in the object set R. And the distance from the object y are set to a new r (step S314).

そして、生成装置100は、オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えたか否かを判定する(ステップS315)。オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えていない場合(ステップS315:No)、生成装置100は、ステップS306に戻って処理を繰り返す。   Then, the generation apparatus 100 determines whether all objects have been selected from the objects that are elements of the neighboring object set N (G, s) of the object s and stored in the object set C (step S315). If all the objects have not been selected and stored in the object set C from the objects that are elements of the neighboring object set N (G, s) of the object s (step S315: No), the generating apparatus 100 proceeds to step S306. Return and repeat the process.

オブジェクトsの近傍オブジェクト集合N(G,s)の要素であるオブジェクトから全てのオブジェクトを選択してオブジェクト集合Cに格納し終えた場合(ステップS315:Yes)、生成装置100は、オブジェクト集合Sが空集合であるか否かを判定する(ステップS316)。オブジェクト集合Sが空集合でない場合(ステップS316:No)、生成装置100は、ステップS302に戻って処理を繰り返す。また、オブジェクト集合Sが空集合である場合(ステップS316:Yes)、生成装置100は、オブジェクト集合Rを出力し、処理を終了する(ステップS317)。例えば、生成装置100は、オブジェクト集合Rに含まれるオブジェクト(ノード)を検索クエリ(入力オブジェクトy)に対応する検索結果として、検索を行った端末装置等へ提供してもよい。   When all the objects are selected from the objects that are elements of the neighboring object set N (G, s) of the object s and stored in the object set C (step S315: Yes), the generation apparatus 100 determines that the object set S is It is determined whether it is an empty set (step S316). When the object set S is not an empty set (step S316: No), the generation device 100 returns to step S302 and repeats the process. If the object set S is an empty set (step S316: Yes), the generating apparatus 100 outputs the object set R and ends the process (step S317). For example, the generation device 100 may provide an object (node) included in the object set R as a search result corresponding to the search query (input object y) to the terminal device that has performed the search.

〔9.効果〕
上述してきたように、実施形態に係る生成装置100は、取得部131と、第1選択部(実施形態では選択部132)と、第2選択部(実施形態では選択部132)と、生成部133とを有する。取得部131は、データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフ(実施形態では、「第1グラフデータGR11」。以下同じ)と、複数のノードの情報を含む第2グラフ(実施形態では、「第2グラフデータGR12−1」)を取得する。第1選択部としての選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する。第2選択部としての選択部132は、1グラフにおいて第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する。生成部133は、第2グラフにおいて、第1選択ノードを始点とする出力エッジの数が所定の閾値(実施形態では「第2閾値」。以下同じ)未満である場合、第1エッジ群において第1選択ノードを始点とし第2選択ノードを終点とする出力エッジを第2グラフに第2エッジの情報として追加する更新処理により、第2グラフ(実施形態では、「第2グラフデータGR12−4」)を生成する。
[9. effect〕
As described above, the generation device 100 according to the embodiment includes the acquisition unit 131, the first selection unit (selection unit 132 in the embodiment), the second selection unit (selection unit 132 in the embodiment), and the generation unit. 133. The acquisition unit 131 includes a first graph including information on a plurality of nodes that are targets of data search and information on a first edge group that is a directed edge group that connects the plurality of nodes (in the embodiment, “ First graph data GR11 ". The same applies hereinafter) and a second graph including information on a plurality of nodes (" second graph data GR12-1 "in the embodiment). The selection unit 132 serving as a first selection unit selects a first selection node based on the number of output edges having other nodes as end points in the first graph among the plurality of nodes. The selection unit 132 as the second selection unit selects a second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in one graph. When the number of output edges starting from the first selected node in the second graph is less than a predetermined threshold value (“second threshold value” in the embodiment, the same applies hereinafter) in the second graph, the generating unit 133 By the update process for adding the output edge having the first selection node as the start point and the second selection node as the end point to the second graph as the second edge information, the second graph (in the embodiment, “second graph data GR12-4”) is added. ) Is generated.

このように、実施形態に係る生成装置100は、出力エッジの数に基づいて第1選択ノードを選択し、出力エッジの長さに基づいて第2選択ノードを選択し、第1選択ノードを始点とする出力エッジの数が第2閾値(実施形態では「3」)未満である場合、第1選択ノードから第2選択ノードへの出力エッジを第2グラフデータに追加する更新処理により、第2グラフデータGR12を生成することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation device 100 according to the embodiment selects the first selection node based on the number of output edges, selects the second selection node based on the length of the output edge, and starts the first selection node. Is less than the second threshold value (“3” in the embodiment), the update processing for adding the output edge from the first selection node to the second selection node to the second graph data is performed by the second update process. Graph data GR12 can be generated. Therefore, the generation device 100 can generate graph data that enables an efficient search for a predetermined target.

また、実施形態に係る生成装置100において、生成部133は、第2グラフにおいて、第2選択ノードを終点とする入力エッジの数が他の閾値(実施形態では「第1閾値」。以下同じ)未満であり、第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、更新処理により、第2エッジが追加された第2グラフを生成する。   Further, in the generation device 100 according to the embodiment, the generation unit 133 includes other threshold values (in the embodiment, “first threshold value”; the same applies hereinafter) with the number of input edges having the second selection node as the end point in the second graph. When the number of output edges starting from the first selected node is less than a predetermined threshold, a second graph with the second edge added is generated by the update process.

このように、実施形態に係る生成装置100は、第2選択ノードを終点とする入力エッジの数が第1閾値(実施形態では「4」)未満であり、第1選択ノードを始点とする出力エッジの数が第2閾値未満である場合、第1選択ノードから第2選択ノードへの出力エッジを第2グラフデータに追加する更新処理により、第2グラフデータGR12を生成することができる。したがって、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment has an output whose number of input edges having the second selection node as the end point is less than the first threshold (in the embodiment, “4”) and whose first selection node is the start point. When the number of edges is less than the second threshold value, the second graph data GR12 can be generated by the update process for adding the output edge from the first selection node to the second selection node to the second graph data. Therefore, the generation device 100 can generate graph data that enables an efficient search for a predetermined target.

また、実施形態に係る生成装置100において、取得部131は、所定の基準に基づいて生成された近傍グラフ(実施形態では、「基グラフデータGR10」)であって、複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフのうち、所定のエッジ群の各エッジの向きを反転させた第1エッジ群の情報を含む転置グラフである第1グラフを取得する。   Further, in the generation device 100 according to the embodiment, the acquisition unit 131 is a neighborhood graph (in the embodiment, “base graph data GR10”) generated based on a predetermined criterion, and connects a plurality of nodes. A first graph which is a transposed graph including information on a first edge group obtained by inverting the direction of each edge of a predetermined edge group among neighboring graphs connected by the predetermined edge group which is a directed edge group is acquired. .

このように、実施形態に係る生成装置100は、近傍グラフの各エッジの向きを反転させた転置グラフである第1グラフデータを用いて第2グラフデータを生成することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment generates the second graph data using the first graph data that is the transposed graph obtained by inverting the direction of each edge of the neighborhood graph, thereby improving the efficiency related to the predetermined target. Graph data can be generated to enable efficient search.

また、実施形態に係る生成装置100において、第1選択部としての選択部132は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択する。   In addition, in the generation device 100 according to the embodiment, the selection unit 132 as the first selection unit is the first in the order from the node with the fewest number of output edges having the other node as an end point in the first graph among the plurality of nodes. Select as a selection node.

このように、実施形態に係る生成装置100は、複数のノードのうち、第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment selects a predetermined number of nodes as a first selection node in order from a node having a small number of output edges whose end points are other nodes in the first graph. It is possible to generate graph data that enables an efficient search for the target of the subject.

また、実施形態に係る生成装置100において、第2選択部としての選択部132は、対象ノードのうち、各ノードから第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択する。   Further, in the generation device 100 according to the embodiment, the selection unit 132 as the second selection unit is set as the second selection node in order from the node with the short output edge starting from the first selection node to the target node among the target nodes. select.

このように、実施形態に係る生成装置100は、対象ノードのうち、各ノードから第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment relates to a predetermined target by selecting, from among the target nodes, the second selection node in order from the node with the shortest output edge starting from the first selection node. Graph data that enables efficient search can be generated.

また、実施形態に係る生成装置100において、生成部133は、第1選択部としての選択部132により選択される第1選択ノードと、第2選択部としての選択部132により選択される第2選択ノードとの組合せごとに更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。   In the generation device 100 according to the embodiment, the generation unit 133 includes a first selection node selected by the selection unit 132 as the first selection unit, and a second selected by the selection unit 132 as the second selection unit. By repeating the update process for each combination with the selected node, a second graph with the second edge added is generated.

このように、実施形態に係る生成装置100は、選択された第1選択ノードと第2選択ノードとの組合せごとに更新処理を繰り返すことにより、第2グラフを生成することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment relates to a predetermined target by generating the second graph by repeating the update process for each combination of the selected first selection node and second selection node. Graph data that enables efficient search can be generated.

また、実施形態に係る生成装置100において、生成部133は、更新処理時の第2グラフに含まれる第2エッジの情報を対象として、更新処理を繰り返すことにより、第2エッジが追加された第2グラフを生成する。   Further, in the generation device 100 according to the embodiment, the generation unit 133 repeats the update process for the second edge information included in the second graph at the time of the update process, thereby adding the second edge. Two graphs are generated.

このように、実施形態に係る生成装置100は、更新処理時の第2グラフに含まれる第2エッジの情報を対象として、生成処理を繰り返すことにより、第2エッジが追加された第2グラフを生成することにより、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation device 100 according to the embodiment repeats the generation process for the second edge information included in the second graph at the time of the update process, thereby generating the second graph with the second edge added. By generating, it is possible to generate graph data that enables an efficient search for a predetermined object.

また、実施形態に係る生成装置100において、生成部133は、第2グラフにおける複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが所定の基準を満たすエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。   Further, in the generation device 100 according to the embodiment, when there is an input no-node that is a node to which the input edge is not connected among the plurality of nodes in the second graph, the generation unit 133 determines the node in the first graph Among the connected input edges, the second graph with the second edge added is generated by an input addition process for adding an edge whose length satisfies a predetermined criterion to the second edge as the input edge of the node.

このように、実施形態に係る生成装置100は、第2グラフにおける複数のノードのうち、入力無ノードがある場合、入力追加処理により入力エッジが0本である、すなわち入力エッジが無いノードを無くす。すなわち、生成装置100は、各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成することができ、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能とする。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment, when there is no input node among the plurality of nodes in the second graph, eliminates a node having zero input edges, that is, no input edge by the input addition process. . That is, the generation apparatus 100 can generate a second graph in which at least one input edge is connected to each node, eliminates nodes that cannot be reached by following the edges at the time of search, and traces each node by following the edges. Can be reached. Thereby, the generating apparatus 100 can generate graph data that enables an efficient search for a predetermined target.

また、実施形態に係る生成装置100において、生成部133は、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして第2エッジに追加する入力追加処理により、第2エッジが追加された第2グラフを生成する。   Further, in the generation device 100 according to the embodiment, the generation unit 133 adds the edge having the shortest length among the input edges connected to the node in the first graph to the second edge as the input edge of the node. The second graph to which the second edge is added is generated by the input adding process.

このように、実施形態に係る生成装置100は、入力追加処理において、第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして第2エッジに追加することにより、類似性の高いノード間のエッジを追加することができる。これにより、生成装置100は、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, in the input addition process, the generation device 100 according to the embodiment uses the edge having the shortest length among the input edges connected to the node in the first graph as the second edge as the input edge of the node. By adding to, an edge between nodes having high similarity can be added. Thereby, the generating apparatus 100 can generate graph data that enables an efficient search for a predetermined target.

また、実施形態に係る生成装置100において、生成部133は、更新処理時において入力追加処理を行うことにより、第2エッジが追加された第2グラフを生成する。   In the generation device 100 according to the embodiment, the generation unit 133 generates a second graph to which the second edge is added by performing an input addition process during the update process.

このように、実施形態に係る生成装置100は、更新処理時において入力追加処理を行うことにより、各ノードが更新処理の対象となった際に入力エッジが0本となるノードが残る可能性を無くすことにより、第2エッジが追加された第2グラフを生成する。すなわち、生成装置100は、更新処理の中で各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成することができ、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能とする。これにより、生成装置100は、第2グラフ生成の処理時間の増大を抑制しつつ、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment performs the input addition process at the time of the update process, so that there is a possibility that a node having zero input edges may remain when each node is subjected to the update process. By eliminating the second graph, the second graph with the second edge added is generated. That is, the generation apparatus 100 can generate a second graph in which at least one or more input edges are connected to each node in the update process, eliminate the nodes that cannot be reached by following the edges during the search, Each node can be reached by tracing. As a result, the generation device 100 can generate graph data that enables an efficient search for a predetermined target while suppressing an increase in processing time for generating the second graph.

また、実施形態に係る生成装置100において、生成部133は、更新処理の繰り返し終了後において入力追加処理を行うことにより、第2グラフを生成する。   In the generation device 100 according to the embodiment, the generation unit 133 generates the second graph by performing the input addition process after the repetition of the update process.

このように、実施形態に係る生成装置100は、更新処理の繰り返し終了後において入力追加処理を行うことにより、各ノードを対象とした更新処理が行われた後に、入力エッジが0本となっているノードのみを対象として入力追加処理を行う。したがって、生成装置100は、入力追加処理を行う対象を更新処理後において入力エッジが0本であるノードのみを対象とすることができるため、入力追加処理により追加されるエッジの本数を少なくすることができる。すなわち、生成装置100は、入力追加処理により追加されるエッジの本数を少なくしつつ、各ノードに少なくとも1本以上の入力エッジが連結された第2グラフを生成することができ、検索時にエッジを辿って到達できないノードを無くし、エッジを辿ることにより各ノードに到達可能とする。これにより、生成装置100は、エッジの本数の増大を抑制しつつ、所定の対象に関する効率的な検索を可能にするグラフデータを生成することができる。   As described above, the generation apparatus 100 according to the embodiment performs the input addition process after the repetition of the update process, so that the number of input edges becomes 0 after the update process for each node is performed. Input addition processing is performed only for the existing node. Accordingly, since the generation apparatus 100 can target only the node having zero input edges after the update process, the generation apparatus 100 can reduce the number of edges added by the input addition process. Can do. That is, the generation apparatus 100 can generate the second graph in which at least one input edge is connected to each node while reducing the number of edges added by the input addition process, and the edge is searched at the time of the search. Nodes that cannot be reached by tracing are eliminated, and each node can be reached by following an edge. Accordingly, the generation device 100 can generate graph data that enables efficient search related to a predetermined target while suppressing an increase in the number of edges.

〔10.ハードウェア構成〕
上述してきた実施形態に係る生成装置100は、例えば図14に示すような構成のコンピュータ1000によって実現される。図14は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
[10. Hardware configuration)
The generation apparatus 100 according to the above-described embodiment is realized by a computer 1000 configured as shown in FIG. 14, for example. FIG. 14 is a hardware configuration diagram illustrating an example of a computer that implements the function of the generation device. The computer 1000 includes a CPU 1100, a RAM 1200, a ROM (Read Only Memory) 1300, an HDD (Hard Disk Drive) 1400, a communication interface (I / F) 1500, an input / output interface (I / F) 1600, and a media interface (I / F). ) 1700.

CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。   The CPU 1100 operates based on a program stored in the ROM 1300 or the HDD 1400 and controls each unit. The ROM 1300 stores a boot program executed by the CPU 1100 when the computer 1000 is started up, a program depending on the hardware of the computer 1000, and the like.

HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。   The HDD 1400 stores programs executed by the CPU 1100, data used by the programs, and the like. The communication interface 1500 receives data from other devices via the network N and sends the data to the CPU 1100, and transmits data generated by the CPU 1100 to other devices via the network N.

CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。   The CPU 1100 controls an output device such as a display and a printer and an input device such as a keyboard and a mouse via the input / output interface 1600. The CPU 1100 acquires data from the input device via the input / output interface 1600. In addition, the CPU 1100 outputs the generated data to the output device via the input / output interface 1600.

メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。   The media interface 1700 reads a program or data stored in the recording medium 1800 and provides it to the CPU 1100 via the RAM 1200. The CPU 1100 loads such a program from the recording medium 1800 onto the RAM 1200 via the media interface 1700, and executes the loaded program. The recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase change rewritable disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory. Etc.

例えば、コンピュータ1000が実施形態に係る生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。   For example, when the computer 1000 functions as the generation apparatus 100 according to the embodiment, the CPU 1100 of the computer 1000 implements the function of the control unit 130 by executing a program loaded on the RAM 1200. The CPU 1100 of the computer 1000 reads these programs from the recording medium 1800 and executes them. However, as another example, these programs may be acquired from other devices via the network N.

以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。   As described above, some of the embodiments of the present application have been described in detail with reference to the drawings. However, these are merely examples, and various modifications based on the knowledge of those skilled in the art, including the aspects described in the disclosure line of the invention. It is possible to implement the present invention in other forms with improvements.

〔11.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
[11. Others]
In addition, among the processes described in the above embodiment, all or part of the processes described as being automatically performed can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedures, specific names, and information including various data and parameters shown in the document and drawings can be arbitrarily changed unless otherwise specified. For example, the various types of information illustrated in each drawing is not limited to the illustrated information.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured.

また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。   In addition, the processes described in the embodiments described above can be appropriately combined within a range in which the process contents are not contradictory.

また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。   In addition, the “section (module, unit)” described above can be read as “means” or “circuit”. For example, the acquisition unit can be read as acquisition means or an acquisition circuit.

1 生成システム
100 生成装置
121 オブジェクト情報記憶部
122 基グラフデータ記憶部
123 第1グラフデータ記憶部
124 閾値情報記憶部
125 第2グラフデータ記憶部
130 制御部
131 取得部
132 選択部(第1選択部、第2選択部)
133 生成部
134 検索部
135 提供部
10 端末装置
50 情報提供装置
N ネットワーク
DESCRIPTION OF SYMBOLS 1 Generation system 100 Generation apparatus 121 Object information storage part 122 Base graph data storage part 123 1st graph data storage part 124 Threshold information storage part 125 2nd graph data storage part 130 Control part 131 Acquisition part 132 Selection part (1st selection part) , Second selection unit)
133 Generating Unit 134 Searching Unit 135 Providing Unit 10 Terminal Device 50 Information Providing Device N Network

Claims (13)

データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフと、前記複数のノードの情報を含む第2グラフを取得する取得部と、
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択部と、
前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択部と、
前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2エッジが追加された第2グラフを生成する生成部と、
を備えることを特徴とする生成装置。
A first graph including information on a plurality of nodes to be searched for data and information on a first edge group which is a directed edge group connecting the plurality of nodes; and a first graph including information on the plurality of nodes. An acquisition unit for acquiring two graphs;
A first selection unit that selects a first selection node among the plurality of nodes based on the number of output edges whose end points are other nodes in the first graph;
A second selection unit that selects a second selection node based on a length of the output edge among target nodes to which an output edge starting from the first selection node is connected in the first graph;
In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the first selection node is set as the start point and the second selection node is set as the end point in the first edge group. Generating a second graph to which the second edge is added by an update process for adding the output edge to the second graph as second edge information;
A generating apparatus comprising:
前記生成部は、
前記第2グラフにおいて、前記第2選択ノードを終点とする入力エッジの数が他の閾値未満であり、前記第1選択ノードを始点とする出力エッジの数が前記所定の閾値未満である場合、前記更新処理により、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項1に記載の生成装置。
The generator is
In the second graph, when the number of input edges having the second selection node as an end point is less than another threshold value, and the number of output edges having the first selection node as a start point is less than the predetermined threshold value, The generation apparatus according to claim 1, wherein the update process generates a second graph to which the second edge is added.
前記取得部は、
所定の基準に基づいて生成された近傍グラフであって、前記複数のノード間を連結する有向エッジ群である所定のエッジ群で連結された近傍グラフのうち、前記所定のエッジ群の各エッジの向きを反転させた前記第1エッジ群の情報を含む転置グラフである前記第1グラフを取得する
ことを特徴とする請求項1または請求項2に記載の生成装置。
The acquisition unit
Each of the edges of the predetermined edge group among the vicinity graphs generated based on a predetermined criterion and connected by a predetermined edge group that is a directed edge group connecting the plurality of nodes. The generation apparatus according to claim 1, wherein the first graph, which is a transposed graph including information on the first edge group in which the orientation of the first edge group is inverted, is acquired.
前記第1選択部は、
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数が少ないノードから順に第1選択ノードとして選択する
ことを特徴とする請求項1〜3のいずれか1項に記載の生成装置。
The first selection unit includes:
The node is selected as a first selection node in order from a node having a small number of output edges whose end points are other nodes in the first graph among the plurality of nodes. The generating device described in 1.
前記第2選択部は、
前記対象ノードのうち、各ノードから前記第1選択ノードを始点とする出力エッジが短いノードから順に第2選択ノードとして選択する
ことを特徴とする請求項1〜4のいずれか1項に記載の生成装置。
The second selection unit includes:
5. The selection node according to claim 1, wherein, from among the target nodes, nodes are selected as a second selection node in order from a node with a short output edge starting from the first selection node. 6. Generator.
前記生成部は、
前記第1選択部により選択される前記第1選択ノードと、前記第2選択部により選択される前記第2選択ノードとの組合せごとに前記更新処理を繰り返すことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項1〜5のいずれか1項に記載の生成装置。
The generator is
The second edge is added by repeating the updating process for each combination of the first selection node selected by the first selection unit and the second selection node selected by the second selection unit. The 2nd graph is produced | generated. The production | generation apparatus of any one of Claims 1-5 characterized by the above-mentioned.
前記生成部は、
前記更新処理時の前記第2グラフに含まれる前記第2エッジの情報を対象として、前記更新処理を繰り返すことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項6に記載の生成装置。
The generator is
The second graph to which the second edge is added is generated by repeating the update process for the information on the second edge included in the second graph at the time of the update process. Item 7. The generating device according to Item 6.
前記生成部は、
前記第2グラフにおける前記複数のノードのうち、入力エッジが連結されていないノードである入力無ノードがある場合、前記第1グラフにおいて当該ノードに連結される入力エッジのうち、長さが所定の基準を満たすエッジを、当該ノードの入力エッジとして前記第2エッジに追加する入力追加処理により、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項1〜7のいずれか1項に記載の生成装置。
The generator is
When there is an input non-node that is a node to which an input edge is not connected among the plurality of nodes in the second graph, a length of the input edge connected to the node in the first graph is a predetermined length. 8. The second graph to which the second edge is added is generated by an input addition process for adding an edge satisfying a criterion to the second edge as an input edge of the node. The generating device according to claim 1.
前記生成部は、
前記第1グラフにおいて前記入力無ノードに対応するノードに連結される入力エッジのうち、長さが最も短いエッジを、当該ノードの入力エッジとして前記第2エッジに追加する入力追加処理により、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項8に記載の生成装置。
The generator is
Of the input edges connected to the node corresponding to the no-input node in the first graph, the input adding process of adding the shortest edge as the input edge of the node to the second edge The generation apparatus according to claim 8, wherein the second graph to which two edges are added is generated.
前記生成部は、
前記更新処理時において前記入力追加処理を行うことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項8または請求項9に記載の生成装置。
The generator is
10. The generation apparatus according to claim 8, wherein the second graph to which the second edge is added is generated by performing the input addition process at the time of the update process.
前記生成部は、
前記更新処理の繰り返し終了後において前記入力追加処理を行うことにより、前記第2エッジが追加された第2グラフを生成する
ことを特徴とする請求項8または請求項9に記載の生成装置。
The generator is
The generation apparatus according to claim 8 or 9, wherein the second graph to which the second edge is added is generated by performing the input addition processing after the end of the update processing.
コンピュータが実行する生成方法であって、
データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフと、前記複数のノードの情報を含む第2グラフを取得する取得工程と、
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択工程と、
前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択工程と、
前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2グラフを生成する生成工程と、
を含むことを特徴とする生成方法。
A generation method executed by a computer,
A first graph including information on a plurality of nodes to be searched for data and information on a first edge group which is a directed edge group connecting the plurality of nodes; and a first graph including information on the plurality of nodes. An acquisition process for acquiring two graphs;
A first selection step of selecting a first selection node among the plurality of nodes based on the number of output edges whose end points are other nodes in the first graph;
A second selection step of selecting a second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph;
In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the first selection node is set as the start point and the second selection node is set as the end point in the first edge group. Generating the second graph by an update process for adding the output edge to the second graph as the second edge information;
A generation method comprising:
データ検索の対象となる複数のノードの情報と、当該複数のノード間を連結する有向エッジ群である第1エッジ群の情報とを含む第1グラフと、前記複数のノードの情報を含む第2グラフを取得する取得手順と、
前記複数のノードのうち、前記第1グラフにおいて他のノードを終点とする出力エッジの数に基づいて第1選択ノードを選択する第1選択手順と、
前記第1グラフにおいて前記第1選択ノードを始点とする出力エッジが連結される対象ノードのうち、当該出力エッジの長さに基づいて第2選択ノードを選択する第2選択手順と、
前記第2グラフにおいて、前記第1選択ノードを始点とする出力エッジの数が所定の閾値未満である場合、前記第1エッジ群において前記第1選択ノードを始点とし前記第2選択ノードを終点とする出力エッジを前記第2グラフに第2エッジの情報として追加する更新処理により、前記第2グラフを生成する生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。
A first graph including information on a plurality of nodes to be searched for data and information on a first edge group which is a directed edge group connecting the plurality of nodes; and a first graph including information on the plurality of nodes. An acquisition procedure for acquiring two graphs;
A first selection procedure for selecting a first selection node based on the number of output edges whose end points are other nodes in the first graph among the plurality of nodes;
A second selection procedure for selecting a second selection node based on the length of the output edge among the target nodes to which the output edge starting from the first selection node is connected in the first graph;
In the second graph, when the number of output edges starting from the first selection node is less than a predetermined threshold, the first selection node is set as the start point and the second selection node is set as the end point in the first edge group. A generation procedure for generating the second graph by an update process for adding the output edge to the second graph as second edge information;
A program for causing a computer to execute.
JP2018027427A 2018-02-19 2018-02-19 Generation device, generation method, and generation program Active JP6959164B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018027427A JP6959164B2 (en) 2018-02-19 2018-02-19 Generation device, generation method, and generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018027427A JP6959164B2 (en) 2018-02-19 2018-02-19 Generation device, generation method, and generation program

Publications (2)

Publication Number Publication Date
JP2019144780A true JP2019144780A (en) 2019-08-29
JP6959164B2 JP6959164B2 (en) 2021-11-02

Family

ID=67772520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018027427A Active JP6959164B2 (en) 2018-02-19 2018-02-19 Generation device, generation method, and generation program

Country Status (1)

Country Link
JP (1) JP6959164B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11894944B2 (en) 2019-12-31 2024-02-06 Johnson Controls Tyco IP Holdings LLP Building data platform with an enrichment loop
US12021650B2 (en) 2019-12-31 2024-06-25 Tyco Fire & Security Gmbh Building data platform with event subscriptions
WO2021138245A1 (en) 2019-12-31 2021-07-08 Johnson Controls Technology Company Building data platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015075960A (en) * 2013-10-09 2015-04-20 新日鉄住金ソリューションズ株式会社 Graph generating device, graph generating method, and graph generating program
JP2015170062A (en) * 2014-03-06 2015-09-28 日本電信電話株式会社 Document set analyzer, document set analysis method, and document set analysis program
JP2017021493A (en) * 2015-07-08 2017-01-26 ヤフー株式会社 Modified k-nearest neighbor graph generation device and method for operating modified k-nearest neighbor graph generation device
JP2017117049A (en) * 2015-12-22 2017-06-29 株式会社神戸製鋼所 Method and device for physical distribution management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015075960A (en) * 2013-10-09 2015-04-20 新日鉄住金ソリューションズ株式会社 Graph generating device, graph generating method, and graph generating program
JP2015170062A (en) * 2014-03-06 2015-09-28 日本電信電話株式会社 Document set analyzer, document set analysis method, and document set analysis program
JP2017021493A (en) * 2015-07-08 2017-01-26 ヤフー株式会社 Modified k-nearest neighbor graph generation device and method for operating modified k-nearest neighbor graph generation device
JP2017117049A (en) * 2015-12-22 2017-06-29 株式会社神戸製鋼所 Method and device for physical distribution management

Also Published As

Publication number Publication date
JP6959164B2 (en) 2021-11-02

Similar Documents

Publication Publication Date Title
CN111460311A (en) Search processing method, device and equipment based on dictionary tree and storage medium
JP6959164B2 (en) Generation device, generation method, and generation program
JP7080803B2 (en) Information processing equipment, information processing methods, and information processing programs
JP6311000B1 (en) Generating device, generating method, and generating program
JP6705764B2 (en) Generation device, generation method, and generation program
JP7353737B2 (en) Information processing device, information processing method, and information processing program
JP6976178B2 (en) Extractor, extraction method, and extraction program
JP6293335B1 (en) Generating device, generating method, and generating program
JP7273609B2 (en) Information processing device, information processing method, and information processing program
JP7121706B2 (en) Information processing device, information processing method, and information processing program
JP2018206084A (en) Database management system and database management method
JP6498266B2 (en) Generating device, generating method, and generating program
JP7330756B2 (en) Information processing device, information processing method, and information processing program
JP5383776B2 (en) Graph index update device
JP6974248B2 (en) Information processing equipment, information processing methods, and information processing programs
JP2022153632A (en) Information processing device, information processing method, and information processing program
JP7388661B2 (en) Information processing device, information processing method, and information processing program
JP7122293B2 (en) Information processing device, information processing method, and information processing program
JP7041530B2 (en) Display program, display method, and display device
JP7130019B2 (en) Information processing device, information processing method, and information processing program
JP7239433B2 (en) Information processing device, information processing method, and information processing program
JP7208955B2 (en) Information processing device, information processing method, information processing program, information retrieval device, information retrieval method, and information retrieval program
JP2024071095A (en) Information processing apparatus, information processing method, and information processing program
JP2019159965A (en) Information processor, information processing method and program
JP2019159806A (en) Information processor, information processing method and program

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210921

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211007

R150 Certificate of patent or registration of utility model

Ref document number: 6959164

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350