(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
本発明の実施形態と見なされる主題は、添付の特許請求の範囲において詳しく指摘され、明確に請求されている。本発明の実施形態の記載される特徴を理解することができる方法の1つは、添付の図面と併せて解釈される以下の実施形態の詳細な説明を参照することによる。
【0009】
当業者であれば当然のことであるが、本発明の各側面は、システム、方法またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の各側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)または本願明細書においてすべて概して「回路」、「モジュール」もしくは「システム」と呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとり得る。さらに、本発明の各側面は、コンピュータ可読プログラム・コードが具現化された1つ以上のコンピュータ可読媒体(単数または複数)において具現化された、コンピュータ・プログラム製品の形態をとることもできる。
【0010】
1つ以上のコンピュータ可読媒体(単数または複数)の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体とされ得る。コンピュータ可読記憶媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線もしくは半導体のシステム、装置もしくはデバイスまたは前述のものの任意の適切な組み合わせとされ得る。コンピュータ可読記憶媒体のより具体的な例(包括的でないリスト)には、1つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM(erasable programmable read−only memory)もしくはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光学式記憶デバイス、磁気記憶デバイスまたは前述のものの任意の適切な組み合わせが含まれるであろう。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むことまたは記憶することができる任意の有形媒体とされ得る。
【0011】
コンピュータ可読信号媒体は、例えば、ベースバンドに、または搬送波の一部として、コンピュータ可読プログラム・コードが具現化された伝搬データ信号を含み得る。そのような伝搬信号は、電磁気、光学またはその任意の適切な組み合わせを含むがこれらに限定はされない、様々な形態のいずれかをとってよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、かつ命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムの伝達、伝搬または搬送をすることができる、任意のコンピュータ可読媒体としてよい。
【0012】
コンピュータ可読媒体上に具現化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、または前述のものの任意の適切な組み合わせを含むがこれらに限定はされない、任意の適切な媒体を使用して伝送されてもよい。
【0013】
本発明の各側面の動作を実行するコンピュータ・プログラム・コードは、Java(R)、Smalltalk、C++または同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。プログラム・コードは、完全にユーザのコンピュータ上で実行されることも、部分的にユーザのコンピュータ上で実行されることも、スタンド・アロン・ソフトウェア・パッケージとしても、または部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で実行されることも、または完全にリモート・コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN:local area network)もしくは広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、または(例えばインターネット・サービス・プロバイダを使用しインターネットを介して)外部コンピュータに接続されてもよい。
【0014】
本発明の側面について、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して以下に記載する。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。マシンを生じるよう、こうしたコンピュータ・プログラム命令が、汎用コンピュータ、専用コンピュータまたはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサにより実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて規定された機能/動作を実装する手段を作り出すようにすることもできる。
【0015】
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置またはその他のデバイスに指示することができるこうしたコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて規定された機能/動作を実装する命令を含む製品を生じるようにすることもできる。
【0016】
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータで実装されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて規定された機能/動作を実装するためのプロセスを提供するようにすることもできる。
【0017】
以下、例示実施形態について、添付の図面を参照しながら本願明細書でさらに詳しく記載する。なお、本開示は、異なる多数の形態で具現化できるものであり、本願明細書に記載された例示実施形態に限定されると解釈されてはならない。正確には、これらの例示実施形態は、本開示が、完全かつ完結したものとなり、本開示の範囲を十分に当業者に伝えるよう提供されるものである。本記載では、提示される実施形態を不必要に不明瞭化するのを避けるために、周知の特徴および技術の詳細は省略されることもある。
【0018】
本発明の実施形態は、電子文書内の情報と、マスタ・データ管理システム内の関連する構造化データと、電子文書にアクセスしようとしている特定のエンド・ユーザとに基づき電子文書に関連する値を生成する文書機密性計算プログラムを提供する。文書機密性計算プログラムにより生成される値は、データ・セキュリティを含む目的のために電子文書を分類するべく利用される。
【0019】
従来、電子文書にアクセスしようと試みる特定のエンド・ユーザに関係なく、電子文書のうち機密情報を含む部分を編集すること、または電子文書への完全なアクセスを防ぐことにより、電子文書内の機密情報はブロックされていた。典型的には、電子文書の編集を実行するコンピュータ・プログラムは、機密情報に対応する特定パターンを求めて電子文書を構文解析し、パターンに厳密に一致する電子文書内の情報に対するアクセスをブロックすることができる。しかし、電子文書にアクセスしようと試みている特定のエンド・ユーザについて考慮せずに電子文書内の情報に対するアクセスをブロックするのでは、たとえその情報にほかのエンド・ユーザがアクセスする必要はなくても、一部のエンド・ユーザはその情報にアクセスする必要があるかもしれない企業には、不十分である。したがって、本開示の一実施形態では、電子文書内の情報と、電子文書にアクセスしようとしている特定のエンド・ユーザとに基づき電子文書に関連する値を生成する必要がある。この値は、その後、例えば電子文書の編集、もしくは電子文書に対する試行されたアクセスについてのシステム・プログラマ/管理者への通知、またはその両方などの、さらなるアクションを実行するために利用可能である。
【0020】
図1は、ネットワーク112を介してサーバ・コンピュータ115に接続されたクライアント・コンピュータ105を含むコンピュータ・システム100を示す。
図6を参照してより詳細に後述するように、クライアント・コンピュータ105およびサーバ・コンピュータ115はそれぞれ、個別の内部コンポーネント800aおよび800bならびに個別の外部コンポーネント900aおよび900bを含む。
【0021】
クライアント・コンピュータ105は、コンピュータ・システム100内の電子文書にアクセスするために利用可能なアプリケーション・プログラム110を含む。サーバ・コンピュータ115は、文書リポジトリ120と、クエリ・ハンドラ125と、電子辞書135a〜135gを有する文書機密性計算プログラム130と、情報抽出プログラム(information extraction program)140と、エンティティ構成プログラム145と、アクセス制御リスト152ならびに構造化データを含み行および属性列を備えるデータベース・エンティティ・テーブル155を有するマスタ・データ管理(MDM:master data management)システム150と、機密文書ハンドラ・プログラム160とを含む。
【0022】
開示される実施形態では、文書リポジトリ120は、自由形式の平文ファイルまたは非構造化データを含むほかの種類のファイルなどの電子文書を記憶できる、記憶デバイスである。本願明細書で使用される非構造化データとは、個々の情報が、リレーショナル・データベースなどのように固定のスキーマで編成されていないため、文書リポジトリ120のクエリを介して個別的にアクセス可能ではない、固定パターンまたは容易に理解されるパターンを欠く電子文書内の情報を指す。例えば、文書リポジトリ120に記憶された電子文書内の非構造化データには、個人の住所、生年月日、社会保障番号、クレジット・カード番号、銀行口座番号、単語および文章(すなわち自由形式のテキスト)ならびにその他の機密または非機密語句などの情報の組み合わせが含まれ得る。
【0023】
多くの場合、企業内の特定のエンド・ユーザが、例えば電子文書処理の様々な段階を含む企業ソフトウェア・ワークフローの一環として、文書リポジトリ120内の電子文書の取得およびアクセスを必要とし得る。クエリ・ハンドラ125は、アプリケーション・プログラム110を使用して電子文書をリクエストする特定のエンド・ユーザのために電子文書を取得するべく利用可能な、ソフトウェア・アプリケーションである。具体的には、クエリ・ハンドラ125は、クライアント・コンピュータ105およびネットワーク112を介してアプリケーション・プログラム110から電子文書のデータ・リクエストを受け取り、データ・リクエストを受け取るのに応答して、文書リポジトリ120から電子文書を取得するコンピュータ・コマンドを呼び出すことができる。具体的には、データ・リクエストは、特定のエンド・ユーザおよび特定のエンド・ユーザがアクセスしようとしている電子文書を識別するデータを含む。特定のエンド・ユーザを識別するデータは、アクセス制御リスト152に対しルックアップ動作を実行するために文書機密性計算プログラム130によって利用可能であり、このルックアップ動作は、特定のエンド・ユーザのデータ・アクセス権を判断することができる。
【0024】
開示される実施形態では、取得される電子文書に関連する値を文書機密性計算プログラム130に生成させることが目的である。電子文書に関連する値は、電子文書内の情報と、MDMシステム150内の関連する構造化データと、電子文書にアクセスしようとしている特定のエンド・ユーザのデータ・アクセス権とに基づく。データ・アクセス権は、アクセス制御リスト152内に定義されており、アクセス制御リスト152は、MDMシステム150上に存在するファイル内のリストである。電子文書に関連する値は、電子文書の編集、もしくは特定のエンド・ユーザによる電子文書に対する試行されたアクセスについてのシステム・プログラマ/管理者への通知、またはその両方を含むデータ・セキュリティを目的として、電子文書を分類するために利用できる。
【0025】
なお、電子文書に関連する値を文書機密性計算プログラム130が生成するには、機密である可能性のある特定語句が電子文書から抽出される必要がある。したがって、クエリ・ハンドラ125は、電子文書を文書機密性計算プログラム130へ送る。次に、文書機密性計算プログラム130は、特定語句を抽出するために、電子文書と、ルールのセットとを情報抽出プログラム140へ送る。情報抽出プログラム140は、電子文書と、ルールのセットとを受け取り、ルールのセットを利用して電子文書から特定語句を抽出することができる機能性を有する、ソフトウェア・プログラムである。開示される実施形態では、ルールのセットは、文書機密性計算プログラム130により生成され、文書機密性計算プログラム130は、ルールのセットを情報抽出プログラム140へ送るようシステム・プログラマ/管理者により構成される。ルールのセットは、電子辞書135a〜135gまたは正規表現に基づくことができる。正規表現は、特定の語句、または文字もしくは数字もしくはその両方のパターンなどの、テキストの列を探索するために利用されるプログラム・コードである。例えば、開示される実施形態では、正規表現は、データベース・エンティティ・テーブル155の属性列内に表された構造化データに一致する、電子文書内の特定語句を識別するために使用される。
【0026】
電子辞書135a〜135gに基づくルールのセットに関して、情報抽出プログラム140はファジー・マッチング技術を使用する。ファジー・マッチング技術は、電子辞書135a〜135gのうちの1つの中の属性値(attribute value)と或る程度一致する特定語句を識別することができる。さらに、ファジー・マッチング技術は、電子辞書135a〜135gのうちの1つの中の属性値と或る程度一致する特定語句を、その特定語句の綴りが誤っていても、タイプミスがあっても識別することができる。以下、電子辞書135a〜135gのうちの1つの中の属性値と或る程度一致する特定語句を、識別済み語句とも呼ぶ。
【0027】
さらに、各電子辞書135a〜135gは、文書機密性計算プログラム130により生成されるものであり、MDMシステム150内のデータベース・エンティティ・テーブル155の属性列内に表されている属性値の配列である。MDMシステム150は、様々なソースから集約された構造化データを含む集中リポジトリであり、構造化データの単一ビューを提供する。したがって、電子辞書135a〜135gおよび電子辞書135a〜135g内の属性値はそれぞれ、データベース・エンティティ・テーブル155の属性列と関連している。電子辞書135a〜135g、電子辞書135a〜135g内の属性値、およびデータベース・エンティティ・テーブル155の属性列のそれぞれの関連は、文書機密性計算プログラム130のプログラム・コード機能性により判断可能である。
【0028】
さらに、データベース・エンティティ・テーブル155の各属性列は、列ポジション・インデックスおよび列スコアと関連し、列スコアは、システム・プログラマ/管理者によってMDMシステム150内または補助コンピュータ可読媒体内に設定および記憶することができる。列スコアは、0.0〜1.0の範囲である。したがって、電子辞書135a〜135gおよび電子辞書135a〜135g内の属性値はそれぞれ属性列と関連するため、電子辞書135a〜135gおよび電子辞書135a〜135g内の属性値はそれぞれ、列ポジション・インデックスおよび列スコアとも関連する。列ポジション・インデックスは、データベース・エンティティ・テーブル155内の属性列の位置である。列ポジション・インデックスおよび列スコアに対する各電子辞書135a〜135gの関連は、文書機密性計算プログラム130のプログラム・コード機能性により判断可能である。さらに、列スコアは、識別済み語句をデータ・セキュリティの点で企業が重要視するレベルを表す。さらに、識別済み語句は、電子辞書135a〜135gのうちの1つの中の属性値と或る程度一致するため、識別済み語句はそれぞれ、属性列、列ポジション・インデックスおよび列スコアとも関連する。属性列、列ポジション・インデックスおよび列スコアに対する識別済み語句それぞれの関連は、文書機密性計算プログラム130によって情報抽出プログラム140から得ることができる。
【0029】
上記のように、情報抽出プログラム140は、ファジー・マッチング技術を使用して、電子辞書135a〜135gと、電子文書から抽出される特定語句との比較を実行する。この比較は、電子辞書135a〜135gのうちの1つの中の属性値と或る程度一致する特定語句を識別することができ、各識別済み語句と関連する列ポジション・インデックスおよび列スコアも識別することができる。さらに、各正規表現を属性列と関連付けることができるため、列ポジション・インデックスおよび列スコアは、正規表現を使用して識別される特定語句に関連付けることができる。文書機密性計算プログラム130は、識別済み語句と関連する各列ポジション・インデックスおよび列スコアを利用して、電子文書に関連する値を生成するのに必要な後の動作を実行することができる。
【0030】
さらに、ファジー・マッチング技術に関して、電子文書から抽出される各特定語句は、一致と見なされるには、電子辞書135a〜135gのうちの1つの中の属性値の少なくとも1つと一定量の類似性を有しなければならない。開示される実施形態では、語句が類似性を有しなければならない程度は、文書機密性計算プログラム130内の設定可能なパラメータ値により定義され、設定可能なパラメータ値は、差の閾値量を表す。具体的には、抽出された特定語句と、電子辞書135a〜135gのうちの1つの中の属性値の1つとの差の量が、差の閾値量以下であれば、その特定語句は一致と見なされる。例えば、差の閾値量が1字であれば、語句「Josep」は、名前「Joseph」の妥当な一致と見なすことができる。一方、語句「Jose」は、「Jose」と「Joseph」との差が2字であるため、妥当な一致とは見なされないことになる。設定可能なパラメータ値は、文書機密性計算プログラム130を利用する特定の企業の技術的要件もしくはデータ・セキュリティ・ポリシまたはその両方に従って、システム・プログラマ/管理者によって調整可能である。
【0031】
情報抽出プログラム140がファジー・マッチングを実行した後、文書機密性計算プログラムは、レコード構成を実行するために、識別済み語句をエンティティ構成プログラム145へ送る。レコード構成とは、識別済み語句が関連している可能性のあるデータベース・エンティティ・テーブル155内の1つ以上の行(すなわちエンティティ)を識別することを指す。識別済み語句を受け取った後、エンティティ構成プログラム145は、識別済み語句を含むクエリをMDMシステム150へ送る。クエリを受け取るのに応答して、MDMシステム150は、識別済み語句と関連している可能性のある1つ以上の行(すなわちエンティティ)を判断し、その1つ以上の行を文書機密性計算プログラム130に返す。識別済み語句のうちの1つと関連する行をMDMシステム150が判断できないシナリオでは、その識別済み語句に関しては文書機密性計算プログラム130に行は返されない。
【0032】
次に、文書機密性計算プログラム130は、さらなる処理を実行して、MDMシステム150により返された1つ以上の行があれば、それが識別済み語句のいずれかと実際に関連するかどうかを判断する。このさらなる処理には、識別済み語句それぞれと、データベース・エンティティ・テーブル155内の1つ以上の行内に表されている属性値とを照合することが含まれる。行が返されていなければ、このさらなる処理は実行されない。
【0033】
さらに、データベース・エンティティ・テーブル155内の各行は、行ポジション・インデックスおよび行スコアを有し、行スコアは、システム・プログラマ/管理者によってMDMシステム150内または補助コンピュータ可読媒体内に設定および記憶することができる。行スコアは、0.0〜1.0の範囲である。さらに、行ポジション・インデックスは、データベース・エンティティ・テーブル155内の行の位置であり、行スコアは、電子文書から抽出され行と関連する識別済み語句を、企業が重要視するレベルを表す。文書機密性計算プログラム130は、識別済み語句に実際に関連する各行の行ポジション・インデックスおよび行スコアを判断し、行ポジション・インデックスおよび行スコアを利用して、電子文書に関連する値を生成するのに必要な後の動作を実行することができる機能性を含む。
【0034】
具体的には、文書機密性計算プログラム130は、電子文書に関連する値を生成するために、識別済み語句それぞれに関して、行スコアが判断されていれば列スコアと行スコアとの第1の積を計算し、サブスコアを得る。その他の場合、識別済み語句のうちの1つに関して行スコアが判断されていなければ、その識別済み語句のサブスコアは、単に列スコアとなる。さらに、データベース・エンティティ・テーブル155内に表されていて、ファジー・マッチング技術に基づき識別済み語句に一致する属性値に対して、電子文書にアクセスしようとしている特定のエンド・ユーザが完全なデータ・アクセス権を有すると文書機密性計算プログラム130が判断すれば、識別済み語句のサブスコアは破棄される。具体的には、文書機密性計算プログラム130は、データベース・エンティティ・テーブル155内に表されている属性値に対して特定のエンド・ユーザが完全なデータ・アクセス権を有するかどうかを、属性値と関連する行ポジション・インデックスおよび列ポジション・インデックスを使用してアクセス制御リスト152を確認することによって判断することができる。アクセス制御リスト152は、特定のエンド・ユーザがアクセスできる行ポジション・インデックスおよび列ポジション・インデックスのセットを規定する。ほかの実施形態では、電子文書内で2回以上出現する識別済み語句のうちのいずれかに対して、1つのみのサブスコアを得るよう文書機密性計算プログラム130を構成することができる。
【0035】
サブスコアを得た後、文書機密性計算プログラム130は、破棄されていないサブスコアそれぞれを1.0から減じることによって、正規化サブスコアを計算する。その後、文書機密性計算プログラム130は、正規化サブスコアそれぞれを掛け合わせることによって第2の積を計算するが、正規化サブスコアが1つしかなければ、第2の積は、その1つの正規化サブスコアとなる。次に、文書機密性計算プログラム130は、1.0と第2の積との差を計算して、電子文書に関連する値を得る。電子文書に関連する値を生成するために使用される上記の演算は、式S(D,U)=1−Π
(i,j)∈I(D)(1−S(i,j,U))により表すことができ、文字Sは電子文書に関連する値を表し、文字Dは電子文書を表し、文字Uは電子文書にアクセスしようとしている特定のエンド・ユーザを表し、文字iは行ポジション・インデックスであり、文字jは列ポジション・インデックスであり、I(D)は電子文書内の語句のグループを表す。文書機密性計算プログラム130は、電子文書に関連する値を機密文書ハンドラ・プログラム160へ送ることができる。機密文書ハンドラ・プログラム160は、電子文書に関連する値を利用して、電子文書の編集、もしくは電子文書に対する試行されたアクセスについてのシステム・プログラマ/管理者への通知、またはその両方を含み得るさらなるアクションを実行することができる。
【0036】
図2は、情報を含むデータベース・エンティティ・テーブル155を示す。アクセス制御リスト152は、データベース・エンティティ・テーブル155内の情報に対するエンド・ユーザのデータ・アクセス権を規定する。開示される実施形態では、データベース・エンティティ・テーブル155は、個別の行ポジション・インデックス205b〜207bおよび個別の行スコア205c〜207cを有する3つの行(すなわちエンティティ)205a〜207aを含む。データベース・エンティティ・テーブル155はさらに、個別の列ポジション・インデックス210b〜216bおよび列スコア210c〜216cを有する7つの属性列210a〜216aを含む。
【0037】
さらに、特定のエンド・ユーザがデータベース・エンティティ・テーブル155内の情報を含む電子文書にアクセスできるかは、行スコア205c〜207cが判断されていればそれと、列スコア210c〜216cと、アクセス制御定義252〜254を有するアクセス制御リスト152とに基づかせることができる。アクセス制御定義252〜254はそれぞれ、企業の技術的要件もしくはデータ・セキュリティ・ポリシまたはその両方に基づき、特定のエンド・ユーザに割り当て可能である。例えば、特定のエンド・ユーザが、アクセス制御定義252を割り当てられると、この特定のエンド・ユーザは、行205a〜207aの属性列210a内の情報と関連する、電子文書内の識別済み語句を閲覧するデータ・アクセス権を有する。さらに、特定のエンド・ユーザが、アクセス制御定義253を割り当てられると、この特定のエンド・ユーザは、行205a〜207aの属性列210a〜214a内、および行207aの属性列210a〜216a内の情報と関連する電子文書内の識別済み語句を閲覧するデータ・アクセス権を有する。さらに別の例では、特定のエンド・ユーザが、アクセス制御定義254を割り当てられると、この特定のエンド・ユーザは、行205a〜207aの属性列210a〜214a内、ならびに行205aおよび207aの属性列210a〜216a内の情報に対応する電子文書内の識別済み語句を閲覧するデータ・アクセス権を有する。このように、アクセス制御定義252〜254内のアスタリスク記号は、行205a〜207aのうちの1つ以上もしくは属性列210a〜216aのうちの1つ以上またはその両方に対する完全なデータ・アクセス権を特定のエンド・ユーザに与えるために使用可能である。
【0038】
図3は、語句のグループ301を含む情報を有する電子文書300を示し、語句のグループ301は、データベース・エンティティ・テーブル155内にある可能性がある特定語句302〜323を含む。文書機密性計算プログラム130は、電子文書300内の情報と、MDMシステム150内の関連する構造化データと、電子文書300にアクセスしようとしている特定のエンド・ユーザとに基づき電子文書300に関連する値を生成することができる。文書機密性計算プログラム130により生成される、電子文書300に関連する値は、電子文書300の編集、もしくは特定のエンド・ユーザによる電子文書300に対する試行されたアクセスについてのシステム・プログラマ/管理者への通知、またはその両方を含むデータ・セキュリティを目的として、電子文書300を分類するために利用される。
【0039】
図4および5は、電子文書300内の情報と、MDMシステム150内の関連する構造化データと、電子文書300にアクセスしようとしている特定のエンド・ユーザとに基づき電子文書300に関連する値を生成する、文書機密性計算プログラム130の動作を示すフローチャートである。具体的には、開示された実施形態では、特定のエンド・ユーザが、アプリケーション・プログラム110を利用しており、アプリケーション・プログラム110を介して電子文書300にアクセスしようとしている。結果として、アプリケーション・プログラム110は、特定のエンド・ユーザのために電子文書300を取得するべく、ネットワーク112を介してデータ・リクエストをサーバ・コンピュータ115へ送る。データ・リクエストは、特定のエンド・ユーザおよび特定のエンド・ユーザがアクセスしようとしている電子文書300を識別するデータを含む。クエリ・ハンドラ125は、データ・リクエストを受け取り、データ・リクエストを受け取るのに応答して、文書リポジトリ120から電子文書300を取得するためのコンピュータ・コマンドを呼び出す。
【0040】
次に、クエリ・ハンドラ125は、電子文書300を文書機密性計算プログラム130へ送る。文書機密性計算プログラム130は、語句のグループ301を含み特定のエンド・ユーザがアクセスしようとしている電子文書300を受け取る(ブロック400)。さらに、文書機密性計算プログラム130は、MDMシステム150内にあるデータベース・エンティティ・テーブル155の各属性列210a〜216a内の属性値を識別する(ブロック405)。その後、文書機密性計算プログラム130は、各属性列210a〜216aそれぞれの電子辞書135a〜135gを生成する(ブロック410)。したがって、各電子辞書135a〜135gは、文書機密性計算プログラム130のプログラム・コード機能性に基づき、データベース・エンティティ・テーブル155の個別の属性列210a〜216aに関連する。具体的には、各電子辞書135a〜135gは、属性値を含む配列であり、属性値は、個別の属性列210a〜216aにも表されている。例えば、電子辞書135aは、属性列210aにも表されている属性値を含む配列であり、電子辞書135bは、属性列211aにも表されている属性値を含む配列であり、電子辞書135cは、属性列212aにも表されている属性値を含む配列であるなどである。開示される実施形態では、7つの属性列210a〜216aを有するデータベース・エンティティ・テーブル155が1つだけある。結果として、文書機密性計算プログラム130は、7つのみの電子辞書135a〜135gを生成する。しかし、ほかの実施形態では、1つ以上の属性列を有するデータベース・エンティティ・テーブルが2つ以上ある場合もあり、その場合、さらなる電子辞書の生成が必要となる。
【0041】
電子辞書135a〜135gの生成後、文書機密性計算プログラム130は、電子文書300、ルールのセットおよび生成された電子辞書135a〜135gを、語句のグループ301から特定語句302〜323を抽出する情報抽出プログラム140へ送る(ブロック415)。具体的には、情報抽出プログラム140は、電子文書300と、ルールのセットとを受け取り、ルールのセットに基づいて語句のグループ301から特定語句302〜323を抽出することができる機能性を有するソフトウェア・プログラムである。ほかの実施形態では、ルールのセットは、正規表現または電子辞書135a〜135gに基づき構成することができる。情報抽出プログラム140は、電子辞書135a〜135gに基づき構成されたルールのセットを使用して語句のグループから特定語句302〜323を抽出するために、語句のグループ301内の各語句と、各電子辞書135a〜135gとを、ファジー法を利用することによって比較する。したがって、情報抽出プログラム140は、電子辞書135a〜135gにアクセスするよう構成可能なファジー・マッチング機能性を有する。比較に基づき、情報抽出プログラム140は、生成された電子辞書135a〜135gのうちの1つの中の属性値と或る程度一致する特定語句302〜320を識別する。
【0042】
さらに、電子辞書135a〜135gはそれぞれ、データベース・エンティティ・テーブル155の個別の属性列210a〜216aに関連する。特定語句302〜320は、電子辞書135a〜135gのうちの1つの中の属性値と或る程度一致するため、特定語句302〜320はそれぞれ、電子辞書135a〜135gのうちの1つおよび個別の属性列210a〜216aのうちの1つにも関連する。属性列210a〜216aは、それぞれ列ポジション・インデックス210b〜216bおよび列スコア210c〜216cを有する。列スコア210c〜216cは、システム・プログラマ/管理者によってMDMシステム150内または補助コンピュータ可読媒体内に設定することができる。
【0043】
したがって、電子辞書135a〜135gおよび特定語句302〜320は、それぞれ属性列210a〜216aのうちの1つに関連するため、これらはそれぞれ、個別の列ポジション・インデックス210b〜216bのうちの1つおよび個別の列スコア210c〜216cのうちの1つにも関連する。例えば、電子辞書135a、ならびに電子辞書135a内の属性値と或る程度一致する特定語句302〜305、308、311、314、317および319は、すべて属性列210aに関連する。結果として、電子辞書135a、ならびに特定語句302〜305、308、311、314、317および319は、列ポジション・インデックス210bおよび列スコア210cにも関連する。開示される実施形態では、情報抽出プログラム140は、ファジー・マッチングの機能性を利用することによって、各特定語句302〜320と関連する列ポジション・インデックス210b〜216bを判断する。各特定語句302〜320と関連する列ポジション・インデックス210b〜216bは、サーバ・コンピュータ115に接続された適切なコンピュータ可読有形記憶デバイス上に、文書機密性計算プログラム130によって記憶されるとよい。さらに、文書機密性計算プログラム130は、列ポジション・インデックス210b〜216bを利用して、特定語句302〜320と関連する列スコア210c〜216cを得ることができる。
【0044】
情報抽出プログラム140は、ファジー・マッチングを実行した後、特定語句302〜320を文書機密性計算プログラム130へ送る。文書機密性計算プログラム130は、特定語句302〜320が関連している可能性のあるデータベース・エンティティ・テーブル155内の1つ以上の行205a〜207aを識別するために、特定語句302〜320をエンティティ構成プログラム145へ送る(ブロック420)。特定語句302〜320が関連している可能性のあるデータベース・エンティティ・テーブル155内の1つ以上の行205a〜207aを識別するエンティティ構成プログラム145のプロセスは、レコード構成と呼ばれる。したがって、エンティティ構成プログラム145は、特定語句302〜320を受け取った後、特定語句302〜320を含むクエリをMDMシステム150へ送る。MDMシステム150は、クエリを受け取るのに応答して、特定語句302〜320と関連しているかもしれない1つ以上の行205a〜207aを判断する。MDMシステム150は、その1つ以上の行205a〜207aを文書機密性計算プログラム130に返すよう構成されている。次に、文書機密性計算プログラム130は、レコード構成の結果としてMDMシステム150により返された行205a〜207aがあれば、そのうちどれが、エンティティ構成プログラム145へ送られた特定語句302〜320のうちの1つ以上と関連するかを判断する(ブロック425)。行205a〜207aのうちの1つと関連する特定語句302〜320は、それぞれ行ポジション・インデックス205b〜207bのうちの1つおよび行スコア205c〜207cのうちの1つとも関連する。例えば、特定語句302は、行205aと関連すれば、行ポジション・インデックス205bおよび行スコア205cとも関連する。
【0045】
開示される実施形態では、文書機密性計算プログラム130は、各特定語句302〜320と関連する行ポジション・インデックス205b〜207bを判断することができる機能性を有する。各特定語句302〜320と関連する行ポジション・インデックス205b〜207bは、サーバ・コンピュータ115に接続された適切なコンピュータ可読有形記憶デバイス上に、文書機密性計算プログラム130によって記憶されるとよい。さらに、文書機密性計算プログラム130は、特定語句302〜320と関連する行ポジション・インデックス205b〜207bを利用して、特定語句302〜320と関連する個別の行スコア205c〜207cを得ることができる。さらに、文書機密性計算プログラム130は、列スコア210c〜216cおよび行スコア205c〜207cを利用して、電子文書300に関連する値を生成するのに必要な後の動作を実行することができる。
【0046】
行205a〜207aのうちのどれが特定語句302〜320のうちの1つ以上と関連するかを判断した後、文書機密性計算プログラム130は、特定語句302〜320と、電子文書300にアクセスしようとしている特定のエンド・ユーザとに基づき、電子文書300に関連する値を生成する(ブロック430)。具体的には、文書機密性計算プログラム130は、特定語句302〜320と関連する列ポジション・インデックス210b〜216bおよび行ポジション・インデックスを利用して、特定語句302〜320と関連する列スコア210c〜216cおよび行スコア205c〜207cを発見し、取得することができる。文書機密性計算プログラム130は、電子文書300に関連する値を生成するために、各特定語句302〜320に関して、行スコアが判断されていれば列スコアと行スコアとの第1の積を計算して、サブスコアを得る。なお、特定語句302〜320のうちの1つに関して行スコアが判断されていなければ、その識別済み語句のサブスコアは、単に列スコアとなる。さらに、文書機密性計算プログラム130が、電子文書300にアクセスしようとしている特定のエンド・ユーザがデータベース・エンティティ・テーブル155内に表されている特定の属性値に対する完全なデータ・アクセス権を有すると判断し、ファジー・マッチング機能性に基づき1つ以上の特定語句302〜320がその特定の属性値に一致すれば、その特定の属性値に一致する1つ以上の特定語句302〜320のサブスコアは破棄される。具体的には、文書機密性計算プログラム130は、電子文書300にアクセスしようとしている特定のエンド・ユーザが、データベース・エンティティ・テーブル155内に表されている属性値に対する完全なデータ・アクセス権を有するかどうかを、アクセス制御リスト152を確認することによって判断することができる。ほかの実施形態では、電子文書300内で2回以上出現する特定語句302〜320のいずれかに対して、1つのみのサブスコアを得るよう文書機密性計算プログラム130を構成することができる。
【0047】
サブスコアを得た後、文書機密性計算プログラム130は、破棄されていないサブスコアそれぞれを1.0から減じることによって、正規化サブスコアを計算する。その後、文書機密性計算プログラム130は、正規化サブスコアそれぞれを掛け合わせることによって第2の積を計算するが、正規化サブスコアが1つしかなければ、第2の積は、その1つの正規化サブスコアとなる。次に、文書機密性計算プログラム130は、1.0と第2の積との差を計算して、電子文書300に関連する値を得る。
【0048】
次に、文書機密性計算プログラム130が、電子文書300に関連する値は設定可能な閾値レベルを上回ると判断すれば(決定ブロック435の「はい」の分岐)、文書機密性計算プログラム130は、電子文書300および電子文書300に関連する値を、電子文書300内の機密情報を保護するためにさらなるアクションを実行する機密文書ハンドラ・プログラム160へ送る(ブロック440)。具体的には、設定可能な閾値レベルを超える場合、これは、特定のエンド・ユーザによる電子文書300に対するアクセスが、文書機密性計算プログラム130を利用している特定の企業のデータ・セキュリティ・ポリシに違反するかもしれないことを示す。したがって、さらなるアクションには、電子文書300内の機密情報を保護することができる、電子文書の編集、もしくは電子文書300に対する試行されたアクセスについてのシステム・プログラマ/管理者への通知、またはその両方が含まれ得る。文書機密性計算プログラム130が電子文書300を機密文書ハンドラ・プログラム160へ送った後、文書機密性計算プログラム130によるさらなる処理は終了する。
【0049】
一方、文書機密性計算プログラム130が、電子文書300に関連する値は設定可能な閾値レベルを上回らないと判断すれば(決定ブロック435の「いいえ」の分岐)、文書機密性計算プログラム130は、電子文書300を特定のエンド・ユーザに返す(ブロック445)。したがって、設定可能な閾値レベルを超えない場合、これは、特定のエンド・ユーザによる電子文書300に対するアクセスが、文書機密性計算プログラム130を利用している特定の企業のデータ・セキュリティ・ポリシに違反しないことを示す。文書機密性計算プログラム130が電子文書300を特定のエンド・ユーザに返した後、文書機密性計算プログラム130によるさらなる処理は終了する。
【0050】
図6は、サーバ・コンピュータ115に対応する内部コンポーネント800aのセットおよび外部コンポーネント900aのセット、ならびにクライアント・コンピュータ105に対応する内部コンポーネント800bのセットおよび外部コンポーネント900bのセットを示すブロック
図500である。内部コンポーネント800aおよび800bはそれぞれ、1つ以上のバス826上の1つ以上のプロセッサ820、1つ以上のコンピュータ可読RAM822、1つ以上のコンピュータ可読ROM824、ならびに1つ以上のオペレーティング・システム828および1つ以上のコンピュータ可読有形記憶デバイス830を含む。1つ以上のオペレーティング・システム828、クライアント・コンピュータ105内のアプリケーション・プログラム110、ならびにサーバ・コンピュータ115内の文書リポジトリ120、クエリ・ハンドラ125、MDMシステム150、文書機密性計算プログラム130、情報抽出プログラム140、エンティティ構成プログラム145および機密文書ハンドラ・プログラム160は、個別のコンピュータ可読RAM822(典型的にはキャッシュ・メモリを含む)のうちの1つ以上を経由して個別のプロセッサ820のうちの1つ以上によって実行されるよう、個別のコンピュータ可読有形記憶デバイス830のうちの1つ以上に記憶される。
図6に示されている実施形態では、各コンピュータ可読有形記憶デバイス830は、内部ハード・ドライブの磁気ディスク記憶デバイスである。あるいは、各コンピュータ可読有形記憶デバイス830は、コンピュータ可読ROM824、EPROM、フラッシュ・メモリ、またはそのほかコンピュータ・プログラムおよびデジタル情報を記憶することができる任意のコンピュータ可読有形記憶デバイスなどの半導体記憶デバイスである。
【0051】
内部コンポーネント800aおよび800bの各セットは、CD−ROM、DVD、メモリ・スティック、磁気テープ、磁気ディスク、光ディスクまたは半導体記憶デバイスなどの1つ以上のポータブル・コンピュータ可読有形記憶デバイス936に対する読み取りおよび書き込みを行うためのR/Wドライブまたはインターフェース832を含む。クライアント・コンピュータ105内のアプリケーション・プログラム110、ならびにサーバ・コンピュータ115内の文書リポジトリ120、クエリ・ハンドラ125、MDMシステム150、文書機密性計算プログラム130、情報抽出プログラム140、エンティティ構成プログラム145および機密文書ハンドラ・プログラム160は、個別のポータブル・コンピュータ可読有形記憶デバイス936のうちの1つ以上に記憶され、個別のR/Wドライブまたはインターフェース832を介して読み取られ、個別のコンピュータ可読有形記憶デバイス830にロードされることが可能である。
【0052】
さらに、内部コンポーネント800aおよび800bの各セットは、TCP/IPアダプタ・カード、無線wi−fiインターフェース・カード、または3Gもしくは4G無線インターフェース・カード、またはその他の有線もしくは無線通信リンクなどの、ネットワーク・アダプタまたはインターフェース836も含む。クライアント・コンピュータ105内のアプリケーション・プログラム110、ならびにサーバ・コンピュータ115内のクエリ・ハンドラ125、文書機密性計算プログラム130、情報抽出プログラム140、エンティティ構成プログラム145および機密文書ハンドラ・プログラム160は、外部コンピュータまたは外部記憶デバイスからネットワーク(例えばインターネット、LANまたはWAN)および個別のネットワーク・アダプタまたはインターフェース836を介して個別のクライアント・コンピュータ105およびサーバ・コンピュータ115にダウンロード可能である。ネットワーク・アダプタまたはインターフェース836から、クライアント・コンピュータ105内のアプリケーション・プログラム110、ならびにサーバ・コンピュータ115内のクエリ・ハンドラ125、文書機密性計算プログラム130、情報抽出プログラム140、エンティティ構成プログラム145および機密文書ハンドラ・プログラム160が、個別のコンピュータ可読有形記憶デバイス830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはサーバ、またはそのいずれかの組み合わせを含み得る。
【0053】
外部コンポーネント900aおよび900bの各セットには、コンピュータ・ディスプレイ・モニタ920、キーボード930およびコンピュータ・マウス934が含まれ得る。外部コンポーネント900aおよび900bには、タッチ・スクリーン、仮想キーボード、タッチ・パッド、ポインティング・デバイスおよびその他のヒューマン・インターフェース・デバイスも含まれ得る。内部コンポーネント800aおよび800bの各セットには、コンピュータ・ディスプレイ・モニタ920、キーボード930およびコンピュータ・マウス934にインターフェース接続するためのデバイス・ドライバ840も含まれる。デバイス・ドライバ840、R/Wドライブまたはインターフェース832、およびネットワーク・アダプタまたはインターフェース836は、ハードウェアおよびソフトウェアを含み、ソフトウェアはコンピュータ可読有形記憶デバイス830もしくはコンピュータ可読ROM824またはその両方に記憶される。
【0054】
当然のことながら、
図6は、一実装の例示のみを提供するものであり、種々の実施形態が実装され得る環境に関していかなる限定も示唆しない。示された環境に対して、様々な変更が実装され得る。さらに、示された環境に対して、様々な変更が、設計および実装要件に基づき加えられ得る。
【0055】
前述の事項に従い、電子文書に関連する値を、電子文書内の情報と、マスタ・データ管理システム内の関連する構造化データと、電子文書にアクセスしようとしている特定のエンド・ユーザとに基づき生成する方法、コンピュータ・システムおよびコンピュータ・プログラム製品が開示された。なお、本発明の実施形態の範囲から逸脱することなく、多数の変更・代用を行うことができる。したがって、本発明の1つ以上の実施形態は、限定ではなく例として開示された。