JP2017509043A - グラフデータクエリ方法および装置 - Google Patents

グラフデータクエリ方法および装置 Download PDF

Info

Publication number
JP2017509043A
JP2017509043A JP2016543687A JP2016543687A JP2017509043A JP 2017509043 A JP2017509043 A JP 2017509043A JP 2016543687 A JP2016543687 A JP 2016543687A JP 2016543687 A JP2016543687 A JP 2016543687A JP 2017509043 A JP2017509043 A JP 2017509043A
Authority
JP
Japan
Prior art keywords
vertex
partition
query
layer number
candidate
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
JP2016543687A
Other languages
English (en)
Other versions
JP6243045B2 (ja
Inventor
国位 黄
国位 黄
友▲亮▼ ▲顔▼
友▲亮▼ ▲顔▼
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017509043A publication Critical patent/JP2017509043A/ja
Application granted granted Critical
Publication of JP6243045B2 publication Critical patent/JP6243045B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

Landscapes

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

Abstract

グラフデータクエリ方法および装置が開示される。方法は、クエリ頂点の区画番号および層番号を取得するステップと、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用するステップと、その区画番号および層番号が候補区画番号および候補層番号のあらゆるグループを満たす頂点を使用することによって候補セットを形成するステップと、クエリ条件に従って候補セットにおいてグラフデータクエリを行うステップとを含む。解決法を使用することによって、グラフデータクエリ効率が向上される。

Description

本発明は、データ処理技術の分野におけるグラフデータクエリ技術の分野に関し、より詳細には、グラフデータクエリ方法および装置に関する。
ソーシャルネットワーク、ワールドワイドウェブ、通信ネットワークなどの急速な発展で、グラフデータに基づく組織化およびクエリ技術が出現してきた。データ容量が比較的大きい場合、グラフデータはまた、ビッググラフデータと呼ぶこともできる。
グラフデータのセットは、グラフデータ全体セットと呼ばれることがあり、グラフデータ全体セットは普通、多数の頂点、および接続関係を有する各2つの頂点の間の辺を含む。実際のアプリケーションシナリオによると、頂点は対応する物理的意味を示すことがある。例えば、ソーシャルネットワークでは、頂点はユーザを示し、頂点のグラフデータは、名前、性別、年齢、友人リストなどの、頂点によって示されたユーザの様々な属性データを含むことができ、接続関係を有する2つの頂点では、辺が2つの頂点の間に作り出され、辺は2つの頂点によって示されるユーザが友人であることを示すことができる。別の例では、マップにおいては、頂点は地理的位置を示し、頂点のグラフデータは、位置名、位置座標などの、頂点によって示される地理的位置の様々な属性データを含むことができ、接続関係を有する2つの頂点では、辺は2つの頂点の間に作り出されるのであり、辺は、2つの頂点によって示される地理的位置の間の直接経路があること、すなわち、一方の頂点は、他方の頂点を通過することなく他の頂点から接続され得ることを示すことができる。
グラフデータの実際のアプリケーションでは、グラフデータはしばしば、予測グラフデータを取得するためにクエリされる必要がある。例えば、ソーシャルネットワークでは、特定のユーザの関連グラフデータがクエリされることが可能であり、または特定のユーザとの友人関係を有するユーザが、クエリ条件に従ってクエリされることが可能であり。別の例では、マップにおいて、2つの地理的位置の間の最短経路をクエリすることが可能である。
しかし、グラフデータ全体セットのデータ容量が大きくなると、各グラフデータクエリはグラフデータ全体セットに含まれる全てのグラフデータに基づいているので、クエリ効率が低くなる。
クエリ効率を向上させるために、グラフデータを組織化するいくつかの解決法は、従来技術で生じた。これらの解決法では、区画化アルゴリズムは普通、グラフデータを組織化するために使用される、すなわち、グラフデータ全体セット内の全てのグラフデータは、別個の記憶および計算の多数の区画に分割される。
しかし、区画化はグラフデータ上で行われるが、いくつかのクエリ要件、例えば距離関連クエリ要件では、クエリはまだ、クエリ結果の精度が保証されるように、グラフデータ全体セットに基づいて行われる必要がある。この場合、比較的低いクエリ効率の問題が依然として存在する。
本発明の実施形態は、グラフデータクエリ効率が比較的低いという従来技術の問題を解決するように、グラフデータクエリ方法および装置を提供する。
第1の態様によると、グラフデータクエリ方法が提供され、これは、グラフデータ全体セットにおけるグラフデータのクエリに適用され、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用され、方法は、
クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するステップと、
クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップ、およびそれらを候補区画番号および候補層番号として使用するステップであって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である、ステップと、
その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するステップと、
クエリ条件に従って候補セットにおいてグラフデータクエリを行うステップと
を含む。
第1の態様を参照し、第1の可能な実装方式では、頂点が置かれている区画の区画境界に到達することができない頂点の層番号がデフォルト層番号であり、デフォルト層番号は、頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なり、
クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップの前に、方法は、
クエリ頂点の層番号がデフォルト層番号であるかどうかを決定するステップ、および、決定するステップの結果が、クエリ頂点の層番号がデフォルト層番号でないことである場合、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップをトリガするステップ
をさらに含むか、または、
方法は、
クエリ頂点の層番号がデフォルト層番号である場合、その区画番号がクエリ頂点の区画番号であり、その層番号がデフォルト層番号である頂点を使用することによって候補セットを形成するステップと、
クエリ条件に従って候補セットにおいてグラフデータクエリを行うステップと
をさらに含む。
第1の態様を参照し、第2の可能な実装方式では、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有する場合、または辺のどれもが重みを有しない場合、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点と頂点が置かれている区画の区画境界との間の最小ホップカウントであり、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、
接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有するのではない場合、頂点と頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、頂点と頂点が置かれている区画の区画境界との間の最短距離として使用され、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、経路に含まれる辺の重みの総和である。
第1の態様を参照し、第3の可能な実装方式では、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップは、
クエリ頂点の区画番号および層番号に基づいて、およびクエリ条件によって示される候補頂点とクエリ頂点との間の距離に従って、候補頂点の区画番号および層番号を決定するステップ
を具体的に含む。
第1の態様の第3の可能な実装方式を参照し、第4の可能な実装方式では、グラフデータ全体セットにおける複数の頂点に対して辺切断区画化が予め行われ、区画境界が頂点を含まず、別の区画と交差する辺を有する頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を決定するステップは、
最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定するステップ、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定するステップ、および、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定するステップ、または、
最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定するステップ、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定するステップ、および、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定するステップ、および、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算し、次いで1を減算することによって得られる値との間の最小値を決定するステップ、および、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定するステップ
を具体的に含む。
第1の態様の第3の可能な実装方式を参照し、第5の可能な実装方式では、グラフデータ全体セットにおける複数の頂点に対して頂点切断区画化が予め行われ、区画境界が頂点を含み、区画境界上の頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を決定するステップは、
最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定するステップ、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定するステップ、および、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定するステップ、または、
最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定するステップ、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定するステップ、およびゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定するステップ、および、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算することによって得られる値との間の最小値を決定するステップ、および、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定するステップ
を具体的に含む。
第1の態様を参照し、第6の可能な実装方式では、クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するステップは、
クエリ条件を取得し、クエリ条件が、第1のクエリ頂点と第2のクエリ頂点との間の最短経路がクエリされる必要があることを示す場合、第1のクエリ頂点の区画番号および層番号ならびに第2のクエリ頂点の区画番号および層番号を取得するステップ
を具体的に含み、
クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップは、
第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定するステップ、および、第1のクエリ頂点の層番号から第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号として決定するステップ、または、
第1のクエリ頂点および第2のクエリ頂点が異なる区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定するステップ、第1のクエリ頂点が置かれている区画について、ゼロから第1のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第1のクエリ頂点の区画番号と同じグループに属する層番号として、決定するステップ、および、第2のクエリ頂点が置かれている区画について、ゼロから第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第2のクエリ頂点の区画番号と同じグループに属する層番号として、決定するステップ
を具体的に含む。
第1の態様の第6の可能な実装方式を参照し、第7の可能な実装方式では、方法は、クエリ条件に従って、必要とされるグラフデータが候補セットにおいて見出されない場合、拡張された候補セットを得るように候補セットに含まれる層番号区間を拡張するステップと、
クエリ条件に従って拡張された候補セットにおいてグラフデータクエリを行うステップと
をさらに含む。
第1の態様を参照し、第8の可能な実装方式では、グラフデータ全体セットにおけるグラフデータがファイルシステムに保存されている場合、複数の頂点の区画番号および層番号が1つのファイルに保存され、同じ区画番号および層番号を有する頂点のグラフデータが1つのファイルに保存され、異なる区画番号および層番号を有する頂点のグラフデータが異なるファイルに保存される。
第1の態様、第1の態様の第1の可能な実装方式、第1の態様の第2の可能な実装方式、第1の態様の第3の可能な実装方式、第1の態様の第4の可能な実装方式、第1の態様の第5の可能な実装方式、第1の態様の第6の可能な実装方式、第1の態様の第7の可能な実装方式または第1の態様の第8の可能な実装方式を参照し、第9の可能な実装方式では、クエリ条件に従って候補セットにおいてグラフデータクエリを行うステップは、
候補セットに含まれる頂点のグラフデータをメモリにロードするステップと、
クエリ条件に従って、候補セットに含まれる頂点のグラフデータであり、メモリにキャッシュされているグラフデータに対してグラフデータクエリを行うステップと
を具体的に含む。
第2の態様によると、グラフデータクエリ装置が提供され、これは、グラフデータ全体セットにおけるグラフデータのクエリに適用され、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用され、クエリ装置は、
クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するように構成された取得ユニットと、
クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用するように構成された第1の決定ユニットであって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である、第1の決定ユニットと、
その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するように構成された第2の決定ユニットと、
クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたクエリユニットと
を含む。
第2の態様を参照し、第1の可能な実装方式では、頂点が置かれている区画の区画境界に到達することができない頂点の層番号がデフォルト層番号であり、デフォルト層番号は、頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なり、
第1の決定ユニットは、クエリ条件によって示される候補頂点の区画番号および層番号を決定する前に、クエリ頂点の層番号がデフォルト層番号であるかどうかを決定し、決定することの結果が、クエリ頂点の層番号がデフォルト層番号でないことである場合、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップをトリガするようにさらに構成され、
第2の決定ユニットは、クエリ頂点の層番号がデフォルト層番号である場合、その区画番号がクエリ頂点の区画番号であり、その層番号がデフォルト層番号である頂点を使用することによって候補セットを形成するようにさらに構成される。
第2の態様を参照し、第2の可能な実装方式では、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有する場合、または辺のどれもが重みを有しない場合、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点と頂点が置かれている区画の区画境界との間の最小ホップカウントであり、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、
接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有するのではない場合、頂点と頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、頂点と頂点が置かれている区画の区画境界との間の最短距離として使用され、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、経路に含まれる辺の重みの総和である。
第2の態様を参照し、第3の可能な実装方式では、第1の決定ユニットは、クエリ頂点の区画番号および層番号に基づいて、およびクエリ条件によって示される候補頂点とクエリ頂点との間の距離に従って、候補頂点の区画番号および層番号を決定するように具体的に構成される。
第2の態様の第3の可能な実装方式を参照し、第4の可能な実装方式では、グラフデータ全体セットにおける複数の頂点に対して辺切断区画化が予め行われ、区画境界が頂点を含まず、別の区画と交差する辺を有する頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
第1の決定ユニットは、
クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、
最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、
最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算し、次いで1を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定する
ように具体的に構成される。
第2の態様の第3の可能な実装方式を参照し、第5の可能な実装方式では、グラフデータ全体セットにおける複数の頂点に対して頂点切断区画化が予め行われ、区画境界が頂点を含み、区画境界上の頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
第1の決定ユニットは、
クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、
最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、
最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定する
ように具体的に構成される。
第2の態様を参照し、第6の可能な実装方式では、取得ユニットは、クエリ条件を取得し、クエリ条件が、第1のクエリ頂点と第2のクエリ頂点との間の最短経路がクエリされる必要があることを示す場合、第1のクエリ頂点の区画番号および層番号ならびに第2のクエリ頂点の区画番号および層番号を取得するように具体的に構成され、
第1の決定ユニットは、第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点の層番号から第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号として決定する、または、
第1のクエリ頂点および第2のクエリ頂点が異なる区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点が置かれている区画について、ゼロから第1のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第1のクエリ頂点の区画番号と同じグループに属する層番号として、決定し、第2のクエリ頂点が置かれている区画について、ゼロから第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第2のクエリ頂点の区画番号と同じグループに属する層番号として、決定する
ように具体的に構成される。
第2の態様の第6の可能な実装方式を参照し、第7の可能な実装方式では、第2の決定ユニットは、クエリユニットが、クエリ条件に従って、必要とされるグラフデータを候補セットにおいて見出さない場合、拡張された候補セットを得るように候補セットに含まれる層番号区間を拡張するようにさらに構成され、
クエリユニットは、クエリ条件に従って拡張された候補セットにおいてグラフデータクエリを行うようにさらに構成される。
第2の態様を参照し、第8の可能な実装方式では、グラフデータ全体セットにおけるグラフデータがファイルシステムに保存されている場合、複数の頂点の区画番号および層番号が1つのファイルに保存され、同じ区画番号および層番号を有する頂点のグラフデータが1つのファイルに保存され、異なる区画番号および層番号を有する頂点のグラフデータが異なるファイルに保存される。
第2の態様、第2の態様の第1の可能な実装方式、第2の態様の第2の可能な実装方式、第2の態様の第3の可能な実装方式、第2の態様の第4の可能な実装方式、第2の態様の第5の可能な実装方式、第2の態様の第6の可能な実装方式、第2の態様の第7の可能な実装方式または第2の態様の第8の可能な実装方式を参照し、第9の可能な実装方式では、クエリユニットは、候補セットに含まれる頂点のグラフデータをメモリにロードし、クエリ条件に従って、候補セットに含まれる頂点のグラフデータであり、メモリにキャッシュされているグラフデータに対してグラフデータクエリを行うように具体的に構成される。
第3の態様によると、クエリサーバが提供され、これは、グラフデータ全体セットにおけるグラフデータのクエリに適用され、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用され、クエリサーバは、
クエリ条件を受信するように構成されたインターフェースと、
クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得し、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用し、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点であり、その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成し、クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたプロセッサと、
グラフデータをグラフデータ全体セットに保存し、複数の頂点の区画番号と層番号をグラフデータ全体セットに保存するように構成された記憶装置と
を具体的に含む。
第3の態様を参照し、第1の可能な実装方式では、頂点が置かれている区画の区画境界に到達することができない頂点の層番号がデフォルト層番号であり、デフォルト層番号は、頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なり、
プロセッサは、クエリ条件によって示される候補頂点の区画番号および層番号を決定する前に、クエリ頂点の層番号がデフォルト層番号であるかどうかを決定し、決定することの結果が、クエリ頂点の層番号がデフォルト層番号でないことである場合、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップをトリガし、または、クエリ頂点の層番号がデフォルト層番号である場合、その区画番号がクエリ頂点の区画番号であり、その層番号がデフォルト層番号である頂点を使用することによって候補セットを形成し、クエリ条件に従って候補セットにおいてグラフデータクエリを行うようにさらに構成される。
第3の態様を参照し、第2の可能な実装方式では、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有する場合、または辺のどれもが重みを有しない場合、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点と頂点が置かれている区画の区画境界との間の最小ホップカウントであり、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、
接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有するのではない場合、頂点と頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、頂点と頂点が置かれている区画の区画境界との間の最短距離として使用され、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、経路に含まれる辺の重みの総和である。
第3の態様を参照し、第3の可能な実装方式では、プロセッサは、クエリ頂点の区画番号および層番号に基づいて、およびクエリ条件によって示される候補頂点とクエリ頂点との間の距離に従って、候補頂点の区画番号および層番号を決定するように具体的に構成される。
第3の態様の第3の可能な実装方式を参照し、第4の可能な実装方式では、グラフデータ全体セットにおける複数の頂点に対して辺切断区画化が予め行われ、区画境界が頂点を含まず、別の区画と交差する辺を有する頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
プロセッサは、
クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、
最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、
最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算し、次いで1を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定する
ように具体的に構成される。
第3の態様の第3の可能な実装方式を参照し、第5の可能な実装方式では、グラフデータ全体セットにおける複数の頂点に対して頂点切断区画化が予め行われ、区画境界が頂点を含み、区画境界上の頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
プロセッサは、
クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、
最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、
最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定する
ように具体的に構成される。
第3の態様を参照し、第6の可能な実装方式では、プロセッサは、クエリ条件を取得し、クエリ条件が、第1のクエリ頂点と第2のクエリ頂点との間の最短経路がクエリされる必要があることを示す場合、第1のクエリ頂点の区画番号および層番号ならびに第2のクエリ頂点の区画番号および層番号を取得し、第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点の層番号から第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号として決定し、または、第1のクエリ頂点および第2のクエリ頂点が異なる区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点が置かれている区画について、ゼロから第1のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第1のクエリ頂点の区画番号と同じグループに属する層番号として、決定し、第2のクエリ頂点が置かれている区画について、ゼロから第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第2のクエリ頂点の区画番号と同じグループに属する層番号として、決定するように具体的に構成される。
第3の態様の第6の可能な実装方式を参照し、第7の可能な実装方式では、プロセッサは、クエリ条件に従って、必要とされるグラフデータを候補セットにおいて見出さない場合、拡張された候補セットを得るように候補セットに含まれる層番号区間を拡張し、およびクエリ条件に従って拡張された候補セットにおいてグラフデータクエリを行うようにさらに構成される。
第3の態様を参照し、第8の可能な実装方式では、記憶装置は、グラフデータ全体セットにおけるグラフデータをファイルシステムに保存し、複数の頂点の区画番号および層番号を1つのファイルに保存し、同じ区画番号および層番号を有する頂点のグラフデータを1つのファイルに保存し、異なる区画番号および層番号を有する頂点のグラフデータを異なるファイルに保存するように具体的に構成される。
第3の態様、第3の態様の第1の可能な実装方式、第3の態様の第2の可能な実装方式、第3の態様の第3の可能な実装方式、第3の態様の第4の可能な実装方式、第3の態様の第5の可能な実装方式、第3の態様の第6の可能な実装方式、第3の態様の第7の可能な実装方式または第3の態様の第8の可能な実装方式を参照し、第9の可能な実装方式では、プロセッサは、候補セットに含まれる頂点のグラフデータをメモリにロードし、クエリ条件に従って、候補セットに含まれる頂点のグラフデータであり、メモリにキャッシュされているグラフデータに対してグラフデータクエリを行うように具体的に構成される。
本発明の利益となる効果は以下を含む。
本発明の実施形態で提供される解決策において、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用される。グラフデータクエリが頂点の区画番号および層番号に基づいて行われる場合、クエリ頂点の区画番号および層番号が最初に取得され、クエリ条件によって示された候補頂点の区画番号および層番号は、候補区画番号および候補層番号としてクエリ頂点の区画番号および層番号に基づいて決定され、その区画番号および層番号が候補区画番号および候補層番号のあらゆるグループを満たす頂点を使用することによって候補セットを形成し、グラフデータクエリが、クエリ条件に従って候補セットにおいて行われる。候補セットは、クエリ条件に従って、ならびに頂点の予め分割された区画および層、およびグラフデータ全体セットのデータ容量より少ない候補セットのデータ容量に基づいて、グラフデータ全体セットから選択される。したがって、候補セットにおいてグラフデータクエリを行うことにより、グラフデータクエリ効率が向上する。
このアプリケーションの追加の特性および利点は、以下の明細書に記載され、部分的に、明細書により明らかになる、または本出願の実施により習得される。本出願の目的および追加の利点は、記載された明細書、特許請求の範囲、および添付の図面で特に特定された構造を使用することによって実施され、得ることができる。
添付の図面は、本発明をさらに理解するために使用され、明細書の一部を構成し、本発明の実施形態と共に本発明を説明するために使用され、これは本発明を限定するものではない。
本発明の実施形態によるグラフデータクエリ方法のフローチャートである。 本発明の実施形態1によるグラフデータ全体セット内のグラフデータを組織化するフローチャートである。 本発明の実施形態1による辺切断区画化を行った区画化結果の略図である。 本発明の実施形態1による頂点切断区画化を行った区画化結果の略図である。 辺切断区画化が本発明の実施形態1による頂点上で行われた後に、図3の頂点上で階層化を行った結果の略図である。 頂点切断区画化が本発明の実施形態1による頂点上で行われた後に、図4の頂点上で階層化を行った結果の略図である。 本発明の実施形態1により頂点が再付番された後に得られた略構造図である。 本発明の実施形態2によるグラフデータクエリ方法のフローチャートである。 本発明の実施形態3によるグラフデータクエリ方法のフローチャートである。 本発明の実施形態4による候補セットにおいてグラフデータクエリを行うフローチャートである。 本発明の実施形態5によるグラフデータクエリ装置の略構造図である。 本発明の実施形態6によるクエリサーバの略構造図である。
グラフデータクエリ効率を良くするための実施解決法を与えるために、本発明の実施形態は、グラフデータクエリ方法および装置を提供する。本明細書の添付の図面を参照して、本発明の例示的実施形態を以下に説明する。本明細書に記載された例示的実施形態は、単に本発明を記載および説明するために使用され、本発明を限定することを意図したものではないことを理解されたい。本出願の実施形態、および実施形態における特性は、互いに矛盾しない場合には互いに組み合わせてもよい。
本発明の実施形態は、グラフデータ全体セットにおけるグラフデータのクエリに適用されるグラフデータクエリ方法を提供し、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用される。図1に示すように、方法は以下を含む。
ステップ101.クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得する。
ステップ102.クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップ、およびそれらを候補区画番号および候補層番号として使用するステップであって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である。
ステップ103.その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成する。
ステップ104.クエリ条件に従って候補セットにおいてグラフデータクエリを行う。
実際の応用例では、隔離頂点とも呼ばれる、グラフデータ全体セット内にいくつかの遊離頂点がある可能性がある、すなわち、これらの頂点は、頂点が置かれている区画の区画境界に接続することができない。これらの頂点がグラフデータ全体セットに存在する場合、これらの頂点の各層番号はさらに、デフォルト層番号として決定され、デフォルト層番号は、頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なる。
これに応じて、前述の図1に示す方法では、クエリ条件によって示される候補頂点の区画番号および層番号を決定する前述のステップ102の前に、クエリ頂点の層番号がデフォルト層番号であるかどうかが最初に決定されることが可能である。クエリ頂点の層番号がデフォルト層番号でない場合、前述のステップ102がトリガされる。あるいは、その区画番号がクエリ頂点の区画番号であり、その層番号がデフォルト層番号である頂点を使用することによって候補セットが形成されることが可能であり、クエリ条件に従って候補セットにおいてグラフデータクエリが行われる。したがって、グラフデータ全体セットにおける遊離頂点のグラフデータのクエリが実施される。
本発明の実施形態では、新しいグラフデータ組織化方法が提供される。すなわち、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われ、グラフデータ組織化方法を行った結果に基づいてグラフデータクエリを行うように、各頂点の区画番号および層番号が決定される。
以下にまず、添付の図面を参照して、本発明の実施形態で提供されたグラフデータ組織化方法を詳細に説明する。
実施形態1
図2は、以下の処理ステップを具体的に含む、本発明の実施形態1によるグラフデータ全体セット内のグラフデータを組織化するフローチャートである。
ステップ201.グラフデータ全体セットに含まれる複数の頂点で区画化を行う。
区画化アルゴリズムは、辺切断区画化(edge−cut)である、または頂点切断区画化(vertex−cut)である可能性がある。以下で別に、2つの区画化アルゴリズムを説明する。
辺切断区画化:図3に示すように、区画化は、頂点0から頂点9上で行われる。頂点0から頂点9の頂点間の関係が、図3に示され、2つの頂点間の接続ラインは、2つの頂点間の辺を示す。
図3に示すように、辺切断区画化は、頂点間の辺が区画境界を使用して切断されることを意味する。切断後、頂点0、頂点1、頂点2、頂点6、および頂点7は、区画0とも呼ばれる同じ区画に置かれる、すなわち、区画番号が0である。頂点3、頂点4、頂点5、頂点8、および頂点9は、区画1とも呼ばれる他の区画に置かれる、すなわち、区画番号が1である。
頂点切断区画化:図4に示すように、図3と同じように、頂点0から頂点9上で区画化が行われる。
図4に示すように、頂点切断区画化は、区画境界を使用することによって頂点が切断されることを意味する。切断後、切断される頂点は、切断境界の2側部のあらゆる区画に属することができ、例えば、頂点0、頂点1、頂点2、頂点6、および頂点7は、区画0とも呼ばれる同じ区画に置かれる、すなわち、区画番号が0である。頂点3、頂点4、頂点5、頂点8、および頂点9は、区画1とも呼ばれる他の区画に置かれる、すなわち、区画番号が1である。
ステップ202.グラフデータ全体セットに含まれる複数の頂点が区画化された後、各区画に含まれる頂点上で階層化を行い、同じ層で、頂点が置かれている区画の区画境界に対して同じ最短距離を有する頂点を配置し、最短距離は層番号として使用される。
本発明の本実施形態では、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有する場合、または辺のどれもが重みを有しない場合、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点と頂点が置かれている区画の区画境界との間の最小ホップカウントであり得、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有するのではない場合、頂点と頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、頂点と頂点が置かれている区画の区画境界との間の最短距離として使用され、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、経路に含まれる辺の重みの総和である。
実際の応用例、いくつかの応用例シナリオでは、2つの頂点間の関係は、2つの頂点が接続関係を有することを示すだけでよく、この場合、重みは2つの頂点間の辺に対して設定されていないことがあり、または同じ重みが各辺に対して設定されていないことがある。例えば、ソーシャルネットワークでは、辺は、2つの頂点によって示される2人のユーザが友人関係を有することを示すだけであり、重みは設定されないことがある。しかし、いくつかの応用例シナリオでは、2つの頂点が接続関係を有することを示すことに加えて、2つの頂点間の関係はさらに、接続度を示すことがあり、この場合、重みは2つの頂点間の辺に対して設定されること可能であり、異なる重みは異なる接続度を示す。例えば、マップでは、辺は2つの頂点によって示される地理的位置間の直接経路があることを示し、辺のより大きな重みはより長い経路を示す。例えば、対応する重みが経路長さ範囲に従って決定される場合、同じ範囲内の経路長さは、同じ対応する重みを有する。
説明を容易にするため、また本応用例の解決法の明確な理解を容易にするために、ステップでは、接続関係を有する各2つの頂点間の辺に重みがない例は、階層化結果を説明するために使用される。
図5に示すように、図5は、辺切断区画化が頂点0から頂点9上で行われた後に、図3における頂点0から頂点9上で階層化を行った結果の略図である。別の区画を交差する辺を有する頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロである、すなわち、頂点2、頂点7、頂点3、および頂点8の層番号がゼロである。頂点6および頂点9それぞれから区画境界までのホップカウントが1である、すなわち、層番号が1である。頂点0、頂点1、および頂点4それぞれと、区画境界との間のホップカウントが2である、すなわち、層番号が2である。頂点5と区画境界との間のホップカウントが3である、すなわち、層番号が3である。
図6に示すように、図6は、頂点切断区画化が頂点0から頂点9上で行われた後に、図4における頂点0から頂点9上で階層化を行った略構造図である。区画境界上の頂点と、頂点が置かれている区画の区画化境界との間の最短距離がゼロである、すなわち、頂点2と頂点8の層番号が0である。頂点6、頂点7、頂点3、および頂点9それぞれと、区画境界との間のホップカウントが1である、すなわち、層番号が1である。頂点0、頂点1、および頂点4それぞれと、区画境界との間のホップカウントが2である、すなわち、層番号が2である。頂点5と区画境界との間のホップカウントが3である、すなわち、層番号が3である。
ステップ203.グラフデータ全体セット内の頂点上で区画化および階層化を行った後に、グラフデータ全体セットに含まれる頂点の区画および層情報、すなわち、各頂点の区画番号および層番号を保存し、任意選択では、区画化および階層化結果に基づいてグラフデータ全体セット内のグラフデータを保存する、すなわち、異なる区画および異なる層にある頂点のグラフデータを別に保存する。
例えば、グラフデータ全体セット内のグラフデータが、分配ファイルシステム(HDFS、Hadoop Distributed File System)などのファイルシステムに保存された場合、複数の頂点の区画および層情報(区画番号および層番号)は独立したファイルに保存されることが可能であり、同じ区画番号および層番号を有する頂点のグラフデータは独立したファイルに保存され、異なる区画番号および層番号を有する頂点のグラフデータは異なるファイルに保存される。
別の例では、グラフデータがグラフデータベースに保存される場合、複数の頂点の区画および層情報は、データベース内にテーブルの形で保存されることが可能である。
別の例では、グラフデータ間の隣接関係を示すためにマトリックスが使用される場合、従来技術におけるGBASEデータベースシステムなどのシステム、すなわち、スケーラブル汎用グラフデータ管理システムは、グラフデータのクエリをマトリックスの演算に変換することができる。この場合、図3または図4に示す未処理オリジナルグラフに対応するマトリックスは、以下の通りに示される。
Figure 2017509043
要素(m,n)が1であることは、m番目の頂点とn番目の頂点との間に接続関係があることを示している。
区画化および階層化が、前述のステップを使用することによって複数の頂点上で行われた後に、頂点は、マトリックス内の同じ層における頂点を連続的に示すように再付番されることが可能である。再付番の方法では、同じ層にある頂点が連続的に付番され、隣接する区画にある頂点が連続して付番される。再付番の結果が、図7に示され、再付番後に得られた対応するマトリックスは、以下のように示される。
Figure 2017509043
このステップでは、異なる区画および異なる層にある頂点のグラフデータは別に保存され、それによって、その後のグラフデータクエリプロセスでは、候補セットに含まれる頂点のグラフデータがより便利に取得されることが可能である。したがって、グラフデータクエリ効率がさらに向上される。
本発明の実施形態1では、グラフデータ全体セットに含まれる頂点が2つの区画に分割される例が、グラフデータ全体セット内のグラフデータを組織化する解決法を説明するために使用される。実際の応用例では、グラフデータ全体セットに含まれる頂点はまた、より多くの区画に分割されることが可能であり、本発明の本実施形態で提供されるグラフデータクエリ方法にも適用可能である。
本発明の本実施形態では、グラフデータ全体セットのグラフデータが、前述の実施形態1に示す手順を使用することによって組織化された後に、すなわち、区画化および階層化が頂点で行われ、グラフデータが保存された後に、グラフデータクエリが結果に基づいて行われる。
グラフデータクエリが行われる場合、対応するクエリ手順が、異なるクエリ条件に従って使用されることが可能である。例えば、クエリ条件が候補頂点とクエリ頂点との間の距離を示すことができる場合、以下の実施形態2に示した手順を使用して、クエリを行うことができる。
実施形態2
本発明の実施形態2では、グラフデータクエリが行われるクエリ条件は、クエリ頂点、および候補頂点とクエリ頂点との間の距離を示すことができ、候補頂点は、クエリにより、頂点がクエリ条件を満たすかどうかを決定する必要がある頂点である。
例えば、特定の頂点の特定の属性データがクエリされる場合、頂点がクエリ頂点である。別の例では、頂点はユーザを示し、特定の名前の人が特定のユーザの友人の友人であるかどうかがクエリされる。この場合、ユーザに対応する頂点はクエリ頂点であり、候補頂点は、頂点と友人関係を有する頂点、および頂点の友人と友人関係を有する頂点であり、すなわち、候補頂点とクエリ頂点の間の距離が1および2を含む。別の例では、頂点は地理的位置を示し、頂点の属性データがクエリされ、2つの頂点間の距離が予め設定された範囲を満たし、この場合、候補頂点と頂点との間の距離が、予め設定された範囲内の距離を含む。
図8は、以下の処理ステップを具体的に含む、本発明の実施形態2によるグラフデータクエリ方法のフローチャートである。
ステップ801.クエリ頂点の区画番号および層番号を取得する。
クエリ頂点の区画番号および層番号は、クエリ条件から取得されることが可能である。
ステップ802.クエリ頂点の区画番号および層番号に基づいて、およびクエリ条件によって示される候補頂点とクエリ頂点との間の距離に従って、候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用し、候補頂点は、クエリ条件に従ってクエリする必要がある頂点である。
このステップでは、クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示すことができる例が、説明のために使用される。この場合、候補頂点の決定した区画番号および層番号は、複数のグループの区画番号および層番号を含むことができ、同じ区画では、層番号は、辺切断区画化および頂点切断区画化に従って、以下に別に記載した層番号区間に含まれる層番号であってもよい。
方法1:この方法では、辺切断区画化がグラフデータ全体セット内の複数の頂点上で行われ、区画境界は頂点を含まず、別の区画と交差する辺を有する頂点と頂点が置かれている区画の区画境界との間の最短距離がゼロである。
この方法は以下のステップを含む。
ステップa.クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、最大距離Kがクエリ頂点の層番号Lより大きいかどうかをまず決定する。最大距離Kがクエリ頂点の層番号Lよりも大きくない場合、ステップbに進み、最大距離Kがクエリ頂点の層番号Lよりも大きい場合、ステップeに進む。
ステップb.最大距離Kがクエリ頂点の層番号Lよりも大きくない場合、候補頂点の区画番号がクエリ頂点の区画番号であることを決定し、ステップcに進む。
ステップc.クエリ頂点が置かれている区画の最大層番号Lmaxと、クエリ頂点の層番号Lと最大距離Kとを加算することによって得られた値との間の最小値、すなわちmin(L+K,Lmax)を決定し、その後、ステップdに進む。
ステップd.クエリ頂点の層番号Lから最大距離Kを減算することによって得られた値から最小値min(L+K,Lmax)までの閉区間内の層番号、すなわち、区間内の層番号[L−K,min(L+K,Lmax)]を候補頂点の層番号として決定する。
ステップe.最大距離Kがクエリ頂点の層番号Lより大きい場合、候補頂点の区画番号が、クエリ頂点の層番号、およびクエリ頂点が置かれている区画の隣接区画の区画番号であることを決定し、その後、ステップfに進む。
ステップf.クエリ頂点が置かれている区画では、クエリ頂点が置かれている区画内の最大層番号Lmaxと、クエリ頂点の層番号Lと最大距離Kとを加算することによって得られた値との間の最小値、すなわちmin(L+K,Lmax)を決定し、その後、ステップgに進む。
ステップg.ゼロから最小値(L+K,Lmax)までの閉区間内の層番号、すなわち区間内の層番号[0,min(L+K,Lmax)]を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として決定し、その後、ステップhに進む。
ステップh.クエリ頂点が置かれている区画の各隣接区画では、隣接区画の最大層番号Lmaxと、最大距離Kからクエリ頂点の層番号Lを減算し、次いで、1を減算することによって得られた値との間の最小値、すなわちmin(K−L−1,Lmax)を決定し、その後、ステップiに進む。
ステップi.ゼロから最小値min(K−L−1,Lmax)までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号、すなわち区間内の層番号[0,min(K−L−1,Lmax)]として決定する。
方法2:このように、頂点切断区画化がグラフデータ全体セット内の複数の頂点上で行われ、区画境界は頂点を含み、区画境界上の頂点と頂点が置かれている区画の区画境界との間の最短距離がゼロである。
この方法は、以下のステップを含む。
ステップa.クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、最大距離Kがクエリ頂点の層番号Lより大きいかどうかをまず決定する。最大距離Kがクエリ頂点の層番号Lよりも大きくない場合、ステップbに進み、最大距離Kがクエリ頂点の層番号Lよりも大きい場合、ステップeに進む。
ステップb.最大距離Kがクエリ頂点の層番号Lよりも大きくない場合、候補頂点の区画番号がクエリ頂点の区画番号であることを決定し、ステップcに進む。
ステップc.クエリ頂点が置かれている区画の最大層番号Lmaxと、クエリ頂点の層番号Lと最大距離Kとを加算することによって得られた値との間の最小値、すなわちmin(L+K,Lmax)を決定し、その後、ステップdに進む。
ステップd.クエリ頂点の層番号Lから最大距離Kを減算することによって得られた値から最小値min(L+K,Lmax)までの閉区間内の層番号、すなわち区間内の層番号[L−K,min(L+K,Lmax)]を候補頂点の層番号として決定する。
ステップe.最大距離Kがクエリ頂点の層番号Lより大きい場合、候補頂点の区画番号が、クエリ頂点の層番号、およびクエリ頂点が置かれている区画の隣接区画の区画番号であることを決定し、その後、ステップfに進む。
ステップf.クエリ頂点が置かれている区画では、クエリ頂点が置かれている区画内の最大層番号Lmaxと、クエリ頂点の層番号Lと最大距離Kとを加算することによって得られた値との間の最小値、すなわちmin(L+K,Lmax)を決定し、その後、ステップgに進む。
ステップg.ゼロから最小値(L+K,Lmax)までの閉区間内の層番号、すなわち区間内の層番号[0,min(L+K,Lmax)]を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として決定し、その後、ステップhに進む。
ステップh.クエリ頂点が置かれている区画の各隣接区画では、隣接区画の最大層番号Lmaxと、最大距離Kからクエリ頂点の層番号Lを減算することによって得られる値との間の最小値、すなわちmin(K−L,Lmax)を決定し、その後、ステップiに進む。
ステップi.ゼロから最小値min(K−L,Lmax)までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号、すなわち区間内の層番号[0,min(K−L,Lmax)]として決定する。
ステップ803.その区画番号および層番号が候補区画番号および候補層番号のあらゆるグループを満たす頂点を使用することによって候補セットを形成する。
すなわち、前述のステップ802で決定された候補区画番号および候補層番号の各グループに含まれる頂点を使用することによって、候補セットが形成される。
ステップ804.クエリ条件に従って候補セットにおいてグラフデータクエリを行う。
実施形態3
本発明の実施形態3では、グラフデータクエリが行われるクエリ条件は、それぞれ第1のクエリ頂点および第2のクエリ頂点である2つの頂点を示し、クエリ条件は、第1のクエリ頂点と第2のクエリ頂点との間の最短経路をクエリする必要があることを示すことができる。
例えば、2つのアドレス位置間の最短距離がクエリされる。
図9は、以下の処理ステップを具体的に含む、本発明の実施形態3によるグラフデータクエリ方法のフローチャートである。
ステップ901.第1のクエリ頂点の区画番号および層番号、ならびに第2のクエリ頂点の区画番号および層番号を取得する。
第1のクエリ頂点および第2のクエリ頂点のクエリ頂点の区画番号および層番号は、クエリ条件から取得されることが可能である。
ステップ902.第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれているかどうかを決定する。第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれている場合、ステップ903に進み、そうでなければ、ステップ905に進む。
ステップ903.第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれている場合、候補頂点の区画番号が、第1のクエリ頂点および第2のクエリ頂点の区画番号であると決定する。
ステップ904.第1のクエリ頂点の層番号L1から第2のクエリ頂点の層番号L2までの閉区間内の層番号、すなわち、L1がL2より小さいと想定される場合の区間内の層番号[L1,L2]を、候補頂点の層番号として決定する。
ステップ905.第1のクエリ頂点および第2のクエリ頂点が異なる区画に置かれている場合、候補頂点の区画番号が、第1のクエリ頂点および第2のクエリ頂点の区画番号であると決定する。
ステップ906.第1のクエリ頂点が置かれている区画では、ゼロから第1のクエリ頂点の層番号L1までの閉区間内の層番号、すなわち区間内の層番号[0,L1]を、候補頂点の層番号であり、第1のクエリ頂点の区画番号と同じグループに属する層番号として決定する。
ステップ907.第2のクエリ頂点が置かれている区画では、ゼロから第2のクエリ頂点の層番号L2までの閉区間内の層番号、すなわち区間内の層番号[0,L2]を、候補頂点の層番号であり、第2のクエリ頂点の区画番号と同じグループに属する層番号として決定する。
ステップ908.その区画番号および層番号が候補区画番号および候補層番号のあらゆるグループを満たす頂点を使用することによって候補セットを形成する。
すなわち、前述のステップ901からステップ907iで決定された候補区画番号および候補層番号の各グループに対応する頂点を使用することによって、候補セットが形成される。
ステップ909.クエリ条件に従って候補セットにおいてグラフデータクエリを行う。
このステップでは、クエリ結果が得られると、現在のクエリが終了する。
しかし、いくつかの実際の応用例シナリオでは、グラフデータクエリが前述の方法で決定された候補セットで行われる場合に、予測グラフデータは見出されることが不可能である。例えば、第1のクエリ頂点と第2のクエリ頂点との間の距離は見出されることが不可能である。この場合、方法はさらに、以下のステップを含む。
ステップ910.必要とされるグラフデータがクエリ条件に従って現在の候補セット内で見出されない場合、拡張された候補セットを得るために候補セット内に含まれる層番号区間を拡張し、拡張された候補セットを新しい候補セットとして使用する。前述のステップ909に戻り、すなわち、クエリ条件に従って拡張された候補セットにおいてグラフデータクエリを行う。
このステップでは、候補セットに含まれる層番号区間を拡張することは、毎回、予め設定された数の層番号を拡張すること、例えば、毎回、1つの層番号を拡張することであってよい。
確かに、層番号区間の特定の境界値がすでに、特定の境界値が属する区画内の層番号の境界値である場合、この境界値を拡張する必要はない。層番号区間の2つの境界値がさらに拡張されることが不可能である場合、候補セットの範囲は、現在の区画の隣接区画まで拡張されることが可能であり、拡張は、隣接区画の層番号の昇順に従って行われる。
実施形態4
本発明の実施形態4では、グラフデータクエリがクエリ条件に従って候補セットにおいて行われる前述の方法を、詳細に説明する。図10に示すように、方法は以下を含む。
ステップ1001.候補セットに含まれる頂点のグラフデータをメモリにロードする。
このステップでは、候補セットに含まれる頂点のグラフデータを、一度にメモリにロードして、グラフデータロード時間を短くし、それによってグラフデータクエリ効率を良くすることができる。
ステップ1002.クエリ条件に従って、候補セットに含まれる頂点のグラフデータであり、メモリ内でキャッシュされるグラフデータ上でグラフデータクエリを行う。
現在、従来技術ではトリニティシステムと呼ばれるメモリベースグラフデータ管理システムがある。トリニティシステムでは、グラフ内の頂点または辺は、セルとして示され、セルは、運用形態(runtime form)およびバイナリ形態(blob form)を含む2つの形態を有することができる。runtime formのセルは、メモリ内のオブジェクト、すなわち、ロードされたグラフデータとして示され、runtime formのセルは、演算およびクエリのために使用され、比較的大きなメモリ占有率を有する。blob formのセルは、バイナリ形態でオブジェクトとして示され、小さなメモリ占有率を有し、ディスクと直接相互作用することができる。(メモリが不十分またはセルが長時間アクセスされない場合、システムはセルをメモリからディスクに転送(スワップ)することができ、シリアル化を行うのと等しい、blob formにruntime formから変換された後にのみ、セルがディスクに転送されることが可能である。)
従来技術では、グラフデータクエリが、トリニティシステムに基づいて行われる場合、現在の頂点では、現在の頂点のグラフデータがメモリにロードされたかどうかを最初に決定する必要がある。現在の頂点のグラフデータがロードされなかった場合、現在の頂点のグラフデータがメモリにロードされ、現在の頂点のグラフデータがロードされた場合、または現在のロードの後に、現在の頂点のグラフデータの形態がruntime formであるかどうかが決定される。現在の頂点のグラフデータの形態がruntime formでない場合、現在の頂点のグラフデータの形態は、runtime formに変換され、クエリはruntime formのグラフデータに基づいて行われる。
クエリでは、クエリが複数の頂点のグラフデータ上で行われる必要がある場合、前述の手順は、現在クエリされる必要がある頂点が決定される毎に行われる必要がある。したがって、クエリでは、前述の決定ステップは、複数回実行される必要があり、前述のロードおよび変換ステップも、複数回実行される必要があり、それによって比較的低いクエリ効率が生じる可能性がある。
しかし、本発明の本実施形態で提供される解決法では、グラフデータクエリがトリニティシステムに基づいて行われる場合、候補セットが予め決定されているので、候補セットに含まれる頂点のグラフデータは、前述のステップ1001を使用することによって一度にメモリにロードされることが可能であり、候補セットに含まれる頂点のグラフデータの形態は、一度にruntime formに変換される、すなわち、グラフデータがロードされたかどうか、および変換が行われる必要があるかどうかを決定することが避けられ、ロード時間の量が減少し、それによって、グラフデータロード時間が短くなり、さらにグラフデータクエリ効率が良くなる。
現在、従来技術のGBASEデータベースシステムは、スケーラブル汎用グラフデータ管理システムである。GBASEデータベースシステムでは、マトリックスは、グラフデータ間の隣接関係を示すために使用され、グラフデータのクエリまたは演算は、ステージ1(Index Stageステージ)およびステージ2(Query Stageステージ)である2つのステージを含む、マトリックスの演算に変換される。
ステージ1:最初に、グラフデータは表示のためにマトリックスに変換され、その後、クラスタ化、再順序付けなどがグラフデータ上で行われ、次に、ブロック化および圧縮が行われ、最後に、ブロックがファイルシステムに保存される。
ステージ2:最初に、クエリ要求がクエリベクトルに変換され、その後、関連するブロックがクエリタイプに従って読み取られ、候補マトリックスが確立され、次に、結果ベクトルが候補マトリックスをベクトルで掛けることによって得られ、最後に、対応する動作が結果ベクトルに従って行われる。
従来技術におけるGBASEデータベースシステムに基づいてグラフデータクエリを行う解決法では、従来技術を参照することができ、詳細は本明細書では再び説明しない。
しかし、従来技術では、GBASEデータベースシステムに基づいてグラフデータクエリを行う場合に、候補マトリックスが確立されていると、クエリ頂点が置かれている行または列の全てのブロックをロードする必要があるが、いくつかのブロックは明らかに、クエリ条件を満たさない。この場合、ロードされたグラフデータのデータ容量が比較的大きいので、効率はその後のクエリで比較的低い。
しかし、本発明の本実施形態で提供される解決法では、グラフデータクエリがGBASEデータベースシステムに基づいて行われる場合、候補セット内、およびクエリ頂点が置かれている行または列にあるブロックのみがロードされることが可能であり、それによって、ロードされるグラフデータのデータ容量が減少して、データロード処理時間が短くなり、その後のクエリが基づくデータ容量を少なくし、さらに、グラフデータクエリ効率が良くなる。
実施形態5
同発明の概念に基づいて、および本発明の前述の実施形態で提供されたグラフデータクエリ方法に従って、これに応じて、本発明の実施形態5はさらに、グラフデータ全体セット内のグラフデータのクエリに適用されるグラフデータクエリ装置を提供し、グラフデータ全体セットは複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、区画化および階層化が、グラフデータ全体セットにおける複数の頂点上で予め行われ、頂点が置かれている区画の番号は、頂点の区画番号として使用され、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点の層番号として使用される。クエリ装置の略構造図が、図11に示され、クエリ装置は具体的に、クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するように構成された取得ユニット1101と、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用するように構成された第1の決定ユニット1102であって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である、第1の決定ユニット1102と、その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するように構成された第2の決定ユニット1103と、クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたクエリユニット1104とを含む。
さらに、頂点が置かれている区画の区画境界に到達することができない頂点の層番号がデフォルト層番号であり、デフォルト層番号は、頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なり、第1の決定ユニット1102は、クエリ条件によって示される候補頂点の区画番号および層番号を決定する前に、クエリ頂点の番号がデフォルト層番号であるかどうかを決定し、決定することの結果が、クエリ頂点の層番号がデフォルト層番号でないことである場合、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップをトリガするようにさらに構成され、第2の決定ユニット1103は、クエリ頂点の層番号がデフォルト層番号である場合、その区画番号がクエリ頂点の区画番号であり、その層番号がデフォルト層番号である頂点を使用することによって候補セットを形成するようにさらに構成されている。
さらに、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有する場合、または辺のどれもが重みを有しない場合、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点と頂点が置かれている区画の区画境界との間の最小ホップカウントであり、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有するのではない場合、頂点と頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、頂点と頂点が置かれている区画の区画境界との間の最短距離として使用され、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、経路に含まれる辺の重みの総和である。
さらに、第1の決定ユニット1102は、クエリ頂点の区画番号および層番号に基づいて、およびクエリ条件によって示される候補頂点とクエリ頂点との間の距離に従って、候補頂点の区画番号および層番号を決定するように具体的に構成されている。
さらに、グラフデータ全体セットにおける複数の頂点に対して辺切断区画化が予め行われ、区画境界が頂点を含まず、別の区画と交差する辺を有する頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、第1の決定ユニット1102は、クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算し、次いで1を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定するように具体的に構成されている。
さらに、グラフデータ全体セットにおける複数の頂点に対して頂点切断区画化が予め行われ、区画境界が頂点を含み、区画境界上の頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、第1の決定ユニット1102は、クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定するように具体的に構成されている。
さらに、取得ユニット1101は具体的に、クエリ条件を取得し、クエリ条件が、第1のクエリ頂点と第2のクエリ頂点との間の最短経路がクエリされる必要があることを示す場合、第1のクエリ頂点の区画番号および層番号、ならびに第2のクエリ頂点の区画番号および層番号を取得するように構成され、第1の決定ユニット1102は具体的に、第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点の層番号から第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号として決定する、または、第1のクエリ頂点および第2のクエリ頂点が異なる区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点が置かれている区画について、ゼロから第1のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第1のクエリ頂点の区画番号と同じグループに属する層番号として、決定し、第2のクエリ頂点が置かれている区画について、ゼロから第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第2のクエリ頂点の区画番号と同じグループに属する層番号として、決定するように構成されている。
さらに、第2の決定ユニット1103は、クエリユニットが、クエリ条件に従って、必要とされるグラフデータを候補セットにおいて見出さない場合、拡張された候補セットを得るように候補セットに含まれる層番号区間を拡張するようにさらに構成され、クエリユニット1104は、クエリ条件に従って拡張された候補セットにおいてグラフデータクエリを行うようにさらに構成されている。
さらに、グラフデータ全体セットにおけるグラフデータがファイルシステムに保存されている場合、複数の頂点の区画番号および層番号が1つのファイルに保存され、同じ区画番号および層番号を有する頂点のグラフデータが1つのファイルに保存され、異なる区画番号および層番号を有する頂点のグラフデータが異なるファイルに保存される。
さらに、クエリユニット1104は、候補セットに含まれる頂点のグラフデータをメモリにロードし、クエリ条件に従って、候補セットに含まれる頂点のグラフデータであり、メモリにキャッシュされているグラフデータに対してグラフデータクエリを行うように具体的に構成されている。
前述のユニットの機能は、前述の実施形態に示す手順の対応する処理ステップに対応してよく、詳細は本明細書では再び説明しない。
実施形態6
同発明の概念に基づいて、および本発明の前述の実施形態で提供されるグラフデータクエリ方法に従って、これに応じて、本発明の実施形態6は、グラフデータ全体セットにおけるグラフデータのクエリに適用されるクエリサーバであって、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用される。クエリサーバの略構造図が、図12に示され、クエリサーバは具体的に、クエリ条件を受信するように構成されたインターフェース1201と、クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得し、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用するように構成されたプロセッサ1202であって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点であり、その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成し、クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたプロセッサ1202と、グラフデータ全体セットにおけるグラフデータ、ならびにグラフデータ全体セットにおける複数の頂点の区画番号および層番号を保存するように構成された記憶装置1203を含む。
さらに、頂点が置かれている区画の区画境界に到達することができない頂点の層番号がデフォルト層番号であり、デフォルト層番号は、頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なり、プロセッサ1202はさらに、クエリ条件によって示される候補頂点の区画番号および層番号を決定する前に、クエリ頂点の層番号がデフォルト層番号であるかどうかを決定し、決定することの結果が、クエリ頂点の層番号がデフォルト層番号でないことである場合、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップをトリガするように構成されている、またはクエリ頂点の層番号がデフォルト層番号である場合、その区画番号がクエリ頂点の区画番号であり、その層番号がデフォルト層番号である頂点を使用することによって候補セットを形成し、クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されている。
さらに、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有する場合、または辺のどれもが重みを有しない場合、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点と頂点が置かれている区画の区画境界との間の最小ホップカウントであり、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、接続関係を有する各2つの頂点間の辺について、辺の全てが同じ重みを有するのではない場合、頂点と頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、頂点と頂点が置かれている区画の区画境界との間の最短距離として使用され、2つの頂点間の距離は、2つの頂点のうちの一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、経路に含まれる辺の重みの総和である。
さらに、プロセッサ1202は具体的に、クエリ頂点の区画番号および層番号に基づいて、およびクエリ条件によって示される候補頂点とクエリ頂点との間の距離に従って、候補頂点の区画番号および層番号を決定するように構成されている。
さらに、グラフデータ全体セットにおける複数の頂点に対して辺切断区画化が予め行われ、区画境界が頂点を含まず、別の区画と交差する辺を有する頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、プロセッサ1202は具体的に、クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算し、次いで1を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として決定するように構成されている。
さらに、グラフデータ全体セットにおける複数の頂点に対して頂点切断区画化が予め行われ、区画境界が頂点を含み、区画境界上の頂点と、頂点が置かれている区画の区画境界との間の最短距離がゼロであり、プロセッサ1202は具体的に、クエリ条件が、候補頂点とクエリ頂点との間の最大距離を示す場合、候補頂点の区画番号および層番号を以下のように決定するように、すなわち、最大距離がクエリ頂点の層番号よりも大きくない場合、候補頂点の区画番号はクエリ頂点の区画番号であることを決定し、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、候補頂点の層番号として、クエリ頂点の層番号から最大距離を減算することによって得られる値から最小値までの閉区間内の層番号を決定する、または、最大距離がクエリ頂点の層番号よりも大きい場合、候補頂点の区画番号はクエリ頂点の区画番号であること、および、クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、クエリ頂点が置かれている区画について、クエリ頂点が置かれている区画における最大層番号と、クエリ頂点の層番号と最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、クエリ頂点の区画番号と同じグループに属する層番号として、決定し、クエリ頂点が置かれている区画の各隣接区画について、隣接区画の最大層番号と、最大距離からクエリ頂点の層番号を減算することによって得られる値との間の最小値を決定し、ゼロから最小値までの閉区間内の層番号を、候補頂点の層番号であり、隣接区画の区画番号と同じグループに属する層番号として、決定するように構成されている。
さらに、プロセッサ1202は具体的に、クエリ条件を取得し、クエリ条件が、第1のクエリ頂点と第2のクエリ頂点との間の最短経路がクエリされる必要があることを示す場合、第1のクエリ頂点の区画番号および層番号ならびに第2のクエリ頂点の区画番号および層番号を取得し、第1のクエリ頂点および第2のクエリ頂点が同じ区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点の層番号から第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号として決定する、または、第1のクエリ頂点および第2のクエリ頂点が異なる区画に置かれている場合、候補頂点の区画番号は第1のクエリ頂点および第2のクエリ頂点の区画番号であることを決定し、第1のクエリ頂点が置かれている区画について、ゼロから第1のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第1のクエリ頂点の区画番号と同じグループに属する層番号として、決定し、第2のクエリ頂点が置かれている区画について、ゼロから第2のクエリ頂点の層番号までの閉区間内の層番号を、候補頂点の層番号であり、第2のクエリ頂点の区画番号と同じグループに属する層番号として決定するように構成されている。
さらに、プロセッサ1202は具体的に、クエリ条件に従って、必要とされるグラフデータを候補セットにおいて見出さない場合、拡張された候補セットを得るように候補セットに含まれる層番号区間を拡張し、クエリ条件に従って、拡張された候補セットにおいてグラフデータクエリを行うように構成されている。
さらに、記憶装置1203は具体的に、グラフデータ全体セットにおけるグラフデータをファイルシステムに保存し、複数の頂点の区画番号および層番号を1つのファイルに保存し、同じ区画番号および層番号を有する頂点のグラフデータを1つのファイルに保存し、異なる区画番号および層番号を有する頂点のグラフデータを異なるファイルに保存するように構成されている。
さらに、プロセッサ1202は具体的に、候補セットに含まれる頂点のグラフデータをメモリにロードし、クエリ条件に従って、候補セットに含まれる頂点のグラフデータであり、メモリにキャッシュされているグラフデータに対してグラフデータクエリを行うように構成されている。
結論として、本発明の実施形態で提供される解決法は、クエリ頂点の区画番号および層番号を取得するステップと、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用するステップと、その区画番号および層番号が候補区画番号および候補層番号のあらゆるグループを満たす頂点を使用することによって候補セットを形成するステップと、クエリ条件に従って候補セットにおいてグラフデータクエリを行うステップとを含む。本発明の実施形態で提供される解決法を使用することによって、グラフデータクエリ効率が向上される。
当業者は、本発明の実施形態が、方法、システム、またはコンピュータプログラムとして提供することができることを理解されたい。したがって、本発明は、ハードウェア専用実施形態、ソフトウェア専用実施形態、またはソフトウェアおよびハードウェアの組合せの実施形態のうちの形態を使用することができる。さらに、本発明は、コンピュータ使用可能なプログラムコードを含む、1または複数のコンピュータ使用可能な記憶媒体(これに限らないが、ディスク記憶装置、CD−ROM、光学記憶装置などを含む)上で実施されるコンピュータプログラム製品の形態を使用することができる。
本発明の実施形態による、方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して本発明を説明する。コンピュータプログラム命令を使用して、フローチャートおよび/またはブロック図における各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図におけるプロセスおよび/またはブロックの組合せを実施することができることを理解されたい。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、内蔵プロセッサ、または機械を作り出すためのあらゆる他のプログラム可能データ処理デバイスのプロセッサに提供されることが可能であり、それによって、コンピュータ、またはあらゆる他のプログラム可能データ処理デバイスのプロセッサによって実行される命令が、フローチャートにおける1または複数のプロセス、および/またはブロック図における1または複数のブロックで特定の機能を実施する装置を作り出すようになる。
これらのコンピュータプログラム命令はまた、特定の方法で機能するようにコンピュータまたはあらゆる他のプログラム可能データ処理デバイスに命令することができるコンピュータ可読記憶装置に保存されることが可能であり、それによって、コンピュータ可読記憶装置に保存された命令は、命令装置を含むアーティファクトを作り出すようになる。命令装置は、フローチャートにおける1または複数のプロセス、および/またはブロック図における1または複数のブロックで特定の機能を実施する。
これらのコンピュータプログラム命令はまた、コンピュータまたは別のプログラム可能データ処理デバイス上にロードされることが可能であり、それによって、一連の動作およびステップが、コンピュータまたは別のプログラム可能デバイス上で行われ、それによって、コンピュータ実施処理を作り出すようになる。したがって、コンピュータまたは別のプログラム可能デバイス上で実行される命令は、フローチャートにおける1または複数のプロセス、および/またはブロック図における1または複数のブロックで特定の機能を実施するステップを提供する。
本発明のいくつかの好ましい実施形態が記載されているが、当業者は、基本的な発明概念を習得した場合、これらの実施形態に変化および変更を加えることができる。それによって、以下の特許請求の範囲は、例示的な実施形態、および本発明の範囲内にある全ての変化および変更を含むように解釈されることを意図している。
明らかに、当業者は、本発明の主旨および範囲から逸脱することなく、本発明に様々な変更および改変を加えることができる。本発明は、以下の特許請求の範囲および同等の技術によって規定された保護範囲内にある限り、これらの変更および改変を含むことを意図している。
本発明は、データ処理技術の分野におけるグラフデータクエリ技術関し、より詳細には、グラフデータクエリ方法および装置に関する。
第1の態様によると、グラフデータクエリ方法が提供され、これは、グラフデータ全体セットにおけるグラフデータのクエリに適用され、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用され、方法は、
クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するステップと、
クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップ、および候補頂点の区画番号および層番号をそれぞれ候補区画番号および候補層番号として使用するステップであって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である、ステップと、
その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するステップと、
クエリ条件に従って候補セットにおいてグラフデータクエリを行うステップと
を含む。
第2の態様によると、グラフデータクエリ装置が提供され、これは、グラフデータ全体セットにおけるグラフデータのクエリに適用され、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用され、クエリ装置は、
クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するように構成された取得ユニットと、
クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、候補頂点の区画番号および層番号をそれぞれ候補区画番号および候補層番号として使用するように構成された第1の決定ユニットであって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である、第1の決定ユニットと、
その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するように構成された第2の決定ユニットと、
クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたクエリユニットと
を含む。
第3の態様によると、クエリサーバが提供され、これは、グラフデータ全体セットにおけるグラフデータのクエリに適用され、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用され、クエリサーバは、
クエリ条件を受信するように構成されたインターフェースと、
クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得し、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、候補頂点の区画番号および層番号をそれぞれ候補区画番号および候補層番号として使用し、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点であり、その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成し、クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたプロセッサと、
グラフデータをグラフデータ全体セットに保存し、複数の頂点の区画番号と層番号をグラフデータ全体セットに保存するように構成された記憶装置と
を具体的に含む。
ステップ102.クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップ、および候補頂点の区画番号および層番号をそれぞれ候補区画番号および候補層番号として使用するステップであって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である。
実際の応用例、いくつかの応用例シナリオでは、2つの頂点間の関係は、2つの頂点が接続関係を有することを示すだけでよく、この場合、重みは2つの頂点間の辺に対して設定されていないことがあり、または同じ重みが各辺に対して設定されていないことがある。例えば、ソーシャルネットワークでは、辺はつの頂点によって示される2人のユーザが友人関係を有することを示すだけであり、重みは辺に設定されないことがある。しかし、いくつかの応用例シナリオでは、2つの頂点が接続関係を有することを示すことに加えて、2つの頂点間の関係はさらに、接続度を示すことがあり、この場合、重みは2つの頂点間の辺に対して設定されること可能であり、異なる重みは異なる接続度を示す。例えば、マップでは、辺は2つの頂点によって示される地理的位置間の直接経路があることを示し、辺のより大きな重みはより長い経路を示す。例えば、対応する重みが経路長さ範囲に従って決定される場合、同じ範囲内の経路長さは、同じ対応する重みを有する。
ステップ802.クエリ頂点の区画番号および層番号に基づいて、およびクエリ条件によって示される候補頂点とクエリ頂点との間の距離に従って、候補頂点の区画番号および層番号を決定し、候補頂点の区画番号および層番号をそれぞれ候補区画番号および候補層番号として使用し、候補頂点は、クエリ条件に従ってクエリする必要がある頂点である。
このステップでは、候補セットに含まれる層番号区間を拡張することは、毎回、予め設定された数の層拡張すること、例えば、毎回、1つの層拡張することであってよい。
実施形態5
同発明の概念に基づいて、および本発明の前述の実施形態で提供されたグラフデータクエリ方法に従って、これに応じて、本発明の実施形態5はさらに、グラフデータ全体セット内のグラフデータのクエリに適用されるグラフデータクエリ装置を提供し、グラフデータ全体セットは複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、区画化および階層化が、グラフデータ全体セットにおける複数の頂点上で予め行われ、頂点が置かれている区画の番号は、頂点の区画番号として使用され、頂点と頂点が置かれている区画の区画境界との間の最短距離は、頂点の層番号として使用される。クエリ装置の略構造図が、図11に示され、クエリ装置は具体的に、クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するように構成された取得ユニット1101と、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、候補頂点の区画番号および層番号をそれぞれ候補区画番号および候補層番号として使用するように構成された第1の決定ユニット1102であって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点である、第1の決定ユニット1102と、その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するように構成された第2の決定ユニット1103と、クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたクエリユニット1104とを含む。
実施形態6
同発明の概念に基づいて、および本発明の前述の実施形態で提供されるグラフデータクエリ方法に従って、これに応じて、本発明の実施形態6は、グラフデータ全体セットにおけるグラフデータのクエリに適用されるクエリサーバであって、グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、グラフデータ全体セットにおける複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が頂点の区画番号として使用され、頂点と、頂点が置かれている区画の区画境界との間の最短距離が頂点の層番号として使用される。クエリサーバの略構造図が、図12に示され、クエリサーバは具体的に、クエリ条件を受信するように構成されたインターフェース1201と、クエリ条件、ならびにクエリ条件によって示されるクエリ頂点の区画番号および層番号を取得し、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、候補頂点の区画番号および層番号をそれぞれを候補区画番号および候補層番号として使用するように構成されたプロセッサ1202であって、候補頂点は、クエリ条件に従ってクエリされる必要がある頂点であり、その区画番号および層番号が候補区画番号および候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成し、クエリ条件に従って候補セットにおいてグラフデータクエリを行うように構成されたプロセッサ1202と、グラフデータ全体セットにおけるグラフデータ、ならびにグラフデータ全体セットにおける複数の頂点の区画番号および層番号を保存するように構成された記憶装置1203を含む。
結論として、本発明の実施形態で提供される解決法は、クエリ頂点の区画番号および層番号を取得するステップと、クエリ頂点の区画番号および層番号に基づいて、クエリ条件によって示される候補頂点の区画番号および層番号を決定し、候補頂点の区画番号および層番号をそれぞれを候補区画番号および候補層番号として使用するステップと、その区画番号および層番号が候補区画番号および候補層番号のあらゆるグループを満たす頂点を使用することによって候補セットを形成するステップと、クエリ条件に従って候補セットにおいてグラフデータクエリを行うステップとを含む。本発明の実施形態で提供される解決法を使用することによって、グラフデータクエリ効率が向上される。

Claims (20)

  1. グラフデータ全体セットにおけるグラフデータのクエリに適用されるグラフデータクエリ方法であって、前記グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、前記グラフデータ全体セットにおける前記複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が前記頂点の区画番号として使用され、頂点と、前記頂点が置かれている区画の区画境界との間の最短距離が前記頂点の層番号として使用され、前記方法は、
    クエリ条件、および前記クエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するステップと、
    前記クエリ頂点の前記区画番号および前記層番号に基づいて、前記クエリ条件によって示される候補頂点の区画番号および層番号を決定するステップ、およびそれらを候補区画番号および候補層番号として使用するステップであって、前記候補頂点は、前記クエリ条件に従ってクエリされる必要がある頂点である、ステップと、
    その区画番号および層番号が前記候補区画番号および前記候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するステップと、
    前記クエリ条件に従って前記候補セットにおいてグラフデータクエリを行うステップと
    を含むことを特徴とする方法。
  2. 頂点が置かれている区画の区画境界に到達することができない頂点の層番号がデフォルト層番号であり、前記デフォルト層番号は、前記頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なり、
    前記クエリ条件によって示される候補頂点の区画番号および層番号を決定する前記ステップの前に、前記方法は、
    前記クエリ頂点の前記層番号が前記デフォルト層番号であるかどうかを決定するステップ、および、前記決定するステップの結果が、前記クエリ頂点の前記層番号が前記デフォルト層番号でないことである場合、前記クエリ条件によって示される候補頂点の区画番号および層番号を決定する前記ステップをトリガするステップ
    をさらに含むか、または、
    前記方法は、
    前記クエリ頂点の前記層番号が前記デフォルト層番号である場合、その区画番号が前記クエリ頂点の前記区画番号であり、その層番号が前記デフォルト層番号である頂点を使用することによって候補セットを形成するステップと、
    前記クエリ条件に従って前記候補セットにおいてグラフデータクエリを行うステップと
    をさらに含む
    ことを特徴とする請求項1に記載の方法。
  3. 接続関係を有する各2つの頂点間の前記辺について、前記辺の全てが同じ重みを有する場合、または前記辺のどれもが重みを有しない場合、頂点と前記頂点が置かれている区画の区画境界との間の最短距離は、前記頂点と前記頂点が置かれている前記区画の前記区画境界との間の最小ホップカウントであり、前記2つの頂点間の距離は、前記2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、
    接続関係を有する各2つの頂点間の前記辺について、前記辺の全てが同じ重みを有するのではない場合、頂点と前記頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、前記頂点と前記頂点が置かれている前記区画の前記区画境界との間の最短距離として使用され、2つの頂点間の距離は、前記2つの頂点のうち一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、前記経路に含まれる辺の重みの総和である
    ことを特徴とする請求項1に記載の方法。
  4. 前記クエリ頂点の前記区画番号および前記層番号に基づいて、前記クエリ条件によって示される候補頂点の区画番号および層番号を決定する前記ステップは、
    前記クエリ頂点の前記区画番号および前記層番号に基づいて、および前記クエリ条件によって示される前記候補頂点と前記クエリ頂点との間の距離に従って、前記候補頂点の前記区画番号および前記層番号を決定するステップ
    を具体的に含む
    ことを特徴とする請求項1に記載の方法。
  5. 前記グラフデータ全体セットにおける前記複数の頂点に対して辺切断区画化が予め行われ、区画境界が頂点を含まず、別の区画と交差する辺を有する頂点と、前記頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
    前記クエリ条件が、前記候補頂点と前記クエリ頂点との間の最大距離を示す場合、前記候補頂点の区画番号および層番号を決定する前記ステップは、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きくない場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であることを決定するステップ、前記クエリ頂点が置かれている区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定するステップ、および、前記候補頂点の前記層番号として、前記クエリ頂点の前記層番号から前記最大距離を減算することによって得られる値から前記最小値までの閉区間内の層番号を決定するステップ、または、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きい場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であること、および、前記クエリ頂点が置かれている区画の隣接区画の区画番号を決定するステップ、前記クエリ頂点が置かれている前記区画について、前記クエリ頂点が置かれている前記区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定するステップ、および、ゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記クエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定するステップ、および、前記クエリ頂点が置かれている前記区画の各隣接区画について、前記隣接区画の最大層番号と、前記最大距離から前記クエリ頂点の前記層番号を減算し、次いで1を減算することによって得られる値との間の最小値を決定するステップ、および、ゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記隣接区画の区画番号と同じグループに属する前記層番号として、決定するステップ
    を具体的に含む
    ことを特徴とする請求項4に記載の方法。
  6. 前記グラフデータ全体セットにおける前記複数の頂点に対して頂点切断区画化が予め行われ、区画境界が頂点を含み、前記区画境界上の前記頂点と、前記頂点が置かれている区画の前記区画境界との間の最短距離がゼロであり、
    前記クエリ条件が、前記候補頂点と前記クエリ頂点との間の最大距離を示す場合、前記候補頂点の区画番号および層番号を決定する前記ステップは、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きくない場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であることを決定するステップ、前記クエリ頂点が置かれている区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定するステップ、および、前記候補頂点の前記層番号として、前記クエリ頂点の前記層番号から前記最大距離を減算することによって得られる値から前記最小値までの閉区間内の層番号を決定するステップ、または、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きい場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であること、および、前記クエリ頂点が置かれている区画の隣接区画の区画番号を決定するステップ、前記クエリ頂点が置かれている前記区画について、前記クエリ頂点が置かれている前記区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定するステップ、およびゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記クエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定するステップ、および、前記クエリ頂点が置かれている前記区画の各隣接区画について、前記隣接区画の最大層番号と、前記最大距離から前記クエリ頂点の前記層番号を減算することによって得られる値との間の最小値を決定するステップ、および、ゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記隣接区画の区画番号と同じグループに属する前記層番号として、決定するステップ
    を具体的に含む
    ことを特徴とする請求項4に記載の方法。
  7. クエリ条件、ならびに前記クエリ条件によって示されるクエリ頂点の区画番号および層番号を取得する前記ステップは、
    前記クエリ条件を取得し、前記クエリ条件が、第1のクエリ頂点と第2のクエリ頂点との間の最短経路がクエリされる必要があることを示す場合、前記第1のクエリ頂点の区画番号および層番号ならびに前記第2のクエリ頂点の区画番号および層番号を取得するステップ
    を具体的に含み、
    前記クエリ頂点の前記区画番号および前記層番号に基づいて、前記クエリ条件によって示される候補頂点の区画番号および層番号を決定する前記ステップは、
    前記第1のクエリ頂点および前記第2のクエリ頂点が同じ区画に置かれている場合、前記候補頂点の前記区画番号は前記第1のクエリ頂点および前記第2のクエリ頂点の前記区画番号であることを決定するステップ、および、前記第1のクエリ頂点の前記層番号から前記第2のクエリ頂点の前記層番号までの閉区間内の層番号を、前記候補頂点の前記層番号として決定するステップ、または、
    前記第1のクエリ頂点および前記第2のクエリ頂点が異なる区画に置かれている場合、前記候補頂点の前記区画番号は前記第1のクエリ頂点の前記区画番号および前記第2のクエリ頂点の前記区画番号であることを決定するステップ、前記第1のクエリ頂点が置かれている区画について、ゼロから前記第1のクエリ頂点の前記層番号までの閉区間内の層番号を、前記候補頂点の層番号であり、前記第1のクエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定するステップ、および、前記第2のクエリ頂点が置かれている区画について、ゼロから前記第2のクエリ頂点の前記層番号までの閉区間内の層番号を、前記候補頂点の層番号であり、前記第2のクエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定するステップ
    を具体的に含む
    ことを特徴とする請求項1に記載の方法。
  8. 前記クエリ条件に従って、必要とされるグラフデータが前記候補セットにおいて見出されない場合、拡張された候補セットを得るように前記候補セットに含まれる層番号区間を拡張するステップと、
    前記クエリ条件に従って前記拡張された候補セットにおいてグラフデータクエリを実行するステップと
    をさらに含む
    ことを特徴とする請求項7に記載の方法。
  9. 前記グラフデータ全体セットにおける前記グラフデータがファイルシステムに保存されている場合、前記複数の頂点の区画番号および層番号が1つのファイルに保存され、同じ区画番号および層番号を有する頂点のグラフデータが1つのファイルに保存され、異なる区画番号および層番号を有する頂点のグラフデータが異なるファイルに保存されることを特徴とする請求項1に記載の方法。
  10. 前記クエリ条件に従って前記候補セットにおいてグラフデータクエリを行う前記ステップは、
    前記候補セットに含まれる頂点のグラフデータをメモリにロードするステップと、
    前記クエリ条件に従って、前記候補セットに含まれる前記頂点のグラフデータであり、前記メモリにキャッシュされているグラフデータに対してグラフデータクエリを行うステップと
    を具体的に含む
    ことを特徴とする請求項1乃至9のいずれか一項に記載の方法。
  11. グラフデータ全体セットにおけるグラフデータのクエリに適用されるグラフデータクエリ装置であって、前記グラフデータ全体セットは、複数の頂点、および接続関係を有する各2つの頂点間の辺を含み、前記グラフデータ全体セットにおける前記複数の頂点に対して予め区画化および階層化が行われており、頂点が置かれている区画の番号が前記頂点の区画番号として使用され、頂点と、前記頂点が置かれている区画の区画境界との間の最短距離が前記頂点の層番号として使用され、前記クエリ装置は、
    クエリ条件、ならびに前記クエリ条件によって示されるクエリ頂点の区画番号および層番号を取得するように構成された取得ユニットと、
    前記クエリ頂点の前記区画番号および前記層番号に基づいて、前記クエリ条件によって示される候補頂点の区画番号および層番号を決定し、それらを候補区画番号および候補層番号として使用するように構成された第1の決定ユニットであって、前記候補頂点は、前記クエリ条件に従ってクエリされる必要がある頂点である、第1の決定ユニットと、
    その区画番号および層番号が前記候補区画番号および前記候補層番号をそれぞれ満たす頂点を使用することによって候補セットを形成するように構成された第2の決定ユニットと、
    前記クエリ条件に従って前記候補セットにおいてグラフデータクエリを行うように構成されたクエリユニットと
    を含むことを特徴とするグラフデータクエリ装置。
  12. 頂点が置かれている区画の区画境界に到達することができない頂点の層番号がデフォルト層番号であり、前記デフォルト層番号は、前記頂点が置かれている区画の区画境界に到達することができる頂点の層番号とは異なり、
    前記第1の決定ユニットは、前記クエリ条件によって示される前記候補頂点の前記区画番号および前記層番号を決定する前に、前記クエリ頂点の前記層番号が前記デフォルト層番号であるかどうかを決定し、前記決定することの結果が、前記クエリ頂点の前記層番号が前記デフォルト層番号でないことである場合、前記クエリ条件によって示される候補頂点の区画番号および層番号を決定する前記ステップをトリガするようにさらに構成され、
    前記第2の決定ユニットは、前記クエリ頂点の前記層番号が前記デフォルト層番号である場合、その区画番号が前記クエリ頂点の前記区画番号であり、その層番号が前記デフォルト層番号である頂点を使用することによって候補セットを形成するようにさらに構成された
    ことを特徴とする請求項11に記載の装置。
  13. 接続関係を有する各2つの頂点間の前記辺について、前記辺の全てが同じ重みを有する場合、または前記辺のどれもが重みを有しない場合、頂点と前記頂点が置かれている区画の区画境界との間の最短距離は、前記頂点と前記頂点が置かれている前記区画の前記区画境界との間の最小ホップカウントであり、前記2つの頂点間の距離は、前記2つの頂点のうちの一方の頂点と他方の頂点との間のホップカウントであり、または、
    接続関係を有する各2つの頂点間の前記辺について、前記辺の全てが同じ重みを有するのではない場合、頂点と前記頂点が置かれている区画の区画境界との間の経路の長さにおける最小長さが、前記頂点と前記頂点が置かれている前記区画の前記区画境界との間の最短距離として使用され、2つの頂点間の距離は、前記2つの頂点のうち一方の頂点と他方の頂点との間の経路の長さであり、経路の長さは、前記経路に含まれる辺の重みの総和である
    ことを特徴とする請求項11に記載の装置。
  14. 前記第1の決定ユニットは、前記クエリ頂点の前記区画番号および前記層番号に基づいて、および前記クエリ条件によって示される前記候補頂点と前記クエリ頂点との間の距離に従って、前記候補頂点の前記区画番号および前記層番号を決定するように具体的に構成された
    ことを特徴とする請求項11に記載の装置。
  15. 前記グラフデータ全体セットにおける前記複数の頂点に対して辺切断区画化が予め行われ、区画境界が頂点を含まず、別の区画と交差する辺を有する頂点と、前記頂点が置かれている区画の区画境界との間の最短距離がゼロであり、
    前記第1の決定ユニットは、
    前記クエリ条件が、前記候補頂点と前記クエリ頂点との間の最大距離を示す場合、前記候補頂点の前記区画番号および前記層番号を以下のように決定するように、すなわち、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きくない場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であることを決定し、前記クエリ頂点が置かれている区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定し、前記候補頂点の前記層番号として、前記クエリ頂点の前記層番号から前記最大距離を減算することによって得られる値から前記最小値までの閉区間内の層番号を決定する、または、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きい場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であること、および、前記クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、前記クエリ頂点が置かれている前記区画について、前記クエリ頂点が置かれている前記区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記クエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定し、前記クエリ頂点が置かれている前記区画の各隣接区画について、前記隣接区画の最大層番号と、前記最大距離から前記クエリ頂点の前記層番号を減算し、次いで1を減算することによって得られる値との間の最小値を決定し、ゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記隣接区画の区画番号と同じグループに属する前記層番号として、決定する
    ように具体的に構成された
    ことを特徴とする請求項14に記載の装置。
  16. 前記グラフデータ全体セットにおける前記複数の頂点に対して頂点切断区画化が予め行われ、区画境界が頂点を含み、前記区画境界上の前記頂点と、前記頂点が置かれている区画の前記区画境界との間の最短距離がゼロであり、
    前記第1の決定ユニットは、
    前記クエリ条件が、前記候補頂点と前記クエリ頂点との間の最大距離を示す場合、前記候補頂点の前記区画番号および前記層番号を以下のように決定するように、すなわち、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きくない場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であることを決定し、前記クエリ頂点が置かれている区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定し、前記候補頂点の前記層番号として、前記クエリ頂点の前記層番号から前記最大距離を減算することによって得られる値から前記最小値までの閉区間内の層番号を決定する、または、
    前記最大距離が前記クエリ頂点の前記層番号よりも大きい場合、前記候補頂点の前記区画番号は前記クエリ頂点の前記区画番号であること、および、前記クエリ頂点が置かれている区画の隣接区画の区画番号を決定し、前記クエリ頂点が置かれている前記区画について、前記クエリ頂点が置かれている前記区画における最大層番号と、前記クエリ頂点の前記層番号と前記最大距離とを加算することによって得られる値との間の最小値を決定し、ゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記クエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定し、前記クエリ頂点が置かれている前記区画の各隣接区画について、前記隣接区画の最大層番号と、前記最大距離から前記クエリ頂点の前記層番号を減算することによって得られる値との間の最小値を決定し、ゼロから前記最小値までの閉区間内の層番号を、前記候補頂点の層番号であり、前記隣接区画の区画番号と同じグループに属する前記層番号として、決定する
    ように具体的に構成された
    ことを特徴とする請求項14に記載の装置。
  17. 前記取得ユニットは、前記クエリ条件を取得し、前記クエリ条件が、第1のクエリ頂点と第2のクエリ頂点との間の最短経路がクエリされる必要があることを示す場合、前記第1のクエリ頂点の区画番号および層番号ならびに前記第2のクエリ頂点の区画番号および層番号を取得するように具体的に構成され、
    前記第1の決定ユニットは、
    前記第1のクエリ頂点および前記第2のクエリ頂点が同じ区画に置かれている場合、前記候補頂点の前記区画番号は前記第1のクエリ頂点および前記第2のクエリ頂点の前記区画番号であることを決定し、前記第1のクエリ頂点の前記層番号から前記第2のクエリ頂点の前記層番号までの閉区間内の層番号を、前記候補頂点の前記層番号として決定する、または、
    前記第1のクエリ頂点および前記第2のクエリ頂点が異なる区画に置かれている場合、前記候補頂点の前記区画番号は前記第1のクエリ頂点および前記第2のクエリ頂点の前記区画番号であることを決定し、前記第1のクエリ頂点が置かれている区画について、ゼロから前記第1のクエリ頂点の前記層番号までの閉区間内の層番号を、前記候補頂点の層番号であり、前記第1のクエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定し、前記第2のクエリ頂点が置かれている区画について、ゼロから前記第2のクエリ頂点の前記層番号までの閉区間内の層番号を、前記候補頂点の層番号であり、前記第2のクエリ頂点の前記区画番号と同じグループに属する前記層番号として、決定する
    ように具体的に構成された
    ことを特徴とする請求項11に記載の装置。
  18. 前記第2の決定ユニットは、前記クエリユニットが、前記クエリ条件に従って、必要とされるグラフデータを前記候補セットにおいて見出さない場合、拡張された候補セットを得るように前記候補セットに含まれる層番号区間を拡張するようにさらに構成され、
    前記クエリユニットは、前記クエリ条件に従って前記拡張された候補セットにおいてグラフデータクエリを行うようにさらに構成された
    ことを特徴とする請求項17に記載の装置。
  19. 前記グラフデータ全体セットにおける前記グラフデータがファイルシステムに保存されている場合、前記複数の頂点の区画番号および層番号が1つのファイルに保存され、同じ区画番号および層番号を有する頂点のグラフデータが1つのファイルに保存され、異なる区画番号および層番号を有する頂点のグラフデータが異なるファイルに保存されることを特徴とする請求項11に記載の装置。
  20. 前記クエリユニットは、前記候補セットに含まれる頂点のグラフデータをメモリにロードし、前記クエリ条件に従って、前記候補セットに含まれる前記頂点のグラフデータであり、前記メモリにキャッシュされているグラフデータに対してグラフデータクエリを行うように具体的に構成されたことを特徴とする請求項11乃至19のいずれか一項に記載の装置。
JP2016543687A 2013-12-30 2013-12-30 グラフデータクエリ方法および装置 Active JP6243045B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/090926 WO2015100549A1 (zh) 2013-12-30 2013-12-30 一种图数据查询方法及装置

Publications (2)

Publication Number Publication Date
JP2017509043A true JP2017509043A (ja) 2017-03-30
JP6243045B2 JP6243045B2 (ja) 2017-12-06

Family

ID=53492908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016543687A Active JP6243045B2 (ja) 2013-12-30 2013-12-30 グラフデータクエリ方法および装置

Country Status (5)

Country Link
US (1) US10068033B2 (ja)
EP (1) EP3079077A4 (ja)
JP (1) JP6243045B2 (ja)
CN (1) CN105051725B (ja)
WO (1) WO2015100549A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200141208A (ko) * 2019-06-10 2020-12-18 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635645B1 (en) 2014-05-04 2020-04-28 Veritas Technologies Llc Systems and methods for maintaining aggregate tables in databases
US10025804B2 (en) 2014-05-04 2018-07-17 Veritas Technologies Llc Systems and methods for aggregating information-asset metadata from multiple disparate data-management systems
US11036797B2 (en) * 2017-10-12 2021-06-15 Adtran, Inc. Efficient storage and utilization of a hierarchical data set
CN108052577B (zh) * 2017-12-08 2022-06-14 北京百度网讯科技有限公司 一种通用文本内容挖掘方法、装置、服务器及存储介质
US10621235B1 (en) * 2019-05-13 2020-04-14 Redis Labs Ltd. Methods, systems, and media for resolving database queries using algebraic expressions using matrix-matrix multiplication
US11048696B2 (en) 2019-06-24 2021-06-29 Workiva Inc. Method and computing device for generating a search query for a graph database
CN111241350B (zh) * 2020-01-07 2024-02-02 平安科技(深圳)有限公司 图数据查询方法、装置、计算机设备和存储介质
US11989188B2 (en) 2021-08-25 2024-05-21 Bank Of America Corporation Aggregating access to third party data sources and intelligently managing access through request quotas
CN115795111B (zh) * 2023-01-20 2023-05-02 阿里健康科技(中国)有限公司 图数据的查询方法、装置、设备和存储介质
CN117171401B (zh) * 2023-11-03 2024-01-26 之江实验室 基于分层预计算的图数据中最短路径的查询方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258794A (ja) * 2008-04-11 2009-11-05 Fujitsu Ltd 情報検索プログラム、情報検索装置、および情報検索方法
JP2012198873A (ja) * 2011-03-22 2012-10-18 Nec (China) Co Ltd データセットからの情報取得方法およびシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101620606A (zh) * 2008-06-30 2010-01-06 国际商业机器公司 自动生成数据库查询的方法和系统
US8490072B2 (en) * 2009-06-23 2013-07-16 International Business Machines Corporation Partitioning operator flow graphs
CN102163218B (zh) 2011-03-28 2012-10-10 武汉大学 基于图索引的图数据库关键词邻近搜索方法
WO2013009503A2 (en) * 2011-07-08 2013-01-17 Yale University Query execution systems and methods
US8645339B2 (en) 2011-11-11 2014-02-04 International Business Machines Corporation Method and system for managing and querying large graphs
CN102662974B (zh) * 2012-03-12 2014-02-26 浙江大学 一种基于邻接节点树的网络图索引方法
CN102999542B (zh) * 2012-06-21 2015-12-16 杜小勇 多媒体数据高维索引及kNN检索方法
CN103399902B (zh) * 2013-07-23 2016-05-25 东北大学 一种并行环境下的有向图可达性链表生成及查询方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258794A (ja) * 2008-04-11 2009-11-05 Fujitsu Ltd 情報検索プログラム、情報検索装置、および情報検索方法
JP2012198873A (ja) * 2011-03-22 2012-10-18 Nec (China) Co Ltd データセットからの情報取得方法およびシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200141208A (ko) * 2019-06-10 2020-12-18 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치
KR102325047B1 (ko) * 2019-06-10 2021-11-11 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치
US11210343B2 (en) 2019-06-10 2021-12-28 Postech Academy-Industry Foundation Graph data processing method and apparatus thereof

Also Published As

Publication number Publication date
CN105051725B (zh) 2018-11-20
US20160306897A1 (en) 2016-10-20
EP3079077A4 (en) 2016-12-28
EP3079077A1 (en) 2016-10-12
US10068033B2 (en) 2018-09-04
CN105051725A (zh) 2015-11-11
JP6243045B2 (ja) 2017-12-06
WO2015100549A1 (zh) 2015-07-09

Similar Documents

Publication Publication Date Title
JP6243045B2 (ja) グラフデータクエリ方法および装置
JP6998964B2 (ja) ジオフェンスのインデックスグリッドを判断するための方法及び装置
Xuan et al. Voronoi-based multi-level range search in mobile navigation
US20120036163A1 (en) Distributed multidimensional range search system and method
CN109255055A (zh) 一种基于分组关联表的图数据存取方法和装置
Shang et al. PNN query processing on compressed trajectories
CN111241350B (zh) 图数据查询方法、装置、计算机设备和存储介质
CN112333260A (zh) 云计算任务调度方法及云计算系统
Akyüz et al. Location and allocation based branch and bound algorithms for the capacitated multi-facility Weber problem
CN102929587A (zh) 数据处理系统和数据处理方法
Safar et al. Optimized skyline queries on road networks using nearest neighbors
CN114077912A (zh) 数据预测方法以及数据预测装置
CN105138527A (zh) 一种数据分类回归方法及装置
CN112699134A (zh) 基于图剖分的分布式图数据库的存储与查询方法
He et al. Scalable collective spatial keyword query
Ryu et al. MapReduce-based skyline query processing scheme using adaptive two-level grids
CN106326295A (zh) 语义数据的存储方法及装置
Wang et al. Efficiently monitoring reverse k-nearest neighbors in spatial networks
Expósito-Izquierdo et al. A heuristic algorithm based on an improvement strategy to exploit idle time periods for the stacking problem
US20210149746A1 (en) Method, System, Computer Readable Medium, and Device for Scheduling Computational Operation Based on Graph Data
CN113449208B (zh) 空间查询方法、设备、系统及存储介质
CN113821550A (zh) 路网拓扑图的划分方法、装置、设备及计算机程序产品
CN113127714A (zh) 一种物流大数据采集方法
CN103984545A (zh) 一种移动终端广告请求方法和装置
CN116304384B (zh) 兴趣点搜索方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170926

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171108

R150 Certificate of patent or registration of utility model

Ref document number: 6243045

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250