(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023164780
(43)【公開日】2023-11-14
(54)【発明の名称】データを取り込んで分類するシステムとその方法
(51)【国際特許分類】
G06F 16/245 20190101AFI20231107BHJP
【FI】
G06F16/245
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023074138
(22)【出願日】2023-04-28
(31)【優先権主張番号】17/734,083
(32)【優先日】2022-05-01
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.iOS
(71)【出願人】
【識別番号】523161505
【氏名又は名称】ストライダー テクノロジーズ インコーポレイテッド
【氏名又は名称原語表記】STRIDER TECHNOLOGIES,INC.
(74)【代理人】
【識別番号】100087653
【弁理士】
【氏名又は名称】鈴江 正二
(72)【発明者】
【氏名】マイケル ブラウン
(72)【発明者】
【氏名】グレッグ レベスク
(72)【発明者】
【氏名】エリック ハーンデン
(72)【発明者】
【氏名】ジョナサン レンツ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FB03
5B175FB04
(57)【要約】
【課題】データを取り込んで分類する方法を改良する。
【解決手段】第1コンテンツの中からテーブルを少なくとも1つ見つける。このテーブルは第1群の行と第1群の列とを含む。第1群の行のうちの第1行、第1群の列のうちの第1列に、人名を示す第1用語が含まれると判断する。第1群の行の中から第2行が特定される。この第2行は少なくとも、第1列に第1人名を含み、第1群の列のうちの第2列に個人識別情報の第1項目を含む。第1人名と個人識別情報の第1項目とを示す第1データが抽出される。第1データは、第1人名に関連付けられている第1プロフィールに追加される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1コンテンツの中から、第1群の行と第1群の列とを含むテーブルを少なくとも1つ見つけるステップと、
前記第1群の行のうちの第1行、前記第1群の列のうちの第1列に、人名を示す第1用語が含まれると判断するステップと、
前記第1群の行の中から、
少なくとも、前記第1列には第1人名を含み、前記第1群の列のうちの第2列には個人識別情報の第1項目を含む第2行
を特定するステップと、
前記第1人名と前記個人識別情報の第1項目とを示す第1データを抽出するステップと、
前記第1データを、前記第1人名に関連付けられている第1プロフィールに追加するステップと
を備えている方法。
【請求項2】
前記第2行が更に、前記第1群の列のうちの第3列に個人識別情報の第2項目を含み、
前記個人識別情報の第2項目を示す第2データを抽出するステップと、
前記第2データを前記第1プロフィールに追加するステップと
を更に備えている、請求項1に記載の方法。
【請求項3】
第2コンテンツの中から、第2群の行と第2群の列とを含む別のテーブルを見つけるステップと、
前記第2群の行のうちの第1行、前記第2群の列のうちの第1列に、人名を示す第2用語が含まれると判断するステップと、
前記第2群の行の中から、
前記第2群の列のうちの第1列には前記第1人名を含み、
前記第2群の列のうちの第2列には、前記個人識別情報の第1項目と第2項目とのうち少なくとも1つを含み、
前記第2群の列のうちの第3列には個人識別情報の第3項目を含む第2行
を特定するステップと、
前記個人識別情報の第3項目を示す第3データを抽出するステップと、
前記第3データを前記第1プロフィールに追加するステップと
を更に備えている、請求項2に記載の方法。
【請求項4】
前記人名を示す第2用語が、前記人名を示す第1用語とは異なる、請求項3に記載の方法。
【請求項5】
前記第2群の行のうちの第2行を特定するステップに基づき、前記個人識別情報の第1項目、第2項目、および第3項目のうち少なくとも1つをある個人に関連付けるステップ
を更に備えている、請求項3に記載の方法。
【請求項6】
前記第1プロフィールが前記個人に関連付けられている、請求項5に記載の方法。
【請求項7】
第3コンテンツの中から、第3群の行と第3群の列とを含む更に別のテーブルを見つけるステップと、
前記第3群の行のうちの第1行、前記第3群の列のうちの第1列に、人名を示す第3用語が含まれると判断するステップと、
前記第3群の行の中から、
前記第3群の列のうちの第1列には前記第1人名を含み、
前記第3群の列のうちの第2列には前記個人識別情報の第3項目を含み、
前記第3群の列のうちの第3列には個人識別情報の第4項目を含む第2行
を特定するステップと、
前記個人識別情報の第4項目を示す第4データを抽出するステップと、
前記第4データを前記第1プロフィールに追加するステップと
を更に備えている、請求項3に記載の方法。
【請求項8】
前記第3群の行のうちの第2行が前記個人識別情報の第1項目または第2項目を含まない、請求項3に記載の方法。
【請求項9】
前記第3群の行のうちの第2行を特定するステップに基づき、前記個人識別情報の第1項目、第2項目、第3項目、および第4項目をある個人に関連付けるステップ
を更に備えている、請求項8に記載の方法。
【請求項10】
第2コンテンツの中から、第2群の行と第2群の列とを含む別のテーブルを見つけるステップと、
前記第2群の行のうちの第1行、前記第2群の列のうちの第1列に、人名を示す第2用語が含まれると判断するステップと、
前記第2群の行の中から、
前記第2群の列のうちの第1列には前記第1人名を含み、
前記第2群の列のうちの第2列には前記個人識別情報の第2項目を含む第2行
を特定するステップと、
前記第1人名と前記個人識別情報の第2項目とを示す第2データを抽出するステップと、
前記個人識別情報の第2項目が前記個人識別情報の第1項目と矛盾するという判断に基づき、前記第2データを、前記第1人名に関連付けられている第2プロフィールに維持するステップと
を更に備えている、請求項2に記載の方法。
【請求項11】
前記個人識別情報の第2項目が前記個人識別情報の第1項目と矛盾するという判断が、
前記個人識別情報の第1項目が第1個人に関連付けられており、
前記個人識別情報の第2項目が第2個人に関連付けられている
という判断を含む、請求項10に記載の方法。
【請求項12】
前記第1プロフィールが前記第1個人に関連付けられており、
前記第2プロフィールが前記第2個人に関連付けられている、
請求項11に記載の方法。
【請求項13】
前記個人識別情報の第1項目が、第1個人に固有の識別子を含み、
前記個人識別情報の第2項目が前記個人識別情報の第1項目と矛盾するという判断が、
前記個人識別情報の第2項目が、第2個人に固有の識別子を含む
という判断を含む、請求項10に記載の方法。
【請求項14】
前記第1個人に固有の識別子が、前記第1個人のEメールアドレス、住所、電話番号、および職業のうち少なくとも1つを示し、
前記第2個人に固有の識別子が、前記第2個人のEメールアドレス、住所、電話番号、および職業のうち少なくとも1つを示す、
請求項13に記載の方法。
【請求項15】
ドキュメントに関する言語を決めるステップ
を更に備え、
前記第1群の行のうちの第1行、前記第1群の列のうちの第1列に、人名を示す第1用語が含まれると判断するステップが、
前記言語に関連する単語、句、文字、および数字のうち少なくとも1つであって、人名を示すが、ある個人の姓または名を含まないものを特定するステップ
を含む、請求項1に記載の方法。
【請求項16】
前記人名を示す第1用語がある個人の姓または名を含まない、請求項1に記載の方法。
【請求項17】
前記第1人名がある個人の姓と名とのうち少なくとも1つを含む、請求項1に記載の方法。
【請求項18】
前記個人識別情報の第1項目が、前記第1プロフィールに関連付けられている個人のEメールアドレス、住所、電話番号、および職業のうち少なくとも1つを示す、請求項1に記載の方法。
【請求項19】
前記第1コンテンツを第1ウェブサイトから受け付けるステップ
を更に備えている、請求項1に記載の方法。
【請求項20】
前記第1プロフィールに、前記第1データを前記第1コンテンツに関連付ける旨の指示を追加するステップ
を更に備えている、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理に関し、特にデータ分類に関する。
【背景技術】
【0002】
企業や個人等にとって、様々なデータ源から得られるデータの分析、抽出、分類、その他の処理がますます必要となっている。しかし、実際には、利用可能なデータ源の規模の大きさおよび/または複雑さがデータ処理の実行を妨げているようである。したがって、データを取り込んで分類する方法の改良が望まれている。
【発明の概要】
【0003】
データを取り込んで分類する方法とシステムとを開示する。それらの実施形態では、第1コンテンツの中からテーブルを少なくとも1つ見つける。このテーブルは第1群の行と第1群の列とを含む。第1コンテンツは、たとえば第1ウェブサイトから得られるコンテンツを含む。第1群の行のうちの第1行、第1群の列のうちの第1列に、人名を示す第1用語が含まれると判断する。第1群の行の中から第2行を特定する。この第2行は少なくとも、第1列には第1人名を含み、第1群の列のうちの第2列には個人識別情報の第1項目を含む。第1人名と個人識別情報の第1項目とを示す第1データを抽出する。この第1データを、第1人名に関連付けられている第1プロフィールに追加する。
【図面の簡単な説明】
【0004】
添付の図面は、この明細書の一部を構成するものであり、実施形態を表し、発明の詳細な説明と共に、発明による方法とシステムとの原理を説明する役割を果たす。
【0005】
【
図7A】データを取り込んで分類する方法の一例である。
【
図7B】データを取り込んで分類する方法の一例である。
【
図7C】データを取り込んで分類する方法の一例である。
【
図8】データを取り込んで分類する方法の一例である。
【
図9】コンピュータ装置の一例を示すブロック図である。
【発明を実施するための形態】
【0006】
企業または個人等が、1人以上の個人に関連付けられている個人情報を取り込みたい場合はある。個人情報には、たとえば、電話番号、住所、職業、Eメールアドレス、その他の個人識別情報が含まれうる。そのような個人情報を企業等は、数十、数百、数千、数百万のウェブサイト、ドキュメント、ファイル等、多様なデータ源を通して見つけられるだろう。企業等はまた、取り込んだ個人情報を個人別に分類もしたいだろう。たとえば、企業等は多数のデータ源から、第1個人に関連する第1個人情報と、第2個人に関連する第2個人情報とを取り込む。企業等は、第1個人に関連付けられている第1中央位置に第1個人情報を位置づけたいだろうし、同様に、第2個人に関連付けられている第2中央位置に第2個人情報を位置づけたいだろう。このようにすれば、企業等は、特定の個人に関連する個人情報のすべてを一括して迅速に把握できるだろう。
【0007】
しかし、現在、利用可能なデータ源は大規模であるので、企業等にとって、必要な個人情報を含むデータ源のすべての所在を特定することは困難であり、不可能であるかも知れない。たとえば、数百、数千、数百万のデータ源の所在を手作業で特定するのは、企業等にとって不可能だろう。たとえ、何とかして、数百、数千、数百万のデータ源から所望の個人情報の所在を特定してそれらを取り込んだとしても、データ源の規模が大きいので、企業等は取り込んだ個人情報を正確に、かつ効率良く、個人別に整理することができないだろう。
【0008】
したがって、データをより効率良く、より正確に取り込んで分類する技術が望まれる。そのような技術は、個人識別情報を含むテーブルを複数のデータ源の中から自動的に特定すること、それらのテーブルから個人識別情報を抽出すること、および、抽出された個人識別情報を個人別に分類することを含む。この技術は、データを取り込んで分類する従来の技術とは異なり、データの取得と分類とを効率良く、一括して行うことができる。これにより、企業等は、様々な個人の個人情報のすべてを、多数のデータ源にわたって手作業で整理する必要なく、一括して把握することを容易にできる。
【0009】
図1は、この明細書で説明されるシステムと方法とが実装可能なハードウェア/ネットワークの構成の一例を示す。そのようなハードウェア/ネットワークのシステム100はプロセッサ102、データベース110、少なくとも1台のユーザインタフェースデバイス114、および少なくとも1つのコンテンツ源120を含む。これらはネットワーク116を通して通信する。プロセッサ102はデータベース110と通信可能であり、データベース110にデータを保存させることができ、および/または、データベース110から保存されているデータを受信することができる。データベース110は様々なデータを保存可能である。
【0010】
プロセッサ102、電子ストレージ110、ユーザインタフェースデバイス114、およびコンテンツ源120はそれぞれ、1台以上のコンピュータ装置および/またはネットワーク装置を含む。ネットワーク116は1つ以上のパブリックネットワーク(たとえばインターネット)および/または1つ以上のプライベートネットワークを含む。プライベートネットワークには、無線ローカルエリアネットワーク(WLAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、携帯電話網、またはイントラネットが含まれる。ネットワーク116は有線でも無線でもよい。
【0011】
プロセッサ102は、データを受信し、取り込み、分類するように構成されており、様々な要素を含む。たとえば、プロセッサは、コンテンツ分析部104、データ抽出部106、および/またはデータ分類部108を含む。これらの要素104、106、108の1つ以上が、大規模なデータ源からデータを取り込んで分類するのに利用可能である。
【0012】
発明の実施形態では、プロセッサ102がコンテンツ分析部104を含む。コンテンツ分析部104は、コンテンツ源120からコンテンツ122を受け付けるように構成されている。コンテンツ122には、デジタルコンテンツも、アナログであるがデジタル化可能なコンテンツも含まれ、たとえば、ドキュメント、ファイル、記事、ウェブページが含まれる。コンテンツ源120には、デジタルコンテンツ源もアナログコンテンツ源も含まれ、ウェブサイトプロバイダ、デジタルコンテンツプロバイダ、書籍、冊子、パンフレットが含まれるが、これらには限られない。コンテンツ源120が、数十、数百、数千、または数百万存在してもよい。コンテンツ122を受け付ける目的でコンテンツ分析部104がコンテンツ122を検索してもよい。その他に、コンテンツ122がコンテンツ分析部104へ送信されてもよい。
【0013】
コンテンツ分析部104は、受け付けられたコンテンツ122が1以上のテーブルを含むかを判断するように構成されている。テーブルは、以下で説明されるように、行列によって構成的に表されるような一連のデータを含む。受け付けられたコンテンツ122の特定の項目が1以上のテーブルを含むかを判断する目的で、コンテンツ分析部104がコンテンツ122をスキャンしても、テーブルの存在(または欠落)を特定する他の適当な技術を用いてもよい。コンテンツ122の特定の項目がテーブルを1つも含まない場合、プロセッサ102がその特定の項目に対し、その後の処理を行わなくてもよい。
【0014】
コンテンツ分析部104は、コンテンツ122の特定の項目に1以上のテーブルが含まれると判断した場合、それらのテーブルがヘッダ行を含むかを判断するように構成されている。「ヘッダ行」は、以下で用いられるもののように、テーブルの行のうち、各列に、その列の他の行に格納されているデータの種類を示すラベルを含む行である。ヘッダ行は通常、テーブルの最初の行であるが、実施形態によっては最後の行または2番目の行等であってもよい。特定されたテーブルがヘッダ行を含むかを判断する目的で、コンテンツ分析部104はそのテーブルをスキャンしても、ヘッダ行の存在(または欠落)を特定する他の適当な技術を用いてもよい。たとえば、コンテンツ分析部104は、テーブルの行の中から、ヘッダ行に通常含まれるラベルを含む行を探してもよい。特定されたテーブルがヘッダ行を含まない場合、プロセッサ102がそのテーブルに対し、その後の処理を行わなくてもよい。
【0015】
コンテンツ分析部104は、特定された1以上のテーブルがヘッダ行を含むと判断した場合、そのヘッダ行がいずれかの列に、人名を示すラベルを含むか判断するように構成されている。人名を示すラベルは実際の人名ではなく、たとえば、任意の言語で書かれた「名前」という単語もしくは文字、「法的名称」を表す句、「英語表記の名前」、または「姓名」であってもよい。ただし、人名を示すこれらのラベルは単なる例に過ぎず、代わりに人名を示す他のどのようなラベルがヘッダ行に含まれてもよいことは、理解されるはずである。人名を示すラベルをヘッダ行が含むかと判断する目的で、コンテンツ分析部104はテーブルをスキャンしても、ラベルの存在(または欠落)を特定する他の適当な技術を用いてもよい。特定されたテーブルのヘッダ行が、人名を示すラベルを含まない場合、プロセッサ102がそのテーブルに対し、その後の処理を行わなくてもよい。
【0016】
ある実施形態ではコンテンツ分析部104がコンテンツに関する言語を決めてもよい。たとえば、コンテンツ分析部104は、コンテンツが、英語、スペイン語、フランス語、ロシア語、中国語等を含むか判断してもよい。コンテンツ分析部104は、その言語で人名を示すラベルを、ヘッダ行がいずれかの列に含むかを判断してもよい。たとえば、コンテンツ分析部104は、その言語に関する単語、句、文字、または数字のうち少なくとも1つであって、人名を示すが個人の姓名を含まないものを、ヘッダ行がいずれかの列に含むか判断してもよい。
【0017】
コンテンツ分析部104は、特定のテーブルのヘッダ行が第1列に人名を示すラベルを含む場合、そのテーブルの他の列のうちの少なくとも1つが個人識別情報を含むか判断するように構成されている。たとえば、コンテンツ分析部104は、そのテーブルの他の列のうちの少なくとも1つが、電話番号、住所、職業、Eメールアドレス、または、個人識別情報の他の項目を含むか判断するように構成されている。テーブルの他の列のうちの少なくとも1つが個人識別情報を含むか判断する目的で、コンテンツ分析部104はテーブルをスキャンしても、個人識別情報の存在(または欠落)を特定する他の適当な技術を用いてもよい。特定されたテーブルが、個人識別情報を含む列を1つも含まない場合、プロセッサ102がそのテーブルに対し、その後の処理を行わなくてもよい。
【0018】
実施形態ではプロセッサ102がデータ抽出部106を含む。コンテンツ分析部104は、特定された1以上のテーブルが、人名を示すラベルを第1列に含むヘッダ行と、個人識別情報を含む他の列との両方を含むと判断した場合、そのテーブルをデータ抽出部106へ送信(すなわち転送)するように構成されている。データ抽出部106は、そのテーブルを受信するように構成されている。
【0019】
データ抽出部106は、テーブルからヘッダ行以外の任意またはすべての行を抽出するように構成されている。たとえば、データ抽出部106は、10行のテーブルのヘッダ行が最初の行である場合、そのテーブルから、最初の行に続く他の9行すべてを抽出するように構成されている。抽出された各行は、たとえば、人名と、その人名に対応する個人識別情報の1以上の項目とを含む。たとえば、ある個人に対応する人名と、その個人に関する、電話番号、住所、職業、Eメールアドレス、個人識別情報の他の項目のうち1以上とを含む。データ抽出部106は、空行、または1以上の列にデータがない列を抽出しなくてもよい。
【0020】
実施形態ではプロセッサ102がデータ分類部108を含む。データ分類部108は、抽出されたデータを人名に応じて(すなわち個人別に)分類するように構成されている。たとえば、データ分類部108は特定の行に人名のハッシュ値を生成し、その人名に、同じ行に含まれる個人識別情報の1以上の項目を示す他の生データのすべてを関連付ける。こうして、データ分類部108は抽出されたデータを、人名に応じて配置されるように並べ換える。この並べ換えによって企業等は、特定の個人に関する個人情報を迅速に、かつ一括して取得できる。
【0021】
実施形態ではデータ分類部108が、分類されたデータをデータベース110へ送信したり、データベース110に残したりするように構成されている。データベース110は分類されたデータを受信し、人名に応じてプロフィールに維持する。たとえば、データベース110は、第1人名のハッシュ値と、それに関連付けられている個人識別情報の1以上の項目を示す生データとを受信し、その生データを、第1人名に関連付けられているプロフィールに維持する。プロフィールは、たとえば企業等により、1台以上のユーザインタフェースデバイス114を通して閲覧可能である。ユーザインタフェースデバイス114には、タブレット、電話、スマートフォン、コンピュータ、ノートパソコン、テレビ等のうち少なくとも1つが含まれる。プロフィールの一例については後で、
図6を参照しながら説明する。
【0022】
実施形態では、同じ人名を含む2以上のテーブルをコンテンツ分析部104が特定し、データ抽出部106が更に処理する。
図2-
図5はそれぞれ、同じ人名を1以上含むテーブルの例を示す。2以上のテーブルが同じ人名を含む場合、各テーブルがその人名の個人に関する個人識別情報を含む。この場合、これらの個人識別情報のすべてが2以上のテーブルのそれぞれから抽出され、データ分類部108により、その個人に関する単一のプロフィールに分類される。
【0023】
たとえば、コンテンツ分析部104が
図2に示されているテーブル200を特定する。テーブル200は、ヘッダ行202、後続の行204a-d、および列201a-cを含む。コンテンツ分析部104はテーブル200をコンテンツ122の第1項目の中から、たとえば第1ウェブサイトから得られるドキュメントまたはファイルの中から特定する。ヘッダ行202は列201aに人名を示すラベル203を含む。ラベル203は「人名」である。しかし、他の実施形態では(任意の言語の)他の単語、句、または文字の集合が代わりに人名を示すラベルであってもよいことは理解されるはずである。他の列201b-cは個人識別情報を含む。たとえば、列201bは個人識別情報の第1項目(すなわち職業)を含み、列201cは個人識別情報の第2項目(すなわちEメールアドレス)を含む。
【0024】
後続の行204a-dのそれぞれは、列201aに挙げられている人名を持つ特定の個人に関する。たとえば、行204aは「アン」という名前の個人に関する。行204aの他の列はアンの職業「副社長」とEメールアドレス「anne@company1.com」とを示す。行204bは「ベン」という名前の個人に関する。行204bの他の列はベンの職業「秘書」とEメールアドレス「ben@company1.com」とを示す。行204cは「チャールズ」という名前の個人に関する。行204cの他の列はチャールズの職業「最高執行責任者」とEメールアドレス「charles@company1.com」とを示す。最後の行204dは「ドリュー」という名前の個人に関する。行204dの他の列はドリューの職業「中間管理職」とEメールアドレス「drew@company1.com」とを示す。
【0025】
コンテンツ分析部104はテーブル200に加え、
図3に示されているテーブル300を更に特定する。テーブル300は、ヘッダ行302、後続の行304a-d、および列301a-cを含む。コンテンツ分析部104はテーブル300をコンテンツ122の第2項目の中から、たとえば第2ウェブサイトから得られるドキュメントまたはファイルの中から特定する。しかし、実施形態によってはコンテンツ分析部104がテーブル300を、テーブル200が特定されたコンテンツ122の同じ第1項目の中から特定してもよい。
【0026】
ヘッダ行302は列301aに人名を示すラベル303を含む。ラベル303は「名」である。しかし、他の実施形態では(任意の言語の)他の単語、句、または文字の集合が代わりに人名を示すラベルであってもよいことは理解されるはずである。他の列301b-cは個人識別情報を含む。たとえば、列301bは個人識別情報の第1項目(すなわち電話番号)を含み、列301cは個人識別情報の第2項目(すなわちEメールアドレス)を含む。
【0027】
後続の行304a-dのそれぞれは、列301aに挙げられている人名を持つ特定の個人に関する。たとえば、行304aは「アン」という名前の個人に関する。行304aの他の列はアンの電話番号「123-6666」とEメールアドレス「anne@company1.com」とを示す。行304bは「ベン」という名前の個人に関する。行304bの他の列はベンの電話番号「123-7777」とEメールアドレス「ben@company1.com」とを示す。行304cは「チャールズ」という名前の個人に関する。行304cの他の列はチャールズの電話番号「123-8888」とEメールアドレス「charles@company1.com」とを示す。最後の行304dは「ドリュー」という名前の個人に関する。行304dの他の列はドリューの電話番号「123-9999」とEメールアドレス「drew@company1.com」とを示す。
【0028】
図2-
図3に示されているように、テーブル200とテーブル300とはそれぞれの列201a、301aに同じ4人の名前(すなわち、アン、ベン、チャールズ、ドリュー)を共有する。テーブル200に含まれる4人の名前とテーブル300に含まれる4人の名前とは、各テーブル200、300に含まれる個人識別情報の同じ項目(すなわちEメールアドレス)に関連付けられているので、それらの名前が同じ4人に対応すると判断できる。たとえば、テーブル200、300の両方が人名「アン」に対して同じEメールアドレス(anne@company1.com)を含むので、テーブル200に含まれるアンという名前の個人がテーブル300に含まれるアンという名前の個人であると判断できる。この判断は、2人の個人が同じEメールアドレスを共有する可能性がかなり低い(または不可能である)から可能である。テーブル200に含まれるベン、チャールズ、ドリューがテーブル300に含まれるベン、チャールズ、ドリューであるという同様な判断も、個人識別情報の項目(すなわちEメールアドレス)の共有という理由から可能である。
【0029】
ある実施形態では3以上のテーブルが同じ人名を含む。たとえば、コンテンツ分析部104がテーブル200、300に加え、
図4に示されているテーブル400を更に特定してもよい。テーブル400は、ヘッダ行402、後続の行404a-d、および列401a-cを含む。コンテンツ分析部104はテーブル400をコンテンツ122の第3項目の中から、たとえば第3ウェブサイトから得られるドキュメントまたはファイルの中から特定する。しかし、実施形態によってはコンテンツ分析部104がテーブル400を、テーブル200および/またはテーブル300が特定されたコンテンツ122の同じ項目の中から特定してもよい。
【0030】
ヘッダ行402は列401aに人名を示すラベル403を含む。ラベル403は「人名」である。しかし、他の実施形態では(任意の言語の)他の単語、句、または文字の集合が代わりに人名を示すラベルであってもよいことは理解されるはずである。他の列401b-cは個人識別情報を含む。たとえば、列401bは個人識別情報の第1項目(すなわち電話番号)を含み、列401cは個人識別情報の第2項目(すなわち住所)を含む。
【0031】
後続の行404a-dのそれぞれは、列401aに挙げられている人名を持つ特定の個人に関する。たとえば、行404aは「アン」という名前の個人に関する。行404aの他の列はアンの電話番号「123-6666」と住所「123第1ストリート、州、USA」とを示す。行404bは「ベン」という名前の個人に関する。行404bの他の列はベンの電話番号「123-7777」と住所「123第2ストリート、州、USA」とを示す。行404cは「チャールズ」という名前の個人に関する。行404cの他の列はチャールズの電話番号「123-8888」と住所「123第3ストリート、州、USA」とを示す。最後の行404dは「ドリュー」という名前の個人に関する。行404dの他の列はドリューの電話番号「123-9999」と住所「123第4ストリート、州、USA」とを示す。
【0032】
図2-
図4に示されているように、テーブル200、300、400はそれぞれの列201a、301a、401aに同じ4人の名前(すなわち、アン、ベン、チャールズ、ドリュー)を共有する。上記のとおり、テーブル200に含まれる4人の名前とテーブル300に含まれる4人の名前とは、各テーブル200、300に含まれる個人識別情報の同じ項目(すなわちEメールアドレス)に関連付けられているので、それらの名前が同じ4人に対応するとすでに判断されている。テーブル300に含まれる4人の名前とテーブル400に含まれる4人の名前とは、各テーブル300、400に含まれる個人識別情報の同じ項目(すなわち電話番号)に関連付けられているので、それらの名前が同じ4人に対応すると判断できる。
【0033】
たとえば、テーブル300、400の両方が人名「アン」に対して同じ電話番号(123-6666)を含むので、テーブル300に含まれるアンという名前の個人がテーブル400に含まれるアンという名前の個人であると判断できる。この判断は、2人の個人が同じ電話番号を共有する可能性がかなり低い(または不可能である)から可能である。テーブル300に含まれるベン、チャールズ、ドリューがテーブル400に含まれるベン、チャールズ、ドリューであるという同様な判断も、個人識別情報の項目(すなわち電話番号)の共有という理由から可能である。
【0034】
テーブル200に含まれる4人の名前とテーブル400に含まれる4人の名前とは、各テーブル200、400に含まれる個人識別情報の同じ項目には関連付けられていない。たとえば、テーブル200は、アンという名前の個人の職業が「副社長」であり、そのEメールアドレスが「anne@company1.com」であることを示す。テーブル400は、アンという名前の個人の電話番号が「123-6666」であり、その住所が「123第1ストリート、州、USA」であることを示す。テーブル200、400には個人識別情報に共通の項目がないので、テーブル200に含まれるアンがテーブル400に含まれるアンと同じであるかがわからない。
【0035】
しかし、テーブル200に含まれるアンがテーブル300に含まれるアンと同じであるとはすでに判断されており(Eメールアドレスが同じであることによる。)、テーブル300に含まれるアンがテーブル400に含まれるアンと同じであるとはすでに判断されている(電話番号が同じであることによる。)ので、推移則を使えば、テーブル200に含まれるアンがテーブル400に含まれるアンと同じであるとも判断できる。推移則を用いる同様な判断により、テーブル200に含まれるベン、チャールズ、ドリューがテーブル400に含まれるベン、チャールズ、ドリューと同じであることもわかる。
【0036】
上記のとおり、2以上のテーブルのそれぞれが同じ人名の個人に関する個人識別情報を含む場合、これらのテーブルから抽出されたこれらの個人識別情報のすべてをデータ分類部108がその個人に関する1つのプロフィールに分類する。これにより、テーブル200、300、400から得られる個人識別情報の全体が4つのプロフィール、すなわち、アンのプロフィール、ベンのプロフィール、チャールズのプロフィール、ドリューのプロフィールに分類される。各プロフィールは、各人の職業、Eメールアドレス、電話番号、住所を含む。たとえばアンのプロフィールは、職業「副社長」、Eメールアドレス「anne@company1.com」、電話番号「123-6666」、住所「123第1ストリート、州、USA」を含む。
【0037】
同じ論理を用いて、数十、数百、数千、数百万の供給源(コンテンツの項目)から得られる、数十、数百、数千、数百万のテーブルに含まれる、数十、数百、数千、数百万の人名をリンクさせることができる。したがって、特定の個人に関連付けられている1つのプロフィールが、数十、数百、数千、数百万の供給源から抽出された個人識別情報を示す。こうして、包括的なプロフィールが様々な個人について生成可能である。そのようなプロフィールが手作業で生成される場合、1つの企業等だけで、数十、数百、数千、数百万のプロフィールを生成することは、時間とリソースとが無制限でない限り、ほぼ不可能であろう。
【0038】
その他に、2以上のテーブルが同じ人名を含む場合、これらのテーブルが同じ名前の2人以上の個人(たとえば、ジョン・スミスという名前の個人は2人以上存在する。)に関する個人識別情報を含むかも知れない。この場合、データ分類部108は、各テーブルから抽出されたこれらの個人識別情報を2以上のプロフィールに分類する。各プロフィールは、名前が共通の個人別に対応付けられている。
【0039】
コンテンツ分析部104がテーブル400に加え、
図5に示されているテーブル500を更に特定してもよい。テーブル500は、ヘッダ行502、後続の行504a-d、および列501a-cを含む。コンテンツ分析部104はテーブル500をコンテンツ122の第4項目の中から、たとえば第4ウェブサイトから得られるドキュメントまたはファイルの中から特定する。しかし、実施形態によってはコンテンツ分析部104がテーブル500を、テーブル200、300、および/または400が特定されたコンテンツ122の同じ項目の中から特定してもよい。
【0040】
ヘッダ行502は列501aに人名を示すラベル503を含む。ラベル503は「人名」である。しかし、他の実施形態では(任意の言語の)他の単語、句、または文字の集合が代わりに人名を示すラベルであってもよいことは理解されるはずである。他の列501b-cは個人識別情報を含む。たとえば、列501bは個人識別情報の第1項目(すなわち電話番号)を含み、列501cは個人識別情報の第2項目(すなわち住所)を含む。
【0041】
後続の行504a-dのそれぞれは、列501aに挙げられている人名を持つ特定の個人に関する。たとえば、行504aは「アン」という名前の個人に関する。行504aの他の列はアンの電話番号「456-6666」と住所「456第5ストリート、州、USA」とを示す。行504bは「ブリタニー」という名前の個人に関する。行504bの他の列はブリタニーの電話番号「456-7777」と住所「456第6ストリート、州、USA」とを示す。行504cは「キャシー」という名前の個人に関する。行504cの他の列はキャシーの電話番号「456-8888」と住所「456第7ストリート、州、USA」とを示す。最後の行504dは「ダン」という名前の個人に関する。行504dの他の列はダンの電話番号「456-9999」と住所「456第8ストリート、州、USA」とを示す。
【0042】
図4-
図5に示されているように、テーブル400、500はそれぞれの列401a、501aに同じ名前(すなわちアン)を共有する。しかし、テーブル400に含まれるアンとテーブル500に含まれるアンとは同じ個人には対応していない。テーブル400、500に含まれる個人識別情報が矛盾するからである。たとえば、テーブル400、500がアンに対して異なる電話番号を挙げているので、テーブル400に含まれるアンとテーブル500に含まれるアンとが同じ個人には対応していないと判断できる。同様に、テーブル400、500がアンに対して異なる住所を挙げているので、テーブル400に含まれるアンとテーブル500に含まれるアンとが同じ個人には対応していないと判断できる。アンという名前の個人が2つの電話番号および/または2つの住所を持つ可能性は低いので、テーブル400に含まれるアンがテーブル500に含まれるアンと異なる可能性は高い。
【0043】
上記のとおり、2以上のテーブルが同じ名前を持つ2以上の個人に関する個人識別情報を含む場合、各テーブルから抽出されたこれらの個人識別情報の全体をデータ分類部108が2以上のプロフィールに分類する。各プロフィールは同じ名前の各個人に対応付けられている。テーブル500から抽出された、アンに対応付けられている個人識別情報は、テーブル200-400の示すアンに対して生成されたプロフィールとは異なるプロフィールに分類される。たとえば、人名「アン」に関連付けられている第1プロフィールは、職業「副社長」、Eメールアドレス「anne@company1.com」、電話番号「123-6666」、および住所「123第1ストリート、州、USA」を含む。一方、人名「アン」に関連付けられている第2プロフィールは電話番号「456-6666」および住所「456第5ストリート、州、USA」を含む。テーブル500から抽出された、人名ブリタニー、キャシー、ダンに対応付けられている個人識別情報は3つのプロフィールに分類される。
【0044】
同じ論理を用いて、同じ人名(だけど違う人々)に対応付けられている、数十、数百、数千、または数百万のプロフィールを生成することができる。たとえば、この論理を用いて、人名「ピーター・ジョーンズ」に対応付けられている2000個のプロフィールを生成することもできる。各プロフィールは、ピーター・ジョーンズという名前の異なる個人の個人識別情報を示す。このような作業も1つの企業等が手作業で行うことは、時間とリソースとが無制限でない限り、ほぼ不可能である。
【0045】
テーブル200、300、400、500に示されている人名(すなわち、アン、ベン、チャールズ、ドリュー等)は英語で書かれた名であるが、他の実施形態では、特定のテーブルに示されている人名が、英語に加え、または英語とは別に、他の言語で書かれた名および/または姓を含んでもよいことは、理解されるはずである。
【0046】
図6は、
図2-
図5のテーブル200、300、400、500から抽出されたデータに関連付けられているプロフィール群の一例600を示す。プロフィール群600は、たとえばJSONファイルとして(または他の適当なフォーマットで)保存可能である。プロフィール群600はプロフィール602、604、606、608、610、612、614、616を含む。しかし、これらよりも多くのプロフィール、たとえば、数百、数千、数百万のプロフィールをプロフィール群が含んでもよいことは、理解されるはずである。
【0047】
プロフィール602は、テーブル200、300、400に含まれる人名アンによって識別される個人に対応付けられており、テーブル200、300、400のすべてから抽出された人名アンに関連付けられている個人識別情報を含む。プロフィール群600はプロフィール604も含む。プロフィール604は、テーブル500に含まれる人名アンによって識別される個人に対応付けられており、テーブル500から抽出された人名アンに関連付けられている個人識別情報を含む。プロフィール606は、テーブル200、300、400に含まれる人名ベンによって識別される個人に対応付けられており、テーブル200、300、400のすべてから抽出された人名ベンに関連付けられている個人識別情報を含む。
【0048】
プロフィール608は、テーブル500に含まれる人名ブリタニーによって識別される個人に対応付けられており、テーブル500から抽出された人名ブリタニーに関連付けられている個人識別情報を含む。プロフィール610は、テーブル500に含まれる人名キャシーによって識別される個人に対応付けられており、テーブル500から抽出された人名キャシーに関連付けられている個人識別情報を含む。プロフィール612は、テーブル200、300、400に含まれる人名チャールズによって識別される個人に対応付けられており、テーブル200、300、400のすべてから抽出された人名チャールズに関連付けられている個人識別情報を含む。プロフィール614は、テーブル500に含まれる人名ダンによって識別される個人に対応付けられており、テーブル500から抽出された人名ダンに関連付けられている個人識別情報を含む。プロフィール616は、テーブル200、300、400に含まれる人名ドリューによって識別される個人に対応付けられており、テーブル200、300、400のすべてから抽出された人名ドリューに関連付けられている個人識別情報を含む。
【0049】
ある実施形態では、1以上のプロフィール602、604、606、608、610、612、614、616が、個人識別情報の各項目をその抽出元のコンテンツに関連付けるという指示を含んでもよい。たとえば、プロフィール602は、テーブル200、300、400のすべてから抽出された人名アンに関連付けられている個人識別情報を含むので、個人識別情報の各項目をその抽出元のコンテンツに関連付けるという指示を含んでもよい。コンテンツは、たとえば、1以上のウェブページに掲載されているドキュメントまたはファイルである。こうして、企業等はプロフィール602を閲覧し、特定の個人に関する個人識別情報を迅速に一括して把握できると共に、その個人識別情報の出所であるデータ源も把握できる。
【0050】
図7A、
図7B、
図7Cは、データを取り込んで分類する方法の一例700を示す。この方法700は、たとえば、
図1のプロセッサ102によって実行され、数十、数百、数千、数百万の様々なデータ源から個人識別情報を取り込み、これらのデータを個人ごとにプロフィールに分類する。このような方法700の実行によって企業等は、特定の人々に対応付けられている様々な個人情報を迅速に一括して把握できる。
【0051】
上記のとおり、プロセッサ(すなわちコンテンツ分析部104)は、コンテンツが1以上のテーブルを含むかを判断するように構成されている。ステップ702では第1コンテンツの中に、少なくとも1つのテーブルである第1テーブルが含まれると判断される。第1テーブルは第1群の行と第1群の列とを含む。
【0052】
第1テーブルがヘッダ行を含むと判断される。ヘッダ行は第1列に人名を示すラベルを含む。ステップ704では、人名を示す第1用語(すなわちラベル)が第1群の行のうちの第1行(すなわちヘッダ行)、第1群の列のうちの第1列に含まれる。上記のとおり、人名を示すラベルは実際の人名ではなく、たとえば、任意の言語で書かれた「名」という単語もしくは文字、「法的名称」を表す句、「英語表記の名前」、または「姓名」であってもよい。
【0053】
第1テーブルの他の列のうち少なくとも1列が個人識別情報、たとえば、電話番号、住所、職業、Eメールアドレス、または他の項目を含むと判断される。ステップ706では第1群の行のうちの第2行が特定される。この第2行は、少なくとも、第1列には第1人名を含み、第1群の列のうちの第2列には個人識別情報の第1項目を含み、第1群の列のうちの第3列には個人識別情報の第2項目を含む。
【0054】
第1テーブルの第2行からデータが抽出される。ステップ708では第1データが抽出される。第1データは、第1人名、および個人識別情報の第1項目と第2項目を示す。抽出された第1データは人名に応じて(すなわち個人別に)分類される。たとえば、第1人名のハッシュ値が生成され、抽出された他のデータである個人識別情報の第1項目と第2項目を示すデータが第1人名に関連付けられる。こうして、抽出された第1データが並べ換えられる結果、人名に応じて配置される。この配置により、企業等は特定の個人に関する個人情報を迅速に一括して閲覧できる。
【0055】
分類されたデータは人名に応じてプロフィールに維持される。ステップ710では第1データが、第1人名に関連付けられている第1プロフィールに追加される。たとえば、第1人名のハッシュ値、および、個人識別情報の第1項目と第2項目とを示す他の抽出されたデータが、第1人名に関連付けられている第1プロフィールに維持される。第1プロフィールは、企業等により、1台以上のユーザインタフェースデバイスを通して閲覧可能である。
【0056】
ステップ712では第2コンテンツの中に別のテーブル(すなわち第2テーブル)が含まれると判断される。第2テーブルは第2群の行と第2群の列とを含む。第2コンテンツは第1コンテンツと同じコンテンツ源に属しても、異なるコンテンツ源に属してもよい。第2テーブルがヘッダ行を含むと判断される。ヘッダ行は第1列に人名を示すラベルを含む。ステップ714では、人名を示す第2用語(すなわちラベル)が第2群の行のうちの第1行、第2群の列のうちの第1列に含まれると判断される。第2用語は、第1テーブルのヘッダ行に含まれる第1用語と同じであっても異なっていてもよい。
【0057】
第2テーブルの他の列のうち少なくとも1列が個人識別情報、たとえば、電話番号、住所、職業、Eメールアドレス、または他の項目を含むと判断される。ステップ716では第2群の行のうちの第2行が特定される。この第2行は、第2群の列のうち、第1列には第1人名を含み、第2列には(第1テーブルに含まれる)個人識別情報の第1項目と第2項目とのうち少なくとも1つを含み、第3列には個人識別情報の第3項目を含む。この第3項目は第1テーブルには含まれていなくてもよい。
【0058】
第1テーブルと第2テーブルとの両方に含まれる第1人名が同じ個人に対応すると判断される。これは、第1人名が、第1テーブルと第2テーブルとの両方に含まれる個人識別情報の同じ項目のうち少なくとも1つに関連付けられていることによる。この判断は、2人の個人が、同じ職業、住所、電話番号、Eメールアドレス等、個人識別情報の同じ項目を共有する可能性がかなり低い(または不可能である)ことから可能である。こうして、第2テーブルの第3列に含まれる個人識別情報の第3項目が同じ個人に関すると判断される。
【0059】
ステップ718では第2テーブルから、個人識別情報の第3項目を示す第2データが抽出される。この第3項目は、第1プロフィールに対応付けられている個人に関するので、第1テーブルから抽出された個人識別情報の第1項目および/または第2項目と共に第1プロフィールに維持され、または保存される。ステップ720では第2データが第1プロフィールに追加される。
【0060】
ステップ722では第3コンテンツの中に異なるテーブル(すなわち第3テーブル)が含まれると判断される。第3テーブルは第3群の行と第3群の列とを含む。第3コンテンツは第1コンテンツおよび/または第2コンテンツと同じコンテンツ群に属しても、異なるコンテンツに属してもよい。第3テーブルがヘッダ行を含むと判断される。ヘッダ行は第1列に人名を示すラベルを含む。ステップ724では、人名を示す第3用語(すなわちラベル)が第3群の行のうちの第1行、第3群の列のうちの第1列に含まれると判断される。第3用語は、第1テーブルのヘッダ行に含まれる第1用語と、または第2テーブルのヘッダ行に含まれる第2用語と、同じであっても異なっていてもよい。
【0061】
第3テーブルの他の列のうち少なくとも1列が個人識別情報、たとえば、電話番号、住所、職業、Eメールアドレス、または他の項目を含むと判断される。ステップ726では第3群の行のうちの第2行が特定される。この第2行は、第3群の列のうち、第1列には第1人名を含み、第2列には個人識別情報の第3項目を含み、第3列には個人識別情報の第4項目を含む。
【0062】
第2テーブルと第3テーブルとの両方に含まれる第1人名が同じ個人に対応すると判断される。これは、第1人名が、第2テーブルと第3テーブルとの両方に含まれる個人識別情報の第3項目に関連付けられていることによる。この判断は、2人の個人が同じ職業、住所、電話番号、Eメールアドレス等、個人識別情報の同じ項目を共有する可能性がかなり低い(または不可能である)ことから可能である。こうして、第3テーブルの第3列に含まれる個人識別情報の第4項目も同じ個人に関すると判断される。
【0063】
ステップ728では第3テーブルから、個人識別情報の第4項目を示す第3データが抽出される。この第4項目は、第1プロフィールに対応付けられている個人に関するので、第1テーブルと第2テーブルとから抽出された個人識別情報の第1項目、第2項目、および/または第3項目と共に第1プロフィールに維持され、または保存される。ステップ730では第3データが第1プロフィールに追加される。
【0064】
図8は、データを取り込んで分類する方法の一例800を示す。この方法800は、たとえば、
図1のプロセッサ102によって実行され、数十、数百、数千、数百万の様々なデータ源から個人識別情報を取り込み、これらのデータを個人ごとにプロフィールに分類する。このような方法800の実行によって企業等は、特定の人々に対応付けられている様々な個人情報を迅速に一括して把握できる。
【0065】
上記のとおり、プロセッサ(すなわちコンテンツ分析部104)は、コンテンツが1以上のテーブルを含むかを判断するように構成されている。ステップ802では第1コンテンツの中に、少なくとも1つのテーブルである第1テーブルが含まれると判断される。第1テーブルは第1群の行と第1群の列とを含む。
【0066】
第1テーブルがヘッダ行を含むと判断される。ヘッダ行は第1列に人名を示すラベルを含む。ステップ804では、人名を示す第1用語(すなわちラベル)が第1群の行のうちの第1行(すなわちヘッダ行)、第1群の列のうちの第1列に含まれる。上記のとおり、人名を示すラベルは実際の人名ではなく、たとえば、任意の言語で書かれた「名」という単語もしくは文字、「法的名称」を表す句、「英語表記の名前」、または「姓名」であってもよい。
【0067】
第1テーブルの他の列のうち少なくとも1列が個人識別情報、たとえば、電話番号、住所、職業、Eメールアドレス、または他の項目を含むと判断される。ステップ806では第1群の行のうちの第2行が特定される。この第2行は、少なくとも、第1列には第1人名を含み、第1群の列のうちの第2列には個人識別情報の第1項目を含む。
【0068】
第1テーブルの第2行からデータが抽出される。ステップ808では第1データが抽出される。第1データは第1人名と個人識別情報の第1項目とを示す。抽出された第1データは人名に応じて(すなわち個人別に)分類される。たとえば、第1人名のハッシュ値が生成され、抽出された他のデータである個人識別情報の第1項目を示すデータが第1人名に関連付けられる。こうして、抽出された第1データが並べ換えられる結果、人名に応じて配置される。この配置により、企業等は特定の個人に関する個人情報を迅速に一括して閲覧できる。
【0069】
分類されたデータは人名に応じてプロフィールに維持される。ステップ810では第1データが、第1人名に関連付けられている第1プロフィールに追加される。たとえば、第1人名のハッシュ値と、個人識別情報の第1項目を示す他の抽出されたデータが、第1人名に関連付けられている第1プロフィールに維持される。第1プロフィールは、企業等により、1台以上のユーザインタフェースデバイスを通して閲覧可能である。
【0070】
ステップ812では第2コンテンツの中に別のテーブル(すなわち第2テーブル)が含まれると判断される。第2テーブルは第2群の行と第2群の列とを含む。第2コンテンツは第1コンテンツと同じコンテンツ源に属しても、異なるコンテンツ源に属してもよい。第2テーブルがヘッダ行を含むと判断される。ヘッダ行は第1列に人名を示すラベルを含む。ステップ814では、人名を示す第2用語(すなわちラベル)が第2群の行のうちの第1行、第2群の列のうちの第1列に含まれると判断される。第2用語は、第1テーブルのヘッダ行に含まれる第1用語と同じであっても異なっていてもよい。
【0071】
第2テーブルの他の列のうち少なくとも1列が個人識別情報、たとえば、電話番号、住所、職業、Eメールアドレス、または他の項目を含むと判断される。ステップ816では第2群の行のうちの第2行が特定される。この第2行は、第2群の列のうち、第1列には第1人名を含み、第2列には個人識別情報の第2項目を含む。
【0072】
個人識別情報の第2項目が、第1テーブルに含まれる個人識別情報の第1項目と矛盾する。たとえば、第1項目が第1個人に固有の識別子を含み、第2項目が第2個人に固有の識別子を含む。第1個人に固有の識別子は、第1個人のEメールアドレス、住所、電話番号、職業のうち少なくとも1つを示し、第2個人に固有の識別子は、第2個人のEメールアドレス、住所、電話番号、職業のうちの少なくとも1つを示す。
【0073】
個人識別情報の第2項目が個人識別情報の第1項目と矛盾する場合、第1項目が第1個人に関し、第2項目が第2個人に関すると判断される。第1個人と第2個人とは、同じ名前を共有する違う個人である。
【0074】
第2テーブルの第2行からデータが抽出される。ステップ818では、第1人名と個人識別情報の第2項目を示す第2データが抽出される。抽出された第2データは人名に応じて(すなわち個人別に)分類される。たとえば、第1人名のハッシュ値が生成され、抽出された他のデータである個人識別情報の第2項目を示すデータが第1人名に関連付けられる。こうして、抽出された第2データが並べ換えられる結果、人名に応じて配置される。この配置により、企業等は特定の個人に関する個人情報を迅速に一括して閲覧できる。
【0075】
分類されたデータは人名に応じてプロフィールに維持される。ステップ820では第2データが、第1人名に関連付けられている第2プロフィールに追加される。たとえば、第1人名のハッシュ値と、個人識別情報の第2項目を示す他の抽出されたデータが、第1人名に関連付けられている第2プロフィールに維持される。第2プロフィールは、企業等により、1台以上のユーザインタフェースデバイスを通して閲覧可能である。
【0076】
上記の説明では、コンテンツの中から見つけられたテーブルが「ヘッダ行」を1行にしていることが想定されている。しかし、ある実施形態では、コンテンツの中から見つけられたテーブルの1以上が「ヘッダ行」を実際には1列(すなわち「ヘッダ列」)にしていてもよいことは、理解されるはずである。たとえば、コンテンツの中から見つけられたテーブルが「ヘッダ列」を含む場合、そのテーブルはヘッダ列の各行にラベルを含む。これらのラベルは、対応付けられている行の他の列に保存されているデータの種類を示す。「ヘッダ行」が実際には「ヘッダ列」である場合も、上記の説明はすべて適用可能である。たとえば、上記の説明の各所において単語「行」が単語「列」に置換されればよい。
【0077】
図9は、様々な場面で使用可能なコンピュータ装置を示す。
図1の環境の例に関する場合、1台以上のプロセッサ102、電子ストレージ110、ユーザインタフェースデバイス114、またはコンテンツ源120が、
図9に示されているコンピュータ装置の一例900に実装されていてもよい。このコンピュータ装置900は、従来のサーバコンピュータ、ワークステーション、デスクトップコンピュータ、ノートパソコン、タブレット、ネットワーク装置、PDA、電子リーダ、デジタル携帯電話、他のコンピュータノードを表し、
図7A、
図7B、
図7C、および
図8に記載されている方法の実行等、この明細書に記載されているコンピュータの動作のいずれを実行するのにも利用可能である。
【0078】
コンピュータ装置900は基板、すなわち「マザーボード」を含む。これは印刷回路基板であり、それには多数の部品と装置とがシステムバス、または他の電気通信路によって接続されている。1台以上の中央集積装置(CPU)904がチップセット906と連動する。CPU904は、コンピュータ装置900の動作に必要な算術演算と論理演算とを行うプログラム可能なプロセッサである。
【0079】
CPU904は、複数個のスイッチ素子を区別したり、それらの状態を切り換えたりする操作を通して、1つの物理的状態から次の状態へ遷移することにより、必要な演算を行う。スイッチ素子は一般に、フリップフロップ等、2値状態のうちの1つを維持する電子回路と、論理ゲート等、1以上の他のスイッチ素子の状態の論理的な組み合わせに基づいて出力状態を決める電子回路とを含む。このような基本的なスイッチ素子が組み合わされて、レジスタ、アドレス減算器、論理演算ユニット、浮動小数点演算ユニット等、より複雑な論理回路が形成される。
【0080】
GPU905等、他の演算ユニットがCPU904に増設されても、CPU904の代わりに設置されてもよい。GPU905は、グラフィックス、その他の視覚化関連処理等の高度な並列計算に特化した演算ユニットを含んでもよい。ただし、そのような演算ユニットが必須であるわけではない。
【0081】
基板上では、CPU904と残りの部品/装置との間にインタフェースが設置されている。このインタフェースは、コンピュータ装置900のメインメモリとして使用されるランダムアクセスメモリ(RAM)908へのアクセスに利用可能である。このインタフェースはまた、リードオンリーメモリ(ROM)920、不揮発性RAM(NVRAM)(図示せず。)等、コンピュータで読み取り可能な記憶媒体へのアクセスにも利用可能である。これらの記憶媒体には、コンピュータ装置900の起動を支援したり、様々な部品/装置の間で情報を伝達したりする基本的なルーティンが保存される。ROM920またはNVRAMがまた、この明細書に記載されている態様に則ったコンピュータ装置900の動作に必要なソフトウェア部品も保存してもよい。インタフェースは、チップセット906等、1以上の電気部品によって構成されている。
【0082】
コンピュータ装置900はネットワーク環境で動作する。この環境では、ローカルエリアネットワーク(LAN)916経由でコンピュータノードとコンピュータシステムとを遠隔操作するのに論理的な接続が利用される。チップセット906は、ギガビットイーサネットアダプタ等のネットワークインタフェースコントローラ(NIC)922を通してネットワークに接続する機能を含む。NIC922は、ネットワーク916を通してコンピュータ装置900を他のコンピュータノードへ接続する能力を持つ。コンピュータ装置900にNIC922が複数存在してもよいことは理解されるはずである。これにより、コンピュータ装置900は、複数の種類の異なるネットワークに接続され、複数のコンピュータシステムを遠隔操作する。
【0083】
コンピュータ装置900は、コンピュータに不揮発性ストレージを提供するストレージ装置928に接続されている。ストレージ装置928には、システムプログラム、アプリケーションプログラム、その他のプログラムモジュール、およびデータが保存される。これらの詳細については後述する。ストレージ装置928は、チップセット906に接続されているストレージコントローラ924を通してコンピュータ装置900に接続されている。ストレージ装置928は1台以上の物理的なストレージユニットから成る。これらの物理的なストレージユニットに対するインタフェースがストレージコントローラ924であり、それには、シリアル接続SCSI(SAS)インタフェース、シリアルATA(SATA)インタフェース、ファイバーチャネル(FC)インタフェース、または、コンピュータと物理的なストレージユニットとの間を物理的に接続してデータを転送する他の種類のインタフェースが含まれる。
【0084】
コンピュータ装置900はストレージ装置928にデータを保存する際、物理的なストレージユニットに物理的な状態を遷移させることにより、保存される情報を反映させる。物理的な状態の遷移は様々な要因と、この明細書に記載されている異なる実施形態とに依存している。それらの要因の例としては、物理的なストレージユニットの実装に利用される技術や、ストレージ装置928が1次ストレージと2次ストレージとのいずれとして特徴付けられるか等が挙げられるが、これらには限られない。
【0085】
たとえば、コンピュータ装置900はストレージ装置928に情報を保存する際、ストレージコントローラ924を通して命令を出すことにより、磁気ディスクドライブユニット内の特定の位置の磁気特性、光ストレージユニット内の特定の位置の反射特性もしくは屈折特性、またはソリッドステートドライブユニット内の特定のキャパシタ、トランジスタ、もしくはその他の部品の電気特性を変化させる。上記の例は、この明細書での説明を容易にすることのみを目的するものであるので、物理媒体の他の状態変化も、本発明の範囲と原理とから外れることなく、利用可能である。コンピュータ装置900は、物理的なストレージユニット内の1以上の特定の位置の物理的な状態または特性を検出することにより、ストレージ装置928から情報を読み出す。
【0086】
コンピュータ装置900は、この明細書に記載されているストレージ装置928に加えて、またはそれに代えて、コンピュータによる読み出しが可能な他の記憶媒体にアクセスして、プログラムモジュール、データ構造体、その他のデータ等の情報を読み書きしてもよい。コンピュータによる読み出しが可能な記憶媒体は、データを持続性のある形で保存し、かつコンピュータ装置900によるアクセスが可能なものであれば、入手可能ないかなる媒体であってもよいことは、当業者には理解されるはずである。
【0087】
あくまでも例示であって限定の意味はないが、コンピュータによる読み出しが可能な記憶媒体には、任意の方法または技術によって実装された、揮発性媒体、不揮発性媒体、一時的な媒体、持続性のある媒体、取り外し可能な媒体、取り外し不可の媒体が含まれる。さらに、RAM、ROM、消去可能なプログラマブルROM(EPROM)、電気的な消去が可能なプログラマブルROM(EEPROM)、フラッシュメモリ、もしくは他のソリッドステートメモリ技術、コンパクトディスクROM(CD-ROM)、デジタル記録ディスク(DVD)、高解像度DVD(HD-DVD)、ブルーレイ、もしくは他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気式ストレージ、または、所望の情報を持続性のある形で保存するのに利用可能な他のいかなる媒体も例としてあげられるが、これらに限られない。
【0088】
図9に示されているストレージ装置928等、ストレージ装置には、コンピュータ装置900の動作の制御に利用されるオペレーティングシステムが保存される。このオペレーティングシステムがLINUXを含んでも、MICROSOFT社製のWINDOWS(登録商標)サーバを含んでもよい。別の観点によれば、このオペレーティングシステムがUNIX(登録商標)を含んでもよい。IOSまたはANDROID(登録商標)等、様々な携帯電話のオペレーティングシステムも利用可能である。他のオペレーティングシステムも利用可能であることは理解されるはずである。ストレージ装置928は、コンピュータ装置900によって利用される他のシステムプログラムまたはアプリケーションプログラムおよびデータを保存する。
【0089】
ストレージ装置928、またはコンピュータによる読み出しが可能な他の記憶媒体は、コンピュータで実行可能な命令を受け付ける。これらの命令は、コンピュータ装置900に読み込まれると、その装置を汎用のコンピュータシステムから、この明細書に記載されている動作を実行可能な専用のコンピュータへ変化させる。これらの命令は、コンピュータ装置900を変化させる際にCPU904がどうやって、この明細書に記載されているように状態間の遷移を行うかを規定する。コンピュータ装置900は、コンピュータで実行可能な命令を保存しているコンピュータで読み出し可能な記憶媒体にアクセスする。これらの命令はコンピュータ装置900によって実行されると、
図7A、
図7B、
図7C、
図8に示されている方法を実現させる。
【0090】
図9に示されているコンピュータ装置900のようなコンピュータ装置は、入出力コントローラ932も含む。入出力コントローラ932は多数の入力装置、たとえば、キーボード、マウス、タッチパッド、タッチスクリーン、電子スタイラス、その他の種類の入力装置から入力を受けて処理する。入出力コントローラ932はまた、コンピュータのモニタ、フラットパネルディスプレイ、デジタルプロジェクタ、プリンタ、プロッタ、その他の種類の出力装置に出力を与える。なお、コンピュータ装置900は、
図9に示されている要素のすべてを含まなくてもよいし、
図9には明示されていない他の要素を含んでもよいし、
図9に示されているアーキテクチャとは完全に異なるアーキテクチャを使ってもよい。これらのことは理解されるはずである。
【0091】
この明細書に記載されているとおり、コンピュータ装置は、
図9のコンピュータ装置900のような、物理的なコンピュータ装置である。コンピュータノードには、仮想マシンのホストプロセスと1以上のインスタンスとが含まれてもよい。この場合、コンピュータによる実行が可能な命令は、コンピュータ装置の物理的なハードウェアによっては間接的に実行される。すなわち、仮想マシンの上に保存されてその上で実行される命令として解釈され、および/または実行される。
【0092】
この明細書に開示されているシステムと方法とを実装可能なコンピュータ装置は、1台以上のプロセッサ、システムメモリ、および、プロセッサを含む様々なシステムの要素をシステムメモリに結合するシステムバスを含んでもよいが、それらは必須ではないことを当業者は理解しているだろう。マルチプロセッサである場合、システムが並列計算を利用してもよい。
【0093】
この明細書では、図示を目的として、アプリケーションプログラムと、オペレーティングシステム等の他の実行可能なプログラム要素とを、別々のブロックとして描いている。しかし、そのようなプログラムと要素とが様々な時点でコンピュータ装置の異なるストレージ要素に存在することも、コンピュータのプロセッサによって実行されることも、理解されるだろう。サービスソフトウェアは、何らかの形態にあるコンピュータによる読み出しが可能な媒体に保存され、またはそれを通して送信されることによって実装される。開示されている方法はいずれも、コンピュータによる読み出しが可能な媒体に書き込まれている、コンピュータが解読可能な命令によって行われる。コンピュータによる読み出しが可能な媒体は、コンピュータによるアクセスが可能で、入手可能などのような媒体であってもよい。あくまでも例示であって、発明を限定する意味はないが、コンピュータによる読み出しが可能な媒体には「コンピュータの記憶媒体」と「通信媒体」とが含まれる。「コンピュータの記憶媒体」には、揮発性媒体、不揮発性媒体、取り外し可能な媒体、取り外し不可の媒体が含まれる。これらは、コンピュータが解読可能な命令、データ構造体、プログラムモジュール、その他のデータ等の情報を保存するどのような方法または技術によって実装されてもよい。コンピュータの記憶媒体の例としては、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD-ROM、DVD、もしくは他の光学式ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気式ストレージ、または、所望の情報の保存に利用可能で、コンピュータによってアクセスが可能な他のいかなる媒体も例としてあげられるが、これらに限られない。アプリケーションプログラム等、および/または記憶媒体のうち少なくとも一部が、遠隔地のシステムに実装されていてもよい。
【0094】
明細書と添付の特許請求の範囲とに使用されているとおり、冠詞“a”、“an”、“the”は、文脈によって明確に示されていない限り、複数の意味を含む。この明細書に表されている数値範囲は、ある特定値の「近く」から別の特定値の「近く」までを意味する。明確に述べられていない限り、この明細書に記載されているいかなる方法も、ステップが特定の順序で実行されることを要するものとして解釈させる意図はない。したがって、方法クレームが実際には、ステップが従うべき順序を規定してもいなければ、特許請求の範囲にも明細書にもステップが特定の順序に限られるべきとは明確には述べられてもいない。いかなる面においても、順序が推測されることも意図されてはいない。
【0095】
発明の範囲または原理からはずれることなく様々な修正と変更とが可能であることは、当業者には明らかだろう。この明細書に開示されている仕様と実施例とを考慮すれば、他の実施形態も当業者には明らかだろう。それらの仕様と実施例とはあくまでも、添付の特許請求の範囲によって示されている発明の真の範囲と原理とに従った例として考慮されることしか意図されていない。
【外国語明細書】