(57)【特許請求の範囲】
【請求項１】
計算装置であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサによって実行可能な命令を記憶するメモリとを備え、前記命令が実行されると、前記命令が、前記計算装置を、
返信コマンドユーザ入力メカニズムおよびリッチテキスト形式（ＲＴＦ）メッセージのユーザメッセージ入力を受け取るように構成されたメッセージコンテンツユーザ入力メカニズムを有する、インスタントメッセージ通信アプリケーションのためのインスタントメッセージ通信ユーザインタフェース表示を生成し、
メッセージコンテンツを示すユーザメッセージ入力を、前記メッセージコンテンツユーザ入力メカニズムを介して受け取り、
前記ＲＴＦメッセージが親メッセージに対する返信であることを示す前記返信コマンドユーザ入力メカニズムのユーザ作動を検出し、
前記返信コマンドユーザ入力メカニズムの前記検出されたユーザ作動に基づいて親メッセージ識別子を生成し、前記親メッセージ識別子は前記親メッセージを識別し、
メッセージコンテンツ部分と非フォーマットコマンド部分とを含むＲＴＦメッセージを生成し、前記メッセージコンテンツ部分は、前記メッセージコンテンツを含み、前記非フォーマットコマンド部分は、前記親メッセージ識別子を含む非フォーマットコマンドを含み、
前記ＲＴＦメッセージを受信側に伝送するために通信システムに提供する
ように構成する、計算装置。
【請求項２】
前記メッセージコンテンツ部分が非フォーマットテキストを含み、前記ＲＴＦメッセージが１つまたは複数のグループを含み、各グループは、括弧で囲まれた１つまたは複数の制御コードまたは制御シンボルを含み、前記括弧は、前記グループの影響を受けるテキストと、前記１つまたは複数の制御コードまたは前記制御シンボルによって表されるテキストの属性とを指定する、請求項１に記載の計算装置。
【請求項３】
前記命令が、前記計算装置を、
前記通信システムから第２のＲＴＦメッセージを受信し、前記第２のＲＴＦメッセージ中の第２の非フォーマットコマンドを検出し、前記第２の非フォーマットコマンドに基づいた処理動作を実行するように構成する、請求項１に記載の計算装置。
【請求項４】
前記命令が、前記計算装置を、
前記第２のＲＴＦメッセージ中の非フォーマットコマンド位置を特定し、この非フォーマットコマンド位置が前記第２の非フォーマットコマンドを含むと判定することによって、前記第２の非フォーマットコマンドを検出するように構成する、請求項３に記載の計算装置。
【請求項５】
前記第２の非フォーマットコマンドが、第２の親メッセージを識別する第２の親メッセージ識別子を含み、前記命令が、前記計算装置を、前記第２の親メッセージに関する前記処理動作を実行するように構成する、請求項３に記載の計算装置。
【請求項６】
前記第２の非フォーマットコマンドが、返信コマンドを含み、前記命令が、前記計算装置を、前記処理動作として、前記第２のＲＴＦメッセージを前記第２の親メッセージに関連して表示して、前記第２のＲＴＦメッセージが前記第２の親メッセージへの返信であることを視覚的に示すユーザインタフェース表示を生成するように構成する、請求項５に記載の計算装置。
【請求項７】
前記第２の非フォーマットコマンドが、隠すコマンドを含み、前記命令が、前記計算装置を、前記処理動作として、前記第２の親メッセージをカバーして前記第２の親メッセージを視覚的に隠すユーザインタフェース表示を生成するように構成する、請求項５に記載の計算装置。
【請求項８】
前記第２の非フォーマットコマンドが、インライン画像表示コマンドを含み、前記命令が、前記計算装置を、前記処理動作として、メッセージスレッド中にインライン画像を表示するユーザインタフェース表示を生成するように構成する、請求項５に記載の計算装置。
【請求項９】
前記第２の非フォーマットコマンドが、フィルタコマンドを含み、前記命令が、前記計算装置を、前記処理動作として、前記フィルタコマンド中の基準に基づいてフィルタリングされたメッセージを表示するユーザインタフェース表示を生成するように構成する、請求項５に記載の計算装置。
【請求項１０】
返信コマンドユーザ入力メカニズムおよびリッチテキスト形式（ＲＴＦ）チャットメッセージのメッセージコンテンツを受け取るメッセージコンテンツユーザ入力メカニズムを有する、チャットルームアプリケーションのためのチャットメッセージ入力ユーザインタフェース表示を生成するステップと、
前記ＲＴＦチャットメッセージが親チャットメッセージに対する返信であることを示す前記返信コマンドユーザ入力メカニズムのユーザ作動を検出するステップと、
前記返信コマンドユーザ入力メカニズムの前記検出されたユーザ作動に基づいて親メッセージ識別子を生成するステップであって、前記親メッセージ識別子は前記親チャットメッセージを識別する、ステップと
前記ＲＴＦチャットメッセージの前記メッセージコンテンツを、前記メッセージコンテンツユーザ入力メカニズムを介して受け取るステップと、
メッセージコンテンツ部分と非フォーマットコマンド部分とを含む前記ＲＴＦチャットメッセージを生成するステップであって、前記メッセージコンテンツ部分は、前記メッセージコンテンツを含み、前記非フォーマットコマンド部分は、前記親メッセージ識別子を含む、ステップと、
前記ＲＴＦチャットメッセージを受信側に伝送するためにチャットルーム通信システムに提供するステップと、
を含む、コンピュータ実施方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  リッチテキストフォーマット（RTF）コマンドは、フォーマット化テキストおよびグラフィックスをアプリケーション間で容易に転送できるように符号化するものである。ＲＴＦコマンドを利用するシステムは、フォーマット化ファイルを取り込み、それをＲＴＰファイルに変換するコンポーネントであるライタを含む。ライタは、アプリケーションの制御情報を実際のテキストから分離し、そのテキストおよびそのテキストに関連するＲＴＦグループを含む新たなファイルを書き込む。このシステムは、ＲＴＦファイルをフォーマット化ファイルに翻訳するコンポーネントであるリーダも含む。
【０００２】
[0002]  ＲＴＦファイルは、未フォーマットテキスト自体と、いくつかのその他のものも含む。ＲＴＦファイルは、プリンタ制御コード、および文書を管理するために使用されるその他の情報にマーク付けする制御語を含む。ＲＴＦファイルは、バックスラッシュとそれに続く１文字の非アルファベット文字などの制御シンボルも含む。ＲＴＦファイルは、波括弧で括られたテキストおよび制御語または制御シンボルを有するグループを含む。波括弧は、そのグループの影響を受けるテキストと、制御語および制御シンボルによって表されるそのテキストの様々な属性とを指定する。
【０００３】
[0003]  チャットルームシステムやインスタントメッセージ通信システムなど、いくつかの通信システムでは、様々なユーザ間でメッセージが交換される。インスタントメッセージ通信システムでは、メッセージ属性を保持する別個のデータベースはない。インスタントメッセージ通信システムは、ユーザが対話することができないメッセージのフラットリストとしてメッセージを提供する。チャットルームシステムでは、データベースが、メッセージを送信した個人の識別、いつメッセージが送信されたのかなど、メッセージの様々な特性を保持する。
【０００４】
[0004]  これらのシステムではいずれも、新たなメッセージ特性を追加することは難しい。メッセージ特性を保持するデータベースを含むチャットルームシステムでは、特性を追加するためには、スキーマまたはアーキテクチャを変更しなければならない。インスタントメッセージ通信システムでは、メッセージ特性を保持する別個のデータベースがない。したがって、これらのタイプの通信システムは両方とも、他のユーザが対話することができる、または従来のＲＦＴコマンドで利用されている従来のテキストフォーマット化以外の方法で操作することができるメッセージを生成する能力がかなり制限されている。
【０００５】
[0005]  以上の説明は、単に一般的な背景情報を提供するためのものであり、特許請求する主題の範囲を決定する際に援用するためのものではない。
【発明の概要】
【０００６】
[0006]  装置は、メッセージ中のカスタムＲＴＦコマンドの位置を識別する。カスタムＲＴＦコマンドは、そのメッセージの識別された位置に格納される。この装置は、また、このようなメッセージを受信し、メッセージ中のカスタムＲＴＦコマンドを検出し、検出したＲＴＦコマンドに作用する。
【０００７】
[0007]  本概要は、以下の詳細な説明でさらに説明する概念をまとめて簡略な形で導入するために与えたものである。本概要は、特許請求する主題の範囲の重要な特徴または不可欠な特徴を識別するためのものではなく、また、特許請求する主題の範囲を決定する際に援用するためのものでもない。特許請求する主題は、背景技術において記載した、任意の、または全ての欠点を解消する実施態様に制限されるものではない。
【図面の簡単な説明】
【０００８】
【図１】[0008]メッセージ通信システムの１実施形態を示すブロック図である。
【図２】[0009]カスタムかＲＴＦメッセージを生成および送信する際の図１に示す送信装置の動作の１実施形態を示す流れ図である。
【図３Ａ】[0010]ＲＴＦメッセージの一例を示す図である。
【図３Ｂ】[0010]ＲＴＦメッセージの一例を示す図である。
【図３Ｃ】[0010]ＲＴＦメッセージの一例を示す図である。
【図４】[0011]カスタム化コマンドを有するＲＴＦメッセージを受信する受信装置の動作の１実施形態を示す流れ図である。
【図５Ａ】[0012]例示的なユーザインタフェースの表示を示す図である。
【図５Ｂ】[0012]例示的なユーザインタフェースの表示を示す図である。
【図５Ｃ】[0012]例示的なユーザインタフェースの表示を示す図である。
【図５Ｄ】[0012]例示的なユーザインタフェースの表示を示す図である。
【図５Ｅ】[0012]例示的なユーザインタフェースの表示を示す図である。
【図５Ｆ】[0012]例示的なユーザインタフェースの表示を示す図である。
【図６】[0013]様々なアーキテクチャのメッセージ通信システムを示すブロック図である。
【図７】[0014]モバイルデバイスの実施形態を示す図である。
【図８】[0014]モバイルデバイスの実施形態を示す図である。
【図９】[0014]モバイルデバイスの実施形態を示す図である。
【図１０】[0014]モバイルデバイスの実施形態を示す図である。
【図１１】[0014]モバイルデバイスの実施形態を示す図である。
【図１２】[0015]１つの例示的なコンピューティング環境を示すブロック図である。
【発明を実施するための形態】
【０００９】
[0016]  図１は、メッセージ通信システム１００の１つの例示的な実施形態を示すブロック図である。メッセージ通信システム１００は、送信装置１０２と、受信装置１０４とを含む。送信装置１０２は、通信システム１０６を介して受信装置１０４にメッセージを送信する。もちろん、ある実施形態では、送信装置１０２が、送信装置として機能する装置１０４からメッセージを受信する受信装置であってもよく、またその逆であってもよいことは理解されるであろう。すなわち、両方の装置が、通信を実施する送信装置および受信装置として機能することができる。ただし、本開示では、メッセージ通信は、送信装置１０２から受信装置１０４に流れるものとして説明する。これは、単に例示を目的として述べるものである。
【００１０】
[0017]  送信装置１０２は、送信側ユーザ１１２に対して表示する、または送信側ユーザ１１２がインタラクションする（あるいはその両方を行う）ためにユーザインタフェース表示１１０を生成するユーザインタフェースコンポーネント１０８を有する。ユーザインタフェース表示１１０は、送信側ユーザ１１２がユーザ入力を提供して送信装置１０２を制御して受信装置１０４に送信されるメッセージを生成することができるようにするユーザ入力メカニズム１１４を含む。ユーザ入力を提供する際に、送信側ユーザ１１２は、例えばＲＴＦメッセージコンテンツおよびＲＴＦコマンド情報１１６を生成する。
【００１１】
[0018]  ユーザ入力メカニズム１１４は、テキストボックス、ボタン、ドロップダウンメニュー、リンク、アイコンまたはその他のユーザ入力メカニズムなど、幅広いユーザ入力メカニズムとすることができる。ユーザ入力メカニズム１１４は、ポイントアンドクリックデバイス（マウスまたはトラックボールなど）、ソフトウェアまたはハードウェアのキーボードまたはキーパッド、あるいは音声入力を使用するなど、様々な方法のうちの１つで起動することができる。さらに、ユーザインタフェース表示１１０を表示するために使用される表示装置がタッチ・スクリーンである場合には、ユーザ入力メカニズム１１４は、ユーザの指またはスタイラスあるいはその他の装置などを用いた、タッチジェスチャを用いて作動することができる。その他のユーザ入力メカニズムを作動する方法を使用することもできる。
【００１２】
[0019]  送信装置１０２は、ユーザインタフェースコンポーネント１０８を含むだけでなく、プロセッサ１２０、ＲＴＦ処理コンポーネント１２２、およびアプリケーション１２４も含む。アプリケーション１２４は、例えば、ユーザインタフェースコンポーネント１０８を使用してユーザインタフェース表示１１０を生成して、ユーザ１１２がメッセージを生成して送信することができるようにするメッセージ通信アプリケーションである。ＲＴＦ処理コンポーネント１２２は、例えば、メッセージコンテンツおよびコマンド情報１１６を受信して、この情報に基づいてＲＴＦメッセージを生成する。さらに、カスタムコマンド情報が含まれる場合には、ＲＴＦ処理コンポーネント１２２は、カスタムコマンドが挿入されるべきＲＴＦメッセージ内の位置を特定し、この情報を特定した位置に挿入する。これについては、以下で図２を参照してさらに詳細に説明する。
【００１３】
[0020]  プロセッサ１２０は、例えば、関連するメモリおよびタイミング回路（別個には図示せず）を有するコンピュータプロセッサである。プロセッサ１２０は、例えば、コンポーネント１２２、コンポーネント１０８およびアプリケーション１２４ならびに送信装置１０２内のその他のコンポーネントまたはアイテムによって起動され、それらの機能を実行又は実行を促進する。なお、プロセッサ１２０は１つしか示していないが、複数のプロセッサを使用することもできることに留意されたい。さらに、送信装置１０２は、装置１０２にローカルな、または装置１０２からリモートな、１つまたは複数のデータ記憶装置を有することができ、複数のデータ記憶装置は、一部をローカル、一部をリモートにすることができる。
【００１４】
[0021]  通信システム１０６は、例えば、ＲＴＦメッセージの送信を可能にする任意の通信システムである。例えば、通信システム１０６は、インスタントメッセージ通信システムである。この場合には、アプリケーション１２４は、メッセージを生成するために使用されるインスタントメッセージ通信アプリケーションである。通信システム１０６は、チャットルーム内のメッセージ通信を可能にするシステムであってもよく、ソーシャルメディアネットワーク上のメッセージ通信システムであってもよく、あるいはメッセージ通信を可能にするその他の様々な通信システムであってもよい。これらの実施形態のそれぞれでは、アプリケーション１２４およびＲＴＦ処理コンポーネント１２２は、ＲＴＦメッセージの生成および送信を実行又は実行を促進する。いずれの場合も、通信システム１０６は、例えば、送信装置１０２のＲＴＦ処理コンポーネント１２２によって生成されたカスタムコマンドを有するＲＴＦメッセージ１２６を受信し、これらを受信装置１０４に送信する。
【００１５】
[0022]  受信装置１０４は、例えば、ユーザインタフェースコンポーネント１３０と、プロセッサ１３２と、ＲＴＦ処理コンポーネント１３４と、アプリケーション１３６とを含む。ＲＴＦ処理コンポーネント１３４は、例えば、カスタムコマンドを有するＲＴＦメッセージ１２６を受信し、ユーザインタフェースコンポーネント１３０を使用して、受信側ユーザ１４０に対して表示する、または受信側ユーザ１４０が対話する（あるいはその両方を行う）ユーザインタフェース表示１３８を生成する。これを行う際に、コンポーネント１３４は、例えば、メッセージ中の制御コマンドならびに制御シンボルおよびグループに基づいてＲＴＦメッセージ１２６のコンテンツをフォーマット化し、また、ＲＴＦメッセージ１２６に挿入されたカスタムコマンドに作用する。これについては、以下で図４を参照してさらに詳細に説明する。
【００１６】
[0023]  アプリケーション１３６は、例えば、装置１０４がメッセージを受信し、それらを受信側ユーザ１４０に対して表示することができるようにするアプリケーションである。これを行う際に、アプリケーション１３６は、例えば、ユーザインタフェースコンポーネント１３０を使用して、これらの表示をユーザインタフェース表示１３８として生成する。
【００１７】
[0024]  プロセッサ１３２は、例えば、関連するメモリおよびタイミング回路（別個には図示せず）を有するコンピュータプロセッサである。これは、装置１０４の機能部分であり、ＲＴＦ処理コンポーネント１３４、アプリケーション１３６、ユーザインタフェースコンポーネント１３０およびその他の装置１０４内のアイテムによって起動され、これらの機能を実行又は実行を促進する。
【００１８】
[0025]  以下で図４を参照してさらに詳細に説明するように、ＲＴＦ処理コンポーネント１３４は、メッセージ１２６を受信して、その中に配置されたカスタムコマンドを特定し、ＲＴＦコマンドおよびシンボルに基づいて、適切にフォーマット化されたメッセージを生成する。ＲＴＦ処理コンポーネント１３４は、また、ＲＴＦメッセージ１２６内のカスタムコマンドに基づいて適切な動作を行う。
【００１９】
[0026]  図２は、カスタムＲＴＦコマンドを生成して送信する際の送信装置１０２の動作の一実施形態を示す流れ図である。メッセージ通信アプリケーション１２４が最初に起動され、送信側ユーザ１１２が、ＲＴＦコマンド情報とともにメッセージコンテンツを示すユーザ入力１１６を提供する。例えば、これは、特定のテキストを太字表示または下線表示することを示す指示とともにメッセージ中のテキストを含む、あるいは従来のＲＴＦコマンド情報が示すその他のフォーマット化を含むことができる。送信するＲＴＦメッセージの取得は、図２では、ブロック１５０で示してある。ユーザ入力を受けてメッセージを取得することは、ブロック１５２で示してある。このメッセージは、別のメッセージ通信システムから取り込むことも、その他の方法で取得することもできるが、これは、図２ではブロック１５４および１５６で示してある。
【００２０】
[0027]  ある実施形態では、ユーザ１１２は、メッセージに含めるカスタムＲＴＦコマンドを示す情報（所与のユーザ入力メカニズム１１４とのインタラクションなど）も提供する。これらの様々なタイプのカスタムコマンドについては、図５Ａ〜図５Ｆを参照して以下で説明する。例示として、本明細書で使用するカスタムＲＴＦコマンドは、「親に返信」コマンドとする。この場合には、ユーザは、具体的には、受信した親メッセージに返信している。したがって、ＲＴＦ処理コンポーネント１３４および受信装置１０４は、ユーザ１１２から受信したＲＴＦメッセージ１２６が、特定した親メッセージへの返信であることを識別し、親メッセージと並置した返信メッセージを示す、ユーザ１４０のための表示を生成する。
【００２１】
[0028]  この例を用いると、ＲＴＦ処理コンポーネント１２２は、ユーザ１１２からの入力１１６として、現在のメッセージが親メッセージに対する返信であることを示す指示を受信する。したがって、カスタムＲＴＦコマンドは、これを示すことになる。ＲＴＦ処理コンポーネント１２２は、このようにして、カスタムＲＴＦコマンドを挿入する、ＲＴＦメッセージ内の位置を特定する。これは、図２では、ブロック１６０で示してある。
【００２２】
[0029]  これを挿入することができる場所は様々である。一例では、カスタムＲＴＦコマンドは、従来のＲＴＦメッセージの最後の括弧の中に挿入され、これは、図２ではブロック１６２で示してある。もちろん、カスタムＲＴＦコマンドを挿入することができる位置は、別の場所であってもよく、これは、図２ではブロック１６４で示してある。
【００２３】
[0030]  ＲＴＦ処理コンポーネント１２２がカスタムＲＴＦコマンドを挿入する場所を特定したら、カスタムコマンドを有するＲＴＦメッセージ１２６（図１に示す）を生成するために、特定した位置にカスタムＲＴＦコマンドを挿入する。これは、図２ではブロック１６６で示してある。様々なタイプのカスタムＲＴＦコマンドを使用することができる。「カスタム」とは、そのＲＦＴコマンドが、メッセージにおけるテキストコンテンツのフォーマット以外の全てのＲＴＦメッセージに影響を及ぼすことを意味する。換言すれば、ＲＴＦコマンドは、メッセージのテキストコンテンツをフォーマット化する。カスタムＲＴＦコマンドは、テキストコンテンツをフォーマット化すること以外のことを行う。
【００２４】
[0031]  カスタムＲＴＦコマンドを使用できる方法のいくつかの例を、図２に示す。例えば、カスタムＲＴＦコマンドは、ＲＴＦメッセージ１２６が親メッセージへの返信であることを示すことができる。これは、ブロック１６８で示してある。カスタムＲＴＦコマンドは、親メッセージを隠すことを示すこともできる。例えば、送信側ユーザ１１２が受信側ユーザ１４０にメッセージを送信したが、送信側ユーザ１１２は、そのメッセージを誤って送信してしまった、またはメッセージを送信することについて気が変わったものと仮定する。この場合には、送信側ユーザ１１２は、単純に親メッセージを参照（reference）する、親メッセージをブランクスペースで上書きすべきである（例えば隠すべきである）ことを示すカスタムコマンドを有する別のＲＴＦメッセージを送信することができる。「隠す」カスタムＲＴＦコマンドは、図２ではブロック１７０で示してある。
【００２５】
[0032]  メッセージ１２６がソーシャルネットワーク上にある場合には、カスタムＲＴＦコマンドは、送信側ユーザ１１２が親メッセージを「好む」ことを示すことができる。これは、ブロック１７２で示してある。カスタムＲＴＦコマンドを使用して、メッセージストリングにインライン画像を挿入することができる。これは、ブロック１７４で示してある。また、カスタムコマンドを使用して、メッセージをトピックによってフィルタリングすることもできる。これは、ブロック１７６で示してある。
【００２６】
[0033]  さらに、チャットルーム内で実施される場合には、ユーザのうちの１人がチャットメッセージをレビューしていて、その後、ある期間だけチャットルームをサインオフする、または出て行く可能性もある。同様に、ユーザがチャットルームに再入場したときに、単にチャットルーム内でポストされた最近のメッセージをしか見ないこともある。しかし、チャットルームを出て行く前に、送信側ユーザ１１２は、ブックマークコマンドであるカスタムＲＴＦコマンドを有するＲＴＦメッセージを送信することができる。そうすると、ユーザ１１２がチャットルームに戻ったときに、カスタムＲＴＦコマンドが、チャットルームのチャットメッセージ内でユーザが出て行った位置を識別することになる。したがって、ユーザ１１２は、ユーザがチャットルームを出て行った後にポストされた次の新たなメッセージに直ちにジャンプすることができる。これは、図２ではブロック１７８で示してある。もちろん、カスタムＲＴＦコマンドの用途は他にも様々な用途があり、これは、図２ではブロック１８０で示してある。
【００２７】
[0034]  ある実施形態では、以下でさらに詳細に述べるように、各カスタムＲＴＦコマンドは、適切なユーザ入力メカニズム１１４を用いてユーザ１１２が入力することができる。例えば、ＲＴＦ処理コンポーネント１２２またはアプリケーション１２４は、「返信」ボタンを有するメッセージ通信システムのユーザインタフェース表示を生成することができる。ユーザが「返信」ボタンを作動すると、これにより、ＲＴＦ処理コンポーネント１２２に対して、ＲＴＦメッセージ１２６にカスタムＲＴＦ「返信」コマンドを挿入すべきであると示される。カスタム「返信」コマンドは、現在のメッセージの返信対象である親メッセージを識別する。同様に、ユーザインタフェース表示は、「隠す」ボタン、「好む」ボタン、「インライン画像指定」ボタン、「トピックによるフィルタリング」ボタン、「ブックマーク」ボタン、またはユーザ１１２が作動して対応するカスタムＲＴＦコマンドを挿入すべきであることをＲＴＦ処理コンポーネント１２２に対して示すことができるその他の任意のタイプのユーザ入力メカニズムによって生成することができる。もちろん、ＲＴＦ処理コンポーネント１２２が挿入するカスタムＲＴＦコマンドを指定するその他の方法を使用することもできる。
【００２８】
[0035]  いずれの場合も、ＲＴＦ処理コンポーネント１２２は、識別した位置にカスタムＲＴＦコマンドを挿入したら、カスタムコマンドを有するＲＴＦメッセージ１２６を受信装置１２４に送信する。このメッセージの送信は、図２ではブロック１８２で示してある。
【００２９】
[0036]  図３Ａ〜図３Ｃは、カスタムコマンドを有するＲＴＦメッセージの様々な実施形態を示す図である。図３Ａは、ＲＴＦメッセージ２００を示すブロック図である。ＲＴＦメッセージ２００は、ＲＴＦメッセージコンテンツおよび従来コマンド部分２０２を含む。部分２０２は、例えば、メッセージテキストと、そのテキストをどのようにしてフォーマット化するかを示す従来のＲＴＦコマンドとを含む。メッセージ２００は、例えば、プロセッサ１２２によって挿入されるカスタムＲＴＦコマンドを含むカスタムＲＴＦコマンド部分２０４も含む。カスタムＲＴＦコマンドは、カスタムコマンドを識別するコマンド情報を含むことができる。また、カスタムコマンドが親メッセージを参照する場合には、親メッセージ識別子も含まれる。
【００３０】
[0037]  図３Ｂおよび図３Ｃは、この具体例を示す図である。図３Ｂは、ＲＴＦ処理コンポーネントによって送信される標準的なＲＴＦメッセージの一例を示す図である。図３Ｃは、図３Ｂに示すものと同じメッセージであるが、カスタムＲＴＦコマンドも含んでいる。図３Ｃに示す実施形態で分かるように、カスタムＲＴＦコマンドは、図３Ｂに示すメッセージの最後の２つのフレンチブラケット文字の間に挿入される。これを行うためには、ＲＴＦ処理コンポーネント１２２は、例えば、最後のフレンチブラケット文字の指標を識別し、その位置での挿入動作を実行する。図３Ｃに示すメッセージに挿入されたカスタムＲＴＦコマンドは、「{\*\customRtfCommand Nobody will ever implement this rtf command} }」である。
【００３１】
[0038]  図４は、カスタムコマンドを有するＲＴＦメッセージ１２６を受信して処理する際の、受信装置１０４の動作の一実施形態を示す流れ図である。ＲＴＦ処理コンポーネント１３４は、最初に、通信システム１０６からカスタムコマンドを有するＲＴＦメッセージ１２６を受信する。これは、図４ではブロック２１０で示してある。ＲＴＦ処理コンポーネント１３４は、次いで、カスタムＲＴＦコマンドがメッセージ中に配置されている場合には、メッセージ１２６においてカスタムＲＴＦコマンドが現れる位置を識別する。これは、ブロック２１２で示してある。もちろん、本明細書に記載する実施形態では、カスタムＲＴＦコマンドは、従来のＲＴＦメッセージの最後の２つのフレンチブラケットの間に挿入される。したがって、受信装置１０４のＲＴＦ処理コンポーネント１３４は、カスタムＲＴＦコマンドがあるかどうか、その位置を確認する。
【００３２】
[0039]  ＲＴＦ処理コンポーネント１３４は、次いで、その位置に挿入されたカスタムＲＴＦコマンドの存在を検出する。これは、図４ではブロック２１４で示してある。
【００３３】
[0040]  ＲＴＦ処理コンポーネント１３４は、次いで、ＲＴＦメッセージ１２６を処理し、メッセージ１２６中に見られるカスタムＲＴＦコマンドに基づいた動作を行う。これは、ブロック２１６で示してある。例えば、一実施形態では、コンポーネント１３４は、ユーザインタフェースコンポーネント１３０を使用して、ＲＴＦコマンドに従ってフォーマット化されたテキストを有するメッセージを生成して表示する。処理コンポーネント１３４は、次いで、カスタムＲＴＦコマンドに基づくその他の特定の動作も実行する。
【００３４】
[0041]   一実施形態では、カスタムＲＴＦコマンドが現在のメッセージが親メッセージへの返信であることを示している場合には、カスタムＲＴＦコマンドは、例えば、親メッセージを識別する親ＩＤも含む。この場合には、ＲＴＦ処理コンポーネント１３４は、ユーザインタフェース表示において、現在のメッセージを親メッセージへの返信として位置づける。これは、図４ではブロック２１８で示してある。
【００３５】
[0042]  図５Ａおよび図５Ｂは、送信および返信されているメッセージがチャットメッセージである一実施形態を示す図である。図５Ａは、チャットメッセージを示すチャットボックス２２２を有するユーザインタフェース表示２２０を示す。第１のチャットメッセージは、「Ｈｅｌｌｏ  ｗｏｒｌｄ」であり、第２のチャットメッセージは、「Ｈｅｌｌｏ  ｗｏｒｌｄ  ２」であり、第３のチャットメッセージは、「Ｈｅｌｌｏ  ｗｏｒｌｄ  ３」である。ユーザインタフェース表示２２０は、送信側ユーザがボックス２２４内にテキストメッセージをタイプすることを可能にするテキストボックス２２４も含む。
【００３６】
[0043]  さらに、ユーザインタフェース表示２２０は、例えば、「返信」ボタン２２６を含む。ユーザがチャットボックス２２２内のメッセージのうちの１つを選択し、テキストボックス２２４にテキストをタイプし、返信ボタン２２６を押すと、テキストボックス２２４内のテキストが、それがボックス２２２内の選択されたメッセージへの返信であることを示すカスタムコマンドを有するＲＴＦメッセージとして生成される。図５Ａに示す実施形態では、ユーザは、「Ｈｅｌｌｏ  ｗｏｒｌｄ」メッセージ２２８を選択している。したがって、ユーザがボックス２２４で「Ｈｅｌｌｏ  ｔｈｅｒｅ」返信メッセージをタイプし、「返信」ボタン２２６を作動すると、送信側ＲＴＦ処理コンポーネント１２２は、テキストコンテンツ「Ｈｅｌｌｏ  ｔｈｅｒｅ」を有するＲＴＦメッセージと、このメッセージが「Ｈｅｌｌｏ  ｗｏｒｌｄ」メッセージ２２８のＩＤに対応する親メッセージ識別子（ID）を有する親メッセージへの返信であることを示すカスタムＲＴＦコマンドとを生成する。
【００３７】
[0044]  図５Ｂは、受信装置１０４において（ユーザインタフェースコンポーネント１３０を用いて）ＲＴＦ処理コンポーネント１３４によって生成されたユーザインタフェース表示２３０を示す図である。ユーザインタフェース表示２３０は、図５Ａに示すユーザインタフェース表示２２０と同様であり、同じものには同じ番号が振ってある。ただし、「Ｈｅｌｌｏ  ｔｈｅｒｅ」返信メッセージ２３２が、親メッセージ「Ｈｅｌｌｏ  ｗｏｒｌｄ」に並ぶ位置に挿入されていることが分かる。図示の実施形態では、返信メッセージ２３２は、その返信対象である親メッセージの下で、その親メッセージに対して字下げしてある。もちろん、その他の並置位置を使用することもできる。
【００３８】
[0045]  例えば、「Ｈｅｌｌｏ  ｗｏｒｌｄ」メッセージ２２８を生成するために使用されるＲＴＦチャットメッセージは、以下のように与えられる。
{\rtfl\fbidis\ansi\ansicpgl252\deff0\nouicompat\ deflangl033 {\fonttbl{\f0\fnil\fcharset0SegoeUI;} {\fl\fnil Segoe UI; } } {\colorbl ;\red0\green0\blude0; } {\*\generator Riched20 15.0.4423 (Debug)} {\*\mmathPr\mwraplndentl440 }\viewkind4\ucl \pard\cfl\embo\f0\fs20 Hello World\ embo0\fl\par}
【００３９】
[0046]  それが親メッセージへの返信であることを示すカスタムコマンドを有するＲＴＦメッセージは、一例では、以下のように与えられる。
{\rtfl\fbidis\ansi\anscipgl252\deff0\nouicompat\ deflangl033 {fonttbl{\f0\fnil\fcharset0Segoe UI;} {fl\fnil Segoe UI;} } {\colorbl ;\red0\green0\blue0;} {\*\generator Riched20 15.0.4423 (Debug)} {\*\mmathPr\ mwraplndentl440 }\viewkind4\ucl \pard\cfl\embo\f0\ fs20Replay\embo)\fl\par {\*\reply 1 } }
【００４０】
[0047]  カスタムＲＴＦコマンドは、このメッセージの最後のフレンチブラケットの直前に挿入され、「{\*\reply 1}」であることが分かる。もちろん、ここに示すこの特定の形態のＲＴＦコマンドは、単なる例示である。このメッセージが親メッセージへの返信であることを示すその他の任意の所望の形態のＲＴＦコマンドを使用することができる。
【００４１】
[0048]  図５Ｃは、「返信」ＲＴＦコマンドの処理結果を示すさらに別のユーザインタフェース表示２４０を示す図である。親メッセージ２４２が最初に送信され、表示されたことが分かる。返信ＲＴＦメッセージ２４４が生成され、それが親メッセージ２４２への返信であることを示すカスタムコマンドが、このＲＴＦメッセージに挿入される。したがって、この返信は、親に対して並置位置に表示することができる。単純に親メッセージＩＤを格納しておくことにより、この返信は、親メッセージＩＤを参照することができ、適当な親メッセージに対して適切な位置に挿入することができる。
【００４２】
[0049]  図５Ｄは、返信をどのように使用することができるかを示すさらに別のユーザインタフェース表示２５０を示す図である。ユーザインタフェース表示２５０は、複数の異なるメッセージをメッセージペイン２５１に示す。上のメッセージに対して字下げされた各メッセージは、それがそのメッセージに対する返信であることを示している。ユーザインタフェース表示２５０から、１つのメッセージに対する複数の返信が、共通の字下げ間隔で表示されることが分かる。これは、例えばメッセージ２５２および２５４から分かる。これらは両方とも、親メッセージ２５６への返信である。ただし、返信に対する返信も示してある。例えば、メッセージ２５８は、メッセージ２５２に対して字下げされており、このことは、メッセージ２５８が、メッセージ２５６に対する返信であるメッセージ２５２に対する返信であることを示している。もちろん、返信メッセージを親メッセージの下に字下げして示すことは、親メッセージに対する返信を位置決めする単なる１つの例示的な方法に過ぎず、その他の方法を使用することもできる。
【００４３】
[0050]  なお、ユーザインタフェース表示２５０は、返信ユーザ入力ボタン２６２とともに、返信を挿入するためのテキストボックス２６０を含むことにも留意されたい。ユーザがテキストボックス２６０にテキストをタイプし、メッセージペイン２５１からメッセージの１つをハイライトまたは選択すると、ユーザは、返信ボタン２６２を作動することができ、ペイン２５１で選択された親メッセージに対する返信として新たなメッセージが表示される。ユーザインタフェース表示２５０は、新たなトピックについてのメッセージを挿入するテキストボックス２６４も含む。新たなメッセージがボックス２６２にタイプされると、新トピックボタン２６６を作動することができ、これにより、そのメッセージが新たなトピックであり、いずれの親メッセージに対する返信でもないことが示される。
【００４４】
[0051]  再度図４を参照すると、ＲＴＦ処理コンポーネント１３４および受信装置１０４は、ブロック３００で示すように、親メッセージを隠すこともできる。例えば、送信側ユーザが以前に送信したメッセージを隠したいと思うときには、送信側ユーザは、後続ＲＴＦメッセージを送信して、（例えばUIディスプレイ上で親メッセージを選択することなどにより）親メッセージを識別し、（例えばUIディスプレイ上で「隠す」ボタンを作動することなどにより）親メッセージを隠すことを示すカスタムＲＴＦコマンドを挿入することができる。この場合には、受信側ＲＴＦ処理コンポーネント１３４は、識別した親メッセージを上書きする（それにより受信側ユーザ１４０から親メッセージを隠す）。
【００４５】
[0052]  通信システムがソーシャルネットワーキングシステムまたはユーザがコンテンツを「好む」（「いいね」を示す）ことを可能にするその他のシステムである場合には、カスタムＲＴＦコマンドは、「好む」コマンドとすることができ、「好まれる」親メッセージを識別することができる。これは、図４ではブロック３０２で示してある。図５Ｅは、これを示すユーザインタフェース表示３０４を示す図である。メッセージＩＤをカスタムＲＴＦコマンドにおいて「好まれる」として指定することで、ＲＴＦ処理コンポーネント１３４および受信装置１０４は、「好まれる」（「いいね」をされた）メッセージ項目のカウンタを増分することができる。ユーザインタフェース表示は、そのメッセージが所与の回数「好まれる」とされたことを示す表示要素３０６を含むことができる。例えば、ユーザは、ＵＩ表示上で「好まれる」メッセージを選択し、次いで「好む」ボタンを作動することができる。これに応じて、ＲＴＦ処理コンポーネントは、ユーザが選択したメッセージの親メッセージＩＤおよびユーザが「好む」ボタンを作動したことに基づいて生成される「好む」コマンドを有するカスタムＲＴＦコマンドを生成する。
【００４６】
[0053]  カスタムＲＴＦコマンドは、メッセージスレッド内にインライン画像を表示することもできる。これは、図４ではブロック３０８で示してある。図５Ｆは、これを示すユーザインタフェース表示を示す図である。カスタムＲＴＦコマンドが以下のようなものである場合には、
{\*\image http :V/upload.wikimedia.org/Wikipedia/commons/7/7e/Thumbs-up-icon.png}
【００４７】
[0054]  これは、ＲＴＦメッセージの残りとともに表示することができる画像ＵＲＬを識別する。ユーザインタフェース表示３１０は、この一例である。このメッセージでは、カスタムＲＴＦコマンドで識別されたＵＲＬから取り出された画像３１２が、メッセージスレッド中にインラインで表示されている。
【００４８】
[0055]  カスタムＲＴＦコマンドを使用して、その他の多くの動作を行うことができる。例えば、以下のようなＲＴＦコマンド
{\*\topic randomtopic}
は、トピックを指定するために使用することができる。カスタムＲＴＦコマンドを使用してトピックが指定されると、受信側ＲＴＦ処理コンポーネント１３４は、メッセージスレッドをフィルタリングして、指定されたトピックを有するメッセージのみを示すことができる。このタイプのフィルタリングは、図４ではブロック３２０で示してある。
【００４９】
[0056]  同様に、図２を参照して上記で簡単に説明したように、カスタムＲＴＦコマンドをブックマークとして使用して、チャットルーム内の新たなメッセージにジャンプすることができる。カスタムＲＴＦコマンドが、例えば、
{\*LastReadMessageID 99}
の形態である場合もある。
【００５０】
[0057]  このような場合、ユーザがこのカスタムＲＴＦメッセージを生成したときに読まれた最後のメッセージＩＤを格納または特定することができる。したがって、ユーザが次にチャットルームを開いたときに、ユーザインタフェース表示は、最後に読まれたメッセージ（または最後に読まれたメッセージの直後のメッセージ）から始まる最新のメッセージを示すことができる。ユーザインタフェース表示は、このデータを保存するメッセージを示す必要はない。すなわち、ユーザインタフェース表示は、ブックマークを示してもよいし、ブックマークメッセージが生成されたことを示す指示を与えず、単にチャットスレッド中のマークされた位置にジャンプするだけでもよい。もちろん、このタイプのカスタムＲＴＦメッセージを使用して、その他の状態を保存することもでき、ジャンプ位置（または最後に読まれたメッセージ）は、単なる一例である。ジャンプ位置の識別は、図４ではブロック３２２で示してある。
【００５１】
[0058]  もちろん、上述の特定のカスタムＲＴＦコマンドおよび関連する動作は、例示に過ぎないことに留意されたい。カスタムＲＴＦコマンドを使用して、その他の多くの動作全体を実行することができ、これは図４ではブロック３２４で示してある。同様に、上述のカスタムＲＴＦメッセージの特定の形態またはコンテンツも例示であり、その他の形態またはコンテンツを使用することができる。
【００５２】
[0059]  図６は、図１に示すシステム１００のブロック図であるが、このシステムは、クラウドコンピューティングアーキテクチャ５００に配置されている。クラウドコンピューティングは、サービスを配信するシステムの物理的位置または構成をエンドユーザが知る必要のない計算、ソフトウェア、データアクセスおよび記憶サービスを提供する。様々な実施形態では、クラウドコンピューティングは、適当なプロトコルを用いて、インターネットなどの広域ネットワークを介してサービスを配信する。例えば、クラウドコンピューティングプロバイダは、広域ネットワークを介してアプリケーションを配信し、これらのアプリケーションには、ウェブブラウザまたはその他の任意の計算コンポーネントを介してアクセスすることができる。システム１００のソフトウェアまたはコンポーネントならびにそれに対応するデータは、遠隔位置のサーバに格納することができる。クラウドコンピューティング環境の計算資源は、遠隔データセンタ位置に集約してもよいし、分散してもよい。クラウドコンピューティングインフラストラクチャは、ユーザには１つのアクセス点のように見える場合でも、複数の共有データセンタを介してサービスを配信することができる。したがって、本明細書に記載するコンポーネントおよび機能は、クラウドコンピューティングアーキテクチャを使用して遠隔位置のサービスプロバイダから提供することができる。あるいは、本明細書に記載するコンポーネントおよび機能は、従来のサーバから提供してもよいし、クライアントデバイスに直接またはその他の方法で設置してもよい。
【００５３】
[0060]  この説明は、パブリッククラウドコンピューティングおよびプライベートクラウドコンピューティングの両方を含むことを意図している。クラウドコンピューティング（パブリックおよびプライベートの両方）は、実質的にシームレスな資源プールを提供し、その基礎をなすハードウェアインフラストラクチャを管理および構成する必要が少ない。
【００５４】
[0061]  パブリッククラウドは、ベンダによって管理され、通常は同じインフラストラクチャを用いて複数の顧客をサポートする。また、パブリッククラウドでは、プライベートクラウドとは対照的に、エンドユーザがハードウェアを管理しなくてもよい。プライベートクラウドは、その機構自体によって管理することができ、そのインフラストラクチャは、通常は、他の機構と共有されない。その機構は、依然として、設置や修理など、ある程度はハードウェアの保守を行う。
【００５５】
[0062]  図６に示す実施形態では、いくつかの項目は、図１に示すものと同様であり、それらには同じ番号を付してある。図６は、通信システム１０６がクラウド５０２（パブリックでも、プライベートでも、一部がパブリックで一部がプライベートの組合せでもよい）に位置していることを具体的に示す図である。したがって、ユーザ１１２、１４０は、装置１０２、１０４を使用して、クラウド５０２を介してこれらのシステムにアクセスする。
【００５６】
[0063]  図６は、クラウドアーキテクチャの別の実施形態も示している。図６は、ビジネスシステム１００の一部の要素がクラウド５０２内に配置され、一部の要素はクラウド５０２内に配置されないことを企図していることも示している。例えば、データ記憶装置５１０（通信システム１０６が使用することができる）は、クラウド５０２の外部に配置して、クラウド５０２を介してアクセスすることができる。別の実施形態では、ＲＴＦ処理コンポーネント１２２、１３４も、クラウド５０２の外部にある。ＲＴＦ処理コンポーネント１２２、１３４は、それらがどこに位置するかにかかわらず、ネットワーク（広域ネットワークまたはローカルエリアネットワークのいずれか）を介して装置１０２、１０４から直接アクセスすることもできるし、あるサービスが遠隔位置でホストとなることもできるし、あるいはクラウドを介してサービスとして提供する、またはクラウド内に常駐する接続サービスによってアクセスすることもできる。これらのアーキテクチャは全て、本明細書で企図されている。
【００５７】
[0064]  なお、システム１００またはその一部は、様々な異なる装置に配置することもできることに留意されたい。これらの装置の一部としては、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、あるいはパームトップコンピュータ、携帯電話、スマートフォン、マルチメディアプレイヤ、携帯情報端末など、その他のモバイルデバイスが挙げられる。
【００５８】
[0065]  図７は、本システム（またはその一部）を配備することができるユーザまたはクライアントのハンドヘルド装置１６として使用することができるハンドヘルドまたは移動可能な計算装置の１つの例示的な実施形態を示す簡略ブロック図である。図８〜図１１は、ハンドヘルド装置またはモバイルデバイスの例である。
【００５９】
[0066]  図７は、システム１００のコンポーネントを実行することができる（例えば装置１０２、１０４を実施することができるなど）、またはシステム１００と対話する、あるいはその両方を行うクライアント装置１６のコンポーネントを示す概略ブロック図である。装置１６には、ハンドヘルド装置がその他の計算装置と通信することを可能にし、いくつかの実施形態では走査などによって自動的に情報を受信するチャネルを提供する、通信リンク１３が設けられている。通信リンク１３の例としては、赤外線ポート、シリアル／ＵＳＢポート、イーサネットポートなどのケーブルネットワークポート、ネットワークへのセルラアクセスを提供するために使用される無線サービスである汎用パケット無線サービス（GPRS）、ＬＴＥ、ＨＳＰＡ、ＨＳＰＡ＋およびその他の３Ｇ／４Ｇの無線プロトコル、１Ｘｒｔｔならびにショートメッセージサービス、ならびにネットワークへのローカル無線接続を提供する８０２．１１および８０２．１１ｂ（Wi-Fi）プロトコルおよびＢｌｕｅｔｏｏｔｈプロトコルなど、１つまたは複数の通信プロトコルによる通信を可能にする無線ネットワークポートなどが挙げられる。
【００６０】
[0067]  その他の実施形態では、アプリケーションまたはシステム（システム１００の同様の部分）は、ＳＤカードインタフェース１５に接続される取外し可能セキュアデジタル（SD）カードで受け取る。ＳＤカードインタフェース１５および通信リンク１３は、メモリ２１および入出力（I/O）コンポーネント２３ならびにクロック２５および位置システム２７にも接続されるバス１９に沿って、プロセッサ１７（図１のプロセッサ１２０、１２２、１３２、１３４を実施することもできる）と通信する。
【００６１】
[0068]  Ｉ／Ｏコンポーネント２３は、一実施形態では、入出力動作を容易にするために設けられる。装置１６の様々な実施形態のＩ／Ｏコンポーネント２３は、ボタン、タッチセンサ、マルチタッチセンサ、光学またはビデオセンサ、音声センサ、タッチ・スクリーン、近接センサ、マイクロフォン、傾斜センサ、および重力スイッチなどの入力コンポーネントと、表示装置、スピーカ、および／またはプリンタポートなどの出力コンポーネントとを含むことができる。その他のＩ／Ｏコンポーネント２３を使用することもできる。
【００６２】
[0069]  クロック２５は、例えば、日時を出力する実時間クロックコンポーネントを含む。また、クロック２５は、例えば、プロセッサ１７のタイミング機能を提供することもできる。
【００６３】
[0070]  位置システム２７は、例えば、装置１６の現在の地理学的位置を出力するコンポーネントを含む。これは、例えば、全地球測位システム（GPS）受信機、ＬＯＲＡＮシステム、推測航法システム、セルラ三角測量システムまたはその他の測位システムを含むことができる。位置システム２７は、また、例えば、所望のマップ、ナビゲーション経路およびその他の地理学的機能を生成するマッピングソフトウェアまたはナビゲーションソフトウェアを含むこともできる。
【００６４】
[0071]  メモリ２１は、オペレーティングシステム２９、ネットワーク設定３１、アプリケーション３３、アプリケーション構成設定３５、データ記憶装置３７、通信ドライバ３９、および通信構成設定（通信コンフィギュレーション設定）４１を格納する。メモリ２１は、あらゆる種類の有形の揮発性および不揮発性コンピュータ可読メモリ装置を含むことができる。メモリ２１は、また、コンピュータ記憶媒体（後述）も含むことができる。メモリ２１は、プロセッサ１７によって実行されたときに、そのプロセッサにその命令に従ってコンピュータ実施ステップまたは機能を実行させるコンピュータ可読命令を格納する。システム１００、アプリケーション１２４、１３６またはデータ記憶装置５１０内の項目は、例えば、メモリ２１に常駐することができる。同様に、装置１６は、様々なアプリケーションを実行する、あるいはシステム１００の一部または全てを実施することができる、クライアントシステム２４を有することができる。プロセッサ１７は、その他の（複数の）コンポーネントによって起動されて、それらの機能を実行又は実行を促進するようにすることもできる。
【００６５】
[0072]  ネットワーク設定３１の例としては、プロキシ情報、インターネット接続情報、マッピングなどが挙げられる。アプリケーション構成設定（アプリケーションコンフィグレーション設定）３５は、アプリケーションを特定の企業またはユーザのために適合させる設定を含む。通信構成設定４１は、その他のコンピュータと通信するためのパラメータを提供し、ＧＰＲＳパラメータ、ＳＭＳパラメータ、接続ユーザ名およびパスワードなどの項目を含む。
【００６６】
[0073]  アプリケーション３３は、装置１６に以前から記憶されているアプリケーション、または使用中にインストールされたアプリケーションとすることができるが、これらはオペレーティングシステム２９の一部であってもよいし、装置１６の外部から提供してもよい。
【００６７】
[0074]  図８および図９は、装置１６がタブレットコンピュータ６００である一実施形態を示す図である。図８では、ディスプレイスクリーン６０２にユーザインタフェース表示２５１（返信メッセージを示すために使用される）が表示されたコンピュータ６００が示してある。図９は、ディスプレイスクリーン６０２にユーザインタフェース表示３１０（インライン画像を示すために使用される）が表示されたコンピュータ６００を示す。スクリーン６０２は、タッチ・スクリーン（ユーザの指６０４のタッチジェスチャを使用してアプリケーションと対話することができる）であってもよいし、あるいはペンまたはスタイラスから入力を受け取るペン入力型インタフェースであってもよい。コンピュータ６００は、また、オンスクリーン仮想キーボードを使用することもできる。もちろん、例えば無線リンクやＵＳＢポートなど、適当な取付けメカニズムを介してキーボードまたはその他のユーザ入力装置に取り付けることもできる。コンピュータ６００は、例えば、音声入力を受け付けることもできる。
【００６８】
[0075]  図１０および図１１は、使用することができる装置１６のさらに別の例を与えるものであるが、その他の装置を使用することもできる。図１０では、スマートフォンまたはモバイルフォン４５を、装置１６としている。電話４５は、電話番号をダイヤルするための１組のキーパッド４７と、アプリケーション画像、アイコン、ウェブページ、写真およびビデオなどの画像を表示することができるディスプレイ４９と、ディスプレイ上に示される項目を選択するための制御ボタン５１とを含む。この電話は、汎用パケット無線サービス（GPRS）や１Ｘｒｔｔなどの携帯電話信号およびショートメッセージサービス（SMS）信号を受信するアンテナ５３を含む。いくつかの実施形態では、電話４５は、ＳＤカード５７を受け入れるセキュアデジタル（SD）カードスロット５５も含む。
【００６９】
[0076]  図１１のモバイルデバイスは、携帯情報端末（PDA）５９、マルチメディアプレイヤ、またはタブレット計算装置などである（以下、PDA５９と呼ぶ）。ＰＤＡ５９は、スタイラス６３（またはユーザの指などその他のポインタ）がスクリーン上で位置決めされたときにそのスタイラスの位置を感知するインダクティブスクリーン６１を含む。これにより、ユーザは、スクリーン上で項目を選択し、ハイライトし、移動させることができ、また描画および書込みをすることができるようになる。ＰＤＡ５９は、ユーザがディスプレイ６１に表示されるメニューオプションまたはその他の表示オプションをスクロールすることを可能にし、かつユーザがディスプレイ６１に触れることなくアプリケーションを変更する、またはユーザ入力機能を選択することを可能にする、いくつかのユーザ入力キーまたはボタン（ボタン６５など）も含む。図示していないが、ＰＤＡ５９は、他のコンピュータとの無線通信を可能にする内部アンテナおよび赤外線送受信機、ならびに他の計算装置とのハードウェア接続を可能にする接続ポートを含むこともできる。このようなハードウェア接続は、通常は、シリアルまたはＵＳＢポートを介して他のコンピュータに接続するクレードルによって行われる。したがって、これらの接続は、非ネットワーク接続である。１実施形態では、モバイルデバイス５９は、ＳＤカード６９を受け入れるＳＤカードスロット６７も含む。
【００７０】
[0077]  他の形態の装置１６も可能であることに留意されたい。
【００７１】
[0078]  図１２は、（例えば）システム１００を配備することができるコンピューティング環境の１実施形態を示す図である。図１２を参照すると、いくつかの実施形態を実施する例示的なシステムは、コンピュータ８１０の形態をした汎用計算装置を含む。コンピュータ８１０のコンポーネントとしては、処理ユニット８２０（プロセッサ１２０、１２２、１３２、１３４を含むことができる）、システムメモリ８３０、およびシステムメモリを含む様々なシステムコンポーネントを処理ユニット８２０に結合するシステムバス８２１が挙げられるが、これらに限定されるわけではない。システムバス８２１は、メモリバスまたはメモリ制御装置、周辺バス、および様々なバスアーキテクチャのうちのいずれかを用いたローカルバルなど、いくつかの種類のバス構造のうちのいずれかとすることができる。例えば、このようなアーキテクチャは、業界標準アーキテクチャ（ISA）バス、マイクロチャネルアーキテクチャ（MCA）バス、エンハンストＩＳＡ（EISA）バス、ビデオエレクトロニクススタンダーズアソシエーション（Video Electronics Standards Association）（VESA）ローカルバス、メザニンバスとも呼ばれる周辺装置相互接続（PCI）バスを含むが、これらに限定されるわけではない。
【００７２】
[0079]  コンピュータ８１０は、通常は、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ８１０がアクセスすることができる任意の入手可能な媒体とすることができ、揮発性媒体および不揮発性媒体の両方、ならびに取外し可能媒体および取外し不可能媒体の両方を含む。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができるが、これらに限定されるわけではない。コンピュータ記憶媒体は、変調データ信号または搬送波とは異なり、これらを含まない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報を格納するための任意の方法または技術で実装される揮発性媒体および不揮発性媒体の両方ならびに取外し可能媒体および取外し不能媒体の両方を含むハードウェア記憶媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル汎用ディスク（DVD）またはその他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ８１０がアクセスすることができるその他の任意の媒体を含むが、これらに限定されるわけではない。通信媒体は、通常は、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータをトランスポートメカニズムで実施するものであり、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特徴セットの１つまたは複数を有する、または信号の情報を符号化するように変化した信号を意味する。例えば、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、および音響、ＲＦ、赤外線およびその他の無線媒体などの無線媒体を含むが、これらに限定されるわけではない。上記のもののいずれかの組合せも、コンピュータ可読媒体の範囲に含まれるものとする。
【００７３】
[0080]  システムメモリ８３０は、読取り専用メモリ（ROM）８３１およびランダムアクセスメモリ（RAM）８３２など、揮発性および／または不揮発性メモリの形態をしたコンピュータ記憶媒体を含む。始動時などのコンピュータ８１０内の要素間の情報の転送を助ける基本ルーチンを含む基本入出力システム８３３（BIOS）は、通常はＲＯＭ８３１に格納される。ＲＡＭ８３２は、通常は、処理ユニット８２０が直ちにアクセスでき、かつ／または処理ユニット８２０によって現在操作されているデータおよび／またはプログラムモジュールを格納する。例えば、図１２は、オペレーティングシステム８３４、アプリケーションプログラム８３５、その他のプログラムモジュール８３６、およびプログラムデータ８３７を示しているが、これらに限定されるわけではない。
【００７４】
[0081]  コンピュータ８１０は、その他の取外し可能／取外し不能な揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。例示のみを目的として、図１２は、取外し不能な不揮発性磁気媒体の読取りまたは書込みを行うハードディスクドライブ８４１、取外し可能な不揮発性磁気ディスク８５２の読取りまたは書込みを行う磁気ディスクドライブ８５１、ＣＤ−ＲＯＭまたはその他の光学媒体などの取外し可能な不揮発性光学ディスク８５６の読取りまたは書込みを行う光学ディスクドライブ８５５を示している。この例示的な動作環境で使用することができるその他の取外し可能／取外し不能な揮発性／不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル汎用ディスク、デジタルビデオテープ、固体状態ＲＡＭ、固体状態ＲＯＭなどが挙げられるが、これらに限定されるわけではない。ハードディスクドライブ８４１は、通常は、インタフェース８４０などの取外し不能なメモリインタフェースを介してシステムバス８２１に接続され、磁気ディスクドライブ８５１および光学ディスクドライブ８５５は、通常は、インタフェース８５０などの取外し可能なメモリインタフェースを介してシステムバス８２１に接続される。
【００７５】
[0082]  図１２に示し上記で説明したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のコンピュータ８１０のデータの格納を実現する。図１２では、例えば、ハードディスクドライブ８４１は、オペレーティングシステム８４４、アプリケーションプログラム８４５、その他のプログラムモジュール８４６およびプログラムデータ８４７を格納するものとして示してある。なお、これらのコンポーネントは、オペレーティングシステム８３４、アプリケーションプログラム８３５、その他のプログラムモジュール８３６およびプログラムデータ８３７と同じであってもよいし、異なっていてもよい。オペレーティングシステム８４４、アプリケーションプログラム８４５、その他のプログラムモジュール８４６およびプログラムデータ８４７は、ここでは、少なくとも異なるコピーであることを示すために異なる番号を付してある。
【００７６】
[0083]  ユーザは、キーボード８６２、マイクロフォン８６３、およびマウス、トラックボールまたはタッチパッドなどのポインティングデバイス８６１などの入力装置を介してコンピュータ８１０にコマンドおよび情報を入力することができる。その他の入力装置（図示せず）は、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。上記その他の入力装置は、システムバスに結合されたユーザ入力インタフェース８６０を介して処理ユニット８２０に接続されることが多いが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（USB）などその他のインタフェースおよびバス構造によって接続することもできる。視覚ディスプレイ８９１またはその他のタイプの表示装置も、ビデオインタフェース８９０などのインタフェースを介してシステムバス８２１に接続される。このモニタの他に、コンピュータは、出力周辺インタフェース８９５を介して接続することができるスピーカ８９７およびプリンタ８９６などのその他の周辺出力装置を含むこともできる。
【００７７】
[0084]  コンピュータ８１０は、ネットワーク環境で、遠隔コンピュータ８８０など１つまたは複数の遠隔コンピュータとの論理接続を用いて動作する。遠隔コンピュータ８８０は、パーソナルコンピュータ、ハンドヘルド装置、サーバ、ルータ、ネットワークＰＣ、ピア装置またはその他の共通ネットワークノードとすることができ、通常は、コンピュータ８１０に関して上述した要素のうちの多数または全てを含む。図１２に示す論理接続は、ローカルエリアネットワーク（LAN）８７１および広域ネットワーク（WAN）８７３を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットで一般的である。
【００７８】
[0085]  ＬＡＮネットワーキング環境で使用されるときには、コンピュータ８１０は、ネットワークインタフェースまたはアダプタ８７０を介してＬＡＮ８７１に接続される。ＷＡＮネットワーキング環境で使用されるときには、コンピュータ８１０は、通常は、モデム８７２、またはその他のインターネットなどのＷＡＮ８７３を介して通信を確立する手段を含む。内蔵であっても外付けであってもよいモデム８７２は、ユーザ入力インタフェース８６０またはその他の適当なメカニズムを介してシステムバス８２１に接続することができる。ネットワーク環境では、コンピュータ８１０に関連して述べたプログラムモジュールまたはその一部は、遠隔のメモリ記憶装置に格納することができる。例えば、図１２は、遠隔アプリケーションプログラム８８５が遠隔コンピュータ８８０に常駐するものとして示しているが、これに限定されるわけではない。図示のネットワーク接続は例示であり、コンピュータ間で通信リンクを確立するその他の手段を使用することができることは理解されるであろう。
【００７９】
[0086]  また、本明細書に記載の複数の実施形態を組み合わせることもできることにも留意されたい。すなわち、１つの実施形態の１つまたは複数の特徴を、その他の実施形態の１つまたは複数の特徴と組み合わせることができる。これは、本明細書で企図されている。
【００８０】
[0087]  構造的特徴および／または方法論的動作に特有の表現で主題について説明したが、添付の特許請求の範囲に定義される主題は、上述の具体的な特徴または動作に必ずしも限定されるわけではないことを理解されたい。上述の具体的な特徴および動作は、特許請求の範囲を実施する例示的な形態として開示したものである。
【図１】
0006317754.tif 000002
【図２】
0006317754.tif 000003
【図３Ａ】
0006317754.tif 000004
【図３Ｂ】
0006317754.tif 000005
【図３Ｃ】
0006317754.tif 000006
【図４】
0006317754.tif 000007
【図５Ａ】
0006317754.tif 000008
【図５Ｂ】
0006317754.tif 000009
【図５Ｃ】
0006317754.tif 000010
【図５Ｄ】
0006317754.tif 000011
【図５Ｅ】
0006317754.tif 000012
【図５Ｆ】
0006317754.tif 000013
【図６】
0006317754.tif 000014
【図７】
0006317754.tif 000015
【図８】
0006317754.tif 000016
【図９】
0006317754.tif 000017
【図１０】
0006317754.tif 000018
【図１１】
0006317754.tif 000019
【図１２】
0006317754.tif 000020