(57)【要約】【課題】方法、装置、システム、および信号搬送媒体を提供する。【解決手段】一実施形態において、データ・ブロックを含む文書のサブセットが、無視開始タグと無視終了タグによってマーク付けされる。その後のスペル・チェック動作は、サブセットの補集合のスペル正確度をチェックして、サブセットのスペル正確度を無視する。一実施形態において、データ・ブロックは、文書内の選択された元位置または他の文書からバッファへコピーされ、その後、バッファから文書へ貼り付けられる。その後、データ・ブロックは、貼り付けコマンドに関連するスペル・チェック無視オプションに応答して、無視されるようにマーク付けされる。他の実施形態において、編集コマンドに関連する無視オプションに応答して、データ・ブロックは選択されてマーク付けされる。このように、文書のサブセットのスペル・チェックが選択的に有効または無効にされてもよい。【選択図】図１
2008052740.tif 000002
【特許請求の範囲】
【請求項１】
複数の単語を備える文書のサブセットにマーク付けするステップと、
前記マーク付けするステップの後に前記文書に対してスペル・チェック動作を実行するステップと
を含み、
前記実行するステップは、前記複数の単語における前記サブセットの補集合のスペル正確度をチェックするステップと、前記サブセットの前記スペル正確度を無視するステップとをさらに含み、前記スペル・チェック動作を実行する前記ステップは、前記サブセットにマーク付けする前記ステップとは別のものである、方法。
【請求項２】
前記マーク付けするステップは、
バッファからデータ・ブロックを前記文書に貼り付けるステップであって、前記サブセットは前記データ・ブロックを備える、ステップと、
前記貼り付けるステップに応答して、前記文書内の前記データ・ブロックにマーク付けするステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記データ・ブロックを前記文書内の選択された元位置から前記バッファへコピーするステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記データ・ブロックを他の文書内の選択された元位置から前記バッファへコピーするステップをさらに含む、請求項２に記載の方法。
【請求項５】
前記マーク付けするステップは、
データ・ブロックをバッファから前記文書内の宛先位置へ貼り付けるステップであって、前記サブセットは前記データ・ブロックを備える、ステップと、
前記貼り付けるステップを要求する貼り付けコマンドのスペル・チェック無視オプションが受信された場合に、前記文書内の前記宛先位置で前記データ・ブロックにマーク付けするステップと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記マーク付けするステップは、データ・ブロックの前に無視開始タグを、前記データ・ブロックの後ろに無視終了タグを、それぞれ挿入するステップをさらに含み、前記サブセットは前記データ・ブロックを備える、請求項１に記載の方法。
【請求項７】
前記マーク付けするステップは、
複数のデータ・ブロックをマーク付けするステップをさらに含み、前記サブセットは、前記複数のデータ・ブロックを備え、当該マーク付けするステップは、前記複数のデータ・ブロックの各々の前にそれぞれの無視開始タグを、前記複数のデータ・ブロックの各々の後ろにそれぞれの終了無視タグを、挿入するステップ
をさらに含む、請求項１に記載の方法。
【請求項８】
前記マーク付けステップは、
前記サブセットの選択と、前記サブセットを前記スペル・チェック動作で無視するように要求する無視オプションの受信とに応じて、文書の前記サブセットにマーク付けするステップ
をさらに含む、請求項１に記載の方法。
【請求項９】
前記スペル・チェック動作を実行する前記ステップは、
前記文書から前記複数の単語のうちの第１の単語を読み出すステップと、
前記無視開始タグと前記無視終了タグとの間に前記第１の単語があるかどうかを判断するステップと、
前記無視開始タグと前記無視終了タグとの間に前記第１の単語がある場合には、前記無視終了タグの後の次の単語へスキップして、前記次の単語を、正しいスペルの単語からなる辞書と照合するステップと、
前記無視開始タグと前記無視終了タグとの間に前記第１の単語がない場合は、前記第１の単語を、正しいスペルの単語からなる辞書と照合するステップと
をさらに含む、請求項６に記載の方法。
【請求項１０】
複数の単語を備える文書のサブセットにマーク付けするステップであって、バッファからデータ・ブロックを前記文書内の宛先位置へ貼り付けるステップと、前記貼り付けるステップを要求する貼り付けコマンドに関連するスペル・チェック無視オプションが受信された場合に、前記宛先位置で前記データ・ブロックにマーク付けするステップと、をさらに含み、前記サブセットは前記データ・ブロックを備える、マーク付けするステップと、
前記文書のサブセットにマーク付けする前記ステップの後に前記文書に対してスペル・チェック動作を実行するステップであって、前記複数の単語における前記サブセットの補集合のスペル正確度をチェックするステップと、前記サブセットの前記スペル正確度を無視するステップと、をさらに含む、実行するステップと
をコンピュータに実行させるための、信号搬送媒体に記憶されたコンピュータ・プログラム。
【請求項１１】
貼り付けコマンドに関連する前記スペル・チェック無視オプションが受信された場合に、前記宛先位置で前記データ・ブロックにマーク付けする前記ステップは、
前記貼り付けるステップに応答して、前記スペル・チェック無視オプションを表示するステップと、
前記スペル・チェック無視オプションが選択された場合に、前記データ・ブロックをマーク付けするステップと
をさらに含む、請求項１０に記載のコンピュータ・プログラム。
【請求項１２】
コンピュータを構成するための方法であって、
複数の単語を備える文書のサブセットにマーク付けするように前記コンピュータを構成するステップであって、バッファからデータ・ブロックを前記文書内の宛先位置に貼り付けるように、前記貼り付けを要求する貼り付けコマンドに関連したスペル・チェック無視オプションが受信された場合に、前記宛先位置で前記データ・ブロックにマーク付けするように、および、データ・ブロックの前に無視開始タグを挿入し、前記データ・ブロックの後ろに無視終了タグを挿入するように、前記コンピュータを構成するステップをさらに含み、前記サブセットは前記データ・ブロックを含む、ステップと、
前記マーク付けの後に前記文書に対してスペル・チェック動作を実行するように前記コンピュータを構成するステップであって、前記スペル・チェック動作の実行は、前記複数の単語における前記サブセットの補集合のスペル正確度をチェックし、前記サブセットの前記スペル正確度を無視することをさらに含む、ステップと
を含む方法。
【請求項１３】
貼り付けコマンドに関連した前記スペル・チェック無視オプションが受信された場合に、前記宛先位置で前記ブロック・データにマーク付けするように前記コンピュータを構成する前記ステップは、
前記貼り付けに応答して、前記スペル・チェック無視オプションを提示するように前記コンピュータを構成するステップと、
前記スペル・チェック無視オプションが選択された場合に、前記データ・ブロックにマーク付けするように前記コンピュータを構成するステップと
をさらに含む、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、コンピュータ・システムに関し、より特定的には、無視するようにマーク付けされるデータ・ブロックを伴う文書のスペルをチェックすることに関する。
【背景技術】
【０００２】
１９４８年のＥＤＶＡＣコンピュータ・システムの開発は、コンピュータ時代の幕開けとしてよく引用される。そのとき以来、コンピュータ・システムは、非常に高度な装置に発展してきており、数多くの互いの異なる設定のコンピュータ・システムが見受けられよう。コンピュータ・システムは、典型的には、半導体および回路基板などのハードウェアと、コンピュータ・プログラムとして知られるソフトウェアとの組み合わせを含む。半導体処理およびコンピュータ・アーキテクチャにおける進歩がコンピュータのハードウェアの性能をさらに押し上げるにつれて、より高度で複雑なコンピュータ・ソフトウェアが発展して、ハードウェアのより高い性能を利用するため、その結果、今日のコンピュータは、ほんの数年前よりも遥かに強力になっている。
【０００３】
コンピュータの使用の１つとして、エディタによる文書の作成、修正、および編集がある。そのような文書の例には、手紙、電子メール、本、記事、ノート、およびドキュメンテーションがある。エディタによって提供される一般的なツールの１つとして、スペル・チェッカーがあり、文書内の単語を正しいスペルからなる単語の辞書と照合する。ある単語のスペルが間違っている（辞書にないので）とスペル・チェッカーが判断すると、スペル・チェッカーは、当該単語をスペル間違いと識別して、スペルの間違った単語の置換候補のリストを提供して、ユーザによって選択されるオプションによって、スペルの間違った単語を置換候補のうちの選択された１つに変更するか、またはスペルの間違った単語を無視してもよい。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
スペル・チェッカーは非常に役に立ちうるものであるが、ユーザが文書の作成および修正を共同作業で進める場合に生じる問題がある。共同作業の一例において、複数のユーザが同一の文書を編集し、各ユーザは、別々の節、章、頁、段落、または文章などのデータのあるブロックを担当する場合がある。共同作業の他の例は、ユーザが電子メールを互いに送信する場合に生じる。あるユーザが、電子メール内で情報を作成して、他者へ分配し、そして他者は、受信された受信した電子メールを応答または転送して、自身の情報を追加する一方で、他者によって作成された受信情報を保持または埋め込む。情報を追加している間の転送または応答もしくはその両方のこの処理は、無期限に継続する場合があり、電子メールは、以前に送信、転送、または返信された電子メールの長い文字列を含むことが多い。ユーザは、自身の情報に対して正しいスペルを含む修正をして欲しいと思うが、他者によって供給された情報を編集またはその正確度または正確さを検証したいとは必ずしも思わないし、これには時間がかかり、情報の発信者の意図に関する知識が必要な場合もある。
【０００５】
ユーザが技術データを文書に貼り付けてから、文書のスペルをチェックする場合に、たとえ技術データまたはその一部が辞書にある単語を意図していなくても、同様の問題が生じる。技術データは、プログラム・ソース・コードからの変数名、データベース・フィールド名、または正しいスペルの単語を意図していない頭文字または略語を伴う情報を含む場合がある。例えば、データベースは、ファースト・ネーム、姓、および電話番号を表わすとして読み手に認識可能な、フィールド名「ｆｎａｍｅ」、「ｌｎａｍｅ」、または「ｐｈｎｕｍ」を含む場合があるが、スペル・チェッカーは、これらをスペル間違いとして個別に報告することになる。これは、ユーザに対して、複数のスペル間違いの個々の報告に手動で応答することを強いるものであり、退屈で時間がかかる。
【０００６】
したがって、文書のスペル・チェックを処理するために、より適切が技術が必要とされる。
【課題を解決するための手段】
【０００７】
方法、装置、システム、および信号搬送媒体が提供される。一実施形態において、データ・ブロックを含む文書のサブセットが、無視開始タグと無視終了タグによってマーク付けされる。その後のスペル・チェック動作は、サブセットの補集合のスペル正確度をチェックして、サブセットのスペル正確度を無視する。一実施形態において、データ・ブロックは、文書内の選択された元位置または他の文書からバッファへコピーされ、その後、バッファから文書へ貼り付けられる。その後、データ・ブロックは、貼り付けコマンドに関連するスペル・チェック無視オプションに応じて、無視されるようにマーク付けされる。他の実施形態において、編集コマンドに関連する無視オプションに応じて、データ・ブロックは選択されてマーク付けされる。このように、文書のサブセットのスペル・チェックが選択的に有効または無効にされてもよい。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の様々な実施形態を添付の図面と共に説明する。
【０００９】
しかしながら、添付の図面は、本発明の実施形態例を示すに過ぎず、よって本発明の範囲を制限するものとみなされず、なぜならば、本発明は、同様に効果的な他の実施形態を認めてもよいからである。
【００１０】
図面を参照すると、同様の番号は、いくつかの図面を通じて同様の部を示している。図１は、本発明の一実施形態に係る、ネットワーク１３０に接続されたコンピュータ・システム１００の高レベルのブロック図表現を示す。一実施形態において、コンピュータ・システム１００のハードウェア構成要素は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシン社から入手可能なｅＳｅｒｖｅｒ  ｉＳｅｒｉｅｓ（ＩＢＭ社の商標）コンピュータ・システムによって実施されてもよい。しかしながら、本発明の実施形態の機構および装置は、任意の適切なコンピュータ・システムに対して等しく適用されることを当業者は理解するだろう。
【００１１】
コンピュータ・システム１００の主要構成要素は、１つ以上のプロセッサ１０１と、メイン・メモリ１０２と、端末インターフェース１１１と、ストレージ・インターフェース１１２と、Ｉ／Ｏ（入出力）装置インターフェース１１３と、通信／ネットワーク・インターフェース１１４とを含み、これらすべては、メモリ・バス１０３、Ｉ／Ｏバス１０４、およびＩ／Ｏバス・インターフェース１０５を介した構成要素間通信のために結合されている。
【００１２】
コンピュータ・システム１００は、１つ以上の汎用プログラム可能な中央処理装置（ＣＰＵ）１０１Ａ，１０１Ｂ，１０１Ｃ，および１０１Ｄを含み、本明細書では総称してプロセッサ１０１と称する。一実施形態において、コンピュータ・システム１００は、比較的大きなシステムに典型的な複数のプロセッサを含むが、他の実施形態においては、コンピュータ・システム１００は、代わりに単一のＣＰＵシステムであってもよい。各プロセッサ１０１は、メイン・メモリ１０２に記憶された命令を実行して、１つ以上のレベルのオンボード・キャッシュを含んでもよい。
【００１３】
メイン・メモリ１０２は、データおよびプログラムを記憶または符号化するためのランダム・アクセス半導体メモリである。他の実施形態において、メイン・メモリ１０２は、コンピュータ・システム１００の仮想メモリ全体を表わし、コンピュータ・システム１００に結合されるか、またはネットワーク１３０を介して接続された他のコンピュータ・システムの仮想メモリを含んでもよい。メイン・メモリ１０２は、概念的には単一のも乗りシックなエンティティであるが、他の実施形態では、メイン・メモリ１０２は、キャッシュおよび他のメモリ装置の階層構造などの、より複雑な機構である。例えば、メモリは、複数のレベルのキャッシュ内にあってもよく、１つのキャッシュが命令を保持する間に他が単数または複数のプロセッサによって使用される非命令データを保持するように、これらのキャッシュは、機能毎にさらに分割されてもよい。メモリは、様々ないわゆる非一様メモリ・アクセス（ＮＵＭＡ）コンピュータ・アーキテクチャのいずれにおいても知られているように、互いに異なるＣＰＵまたはＣＰＵのセットにさらに分散されるか、または関連付けれるかされてもよい。
【００１４】
メイン・メモリ１０２は、エディタ１５０、バッファ１５２、文書１５４、および辞書１５６を記憶または符号化する。エディタ１５０、バッファ１５２、文書１５４、および辞書１５６はコンピュータ・システム１００におけるメイン・メモリ１０２内に含まれているように図示されているが、他の実施形態においては、そのうちのいくつかまたはすべてが他のコンピュータ・システム上にあってもよく、ネットワーク１３０などを介してリモートでアクセスされてもよい。コンピュータ・システム１００は、コンピュータ・システム１００のプログラムが、複数のより小さいストレージ・エンティティの代わりに、あたかも大規模の単一のストレージ・エンティティに対するアクセス権を唯一有するように振舞うことを可能にする、仮想アドレス指定機構を使用してもよい。よって、エディタ１５０、バッファ１５２、文書１５４、および辞書１５６はメイン・メモリ１０２内に含まれているように図示されているが、これらの要素は、同時に同一のストレージ装置内にすべて完全に含まれている必要はない。さらに、エディタ１５０、バッファ１５２、文書１５４、および辞書１５６は別個のエンティティとして図示されているが、他の実施形態においては、そのうちのいくつか、またはいくつのうちの部分が共にパッケージ化されていてもよい。
【００１５】
エディタ１５０は、文書１５４を編集、オープン、またはクローズあるいはそのすべてを行ってもよい。エディタ１５０は、文書１５４のスペルを辞書１５６を通じてさらにチェックしてもよく、辞書１５６には、正しいスペルからなる単語のリストが含まれる。エディタ１５０は、同一の文書１５４内または互いに異なる文書１５４間のいずれかにおいて、バッファ１５２を媒介として使用して、データ・ブロックをさらにコピー、切り取りおよび貼り付けをしてもよい。一実施形態において、エディタ１５０は、図５、図６、図７および図８を参照して以下に詳細に説明するような機能を実行するために、プロセッサ１０１上で実行可能な命令か、またはプロセッサ１０１上で実行する命令によって解釈可能な命令文とを含む。他の実施形態において、エディタ１５０は、マイクロコードで実施されてもよい。他の実施形態において、エディタ１５０は、論理ゲートまたは他の適切なハードウェア手法あるいはその両方を介して、ハードウェアで実施されてもよい。一実施形態において、文書１５４は、電子メール、ウェブ・ページ、ワード処理文書、ファイル、またはデータベースであってもよく、単語と、制御またはフォーマット用タグまたはコードと、映像と、画像と、またはそれらの任意の部分、組み合わせ、または複数のものであってもよい。単語は、空間で分離された１つ以上の文字のシーケンスである。単語は、正しいスペルであることもあれば（辞書１５６内にある）、正しくないスペルのこともある（辞書１５６内にない）。文書１５４の一例を、図４を参照して以下にさらに説明する。
【００１６】
メモリ・バス１０３は、プロセッサ１０１、メイン・メモリ１０２、およびＩ／Ｏバス・インターフェース１０５の間でデータを転送するためのデータ転送路を提供する。Ｉ／Ｏバス・インターフェース１０５は、様々なＩ／Ｏ部への、およびそこからのデータの転送のためにシステムＩ／Ｏバス１０４にさらに結合される。Ｉ／Ｏバス・インターフェース１０５は、システムＩ／Ｏバス１０４を通じて、複数のＩ／Ｏインターフェース部１１１，１１２，１１３，および１１４と通信し、これらはＩ／Ｏプロセッサ（ＩＯＰ）またはＩ／Ｏアダプタ（ＩＯＡ）としても知られる。システムＩ／Ｏバス１０４は、例えば業界標準ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ）バスまたは任意の他の適切なバス技術であってもよい。
【００１７】
Ｉ／Ｏインターフェースは、様々なストレージおよびＩ／Ｏ装置との通信をサポートする。例えば、端末インターフェース１１１は、１つ以上のユーザ端末１２１，１２２，１２３，および１２４の取り付けをサポートする。ストレージ・インターフェース１１２は、１つ以上の直接アクセス・ストレージ装置（ＤＡＳＤ）１２５，１２６，および１２７（典型的には、回転磁気ディスク・ドライブ・ストレージ装置であるが、代わりに、ホストには単一のストレージ装置に見えるように構成されたディスク・ドライブのアレイを含む他の装置であってもよい）の取り付けをサポートする。メイン・メモリ１０２の内容は、直接アクセス・ストレージ装置１２５，１２６，および１２７に記憶され、およびそこから必要に応じて取り出されてもよい。
【００１８】
Ｉ／Ｏ装置インターフェース１１３は、様々な他の入出力装置または他の種類の装置にいずれかのインターフェースを提供する。２つのそのような装置、プリンタ１２８とファックス機１２９が、図１の実施形態例において示されているが、他の実施形態において、数多くの他のそのような装置が存在してもよく、異なる種類のものであってもよい。ネットワーク・インターフェース１１４は、コンピュータ・システム１００から他のデジタル装置およびコンピュータ・システムへの１つ以上の通信路を適用する。そのような経路は、例えば、１つ以上のネットワーク１３０を含んでもよい。
【００１９】
メモリ・バス１０３が、プロセッサ１０１、メイン・メモリ１０２、およびＩ／Ｏバス・インターフェース１０５間の直接通信路を提供する比較的単純な単一のバス構造として図１には示されているが、実際には、メモリ・バス１０３は、複数の互いに異なるバスまたは通信路を備えてもよく、これらは階層、スター、またはウェブ構造におけるポイント間リンクｍ複数の階層バス、並行または冗長路、または任意の他の適切な構成形式などの様々な形式で配列されてもよい。さらに、Ｉ／Ｏバス・インターフェース１０５およびＩ／Ｏバス１０４は、単一の別々の部として示されているが、コンピュータ・システム１００は、実際には、複数のＩ／Ｏバス・インターフェース１０５または複数のＩ／Ｏバス１０４あるいはその両方を含んでもよい。システムＩ／Ｏバス１０４を様々なＩ／Ｏ装置へ続く様々な通信路から分離する複数のＩ／Ｏインターフェースが示されているが、他の実施形態においては、Ｉ／Ｏ装置のいくつかまたはすべてが、１つ以上のシステムＩ／Ｏバスへ直接接続される。
【００２０】
図１に示すコンピュータ・システム１００は、マルチユーザ「メインフレーム」コンピュータ・システムに典型的であるような、複数の付加端末１２１，１２２，１２３，および１２４を有する。典型的には、このような場合においては、付加端末の実際の数は図１に示すよりも大きいが、本発明は、任意の特定のサイズのシステムに限定されない。代わりに、コンピュータ・システム１００は、典型的には、単一のユーザ・ディスプレイおよびキーボード入力を含む単一のユーザのシステムであってもよく、または、直接のユーザ・インターフェースはほとんどないかまたは全くないが、他のコンピュータ・システム（クライアント）から要求を受信するサーバまたは同様の装置であってもよい。他の実施形態において、コンピュータ・システム１００は、パーソナル・コンピュータ、携帯型コンピュータ、ラップトップ型またはノート型コンピュータ、ＰＤＡ（携帯情報端末）、テーブル・コンピュータ、ポケット・コンピュータ、電話、ページャー、自動車、電話会議システム、用具、または任意の他の適切な型の電子装置として実施されてもよい。
【００２１】
ネットワーク１３０は、任意の適切なネットワークまたはネットワークの組み合わせであってもよく、データまたはコードあるいはその両方をコンピュータ・システム１００に対して、またはそこから、あるいはその両方で通信するのに適切な任意の適切なプロトコルをサポートしてもよい。様々な実施形態において、ネットワーク１３０は、コンピュータ・システム１００に直接的または間接的に接続されている、ストレージ装置またはストレージ装置の組み合わせを表わしてもよい。一実施形態において、ネットワーク１３０は、インフィニバンド・アーキテクチャをサポートしてもよい。他の実施形態において、ネットワーク１３０は、無線通信をサポートしてもよい。他の実施形態において、ネットワーク１３０は、電話線またはケーブルなどのハード・ワイヤード通信をサポートしてもよい。他の実施形態において、ネットワーク１３０は、イーサネット（登録商標）ＩＥＥＥ（米国電気電子学会）８０２．３ｘ仕様をサポートしてもよい。他の実施形態において、ネットワーク１３０は、インターネットであってもよく、ＩＰ（インターネット・プロトコル）をサポートしてもよい。
【００２２】
他の実施形態において、ネットワーク１３０は、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）であってもよい。他の実施形態において、ネットワーク１３０は、ホットスポット・サービス・プロバイダ・ネットワークであってもよい。他の実施形態において、ネットワーク１３０は、イントラネットであってもよい。他の実施形態において、ネットワーク１３０は、ＧＰＲＳ（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）ネットワークであってもよい。他の実施形態において、ネットワーク１３０は、ＦＲＳ（Ｆａｍｉｌｙ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）ネットワークであってもよい。他の実施形態において、ネットワーク１３０は、任意の適切な携帯電話データ・ネットワークまたはセル・ベースの無線ネットワーク技術であってもよい。他の実施形態において、ネットワーク１３０は、ＩＥＥＥ８０２．１１Ｂ無線ネットワークであってもよい。さらに他の実施形態において、ネットワーク１３０は、任意の適切なネットワークまたはネットワークの組み合わせであってもよい。１つのネットワーク１３０が示されているが、他の実施形態において、（同種または異種の）任意の数のネットワークが存在してもよい。
【００２３】
図１は、コンピュータ・システム１００の代表的な主要構成要素と、高レベルのネットワーク１３０とを示すように意図されたが、個別の構成要素は、図１に示すよりも遥かに大きな複雑性を有する場合があり、図１に示す以外または図１に加えて示す構成要素がある場合があり、そのような構成要素の数、型、および構成は互いに異なる場合があることを理解すべきである。そのような付加された複雑性または付加されたバリエーションのいくつかの特定の例が、本明細書において開示されているが、これらは一例であって、必ずしも唯一のバリエーションではない。
【００２４】
本発明の様々な実施形態を実施する図１に示す様々なソフトウェア構成要素は、数多くの手法で実施されてもよい。これらの手法には、コンピュータ・ソフトウェア・アプリケーション、ルーチン、構成要素、プログラム、目的、モジュール、データ構造など、以後「コンピュータ・プログラム」または単に「プログラム」と称されるものを使用することが含まれる。「コンピュータ・プログラム」は、典型的には、コンピュータ・システム１００内の様々なメモリおよびストレージ装置において様々なときに常駐し、かつ、コンピュータ・システム１００内の１つ以上のプロセッサ１０１によって読み出し実行されると、コンピュータ・システム１００全体を本発明の一実施形態の様々な局面を備えるステップまたは要素を実行するのに必要なステップをコンピュータ・システム１００に実施させる１つ以上の命令を備える。
【００２５】
さらに、本発明の実施形態は、完全に機能するコンピュータ・システムの場合で説明してきており、以下もその場合で説明するが、本発明の様々な実施形態は、プログラム製品として様々な形式で配信可能であり、本発明は、実際に配信を実行するのに使用される信号搬送媒体の特定の種類を問わず、等しく適用される。本実施形態の機能を規定するプログラムは、プロセッサ１０１に動作可能または通信可能に（直接的または間接的に）接続されてもよい様々な具体的な信号搬送媒体を介して、コンピュータ・システム１００に配信されてもよい。信号搬送媒体は、以下のものを含んでもよいが、これらに限定されない。
【００２６】
（１）例えばＣＤ‐ＲＯＭドライブによって読み出し可能なＣＤ‐ＲＯＭなど、コンピュータ・システムに付加されるかまたはその内部にある読み出し専用メモリ装置などといった、コンピュータ読み出し可能な書き換え不可能なストレージ媒体上に恒久的に記憶または符号化された情報、
（２）例えばハード・ディスク・ドライブ（例えば、ＤＡＳＤ１２５，１２６または１２７）、メモリ１０２、ＣＤ‐ＲＷ、またはディスケットなど、コンピュータ読み出し可能な書き換え可能なストレージ媒体上に記憶または符号化された可変情報、または
（３）例えばネットワーク１３０など、コンピュータまたは電話ネットワークを通じるなどして、通信媒体によってコンピュータ・システム１００へ搬送される情報。
【００２７】
そのような具体的な信号搬送媒体は、本発明の機能を指示するコンピュータ読み出し可能かつ実行可能な命令で符号化されるか、またはそれらの命令を搬送する場合に、本発明の実施形態を表すものとなる。
【００２８】
本発明の実施形態は、クライアント企業、非営利団体、政府団体、内部組織構造などとのサービス契約の一部として配信されてもよい。これらの実施形態の局面は、本明細書に記載の方法のいくつかまたはすべてを実行するコンピュータ・システムの構築と、それらを実施するソフトウェア・システムおよびウェブ・サービスの導入とを含んでもよい。これらの実施形態の局面は、クライアント企業を分析し、当該分析に応じて勧告を作成し、当該勧告の部分を実施するためのソフトウェアを生成し、当該ソフトウェアを既存の処理およびインフラストラクチャに統合し、本明細書に記載の方法およびシステムの使用を計測し、費用をユーザに割り当て、これらの方法およびシステムの使用に関してユーザに課金することを含んでもよい。
【００２９】
加えて、以下に説明する様々なプログラムは、当該プログラムが本発明の特定の実施形態において実施される対象であるアプリケーションに基づいて識別されてもよい。しかしながら、以下の任意の特定のプログラムの用語は、便宜上使用するに過ぎず、よって、本発明は、そのような用語によって識別または暗示あるいはその両方が行われる任意の特定のアプリケーションにおいてのみの使用に限定されるべきではない。
【００３０】
図１に示す環境例は、本発明を限定するものではない。実際は、他の代替ハードウェアまたはソフトウェアあるいはその両方の環境を、本発明の範囲を逸脱することなく使用してもよい。
【００３１】
図２は、本発明の一実施形態に係る、貼り付けオプションを伴うエディタ・ユーザ・インターフェース２００のブロック図を示す。エディタ１５０は、端末１２１，１２２，１２３，または１２４を介してユーザ・インターフェース２００を提示または表示してもよい。ユーザ・インターフェース２００は、表示画面または映像端末上での文書１５４の視覚レンダリングである文書表示２０５を含む。エディタ１５０は、文書１５４のデータ（例えば、単語、線、記号、映像、または画像）をフォーマットするために、制御タグまたはコードを解釈することによって文書１５４をレンダリングして、文書表示２０５に表示する。
【００３２】
ユーザ・インターフェース２００は、オープン（「開く」）コマンド２１０と、クローズ（「閉じる」）コマンド２１５と、コピー・コマンド２２０と、貼り付けコマンド２２５と、スペル・チェック・コマンド２３０とを含む。コマンド２１０，２１５，２２０，２２５，または２３０の（例えば、キーボード、マウス、または他のポインティング・デバイスによる）選択に応じて、ユーザ・インターフェース２００は、選択されたコマンドをエディタ１５０へ送信し、エディタ１５０は、当該コマンドを処理する。例えば、オープン・コマンド２１０を選択すると、文書１５４を開いて、開かれた文書１５４を文書表示２０５としてレンダリングおよび表示することをエディタ１５０に対して要求することになる。クローズ・コマンド２１５を選択すると、文書１５４を閉じて、閉じられた文書１５４の表示画面２０５における表示を中止することをエディタ１５０に対して要求することになる。
【００３３】
コピー・コマンド２２０を選択すると、文書１５４内の選択された（例えば、キーボードまたはポインティング・デバイスによって制御されるポインタ２６０またはカーソルの動作によって選択された）元位置から選択されたデータ・ブロック２３５‐１をバッファ１５２へコピーまたは切り取ることをエディタ１５０に対して要求することになる。コピー動作において、エディタ１５０は、選択されたデータ・ブロック２３５‐１のコピーを作成して、当該コピーをバッファ１５２に追加する。切り取り動作において、エディタ１５０は、選択されたデータ・ブロック２３５‐１を選択された元位置からバッファ１５２へ移動させ、選択されたデータ・ブロック２３５‐１は切り取り動作後にはもはや文書１５４内には存在しないようにする。
【００３４】
貼り付けコマンド２２５を選択すると、バッファ１５２の内容（例えば、バッファ１５２に前もってコピーしたデータ・ブロック２３５‐１）を選択された（例えば、ポインタ２６０の動作によって選択された）宛先位置へ貼り付ける（コピーする）ことを、エディタ１５０に対して要求することになる。様々な実施形態において、選択された宛先位置は、選択された元位置と同一の文書１５４内であってもよく、または、選択された元位置とは別の文書１５４内であってもよい。すなわち、エディタ１５０は、バッファ１５２を使用して、選択されたデータ・ブロック２３５‐１を同一の文書１５４または互いに異なる文書１５４でコピーおよび貼り付けてもよく、バッファ１５２は、媒介ストレージ位置である。貼り付けコマンド２２５は、関連する貼り付けオプション２４０をさらに有してもよく、そのうちの１つは、スペル・チェック中は無視という貼り付けオプション２５０である。エディタ１５０は、貼り付けコマンド２２５の受信に応じて、データ・ブロック２３５‐１をバッファ１５２から文書１５４内の選択された宛先位置へ貼り付ける前または後に、貼り付けオプション２４０を表示してもよい。貼り付けオプション２４０のスペル・チェック中は無視というオプション２５０をユーザが選択する場合には、貼り付けオプション２４０のスペル・チェック中は無視というオプション２５０の受信に応じて、エディタ１５０は、貼り付けられたデータ・ブロック２３５‐１を無視タグでマーク付けし、これにより、エディタ１５０は、（スペル・チェック・コマンド２３０を介して要求された）スペル・チェック動作中は、貼り付けられたデータ・ブロック２３５‐１を無視またはスキップする。
【００３５】
スペル・チェック・コマンド２３０を選択すると、文書１５４内のいくつかまたはすべての単語のスペルの正確性をチェックまたは検証することをエディタ１５０に対して要求することになる。エディタ１５０は、スペル・チェック動作中は、無視タグでマーク付けされた単数または複数のデータ・ブロックを無視する。別の言い方をすれば、スペル・チェック・コマンド２３０は、文書１５４のサブセットの補集合のスペルのチェックをエディタ１５０に対して要求する。サブセットは、データ・ブロック２３５‐１などの１つ以上のマーク付けされたデータ・ブロックを含む。データ・ブロック２３５‐１は、１つ以上の単語を含み、エディタ１５０は、スペル・チェック動作の一部として、辞書１５６内の単語と照合することが可能である。
【００３６】
図３は、本発明の一実施形態に係る、編集オプションを含むエディタ・ユーザ・インターフェース３００の例のブロック図を示す。エディタ１５０は、端末１２１，１２２，１２３，または１２４を介してユーザ・インターフェース３００を提示または表示してもよい。
【００３７】
ユーザ・インターフェース３００は、表示画面または映像端末上での文書１５４の視覚レンダリングである文書表示３０５を含む。エディタ１５０は、文書１５４のデータ（例えば、単語、線、記号、映像、または画像）をフォーマットするために、制御タグまたはコードを解釈することによって文書１５４をレンダリングして、文書表示３０５に表示する。
【００３８】
ユーザ・インターフェース３００は、編集コマンド３１５と、スペル・チェック・コマンド２３０とを含む。コマンド３０５または２３０の（例えば、キーボード、マウス、または他のポインティング・デバイスによる）選択に応じて、ユーザ・インターフェース３００は、選択されたコマンドをエディタ１５０へ送信し、エディタ１５０は、当該コマンドを処理する。例えば、編集コマンド３１５を選択すると、編集オプション３４５を表示することをエディタ１５０に対して要求することになり、スペル・チェック・コマンド２３０を選択すると、文書１５４内の単語のスペルを検証することをエディタ１５０に対して要求することになる。
【００３９】
編集オプション３４５は、スペル・チェック中は無視というオプション３５０と、スペル・チェック中に検証というオプション３５２とを含む。ユーザがデータ・ブロック２３５‐２を選択して、スペル・チェック中は無視というオプション３５０を選択すると、データ・ブロック２３５‐２の選択と、スペル・チェック中は無視というオプション３５０の受信とに応じて、エディタ１５０は、選択されたデータ・ブロック２３５‐２を無視タグでマーク付けし、これにより、エディタ１５０は、（スペル・チェック・コマンド２３０を介して要求された）後続のスペル・チェック動作中は、選択されたデータ・ブロック２３５‐２を無視またはスキップする。ユーザは、マウス、他のポインティング・デバイス、またはキーボードの動作を介してポインタ２６０の操作によって選択されたデータ・ブロック２３５‐２を選択してもよい。
【００４０】
ユーザがデータ・ブロック２３５‐２を選択して、スペル・チェック中に検証というオプション３５２を選択した場合には、データ・ブロック２３５‐２の選択とスペル・チェック中に検証というオプション３５２の受信とに応じて、エディタ１５０は、無視タグがもしあれば、無視オプション３５０または無視オプション２５０（図２）のいずれの結果として無視タグが存在するかを問わず、選択されたデータ・ブロック２３５‐２から除去する。
【００４１】
図４は、本発明の一実施形態に係る、文書例１５４のブロック図を示す。文書例１５４は、データ・ブロック２３５‐１を含み、これは、データ・ブロック２３５‐１の前にあるスペル・チェック無視開始タグ４０５‐１によって区切られており、さらにデータ・ブロック２３５‐１の後にスペル・チェック無視終了タグ４１０‐１を含む。エディタ１５０は、貼り付けオプション２４０のスペル・チェック中は無視という貼り付けオプション２５０に応じて、タグ４０５‐１および４１０‐１を文書１５４に保存した。文書例１５４は、データ・ブロック２３５‐２をさらに含み、これは、データ・ブロック２３５‐２の前にあるスペル・チェック無視開始タグ４０５‐２によって区切られており、さらにデータ・ブロック２３５‐２の後にスペル・チェック無視終了タグ４１０‐２を含む。エディタ１５０は、編集オプション３４５のスペル・チェック中は無視という貼り付けオプション３５０に応じて、タグ４０５‐２および４１０‐２を文書１５４に保存した。データ・ブロック２３５‐１は、タグ４０５‐１および４１０‐１によってマーク付けされ、データ・ブロック２３５‐２は、タグ４０５‐２および４１０‐２によってマーク付けされる。
【００４２】
タグ４０５‐１，４０５‐２，４１０‐１，および４１０‐２などの文書１５４内の制御タグは、制御コードとしても知られている。エディタ１５０は、制御タグまたはコード内の命令に基づいて、文書１５４内でデータ（単語、線、記号、グラフィック、画像、または映像）をフォーマット、レンダリング、または処理することによって、文書表示（図２の２０５または図３の３０５）を作成する。制御タグまたはコードは、文書表示２０５および３０５においては表示されない。なぜならば、それらは、文書表示２０５および３０５がどのようにフォーマットされるか、または文書１５４内のデータがどのように処理されるかを指定しているからである。他の実施形態において、エディタ１５０は、制御タグが文書表示２０５または３０５に表示されるユーザ・インターフェース２００または３００において、表示モードまたはビュー・オプションが提供されてもよい。
【００４３】
データ・ブロック２３５‐１および２３５‐２は合わせて、スペル・チェック動作中にエディタ１５０がスキップまたは無視する文書１５４内の単語のサブセットを形成する。よって、エディタ１５０は、データ・ブロック２３５‐１および２３５‐２によって形成されたマーク付けされたサブセット内の単語のスペルの正確性をチェックすることも検証することも行わない。しかしながら、エディタ１５０は、マーク付けされたサブセットの補集合を形成する文書１５４内の単語のスペルはチェックまたは検証する。補集合は、データ・ブロック４１５‐１，４１５‐２，および４１５‐３、すなわち、マーク付けされたサブセット（データ・ブロック２３５‐１および２３５‐２の結合体）の部分でない、文書１５４内の単語すべてによって形成される。
【００４４】
セットとは、全体として考えて特有のオブジェクトの集合体である。あるセットのオブジェクトは、要素（ｅｌｅｍｅｎｔ）または構成要素（ｍｅｍｂｅｒ）と呼ばれる。図４の文書１５４に関して、文書１５４内の単語すべては、合わせてセットをなし、要素は、エディタ１５０が、例えば当該単語を辞書１５６内の正しいスペルの単語と照合することによってスペル・チェックを行うか、または無視できる単語である。注意したいのは、数学における集合理論では、集合（セット）は、同一の要素の複数のコピーを含まないが、それに対して、文書１５４は、同一の単語の複数のコピーを含む場合がある。しかしながら、本明細書で使用するように、文書１５４内のすべての単語は、文書１５４内の固有の場所または位置を有するので、要素をその位置との組み合わせの単語として解釈することによって、文書１５４は、セットの定義を満たす。
【００４５】
仮想のセットＡの各構成要素が、仮想のセットＢの構成要素でもある場合には、ＡはＢのサブセットであるという。例えば、データ・ブロック２３５‐１および２３５‐２は共に、文書１５４内の単語のサブセットである。セットまたはサブセットは、加算されて結合体（ｕｎｉｏｎ）を形成する。よって、Ａ∪Ｂで表されるＡおよびＢの結合体は、ＡまたはＢのいずれかの構成要素であるすべてのもののセットである。図４の例を使用して、データ・ブロック２３５‐１および２３５‐２の結合体は、文書１５４内の単語のサブセットであり、スペル・チェック動作によって無視されるようにマーク付けられたデータ・ブロックのすべてを含む。２つのセットは、「減算（ｓｕｂｔｒａｃｔｅｄ）」されて、補集合を形成する。ＢにおけるＡの補集合（ＢおよびＡの理論上の差）は、Ｂ−Ａと表されて（またはＢ＼Ａ）、Ｂの構成要素ではあるが、Ａの構成要素ではないすべての要素のセットである。ＡがＢのサブセットである場合には、Ａの補集合は、Ａ’と表され、Ａ∪Ａ’＝Ｂである。図４の例を使用すると、スペル・チェック動作によって無視されるようにマーク付けされた文書１５４内の単語のサブセットの補集合は、マーク付けされていない、スペルをチェックされることになるサブセットである。よって、マーク付けされたサブセットは、マーク付けされていないデータ・ブロック４１５‐１，４１５‐２，および４１５‐３の結合体である。
【００４６】
図５は、本発明の一実施形態に係る、オープン、コピー、貼り付け、および貼り付けオプション・コマンドのためのフローチャートを示す。制御はブロック５００で開始する。その後、制御はブロック５０５へ続き、エディタ１５０は、エディタ・ユーザ・インターフェース２００または３００（図２または図３）からコマンドを受信する。その後、制御はブロック５１０へ続き、エディタ１５０は、受信されたコマンドが文書オープン・コマンド２１０かどうかを判断する。ブロック５１０における判断が真の場合には、エディタ１５０は、文書オープン・コマンド２１０によって指定された文書１５４を開いて、任意の埋め込み制御タグまたはコードによって文書１５４をレンダリングして、開いた文書１５４または開いた文書１５４の一部を、例えば文書表示２０５または３０５を介して、表示端末１２１，１２２，１２３，または１２４に表示する。その後、制御はブロック５０５へ戻り、エディタ１５０は、上述のように、次のコマンドを受信する。
【００４７】
ブロック５１０における判断が偽の場合には、受信されたコマンドは文書オープン・コマンド２１０ではないので、制御はブロック５２０へ続き、エディタ１５０は、受信されたコマンドがコピー・コマンド２２０かどうかを判断する。ブロック５２０における判断が真の場合には、受信されたコマンドはコピー・コマンド２２０であるので、制御はブロック５２５へ続き、エディタ１５０は、元位置にあるデータ・ブロックの選択を受信して、当該選択されたデータ・ブロックを文書１５４内の元位置からバッファ１５２へコピーする。一実施形態において、エディタ１５０は、スペル・チェック無視開始タグおよびスペル・チェック無視終了タグなどの任意の選択された制御タグを、選択されたデータ・ブロックと共にバッファへコピーする。他の実施形態においては、エディタ１５０は、スペル・チェック無視開始タグおよびスペル・チェック無視終了タグをコピーしない。その後、制御はブロック５０５へ戻って、エディタ１５０は、上述のように、次のコマンドを受信する。
【００４８】
ブロック５２０における判断が偽の場合には、受信されたコマンドはコピー・コマンド２２０ではないので、制御はブロック５３０へと続き、エディタ１５０は、受信されたコマンドが貼り付けコマンド２２５かどうかを判断する。ブロック５３０における判断が真の場合には、受信されたコマンドは貼り付けコマンド２２５なので、制御はブロック５３５へ続き、エディタ１５０は、貼り付けコマンド２２５に関連する選択された宛先位置を受信して、バッファ内に既にあるデータ・ブロックを、バッファ１５２から選択された宛先位置へ貼り付ける（コピーする）。一実施形態においては、エディタ１５０は、また、データ・ブロック内に含まれるかまたは埋め込まれているスペル・チェック無視開始タグとスペル・チェック無視終了タグとを選択された宛先位置へ貼り付ける。他の実施形態において、エディタ１５０は、データ・ブロック内に含まれるかまたは埋め込まれているスペル・チェック無視開始タグおよびスペル・チェック無視終了タグを、選択された宛先位置へ貼り付ける（コピーする）ことはしない。その後、制御はブロック５４０へ続き、エディタ１５０は、ユーザ・インターフェース２００を介して貼り付けオプション２４０をオプションとして提示する。その後、制御はブロック５４５へ続き、エディタ１５０は、ユーザ・インターフェース２００を介して選択された、受信された貼り付けオプションがスペル・チェック中は無視というオプション２５０であるかどうかが判断される。
【００４９】
ブロック５４５における判断が真の場合には、ユーザ・インターフェース２００を介して選択された受信貼り付けオプションはスペル・チェック中は無視というオプション２５０であるので、制御はブロック５５０へ続いて、エディタ１５０は、もしまだなければ、宛先位置において、選択されたデータ・ブロックの前に無視開始タグを、選択されたデータ・ブロックの後に無視終了タグを追加することによって、貼り付けられたデータ・ブロック（例えば、データ・ブロック２３５‐１）をスペル・チェック動作によって無視されるようにマーク付けする。エディタ１５０は、無視開始タグおよび無視終了タグを文書１５４へ保存する。その後、制御はブロック５０５へ戻り、エディタ１５０は、上述のように、次のコマンドを受信する。
【００５０】
ブロック５４５における判断が偽の場合には、ユーザ・インターフェース２００を介して選択された受信貼り付けオプションはスペル・チェック中は無視というオプション２５０ではないので、制御はブロック５５５へ続き、エディタ１５０は、貼り付けオプション２４０のうちの他のオプションを処理する。その後、制御はブロック５０５へ戻り、エディタ１５０は、上述のように、次のコマンドを受信する。
【００５１】
ブロック５３０における判断が偽の場合には、受信されたコマンドは貼り付けコマンド２２５ではないので、制御はブロック５６０へ続き、エディタ１５０は、図６を参照していかにさらに説明するように、他のコマンドを処理する。その後、制御はブロック５０５へ戻り、エディタ１５０は、上述のように、次のコマンドを受信する。
【００５２】
図６は、本発明の一実施形態に係る、スペル・チェックおよびクローズ・コマンドを処理するためのフローチャートを示す。制御はブロック６００で開始する。その後、制御はブロック６０５へ続き、エディタ１５０は、受信されたコマンドがスペル・チェック・コマンド２３０かどうかを判断する。ブロック６０５の判断が真の場合には、受信されたコマンドはスペル・チェック・コマンド２３０なので、制御はブロック６１０へ続き、エディタ１５０は、図８を参照して以下にさらに説明するように、スペル・チェック動作を文書１５４のマーク付けされたサブセットの補集合に対して実行する。一実施形態において、スペル・チェック動作は、サブセットのマーク付けとは別のものである。すなわち、サブセットのマーク付けは、スペル・チェック動作の前に生じ、スペル・チェック動作の処理の一部ではなく、間違ったスペルの単語を見つけるスペル・チェック動作に応じて生じるものではない。その後、制御はブロック６９９へ続き、図６の論理に戻る。
【００５３】
ブロック６０５における判断が偽の場合には、受信されたコマンドはスペル・チェック・コマンド２３０ではないので、制御はブロック６１５へ続き、エディタ１５０は、受信されたコマンドは文書クローズ・コマンド２１５かどうかを判断する。ブロック６１５における判断が真の場合には、受信されたコマンドは文書クローズ・コマンド２１５であるので、制御はブロック６２０へ続き、エディタ１５０は、特定の文書１５４を閉じる。閉じられた文書１５４には、次回にエディタ１５０が文書１５４を開く際に無視開始タグおよび無視終了タグが存在するように文書１５４に予め保存された無視開始タグおよび無視終了タグが含まれており、これらは、後続のスペル・チェック動作によって無視されるようにデータ・ブロックにマーク付けしている。その後、制御はブロック６９９へ続き、図６の論理に戻る。
【００５４】
ブロック６１５における判断が偽の場合には、受信されたコマンドは文書クローズ・コマンド２１５でないので、制御はブロック６２５へ続き、エディタ１５０は、図７を参照して以下にさらに説明するように、編集コマンドを処理する。その後、制御はブロック６９９へ続き、図６の論理に戻る。
【００５５】
図７は、本発明の一実施形態に係る、編集コマンドを処理するためのフローチャートを示す。制御はブロック７００で開始する。その後、制御はブロック７０５へ続き、エディタ１５０は、受信されたコマンドが編集コマンド３１５かどうかを判断する。ブロック７０５の判断が真の場合には、受信されたコマンドはスペル・チェック・コマンド３１５なので、制御はブロック７１０へ続き、エディタ１５０は、文書１５４内の選択されたデータ・ブロックが後続のスペル・チェック動作によって無視されるべきか（スペル・チェック中に無視というオプション３５０）を指定する編集オプション３４５を編集コマンド３１５が含むかどうかを判断する。ブロック７１０の判断が真の場合には、編集コマンド３１５は文書１５４内の選択されたブロックが後続のスペル・チェック動作によって無視されるべきかを指定する編集オプション３４５を含むので、制御はブロック７１５へ続き、エディタ１５０は、データ・ブロックの選択を受信し、選択されたデータ・ブロックの前に無視開始タグを、選択されたデータ・ブロックの後に無視終了タグを追加することによって、選択されたデータ・ブロックを後続のスペル・チェック動作によって無視されるようにマーク付けする。その後、制御はブロック７９９へ続き、図７の論理に戻る。
【００５６】
ブロック７１０における判断が偽の場合には、受信されたコマンド３１５はデータ内の選択されたデータ・ブロックが後続のスペル・チェック動作によって無視されるべきかを指定する編集オプションを含まないので、制御はブロック７２０へ続き、エディタ１５０は、編集オプションがスペル・チェック中の検証というオプション３５２であるかどうかを判断する。ブロック７２０における判断が真の場合には、編集オプションがスペル・チェック中の検証というオプション３５２であるので、制御はブロック７２５へ続き、エディタ１５０は、ブロックの選択を受信して、選択されたブロックを区切る無視開始タグおよび無視終了タグがもしあれば、文書１５４から削除する。その後、制御はブロック７９９へ続き、図７の論理に戻る。
【００５７】
ブロック７２０における判断が偽の場合には、編集オプションはスペル・チェック中の検証というオプション３５２ではないので、制御はブロック７３０へ続き、エディタは、他の編集オプションを処理する。その後、制御はブロック７９９へ続き、図７の論理に戻る。
【００５８】
ブロック７０５における判断が偽の場合には、受信されたコマンドは編集コマンド３１５ではないので、制御はブロック７３５へ続き、エディタ１５０は、他のコマンドを処理する。その後、制御はブロック７９９へ続き、図７の論理に戻る。
【００５９】
図８は、本発明の一実施形態に係る、文書１５４のマーク付けされたサブセットの補集合に対するスペル・チェック動作を処理するためのフローチャートを示す。制御はブロック８００で開始する。その後、制御はブロック８０５へ続き、エディタ１５０は、文書１５４内の現在の単語を、カーソルまたはポインタ２６０に関連する挿入点における単語に設定する。よって、エディタ１５０は、スペル・チェック処理をポインタ２６０によってユーザが選択した文書１５４内の位置で開始する。他の実施形態において、エディタ１５０は、文書１５４の最初または任意の他の適切な位置でスペル・チェック処理を開始してもよい。
【００６０】
その後、制御はブロック８１０へ続き、エディタ１５０は、現在の単語は、文書１５４内の無視開始タグの後かつ対応する無視終了タグの前にあるかどうかを判断する。すなわち、エディタ１５０は、現在の単語が対応する無視開始タグおよび無視終了タグの間にあるかどうか、つまり現在の単語が無視されるように前もってタグによってマーク付けされた（例えば、無視オプション２５０または３５０に応じてエディタ１５０によってマーク付けされた）データ・ブロック内にあるかどうかを判断する。
【００６１】
ブロック８１０における判断が真の場合には、現在の単語は対応する無視開始タグおよび無視終了タグの間にあるので、制御はブロック８１５へ続き、エディタ１５０は、現在の単語を無視終了タグの後にある次の単語に設定し、対応する無視開始タグおよび無視終了タグによって無視されるようにマーク付けされたデータ・ブロックの後へスペル・チェック動作をスキップさせる。その後、制御はブロック８１０へ戻り、エディタ１５０は、上述のように、新しい現在の単語について判断を行う。
【００６２】
ブロック８１０における判断が偽の場合には、現在の単語は対応する無視開始タグおよび無視終了タグの間にないので、現在の単語は、文書１５４内のマーク付けされたデータ・ブロックの補集合の一部である。よって、制御はブロック８２０へ続き、エディタ１５０は、現在の単語を辞書１５６内の正しいスペルの単語と照合することによって、現在の単語のスペルをチェックする。現在の単語が辞書１５６内にない場合には、現在の単語はスペルが間違っているので、エディタ１５０は、オプションとして、現在の単語を提示して、オプションとして、辞書１５６から１つ以上のより正しいスペルの単語を現在の単語の修正候補として提示して、オプションとして、辞書１５６から選択された正しいスペルの単語で現在の単語を置き換え、オプションとして、現在の単語を辞書１５６に追加するか、または現在の単語を無視するか、あるいはそのすべてを行う。その後、制御はブロック８２５へ続き、エディタ１５０は、現在の単語を文書１５４内の次の単語に設定する。
【００６３】
その後、制御はブロック８３０へ続き、エディタ１５０は、スペル・チェック動作が完了したか銅かを判断する。様々な実施形態において、エディタ１５０がスペル・チェックの終了要求を受信する場合、現在の単語が文書１５４の最後に達した場合、ブロック８２０の繰り返し動作によって、マーク付けされたデータ・ブロックの補集合におけるすべての単語がチェックされた場合、または現在の単語がスペル・チェック動作の開始点に達した場合（例えば、ブロック８０５を参照して上述したような、カーソル挿入点における単語）スペル・チェックが完了する場合がある。
【００６４】
ブロック８３０における判断が真の場合には、スペル・チェックは完了し、制御はブロック８９９へ続き、図８の論理に戻る。
【００６５】
ブロック８３０における判断が偽の場合には、スペル・チェック動作は完了せず、制御はブロック８１０へ戻って、エディタ１５０は、上述のように、新しい現在の単語についての判断を行う。
【００６６】
本発明の実施形態例の上記詳細な説明において、添付の図面を参照した（同様の番号は、同様の要素を表す）。添付の図面は、本実施形態の一部を形成し、本発明が実施されるであろう特定の実施形態例を例示として示した。当業者が本発明を実施することができるようにこれらの実施形態を充分詳細に説明したが、他の実施形態を使用してもよく、論理的、機械的、電気的、および他の変更が本発明の範囲を逸脱することなく行われてもよい。上述の説明において、本発明の実施形態の完全な理解を提供するために、数多くの特定の詳細を示した。しかしながら、本発明は、これら特定の詳細梨で実施されてもよい。他の場合において、本発明が不明瞭にならないように、周知の回路、構成、および技術を詳細には示さなかった。
【００６７】
本明細書内で使用されるような「実施形態（ｅｍｂｏｄｉｍｅｎｔ）」という単語の別の事例では、同一の実施形態を必ずしも指すものではないが、指す場合もある。本明細書において図示または説明したどのデータおよびデータ構造も例に過ぎず、他の実施形態においては、異なるデータ量、データ型、フィールド、フィールドの数および型、フィールド名、行の数および型、レコード、エントリ、またはデータの組成が使用されてもよい。加えて、別のデータ構造を要しないように、データは論理と組み合わされてもよい。したがって、上記の詳細な説明は、限定的に解釈されるべきではなく、本発明の範囲は、添付の図面によってのみ規定される。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施形態を実施するためのシステム例の高レベルのブロック図を示す。
【図２】本発明の一実施形態に係る、貼り付けオプションを伴うエディタ・ユーザ・インターフェースのブロック図を示す。
【図３】本発明の一実施形態に係る、編集オプションを伴うエディタ・ユーザ・インターフェースのブロック図を示す。
【図４】本発明の一実施形態に係る、文書例のブロック図を示す。
【図５】本発明の一実施形態に係る、オープン、コピー、貼り付け、および貼り付けオプション・コマンドのためのフローチャートを示す。
【図６】本発明の一実施形態に係る、スペル・チェックおよびクローズ・コマンドを処理するためのフローチャートを示す。
【図７】本発明の一実施形態に係る、編集コマンドを処理するためのフローチャートを示す。
【図８】本発明の一実施形態に係る、スペル・チェック動作を処理するためのフローチャートを示す。
【符号の説明】
【００６９】
１００  コンピュータ・システム
１０１  プロセッサ
１０１Ａ，１０１Ｂ，１０１Ｃ，１０１Ｄ  ＣＰＵ
１０２  メイン・メモリ
１０３  メモリ・バス
１０４  Ｉ／Ｏバス
１０５  Ｉ／Ｏバス・インターフェース
１１１  端末インターフェース
１１２  ストレージ・インターフェース
１１３  Ｉ／Ｏ装置インターフェース
１１４  ネットワーク・インターフェース
１２１，１２２，１２３，１２４  ユーザ端末
１２５，１２６，１２７  ＤＡＳＤ
１２８  プリンタ
１２９  ファックス機
１３０  ネットワーク
１５０  エディタ
１５２  バッファ
１５４  文書
１５６  辞書
【図１】
2008052740.tif 000003
【図２】
2008052740.tif 000004
【図３】
2008052740.tif 000005
【図４】
2008052740.tif 000006
【図５】
2008052740.tif 000007
【図６】
2008052740.tif 000008
【図７】
2008052740.tif 000009
【図８】
2008052740.tif 000010