(57)【要約】      （修正有）【課題】グラフの視覚表現へのフィルタを適用することにより、グラフを検索する方法及びシステムを提供する。【解決手段】このシステムは、グラフの頂点と辺を示すデータを取得する（動作３０２）。次いで、グラフの視覚表現をユーザのために表示する（動作３０４）。次いで、制御点または視覚表現内の領域を含むローカル・グラフ・フィルタを規定するコマンドをユーザから受け取ることができる（動作３０６）。次に、グラフの表現をフィルタリングして、制御点により指定される領域内に表示される頂点により誘導される部分グラフを含むことができる（動作３０８）。最後に、フィルタリングされた表現を格納することができる（動作３１０）。【選択図】図３
2017220225.tif 000002
【特許請求の範囲】
【請求項１】
グラフを検索するためのコンピュータ実装方法であって、
一連のプロセッサを含むコンピュータシステムにより、頂点と辺を含むグラフを表すデータ構造を取得するステップと、
前記グラフの視覚表現をユーザのために表示するステップと、
ローカル・グラフ・フィルタを規定するコマンドを前記ユーザから受け取るステップであって、前記ローカル・グラフ・フィルタが、前記グラフの視覚表現内の領域を含む、ステップと、
前記グラフの表現をフィルタリングして、前記領域内で視覚的に示される頂点の部分集合、および前記部分集合内で頂点間を接続する辺を選択するステップと、
前記グラフのうちの前記フィルタリングされる表現の前記選択される頂点と辺を非一時的な記憶媒体に格納するステップと、を含む方法。
【請求項２】
前記グラフの前記視覚表現内に付加的な領域を含む付加的なローカル・グラフ・フィルタを前記ユーザから受け取るステップと、
前記グラフの前記視覚表現内の組み合せた領域を前記領域と前記付加的な領域との結合部または交差部と判定するステップと、
前記グラフの前記表現をフィルタリングして、前記組み合せた領域内で視覚的に示される組み合せ頂点の集合、および前記組み合せ集合内で頂点間を接続する辺を選択するステップと、をさらに含む請求項１に記載の方法。
【請求項３】
前記ローカル・グラフ・フィルタを規定する前記コマンドを受け取るステップには、ポインティングディバイスを介して、前記グラフの前記視覚表現内の前記領域の範囲を定める境界を前記ユーザから受け取ること、がさらに含まれる、請求項１に記載の方法。
【請求項４】
前記受け取られるローカル・グラフ・フィルタにより一連の制約がさらに指定され、前記グラフの前記表現をフィルタリングするステップには、前記領域内で視覚的に示される前記頂点の部分集合をフィルタリングして、前記制約を満たす頂点、および前記選択される頂点間を接続する辺を選択することがさらに含まれる、請求項１に記載の方法。
【請求項５】
前記ローカル・グラフ・フィルタを規定する前記コマンドを受け取るステップには、
前記ローカル・グラフ・フィルタに関連するスライダ制御を前記ユーザのために表示し、前記グラフ内の頂点の特性を表すことと、
前記特性に関する値を前記ユーザからポインティングディバイスを介して受け取り、前記スライダ制御の位置に配置することと、
前記受け取った前記特性に関する値に基づいて、各制約を設定することと、がさらに含まれる、請求項４に記載の方法。
【請求項６】
コンピュータにより実行されると、前記コンピュータがグラフを検索する方法を行う命令を格納する非一時的なコンピュータ可読記憶媒体であって、前記方法が、
前記コンピュータにより、頂点と辺を含むグラフを表すデータ構造を取得するステップと、
前記グラフの視覚表現をユーザのために表示するステップと、
ローカル・グラフ・フィルタを規定するコマンドを前記ユーザから受け取るステップであって、前記ローカル・グラフ・フィルタが、前記グラフの前記視覚表現内の領域を含む、ステップと、
前記グラフの表現をフィルタリングして、前記領域内で視覚的に示される頂点の部分集合、および前記部分集合内で頂点間を接続する辺を選択するステップと、
前記グラフのうちの前記フィルタリングされる表現の前記選択される頂点と辺を非一時的な記憶媒体に格納するステップとを含む、コンピュータ可読記憶媒体。
【請求項７】
前記方法が、
前記グラフの視覚表現内に付加的な領域を含む付加的なローカル・グラフ・フィルタを前記ユーザから受け取るステップと、
前記グラフの視覚表現内の組み合せた領域を前記領域と前記付加的な領域との結合部または交差部と判定するステップと、
前記グラフの表現をフィルタリングして、前記組み合せた領域内で視覚的に示される頂点の組み合せた集合、および前記組み合せた集合内で頂点間を接続する辺を選択するステップとをさらに含む、請求項６に記載のコンピュータ可読記憶媒体。
【請求項８】
前記受け取られるローカル・グラフ・フィルタにより一連の制約がさらに指定され、前記グラフの表現をフィルタリングするステップには、前記領域内で視覚的に示される前記頂点の部分集合をフィルタリングして、前記制約を満たす頂点、および前記選択される頂点間を接続する辺を選択することがさらに含まれる、請求項６に記載のコンピュータ可読記憶媒体。
【請求項９】
前記ローカル・グラフ・フィルタを規定する前記コマンドを受け取るステップには、
前記ローカル・グラフ・フィルタに関連するスライダ制御を前記ユーザのために表示し、前記グラフ内の頂点の特性を表すことと、
ポインティングディバイスを介して前記特性に関する値を前記ユーザから受け取り、前記スライダ制御の位置に配置することと、
前記受け取った前記特性に関する値に基づいて、各制約を設定することとがさらに含まれる、請求項８に記載のコンピュータ可読記憶媒体。
【請求項１０】
グラフを検索するためのコンピュータシステムであって、
複数のプロセッサの集合と、
前記プロセッサの集合により実行されると、前記プロセッサの集合が、グラフを検索する方法を行う命令が格納される、前記プロセッサの集合に接続する非一時的なコンピュータ可読媒体であって、前記方法が、
頂点と辺を含むグラフを表すデータ構造を取得するステップと、
前記グラフの視覚表現をユーザのために表示するステップと、
ローカル・グラフ・フィルタを規定するコマンドを前記ユーザから受け取るステップであって、前記ローカル・グラフ・フィルタが、前記グラフの視覚表現内の領域を含むステップと、
前記グラフの表現をフィルタリングして、前記領域内で視覚的に示される頂点の部分集合、および前記部分集合内で頂点間を接続する辺を選択するステップと、
前記グラフのうちの前記フィルタリングされる表現の前記選択される頂点と辺を非一時的な記憶媒体に格納するステップとを含む、コンピュータ可読媒体とを含むコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、グラフ検索に関する。より具体的には、本開示は、グラフの視覚表現にフィルタを適用することにより、グラフを検索する方法およびシステムに関する。
【０００２】
グラフとは、一連の頂点間（ノードとしても知られる）を接続する辺（リンクすなわち接続としても知られる）の表現形式である。ソーシャルネットワークや消費者と製品の関係などの大規模なデータセットの分析を含む数多くのアプリケーション、および生物学およびコンピュータ科学のアプリケーションにとってグラフは重要である。関係を予測したり、推薦を行ったりするような様々な目的で数多くのグラフ演算方法が行われている。しかしながら、大規模なグラフでは、分析を行い、それを理解し、モデリングを行う際、分かりにくく時間がかかりすぎてしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
グラフの重要のために、グラフを可視化し、あるいは表示し、グラフ上で探索を行うための様々な方法を用いられている。グラフを検索するという課題は、低いレベルのプログラミング言語と高いレベルのプログラミング言語、ならびに従来のグラフアルゴリズムに基づいた、複雑なグラフとネットワークのパッケージを用いることで解決できている。ユーザやデータ科学者は、特定の対象の特性を用いてノードと辺を選択するスクリプトを頻繁に書かなければならない。以前の方法によっては、ノードを視覚的に選択することができるものもある。しかしながら、従来のアプローチでは、時間がかかりすぎ、使用が容易／直観的ではなく、複雑な検索を柔軟に実行することができない可能性がある。
【課題を解決するための手段】
【０００４】
本発明の一実施形態により、グラフ検索のシステムおよび方法が提供される。動作中、このシステムは、グラフの頂点と辺を示すデータ構造を取得する。このシステムは、ユーザのために、グラフの視覚表現を表示することができる。次いで、このシステムは、グラフの視覚表現内の領域を含むローカル・グラフ・フィルタを規定するコマンドをユーザから受け取ることができる。次いで、このシステムは、グラフの表現をフィルタリングして、領域内で視覚的に表される頂点の部分集合とその部分集合内の頂点間を接続する辺を選択することができる。次いで、このシステムは、フィルタリングされるグラフの表現内で選択される頂点と辺を非一時的な記憶媒体に格納することができる。
【０００５】
本実施形態の変更形態では、このシステムは、付加的なグラフの視覚表現内の領域を含む付加的なローカル・グラフ・フィルタをユーザから受け取ることができる。次いで、このシステムは、グラフの視覚表現内の組み合せた領域を、領域と付加的な領域の結合部または交差部と判定することができる。次いで、このシステムは、グラフの表現をフィルタリングして、組み合せた領域内で視覚的に表される頂点の組み合せ集合、および組み合せ集合内で頂点間を接続する辺を選択することができる。
【０００６】
本実施形態の変更形態では、ローカル・グラフ・フィルタを規定するために、このシステムは、ポインティングディバイスを介して、グラフの視覚表現内の領域の範囲を定める境界をユーザから受け取ることができる。
【０００７】
本実施形態の変更形態では、ローカル・グラフ・フィルタにより、一連の制約を指定することができる。次いで、このシステムは、領域内で視覚的に表される頂点の部分集合をさらにフィルタリングして、制約を満たす頂点と、選択される頂点間を接続する辺とを選択することができる。
【０００８】
本実施形態の変更形態では、このシステムは、グラフ内の頂点の特性を表すローカル・グラフ・フィルタに関連するスライダ制御をユーザのために表示することができる。次いで、このシステムは、スライダ制御の位置に応じて、ポインティングディバイスを介して、この特性に関する値をユーザから受け取ることができる。次いで、このシステムは、受け取った特性に関する値に基づいて、各制約を設定することができる。
【０００９】
本実施形態の変更形態では、グラフ内の各頂点の度合、グラフ内の各頂点に関連する複数の三角、グラフ内の各頂点に関連する複数のクリーク、グラフ内の各頂点に関連する複数のグラフレット、グラフ内の各頂点のｋコア数、グラフ内の各辺のグラフ距離の測定値、およびグラフ内の各頂点のグラフ接続度の測定値のうちの１つ以上に関する値の範囲が、各制約により規定される。
【００１０】
本実施形態の変更形態では、グラフ内の各頂点は補助特性に関連し、各制約により各頂点の補助特性に関する値の範囲が規定される。
【００１１】
本実施形態の変更形態では、グラフ内の各頂点は補助特性に関連する。グラフ内の各頂点は人を表し得、補助特性には、その人の年齢、その人の政見、その人の性別、その人の教育レベル、その人の貧富レベルまたは収入レベル、その人の所在地、その人に関連する世帯規模、その人の購買履歴のうちの１つ以上が含まれ得る。
【図面の簡単な説明】
【００１２】
【図１Ａ】図１Ａは、グラフの視覚表現の一例を示す図である。
【図１Ｂ】図１Ｂは、本発明の実施形態に従った、ローカル・グラフ・フィルタすなわち空間領域により、図１Ａのグラフをフィルタリングする例を示す図である。
【図２】図２は、本発明の実施形態に従った、グラフ検索およびフィルタリングの方法を利用するグラフ計算システムの例示的なアーキテクチャを示すブロック図である。
【図３】図３は、本発明の実施形態に従った、グラフを検索する方法を示すブロック図である。
【図４Ａ】図４Ａは、本発明の実施形態に従った、２つの空間領域の交差部に関与する組み合わせにより、図１Ａのグラフのフィルタリングする例を示す図である。
【図４Ｂ】図４Ｂは、本発明の実施形態に従った、２つの空間領域の結合部に関与する組み合わせにより、図１Ａのグラフをフィルタリングする例を示す図である。
【図５Ａ】図５Ａは、本発明の実施形態に従った、頂点の特性上の制約も組み込んだ、図４Ｂによるグラフ・フィルタの一例を示す図である。
【図５Ｂ】図５Ｂは、本発明の実施形態に従った、図５Ａのフィルタリングされたグラフの視覚表現を示す図である。
【図６Ａ】図６Ａは、本発明の実施形態に従った、スライダ制御を介して制約を規定して、グラフをフィルタリングする様子を示す図である。
【図６Ｂ】図６Ｂは、本発明の実施形態に従った、グラフをフィルタリングするために、図６Ａのスライダ制御を変更した結果を示す図である。
【図７】図７は、本発明の実施形態に従った、多次元の空間領域による多次元のグラフのフィルタリングの一例を示す図である。
【図８】図８は、本発明の実施形態に従った、グラフ検索を行うための例示的な装置を示すブロック図である。
【図９】図９は、本発明の実施形態に従った、グラフ検索を行うための例示的なコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【００１３】
これらの図面では、同様の参照符号により同じ数字の要素が示される。
【００１４】
以下の説明は、全ての当業者が本実施形態を実行し使用することができるよう提示され、特定の用途および要求事項に関連して提供されている。当業者にとっては、開示される実施形態の種々の修正形態は容易に明らかであり、本開示の趣旨と範囲を逸脱することなく、本明細書に規定される一般原理を他の実施形態および用途に適用することも可能である。したがって、本発明は例示される実施形態に限定されるものではなく、本明細書に開示される趣旨および特徴と整合性のある、最も広い範囲に及ぶものとする。
【００１５】
概要
本発明の実施形態により、局所的なフィルタをグラフの視覚表現に適用するにより、複雑なグラフ検索を容易にするという課題が解決される。したがって、このシステムにより、複雑なグラフ検索動作が視覚的に簡単に実行され、グラフの可視化、理解、および探索をより簡単にすることができる。例えば、このシステムにより、グラフ自体の全体に渡って規定される代わりに、グラフの部分集合すなわち領域に局所化される、複雑で非直観的なグラフ検索をユーザが構築することができる。動作中、このシステムは、グラフの頂点と辺を示すデータを取得することができる。次いで、このシステムは、グラフの視覚表現をユーザのために表示し、この視覚表現内の領域を含むローカル・グラフ・フィルタを規定するコマンドをユーザから受け取ることができる。次いで、このシステムは、このグラフ表現をフィルタリングし、フィルタリングされた表現を格納することができる。
【００１６】
図１Ａには、グラフの視覚表現の一例が示されている。図１Ａに示される通り、グラフ１００は、頂点１０２などの頂点（ノードとも呼ばれる）、および辺１０４などの辺（リンクすなわち接続とも呼ばれる）を含むことができる。図１Ａなどのグラフの視覚表現では、例えば、図１Ａの通り、点または円で頂点を示し、頂点間を接続する曲線または線で辺を示すことにより、これらの特徴を正確に再生するものとする。通常、グラフは主に位相関係に関連し、辺は本来の長さを持ち得ないため、同じグラフを視覚的に表現する方法は幾通りも存在してよい。図１Ａでは、視覚表現により異なる空間領域に集まる頂点が示されている場合もある。この空間領域では、クラスター内の接続の高い度合が反映されている場合もあれば、反映されていない場合もある。
【００１７】
なお、いくつかの実施形態では、グラフが頂点間の位相接続を超える付加的な情報を含み、指すことができる。例えば、グラフは様々なタイプの頂点と辺を含むことができる（一般に、異種混合グラフ、またはマルチタイプグラフと呼ばれる）。グラフは、補助的な情報を有する任意の数の頂点の属性と辺の属性も含むことができる（属性グラフ、または時には多次元のグラフと呼ばれる）。例えば、これらの属性は、人、対象、販売する製品、その人の友達、取引のタイムスタンプ、チェックイン場所またはその他の場所、その人の年齢などに関し得る。またグラフは、空間情報および時間情報も含むことができる（ノードと辺の両方で）。
【００１８】
いくつかの実施形態では、フィルタまたは制約として使用される属性／特性は、システム自体から派生する特性でよい。例えば、いくつかの実施形態では、システムが、グラフまたは属性の行列因数分解を実行することができる。次いで、各固有ベクトルは、それ自体を属性と見なし、フィルタリングに関する基として用いることができる。また、いくつかの実施形態では、このシステムを予測のための分類法または回帰法と共に用いることができる。次いで、このシステムは、予測の不確定性に基づいて、あるいは、他の可能性の中でも、正確に／不正確に分類されたノード／辺を表す属性に基づいて、属性を作成することができる。
【００１９】
図１Ｂには、本発明の実施形態に従った、ローカル・グラフ・フィルタすなわち空間領域により、図１Ａのグラフのフィルタリングする例が示されている。図１Ｂに示される通り、グラフ１００の一部を選択するために用いることができる空間領域の範囲の境界がボックス１０６により定められている。なお、このボックスの使用は一例であり、他の形状の空間領域を使用することもできる。空間領域を含む選択基準すなわちフィルタリング基準を、本明細書では、ローカル・グラフ・フィルタ、フィルタ、セレクタ、または制御点と呼ぶ。制御点という用語は、特定のローカル・グラフ・フィルタに関連する別のオプションをユーザに提供するために表示される単一点または単一円などの、視覚ショートカットのことも指し得る。空間領域を含むローカル・グラフ・フィルタは、ポインティングディバイスを用いて、ユーザにより視覚的に指定可能である、あるいは、ファイルベースまたはテキストベースの座標入力などのその他の手段で入力可能である。図１Ｂに示される通り、本発明の実施形態により、ボックス１０６に囲まれる領域内で視覚的に表される頂点１０８などのグラフの一部をフィルタリングする、あるいは選択することができる。太い線でこれらの部分を示すことにより、選択される部分を表す。
【００２０】
異なる実施形態では、グラフのフィルタリングされる部分または選択される部分が異なって決定され得る。例えば、図１Ｂで示される通り、ユーザは、指定される領域内に含まれる頂点を有する頂点に誘導される部分グラフを選択することができる。頂点に誘導される部分グラフには、部分グラフに含まれる頂点間を接続する辺だけが含まれるため、ボックス１０６内に部分的に含まれる何本かの辺は、選択されていないものとして示されている。他の実施形態では、領域内の辺により誘導される部分グラフ、または領域内の頂点と辺の両方により誘導される部分グラフを選択することができる。さらに別の実施形態では、単純に領域内の頂点または辺の集合を選択することができる、すなわち、誘導される部分グラフ以外のグラフの部分を選択することもできる。いくつかの実施形態では、より複雑でユーザが構成可能なグラフの選択オプションを提供することができる。
【００２１】
構成可能なオプション
いくつかの実施形態では、システムは、ユーザが指定する制約（具体的には、制御点との組み合わせ）を用いて、グラフをフィルタリングする。このシステムは、スライダ制御などの視覚ツールを提供して、これらの制約、ならびに、３次元グラフまたは高い次元のグラフおよび空間領域の視覚表現を設定することができる。
【００２２】
いくつかの実施形態では、このシステムにより、ユーザは２つ以上の制御点またはフィルタを構築して、グラフをフィルタリングすることができる。このように、制御点および／または制約を視覚的に指定することにより、ユーザは、非常に複雑で繊細なグラフ検索を簡単に表現することができる。具体的には、２つの制御点を作成することで、両方の制御点を満たすグラフの部分のみ、すなわち２つの空間領域の交差部のグラフの部分のみを選択することができる。あるいは、本発明のいくつかの実施形態では、２つの空間領域の結合部のグラフの部分をユーザが選択することもできる。
【００２３】
グラフの一部を選択する、あるいはフィルタリングした後、このシステムは、メモリまたは非一時的な記憶装置にフィルタリングされた部分を格納することができる。いくつかの実施形態では、システムは、例えば、グラフのフィルタリングされた部分だけを表示する、あるいは、フィルタリングされた部分を強調するなどのその他のオプションを提供することができる。制御点を作成した後、このシステムは、さらに別のフィルタリングオプションを提供することができる。例えば、グラフの異なる部分が空間領域により囲まれるよう、制御点を動かすことができ、これにより、フィルタリングされるグラフの部分を変更することができる。あるいは、制御点を動かすことにより、視覚表現内の選択されるグラフの部分を動かすことができる。いくつかの実施形態では、このシステムは、制御点を設定後のフィルタリングされるグラフの部分、または、選択されるグラフの部分に関連するグラフ統計値を表示することができる。例えば、このシステムは、頂点の数、辺の数、密集度、頂点の度合の平均または範囲、頂点ごとのクリークの三角の数の平均または範囲、クラスター化、ｋコア数、グラフ距離の測定値などを表示することができる。このシステムにより、ユーザは、例えば、制御点が設定された後に、制御点をクリックすることにより、あるいは、スライダ制御を調整することにより、制約を追加したり修正したりすることもできる。
【００２４】
システムのアーキテクチャ
図２には、本発明の実施形態に従った、グラフ検索法を用いるグラフ計算システム２００の例示的なアーキテクチャのブロック図が示されている。複数のプロセッサと並列に接続するグラフ計算システム２００は、グラフの頂点を分割し、グラフ上で検索を行うことができる。従来のシステムでは、システム２００を使用する際、ユーザがスクリプトを書きこんで、グラフ検索を行わなければならない。しかしながら、本明細書で開示される方法を用いると、システム２００を使用して、ユーザは複雑なグラフ検索動作を容易に視覚的に行うことができる。
【００２５】
グラフ計算システム２００は、サーバ２０６に接続する記憶装置２０４にインストールされるグラフ管理モジュール２０２を含むことができる。なお、本発明の種々の実装形態では、サーバおよび記憶装置の数は任意でよい。種々の実装形態では、グラフ管理モジュール２０２は、本明細書に記載される技術を実行するためのグラフ・フィルタリング・モジュール、またはグラフ計算システム２００のその他の構成要素を含むことができる。システム２００は、頂点と辺が記述されるデータを受け取り、そのデータを記憶装置２０４に格納することができる。システム２００は、グラフ管理モジュール２０２に関するコード、および頂点と辺２０８に関するデータを記憶装置２０４から読み取ることができる。システム２００は、グラフまたは部分グラフを分割し、分割したグラフをプロセッサ２１０Ａ〜２１０Ｈなどのプロセッサに割り当てることができ、これらのプロセッサが割り当てられたグラフまたは部分グラフ上で動作する。
【００２６】
局所化されたフィルタを用いてグラフを検索する方法
図３には、本発明の実施形態に従った、局所的なフィルタに基づいて、グラフを検索する方法のフローチャート３００が示されている。動作中、このシステムは、グラフの頂点と辺を示すデータを取得する（動作３０２）。次いで、このシステムは、グラフの視覚表現をユーザのために表示する（動作３０４）。次いで、このシステムは、制御点または視覚表現内の領域を含むローカル・グラフ・フィルタを規定するコマンドをユーザから受け取ることができる（動作３０６）。
【００２７】
次に、このシステムは、グラフの表現をフィルタリングして、制御点により指定される領域内に表示される頂点により誘導される部分グラフを含むことができる（動作３０８）。いくつかの実施形態では、フィルタリングされた表現には、領域内に表示される辺により誘導される部分グラフが含まれ得る。他の実施形態では、フィルタリングされた表現には部分グラフではなく領域内で表示される頂点または辺が単純に含まれ得る。
【００２８】
最後に、このシステムは、フィルタリングされた表現を格納することができる（動作３１０）。いくつかの実施形態では、このシステムは、フィルタリングされたグラフの部分を強調することができる、あるいは、フィルタリングされた部分だけを表示することができる。このシステムにより、ユーザは制御点を動かすこともでき、これにより、フィルタリングされるグラフの部分を変更することができる。さらに、このシステムは、制御点の設定後に、フィルタリングされるグラフの部分、または、選択される部分に関連するグラフ統計値を表示することもできる。このシステムにより、ユーザは、例えば、制御点の設定後に、制御点をクリックする、あるいは、スライダ制御を調整することにより、制約を追加したり修正したりすることもできる。
【００２９】
局所化フィルタの組み合せ
本発明の実施形態により、ユーザは同時に複数の局所的なフィルタを規定することができ、これに伴い、グラフの視覚表現内で複数の領域を指定することもできる。これらの複数の領域では、サイズ、形状、位置、および制約の基準が互いに異なる可能性がある。このシステムは、「制御点を追加する」視覚ボタン制御、ショートカット、音声コマンド、または、局所化される新しいグラフ・フィルタをユーザが手際よく作成することができるその他の制御を提供することができる。
【００３０】
干渉することなしに、複数の局所的なフィルタを単一のグラフ内に提示することができる。いくつかの実施形態では、例えば、クリックすることにより、あるいは、ポインティングディバイスで指すことにより、ローカル・グラフ・フィルタ（またはその制御点）がユーザにより動的に選択されると、局所化されるグラフ・フィルタに関連する領域が強調されて示され得る。いくつかの実施形態では、例えば、制御点を再度クリックすることにより、あるいは、ポインティングディバイスで領域の外側を指すことにより、この視覚表現内の領域を隠すことができる。さらに、視覚の散乱を避けるために、動的に使用しないとき、統計値、制約、またはその他の局所的なフィルタまたはグラフの関連部分に関する関連情報を隠すことができる。例えば、各ローカル・グラフ・フィルタ（および、その視覚表現、ＧＵＩ制御など）を単一の点（制御点と呼ばれる）に縮小することができ、その点を領域の中心に配置することができる（かつ、そのように表示することができる）。次いで、例えば、ユーザが制御点をクリックする、あるいは、ポインティングディバイスで指すことにより、その情報を表示することができる。
【００３１】
いくつかの実施形態では、このシステムにより、いくつかの局所的なフィルタのフィルタリング機能が相互作用するよう、すなわち、単一のフィルタとして共に動作するよう、ユーザが局所的なフィルタを組み合せることができる。例えば、このシステムにより、ユーザは２つ以上の制御点を組み合せたり、作成したり、あるいはフィルタリングしたりして、グラフのフィルタリングを行うことができる。フィルタを組み合わせたり、作成したりすることにより、ユーザは制御点および／または制約を視覚的に指定することにより、非常に複雑で繊細なグラフ検索を簡単に表現することができる。
【００３２】
図４Ａには、本発明の実施形態に従った、関連する２つの空間領域の交差部に関与する組み合わせにより、グラフ１００をフィルタリングする例が示されている。図４Ａに示される通り、２つの局所化されるグラフ・フィルタを作成することにより、両方の局所的なフィルタを満たす、すなわち、２つの空間領域の交差部内に存在するグラフの部分だけを選択することができる。この図面で示される通り、領域４０２と領域４０４は異なる形状でよく、グラフの異なる部分に中心を有してよい。これらの交差部を介する領域４０２および４０４を作成することにより、領域４０２と領域４０４の両方に含まれる唯一の頂点である頂点４０６だけを選択することができる。これとは対照的に、領域４０４内に表示されるが、領域４０２にはない頂点４０８は、選択されない。さらに、図４Ａには両方とも領域の交差部内に存在する２つの頂点を接続する辺が存在しないため、この図の中の辺は選択されない。例えば、図示される通り、頂点４０６と頂点４０８を接続する辺は選択されない。
【００３３】
あるいは、図４Ｂに示される通り、このシステムにより、ユーザは２つの空間領域の結合部内のグラフの部分を選択することができる。図４Ｂには、本発明の実施形態に従った、関連する２つの空間領域の結合部の組み合わせにより、グラフ１００をフィルタリングする例が示されている。図４Ｂには、図４Ａと同じグラフおよび同じ空間領域が示されている。しかしながら、この場合、領域４０２または領域４０４のどちらかに表示される全ての頂点が選択される。例えば、領域４０２内に含まれるが領域４０４内には含まれない、頂点４１０と頂点４１２は選択される。同様に、頂点４１０と頂点４１２を接続する辺４１４も選択される。
【００３４】
なお、図４Ａおよび図４Ｂには、フィルタリングの結果が組み合せられる空間領域内の頂点により誘導される部分グラフとして示されている。これは、空間領域とその他のフィルタ基準に基づいて頂点が選択され、選択された頂点を辺が接続する場合、およびその場合に限って、辺が選択される。しかしながら、いくつかの実施形態では、このシステムはその他の選択基準を使用することができる。例えば、このシステムは、辺に誘導される部分グラフをフィルタリングの結果として使用することができる。他の実施形態では、このシステムは、例えば、少なくとも１つの選択された頂点が、隣接する選択された頂点を要求することにより、もっと複雑な選択規則を使用することができる。
【００３５】
制約を有する局所的なグラフ・フィルタ
空間領域内で表示されるグラフの部分に基づく、グラフのフィルタリングに加え、いくつかの本発明の実施形態では、ユーザがフィルタリングされたグラフ上で制約｛ｆｉ｝を指定することができる。制約では、関数がｆｉ＝０などの数値とることを要求され得る。なお、ｆｉはある特性、すなわちグラフ、部分グラフ、またはグラフの一部の頂点、および／または辺の特性の関数でよく、概略的に、ｆｉ＝ｆｉ（Ｖ，Ｅ）と表す。例えば、ｆｉ＝ｄｅｇ（Ｖ）−６（ｄｅｇ（Ｖ）は空間領域内に表示される頂点の度合を示す）の場合、制約ｆｉ＝０では、６の度合を有する領域内の頂点が選択される。あるいは、制約により最大値または最小値（例えば、ｆｉ＞３かつｆｉ≦５）を設定することができる。
【００３６】
空間領域と同様に、例えば、ＡＮＤやＯＲのような論理演算子を用いて、制約を作成することもできる。次いで、例えば、制約の集合Ｆ＝｛ｆ１，．．．，ｆｊ｝のＡＮＤを介する構成（ｆ１ＡＮＤ．．．ＡＮＤｆｉ．．．ＡＮＤｆｊ）により、集合Ｆ内の全ての制約が同時に満たされなければならない。あるいは、ＡＮＤとＯＲが織り込まれた組合せを用いて、より繊細で柔軟性のある制約の構成を構築することもできる。
【００３７】
制約を数式の形態で、あるいは文字列で特定することができる。メニューなどの事前に設定されたオプションから変数パラメータを用いて制約を選択することができる、あるいは、特別な入力言語などにより、より柔軟に指定することができる。制約とそれに関連する変数は、スライダ制御、ドロップダウンメニュー、またはボタンなどの視覚ユーザツールによっても設定することができる。
【００３８】
図５Ａには、本発明の実施形態に従った、図４Ｂの空間領域の結合部によってフィルタリングされ、さらに頂点の特性に制約を組み込んだ、グラフ１００の例が示されている。グラフの表現内の制御点の近くに制約を視覚的に表示することができる（例えば、テキストおよび／または数式により）。例えば、図５Ａに示される通り、ユーザは最小許容度合２と最大許容度合３の両方を指定することができる。これにより、度合２または３が選択された頂点だけがフィルタにより選択される。図５Ａに示される通り、度合４の頂点５０２は、最小度合の制約を満たすが、最大度合の制約を満たさないため選択されない。頂点５０２と頂点５０６を接続する辺５０４は、頂点５０６が選択されているが、頂点５０２が選択されないため選択されない。なお、図５Ａでは、隣接する頂点が空間領域内にあるかどうか、その頂点自体がフィルタリングの制約を満たしているかどうかに関わらず、度合を標準的な方法で規定することができる。しかしながら、実施形態によっては、このシステムは、度合またはその他のグラフ特性を首尾一貫した方法で判定し得る、例えば、それ自体がフィルタの制約を満たしている頂点だけに隣接する頂点として見なす方法により判定するものもある。
【００３９】
図５Ｂには、図５Ａのグラフに制約を適用してフィルタリングしたグラフ５０８が示されている。この図面に示される通り、いくつかの本発明の実施形態では、フィルタリングされたグラフの部分すなわち部分グラフだけを表示することができる。局所的なグラフ・フィルタを適用した後、このシステムは、フィルタリングされた部分すなわち部分グラフを非一時的な記憶装置に格納することができる。システムは、フィルタリングされた部分すなわち部分グラフを検索結果としても提供し、グラフ計算またはその他の分析への入力としてこの検索結果を使用することができる。
【００４０】
制約の基準になる例示的な位相グラフ特性には、頂点の度合、頂点が属する三角の数、頂点が属するｋクリーク（すなわち、ｋ個の要素を有するクリーク）の数、頂点が属するクリークの総数、クラスタリング、ｋコア数、グラフ距離の測定値などが含まれる。いくつかの実施形態では、グラフは位相的な情報以外に付加的な情報を含んだり、指したりすることができる。例えば、グラフは、複数のタイプの頂点と辺を含むことができる（一般に、異種混合グラフ、またはマルチタイプグラフと呼ばれる）。その他の特性には、時間と空間の従属物（グラフのノードと辺の両方に関する）、および２部グラフ特性、あるいは、より一般的には、ｋグラフ特性が含まれ得る。
【００４１】
いくつかの実施形態では、グラフは、付加的な情報を有するために、あるいは、示すために、頂点または辺に関する補助特性を指定することができる。例えば、グラフの頂点は、人、対象、販売する製品、取引などを表すことができ、そして、グラフは、人の友達、取引のタイムスタンプ、人のチェックイン場所またはその他の場所、人の年齢や政見などの補助特性を指定することができる。このような補助特性は属性とも呼ばれ、グラフは属性グラフまたは多変数グラフとして補助特性を指定する。
【００４２】
このシステムは、頂点または辺の補助特性に関する制約を指定することができる。例えば、選択される頂点は１８才から２７才までの年齢の人を表すものとすることを制約により指定することができる。また、頂点または辺の位相特性と補助特性の組み合わせなどの構築された特徴にも制約は関連し得る。例えば、同様の政見を有する人達の４クリークに頂点が属するものとすることを制約により指定することができる。このように制約をフィルタリングすることにより、繊細な検索を簡単に行い、重要な用途を表す、ネットワーク内の有用な関係をユーザが見つけることができる。
【００４３】
一般に、フィルタとして使用可能な特性および／または属性は、グラフに関連してよい。あるいは、フィルタとして使用可能な特性および／または属性は、グラフのノードと辺に直接関連しない特性および／または属性でよい。例えば、特性および／または属性は、「最後の取引のタイムスタンプ」、「個人がチェックインした／居た最後の場所」、または「個人の年齢」などの外部のノードおよび辺の属性でもよい。いくつかの実施形態では、フィルタまたは制約として使用する属性は、システム自体により引き出される特性でもよい。例えば、グラフまたは属性の行列因数分解では、固有ベクトルを属性と見なし、フィルタリングに関する基として使用することができる。いくつかの実施形態では、このシステムは、予測のための分類法または回帰法と共に使用することができる。次いで、このシステムは、予測の不確定性に基づいて、あるいは、他の可能性の中でも、正確に／不正確に分類されたノード／辺を表す属性に基づいて、属性を作成することができる。
【００４４】
いくつかの実施形態では、属性は関係を有することができ、制約は関係のある属性を指すことができる。他の実施形態では、属性に関係がなくてよい。
【００４５】
フィルタ制約のための視覚制御
本発明のいくつかの実施形態では、制約を設定するための、スライダ制御、ドロップダウンメニュー、またはボタンなどの視覚ツールが提供することができる。いくつかの実施形態では、例えば、既存のローカル・グラフ・フィルタ上に表示される制御点をクリックすることにより、ユーザが制約を追加することができる。図６Ａには、本発明の実施形態に従って、視覚スライダ制御で特定される制約により、グラフをフィルタリングする様子が示されている。図６Ａには、図１Ｂのグラフ１００と局所的なグラフ・フィルタが示されている。しかしながら、図１Ｂに示される空間領域１０６に加えて、図６Ａのグラフはまた、最小の数の三角での制約によりフィルタリングされる。三角とは、クリーク、すなわち３つの頂点で完全に接続される部分グラフである。したがって、図６Ａに示されている制約により、選択されるためには、頂点は少なくとも最小の数の三角の要素であることが必要である。
【００４６】
図６Ａに示される通り、いくつかの実施形態では、このシステムにより、ユーザはスライダ制御などの視覚ツールを介して最小数の三角などの制約のパラメータを指定することができる。図示される通り、スライダ６０２は値０に設定され、最小０個の三角を示している。このことは、これらの頂点に関する付加的な制約がないことと同じである。したがって、このグラフは空間領域によってのみフィルタリングされ、図示される通り、図１Ｂと同じ部分グラフが選択される。
【００４７】
図６Ｂには、スライダ制御が異なる値に調整された状態の、同じグラフと制約が示されている。この場合、スライダ６０４は値１に設定されている。したがって、選択されるためには、頂点は少なくとも１つの三角の要素であることが図６Ｂに示される制約により必要となる。スライダの値をこのように変更した結果、頂点６０６は、どの三角にも属さないため図６Ａでは選択されるが、図６Ｂでは選択されない。同様に、辺６０８は、頂点６０６に接続するため選択されない。しかしながら、同じ三角に属する頂点６１０と頂点６１２は選択される。
【００４８】
なお、頂点６１０と頂点６１２は、２つの三角に属し、これらの三角のうちの一方は完全に空間領域１０６の内側にある。頂点６１０と頂点６１２とともに第２の三角を形成する頂点６１４は、領域１０６の外側にあるため選択されない。いくつかの実施形態では、制約に関連する頂点または辺の特性は、グラフ全体に対して計算されるため、例えば、頂点６１０は２つの三角に属する。しかしながら、他の実施形態では、特性は空間領域内のグラフの部分に対して計算され得るため、例えば、頂点６１０は１の三角の数を有する。いくつかの実施形態では、特性は、制約を含む局所的なグラフ・フィルタに対して、自己整合的に計算され得る。
【００４９】
高次元のグラフおよび局所フィルタの可視化
いくつかの実施形態では、グラフの表現は、３次元以上の高次元で表される。グラフの３次元以上の可視表現を表示することにより、本発明の実施形態では、複雑なグラフに関する詳細な情報を厳密な２次元の可視表現よりもより明瞭に、かつより深く示すことができる。図７には、本発明の実施形態に従った、多次元空間領域により、多次元グラフをフィルタリングする例が示されている。この例では、グラフの３次元の表現７００が局所的なグラフ・フィルタの作成に用いられる３次元の領域７０２と共に示されている。この図で見られる通り、頂点７０４は３次元の領域７０２内に表示され、したがって、フィルタリングされたグラフの表現内で選択される。領域７０２は立方体として示されているが、球体、長球体、多角体などの別の３次元体も使用可能である。
【００５０】
このシステムは、グラフの視覚表現を２次元のディスプレイすなわちスクリーン上に表示するが、それでも、このシステムは、透視図または斜視図あるいは投影図を用いて、図７のような３次元または高次元のグラフの表現を示すことができる。これらの図により、ユーザは、視覚の検査により、グラフの一部がローカル・グラフ・フィルタの空間領域内に位置するかどうか判定することができる。このシステムにより、グラフの一部をより明瞭に可視化するために（具体的には、多次元の可視表現）、ユーザは、視覚表現内の図を回転させたり、水平移動させたり、ズームさせたりすることができる。このシステムは、その他のタイプの表示技術、または３次元以上のグラフを可視化するための関連技術、例えば、ホログラフィック投影、ステレオグラム、またはその他の３次元表示を用いることもできる。動画を用いて１次元以上の可視表現をステップスルーし、これにより、フレームごとに可視化されるために必要な次元の数を減らすことができる。さらに、例えば、高次元の可視表現の２次元の投影画像または３次元の投影画像を表示することにより、３次元より高い次元を用いるグラフ可視表現も示すことができる。
【００５１】
例示的な装置
図８には、いくつかの実施形態に従って、視覚グラフ検索および局所的なフィルタリングを容易にする例示的な装置８００のブロック図が示されている。装置８００は、有線や無線の通信チャネルを介して互いに通信可能な複数のモジュールを含むことができる。装置８００は１つ以上の集積回路を用いて実現され得、含まれるモジュールの数は図８に示されるモジュールより少なくても多くてよい。さらに、装置８００はコンピュータシステム内に統合される、あるいは、他のコンピュータシステム、および／または装置と通信可能な分離装置として実現され得る。具体的には、装置８００は、グラフデータ受信モジュール８０２、グラフ表示モジュール８０４、制御点受信モジュール８０６、およびグラフ・フィルタリング・モジュール８０８を含むことができる。なお、装置８００は、図８には図示されない付加的なモジュールも含むことができる。
【００５２】
いくつかの実施形態では、グラフデータ受信モジュール８０２が、グラフの頂点と辺の表現を含むデータを受け取ることができる。グラフ表示モジュール８０４は、２次元以上のグラフの視覚表現を表示することができる。制御点受信モジュール８０６は、グラフの可視表現内の空間領域、および任意の制約を含むローカル・グラフ・フィルタを規定するユーザコマンドを受け取ることができる。グラフ・フィルタリング・モジュール８０８は、制御点受信モジュール８０６により受け取られたローカル・グラフ・フィルタに従って、かつ指定された任意の制約により、グラフをフィルタリングすることができ、フィルタリングされたグラフ表現を表示することができる、あるいは格納することができる。なお、図２に示されるグラフ管理モジュール２０２は、図８に示される様々なモジュールの任意のかつ全ての機能を提供することができる。
【００５３】
例示的なシステム
図９には、いくつかの実施形態に従った、例示的なグラフ検索およびフィルタリングを行うためのコンピュータシステム９００が示されている。いくつかの実施形態では、コンピュータシステム９００はサーバでよい。いくつかの実施形態では、システム９００は、プロセッサ９０２、メモリ９０４、および記憶装置９０６を含む。いくつかの実施形態では、プロセッサ９０２には、一連のプロセッサが含まれ得る。記憶装置９０６は、アプリケーション９１４および９１６などの複数のアプリケーション、およびオペレーティングシステム９２２を格納することができ、これらのアプリケーションにより、本発明の実施形態に従ったグラフ検索や関連する検索結果が用いられ得る。記憶装置９０６は、グラフデータ受信モジュール８０２、グラフ表示モジュール８０４、制御点受信モジュール８０６、およびグラフ・フィルタリング・モジュール８０８を含むグラフ・フィルタリング・システム９０８も格納する。システム９００および／またはグラフデータ受信モジュール８０２は、頂点と辺のデータを含むグラフデータ９３０を受け取ったり、生成したりすることができ、グラフデータをグラフ・フィルタリング・システム９０８にアクセス可能なメモリ部にコピーすることもできる。動作中、グラフ・フィルタリング・システム９０８などの１つ以上のアプリケーションは、記憶装置９０６からメモリ９０４に読み込まれ、次いで、プロセッサセット９０２により実行される。プログラムが実行されると、プロセッサセット９０２は上述の機能を行う。システム９００は、ディスプレイ９１０、キーボード９１８、およびポインティングディバイス９２０に接続することができ、このディスプレイ９１０が、グラフ９１２などのグラフの可視化表現を表示することができる。
【００５４】
いくつかの実施形態では、グラフデータ受信モジュール８０２が、グラフの頂点と辺の表現を含むデータを受け取ることができる。グラフ表示モジュール８０４は、２次元以上のグラフの視覚表現を表示することができる。制御点受信モジュール８０６は、グラフの可視表現内の空間領域、および任意の制約を含むローカル・グラフ・フィルタを規定するユーザコマンドを受け取ることができる。グラフ・フィルタリング・モジュール８０８は、制御点受信モジュール８０６により受け取られたローカル・グラフ・フィルタに従って、かつ指定された任意の制約により、グラフをフィルタリングすることができ、フィルタリングされたグラフ表現を表示することができる、あるいは格納することができる。なお、図２に示されるグラフ管理モジュール２０２は、図９に示される様々なモジュールの任意のかつ全ての機能を提供することができる。
【００５５】
この詳細な説明で記載されたデータ構造とコードは、通常、コンピュータ可読記憶媒体に格納され、このコンピュータ可読媒体は、コンピュータシステムが使用するコード、および／またはデータを格納可能な任意の装置または媒体でよい。コンピュータ可読記憶媒体には、揮発性メモリ、不揮発性メモリ、およびディスク・ドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多機能ディスクまたはデジタルビデオディスク）、または、今現在知られている、あるいは、今後開発されるその他のコンピュータ可読媒体を格納可能な媒体などの、磁気記憶装置や光記憶装置が含まれるが、これらには限定されない。
【００５６】
この詳細な説明で記載された方法および処理は、コードおよび／またはデータとして具現化することができ、これらは上記のコンピュータ可読記憶媒体に格納することができる。コンピュータシステムが、コンピュータ可読記憶媒体に格納されたコード、および／またはデータを読み込み実行すると、そのコンピュータシステムは、データ構造およびコードとして具現化され、コンピュータ可読記憶媒体内に格納された方法および処理を実行する。
【００５７】
さらに、本明細書に記載された方法および処理は、ハードウェア・モジュールまたは装置内に含まれ得る。これらのモジュールまたは装置には、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定の時間に特定のソフトウェアモジュールまたはコードの一部を実行する専用または共有のプロセッサ、および／または、今現在知られている、あるいは、今後開発されるその他のプログラム可能論理回路が含まれ得るがこれらには限定されない。ハードウェア・モジュールまたは装置が起動すると、その中に含まれる方法および処理が実行される。
【図１Ａ】
2017220225.tif 000003
【図１Ｂ】
2017220225.tif 000004
【図２】
2017220225.tif 000005
【図３】
2017220225.tif 000006
【図４Ａ】
2017220225.tif 000007
【図４Ｂ】
2017220225.tif 000008
【図５Ａ】
2017220225.tif 000009
【図５Ｂ】
2017220225.tif 000010
【図６Ａ】
2017220225.tif 000011
【図６Ｂ】
2017220225.tif 000012
【図７】
2017220225.tif 000013
【図８】
2017220225.tif 000014
【図９】
2017220225.tif 000015