(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-20
(45)【発行日】2024-10-01
(54)【発明の名称】暗号化されたナレッジ・グラフ
(51)【国際特許分類】
G06F 21/62 20130101AFI20240924BHJP
G06F 21/60 20130101ALI20240924BHJP
【FI】
G06F21/62 318
G06F21/60 320
(21)【出願番号】P 2022508465
(86)(22)【出願日】2020-07-23
(86)【国際出願番号】 IB2020056940
(87)【国際公開番号】W WO2021028748
(87)【国際公開日】2021-02-18
【審査請求日】2023-05-16
(32)【優先日】2019-08-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】シェイデラー、ティム
(72)【発明者】
【氏名】ラグハヴェンドラ、アルジュン
(72)【発明者】
【氏名】セウル、マシアス
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特開2006-099548(JP,A)
【文献】特表2013-536484(JP,A)
【文献】米国特許出願公開第2008/0275879(US,A1)
【文献】国際公開第2019/102411(WO,A1)
【文献】国際公開第2018/034928(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/14
G06F 21/10
G06F 21/60 - 21/88
(57)【特許請求の範囲】
【請求項1】
複数のユーザ・システムによって管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
1つ又はそれ以上のプロセッサにより、前記ナレッジ・グラフのそれぞれの部分を前記複数のユーザ・システムそれぞれのユーザ・システムのための複数のナレッジ・サブグラフへと分離することと、
1つ又はそれ以上のプロセッサにより、公開/秘密鍵ペアの秘密鍵を使用してそれぞれの前記ナレッジ・サブグラフを暗号化することと、
1つ又はそれ以上のプロセッサにより、複数のプライベート・サマリグラフを生成することであって、
プライベート・サマリグラフは、それぞれのユーザ・システムの
ために生成され、
それぞれのプライベート・サマリグラフは、それぞれの前記ユー
ザ・システムのそれぞれのナレッジ・サブグラフのための1つの頂点
を含み、かつ
それぞれの頂点は、前記公開/秘密鍵ペアを含んでおり、
1つ又はそれ以上のプロセッサにより、それぞれのユーザ・システムのための1つの頂点及び複数の前記ユーザ・システムの間のコラボレーションを表すエッジを含むコラボレーション・グラフを維持することと、
1つ又はそれ以上のプロセッサにより、複数の前記ユーザ・システムの複数の前記プライベート・サマリグラフを公開サマリグラフにマッピングすることと、
1つ又はそれ以上のプロセッサにより、選択された前記ナレッジ・サブグラフに関連する復号鍵を第1のユーザ・システムから第2のユーザ・システムへと提供することによって、前記第1のユーザ・システムから前記第2のユーザ・システムへと、選択されたナレッジ・サブグラフに対するアクセスを付与することを含む、
コンピュータ実装方法。
【請求項2】
さらに、1つ又はそれ以上のプロセッサにより、第2の鍵ペアの第2の秘密鍵で、選択された前記ナレッジ・サブグラフを再暗号化することにより、前記第2のユーザ・システムに対して選択された前記ナレッジ・サブグラフへのアクセスを無効化することを含む、
請求項1に記載のコンピュータ実装方法。
【請求項3】
さらに、
1つ又はそれ以上のプロセッサにより、
1つ又はそれ以上のプロセッサにより、前記コラボレーション・グラフ内で新たな頂点により表される新たなユーザ・システムのためのアカウントを生成することと、
1つ又はそれ以上のプロセッサにより、第2のナレッジ・グラフの内容を複数の第2のナレッジ・サブグラフへと分離することと、
1つ又はそれ以上のプロセッサにより、複数の前記第2のナレッジ・サブグラフを暗号化することと、
1つ又はそれ以上のプロセッサにより、複数の前記第2のナレッジ・サブグラフを前記ナレッジ・グラフにアップロードすること
によって前記コラボレーション・グラフを結合すること、
を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
さらに、
1つ又はそれ以上のプロセッサにより、前記ナレッジ・グラフに関連する頂点の前記公開/秘密鍵ペアの公開部分を提供することにより、第3のユーザ・システムから第4のユーザ・システムへとナレッジ・サブグラフへの読み取りアクセスを付与すること
を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
さらに、
1つ又はそれ以上のプロセッサにより、前記第3のユーザ・システムの前記ナレッジ・サブグラフ及び前記第4のユーザ・システムの前記ナレッジ・サブグラフの頂点の間のエッジを前記第4のユーザ・システムによって追加すること
を含む請求項4に記載のコンピュータ実装方法。
【請求項6】
さらに、
1つ又はそれ以上のプロセッサにより、第3のユーザ・システムから第4のユーザ・システムへとアクセスを付与するべき前記ナレッジ・グラフに関連する前記頂点の前記公開/秘密鍵を提供することによって、前記第4のユーザ・システムに対して前記第3のユーザ・システムのナレッジ・サブグラフへのアクセスを付与すること、及び
1つ又はそれ以上のプロセッサにより、前記第4のユーザ・システムが前記第3のユーザ・システムに関連するナレッジ・サブグラフの頂点を変更した場合に、前記第3のユーザ・システムに対してロールバック・オプションを可能にすること
を含む請求項1に記載のコンピュータ実装方法。
【請求項7】
さらに、
1つ又はそれ以上のプロセッサにより、前記ナレッジ・グラフへのアクセスを共有する複数のユーザ・システムが、分離、暗号化、生成、維持、マッピング及び付与のステップを実行することを可能とすること
を含む請求項1に記載のコンピュータ実装方法。
【請求項8】
1つ又はそれ以上のストレージ・ユニットに格納され、複数のユーザ・システムによって管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するためのナレッジ・グラフ管理システムであって、前記ナレッジ・グラフ管理システムは、
前記ナレッジ・グラフのそれぞれの部分を複数の前記ユーザ・システムのそれぞれのユーザ・システムのための複数のナレッジ・サブグラフへと分離するように適応された分離ユニットと、
公開/秘密鍵ペアの秘密鍵を使用してそれぞれの前記ナレッジ・サブグラフを暗号化するように適応された暗号化ユニットと、
複数のプライベート・サマリグラフを生成するように適応されたジェネレータであって
プライベート・サマリグラフは、それぞれのユーザ・システムの
ために生成され、
それぞれのプライベート・サマリグラフは、それぞれの前記ユー
ザ・システムのそれぞれのナレッジ・サブグラフのための1つの頂点
を含み、かつ
それぞれの頂点は、前記公開/秘密鍵ペアを含み、
それぞれのユーザ・システムのための1つの頂点及び複数の前記ユーザ・システムの間のコラボレーションを表すエッジを含むコラボレーション・グラフを維持するように適応された管理ユニットと、
複数の前記ユーザ・システムの複数の前記プライベート・サマリグラフを公開サマリグラフにマッピングするように適応されたマッピング・モジュールと、
選択された前記ナレッジ・サブグラフに関連する復号鍵を第1のユーザ・システムから第2のユーザ・システムへと提供することによって、前記第1のユーザ・システムから前記第2のユーザ・システムへと選択されたナレッジ・サブグラフに対するアクセスを付与するように適応されたアクセス・モジュールと
を含む、ナレッジ・グラフ管理システム。
【請求項9】
さらに、前記アクセス・モジュールは、第2の公開/秘密鍵ペアの第2の秘密鍵で、選択された前記ナレッジ・サブグラフを再暗号化することにより、前記第2のユーザ・システムに対して選択された前記ナレッジ・サブグラフへのアクセスを無効化するように適応される、
請求項8に記載のナレッジ・グラフ管理システム。
【請求項10】
さらに、
前記コラボレーション・グラフを、
前記コラボレーション・グラフ内で新たな頂点により表される新たなユーザ・システムのためのアカウントを生成し、
第2のナレッジ・グラフの内容を複数の第2のナレッジ・サブグラフへと分離し、
複数の前記第2のナレッジ・サブグラフを暗号化し、
複数の前記第2のナレッジ・サブグラフを前記ナレッジ・グラフにアップロードすること
により結合するように適応された
参加ユニット
を含む請求項8に記載のナレッジ・グラフ管理システム。
【請求項11】
前記アクセス・モジュールは、さらに、前記ナレッジ・グラフに関連する頂点の前記公開/秘密鍵ペアの公開部分を提供することにより、第3のユーザ・システムから第4のユーザ・システムへとナレッジ・サブグラフへの読み取りアクセスを付与するように適応された、請求項8に記載のナレッジ・グラフ管理システム。
【請求項12】
さらに、
前記第3のユーザ・システムの前記ナレッジ・サブグラフ及び前記第4のユーザ・システムの前記ナレッジ・サブグラフの頂点の間のエッジを前記第4のユーザ・システムによって追加するように適応された維持モジュール
を含む請求項11に記載のナレッジ・グラフ管理システム。
【請求項13】
前記アクセス・モジュールは、
さらに、
第1のユーザ・システムから第3のユーザ・システムへとアクセスを付与するべき前記ナレッジ・グラフに関連する頂点の前記公開/秘密鍵を提供することによって前記第3のユーザ・システムに対して前記第1のユーザ・システムのナレッジ・サブグラフへのアクセスを付与し、かつ
前記第3のユーザ・システムが前記第1のユーザ・システムに関連するナレッジ・サブグラフの頂点を変更した場合に前記第1のユーザ・システムに対してロールバック・オプションを可能にするように適応される、
請求項8に記載のナレッジ・グラフ管理システム。
【請求項14】
複数の前記ユーザ・システムは、
さらに、
1つ又はそれ以上のプロセッサにより、前記ナレッジ・グラフへのアクセスを共有する複数の前記ユーザ・システムが、分離、暗号化、生成、維持、マッピング及び付与のステップを実行することを可能とするように適応される、
請求項8に記載のナレッジ・グラフ管理システム。
【請求項15】
複数のユーザ・システムによって管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するためのコンピュータ・プログラ
ムであって、前記コンピュータ・プログラ
ムは、
1つ又はそれ以上のコンピュータ可読な記録媒体及び前記コンピュータ可読な記録媒体上に格納されたプログラム命令を含み、前記プログラム命令が、
前記ナレッジ・グラフのそれぞれの部分を複数の前記ユーザ・システムのそれぞれのユーザ・システムのための複数のナレッジ・サブグラフへと分離するためのプログラム命令と、
公開/秘密鍵ペアを使用してそれぞれの前記ナレッジ・サブグラフを暗号化するためのプログラム命令と、
複数のプライベート・サマリグラフを生成するためのプログラム命令であって、
プライベート・サマリグラフは、それぞれのユーザ・システムの
ために生成され、
それぞれのプライベート・サマリグラフは、それぞれの前記ユー
ザ・システムのそれぞれのナレッジ・サブグラフのための1つの頂点
を含み、かつ
それぞれの頂点は、前記公開/秘密鍵ペアを含んでいるプログラム命令と、
それぞれのユーザ・システムのための1つの頂点及び複数のユーザ・システムの間のコラボレーションを表すエッジを含むコラボレーション・グラフを維持するためのプログラム命令と、
複数の前記ユーザ・システムの複数の前記プライベート・サマリグラフを公開サマリグラフにマッピングするためのプログラム命令と、
選択された前記ナレッジ・サブグラフに関連する復号鍵を第1のユーザ・システムから第2のユーザ・システムへと提供することによって、前記第1のユーザ・システムから前記第2のユーザ・システムへと選択されたナレッジ・サブグラフに対するアクセスを付与するためのプログラム命令と
を含む、コンピュータ・プログラ
ム。
【請求項16】
さらに、第2の鍵ペアの第2の秘密鍵で、選択された前記ナレッジ・サブグラフを再暗号化することにより、前記第2のユーザ・システムに対して選択された前記ナレッジ・サブグラフへのアクセスを無効化するためのプログラム命令を含む、
請求項15に記載のコンピュータ・プログラ
ム。
【請求項17】
さらに、
前記コラボレーション・グラフ内で新たな頂点で表される新たなユーザ・システムのためのアカウントを生成するためのプログラム命令と、
第2のナレッジ・グラフの内容を複数の第2のナレッジ・サブグラフへと分離するためのプログラム命令と、
複数の前記第2のナレッジ・サブグラフを暗号化するためのプログラム命令と、
複数の前記第2のナレッジ・サブグラフを前記ナレッジ・グラフにアップロードするためのプログラム命令と
によって前記コラボレーション・グラフを結合するためのプログラム命令と
を含む請求項
15に記載のコンピュータ・プログラ
ム。
【請求項18】
さらに、
前記ナレッジ・グラフに関連する頂点の前記公開/秘密鍵ペアの公開部分を提供することにより、第3のユーザ・システムから第4のユーザ・システムへとナレッジ・サブグラフへの読み取りアクセスを付与するためのプログラム命令
を含む、請求項15に記載のコンピュータ・プログラ
ム。
【請求項19】
さらに、
前記第3のユーザ・システムの前記ナレッジ・サブグラフ及び前記第4のユーザ・システムの前記ナレッジ・サブグラフの頂点の間のエッジを前記第4のユーザ・システムによって追加するためのプログラム命令
を含む請求項18に記載のコンピュータ・プログラ
ム。
【請求項20】
さらに、
第3のユーザ・システムから第4のユーザ・システムへとアクセスを付与するべき前記ナレッジ・グラフに関連する頂点の前記公開/秘密鍵を提供することによって前記第4のユーザ・システムに対して前記第3のユーザ・システムのナレッジ・サブグラフへのアクセスを付与するためのプログラム命令と、
前記第4のユーザ・システムが前記第3のユーザ・システムに関連するナレッジ・サブグラフの頂点を変更した場合に前記第3のユーザ・システムに対してロールバック・オプションを可能にするためのプログラム命令と
を含む請求項15に記載のコンピュータ・プログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概ねナレッジ管理システムにおけるアクセス権に関し、より具体的には、複数のエンティティにより管理されたコンテントを有するナレッジ・グラフへのアクセス権の管理に関する。
【背景技術】
【0002】
エンタープライズの情報技術(IT)における最大の課題の1つは、非構造化データの管理である。認知的計算の時代においては、ナレッジ・グラフはトランザクションするシステムの外部の情報を格納し、管理し、かつ処理するために使用される。ナレッジ・グラフは、広く装置に受け入れられ、組織内及び部門及び組織の境界を横断した人々のコラボレーションを組織化する。
【0003】
ナレッジ・グラフは、典型的には、またメッシュ及びエッジ、ノード間のリンクとして参照され、頂点の間の関係、すなわち、コンテント、アイテム、すなわち、ナレッジ・グラフに格納された事実の間の関係を格納するノードの頂点に格納される複数のソースから収集された少なくともファクトを含む。
【0004】
典型的なナレッジ・グラフは、100万~1億の間の頂点のサイズに渡る。したがって、ナレッジ・グラフを格納し、管理することは、データセンターにおける記憶及び計算能力の実質的量を供給する可能性が有る。
【0005】
ナレッジ・グラフは、典型的には組織(企業、部門、及びその雇用者)内又はその間でコラボレーションを容易にするために使用される。組織のナレッジ・グラフの部分は、機密データを含む可能性があるが、他の部分は、他の選択された組織又はユーザ又はそれら両方に対してアクセス可能とされるべきである。アクセス制御は、例えば、本技術において知られた中央的な権限によって提供することができる。しかしながら、中央的な権限は、確立され、かつ矛盾なく維持されなければならない。それがすべての証明を保持し、かつ制限されるか及び制限されていないすべての情報に完全なアクセスを有する可能性があるので、ユーザは、登録しなければならず、かつより重要なことは中央的な権限を信頼しなければならない。したがって、中央的な権限は、自己組織化する組織及びコンテントの分散された信頼性を妨げる場合がある。さらに、中央的な権限は、要求されるメンテナンス活動、付与、又はアクセス権の削除又はこれらの組み合わせを遅延させる可能性がある。
【発明の概要】
【0006】
本発明の1つの特徴によれば、複数のエンティティにより管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するためのコンピュータ実装方法が提供される。本方法は、複数のユーザ・システムのそれぞれのユーザ・システムについて、そのナレッジ・グラフのそれぞれの部分を複数のナレッジ・サブグラフに分離すること、ナレッジ・サブグラフのそれぞれを、ナレッジ-サブグラフに固有の非対称な公開/秘密鍵ペアを使用して暗号化すること、及びそれぞれのユーザ・システムの1つのための複数のプライベート・サマリグラフを生成することを含む。それによって、それぞれのプライベート・グラフは、ユーザ・システムのそれぞれのナレッジ・グラフのための1つの頂点を含むことができる。追加的に、それぞれの頂点は、また、ナレッジ-サブグラフに固有の非対称な公開/秘密鍵ペアを含むことができる。
【0007】
本方法はさらに、ユーザ・システムごとに1つの頂点を有すると共に、ユーザの間のコラボレーションを表すエッジを含むコラボレーション・グラフを維持すること、すべてのユーザ・システムの全てのプライベート・サブグラフを、1つの公開サマリグラフへとマッピングすることであって、公開サマリグラフの頂点は、関連するプライベート・サマリグラフの関連する頂点よりも少ないデータを含んでおり、ここで、サマリグラフの頂点の何れもナレッジ・サブグラフの何れをも暗号化するために使用される秘密鍵を含まず、かつ第1のユーザ・システムから第2のユーザ・システムへの選択されたナレッジ・サブグラフに関連する復号鍵を提供することによって、第1のユーザ・システムから第2のユーザ・システムへの選択されたナレッジ・サブグラフへのアクセスを付与することを含む。
【0008】
本発明のもう1つの特徴によれば、ナレッジ・グラフに対するアクセス権を管理するための関連ナレッジ・グラフ管理システムが提供される。本システムは、複数のユーザ・システムのそれぞれのユーザ・システムについて、そのナレッジ・グラフのそれぞれの部分を複数のナレッジ・サブグラフに分離するように適応された分離ユニット、ナレッジ・サブグラフのそれぞれを、ナレッジ-サブグラフに固有の非対称な公開/秘密鍵ペアを使用して暗号化するように適合された暗号化ユニット、及びそれぞれのユーザ・システムの1つのための複数のプライベート・サマリグラフを生成するように適応されたジェネレータを含む。それによって、それぞれのプライベート・グラフは、ユーザ・システムのそれぞれのナレッジ・グラフのための1つの頂点を含むことができ、かつそれぞれの頂点は、また、ナレッジ-サブグラフ固有の非対称な公開/秘密鍵ペアを含むことができる。
【0009】
さらに、本システムは、ユーザ・システムごとに、ユーザの間のコラボレーションを表す1つの頂点及びエッジを含むコラボレーション・グラフを管理するように適応された管理ユニット及びすべてのユーザ・システムのプライベート・サブグラフを、1つの公開サマリグラフへとマッピングするように適応されたマッピング・モジュールを含む。それによって、公開サマリグラフのそれぞれの頂点が、関連するプライベート・サマリグラフの関連する頂点よりも少ないデータを含むことができ;サマリグラフの頂点の何れもナレッジ・サブグラフの何れをも暗号化するために使用される秘密鍵を含まない。
【0010】
加えて、アクセス・モジュールは、第1のユーザ・システムから第2のユーザ・システムへの選択されたナレッジ・サブグラフに関連する復号鍵を提供することにより、第1のユーザ・システムから第2のユーザ・システムへの選択されたナレッジ・サブグラフへのアクセスを付与するように適応させることができる。
【0011】
コンテントが複数のエンティティによって管理されるナレッジ・グラフに対するアクセス権を管理するため、提案されるコンピュータ実装方法は、多数の効果及び技術的効果を提供する。
【0012】
本発明は、中央的な証明、認証及び管理のインスタンスを必要とすることなく、複数のナレッジ・グラフ-又はその部分-によってデータ及び知識を共有するための簡単で、直接的、効果的で効率的な方法を可能とする。ナレッジ・グラフ-又は複数のナレッジ・グラフ-は、いわば1つ又はそれ以上のナレッジ・グラフに格納されたコンテントのユーザ及びコンテント所有者によって自己管理可能となる。アクセス権に関する決定は、それらのクライアントシステムでコンテント所有者により直接管理される。
【0013】
これは、アクセス権の付与又は無効化に加えて、ナレッジ・グラフを使用することについての動機を増大させる。したがって、ナレッジ・グラフのより一層の直接的な制御が可能とされる。管理上のオーバーヘッドに加え、サイクル・タイムが削減できる。
【0014】
ナレッジ・サブグラフへのアクセス制御は、直接ユーザに分散される。ナレッジ・サブグラフの形態におけるいくつかのコンテンツを“所有”するユーザは、自ら誰にアクセスを付与するか及び誰に付与しないかを決定する。また、特定のナレッジ・サブグラフへのアクセスを無効化するプロセスは、知識所有者の手の内とすることができる。
【0015】
レイヤ化されたアーキテクチャ-特にプライベート・サマリグラフレイヤ、コラボレーション・グラフレイヤ、及び公開サマリグラフ-は、ナレッジ・サブグラフの、細かい粒子に分散化されたアクセス制御管理を達成することにおける手段である。
【0016】
以下において、本発明の追加的な実施形態-関連するシステムに加えて利用可能な方法を説明する。
【0017】
1つの効果的な実施形態によれば、本方法は、また、ナレッジ-サブグラフに固有の非対称性の公開/秘密鍵ペアの新たな秘密鍵で第2のユーザ・システムへの選択されたナレッジ・サブグラフを再暗号化することによって第2のユーザ・システムに対して、選択されたナレッジ・サブグラフへのアクセスを無効化することを含むことができる。したがって、コンテントの所有者は、彼のコンテントの完全な制御を有することができる。もう1人のユーザに対して一度アクセスを付与したとしても、コンテント所有者は、いつでもコンテンツに対するアクセスを無効化することができる。
【0018】
本方法の1つの好ましい実施形態によれば、それぞれのプライベート・サブグラフのそれぞれの頂点は、関連するナレッジ・サブグラフのコンテントのサマリ記述を含むことができる。この方法において、プライベート・サブグラフは、もう1人のユーザにより所有されるコンテントに加え、特定のユーザにより所有されるコンテンツに対する中間レイヤとなることができる。
【0019】
役に立つ実施形態によれば、本方法は、また、コラボレーション・グラフにおいて新たなユーザのためのアカウントを生成することによってコラボレーション・グラフに参加させることを含むことができ、新たなユーザ・システムは、新たな頂点により表され、外部ナレッジ・グラフのコンテンツを-メインナレッジ・グラフの特定の外部-複数の外部ナレッジ・ベースに分離すること、メインナレッジ・グラフに加えて外部ナレッジ・サブグラフを暗号化すること、及びナレッジ・グラフに外部ナレッジ・サブグラフをアップロードすることを含む。したがって、新たなユーザは、いつでもメインコンテンツのナレッジ・グラフを使用してすでに組織化された他のユーザがそれらのコンテントを共有することを決定することができる。新たなユーザはまた、彼のコンテンツのどの部分-すなわち、彼、又は彼女が管理するナレッジ・グラフ-が他のユーザと共有可能なのかを決定することができる。
【0020】
1つの許容可能な実施形態によれば、本方法はまた、公開サマリグラフの頂点のサマリ・コンテンツを通した検索により、公開サマリグラフを通して検索することを含む。サマリナレッジ・グラフは、アクセス制限はない。したがって、すべてのユーザは、ナレッジ・グラフのこの公開領域を通して検索することができる。しかしながら、これは、ユーザがプライベート・サマリグラフにおける頂点に関連するコンテントにアクセスを有することができることを意味しない。その下側にある詳細ナレッジ・グラフ、すなわち関連するコンテント・グラフへのアクセスを要求する許可が必要とされる。
【0021】
1つの効果的な実施形態によれば、本方法は、-特に第3のユーザ・システムに対するアクセス付与要求を受領した後-すなわち関連するユーザの如何なる他のコンテントに対しても、第1のユーザ・システムから第3のユーザ・システムへのアクセスが付与されるべき、関連するナレッジ・グラフの頂点の公開/秘密鍵ペアの提供、すなわち送付により、第1のユーザ・システムのナレッジ・サブグラフへの読み取りアクセスを付与することを含むことができる。この通信は、第3のユーザ・システムの公開鍵により暗号化することができることを指摘することができる。また、第3のユーザ・システムは、第3のユーザ・システムのプライベート・サマリグラフへの新たな頂点の追加に加え、彼のナレッジ・サブグラフの要素と、第1のユーザ・システムの1つとの間のリンクを生成/定義することができる。これは、微細に粒子化されたコンテンツ・アクセス制御の大きな程度の柔軟性を可能とする。
【0022】
もう1つの効果的な実施形態によれば、本方法は、また、第1のユーザ・システムのナレッジ・サブグラフと、第3のユーザ・システムのナレッジ・サブグラフとの間にエッジを追加することを含むことができる。このメカニズムにより、それぞれのユーザは、特に他のユーザが見ることができ読むことができるものにおいて、その自らのコンテントにわたって最良の制御を有することができる。
【0023】
本発明のさらなる効果的な実施形態によれば、本方法は、また、第1のユーザ・システムのナレッジ・サブグラフに対して、特に、及び再度関連する書き込み要求を受領した後、第1のユーザ・システムから第3のユーザ・システムへとアクセスが付与されるべき関連するナレッジ・グラフの頂点の公開/プレイベート鍵ペアを提供することにより(又はここではそれを送付することにより)、第3のユーザ・システムに対して書き込みアクセスを付与すること、第3のユーザ・システムが頂点-特に第1のユーザ・システムに関するナレッジ・グラフの少なくとも1つを変更した後、第1のユーザ・システムのためのロールバック・オプションを可能とすることを含む。したがって、システムの如何なるユーザでもまた、-特に新たなコンテントの変更及び追加において-、その特定のユーザにより所有されるナレッジ・グラフのその部分の管理に渡って任意的に完全な制御を有する。
【0024】
本方法の1つの任意的な実施形態によれば、ナレッジ・グラフは、フラット・ファイルの集積、リレーション・データベース、又はオブジェクト指向データベース及びグラフ・データベースを含むグループから選択することができる。したがって、基本的には、ナレッジ・グラフのために如何なる有用化データ組織化でも本発明のために使用することができる。
【0025】
1つの好ましい実施形態によれば、本方法はまた、すべてのユーザ・システム-インストールされた適切なクライアント・アプリケーションを有する-が、分離、暗号化、生成、維持、マッピング、及び付与の機能的ステップを遂行させるために、連結されたナレッジ・グラフへのアクセスを共有することを可能とする。
【0026】
本発明のもう1つの任意的な実施形態によれば、ナレッジ・サブグラフは、異なるストレージ・プラットホームを横切って部分的に配布することができる。したがって、メインナレッジ・グラフは、1つの単一ストレージ・システムにおいて信頼性のある1つのナレッジ・グラフとする必要性を無くすることができる-しかしながら、異なるシステムを横断して配布され、及びまた異なるロケーションを横断して配布された複数のナレッジ・サブグラフが収集される。
【0027】
さらに、実施形態は、コンピュータ利用可能な又はコンピュータ可読な媒体からアクセス可能であり、コンピュータによる、又は如何なる命令実行システムとの関連による利用のためのプログラム・コードを提供する、関連するコンピュータ・プログラム製品の形態を取ることができる。本明細書の目的のため、コンピュータ利用可能又はコンピュータ可読な媒体は、命令実行システム、装置又はデバイスによる使用又との組み合わせにおいてプログラムを格納し、通信し、伝搬し、又は搬送する手段を含むことができる如何なる装置とすることができる。
【図面の簡単な説明】
【0028】
【
図1】
図1は、複数のエンティティにより管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するためのコンピュータ実装方法の実施形態のブロック図を示す。
【
図2】
図2は、中央ストレージへの通信接続における複数のユーザ・システムの実施形態のブロック図を示す。
【
図3】
図3は、本発明の層状アーキテクチャの実施形態のブロック図を示す。
【
図4】
図4は、追加のナレッジ・サブグラフに付与されたアクセスを有する層状アーキテクチャの実施形態の図を示す。
【
図5】
図5は、サブプロセス“付与アクセス”及び“書き込みアクセス”のフローチャートのブロック図を示す。
【
図6】
図6は、サブプロセス“削除アクセス”のフローチャートのブロック図を示す。
【
図7】
図7は、複数のエンティティにより管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するためのシステムのブロック図を示す。
【
図8】
図8は、本発明のコンピューティング・システム手段のブロック図を示す。
【発明を実施するための形態】
【0029】
既知のソリューションの不都合は、中央管理及び他の部門又は組織又はそれらの両方と、認証及び許可のための中央権限を必要とすることなく、ナレッジ・グラフを共有する部分に対する既知のソリューションがないことに残されている。スーパー・ユーザの権利を有する統括者は、冗長でありかつ余計となるはずである。
【0030】
したがって、既知のソリューションの制限を克服し、特に煩雑な中央統括エンティティ無くしてナレッジ・グラフの部分の共有を可能とする、ナレッジ管理システムを提供することが必要とされるであろう。
【0031】
本明細書の説明のコンテキストにおいて、以下の規定、用語、又は表現又はこれらの組み合わせが使用される。
【0032】
用語、“ナレッジ・グラフ”は、エンティティに関連する意味論的に互いに組織化されたデータ・プール-すなわち、コンテント・アイテムを記述することができる。コンテント・アイテムは、コンテント・アイテム間の関係を規定するエッジ(又はリンク)により選択的にリンクされた頂点(又はノード)を表すことができる。ナレッジ・グラフは、1つ又はそれ以上のデータベース内に加えて、複数のフラット・ファイルとして組織化されることができる。
【0033】
用語“ユーザ・システム”は、コンピューティング・システム、典型的には、オペレーティング・システムの制御の下でソフトウェア・アプリケーションを実行するパーソナル・コンピュータ又はワークステーションを記述することができる。本発明を通じて参照されるクライアントは、ソフトウェア・アプリケーションを記述することができる。ユーザは、そのようなワークステーションにより表わされることができる。
【0034】
用語“ナレッジ-サブグラフに固有の非対称な公開/秘密鍵ペア”とは、排他的に専用のナレッジ・サブグラフのため生成された公開/秘密鍵ペアを記述する。この生成は、クライアント(アプリケーション)により実行することができる。公開部分は、共有され、秘密鍵は、典型的にはナレッジ・サブグラフのコンテント・アイテムへのアクセス権を有する、極めて制限されたシステムのグループのみによりアクセス可能とすることができる。
【0035】
用語“プライベート・サマリグラフ”とは、ナレッジ・サブグラフの上にある1つのレベルに組織化された層状アーキテクチャにおける層を記述することができる。コンテント・レベル内の異なるナレッジ・サブグラフを組織化することのために使用することができる。
【0036】
用語“頂点”は、ナレッジ・グラフ内におけるコンテント又はユーザを表す論理的エンティティを記述する。頂点は、また、管理の目的のために使用される場合がある。頂点は、コンテント・アイテム、ユーザ、アクセス権、又はこれらの組み合わせの間の依存性を表すエッジによってリンクすることができる。
【0037】
用語“コンテント・グラフ”は、コンテント・グラフの最下位レベルを記述することができる。コンテント・グラフは、コンテント・アイテムを表す頂点を含む複数のナレッジ・サブグラフを含む。本発明を通じて、用語“コンテント・グラフ”及び“ナレッジ・グラフ”は、同義的に使用される場合がある。しかしながら、最下位レベルは、完全なコンテント・グラフを構築することか可能であるか、又はユーザがそれらの間にリンクを構築しないため、結合されていない複数のコンテント・グラフである、複数のナレッジ・サブグラフを含むことができる。
【0038】
用語“プライベート・サマリグラフ”は、コンテント・グラフのぞれぞれのサブグラフ、コラボレータに加えてユーザのサブグラフについての1つの頂点を含むコンテント・グラフの上側のナレッジ・グラフ層を記述することができる。基本的には、プライベート・サマリグラフの頂点は、追加の管理情報に加えて対応するサブグラフのサマリを表す(すなわち、暗号/復号鍵)。
【0039】
用語“コラボレーション・グラフ”は、プラベート・サマリグラフの上にある次のナレッジ・グラフを記述することができる。コラボレーション・グラフのそれぞれの頂点は、ナレッジ・グラフのユーザを表すことができる。ここから、リンクは、彼または彼女がアクセスを有するコラボレータのナレッジ・サブグラフに加えて、ユーザがその自らのナレッジ・サブグラフへのアクセスを有するコンテント・グラフ層の全てのナレッジ・サブグラフのコンテント・アイテムへと出発する。
【0040】
用語“公開サマリグラフ”は、要約した形式におけるコンテント・グラフ層-すなわち、ナレッジ・サブグラフのサマリ-を表す。公開サマリグラフは、ナレッジ・グラフのアーキテクチャの最上位層を表すことができる。公開サマリグラフの頂点は、対応するナレッジ・サブグラフのサマリのみを含むことができる。公開サマリグラフは、すべてのユーザによる初期検索及びナビゲーション層を表すことができる。
【0041】
用語“コラボレーション”とは、本明細書においては、ユーザが管理するためのコンテント・サブグラフにもう1人のユーザがアクセスすることを許容することを記述する。
【0042】
用語“アクセス”とは、コンテント・サブグラフを所有及び管理しないユーザがもう1人のユーザに対してコンテントの読み込みを許可することを記述することができる。所有ユーザは、また、もう1人のユーザ、すなわち、コラボレータに対し、サブグラフに対して新たなコンテントを書き込むこと又は既存のコンテントを変更すること、すなわち書き込みを許可することを記述することができる。
【0043】
用語“再暗号化”は、サブグラフ-特にサブグラフに格納された情報-が復号することなく直接に新たな鍵で再暗号化できること、及びそれを直ちに格納することを記述することができる。この方法において、サブグラフのコンテント・アイテムは、復号及び新たな暗号化の間の期間に決して露出されることはない。再暗号化は、それに対してアクセスを有していた可能性のあるユーザに関連してコンテント・アイテムへのアクセスを無効化するための基礎である。
【0044】
以下に、図面の詳細な説明を行う。図面におけるすべての表示は、概略的なものである。先ず、複数のエンティティにより管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するための発明的なコンピュータ実装方法の実施形態のブロック図が提供される。ここから後、ナレッジ・グラフに対するアクセス権の管理のためのナレッジ・グラフ管理システムの実施形態に加え、さらなる実施形態を記載する。
【0045】
図1は、複数のエンティティにより管理されるコンテントを有するナレッジ・グラフへのアクセス権を管理するためのコンピュータ実装方法100のブロック図を示す。一般に、ユーザは、アプリケーション又はブラウザ又はそれらの両方を動作させているそれらのコンピュータ・システム(すなわち、ワークステーション)により表される。方法100は、複数のユーザ・システムのそれぞれのユーザ・システム-特定のユーザを表す-について、ナレッジ・グラフのそれぞれの部分を複数のナレッジ・グラフへと分離すること102;ナレッジ-サブグラフ固有の非対称な公開/秘密鍵ペアの秘密鍵を使用してそれぞれのナレッジ・サブグラフを暗号化すること104;及びそれぞれがユーザ・システムのための1つであるプライベート・サマリグラフを生成すること106であって、それぞれのプライベート・サマリグラフが、ユーザ・システムのそれぞれのナレッジ・サブグラフのための1つの頂点-特に正確には1つ-を含む。これにより、それぞれの頂点は、また、ナレッジ-サブグラフ固有の非対称公開/秘密鍵ペア、すなわち、復号鍵に加えて暗号鍵を含む。
【0046】
方法100は、また、ユーザ・システムごとの1つの頂点及びユーザの間のコラボレーションを表すエッジを含むコレボレーション・グラフを維持すること108;及びすべてのユーザ・システムの全てのプライベート・サブグラフを1つの公開サマリグラフにマッピングすること110を含み、ここで公開サマリグラフのそれぞれの頂点は、関連するプライベート・サマリグラフの関連する頂点よりも少ないか又は等しい数であり、かつサマリグラフの頂点のどれもが如何なるナレッジ・サブグラフを暗号化するために使用する秘密鍵を含まない。
【0047】
方法100は、また、第1のユーザ・システムから第2のユーザ・システムへと、選択したナレッジ・サブグラフへのアクセスを、第1のユーザから第2のユーザへと、選択したナレッジ・サブグラフに関連する復号鍵を提供することにより付与すること112を含む。
【0048】
図2は、中央ストレージに対して通信接続(ワイヤ結合又はワイヤレスネットワーク)にある複数のユーザ・システムの実施形態のブロック図を示す。したがって、その下にあるインフラ基盤は、クライアント(ソフトウェア・アプリケーション)を動作させているユーザ・ワークステーション202,204,206,208及び例えばパブリックにアクセスできるクラウド・ストレージといった共用ストレージ210の、基本的なコンポーネントの2つのタイプのみを含む。ナレッジ・グラフは、共用ストレージ210上に暗号され、かつ格納される。サマリグラフのみが暗号化されずに格納され、すべてのユーザ・システムによりアクセスすることができる。他のすべてのデータは、アクセスから暗号化により保護されている。アクセスは、個別的に付与されるべきである。1つの実装においては、共用ストレージ210は、フラット・ファイル・ストレージとして提供され、もう1つの実装では、リレーショナル・データベース管理システム(RDBMS)である。ユーザのワークステーション上で動作するクライアント(アプリケーション)は、使用された非対称暗号鍵のセットを生成し、暗号、復号を実行し、ナレッジ・グラフにアクセスする。
【0049】
以下で詳細に説明するように、本発明は、ナレッジ・グラフの4つのレベルに基づく。実際の(より形式的には非暗号化)ナレッジ・グラフは、コンテント・グラフと呼ばれ、いくつかのサブグラフに分離されて、特定のコンテントにユーザがアクセスすることを可能とする。アクセスは、ロール・ベースとすることができる。(i)サブグラフ及びそれらの暗号化が(ii)それ自体が暗号化されたプライベート・サマリグラフにより取扱われる。(iii)コラボレーション・グラフが頂点として提示され、共有された暗号鍵を輸送するユーザを結合する。(iv)暗号化されていない公開グラフは、ユーザがフェロー・コラボレータにより所有されるコンテントを検索することを可能とする。
【0050】
復号及び暗号のための鍵を共用することにより、ユーザは、フェロー・コラボレータ、すなわち外部ユーザ、すなわち他のユーザ・コンピュータ・システム、すなわち、ワークステーションとのコラボレーションを開始することができる。
【0051】
図3は、本発明の階層アーキテクチャの実施形態のブロック図を示す。ナレッジ・グラフの4つの層が示されている:公開ナレッジ・グラフ302,コラボレーション・グラフ304,プライベート・サマリグラフ306及び複数のナレッジ・サブグラフを含むコンテント・グラフ308である。図示されるように、異なるナレッジ・グラフの層は、水平の破線により分離されている。
【0052】
エッジは、頂点の間のリンクに格納される。頂点Aと、Bとが結合されるということは、Bへの参照が、Aに格納され、Aへの参照が、Bに格納されることである。いくつかの場合においては、AからBへの、BからAへの部分エッジのアトリビュートは、異なってもよい。
【0053】
それぞれのナレッジ・グラフ/それぞれのナレッジ・サブグラフについて、頂点のインデックスは維持される。
【0054】
グラフのサマリは、以下の1つ又はそれ以上を含む:その構造の抽象化(粗いグラフのような)、頂点に割り当てられたタグ、頂点コンテントのキーワード、及び頂点のリストである。
【0055】
非対称暗号は、コンテントを保護するために使用され、かつコンテントを選択された個人又はグループに利用可能とする。非対称暗号は、ユーザが暗号鍵Kenc(また秘密鍵として知られる)の外側及び復号のための鍵Kdecから構成される鍵ペアを生成するような方法において使用される。鍵生成の活動、暗号、及び復号は、ユーザのワークステーションのクライアントによって実行される。公開鍵インフラ基盤のような証明書による認証(PKI)は、好都合なことに必要とされない。
【0056】
後述する図においては、矢頭を有しないラインは、双方向エッジであり、矢線は、一方向エッジを記述する。例えば、頂点Jからコンテント・グラフ308のロード・グループ312への連結は、一方向的である。
【0057】
最下位層は、コンテント・グラフ(複数)308、すなわち、ナレッジ・サブグラフを含む。そのソースは、オリジナルで、暗号化されていないナレッジ・グラフである。コンテント・グラフ308は、ナレッジ・サブグラフへと分離されるので、コンテント310,312,314(サブグラフ)の個別的なセットは、フェロー・コラボレータに共有されることができる。特定のナレッジ・グラフの所有者は、種々のアプローチを使用してサブグラフを定義する。
【0058】
例えば:(i)ナレッジ・グラフの生成又は拡張の間に、所有者は、コンテント及び可能性のあるコラボレータに基づいてサブグラフを定義する。(ii)所有者は、コミュニティ構造を発見するアルゴリズムを使用し、かつそれらをその構造に基づいてナレッジ・グラフに分離するために使用する。コミュニティを見出すためのアルゴリズムは、ミニマム法、階層クラスタリング法、Girvan-Newmanアルゴリズム、モジュラリティ最大化法、統計的干渉、及びクリック・ベースの方法を含むことができる。サブグラフの中心から密にリンクされた領域及び疎にカップルされた頂点は、異なるサブグラフの間に分散される。(iii)所有者は、コンテントにより頂点をグループ化、例えば、所有者は、トピックスのリストを生成すると共に、それぞれの頂点に、最も近いマッチング・トピックを割り当てる。(iv)上記のものの組み合わせ。
【0059】
それぞれのサブグラフ(J,K,L)310,312,314は、異なる秘密鍵で暗号化される。対応する復号鍵を共有することにより、サブグラフへのアクセスを他のユーザに提供することができる。コンテント・グラフは、他のユーザにより所有されるグラフへのリンクを含むことができる(
図4のドット・ライン406参照)。
【0060】
プライベート・サマリグラフ306は、コンテント・グラフ308のそれぞれのサブグラフのための1つの頂点を含む-両方がサブグラフ及びコラボレータのサブグラフを所有する。プライベート・サマリグラフ306の2つの頂点は、それぞれのサブグラフの頂点の間の少なくとも1つのエッジが存在する場合にリンクされる。プライベート・サマリグラフ306のそれぞれの頂点は:対応するサブグラフの頂点のリスト;対応するグラフのサマリ;書き込みアクセスを有する所有するサブグラフ及びコラボレータのサブグラフ;対応するサブグラフの復号鍵及び暗号鍵;読み込みのみアクセスを有するコラボレータのサブグラフについて、対応するサブグラフの復号鍵;及びサブグラフの格納ロケーションである。また、プライベート・サマリグラフは、暗号化されることを指摘することができる。最初に復号鍵は、共有されない。
【0061】
コレボレーション・グラフ304は、他のユーザ(例えば、U,C,D,B)のナレッジ・グラフの接続を表す。頂点は、ユーザを表す(ユーザそれ自身及びコレボレータ)。それぞれのユーザU,C,D,Bは、ユーザがシステムにジョインしたときに生成され、割り当てられた固有の識別値を有する。コラボレーション・グラフの頂点の間のエッジは、ユーザのサブグラフ(複数)と、コラボレータのグラフ(複数)の頂点との間で生成されたエッジを要約する。そのサブグラフ(複数)と、それらのサブグラフとの間のエッジにアクセスを付与された1つ以上のコラボレータが見出される場合、コレボレータのサブグラフの間の連結は、コラボレーション・グラフにおいて要約される(例えば、頂点B及びCの間)。
【0062】
コラボレーション・グラフ304内の頂点は、ユーザ(例えばU,C,D,B)を表し、公開サマリグラフ302及びプライベート・サマリグラフ306の両方においてユーザにより所有されるすべての頂点にリンクされる。コラボレータは、原理的にプライベート・サマリグラフ306内に配置された頂点へのエッジに従うことができるが、頂点が暗号化されているので頂点にはアクセスすることができない(及びそれに続くエッジ)。ユーザの頂点はまた、コラボレータからのアクセス要求を受領し、かつ格納する。
【0063】
公開サマリグラフ302は、(プライベート・サマリグラフ306として)1つの頂点(例えばJ,K,L,M,O)を、それぞれのサブグラフについて含む。しかしながら、頂点は、対応するサブグラフの要約を含むのみである。公開サマリグラフ302上の要約は、プライベート・サマリグラフ上のようには情報のレベルを含まない可能性がある。しかしながら、これは、有意義な検索結果を生成するに、十分に包括的であるべきである。
【0064】
頂点は、また、コンテント・グラフにおけるサブグラフの格納ロケーションを含む。それぞれの頂点は、頂点の所有のユーザ頂点にリンクされる。クライアントは、コラボレーションが確立され、かつコンテント・グラフの対応するサブグラフの間の少なくとも1つのエッジが追加される1度だけ(少なくとも一方的に)、異なる所有者の頂点の間にエッジを追加することができる。
【0065】
1つの実装においては、中央ナレッジ・グラフのストレージ(
図2,210)は、フラット・ファイルのセットとして実装され、頂点は、ファイルで表され、かつエッジは、他のファイル(すなわち、経路及びファイル名)への参照として頂点ファイルに格納される。
【0066】
もう1つの実装においては、インダストリ・スタンダードのナレッジ・グラフ・データベースが使用される。これらのグラフ・データベースは、リレーショナル・データベースであり、そこではそれぞれのオブジェクト(頂点)は、プライマリな固有のキーを有する。オブジェクトに関連する他のオブジェクト(エッジにより結合される頂点)は、“外部キー”により参照され、これは、オブジェクト内のアトリビュートとして格納されるプライマリ・キーの値である。
【0067】
1つの実装においては、単一のグラフ・データベースは、すべてのクライアントにより使用される。もう1つの実装においては、いくつかのグラフ・データベースが使用されるか、又はそれぞれのクライアントがその自身のグラフ・データベースをセットアップすることさえある。当然のことながら、すべてのグラフ・データベースは、互換的、すなわち、同一のスタンダードにしたがい、かつそれぞれのグラフ・データベースは、固有の識別値を有しなければならない。すべてのデータベースは、クライアント、すなわち、ユーザのワークステーション上のアプリケーションにより使用される統括的なユーザIDによって(少なくとも読み取り)アクセスを許容する。
【0068】
公開サマリグラフ302が接続されない、すなわち、2つ又はそれ以上のサブグラフがエッジを共有しない場合を考察するべきである。これは、少なくとも新たなユーザがジョイン(参加)(下記を参照のこと)する場合である。参加し、かつサブグラフを共有した後、それぞれのユーザは、サブグラフの間のエッジを定義することができる。
【0069】
単一のグラフ・データベースが使用される場合、クライアントは、公開サマリグラフ302の頂点のテーブルにアクセスし、ここでこのテーブルは、それぞれの頂点について、コンテントへのポインタを含む(上述の“格納ロケーション”と言われるもの)。
【0070】
多数のグラフ・データベースが使用される場合、クライアントは、グラフ・データベースについてストレージ・システムをスキャンし、かつ公開サマリグラフの頂点のそれぞれのデータベースのテーブルにアクセスし、ここでそれぞれの頂点についてのコンテントへのポインタを含む(上述の“格納ロケーション”と言われるもの)。多数のグラフ・データベースが使用される場合、プライマリ・キーは、データベースを横断して固有ではない;したがって、エッジは、タプルとして実装される(データベース識別子、プライマリ・キー)。
【0071】
一般的な基本的操作として、以下のものが考慮される:ユーザの参加、サマリグラフの検索、アクセス付与、アクセスの無効化又は削除。これらの異なるシナリオを以下に説明する。
【0072】
ユーザ参加
【0073】
もし、新たなユーザがコラボレーション・ネットワークに参加することを希望する場合、彼または彼女は、共用ストレージに登録しなければならない。それぞれのユーザは、ナレッジ・グラフにアクセスし、かつ維持することを支援する彼らのワークステーション上にインストールされたクライアントを有する必要がある。
【0074】
第1のステップとして、ユーザは、コラボレーション・グラフ304内の彼自身/彼女自身を示す頂点を生成する(例示的には
図3のユーザAで示される。)。まず、ユーザを表す頂点は、如何なる他の頂点ともリンクされていない。
【0075】
ユーザは、最初のサブグラフの数を決定する。ユーザは、1つ又はそれ以上の鍵ペア(Key
i
enc,Key
i
dec)をそれぞれのサブグラフについて1つ、例えば、
図3において示したi=J,K,Lを生成する。ワークステーション上では、ユーザは、上述したように、頂点及びエッジでそれらを配布するか、又は既存のナレッジ・グラフをインポートしてそれをサブグラフに分けるかの何れかによってサブグラフを生成する。クライアントは、それぞれのサブグラフを、対応する鍵Key
i
encで暗号化して、サブグラフを中央ストレージにアップロードする。エッジは、頂点に格納されるので、サブグラフを連結するエッジは、両方のサブグラフにおいて見出される。
【0076】
アップロードされたそれぞれのサブグラフについて、クライアントは、上述したように、サマリグラフに頂点を追加すると共に、エッジに頂点を追加する。
【0077】
ユーザのクライアントは、“ユーザ固有”の鍵ペアKeyA
enc及びKeyA
decを生成して、この鍵でプライベート・サマリグラフを暗号化する。KeyA
decは、ユーザのワークステーション上にのみ格納され、共有されることはない。KeyA
encは、コラボレーション・グラフ上に格納され、(可能性のある)コラボレータに対してアクセス可能である。
【0078】
サマリグラフの検索
【0079】
公開サマリグラフ302の検索について、如何なるグラフ検索アルゴリズムでも使用することができる。1つの実装においては、疎にリンクされたグラフのためのアルゴリズムが使用される。もう1つの実施形態においては、サマリグラフの頂点J,K,L,N,Oをリストするグラフ・データベース(複数)を既知の方法で、横断することができる。
【0080】
アクセス付与
【0081】
図4は、追加のナレッジ・グラフに対するアクセス付与を有する層状アーキテクチャ400の実施形態の図を示す。
図4は、もう1人のユーザのコンテントへのアクセス付与プロセスを記述する。
図5は、サブプロセス“アクセス付与”及び“書き込みアクセス”のフローチャートのブロック図を示す。
【0082】
第1のユーザ、-例えばユーザA-が第2のユーザ-例えばユーザB-が所有する1つ又はそれ以上のサブグラフにおいて興味のあるコンテントを検索し、識別した後502、ユーザAは、これらのサブグラフ(複数)-例えば、サブグラフ402,404-へのアクセスを要求する504。このプロセスにおいては、ユーザAのクライアントは、コラボレーション・グラフ306におけるユーザBの頂点にアクセス要求を格納する。ユーザBのクライアントは、要求をピックアップする。
【0083】
ユーザBは、通知を受け取り506、アクセスを付与(又は拒否)することができる。ユーザBがアクセスを付与すると決定した後508、ユーザBのクライアントは、コンテント・グラフ(複数)(例えば、402,404、
図4)の復号鍵(複数)を、プライベート・サマリノードN,Oの頂点から検索し510、その後、このプライベート・サマリグラフ306の復号鍵を、ユーザAの暗号鍵で暗号化し(コラボレーション・グラフから検索された)、コラボレーション・グラフ304のユーザAの頂点にそれらを格納する512。
【0084】
このプロセスを例示するために、
図4は、ユーザAを中心として、左手側のプライベート・サマリグラフ306の頂点Nから、サブグラフ404へと、及び左手側のプライベート・サマリグラフ306(破線で囲まれている)の頂点Oからサブグラフ404への破線により示されるユーザBに対する詳細をまた示す。
【0085】
このようにして、ユーザAは、公開サマリグラフ302を検索して、頂点N及びO上の興味のあるコンテントを見出す。ユーザAは、ユーザAは、頂点N又はO上で、又はN又はOへの経路を介して接続された頂点上の何れかで、この時点では、Lと、Nとの間の(直接的な)接続がないのに、検索を開始したことを指摘する。
【0086】
ユーザAのクライアントは、ユーザBにより所有される頂点N及びOを識別し、ユーザBの頂点にアクセス要求を生成する。ユーザBは、アクセスを付与する514。ユーザBのクライアントは、ユーザAの暗号鍵(KeyA
enc)、をコラボレーション・グラフ304から検索し、かつ2つの復号鍵KeyNdec及びKeyOdecをその自らのサマリグラフ304(グラフ・レイヤの右側部分)をコラボレーション・グラフ306から検索する。KeyA
encを使用してユーザBのクライアントは、KeyN
dec及びKeyO
decを暗号化して516、それらをコラボレーション・グラフ308のユーザAの頂点に格納する。
【0087】
ユーザAのクライアントは、ユーザAの頂点から2つの暗号鍵を検索して、それらを、KeyA
decを使用して復号する。ワークステーションのメモリ内では、クライアントは、2つのサマリ頂点N及びOを、公開サマリグラフの頂点から複製することによって生成し、KeyN
dec及びKeyO
decを対応付けて格納すると共に、ユーザAにより事前に選択されたアルゴリズムにより頂点N及びOに関連するサブグラフ402を要約することにより1つの新たな頂点N及びOを(任意的に)増強する。最後に、クライアントは、KeyA
encを使用して2つの新たなサマリノードを暗号化すると共に、それらをプライベート・サマリグラフ306に追加する(ユーザAのナレッジ・グラフ層の右手部分)。
【0088】
書き込みアクセス
【0089】
暗号化されたナレッジ・グラフの頂点又はエッジを修正することは、暗号化が書き込みプロセスにおいて含まれることを意味する。ストレージがフラット・ファイルとして実装される場合において(それぞれのファイルが頂点及びそのエッジを示す)、ユーザは、頂点のアップデート毎に1つのファイルのみを暗号化する必要がある。ナレッジ・グラフ・データベースが実装される場合、カラムレベルでの暗号化又は(好ましくは)フィールド・レベルの暗号化が、頂点のアップデートのための計算機的な労力を最小化するために使用される。
【0090】
マルチ-ユーザ環境において作業することは、当業者は、暗号化は、悪意のある可能性のある意図を有する上書き又は削除からユーザを保護できないと考えるであろう。本方法は、2つのアプローチをサポートする。
【0091】
アプローチA)1つの実装において、ストレージは、すべてのユーザに対して制限のない書き込みアクセスを許可することができる。これは、(1)適切な暗号鍵を受領したコラボレータが、いくつかのコラボレータが書き込みアクセスを受領している場合に、所有者がどのコレボレータのうちの1つが頂点をアップデートしたのかを区別することができないこと、及び(2)鍵の所有に関わらず如何なるユーザでもコンテントを削除することができることを意味する。
【0092】
この実装について、以下の方法が提供される。それぞれの頂点(そのエッジを含む)について、ハッシュキーを、書き込み操作の後に計算する。削除は、0のハッシュキーを与えることに留意されたい。所有者は、そのサブグラフ及びすべてのサブグラフのバックアップのすべてのハッシュキーの登録を維持する。これらは、ユーザのワークステーション又は別の中央ストレージ・システム(不図示)上のいずれかに格納されることができる。事前規定された間隔において、クライアントは、実際のハッシュキーをチェックし、差異がある場合、ユーザに対してサブグラフについて書き込み又は削除について情報を提供する。ユーザは、ロール-バック操作を決定することができる。
【0093】
処理の観点からすると、書き込みアクセスを要求し、かつ付与することは、読み込みアクセスを要求し、付与すると同一の方法において動作するが、追加的に範囲内のサブグラフについての復号鍵及び暗号鍵が要求者のコラボレーション・グラフに対して、かつまた要求者のプライベート・サマリグラフに追加される(暗号化フォーマットにおいて)。
【0094】
このアプローチは、修正がリアルタイムで招待されたコレボレータにより実行されることについて有効である。
【0095】
アプローチB)もう1つの実装においては、サブグラフの作成者のみがサブグラフを修正、又はより正確には、サブグラフに含まれるデータ・オブジェクトを修正することを許可される。ストレージがフラット・ファイルとして実装される場合において、データ・オブジェクトは、ディレクトリとすることができる。ナレッジ・グラフ・データベースが実装される場合、データ・オブジェクトはデータベース・テーブルである。
【0096】
先ず、ユーザがシステムに参加すると、クライアントは、ユーザIDを生成する。ユーザIDは、ワークステーションに格納される。新たなサブグラフ/データ・オブジェクトが生成される場合にはいつでも、このユーザIDは、データ・オブジェクトのメタデータとして格納される。クライアントは、ユーザIDを書き込み要求毎に送付する。ストレージがデータ・オブジェクトに対しての書き込み要求を受領する場合、ユーザIDは、データ・オブジェクトのメタデータと比較され、マッチする場合にのみ、ストレージ・システムは書き込み操作を実行する。コラボレータによるアップデートは、(所有者の頂点を介して)サブグラフの所有者に対して頂点の変化、すなわち、フラット・ファイル又はデータベース・テーブルの行の何れかとして転送される。所有者のクライアントは、所有者に対してそれを取り巻くナレッジ・グラフと共に変化を表示し、所有者は、自動的に変化を許可することを決定することができる。許可されるやいなや、所有者のクライアントは、サブグラフの適切な鍵で暗号化して、変化をサブグラフに追加する。
【0097】
このアプローチは、所有者が修正を、有効化される前に制御することができるという効果を有する。したがって、コラボレーティブな環境においてコンテントのよりハイレベルの信頼性が達成できる。
【0098】
削除アクセス
【0099】
削除アクセスは、再暗号化を使用して実行され、これは、KeyX
encで暗号化され、これまでKeyX
decを使用して復号することができたコンテントが新たなKeyY
decを使用してのみ復号できるような方法で処理されることを意味する。再暗号化のため、KeyX
dec及びKeyY
decの組み合わせが使用される。
【0100】
従来技術においては、再暗号化は、プロキシ再暗号化(PRE)のコンテキストにおいてほとんど議論されてきた。本発明においては、組み合わせ鍵がサブグラフを直接、すなわち、先ず復号してそれに引き続いて暗号化することなく直接的にサブグラフを再暗号化するために生成され、これは、復号が完了して暗号化が開始される間の期間サブグラフが露出されることがないことを意味する。
【0101】
図6は、サブプロセス“削除アクセス”のフローチャートのブロック図を示す。上述した実施例に続いて、ユーザBは、ユーザAについてサブグラフNのみに対して削除アクセスすることを希望する602。ユーザBのクライアントは、新たな鍵ペア(Key
M
dec、Key
M
enc)及び組み合わせ鍵[Key
N
dec|Key
M
enc]を生成する。クライアントは、鍵[Key
N
dec|Key
M
enc]でサブグラフNを再暗号化し606、コラボレーション・グラフ内のユーザAの頂点に削除アクセスを通知する。ユーザAのクライアントは、ユーザAのプライベート・サマリグラフからサマリノードを削除する610。
【0102】
ユーザBが他のユーザ(C及びDと言った)と、サブグラフNを共有し、それらに対するアクセスを維持したい場合、ユーザBのクライアントは、また、ユーザC及びDのみがKeyM
decを使用することを保証できるように、KeyC
encで暗号化され、かつKeyD
encで暗号化された新たな暗号鍵KeyM
decと共にユーザC及びユーザDの頂点に再暗号化の通知を格納する。
【0103】
グラフの検索
【0104】
プライベート・サマリグラフ306又はコンテント・グラフ308に属する暗号化していないデータを維持したいと考える者は、ユーザのワークステーションのみに保持する。ワークステーション上のグラフの一部をバッファリングすることは、性能を改善することができ、かつ通常バッファがより大きくなればなるほど、性能がより高くなる。しかしながら、本方法は、所定のサイズのバッファを必要としない。
【0105】
グラフ検索は、所与の頂点(又は並列検索では頂点のセット)で開始し、エッジにしたがうことにより横断する。検索の開始では、所与の頂点が復号(クライアントのバッファ内では暗号化されていないことがすでに見出されていない場合)される。並列的に、検索が第1の頂点を処理しながら、第1の頂点に結合されるすべての頂点が復号される。続いて、検索は、n番目の頂点を処理しながら、n番目の頂点に結合されるすべての頂点の内容を処理する。クライアントのバッファが満杯になった場合において、検索パスの開始における頂点は、バッファから削除される。
【0106】
同一のユーザ又はコラボレータのサブグラフの何れかによって検索パスがサブグラフの境界を横断する場合、復号鍵は、置き換えられる。1つの実装においては、検索処理は、前もってプライベート・サマリグラフ内で現在の復号鍵がそれに続く頂点について正規か否かをチェックする。他の実装においては、検索処理は、不正な鍵を使用したことにより頂点の復号に失敗した後、サマリグラフから暗号鍵を検索するのみである。
【0107】
検索処理が復号鍵の使用できないサブグラフに侵入した場合、例えばコラボレータは、アクセスを取下げた(すなわち、サブグラフを再暗号化する)場合、検索アルゴリズムは、当該グラフへのエッジが既存ではないことを認識すると共に、検索パスをリダイレクトする。
【0108】
ナレッジ・サブグラフの管理
【0109】
サブグラフの所有者がサブグラフの一部分についてのみコラボレータと共有したい場合、所有者は、サブグラフを分離しなければならない。クライアントは、ワークステーション上でサブグラフを復号して、選択した方法を使用してサブグラフを分離し、サブグラフの新たなセットを新たな別の鍵で暗号化し、問い合わせ中の単一のサブグラフを、サブグラフのセットで置き換えると共に、公開サマリグラフ及び所有者のプライベート・サマリグラフをアップデートする。コラボレータは、それらのアクセスを保持するので、クライアントはサブグラフの新たなセットの暗号鍵を、コラボレータの暗号鍵で暗号化し、それらをそれぞれのユーザの頂点に格納する。加えて、メッセージが、アップデートされた公開サマリグラフを参照してユーザの頂点に格納されるので、それぞれのコラボレータのクライアントは、それに応じてプライベート・サマリグラフをアップデートすることができる。
【0110】
サブグラフの所有者がいくつかのサブグラフを1つのサブグラフに統合したい場合、所有者は、クライアント内のサブグラフを選択する。クライアントは、頂点の数又は頂点により使用される全ストレージに関連する何れかにおいて最大のサブグラフを決定する。クライアントは、ワークステーション上の他のn-1個のサブグラフを復号し、それらの最大のサブグラフの暗号鍵で暗号化して新たに暗号化したサブグラフでサブグラフを置き換えると共に、公開サマリグラフ及び所有者のプライベート・サマリグラフをアップデートする。少なくとも最大のサブグラフへのアクセスを有していたコラボレータに関していれば、クライアントは、コレボレータの頂点についてそれらがサマリグラフにアップデートされたことを彼らに通知するメッセージを格納する。最大のサブグラフではなく他のサブグラフについてのアクセスを有していたコラボレータに関しては、クライアントは、個別的に暗号化したサブグラフの暗号鍵を格納すると共に、コラボレータの頂点に、彼らに対してサマリグラフのアップデートに関して通知するメッセージを格納する。
【0111】
代替的に、所有者は、第1の場所におけるすべてのサブグラフに対するアクセスを保有しないラボレータに対して統合したグラフに対するアクセスを付与しないことも可能であろう。
【0112】
図7は、複数のエンティティにより管理されるコンテントを有する1つ又はそれ以上のストレージ・ユニットに格納されるナレッジ・グラフへのアクセス権限を管理するためのナレッジ・グラフ管理システム700のブロック図を示す。システム700は、複数のユーザ・システムのそれぞれのユーザ・システムについてそのナレッジ・グラフのそれぞれの部分を複数のナレッジ・グラフへと分離するように適合された分離ユニット702(
図3の312,312,314)、ナレッジ-サブグラフに固有の非対称公開/秘密鍵ペアの秘密鍵を使用してナレッジ・サブグラフのそれぞれの暗号化するように適合された暗号化ユニット704、及びそれぞれのユーザ・システムの1つである複数のプライベート・サマリグラフを生成するように適合されたジェネレータ706を含む。それにより、それぞれのプライベート・サマリグラフ(
図3の306)は、ユーザ・システムのそれぞれのナレッジ・サブグラフのための1つの頂点を含み、ここでそれぞれの頂点は、また、ナレッジ・サブグラフに固有の非対称公開/秘密鍵ペアを含む。
【0113】
システム700は、ユーザ・システムごとに1つの頂点及びユーザの間のコラボレーションを表すエッジを含むコラボレーション・グラフを維持するように適合された管理ユニット708、すべてのユーザ・システムのすべてのプライベート・サブグラフを1つの公開サマリグラフにマッピングする方に適合されたマッピング・モジュール710であって、公開サマリグラフのそれぞれの頂点が関連するプライベート・サマリグラフの関連する頂点よりも少なく、かつ、サマリグラフの頂点のいずれもがナレッジ・サブグラフの何れも暗号化するために使用する秘密鍵を含まず、及び第1のユーザ・システムから第2のユーザ・システムへの選択されたナレッジ・サブグラフに関連する復号鍵を提供することにより、第1のユーザ・システムから第2のユーザ・システムへの選択されたナレッジ・サブグラフへのアクセスを付与するように適合されたアクセス・モジュール712を含む。
【0114】
本発明の実施形態は、プログラム・コードを格納又は実行又はこれら両方のために適切であればプラットホームに関わりなく、仮想的な如何なるタイプのコンピュータと共に実装することができる。
図8は、実施例として、提案した方法に関連するプログラム・コードを実行するために好適なコンピューティング・システムを示す。それぞれのワークステーション202(
図2を参照)は、中央ストレージ・システム204(
図2を参照)を制御するための如何なるシステム及びナレッジ・グラフ及びナレッジ・サブグラフを制御するノード及びサーバに加えて、コンピューティング・システム800の形態において実装することができる。
【0115】
コンピューティング・システム800は、好適なコンピュータ・システムの1つの実施例に過ぎず、コンピュータ・システム800が本明細書で上述した如何なる機能でも実装でき、実行でき、又はこれら両方のように実装できるかどうかによらず、本明細書で説明した本発明の実施形態の使用又は機能の範囲に対する如何なる限定を意図するものではない。コンピュータ・システム800には、多くの他の汎用目的又は特定目的のコンピューティング・システム環境又は構成で操作可能なコンポーネントが存在する。コンピュータ・システム/サーバ800としての使用に好適な周知のコンピューティング・システム、環境、又は構成又はこれらの組み合わせの実施例は、これらに限定されないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シンクライアント、シッククライアント、ハンド-ヘルド又はラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セットトップ・ボックス、プログラム可能なコンシューマ電子機器、ネットワークPCs、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び上述したシステム又はデバイスの如何なるものでも含む分散クラウド・コンピューティング・システムなどを含む。コンピュータ・システム/サーバ800は、コンピュータ・システム800により実行可能なプログラム・モジュールといったコンピュータ・システム実行可能な命令の一般的なコンテキストにおいて記述することができる。一般に、プログラム・モジュールは、特定のタスクを実行するか又は特定の抽象データ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造、などを含むことができる。コンピュータ・システム/サーバ800は、タスクが通信ネットワークを通してリンクされたリモート・プロセッシング・デバイスにより実行される、分散クラウド・コンピューティング環境において実施することができる。分散クラウド・コンピューティング環境においては、プログラム・モジュールは、ローカル及びリモート両方のコンピュータ・システムのメモリ・ストレージ・デバイスを含む記録媒体に配置することができる。
【0116】
図8に示されるように、コンピュータ・システム/サーバ800は、汎用目的のコンピューティング・デバイスの形態において示されている。コンピュータ・システム/サーバ800のコンポーネントは、これらに限定されることはないが、1つ又はそれ以上のプロセッサ又はプロセッシング・ユニット802、システム・メモリ804及びシステム・メモリ804を含む種々のシステム・コンポーネントをプロセッサ802に結合するためのバス806を含む。バス806は、種々のバス・アーキテクチャの如何なるものでも使用する、メモリ・バス、又はメモリ・コントローラ、周辺バス、グラフィックス・アクセラレータ・ポート及びプロセッサ又はローカル・バス1つ又はそれ以上のバス構造の如何なるいくつかのタイプのものも表す。実施例の目的として、限定するものではなく、そのようなアーキテクチャとしては、インダストリー・スタンダード・アーキテクチャ(ISA)バス、マイクロ-チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダード・アソシエーション(VESA)ローカル・バス、及びペリフェラル・インタコネクト(PCI)バスを含む。コンピュータ・システム/サーバ800は、典型的には、種々のコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ800によりアクセス可能な如何なる利用可能な媒体とすることができ、揮発性及び不揮発性媒体、取り外し可能及び取り外し不可能な媒体の両方を含む。
【0117】
システム・メモリ804は、ランダム・アクセス・メモリ(RAM)808といった揮発性メモリ又はキャッシュ・メモリ810又はそれら両方といったコンピュータ可読な媒体を含むことができる。コンピュータ・システム/サーバ800は、さらに、他の取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータシステム・ストレージ媒体を含むことができる。例示の目的のみで、ストレージ・システム812は、取り外し不可能で、不揮発性の磁性媒体(示しておらず、かつ典型的には“ハードドライブ”と呼ばれる。)との間で読み込み及び書き込みのために提供することができる。示していないが、取り外し可能な不揮発性の磁気ディスク・ドライブ(例えば、“フロッピー・ディスク(登録商標)”)及びCD-ROM、DVD-ROM又は他の光学的媒体といった取り外し可能で不揮発性の光学ディスクとの間で読み込み及び書き込みが可能な光学ディスク・ドライブを提供することができる。そのような例においては、それぞれは、1つ又はそれ以上の媒体インタフェースによりバス806へと接続することができる。さらに図示し、かつ以下に説明するように、メモリ804は、本発明の実施形態の機能を遂行するように構成されたプログラム・モジュールのセット(少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
【0118】
プログラム/ユーティリティは、プログラム・モジュール816のセット(少なくとも1つ)を有しており、実施例の目的で、非限定的に、オペレーティング・システムに加え、1つ又はそれ以上のアプリケーション・プログラム、他のプログラム・モジュール及びプログラム・データを、メモリ804内に格納することができる。オペレーティング・システム、1つ又はそれ以上のアプリケーション・プログラム、他のプログラム・モジュール及びプログラム・データ又はそれらのいくつかの組み合わせのそれぞれは、ネットワーク環境の実装を含むことができる。プログラム・モジュール816は、一般には、本明細書で説明したように本発明の実施形態の機能又は方法論又はそれら両方を遂行する。
【0119】
コンピュータ・システム/サーバ800は、また、キーボード、ポインティング・デバイス、ディスプレイ820など、1つ又はそれ以上の外部デバイス818と通信することができる;1つ又はそれ以上のデバイスは、ユーザを、コンピュータ・システム/サーバ800又はコンピュータ・システム/サーバ12を1つ又はそれ以上のコンピューティング・デバイスと通信を可能とする如何なるデバイス(例えばネットワーク・カード、モデムなど)、又はそれら両方に相互作用させることが可能である。そのような通信は、入力/出力(I/O)インタフェース814を介して発生することができる。さらに、コンピュータ・システム/サーバ800は、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、又は公衆ネットワーク(インターネット)又はそれらの組み合わせといった、1つ又はそれ以上のネットワークとネットワーク・アダプタ822を介して通信可能である。図示するように、ネットワーク・アダプタ822は、コンピュータ・システム/サーバ800の他のコンポーネントとバス806を介して通信する。図示しないが、他のハードウェア又はソフトウェア又はそれら両方のコンポーネントは、コンピュータ・システム/サーバ800との組み合わせで使用することができるであろうことは理解されるべきである。実施例は、限定することではなく、マイクロ・コード、デバイス・ドライバ、冗長処理ユニット、及び外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどを含む。
【0120】
加えて、ナレッジ・グラフへのアクセス権を管理するためのナレッジ・グラフ管理システム700-及びその特定の部分-は、バス806に接続することができる。
【0121】
本開示の種々の実施形態の説明は、例示の目的のために提示されたが、開示された実施形態への排他又は限定を意図するものではない。多くの変更例又は変形例は、本開示の範囲及び精神から逸脱することなく、当業者において自明である。本明細書で使用する用語は、本実施形態の原理、実用的用途、又は市場において見出される技術を超える技術的改善を最良に説明するため、又は本明細書において開示された実施形態を当業者の他の者が理解できるようにするために選択したものである
【0122】
本発明はシステム、方法、コンピュータ可読な記録媒体又はコンピュータ・プログラム製品及びこれらの組み合わせとすることができる。コンピュータ可読な記録媒体(又は複数)及びコンピュータ・プログラムは、プロセッサが本発明の特徴を遂行するためのコンピュータ可読なプログラム命令を有する。
【0123】
コンピュータ可読な記録媒体は、命令実行デバイスが使用するための複数の命令を保持し格納することができる有形のデバイスとすることができる、コンピュータ可読な媒体は、例えば、これらに限定されないが、電気的記録デバイス、磁気的記録デバイス、光学的記録デバイス、電気磁気的記録デバイス、半導体記録デバイス又はこれらのいかなる好ましい組み合わせとすることができる。コンピュータ可読な記録媒体のより具体的な実施例は、次のポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROM又はフラッシュ・メモリ(登録商標))、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・イオンリー・メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリ・スティック、フロッピー・ディスク(登録商標)、パンチ・カード又は命令を記録した溝内に突出する構造を有する機械的にエンコードされたデバイス、及びこれらの好ましい如何なる組合せを含む。本明細書で使用するように、コンピュータ可読な記録媒体は、ラジオ波又は他の自由に伝搬する電磁波、導波路又は他の通信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)といった電磁波、又はワイヤを通して通信される電気信号といったそれ自体が一時的な信号として解釈されることはない。
【0124】
本明細書において説明されるコンピュータ可読なプログラム命令は、コンピュータ可読な記録媒体からそれぞれのコンピューティング/プロセッシング・デバイスにダウンロードでき、又は例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク又はワイヤレス・ネットワーク及びそれからの組み合わせといったネットワークを介して外部コンピュータ又は外部記録デバイスにダウンロードすることができる。ネットワークは、銅通信ケーブル、光通信ファイバ、ワイヤレス通信ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及びエッジ・サーバ又はこれらの組み合わせを含むことができる。それぞれのコンピューティング/プロセッシング・デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読なプログラム命令を受領し、このコンピュータ可読なプログラム命令を格納するためにそれぞれのコンピューティング/プロセッシング・デバイス内のコンピュータ可読な記録媒体内に転送する。
【0125】
本発明の操作を遂行するためのコンピュータ可読なプログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、マシン依存命令、マイクロ・コード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は1つ又はそれ以上の、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、“C”プログラミング言語又は類似のプログラム言語といった手続き型プログラミング言語を含むプログラミング言語のいかなる組合せにおいて記述されたソース・コード又はオブジェクト・コードのいずれかとすることができる。コンピュータ可読なプログラム命令は、全体がユーザ・コンピュータ上で、部分的にユーザ・コンピュータ上でスタンドアローン・ソフトウェア・パッケージとして、部分的にユーザ・コンピュータ上で、かつ部分的にリモート・コンピュータ上で、又は全体がリモート・コンピュータ又はサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)を含むいかなるタイプのネットワークを通してユーザ・コンピュータに接続することができ、又は接続は、外部コンピュータ(例えばインターネット・サービス・プロバイダを通じて)へと行うことができる。いくつかの実施形態では、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電気回路がコンピュータ可読なプログラム命令を、コンピュータ可読なプログラム命令の状態情報を使用して、本発明の特徴を実行するために電気回路をパーソナライズして実行することができる。
【0126】
本発明の特徴を、フローチャート命令及び方法のブロック図、又はそれらの両方、装置(システム)、及びコンピュータ可読な記録媒体及びコンピュータ・プログラムを参照して説明した。フローチャートの図示及びブロック図又はそれら両方及びフローチャートの図示におけるブロック及びブロック図、又はそれらの両方のいかなる組合せでもコンピュータ可読なプログラム命令により実装することができることを理解されたい。
【0127】
これらのコンピュータ可読なプログラム命令は、汎用目的のコンピュータ、特定目的のコンピュータ、または他のプロセッサ又は機械を生成するための他のプログラマブル・データ・プロセッシング装置に提供することができ、コンピュータのプロセッサ又は他のプログラマブル・データ・プロセッシング装置による実行がフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装するための手段を生成する。コンピュータ、プログラマブル・データ・プロセッシング装置及び他の装置又はこれらの組み合わせが特定の仕方で機能するように指令するこれらのコンピュータ可読なプログラム命令は、またコンピュータ可読な記録媒体に格納することができ、その内に命令を格納したコンピュータ可読な記録媒体は、フローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作の特徴を実装する命令を含む製造品を含む。
【0128】
コンピュータ可読なプログラム命令は、またコンピュータ、他のプログラマブル・データ・プロセッシング装置、又は他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で操作ステップのシリーズに対してコンピュータ実装プロセスを生じさせることで、コンピュータ、他のプログラマブル装置又は他のデバイス上でフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装させる。
【0129】
図のフローチャート及びブロック図は、本発明の種々の実施形態にしたがったシステム、方法及びコンピュータ・プログラムのアーキテクチャ、機能、及び可能な実装操作を示す。この観点において、フローチャート又はブロック図は、モジュール、セグメント又は命令の部分を表すことかでき、これらは、特定の論理的機能(又は複数の機能)を実装するための1つ又はそれ以上の実行可能な命令を含む。いくつかの代替的な実装においては、ブロックにおいて記述された機能は、図示した以外で実行することができる。例えば、連続して示された2つのブロックは、含まれる機能に応じて、実際上1つのステップとして遂行され、同時的、実質的に同時的に、部分的又は完全に一時的に重ね合わされた仕方で実行することができ、又は複数のブロックは、時として逆の順番で実行することができる。またブロック図及びフローチャートの図示、又はこれらの両方及びブロック図中のブロック及びフローチャートの図示又はこれらの組み合わせは、特定の機能又は動作を実行するか又は特定の目的のハードウェア及びコンピュータ命令を遂行する特定目的のハードウェアに基づいたシステムにより実装することができることを指摘する。
【0130】
本開示の種々の実施形態の説明は、例示の目的のために提示されたが、開示された実施形態に尽きるとか、若しくは限定することを意図するものではない。多くの変更例又は変形例は、本開示の範囲及び精神から逸脱することなく、当業者において自明である。本明細書で使用する用語は、本実施形態の原理、実用的用途、又は市場において見出される技術を超える技術的改善を最良に説明するため、又は本明細書において開示された実施形態を当業者の他の者が理解できるようにするために選択したものである