JP2014010812A - 情報処理装置、情報提供装置、情報システム及び情報処理プログラム - Google Patents

情報処理装置、情報提供装置、情報システム及び情報処理プログラム Download PDF

Info

Publication number
JP2014010812A
JP2014010812A JP2012149369A JP2012149369A JP2014010812A JP 2014010812 A JP2014010812 A JP 2014010812A JP 2012149369 A JP2012149369 A JP 2012149369A JP 2012149369 A JP2012149369 A JP 2012149369A JP 2014010812 A JP2014010812 A JP 2014010812A
Authority
JP
Japan
Prior art keywords
information
storage unit
graph data
unit
data
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
JP2012149369A
Other languages
English (en)
Other versions
JP5777575B2 (ja
Inventor
Daisuke Ajifu
大介 安次富
Keisuke Minami
圭祐 南
Shinya Murai
信哉 村井
Hiroyuki Aizu
宏幸 会津
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012149369A priority Critical patent/JP5777575B2/ja
Priority to US13/933,462 priority patent/US20140009472A1/en
Publication of JP2014010812A publication Critical patent/JP2014010812A/ja
Application granted granted Critical
Publication of JP5777575B2 publication Critical patent/JP5777575B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • 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

Landscapes

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

Abstract

【課題】グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータに対し、十分なスループットを得ることを可能にする情報処理装置、情報提供装置、情報システム及び情報処理プログラムを提供することである。
【解決手段】実施形態の情報処理装置は、第1記憶部と、第2記憶部と、第1取得部と、判定部と、記憶制御部と、を有する。第1取得部は、グラフの元となる関係を有する関係データを取得する。判定部は、グラフデータの記憶先を指定する指定情報、及び第1記憶部又は第2記憶部が記憶しているグラフデータに対する接続関係、並びに関係データのデータサイズの少なくともいずれかに基づいて、関係データから得られるグラフデータを第1記憶部又は第2記憶部のいずれに記憶させるかを判定する。記憶制御部は、判定部の判定結果に応じて、グラフデータを第1記憶部又は第2記憶部のいずれかに記憶させる。
【選択図】図1

Description

本発明の実施形態は、情報処理装置、情報提供装置、情報システム及び情報処理プログラムに関する。
現在、リレーショナルデータモデルに沿ったリレーショナルデータベースが広く用いられている。データベースを高速化するための方法として、インメモリデータベースが知られている。インメモリデータベースは、データ、索引、一時データの全てがメモリ上に存在するメモリアクセスのみを前提としたアーキテクチャーとなっている。また、インメモリデータベースの例として、グラフのノードとエッジにデータを格納するグラフデータベースが知られている。
特開2011−90352号公報
しかしながら、インメモリデータベースのグラフデータベースは、挿入処理におけるメモリへのキャッシュや、メモリ上でのマージ処理など、書込みのための処理が多くなるために、十分なスループットを得られないことがある。
本発明の一側面は、グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータに対し、十分なスループットを得ることを可能にする情報処理装置、情報提供装置、情報システム及び情報処理プログラムを提供することである。
実施形態の情報処理装置は、第1記憶部と、第2記憶部と、第1取得部と、判定部と、記憶制御部と、を有する。第1記憶部は、グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータを記憶可能にされている。第2記憶部は、第1記憶部よりも速いアクセス速度でグラフデータを記憶可能にされている。第1取得部は、グラフの元となる関係を有する関係データを取得する。判定部は、グラフデータの記憶先を指定する指定情報、及び第1記憶部又は第2記憶部が記憶しているグラフデータに対する接続関係、並びに関係データのデータサイズの少なくともいずれかに基づいて、関係データから得られるグラフデータを第1記憶部又は第2記憶部のいずれに記憶させるかを判定する。記憶制御部は、判定部の判定結果に応じて、グラフデータを第1記憶部又は第2記憶部のいずれかに記憶させる。
第1の実施形態にかかる情報処理装置の構成を例示する機能ブロック図。 第1記憶部におけるグラフデータの格納形式を例示する図表。 第1の実施形態にかかる情報処理装置がグラフデータを登録する動作例を示すシーケンス図。 第1取得部が取得する関係データの例を示す概念図。 第1記憶部におけるグラフデータの更新処理後のファイル状態を例示する図表。 第1記憶部における更新対象データの削除処理後のファイル状態を例示する図表。 第2の実施形態にかかる情報処理装置の構成を例示する機能ブロック図。 第2取得部が先読み処理を行う場合の第2の実施形態にかかる情報処理装置の動作を例示するフローチャート。 第3の実施形態にかかる情報処理装置の構成及びその周辺を例示するブロック図。 グラフデータ登録のための第3の実施形態にかかる情報処理装置及びサーバ装置の動作を示すシーケンス図。 第4の実施形態にかかる情報処理装置及び情報提供装置の概略を示すブロック図。 部分グラフの要求を受けた第4の実施形態にかかる情報提供装置の動作例を示すフローチャート。 補助情報を用いたグラフデータ表示のための第4の実施形態にかかる情報処理装置及び情報提供装置の動作を示すシーケンス図。
以下に添付図面を参照して、実施形態にかかる情報処理装置について説明する。
(第1の実施形態)
図1は、第1の実施形態にかかる情報処理装置10の構成を例示する機能ブロック図である。なお、情報処理装置10は、例えば、PC(Personal Computer)、デジタルテレビ、ハードディスクレコーダ、タブレットPC又はスマートフォン等のモバイルデバイスとして実現される。即ち、情報処理装置10は、CPU、主記憶装置、補助記憶装置及び通信インターフェイスなどを備えたコンピュータとしての機能を有する。
図1に示すように、情報処理装置10は、第1記憶部100、ログ記憶部110、第2記憶部120、第1取得部130、判定部140及び記憶制御部150を有する。なお、判定部140及び記憶制御部150は、ハードウェア回路、又はCPUで実行するソフトウェアのいずれであってもよい。
第1記憶部100は、グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータを記憶する記憶部である。例えば、第1記憶部100は、不揮発性の補助記憶装置であり、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ又はMRAM(Magnetoresistive Random Access Memory)などによって構成される。第1記憶部100は、単一の補助記憶装置であってもよいし、複数の補助記憶装置を併用する構成であってもよい。
図2は、第1記憶部100におけるグラフデータの格納形式(ファイル編成)を例示する図表である。図2に示すように、第1記憶部100は、ノードファイル(a)、エッジファイル(b)及びプロパティファイル(c)を含む例えばWebページのグラフデータを記憶する。
ノードファイルには、Webページ毎にノードID(区別情報)、ノードタイプ、プロパティ・オフセット、エッジ・オフセット及び削除フラグが含まれる。エッジファイルには、エッジ毎(A→Bなど)に、エッジID、エッジタイプ、プロパティ・オフセット、起点ノード・オフセット、終点ノード・オフセット及び削除フラグが含まれる。プロパティファイルには、Webページ毎に、次バージョンオフセット、url(Uniform Resource Locator)及びタイトル(title)が含まれる。これらは、あくまでWebページデータにおけるプロパティの一例であり、グラフデータとして管理する対象毎に、様々なプロパティが設定されてもよい。
ログ記憶部110(図1)は、ログ出力による永続性の保証のために、グラフデータを記憶する。
第2記憶部120は、第1記憶部100よりも速いアクセス速度でグラフデータを記憶する。例えば、第2記憶部120は、揮発性の主記憶装置であり、DRAM(Dynamic Random Access Memory)などのメモリによって構成される。第2記憶部120が記憶するグラフデータは、ノードやエッジそれぞれの属性情報を含めて実体化され、それぞれがポインタで接続されてグラフ構造を形成するように構成されてもよい。また、第2記憶部120は、グラフデータの一部(例えば属性情報)を第1記憶部100に残し、残した情報のアドレス情報を保持してノード及びエッジを部分的に実体化するようにグラフデータを記憶してもよい。また、第2記憶部120は、第1記憶部100と同様にノードID(区別情報)などを含む形式でグラフデータを記憶してもよい。
第1取得部130は、グラフの元となる関係を有する関係データを取得し、記憶制御部150に対して出力する。例えば、関係データは、WebブラウザによるWebページの閲覧履歴などであり、グラフデータ化が可能な関係を有するグラフデータ化前のデータである。Webページ閲覧履歴(一覧)をグラフデータ化する場合、例えばWebページ一覧の各ページをそれぞれノードとし、各ページ間のリンクをそれぞれエッジとする。また、第1取得部130は、関係データに付加されて後述する判定に用いられる動作設定も取得し、判定部140に対して出力するように構成されてもよい。
具体例として、第1取得部130は、情報処理装置10(PCなど)のWebブラウザの閲覧履歴としてキャッシュされているWebページを読み込み、Webグラフを生成して記憶する(図4参照)。例えば、第1取得部130は、Webグラフをビューとして閲覧可能にするWebブラウザの拡張機能、すなわちアプリケーションとして実現される。
判定部140は、第1取得部130から受入れた動作設定に応じて、グラフデータを第1記憶部100又は第2記憶部120のいずれに記憶させるかを判定する。ここで、動作設定とは、例えば、グラフデータの記憶先を指定する指定情報、及び第1記憶部100又は第2記憶部120が記憶するグラフデータに対する接続関係、並びに関係データのデータサイズの少なくともいずれかによりグラフデータの記憶先を設定する制御情報であるとする。例えば、判定部140は、第2記憶部120に既に記憶されているグラフデータに対し、接続関係がないグラフデータは第1記憶部100へ直接書込む。判定部140は、第2記憶部120及び第1記憶部100の両方に既に記憶されているグラフデータに対して接続関係を参照するように構成されてもよい。
記憶制御部150は、第1取得部130が取得した関係データを受入れ、判定部140の判定結果に応じて、関係データに対応するグラフデータを第1記憶部100又は第2記憶部120のいずれかに記憶させることにより、グラフデータの登録を行う。なお、記憶制御部150は、第1記憶部100にグラフデータを記憶させる場合において、関係データを第1記憶部100へ記憶させるグラフデータ形式に直接変換してもよいし、第2記憶部120上で保持する構造に一旦変換した上で記憶させてもよい。また、記憶制御部150は、関係データの順序をそのまま維持させてグラフデータを記憶させてもよいし、隣接ノード(アクセス順序が近いノード)が物理的に近くに配置されるようにグラフデータを記憶させてもよい。
また、記憶制御部150は、第1記憶部100に対して、例えば不揮発性記憶領域上の書込み先アドレスを計算する。ここで、記憶制御部150は、第1記憶部100に対しては全てのグラフデータを、予め定められた固定サイズで追記(完全追記)する。第1記憶部100に対して、グラフデータは、完全追記であることと、固定サイズであることから、高速に書込まれる。
また、記憶制御部150は、第2記憶部120に対しては、グラフデータのインスタンス化を行い、グラフデータの第2記憶部120内(メモリ上)での接続を実現する(メモリ上での展開)。ここで、記憶制御部150は、既に第2記憶部120(第1記憶部100及び第2記憶部120でもよい)に記憶されているグラフデータの情報(ノードIDなど)を参照し、グラフデータのインスタンスの重複を防止している。
記憶制御部150は、グラフデータだけでなく、記憶先情報を第1取得部130から受入れるように構成されてもよい。なお、記憶制御部150は、記憶先情報及びグラフデータを別個に処理するように構成されてもよい。
具体例として、記憶制御部150は、グラフデータベース・ライブラリの登録関連API(Application Program Interface)及びその内部処理である。記憶制御部150は、グラフデータベースのオープン処理の引数として記憶先情報を指定できるように構成されてもよいし、新規挿入・更新・削除といった登録系処理の引数として記憶先情報を指定できるように構成されてもよい。例えば、記憶先情報は、グラフデータベースをインメモリデータベースとして動作させるか(常に第2記憶部120に記憶させるか)、ファイルデータベースとして動作させるか(第1記憶部100に記憶させるか)のいずれかを判断可能な情報を含む。また、記憶先情報は、ファイルデータベースとして第1記憶部100を利用する場合のファイル又はディレクトリのパス情報を含んでもよい。
なお、情報処理装置10は、記憶制御部150と、第1記憶部100及び第2記憶部120とが内部ネットワークなどを介して接続される構成であってもよい。この場合、記憶先情報は、IPアドレスやホスト名、ポート番号、データベースのユーザIDや秘密情報を含むものであってもよい。なお、この記憶先情報は必須ではなく、判定部140は、常にいずれかの情報によって判定を行うように構成されてもよい。
次に、情報処理装置10の動作について説明する。図3は、情報処理装置10がグラフデータを登録する動作例を示すシーケンス図である。図4は、情報処理装置10の第1取得部130が取得する関係データの例を概念的に示す概念図である。
図3に示すように、ステップ100(S100)において、第1取得部130は、例えばWeb閲覧履歴として蓄積されたWebページ一覧(図4(a)参照)を関係データとして取得する。第1取得部130は、Webページ一覧のページをノードとし、ページ間のリンクをエッジとすることにより、Webページ一覧をグラフデータ化する(図4(b)参照)。
ステップ102(S102)において、第1取得部130は、グラフデータを記憶制御部150に対して入力する。ステップ104(S104)において、記憶制御部150は、ログ記憶部110に対してログ記録を要求する。ステップ106(S106)において、ログ記憶部110は、障害発生時のリカバーを目的として、入力データ(グラフデータ)をログとして記憶する。つまり、ログ記憶部110は、グラフデータを永続化する。
ステップ108(S108)において、ログ記憶部110は、グラフデータの記憶完了を記憶制御部150に対して通知する。ステップ110(S110)において、記憶制御部150は、グラフデータの記憶先を判定する要求を判定部140に対して行う(判定要求)。
ステップ112(S112)において、判定部140は、上述した動作設定(制御情報)に応じて、グラフデータを第1記憶部100又は第2記憶部120のいずれに記憶させるかを判定する。図3に示した例においては、判定部140は、グラフデータを第1記憶部100に記憶させる判定を行ったとする。ステップ114(S114)において、判定部140は、判定結果を記憶制御部150に対して通知する。
ステップ116(S116)において、記憶制御部150は、第1記憶部100に対し、グラフデータの登録要求を行う。ステップ118(S118)において、第1記憶部100は、グラフデータを記憶する。ステップ120(S120)において、第1記憶部100は、グラフデータの記憶完了を記憶制御部150に対して通知する。ステップ122(S122)において、記憶制御部150は、グラフデータの登録完了を第1取得部130に対して通知する。
次に、記憶制御部150が第1記憶部100に対してグラフデータを記憶させる制御(ファイル編成)について説明する。なお、記憶制御部150は、第1記憶部100がグラフデータの新規挿入、更新又は削除を行うように制御を行う。ここでは、ノード及びエッジのプロパティ以外の情報は変更されず、プロパティについてのみ変更が発生するものとする。また、ノード及びエッジは、新規挿入(追加)又は削除しかなされないこととする。
(新規挿入:図2参照)
まず、記憶制御部150は、第1記憶部100に対してグラフデータを新規挿入する場合、予め定められた書込み順序に従って、第1記憶部100におけるアドレス情報(書込み位置情報)を事前に算出する。なお、アドレス情報とは、第1記憶部100における書込み位置情報であり、例えばファイルの先頭からのオフセット、ページ(不揮発性記憶領域から揮発性記憶領域への読み込み単位)先頭からのオフセット等である。
次に、記憶制御部150は、それぞれのファイルの末尾に、ノード、エッジ及びプロパティを追記する。つまり、記憶制御部150は、グラフデータの新規挿入を行う場合、第1記憶部100においてノード、エッジ及びプロパティを上書きすることなく、新たに追記(完全追記)する。ここで、エッジに含まれてエッジを構成するノードを示す情報は、事前に算出されたアドレス情報とされる。
なお、第1記憶部100に対するグラフデータの新規挿入においては、グラフデータの将来的な更新又は削除に備えて、「次バージョンアドレス(図2(c)参照)」及び「削除フラグ(図2(a)参照)」の2つの領域が設けられている。
「次バージョンアドレス」は、将来的なグラフデータの更新における次バージョンの書込み開始位置を格納する領域である。例えば、「次バージョンアドレス」の領域には、書込み開始位置(ファイルオフセット)情報の他、タイムスタンプ情報やバージョン情報(トランザクション識別情報)が含まれてもよい。また、「次バージョンアドレス」には、最新のエントリであることを示す場合、空アドレス(例えば0で埋める)を示す情報が書込まれる。
「削除フラグ」は、削除されたノード又はエッジであるか否かを示すデータを格納する領域である。例えば、「削除フラグ」には、ブール値のフラグの他、タイムスタンプ情報やバージョン情報(トランザクション識別情報)などが含まれてもよい。
(更新)
記憶制御部150は、第1記憶部100に記憶されたグラフデータを、上述した次バージョンアドレス(例えば次バージョンオフセット)を書込むことによって更新とみなす。図5は、第1記憶部100におけるグラフデータの更新処理後のファイル状態を例示する図表である。図5においては、WebページAのノードのプロパティ(Webページのタイトル)が変更されている。
グラフデータが更新された場合、更新対象データ(ノード・エッジ)には、新規挿入時に算出されたアドレス情報が含まれる。グラフデータが更新されると、更新前に空アドレスであった次バージョンアドレスに更新データの追記位置(ファイルの末尾)のアドレスが書込まれる。追記位置の更新データには、まず最新エントリであることを示す空の次バージョンアドレスが書込まれ、続いて、プロパティの更新情報が追記される。
例えば、図5に示すように、プロパティファイルにおいてオフセット値が‘0x00‘である更新されたノード(WebページA)には、次バージョンアドレスt1(次バージョンオフセット)にアドレス情報として算出されたオフセット値‘0xc0‘が含まれる。グラフデータが更新されると、このアドレス情報を起点として、次バージョンアドレスが空アドレスとなるまで辿られる。例えば、オフセット値が‘0xc0‘であるページA(t2)は、次バージョンアドレス(次バージョンオフセット)が空アドレス‘0x00‘となっている。つまり、オフセット値が‘0xc0‘であるWebページA(t2)は、更新後の最新エントリのWebページAである。
(削除)
記憶制御部150は、第1記憶部100に記憶された更新対象データ(ノード・エッジ)を、上述した削除フラグをONにすることによって削除とみなす。図6は、第1記憶部100における更新対象データの削除処理後のファイル状態を例示する図表である。図6においては、ページAのノードが削除されている。
ノードが削除された場合、更新対象データは、削除フラグがONにされている。更新対象データには、新規挿入時に算出されたアドレス情報が含まれるので、このアドレス情報を起点として、ONにされた削除フラグの位置が特定される。
第1記憶部100に記憶される上述したファイルは、ノード、エッジ及びプロパティを格納する3ファイルに分割されているが、全てがまとめられた1ファイルで編成されてもよい。また、ファイルは、プロパティがノード向け及びエッジ向けの2つに分割されてもよい。また、ファイルは、サイズや格納ノード数・エッジ数などに上限が設けられ、それぞれ複数に分割されてもよい。また、ファイルは、ノードタイプやエッジタイプによって分割されてもよい。
また、ファイルは、グラフデータに対する種々のクエリの高速実行を可能にするために、例えば、サブグラフを同定したり、記憶されているグラフの範囲を取得したりするためのグラフ・インデックス(パス・インデックスを含む)を記述した複数のインデックスファイルを含む編成であってもよい。なお、図2等に示した第1記憶部100のファイル編成では、プロパティが全て追記とされているが、変更された箇所のみが追記される構成であってもよい。
このように、第1の実施形態にかかる情報処理装置10は、第1記憶部100が(プロパティ以外の)ノード・エッジの再配置(上書き)を伴わない完全追記型のファイル編成とされているので、グラフデータの新規挿入・更新・削除のいずれにも、高い書込みスループットを得ることができる。
また、実施形態にかかる情報処理装置は、グラフデータの記憶先を指定する指定情報、及び第1記憶部又は第2記憶部が記憶しているグラフデータに対する接続関係、並びに関係データのデータサイズの少なくともいずれかに基づいて、関係データから得られるグラフデータを第1記憶部又は第2記憶部のいずれに記憶させるかを判定するので、グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータに対し、十分なスループットを得ることを可能にする。
(第2の実施形態)
図7は、第2の実施形態にかかる情報処理装置20の構成を例示する機能ブロック図である。なお、情報処理装置20は、例えば、PC、デジタルテレビ、ハードディスクレコーダ、タブレットPC又はスマートフォン等のモバイルデバイスとして実現される。即ち、情報処理装置20は、CPU、主記憶装置、補助記憶装置及び通信インターフェイスなどを備えたコンピュータとしての機能を有する。
図7に示すように、情報処理装置20は、第1記憶部100、ログ記憶部110、第2記憶部120、第1取得部130、判定部240、記憶制御部250、索引記憶部260、検出部270、動作設定記憶部280、整列部290、圧縮部200及び第2取得部210を有する。なお、図7に示した情報処理装置20において、図1に示した情報処理装置10を構成する部分と実質的に同一の部分には同一の符号が付してある。
索引記憶部260は、第1記憶部100又は第2記憶部120に記憶されている既存グラフデータ全体の範囲を示す範囲情報や、より細粒度な部分に記憶されているグラフデータの範囲情報などの索引情報を記憶する。
検出部270は、記憶制御部250に入力されたグラフデータと、第1記憶部100又は第2記憶部120に記憶されている既存グラフデータとを比較し、グラフデータのインスタンスの重複箇所を検出する。検出部270は、グラフデータそれぞれのデータのマッチングを図って重複箇所を検出するように構成されてもよいし、索引記憶部260の索引情報を利用して重複箇所を検出するように構成されてもよい。
動作設定記憶部280は、記憶制御部250に入力されたグラフデータを、第1記憶部100又は第2記憶部120のいずれに記憶するかを示す記憶先情報などを予め記憶している記憶部である。記憶先情報は、第1記憶部100又は第2記憶部120のいずれにグラフデータを記憶させるかを判定部240が判定するために用いられる。また、動作設定記憶部280は、記憶先情報に代えて、判定部240が判定するために用いる他の情報を記憶していてもよい。例えば、動作設定記憶部280は、入力されたグラフデータのサイズや、第2記憶部120に記憶されたグラフデータのサイズの閾値を記憶先情報に代えて記憶していてもよい。
判定部240は、上述した判定部140の機能に加えて、検出部270が検出した検出結果及び動作設定記憶部280が記憶している記憶先情報を用いて、第1記憶部100又は第2記憶部120のいずれにグラフデータを記憶させるかを判定する。例えば、判定部240は、検出部270の検出結果に重複箇所がなければ第1記憶部100に記憶させると判定し、検出部270の検出結果に重複箇所があれば第2記憶部120に記憶させると判定する。また、判定部240は、重複箇所の数に応じて判定を行うように構成されてもよい。
整列部290は、入力されたグラフデータを予め定められた特定の整列戦略に従って整列させて第1記憶部100へ書き込む。整列戦略は、記憶制御部250への入力データに含まれていてもよいし、動作設定記憶部280に記憶されていてもよいし、固定であってもよい。また、整列戦略は、例えば、特定ノードを起点とした幅優先探索順、又は深さ優先探索順であってもよい。さらに、整列戦略が示す探索順序は、探索ホップ数の上限値、ノードやエッジの属性値、ノードやエッジの種別情報及び属性情報などによって定められてもよい。
圧縮部200は、第1記憶部100内の削除フラグがONにされたノード情報、エッジ情報及び古いバージョンのプロパティ情報を削除し、有効なグラフデータのみを残すことにより、第1記憶部100に対するグラフデータのサイズを圧縮する。なお、圧縮部200は、削除されたノードに接続されたエッジ情報、隣接するノード情報も更新する。圧縮部200は、記憶制御部250を介してアプリケーションから発行された明示的な圧縮要求をトリガとして圧縮を行ってもよいし、内部処理として定期的に圧縮を行ってもよい。また、圧縮部200は、グラフデータの削除量(数)や総データ量(数)に閾値を設け、閾値を超えることをトリガとして圧縮を行うように構成されてもよい。
第2取得部210は、与えられたクエリに基づいて、グラフデータを探索し、クエリに該当する結果を取得する。例えば、第2取得部210は、グラフデータベース・ライブラリの読み込み関連APIである。クエリは、指定ノード、エッジ又はサブグラフを取得する検索要求である。また、クエリは、指定ノードから、指定の探索戦略(探索順序、探索する種別・属性条件)で隣接エッジ・ノードを走査する探索要求であってもよい。
また、第2取得部210は、探索要求に応じて第1記憶部100から該当グラフデータを探索する場合、探索戦略に基づいてデータを一定数先読みするように構成されてもよい。この先読み処理は、整列部290の整列戦略を前提として、第1記憶部100の一定サイズの記憶領域を一括取得することによって実現されてもよい。
図8は、第2取得部210が先読み処理を行う場合の情報処理装置20の動作を例示するフローチャートである。図8に示すように、ステップ200(S200)において、記憶制御部250は、次ノード探索要求を受信する。
ステップ202(S202)において、記憶制御部250は、次ノードが第2記憶部120(メモリ)に展開済みであるか否かを判定する。記憶制御部250は、次ノードが第2記憶部120に展開済みである場合(S202:Yes)にはS214の処理に進み、次ノードが第2記憶部120に展開済みでない場合(S202:No)にはS204の処理に進む。
ステップ204(S204)において、記憶制御部250は、現在使用しているメモリ量(第2記憶部120の使用領域)と読込単位メモリの大きさの和(B)が、メモリ使用量閾値(A)未満であるか否かを判定する。記憶制御部250は、BがA未満であると判定した場合(S204:Yes)にはS206の処理に進み、BがA未満でないと判定した場合(S204:No)にはS208の処理に進む。
ステップ206(S206)において、記憶制御部250は、第2記憶部120のトラバース済みのメモリ領域を開放する。
ステップ208(S208)において、記憶制御部250は、第1記憶部100の不揮発記憶領域上のアドレス(ファイルオフセット)を取得する。
ステップ210(S210)において、記憶制御部250は、第2記憶部120への読み込み単位として、アドレスを含むページ領域を読み込む。
ステップ212(S212)において、記憶制御部250は、読み込んだページ上のグラフデータ(ノード・エッジ)をメモリ(第2記憶部120)に展開する。また、記憶制御部250は、グラフデータの相互接続を行ってもよい(option)。
ステップ214(S214)において、記憶制御部250は、メモリ展開済みの次ノードを取得する。
このように、第2の実施形態にかかる情報処理装置20は、既存グラフデータと重複した場合や、入力されたグラフデータが大きい場合など、記憶先の判定に時間を要する場合において、索引記憶部260により、この判定処理を軽減することができる。また、情報処理装置20は、整列部290と第2取得部210との連携により、第1記憶部100のグラフデータを探索する場合においても、先読みによって第2記憶部120への入出力回数を減少させ、高速探索を実現することができる。また、情報処理装置20は、圧縮部200によるグラフデータの圧縮処理により、グラフデータの量が単調増加することを防止する。
(第3の実施形態)
図9は、第3の実施形態にかかる情報処理装置30の構成及びその周辺を例示するブロック図である。なお、情報処理装置30は、例えば、PC、デジタルテレビ、ハードディスクレコーダ、タブレットPC又はスマートフォン等のモバイルデバイスとして実現される。即ち、情報処理装置30は、CPU、主記憶装置、補助記憶装置及び通信インターフェイスなどを備えたコンピュータとしての機能を有する。
図9に示すように、情報処理装置30は、サーバ装置40に対してネットワーク42を介して接続されている。ネットワーク42は、例えば、インターネット、品質保証された閉域網であるNGN(次世代ネットワーク)などのWAN(Wide Area Network)、種々の無線・有線で構成されるホームネットワークなどのLAN(Local Area Network)、地上波放送網などの広域放送網又はCATV(ケーブルテレビ)網などである。ここでは、ネットワーク42は、インターネットであるとする。
サーバ装置40は、ネットワーク42を介して、情報処理装置30が第1記憶部100又は第2記憶部120に記憶するデータを提供する情報提供装置である。例えば、サーバ装置40は、インターネット上でWebサービスを提供するWebサービス事業者のサーバ装置である。
情報処理装置30は、第1記憶部100、ログ記憶部110、第2記憶部120、判定部240、記憶制御部250、索引記憶部260、検出部270、動作設定記憶部280、整列部290、圧縮部200、第2取得部210、送信部300、受信部310及び生成部320を有する。なお、図9に示した情報処理装置30において、図7に示した情報処理装置20を構成する部分と実質的に同一の部分には同一の符号が付してある。
送信部300は、第1記憶部100又は第2記憶部120に記憶するデータの送信を要求する要求メッセージを、ネットワーク42を介してサーバ装置40へ送信する。要求メッセージは、ユーザの情報処理装置30に対する操作に応じて送信されてもよいし、情報処理装置30が定期的に送信してもよい。例えば、要求メッセージは、一般的なREST(REpresentational State Transfer)形式のWeb APIである。また、要求メッセージは、グラフの起点ノードを示す情報、起点ノードからのホップ数を示す情報、探索方法を示す情報、グラフデータが示すノード及びエッジの種類によって区別する種別情報、ノード及びエッジの属性を特定する属性情報、並びにノード及びエッジに対する種別情報及び属性情報の少なくともいずれかに基づく応答順序を示す応答順序情報を含み得ることとする。
情報処理装置30が要求するデータは、それ自体がグラフデータを形成するものであってもよいし、要求メッセージに含まれる情報、第1記憶部100又は第2記憶部120が既に記憶しているグラフデータ、若しくは情報処理装置30上に記憶されているその他のデータを用いてグラフデータを生成可能なデータ(関係データ)であってもよい。
受信部310は、ネットワーク42を介してサーバ装置40からデータを受信する。受信データは、それ自体がグラフデータを形成するものであってもよいし、関係データであってもよい。受信部310は、受信した関係データを生成部320に対して出力する。なお、受信部310は、グラフデータを受信した場合には、グラフデータを記憶制御部250に対して出力するように構成されてもよい。
生成部320は、受信部310が受信した関係データからグラフデータを生成する。ここで、生成部320は、要求メッセージに含まれる情報、第1記憶部100又は第2記憶部120が既に記憶しているグラフデータ、若しくは情報処理装置30上に記憶されているその他のデータを用いてグラフデータを生成する。
例えば、生成部320は、記憶制御部250や第2取得部210と同等の位置づけのグラフデータベース・ライブラリにおけるノード・エッジ生成APIである。具体例として、生成部320は、SNS(Social Networking Service)において、あるユーザの友人リストを、Web APIを介して取得し、当該ユーザと取得した友人リストに含まれるユーザとを結ぶ友人関係エッジを生成する。また、生成部320は、例えばあるWebページに対して、あるユーザがブログやマイクロブログで引用したデータを利用し、ユーザとWebコンテンツとを結ぶ参照エッジを生成する。
次に、グラフデータ登録のための情報処理装置30及びサーバ装置40の通信シーケンスについて説明する。図10は、グラフデータ登録のための情報処理装置30及びサーバ装置40の動作を示すシーケンス図である。
図10に示すように、ステップ300(S300)において、情報処理装置30は、サーバ装置40に対し、関係データを取得するための要求を行う。
ステップ302(S302)において、サーバ装置40は、関係データを情報処理装置30に対して送信するための準備として、関係データを取得する。
ステップ304(S304)において、サーバ装置40は、関係データを含む応答情報を生成する。
ステップ306(S306)において、サーバ装置40は、関係データを含む応答情報により、情報処理装置30に対する応答を行う。
ステップ308(S308)において、情報処理装置30は、サーバ装置40から受信した応答情報から関係データを取得する。
ステップ310(S310)において、情報処理装置30は、第1記憶部100又は第2記憶部120が既に記憶しているグラフデータ、若しくは情報処理装置30上に記憶されているその他のデータ(内部情報)を、グラフデータ生成の準備として取得する。
ステップ312(S312)において、情報処理装置30は、S308及びS310の処理で取得した関係データ及び内部情報を用いてグラフデータを生成する。
ステップ314(S314)において、情報処理装置30は、記憶制御部250の制御によって第1記憶部100又は第2記憶部120にグラフデータを記憶させることにより登録を行う。
このように、第3の実施形態にかかる情報処理装置30は、元々グラフ構造をなしていない関係データを受信しても、生成部320によりグラフデータを生成し、グラフデータの登録を行うことができる。また、情報処理装置30は、複数のWebサービスのデータを統合して、1つのグラフデータを形成することも可能にされている。
(第4の実施形態)
図11は、第4の実施形態にかかる情報処理装置50及び情報提供装置60の概略を示すブロック図である。なお、情報処理装置50は、例えば、PC、デジタルテレビ、ハードディスクレコーダ、タブレットPC又はスマートフォン等のモバイルデバイスとして実現される。即ち、情報処理装置50は、CPU、主記憶装置、補助記憶装置及び通信インターフェイスなどを備えたコンピュータとしての機能を有する。
図11に示すように、情報処理装置50は、情報提供装置60に対してネットワーク42を介して接続されている。なお、情報処理装置50は、図9に示した情報処理装置30が有する各機能を備えているものとする。また、図11に示した情報処理装置50及びネットワーク42において、図9に示した構成部分と実質的に同一の部分には同一の符号が付してある。
情報提供装置60は、例えば図9に示したサーバ装置40と同じハードウェア構成であり、インターネット上でWebサービスを提供する。ただし、情報提供装置60は、情報処理装置50に対し、関係データではなくグラフデータを提供する。
情報提供装置60は、記憶部600、受信部610、第2取得部620、判定部630、応答情報生成部640、送信部650を有する。記憶部600は、グラフデータを記憶する。ここで、記憶部600は、情報処理装置50の第1記憶部100及び第2記憶部120に対して、グラフデータベースを記憶するストレージ処理部となっている。
受信部610は、情報処理装置50からグラフデータについてのクエリを受信する。具体例として、受信部610は、HTTP(Hypertext Transfer Protocol)サーバのリクエスト受信部となっている。また、受信部610は、WebSocketなどのその他のプロトコルで通信を行う構成であってもよい。
ここで、クエリは、記憶部600に記憶されたグラフデータから、特定のノード、エッジ又はサブグラフを特定するメッセージを含むものとする。また、クエリには、情報処理装置50側でのグラフデータの表示順序を特定する情報(表示順序特定情報)が含まれていてもよい。
第2取得部620は、受信部610が受信したクエリに対応するグラフデータを記憶部600から取得する。つまり、第2取得部620は、情報処理装置50が備える第2取得部210と同等の機能ブロックである。
また、第2取得部620は、情報処理装置50における表示順序に則して当該グラフデータを取得してもよい。この場合、第2取得部620は、クエリに含まれる表示順序特定情報を用いてもよいし、情報提供装置60が情報処理装置50とともに構成する情報処理システム(又はアプリケーション)において予め定められた順序情報を用いてもよい。
さらに、第2取得部620は、クエリによって規定される関係データを内包する、より大きな関係データを取得してもよい。例えば、情報提供装置60は、クエリに対応する応答メッセージの生成に非常に時間がかかる場合に、グラフデータを生成する処理の一部を情報処理装置50に移譲する。具体例として、情報提供装置60は、起点ノードからNホップのノード集合が形成するサブグラフを抽出するクエリにおいて、葉ノード(Nホップ目のノード)のエッジの刈り込み処理に多くの時間がかかる場合、葉ノードのエッジ刈り込み処理を情報処理装置50に移譲する。
判定部630は、第2取得部620が記憶部600からグラフデータを取得する場合にかかる応答時間やグラフデータの量などに応じて、情報処理装置50に対する処理移譲の要否(又は可否)を判定する。第2取得部620は、判定部630の判定結果に応じて異なるデータを取得することとなる。
応答情報生成部640は、第2取得部620が取得したグラフデータから応答メッセージ(応答情報)を生成し、送信部650に対して出力する。例えば、応答メッセージは、HTTPレスポンスのボディに格納されるメッセージである。また、応答メッセージは、例えばグラフの起点ノードを示す情報、起点ノードからのホップ数を示す情報、探索方法を示す情報、グラフデータが示すノード及びエッジの種類によって区別する種別情報、ノード及びエッジの属性を特定する属性情報、並びにノード及びエッジに対する種別情報及び属性情報の少なくともいずれかに基づく表示順序を示す情報を含む。応答メッセージの形式は、例えばXMLやJSON等のWebと親和性の高い形式であるが、情報処理装置50が解釈可能な形式であればバイナリなどを含めて、どのような形式であってもよい。
また、応答情報生成部640は、クエリによって規定されるグラフデータ(例えばサブグラフを示すグラフデータ)を情報処理装置50側(端末側)で抽出するための補助情報を応答情報に含ませることが可能にされている。補助情報は、例えばエッジ刈り込みを行っていない中心ノードからの距離情報、刈り込みのルール情報などを含む。また、応答情報生成部640は、クエリに対応するサブグラフを、一括ではなく、段階的に送信部650に対して出力し、生成されたサブグラフからインクリメンタルに情報処理装置50がグラフを表示できるように動作してもよい。
送信部650は、応答情報生成部640が生成した応答メッセージを情報処理装置50に対して送信する。具体的には、送信部650は、HTTPサーバのレスポンス送信部などである。また、送信部650は、WebSocketなどのその他のプロトコルで通信を行う構成であってもよい。
次に、情報提供装置60の動作について説明する。図12は、部分グラフ(サブグラフ)の要求を受けた情報提供装置60の動作例を示すフローチャートである。図12に示すように、ステップ400(S400)において、情報提供装置60は、部分グラフの要求(要求メッセージ)を受信する。
ステップ402(S402)において、情報提供装置60は、部分グラフの取得順序を決定する。
ステップ404(S404)において、情報提供装置60は、部分グラフを取得する。
ステップ406(S406)において、情報提供装置60は、情報処理装置50(端末)への処理移譲の要否を判定する。情報提供装置60は、処理移譲が必要である場合(S406:Yes)にはS408の処理に進み、処理移譲が必要でない場合(S406:No)にはS410の処理に進む。
ステップ408(S408)において、情報提供装置60は、クエリによって規定されるグラフデータを情報処理装置50側(端末側)で抽出するための補助情報を生成する。
ステップ410(S410)において、情報提供装置60は、部分グラフを送信するために整形する。
ステップ412(S412)において、情報提供装置60は、S410の処理で整形した部分グラフ、又はS408の処理で生成した補助情報を情報処理装置50に対して送信する。
ステップ414(S414)において、情報提供装置60は、送信する必要がある部分グラフが残っているか否かを判定する。情報提供装置60は、送信する必要がある部分グラフが残っている場合(S414:Yes)にはS404の処理に進み、送信する必要がある部分グラフが残っていない場合(S414:No)には処理を終了する。
次に、情報処理装置50(図11)について詳述する。上述したように、情報処理装置50は、図9に示した情報処理装置30が有する各機能を備え、さらに、応答情報解析部500、抽出部510、指示部520、表示部530及びUI(User Interface)部540を有する。
応答情報解析部500は、情報処理装置50側でグラフデータの抽出を行う必要がある場合に、応答情報を解析する。抽出部510は、応答情報解析部500が解析した応答情報に含まれる補助情報を用いてサブグラフのグラフデータを抽出する。つまり、情報処理装置50は、要求メッセージに合致するサブグラフを示す情報を含む応答情報を受信した場合、補助情報を用いてサブグラフのグラフデータを応答情報から生成することとなる。
指示部520は、抽出部510がグラフデータを抽出したサブグラフを表示部530に表示させる。指示部520は、例えば、Webブラウザにおけるレンダリングエンジンへの出力機能などが相当する。指示部520は、情報提供装置60から段階的に送信されるサブグラフを順次に表示部530へ出力してもよい。この場合、表示部530は、指示部520の出力に応じて表示順序に則ったインクリメンタルな表示を行う。例えば表示部530は、SNSにおける中心ユーザから、1ホップ目のフレンド、2ホップ目のフレンド、3ホップ目のフレンド・・・というように表示を行う。UI部540は、例えば送信部300に要求メッセージを送信させるためのユーザインターフェイスである。
次に、補助情報を用いたグラフデータ表示のための情報処理装置50及び情報提供装置60の通信シーケンスについて説明する。図13は、補助情報を用いたグラフデータ表示のための情報処理装置50及び情報提供装置60の動作を示すシーケンス図である。
図13に示すように、ステップ500(S500)において、情報処理装置50は、グラフデータを取得するための要求(グラフデータ取得要求)を情報提供装置60に対して送信する。つまり、情報処理装置50は、グラフデータ取得要求によって中心ノード情報及び表示順序情報などを要求する。
ステップ502(S502)において、情報提供装置60の判定部630は、グラフデータの抽出移譲の可否(又は要否)を判定する。
ステップ504(S504)において、第2取得部620は、グラフデータを送信する準備として取得する。
ステップ506(S506)において、応答情報生成部640は、応答情報を生成する。
ステップ508(S508)において、送信部650は、S506の処理で生成した応答情報を情報処理装置50に対して送信する。応答情報には、補助情報が含まれる。また、応答情報には、グラフデータも含まれていてもよい。このように、情報提供装置60は、情報処理装置50からのグラフデータ取得要求に対するグラフデータ応答を行う。
ステップ510(S510)において、情報処理装置50の応答情報解析部500は、情報提供装置60から受信した応答情報を用いて、情報提供装置60からの応答をデータ解析する。
ステップ512(S512)において、抽出部510は、応答情報から補助情報を抽出する。
ステップ514(S514)において、抽出部510は、補助情報を用いたグラフデータを抽出する。
ステップ516(S516)において、指示部520は、表示部530に対してグラフデータの表示を指示する。
このように、第4の実施形態によれば、サブグラフのサイズが大きい場合や、サブグラフの事前算出が困難な場合にも、情報提供装置60が情報処理装置50に対してグラフデータの抽出移譲を行うので、ユーザ・エクスペリエンスを損なわない速度でエッジを含めたサブグラフを表示することができる。
本実施形態の情報処理装置で実行される情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態の情報処理装置で実行される情報処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置で実行される情報処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、本実施形態の情報処理プログラムを、ROM等に予め組み込んで提供するように構成してもよい。本実施形態の情報処理装置で実行される情報処理プログラムは、各部がモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から情報処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされて生成されるようになっている。
また、本発明のいくつかの実施形態を複数の組み合わせによって説明したが、これらの実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。これら新規の実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10、20、30、50 情報処理装置
40 サーバ装置
42 ネットワーク
60 情報提供装置
100 第1記憶部
120 第2記憶部
130 第1取得部
140、240 判定部
150、250 記憶制御部
200 圧縮部
210、620 第2取得部
260 索引記憶部
270 検出部
280 動作設定記憶部
290 整列部
300 送信部
310 受信部
320 生成部
500 応答情報解析部
510 抽出部
520 指示部
530 表示部
540 UI部
600 記憶部
610 受信部
630 判定部
640 応答情報生成部
650 送信部

Claims (16)

  1. グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータを記憶可能な第1記憶部と、
    前記第1記憶部よりも速いアクセス速度でグラフデータを記憶可能な第2記憶部と、
    グラフの元となる関係を有する関係データを取得する第1取得部と、
    グラフデータの記憶先を指定する指定情報、及び前記第1記憶部又は前記第2記憶部が記憶しているグラフデータに対する接続関係、並びに前記関係データのデータサイズの少なくともいずれかに基づいて、前記関係データから得られるグラフデータを前記第1記憶部又は前記第2記憶部のいずれに記憶させるかを判定する判定部と、
    前記判定部の判定結果に応じて、グラフデータを前記第1記憶部又は前記第2記憶部のいずれかに記憶させる記憶制御部と、
    を有する情報処理装置。
  2. 前記判定部は、
    前記第1記憶部又は前記第2記憶部が記憶しているグラフデータに対する接続関係に基づいて判定する場合、前記接続関係があるグラフデータを前記第2記憶部に記憶させると判定し、前記接続関係がないグラフデータを前記第1記憶部に記憶させると判定する
    請求項1に記載の情報処理装置。
  3. 前記第1記憶部は、
    不揮発性の記憶部であり、
    前記第2記憶部は、
    揮発性の記憶部である
    請求項1に記載の情報処理装置。
  4. 前記ノードと前記エッジとの接続情報に応じてグラフデータの整列を行う整列部
    をさらに有し、
    前記記憶制御部は、
    前記整列部が整列させた順にグラフデータを前記第1記憶部に記憶させる
    請求項1に記載の情報処理装置。
  5. 前記整列部は、
    起点ノードを中心とした探索順序に基づいてグラフデータの整列を行う
    請求項4に記載の情報処理装置。
  6. グラフデータの要求を行う要求メッセージを、ネットワークを介して情報提供装置に送信する送信部と、
    前記要求メッセージに対応する前記関係データを含む応答情報を、前記情報提供装置から受信する受信部と、
    をさらに有し、
    前記判定部は、
    前記応答情報に応じて、グラフデータを前記第1記憶部又は前記第2記憶部のいずれに記憶させるかを判定する
    請求項1に記載の情報処理装置。
  7. 前記要求メッセージは、
    グラフの起点ノードを示す情報と、前記起点ノードからのホップ数を示す情報と、探索方法を示す情報と、グラフデータが示す前記ノード及び前記エッジの種類によって区別する種別情報と、前記ノード及び前記エッジの属性を特定する属性情報と、前記ノード及び前記エッジに対する前記種別情報及び前記属性情報と、の少なくともいずれかに基づく応答順序を示す応答順序情報を含み得る
    請求項6に記載の情報処理装置。
  8. 前記要求メッセージに合致するサブグラフのグラフデータを含む前記応答情報を前記受信部が受信する場合に、前記応答情報に含まれて前記サブグラフのグラフデータを生成するための補助となる補助情報を用いて、前記要求メッセージに合致する前記サブグラフのグラフデータを前記応答情報から抽出する抽出部
    をさらに有する
    請求項6に記載の情報処理装置。
  9. 前記記憶制御部は、
    前記第1記憶部に新たなグラフデータを記憶させる場合、前記第1記憶部又は前記第2記憶部が既に記憶しているグラフデータとは区別可能な区別情報を前記新たなグラフデータに設けて追記させる
    請求項1に記載の情報処理装置。
  10. 前記第1記憶部又は前記第2記憶部が記憶するグラフデータのインスタンスに対して、前記関係データから得られるグラフデータのインスタンスの重複箇所を検出する検出部
    をさらに有し、
    前記判定部は、
    前記検出部の検出結果に重複箇所がなければ前記第1記憶部に記憶させると判定し、前記検出部の検出結果に重複箇所があれば前記第2記憶部に記憶させると判定する
    請求項1に記載の情報処理装置。
  11. 前記第1記憶部又は前記第2記憶部がグラフデータを記憶している範囲を索引情報として記憶する索引記憶部
    をさらに有し、
    前記検出部は、
    前記索引情報に応じてグラフデータのインスタンスの重複箇所を検出する
    請求項10に記載の情報処理装置。
  12. グラフデータを記憶する記憶部と、
    ネットワークを介して情報処理装置からグラフデータへのクエリを受信する受信部と、
    前記クエリに対応するグラフデータを前記記憶部から取得する第2取得部と、
    前記第2取得部が取得したグラフデータに対し、前記情報処理装置による表示順序を示す情報を加えた応答情報を生成する応答情報生成部と、
    前記応答情報を前記情報処理装置へ送信する送信部と、
    を有する情報提供装置。
  13. 前記応答情報生成部は、
    グラフの起点ノードを示す情報、前記起点ノードからのホップ数を示す情報、探索方法を示す情報、グラフデータが示す前記ノード及び前記エッジの種類によって区別する種別情報、前記ノード及び前記エッジの属性を特定する属性情報、並びに前記ノード及び前記エッジに対する前記種別情報及び前記属性情報の少なくともいずれかに基づく表示順序を示す情報を加えた前記応答情報を生成する
    請求項12に記載の情報提供装置。
  14. 前記応答情報生成部は、
    前記要求メッセージに合致するサブグラフのグラフデータを含む前記応答情報を前記受信部が受信する場合に、前記応答情報に含まれて前記サブグラフのグラフデータを生成するための補助となる補助情報を含む前記応答情報を生成する
    請求項13に記載の情報提供装置。
  15. グラフの元となる関係を有する関係データを、ネットワークを介して情報提供装置から情報処理装置へ提供する情報システムであって、
    前記情報処理装置は、
    グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータを記憶可能な第1記憶部と、
    前記第1記憶部よりも速いアクセス速度でグラフデータを記憶可能な第2記憶部と、
    前記関係データを取得する第1取得部と、
    グラフデータの記憶先を指定する指定情報、及び前記第1記憶部又は前記第2記憶部が記憶しているグラフデータに対する接続関係、並びに前記関係データのデータサイズの少なくともいずれかに基づいて、前記関係データから得られるグラフデータを前記第1記憶部又は前記第2記憶部のいずれに記憶させるかを判定する判定部と、
    前記判定部の判定結果に応じて、グラフデータを前記第1記憶部又は前記第2記憶部のいずれかに記憶させる記憶制御部と、
    を有する情報システム。
  16. グラフを構成するノード及びエッジの少なくともいずれかを示すグラフデータを記憶可能な第1記憶部、又は前記第1記憶部よりも速いアクセス速度でグラフデータを記憶可能な第2記憶部のいずれかにグラフデータを記憶させる情報処理プログラムであって、
    グラフの元となる関係を有する関係データを取得するステップと、
    グラフデータの記憶先を指定する指定情報、及び前記第1記憶部又は前記第2記憶部が記憶しているグラフデータに対する接続関係、並びに前記関係データのデータサイズの少なくともいずれかに基づいて、前記関係データから得られるグラフデータを前記第1記憶部又は前記第2記憶部のいずれに記憶させるかを判定するステップと、
    判定結果に応じて、グラフデータを前記第1記憶部又は前記第2記憶部のいずれかに記憶させるステップと、
    をコンピュータに実行させるための情報処理プログラム。
JP2012149369A 2012-07-03 2012-07-03 情報処理装置、情報提供装置、情報システム及び情報処理プログラム Expired - Fee Related JP5777575B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012149369A JP5777575B2 (ja) 2012-07-03 2012-07-03 情報処理装置、情報提供装置、情報システム及び情報処理プログラム
US13/933,462 US20140009472A1 (en) 2012-07-03 2013-07-02 Information processing device, information providing device, information system, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012149369A JP5777575B2 (ja) 2012-07-03 2012-07-03 情報処理装置、情報提供装置、情報システム及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2014010812A true JP2014010812A (ja) 2014-01-20
JP5777575B2 JP5777575B2 (ja) 2015-09-09

Family

ID=49878189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012149369A Expired - Fee Related JP5777575B2 (ja) 2012-07-03 2012-07-03 情報処理装置、情報提供装置、情報システム及び情報処理プログラム

Country Status (2)

Country Link
US (1) US20140009472A1 (ja)
JP (1) JP5777575B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017221444A1 (ja) * 2016-06-21 2017-12-28 国立研究開発法人物質・材料研究機構 探索システム、探索方法および物性データベース管理装置
WO2018159237A1 (ja) * 2017-02-28 2018-09-07 国立研究開発法人物質・材料研究機構 探索方法、探索装置および探索システム
JP2019520627A (ja) * 2016-05-13 2019-07-18 ティブコ ソフトウェア インク データベース中にグラフ情報を記憶するためのb木使用
JP2019194815A (ja) * 2018-05-02 2019-11-07 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
WO2020122004A1 (ja) * 2018-12-10 2020-06-18 Necソリューションイノベータ株式会社 情報処理装置、情報処理方法、およびプログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9602513B2 (en) * 2014-02-28 2017-03-21 Microsoft Technology Licensing, Llc Access control of edges in graph index applications
US11100195B2 (en) 2017-06-02 2021-08-24 Thinkspan, LLC Zero-knowledge offers in universal data scaffold based data management platform
GB201717009D0 (en) 2017-10-16 2017-11-29 Turner Jennifer-Jane Portable therapeutic leg strengthening apparatus using adjustable resistance
US10824749B2 (en) * 2018-09-28 2020-11-03 Code 42 Software, Inc. Automatic graph-based detection of unlikely file possession
US11442944B2 (en) 2019-10-18 2022-09-13 Thinkspan, LLC Algorithmic suggestions based on a universal data scaffold
WO2021077038A1 (en) 2019-10-18 2021-04-22 Taylor Brian Samuel Scalable scaffolding and bundled data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263218A (ja) * 1995-03-23 1996-10-11 Toshiba Corp データ記憶装置およびデータ記憶方法
JP2004220227A (ja) * 2003-01-14 2004-08-05 Nec Corp 遺伝子ネットワーク経路探索装置及び方法並びにプログラム
WO2008018258A1 (fr) * 2006-08-09 2008-02-14 Hitachi Ulsi Systems Co., Ltd. Dispositif de stockage
JP2008052524A (ja) * 2006-08-25 2008-03-06 Sony Corp ネットワーク分析支援装置および方法、プログラム並びに記録媒体
JP2008052495A (ja) * 2006-08-24 2008-03-06 Sony Corp ネットワークシステム、情報処理装置および方法、プログラム並びに記録媒体
JP2009258794A (ja) * 2008-04-11 2009-11-05 Fujitsu Ltd 情報検索プログラム、情報検索装置、および情報検索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4720853B2 (ja) * 2008-05-19 2011-07-13 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263218A (ja) * 1995-03-23 1996-10-11 Toshiba Corp データ記憶装置およびデータ記憶方法
JP2004220227A (ja) * 2003-01-14 2004-08-05 Nec Corp 遺伝子ネットワーク経路探索装置及び方法並びにプログラム
WO2008018258A1 (fr) * 2006-08-09 2008-02-14 Hitachi Ulsi Systems Co., Ltd. Dispositif de stockage
JP2008052495A (ja) * 2006-08-24 2008-03-06 Sony Corp ネットワークシステム、情報処理装置および方法、プログラム並びに記録媒体
JP2008052524A (ja) * 2006-08-25 2008-03-06 Sony Corp ネットワーク分析支援装置および方法、プログラム並びに記録媒体
JP2009258794A (ja) * 2008-04-11 2009-11-05 Fujitsu Ltd 情報検索プログラム、情報検索装置、および情報検索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CSNG201300047227; 岩橋 篤矢: '類似記事集合の主要イベントに注目した事件の構図を表現するグラフ生成手法' 第4回データ工学と情報マネジメントに関するフォーラム論文集 (第10回日本データベース学会年次大会) , 20120713, 電子情報通信学会データ工学研究専門委員会 日本デー *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7153420B2 (ja) 2016-05-13 2022-10-14 ティブコ ソフトウェア インク データベース中にグラフ情報を記憶するためのb木使用
JP2019520627A (ja) * 2016-05-13 2019-07-18 ティブコ ソフトウェア インク データベース中にグラフ情報を記憶するためのb木使用
US11567999B2 (en) 2016-05-13 2023-01-31 Tibco Software Inc. Using a B-tree to store graph information in a database
JPWO2017221444A1 (ja) * 2016-06-21 2019-03-22 国立研究開発法人物質・材料研究機構 探索システム、探索方法および物性データベース管理装置
WO2017221444A1 (ja) * 2016-06-21 2017-12-28 国立研究開発法人物質・材料研究機構 探索システム、探索方法および物性データベース管理装置
US11138772B2 (en) 2016-06-21 2021-10-05 National Institute For Materials Science Search system, search method, and material property database management apparatus
WO2018159237A1 (ja) * 2017-02-28 2018-09-07 国立研究開発法人物質・材料研究機構 探索方法、探索装置および探索システム
JPWO2018159237A1 (ja) * 2017-02-28 2019-12-19 国立研究開発法人物質・材料研究機構 探索方法、探索装置および探索システム
US11163829B2 (en) 2017-02-28 2021-11-02 National Institute For Materials Science Search method, search device, and search system
JP2019194815A (ja) * 2018-05-02 2019-11-07 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
WO2020122004A1 (ja) * 2018-12-10 2020-06-18 Necソリューションイノベータ株式会社 情報処理装置、情報処理方法、およびプログラム
JP7211661B2 (ja) 2018-12-10 2023-01-24 Necソリューションイノベータ株式会社 情報処理装置、情報処理方法、およびプログラム
JPWO2020122004A1 (ja) * 2018-12-10 2021-11-18 Necソリューションイノベータ株式会社 情報処理装置、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
JP5777575B2 (ja) 2015-09-09
US20140009472A1 (en) 2014-01-09

Similar Documents

Publication Publication Date Title
JP5777575B2 (ja) 情報処理装置、情報提供装置、情報システム及び情報処理プログラム
KR102133951B1 (ko) 짧은 링크 처리 방법, 디바이스, 및 서버
US9336227B2 (en) Selective synchronization in a hierarchical folder structure
US20120284270A1 (en) Method and device to detect similar documents
US8655943B2 (en) Web server providing access to documents having multiple versions
WO2014010082A1 (ja) 検索装置、検索装置の制御方法及び記録媒体
US20090089278A1 (en) Techniques for keyword extraction from urls using statistical analysis
CN108900554B (zh) Http协议资产检测方法、系统、设备及计算机介质
CN102098234A (zh) 基于即时通信消息中超链接提供目标内容的方法与设备
JP5989781B2 (ja) モバイル環境における漸進的パターンマッチングのための方法および装置
EP2015202A1 (en) Method and apparatus for generating electronic content guide
CN102771080A (zh) 使用缓存的高效媒体传送的系统和方法
CN103248641A (zh) 网络下载方法、装置及系统
KR20210035348A (ko) 유사 그룹 요소 추출
CN111258956A (zh) 一种面向远端海量数据文件预读的方法及设备
CN107862068B (zh) 数据处理方法、装置及计算机可读存储介质
US20140298155A1 (en) Html tag for improving page navigation user experience
JP4903118B2 (ja) センシングデータを収集するためのwebサーバおよびプログラム
CN103258052A (zh) 一种eMule网络上关联资源的发现方法
WO2015049719A1 (ja) ストレージシステム及びストレージ方法
CN104615761B (zh) 一种移动终端收藏夹数据的下载方法及装置
US20070288549A1 (en) Information Processing System, Server Device, Client Device, and Program
JP6349682B2 (ja) 情報管理プログラム、装置、及び方法
KR101792863B1 (ko) 컨텐츠 스트리밍 장치 및 방법
JP4393498B2 (ja) 構造化文書管理システム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150323

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150707

LAPS Cancellation because of no payment of annual fees