(57)【要約】【課題】  電子文書で使用するために複数のデータソースのデータをマージする方法、システム、およびコンピュータ読み取り可能媒体を提供すること。【解決手段】  この方法は、初期データソースのフィールド名およびフィールドデータを受け取ること、その後で追加されたデータソースから初期データソースにフィールド名をマッピングすること、初期データソースのフィールド名と、その後で追加されたデータソースのマッピング後フィールド名とに基づいて受取リストスキーマを構築すること、受取リストスキーマに従って受取リストを作成すること、および受取リストをファイルに保存することを含む。受取リストスキーマは、受取リスト中のフィールド名と、初期データソースおよびその後で追加されたデータソース中のフィールド名との間の関係を定義する。【選択図】  図２
2006107466.tif 000002
【特許請求の範囲】
【請求項１】
電子文書で使用するために複数のデータソースのデータをマージする方法であって、
初期データソースのフィールド名およびフィールドデータを受け取ること、
その後で追加された少なくとも１つのデータソースから前記初期データソースにフィールド名をマッピングすること、
前記初期データソースの前記フィールド名と、前記その後で追加された少なくとも１つのデータソースのマッピング後フィールド名とに基づいて受取リストスキーマを構築すること、
前記受取リストスキーマに従って受取リストを作成すること、および、
前記受取リストをファイルに保存することであって、前記受取リストをファイルに保存することは、前記受取リストを再作成することを可能にするファイルを保存することを含むこと
を備えることを特徴とする方法。
【請求項２】
前記その後で追加されたデータソースのフィールドデータと、前記初期データソースの前記フィールドデータとを受け取るために一時受取リストを生成することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記初期データソースの前記フィールド名と、前記その後で追加された少なくとも１つのデータソースのマッピング後フィールド名とに基づいて受取リストスキーマを構築することは、
前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名を、前記初期データソースの前記フィールド名と比較すること、および、
前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名のいずれも前記初期データソースの前記フィールド名に対応しない場合、前記マッピング後フィールド名を追加すること
を備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記受取リストスキーマに従って前記受取リストを作成することは、
マスタデータソースを作成するために、少なくとも１つの新しいデータソースのフィールドデータの少なくとも１つの行を前記一時受取リストに追加することであって、前記マスタデータソースは複数の行のマスタフィールドデータを含むこと、および、
前記マスタデータソース中の複数の行のマスタフィールドデータのそれぞれについてハッシュ値を計算すること
を備えることを特徴とする請求項２に記載の方法。
【請求項５】
前記初期データソース中の前記フィールドデータ、および前記その後に追加された少なくとも１つのデータソース中の前記フィールドデータを修正するために、前記受取リストを修正することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記受取リスト中の前記初期データソースと前記その後に追加された少なくとも１つのデータソースとの間の重複を解決することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
電子文書で使用するために複数のデータソースのデータをマージするシステムであって、前記複数のデータソースのデータを使用するアプリケーションプログラムを実行するために動作可能なクライアントコンピュータを備え、
アプリケーションはさらに、
初期データソースのフィールド名およびフィールドデータを受け取り、その後で追加された少なくとも１つのデータソースのフィールド名を前記初期データソースにマッピングし、前記初期データソースの前記フィールド名と前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名とに基づいて受取リストスキーマを構築し、前記受取リストスキーマに従って受取リストを作成し、前記受取リストをファイルに保存するために動作可能であることを特徴とするシステム。
【請求項８】
前記アプリケーションプログラムはさらに、前記その後で追加されたデータソースのフィールドデータ、および前記初期データソースの前記フィールドデータを受け取る一時受取リストを生成するために動作可能であることを特徴とする請求項７に記載のシステム。
【請求項９】
前記初期データソースの前記フィールド名、および前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名に基づいて受取リストスキーマを構築することは、
前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名を、前記初期データソースの前記フィールド名と比較すること、および
前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名のいずれも前記初期データソースの前記フィールド名に対応しない場合、前記マッピング後フィールド名を追加すること
を備えることを特徴とする請求項７に記載のシステム。
【請求項１０】
前記受取リストスキーマに従って前記受取リストを作成することは、
マスタデータソースを作成するために、少なくとも１つの新しいデータソースのフィールドデータの少なくとも１つの行を前記一時受取リストに追加することであって、前記マスタデータソースは、複数の行のマスタフィールドデータを含むこと、および
前記マスタデータソース中の複数の行のマスタフィールドデータのそれぞれについてハッシュ値を計算すること
を含むことを特徴とする請求項８に記載のシステム。
【請求項１１】
前記アプリケーションプログラムはさらに、前記受取リストを修正して、前記初期データソース中の前記フィールドデータ、および前記その後に追加された少なくとも１つのデータソース中の前記フィールドデータを修正するために動作可能であることを特徴とする請求項７に記載のシステム。
【請求項１２】
前記アプリケーションプログラムはさらに、前記受取リスト中の前記初期データソースと前記その後に追加された少なくとも１つのデータソースとの間の重複を解決するために動作可能であることを特徴とする請求項７に記載のシステム。
【請求項１３】
保存した更新後受取リストファイルは、
前記初期データソースに対する参照、
前記その後で追加された少なくとも１つのデータソースに対する参照、および、
前記マスタデータソース中の前記複数の行のマスタフィールドデータのそれぞれについて計算された前記ハッシュ値
を含むことを特徴とする請求項１０に記載のシステム。
【請求項１４】
コンピュータ実行可能命令が格納されたコンピュータ読み取り可能媒体であって、前記コンピュータ実行可能命令は、電子文書で使用するために複数のデータソースのデータをマージする方法を、コンピュータ実行時にコンピュータに実行させ、前記方法は、
初期データソースのフィールド名およびフィールドデータを受け取ること、
その後で追加された少なくとも１つのデータソースのフィールド名を前記初期データソースにマッピングすること、
前記初期データソースの前記フィールド名、および前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名に基づいて受取リストスキーマを構築すること、
前記受取リストスキーマに従って受取リストを作成すること、および、
前記受取リストをファイルに保存することであって、前記受取リストをファイルに保存することは、前記受取リストを再作成することを可能にするファイルを保存することを含むこと
を含むことを特徴とするコンピュータ読み取り可能媒体。
【請求項１５】
前記方法は、前記その後で追加された少なくとも一つのデータソースのフィールドデータ、および前記初期データソースの前記フィールドデータを受け取るために一時受取リストを生成することをさらに含むことを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【請求項１６】
前記初期データソースの前記フィールド名、および前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名に基づいて受取リストスキーマを構築することは、
前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名を、前記初期データソースの前記フィールド名と比較すること、および、
前記その後で追加された少なくとも１つのデータソースの前記マッピング後フィールド名のいずれも前記初期データソースの前記フィールド名に対応しない場合、前記マッピング後フィールド名を追加すること
を含むことを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【請求項１７】
前記受取リストスキーマに従って前期受取リストを更新することは、
マスタデータソースを作成するために、前記少なくとも１つの新しいデータソースのフィールドデータの少なくとも１つの行を前記一時受取リストに追加することであって、前記マスタデータソースは、複数の行のマスタフィールドデータを含むこと、および、
前記マスタデータソース中の複数の行のマスタフィールドデータのそれぞれについてハッシュ値を計算すること
を含むことを特徴とする請求項１５に記載のコンピュータ読み取り可能媒体。
【請求項１８】
前記方法は、前記受取リストを修正して、前記初期データソース中の前記フィールドデータ、および前記その後に追加された少なくとも１つのデータソース中の前記フィールドデータを修正することをさらに含むことを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【請求項１９】
前記方法は、前記受取リスト中の前記初期データソースと前記その後に追加された少なくとも１つのデータソースとの間の重複を解決することをさらに含むことを特徴とする請求項１４に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアアプリケーションの分野、より詳細には、電子文書で使用するための複数のデータソースのデータのマージに関する。
【背景技術】
【０００２】
最新のデスクトップパブリッシングアプリケーションは、ユーザが容易に電子文書を作成することを可能にする。電子文書を作成するための多くのデスクトップパブリッシングアプリケーションで使用可能な一機能は、メールマージと呼ばれる。メールマージは、ユーザが単一のデータソースに接続し、そこからのデータをマージすることを可能にすることにより、様々なデータ文書を作成するプロセスを自動化する。メールマージ機能を使用する際、データは単一のデータソース（メーリングリストなど）から引き出され、文書の内のマークされた位置に挿入される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
最新のデスクトップパブリッシングアプリケーションによって提供されるメールマージ機能に関連する一つの欠点は、ユーザがしばしば異なるフォーマットで、コンピュータシステム内の複数の場所にデータ（メーリングリストなど）を格納することである。例えば、ユーザは、ある連絡先のリストを、連絡先マネージャプログラムで読取り可能な連絡先ファイルとして格納することがあり、別の連絡先のリストを、スプレッドシートプログラムで読取り可能なスプレッドシートファイルとして格納することがある。したがって、ユーザはしばしば、デスクトップパブリッシングアプリケーションによって提供されるメールマージ機能を利用するために、複数のデータソースからの異なるフォーマットのデータを単一のデータソースとして集める必要がある。
【０００４】
こうした考慮すべき点やその他の点に関して、本発明の様々な実施形態が作成された。
【課題を解決するための手段】
【０００５】
本発明によれば、上記およびその他の問題は、電子文書で使用するために複数のデータソースのデータをマージする方法、システム、およびコンピュータ読み取り可能媒体によって解決される。本発明の一態様によれば、この方法は、初期データソースからフィールド名およびフィールドデータを受け取ること、その後で追加されたデータソースのフィールド名を初期データソースにマッピングすること、ならびに初期データソースのフィールド名、およびその後で追加されたデータソースのマッピング後フィールド名に基づいて受取リストスキーマを構築することを含む。受取リストスキーマは、受取リスト内のフィールド名と、初期データソースおよびその後で追加されたデータソース内のフィールド名との関係を定義する。受取リストの構築は、初期データソースのフィールド名に対して、その後で追加されたデータソースのマッピング後フィールド名を比較することを含み、後で追加されたデータソースのマッピング後フィールド名のいずれも初期データソースのフィールド名に対応しない場合、この方法は、マッピング後フィールド名を追加することを含む。
【０００６】
この方法はさらに、受取リストスキーマに従って受取リストを作成すること、および受取リストを再作成することを可能にするファイルを保存することを含む。受取リストスキーマによる受取リストの作成は、マスタデータソースを作成するためにその後で追加されたデータソースからのフィールドデータの行を一時受取リストに追加すること、およびマスタデータソース中のフィールドデータの各行についてハッシュ値を計算することを含む。保存した更新後受取リストファイルは、初期データソースに対する参照、その後で追加されたデータソースに対する参照、およびマスタデータソース中のフィールドデータの各行について計算したハッシュ値を含む。この方法はさらに、初期データソース中のフィールドデータ、およびその後で追加されたデータソース中のフィールドデータを修正するために受取リストを修正すること、および受取リスト内の初期データソースとその後で追加されたデータソースとの間の重複を解決することを含む。
【０００７】
本発明は、コンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品やコンピュータ読み取り可能媒体などの製品として実装することができる。コンピュータプログラム製品は、コンピュータシステムで読み取り可能であり、コンピュータプロセスを実行する命令のコンピュータプログラムを符号化するコンピュータ記憶媒体でよい。コンピュータプログラム製品はまた、コンピューティングシステムで読み取り可能であり、コンピュータプロセスを実行する命令のコンピュータプログラムを符号化する搬送波上で伝播される信号でもよい。
【０００８】
本発明を特徴付ける上記およびその他の様々な機能ならびに利点は、以下の詳細な説明を読み、関連する図面を検討することによって明らかとなるであろう。
【発明を実施するための最良の形態】
【０００９】
次に図面を参照して、本発明の様々な態様を説明する。各図面では、同様の番号が同様の要素を表す。具体的には、図１およびそれに対応する議論は、本発明の実施形態を実施することのできる適切なコンピューティング環境の簡潔で一般的な説明を与えるためのものである。パーソナルコンピュータのオペレーティングシステム上で動作するプログラムモジュールと共に実行されるプログラムモジュールの一般的文脈で本発明を説明するが、他のタイプのコンピュータシステムおよびプログラムモジュールと組み合わせて本発明を実施することもできることを当業者は理解されよう。
【００１０】
一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造、およびその他のタイプの構造を含む。さらに本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な消費者向け電子機器、ミニコンピュータ、メインフレームコンピュータなどを含むその他のコンピュータシステム構成で実施できることを当業者は理解されよう。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実施される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールがローカルメモリ記憶装置とリモートメモリ記憶装置のどちらにも位置することができる。
【００１１】
次に図１を参照して、本発明の様々な実施形態で使用するコンピュータ２用の例示的コンピュータアーキテクチャを説明する。図１に示すコンピュータアーキテクチャは、中央演算処理装置５（「ＣＰＵ」）と、ランダムアクセスメモリ９（「ＲＡＭ」）および読取り専用メモリ（「ＲＯＭ」）１１を含むシステムメモリ７と、メモリをＣＰＵ５に結合するシステムバス１２とを含む従来型デスクトップコンピュータまたはラップトップコンピュータを示す。起動時などにコンピュータ内の要素間で情報を転送する助けになる基本ルーチンを含む基本入出力システムが、ＲＯＭ１１に格納される。コンピュータ２はさらに、以下でより詳細に説明するオペレーティングシステム１６、アプリケーションプログラム、およびその他のプログラムモジュールを格納する大容量記憶装置１４を含む。
【００１２】
大容量記憶装置１４は、バス１２に接続された大容量記憶コントローラ（図示せず）を介してＣＰＵ５に接続される。大容量記憶装置１４およびその関連するコンピュータ読み取り可能媒体は、コンピュータ２における不揮発性記憶領域を提供する。本明細書に含まれるコンピュータ読み取り可能媒体の説明は、ハードディスクやＣＤ−ＲＯＭドライブなどの大容量記憶装置を指すが、コンピュータ読み取り可能媒体はコンピュータ２によってアクセスすることのできる入手可能などんな媒体でもよいことを理解されたい。
【００１３】
例えば、それだけに限らないが、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体を含む。コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するために何らかの方法または技術で実装された、揮発性および不揮発性の、取外し可能および取外し不能な媒体を含む。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、またはその他の固体メモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（「ＤＶＤ」）、またはその他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶装置、あるいは、所望の情報を格納するために使用することができ、コンピュータ２によってアクセスすることができる他のどんな媒体も含まれる。
【００１４】
本発明の様々な実施形態によれば、コンピュータ２は、インターネットなどのネットワーク１８を介したリモートコンピュータに対する論理接続を使用するネットワーク環境で動作することができる。コンピュータ２は、バス１２に接続されたネットワークインターフェースユニット２０を介してネットワーク１８に接続する。ネットワークインターフェースユニット２０は、他のタイプのネットワークおよびリモートコンピュータシステムに接続するために利用することもできることを理解されたい。コンピュータ２はまた、キーボード、マウス、または電子スタイラス（図１には図示せず）を含むいくつかの他の装置から入力を受け取って処理する入出力コントローラ２２も含む。同様に、入出力コントローラ２２は、ディスプレイ画面、プリンタ、その他のタイプの出力装置に出力を提供する。
【００１５】
上記で簡潔に述べたように、いくつかのプログラムモジュールおよびデータファイルは、コンピュータ２の大容量記憶装置１４およびＲＡＭ９に記憶される。それらのプログラムモジュールおよびデータファイルは、ワシントン州レドモンドのＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮによるＷＩＮＤＯＷＳ（登録商標）  ＸＰオペレーティングシステムなどの、ネットワークパーソナルコンピュータの動作を制御するのに適したオペレーティングシステム１６を含む。大容量記憶装置１４およびＲＡＭ９は、１つまたは複数のプログラムモジュールも格納する。具体的には、大容量記憶装置１４およびＲＡＭ９は、デスクトップパブリッシングアプリケーション１０を格納する。当業者には周知のように、デスクトップパブリッシングアプリケーション１０は、電子文書を作成および編集する機能を提供するために動作する。本発明の一実施形態によれば、デスクトップパブリッシングアプリケーション１０は、ＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮによるＰＵＢＬＩＳＨＥＲというワードプロセッシングアプリケーションプログラムを含む。しかし、本発明の様々な態様を具体化するために、他の製造業者によるデスクトップパブリッシングアプリケーションも使用できることを理解されたい。本発明の様々な態様はデスクトップパブリッシングアプリケーションに限定されず、ＭＩＣＲＯＳＯＦＴ  ＣＯＲＰＯＲＡＴＩＯＮによるＷＯＲＤプログラムならびにスプレッドシートプログラムおよびデータベースプログラムなどの、テキストを処理することができるその他のプログラムも使用できることをさらに理解されたい。
【００１６】
受取リストの作成に関連して、デスクトップパブリッシングアプリケーション１０は、ユーザがデータソース２６（データソース１）、２８（データソース２）、および３０（データソースＮ）を電子文書の様々な位置にマージすることを可能にする機能を提供する。各データソース２６、２８、および３０は、１つまたは複数のフィールドに分割されたデータのリストまたはテーブルであることが理解されよう。例えば、データソースは、名前、会社、および住所をデータフィールド「Ｌａｓｔ  Ｎａｍｅ」、「Ｆｉｒｓｔ  Ｎａｍｅ」、「Ｔｉｔｌｅ」、「Ｃｏｍｐａｎｙ  Ｎａｍｅ」、および「Ａｄｄｒｅｓｓ」内に含む連絡先情報を格納することができる。複数のデータソースをマージする際に、デスクトップパブリッシングアプリケーション１０は、マージされたデータを格納する受取リストファイル２４を作成することを理解されたい。受取リストファイル２４を作成するためにデータソース２６（Ｄａｔａ  Ｓｏｕｒｃｅ  １）、２８（Ｄａｔａ  Ｓｏｕｒｃｅ  ２）、および３０（Ｄａｔａ  Ｓｏｕｒｃｅ  Ｎ）をマージするデスクトップパブリッシングアプリケーション１０によって使用される例示的方法を、図２に関して以下でより詳細に説明する。
【００１７】
ここで図２を参照して、複数のデータソースのデータをマージするためにデスクトップパブリッシングアプリケーション１０によって実施されるプロセスを示す例示的ルーチン２００を説明する。本明細書で説明する本発明の実施形態をデスクトップパブリッシングアプリケーション１０の状況で提示するが、本発明は、ワードプロセッシング、スプレッドシート、データベースプログラムなどのテキスト処理をサポートする他のタイプのアプリケーションプログラムでも使用できることを理解されたい。
【００１８】
本明細書で提示されるルーチンの説明を読む際に、本発明の様々な実施形態の論理演算が、（１）コンピューティングシステム上で動作する、一連のコンピュータで実施される動作またはプログラムモジュールとして、および／または（２）コンピューティングシステム内の相互接続された機械論理回路または回路モジュールとして実装されることを理解されたい。実装は、本発明を実装するコンピューティングシステムの性能要件に依存して選択される。したがって、図２に示し、本明細書で説明する本発明の実施形態を構成する論理演算は、オペレーション、構造装置、動作、またはモジュールと様々な形で呼ばれる。本明細書に記載の特許請求の範囲内で列挙される本発明の精神および範囲から逸脱することなく、こうしたオペレーション、構造装置、動作、およびモジュールはソフトウェア、ファームウェア、特殊目的デジタル論理、およびそれらの任意の組合せとして実装できることを当業者は理解されよう。
【００１９】
ここで図２を参照すると、ルーチン２００はオペレーション２１０で始まり、デスクトップパブリッシングアプリケーション１０がデータソース２６（Ｄａｔａ  Ｓｏｕｒｃｅ  １）、２８（Ｄａｔａ  Ｓｏｕｒｃｅ  ２）、および３０（Ｄａｔａ  Ｓｏｕｒｃｅ  Ｎ）を受け取り、各データソース中のフィールドを「マッピング」する。具体的には、各データソース中のフィールドをマッピングする際に、デスクトップパブリッシングアプリケーション１０は、最初のデータソースを初期データソースとして取り出し、取り出した後続の各データソースのフィールドを初期データソースのフィールドと関連付け、初期データソース中に出現しない後続のデータソース中のフィールドを追加する。例えば、データソース２６（Ｄａｔａ  Ｓｏｕｒｃｅ  １）は、データフィールド「Ｆｉｒｓｔ  Ｎａｍｅ」および「Ｌａｓｔ  Ｎａｍｅ」を含み、一方、データソース２８（Ｄａｔａ  Ｓｏｕｒｃｅ  ２）は、「Ｆｉｒｓｔ  Ｎａｍｅ」、「Ｌａｓｔ  Ｎａｍｅ」、および「Ｔｉｔｌｅ」を含む。データフィールドをマッピングする際に、ワードプロセッシングアプリケーションプログラムは、データソース２６を初期データソースとして指定し、各データソースによって共有される共通フィールド（すなわち、「Ｆｉｒｓｔ  ｎａｍｅ」および「Ｌａｓｔ  Ｎａｍｅ」）をマッピングし、データソース２８の固有のフィールド「Ｔｉｔｌｅ」を追加する。本発明の様々な実施形態では、デスクトップパブリッシングアプリケーション１０のユーザは、初期データソースにマッピングまたは追加すべき後続のデータソースのフィールドを指定する。さらに、マッピング済みフィールドをマッピング解除することもできることを理解されよう。
【００２０】
ルーチン２００は、オペレーション２１０からオペレーション２２０に進み、デスクトップパブリッシングアプリケーション１０は、データソース２６、２８、および３０のマッピング済みフィールドから、受取リスト（すなわちマスタデータソース）スキーマを構築する。本明細書では、「スキーマ」は、各入力データソースからマッピングされたフィールド名を定義する。例えば、データソース２６およびデータソース２８についての受取リストスキーマは、（データソース２６および２８の）フィールド「Ｆｉｒｓｔ  Ｎａｍｅ」および「Ｌａｓｔ  Ｎａｍｅ」、ならびに（データソース２８のみの）フィールド「Ｔｉｔｌｅ」を含む。
【００２１】
ルーチン２００は、オペレーション２２０からオペレーション２３０に進み、デスクトップパブリッシングアプリケーション１０は、受取リストスキーマから一時受取リストを作成する。具体的には、デスクトップパブリッシングアプリケーション１０は、各入力データソースのフィールドに関連するデータを受け取るために、受取リストスキーマからフィールドのテーブルを作成する。ルーチン２００は、オペレーション２３０からオペレーション２４０に進み、デスクトップパブリッシングアプリケーション１０は、受取リストを作成するために各入力データソースからデータの１つまたは複数の行を取り出す。具体的には、デスクトップパブリッシングアプリケーション１０は、各データソースからデータを取り出し、受取リストスキーマに従って一時受取リストを埋める。
【００２２】
ルーチン２００は、オペレーション２４０からオペレーション２５０に進み、デスクトップパブリッシングアプリケーション１０は、受取リスト中の各行についてハッシュを作成する。当業者には周知の通り、ハッシュは、テキスト文字列から生成される数値である。それは、データメソッドにアクセスするために使用される。ハッシュ（またはハッシュ値）は、他の何らかのテキストが同一のハッシュ値を生成する可能性が極めて低くなるような式で生成される。ハッシュ値を生成する様々な方法は当業者に周知であり、したがって、本明細書ではさらに詳細には論じない。入力データソース中のデータに対するリンクとして働くハッシュを使用して、受取リスト中のマージデータを区別することができることを理解されよう。
【００２３】
ルーチン２００は、オペレーション２５０からオペレーション２６０に進み、デスクトップパブリッシングアプリケーション１０は、受取リストをファイル（受取リストファイル２４など）に保存する。受取リストを保存する際、受取リストを再作成することを可能にするファイルが作成されることを理解されよう。さらに受取リストファイル２４は、初期データソースに対する参照、後続のまたは追加された各データソースに対する参照、および受取リスト中のフィールドデータの各行について計算されたハッシュ値を含む。ルーチン２００は、オペレーション２６０からオペレーション２７０に進み、デスクトップパブリッシングアプリケーション１０は、ユーザからの入力に応答して、受取リストを修正する。具体的には、ユーザは、データを変更または削除することによって受取リスト中のデータを更新することができる。受取リスト中の修正により、供給側データソース中のデータも修正されることを理解されよう。例えば、データソース２６から取り出された受取リスト中のラストネームデータをユーザが修正する結果として、データソース２６中の同一のラストネームデータが修正される。受取リスト中のデータを修正する際に、デスクトップパブリッシングアプリケーション１０は、影響を受けるデータソース中の対応するデータの位置を突き止めて更新するために、受取リスト中のデータの修正された各行について計算されたハッシュ値を参照することを理解されよう。
【００２４】
ルーチン２００は、オペレーション２７０からオペレーション２８０に進み、デスクトップパブリッシングアプリケーション１０は、受取リスト中の重複データを解決する。具体的には、データソース２６、２８、および３０は、受取リスト中の重複エントリとして現れる可能性のある同一のデータを含むことがあることを理解されよう。例えば、ユーザは、２つの異なるデータソース中にある同一人物についての名前および住所の情報を有する可能性がある。
【００２５】
一実施形態では、デスクトップパブリッシングアプリケーション１０は、受取リストからハッシュ値のハッシュテーブルを作成し、２つのハッシュ値が指すデータエントリを比較することによって、重複データエントリを突き止めるように構成されることを理解されよう。本発明の様々な例示的実施形態では、あらゆる行をあらゆる他の行と比較することによって重複を見つける。各行について計算されたハッシュ値はメモリに記憶される。あらゆる行中のあらゆる列について、１つのハッシュ値が記憶されることを理解されたい。次いでハッシュ値が比較される。２つのデータエントリが合致するとき、そのハッシュ値も合致する。２つの行が所定の重複規則（例えば２つの行中のデータの７５％が合致しなければならない）を満足するとき、それらはマスタデータソースからロードされ、実際のデータエントリがユーザによって比較され、それらが実際に互いに重複するかどうかが判定される。その後ルーチン２００は終了する。
【００２６】
次に図３を参照して、ユーザがデータソースを受取リストスキーマにマッピングすることを可能にする例示的ユーザインターフェースを説明する。図３に、データソースのフィールドをマッピングするいくつかのユーザインターフェースコンポーネントを含むユーザインターフェースウィンドウ３００を示す。具体的には、ウィンドウ４０はデータソースのフィールドを表示し、それをウィンドウ４０からドラッグして、フィールド４２またはフィールド４４にドロップすることによって、受取リストスキーマにマッピングする。ウィンドウ４４に追加されるフィールドは、受取リストスキーマ中の新しい列として追加される。マッピングは、ウィンドウ４２または４４のフィールドをウィンドウ４０にドラッグすることによってやり直すことができる。データソースのフィールドのデフォルトマッピングを選択するためのデフォルトマップボタン４６が提供される。デフォルトマッピングは、デスクトップパブリッシングアプリケーション１０によって自動的に決定される。
【００２７】
次に図４を参照して、２つのデータソースから作成された受取リストを表示する例示的ユーザインターフェースを説明する。図４は、受取リスト、ならびにマッピングされたフィールドの行、および関連するデータを表示するユーザインターフェースウィンドウ４００を示す。ウィンドウ５２は、受取リストを作成するために使用されたデータソースを特定する。ファイル、データベース、または連絡先リストから受取リストにデータソースを追加するためのリンク５４および５６が提供される。新しいリストをタイプすることによってデータソースを作成するためのリンク５８が提供される。
【００２８】
次に図５を参照して、ユーザがデータソースを編集することを可能にする例示的ユーザインターフェースを説明する。図５は、データソーステーブル６０およびフィールドデータの行を表示するユーザインターフェースウィンドウ５００を示す。新規エントリをデータソーステーブル６０に追加する新規エントリ追加ボタン６２、および、データソーステーブル６０中に表示されるエントリを削除するエントリ削除ボタン６４が提供される。ユーザインターフェースウィンドウ５００は、別の場所に格納された元のデータソースにリンクする受取リストのマッピングされたデータまたはコピーされたデータを含み、それによって変更が元のデータソースに反映されることが理解されよう。
【００２９】
次に図６を参照して、図２に関連して上記で論じたデスクトップパブリッシングアプリケーション１０によって、ユーザが、受取リスト中に見つかった重複を除去することを可能にする例示的ユーザインターフェースを説明する。図６は、重複データエントリを列挙するデータソーステーブル７０を表示するユーザインターフェース６００を示す。ユーザが受取リストから除去すべきエントリを選択することを可能にするチェックボックス７２の列が提供される。
【００３０】
上記に基づいて、本発明の様々な実施形態は、電子文書で使用するために複数のデータソースのデータをマージする方法、システム、およびコンピュータ読み取り可能媒体を含むことを理解されたい。上記の仕様、例、およびデータは、本発明の構成の製造および使用について十分な説明を与える。本発明の精神および範囲から逸脱することなく、本発明の多数の実施形態を作成できるので、本発明は、添付の特許請求の範囲に属する。
【図面の簡単な説明】
【００３１】
【図１】本発明の様々な実施形態で使用され、提供されるコンピュータシステムを示すコンピュータシステムアーキテクチャ図である。
【図２】本発明の例示的実施形態による、複数のデータソースからのデータをマージするために図１のコンピュータシステム内のデスクトップパブリッシングアプリケーションで実施される例示的ルーチンである。
【図３】本発明の様々な実施形態による、ユーザが複数のデータソースからのデータをマージして、マージ後データを管理する機能を提供する本発明の一態様を示す画面図である。
【図４】本発明の様々な実施形態による、ユーザが複数のデータソースからのデータをマージして、マージ後データを管理する機能を提供する本発明の一態様を示す画面図である。
【図５】本発明の様々な実施形態による、ユーザが複数のデータソースからのデータをマージして、マージ後データを管理する機能を提供する本発明の一態様を示す画面図である。
【図６】本発明の様々な実施形態による、ユーザが複数のデータソースからのデータをマージして、マージ後データを管理する機能を提供する本発明の一態様を示す画面図である。
【図１】
2006107466.tif 000003
【図２】
2006107466.tif 000004
【図３】
2006107466.tif 000005
【図４】
2006107466.tif 000006
【図５】
2006107466.tif 000007
【図６】
2006107466.tif 000008