(57)【特許請求の範囲】
【請求項１】
コンピュータにより実行されるシングルアプリケーションプログラムを含むコンピューティングシステムであって、
該シングルアプリケーションプログラムは、
シングルナビゲート可能ウィンドウと、
前記シングルアプリケーションプログラムの内部にあり、前記シングルナビゲート可能ウィンドウがそれに対してユーザによりナビゲートされ得る複数の種々の機能と、
前記シングルアプリケーションプログラム内での前記複数の種々の機能間のユーザのナビゲーション行動を管理するように構成されたナビゲーションモデルと、
前記シングルナビゲート可能ウィンドウと関連するナビゲーションボタンを含み、前記シングルウィンドウ内の個別の機能と前記複数の種々の機能をナビゲートするためにユーザによって使用されるように構成されたナビゲーション支援ツール（navigation instrumentalities）と
を提供するように構成されており、
前記複数の種々の機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウは、複数の種々の機能のうちの少なくとも２つに関して、前記複数の種々の機能のうちの少なくとも２つの機能のそれぞれに対する固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドとを有するコマンドエリアを含み、
各前記固有コマンドは前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行されるものであり、
前記グローバルコマンドは前記複数の種々の機能のうち前記少なくとも２つの機能の両方に表示されるが、前記複数の種々の機能のうちの前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうちの前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行することを特徴とするコンピューティングシステム。
【請求項２】
請求項１に記載のコンピューティングシステムにおいて、前記ナビゲーションモデルは、ナビゲーションスタックを含むことを特徴とするコンピューティングシステム。
【請求項３】
請求項２に記載のコンピューティングシステムにおいて、前記ナビゲーションスタックは、バックアンドトランケート(back-and-truncate) スタックを含むことを特徴とするコンピューティングシステム。
【請求項４】
請求項１に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールの１つは、それに対して前記シングルナビゲート可能ウィンドウがナビゲートされ得る、複数の種々の機能の各々に関連するリンクを含むことを特徴とするコンピューティングシステム。
【請求項５】
請求項１に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールの１つは、個別機能内で、また種々の機能間で前記シングルナビゲート可能ウィンドウをナビゲートするために、前記ナビゲーションモデルに関連して使用できるナビゲーションボタンを含むことを特徴とするコンピューティングシステム。
【請求項６】
請求項１に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールは、
それに対してシングルナビゲート可能ウィンドウがナビゲートされ得る複数の種々の機能の各々に関連するリンクと、
個別機能内で、また種々の機能間で前記シングルナビゲート可能ウィンドウをナビゲートするために、前記ナビゲーションモデルに関連して使用できるナビゲーションボタンと、
を含むことを特徴とするコンピューティングシステム。
【請求項７】
請求項１に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、ユーザが種々の機能へナビゲートすると、前記コマンドエリア内でユーザに提示される固有コマンドを自動的に変更することを特徴とするコンピューティングシステム。
【請求項８】
請求項１に記載のコンピューティングシステムにおいて、前記複数の種々の機能は、ドキュメント中心（document centric）機能を含むことを特徴とするコンピューティングシステム。
【請求項９】
請求項１に記載のコンピューティングシステムにおいて、前記複数の種々の機能の各々は、ユーザが異なるタスクを遂行することを可能にすることを特徴とするコンピューティングシステム。
【請求項１０】
請求項９に記載のコンピューティングシステムにおいて、前記異なるタスクは、各々が異なるドキュメントタイプと関係づけられていることを特徴とするコンピューティングシステム。
【請求項１１】
請求項１に記載のコンピューティングシステムにおいて、
前記グローバルコマンドは、前記文字処理機能で表示されている場合と、前記ウェブブラウザ機能で表示されている場合の両方において、該グローバルコマンドが「ヘルプ」コマンドを含むことを示すが、前記文字処理機能が選択されているときには前記文字処理機能をユーザが理解するのを助ける第１のコマンドを実行し、前記ウェブブラウザ機能が選択されているときには前記ウェブブラウザ機能をユーザが理解するのを助ける第２のコマンドを実行することを特徴とするコンピューティングシステム。
【請求項１２】
請求項１に記載のコンピューティングシステムにおいて、
前記固有コマンドは、前記文字処理機能において表示されているときには「テキストボールド」コマンドを含むことを特徴とするコンピューティングシステム。
【請求項１３】
コンピュータにより実行されるシングルアプリケーションプログラムを含むコンピューティングシステムであって、
該シングルアプリケーションプログラムは、
シングルナビゲート可能ウィンドウと、
前記シングルアプリケーションプログラムの内部にあり、前記シングルナビゲート可能ウィンドウがそれに対してユーザによりナビゲートされ得る複数の種々のドキュメント中心機能と、
種々の機能を前後に前記シングルナビゲート可能ウィンドウをユーザがナビゲートすることを可能にするように構成されたナビゲーションスタックと、
を提供するように構成されており、
前記複数の種々のドキュメント中心機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウは、前記複数の種々のドキュメント中心機能のうち少なくとも２つの機能に関して、前記複数の種々のドキュメント中心機能のうちの少なくとも２つの機能のそれぞれに対する固有コマンドと、前記複数の種々のドキュメント中心機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドを有するコマンドエリアを含み、
各前記固有コマンドは前記複数の種々のドキュメント中心機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行されるものであり、
前記グローバルコマンドは前記複数の種々のドキュメント中心機能のうち前記少なくとも２つの機能の両方に表示されるが、前記複数の種々のドキュメント中心機能のうち前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々のドキュメント中心機能のうち前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行することを特徴とするコンピューティングシステム。
【請求項１４】
請求項１３に記載のコンピューティングシステムにおいて、前記ナビゲーションスタックは、バックアンドトランケート (back-and-truncate) ナビゲーションスタックを含むことを特徴とするコンピューティングシステム。
【請求項１５】
請求項１３に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、前記シングルナビゲート可能ウィンドウに関連するナビゲーション支援ツールを提供するように構成されていて、前記ナビゲーション支援ツールは、個別機能内で、また前記複数の種々のドキュメント中心機能へ、前記シングルウィンドウをナビゲートするためにユーザによって使用されるように構成されていることを特徴とするコンピューティングシステム。
【請求項１６】
請求項１５に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールの１つは、それに対して前記シングルナビゲート可能ウィンドウがナビゲートされ得る、複数の種々のドキュメント中心機能の各々に関連するリンクを含むことを特徴とするコンピューティングシステム。
【請求項１７】
請求項１５に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールの１つは、個別機能内で、また複数の種々のドキュメント中心機能間で前記シングルナビゲート可能ウィンドウをナビゲートするために、前記ナビゲーションスタックに関連して使用できるナビゲーションボタンを含むことを特徴とするコンピューティングシステム。
【請求項１８】
請求項１５に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールは、
それに対してシングルナビゲート可能ウィンドウがナビゲートされ得る、複数の種々のドキュメント中心機能の各々に関連するリンクと、
個別機能側で、また複数の種々のドキュメント中心機能間でシングルナビゲート可能ウィンドウをナビゲートするために、前記ナビゲーションスタックに関連して使用できるナビゲーションボタンと、
を含むことを特徴とするコンピューティングシステム。
【請求項１９】
請求項１３に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、拡張可能な機能を組み込むように構成されていることを特徴とするコンピューティングシステム。
【請求項２０】
請求項１９に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、個別機能を実現している１つまたは２つ以上のソフトウェアモジュールを、ネットワークを通して受け取るように構成されていることを特徴とするコンピューティングシステム。
【請求項２１】
請求項１９に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、個別機能を実現している１つまたは２つ以上のソフトウェアモジュールを、インターネット (the Internet)を通して受け取るように構成されていることを特徴とするコンピューティングシステム。
【請求項２２】
請求項１９に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、個別機能を実現している１つまたは２つ以上のソフトウェアモジュールを、種々の加入者が種々の機能へアクセスするときに料金を支払う加入者モデルと一緒に受け取るように構成されていることを特徴とするコンピューティングシステム。
【請求項２３】
コンピュータにより実行されるシングルアプリケーションプログラムを含むコンピューティングシステムであって、
該シングルアプリケーションプログラムは、
該シングルアプリケーションプログラムによって提供可能であり、複数の種々の機能間でナビゲートするときにユーザが使用するシングルナビゲート可能ウィンドウを表示し、
種々の機能を拡張可能な形で組み込んでおき、ユーザが前記シングルナビゲート可能ウィンドウを使用して、該種々の組み込まれた機能へナビゲートできるように構成されており、
前記種々の組み込まれた機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウは、前記複数の種々のドキュメント中心機能のうち少なくとも２つの機能に関して、前記複数の種々の機能のうちの少なくとも２つの機能のそれぞれに対する固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドを有するコマンドエリアを含み、
各前記固有コマンドは前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行されるものであり、
前記グローバルコマンドは前記複数の種々の機能のうち前記少なくとも２つの機能の両方に表示されるが、前記複数の種々の機能のうち前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうち前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行することを特徴とするコンピューティングシステム。
【請求項２４】
請求項２３に記載のコンピューティングシステムにおいて、前記種々の組み込まれた機能は、ネットワークを通して前記シングルアプリケーションプログラムに配信可能であることを特徴とするコンピューティングシステム。
【請求項２５】
請求項２４に記載のコンピューティングシステムにおいて、前記種々の組み込まれた機能は、インターネット (the Internet) を通して前記シングルアプリケーションプログラムに配信可能であることを特徴とするコンピューティングシステム。
【請求項２６】
請求項２４に記載のコンピューティングシステムにおいて、シングルアプリケーションプログラムは、シングルアプリケーションプログラム内でユーザのナビゲーション行動を管理するように構成されたナビゲーションモデルを提供するように構成されていることを特徴とするコンピューティングシステム。
【請求項２７】
請求項２６に記載のコンピューティングシステムにおいて、前記ナビゲーションモデルは、ナビゲーションスタックを含むことを特徴とするコンピューティングシステム。
【請求項２８】
請求項２４に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、前記シングルナビゲート可能ウィンドウに関連するナビゲーション支援ツールを提供するように構成されていて、該ナビゲーション支援ツールは、個別機能内で、また種々の組み込まれた機能へ前記シングルウィンドウをナビゲートするためにユーザによって使用されるように構成されていることを特徴とするコンピューティングシステム。
【請求項２９】
請求項２８に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールの１つは、それに対して前記シングルナビゲート可能ウィンドウがナビゲートされ得る、複数の種々の組み込まれた機能の各々に関連するリンクを含むことを特徴とするコンピューティングシステム。
【請求項３０】
請求項２８に記載のコンピューティングシステムにおいて、前記ナビゲーション支援ツールの１つは、個別機能内で、また種々の組み込みこまれた機能間で前記シングルナビゲート可能ウィンドウをナビゲートするために使用できるナビゲーションボタンを含むことを特徴とするコンピューティングシステム。
【請求項３１】
請求項２３に記載のコンピューティングシステムにおいて、前記複数の種々の組み込まれた機能は、ドキュメント中心機能を含むことを特徴とするコンピューティングシステム。
【請求項３２】
請求項３１に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムに組み込むことができる個別の種々の機能は、料金ベース加入モデル（fee-based subscription model）と一緒に前記アプリケーションプログラムに配信可能であることを特徴とするコンピューティングシステム。
【請求項３３】
ネットワークからアクセス可能でコンピュータにより実行されるシングルアプリケーションプログラムと、
前記アプリケーションプログラムによって提供されるシングルナビゲート可能ウィンドウと、
該アプリケーションプログラムによって提供され、また該アプリケーションプログラムの内部にある複数の種々の機能であって、該プログラムは、ユーザが前記シングルナビゲート可能ウィンドウをナビゲートでき、かつ該種々の機能と情報をやりとりして異なるタスクを遂行できるように構成されている、複数の種々の機能と、
ユーザが前記シングルナビゲート可能ウィンドウを種々の機能を前後にナビゲートできるように構成されているナビゲーションスタックと
を含むコンピューティングシステムであって、
前記種々の組み込まれた機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウは、前記複数の種々のドキュメント中心機能のうち少なくとも２つの機能に関して、前記複数の種々の機能のうちの少なくとも２つの機能のそれぞれに対する固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドを有するコマンドエリアを含み、
各前記固有コマンドは前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行されるものであり、
前記グローバルコマンドは前記複数の種々の機能のうち前記少なくとも２つの機能の両方に表示されるが、前記複数の種々の機能のうち前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうち前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを遂行することを特徴とするコンピューティングシステム。
【請求項３４】
請求項３３に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、機能が拡張可能であるように構成されていることを特徴とするコンピューティングシステム。
【請求項３５】
請求項３３に記載のコンピューティングシステムにおいて、前記シングルアプリケーションプログラムは、該シングルアプリケーションプログラム内のユーザのナビゲーション行動を管理するように構成されたナビゲーションモデルを提供するように構成されていることを特徴とするコンピューティングシステム。
【請求項３６】
請求項３３に記載のコンピューティングシステムにおいて、前記種々の機能の少なくとも一部は、ネットワークを通して配信可能であるソフトウェアモジュールを含むことを特徴とするコンピューティングシステム。
【請求項３７】
請求項３６に記載のコンピューティングシステムにおいて、前記ネットワークはインターネット (the Internet) を含むことを特徴とするコンピューティングシステム。
【請求項３８】
請求項３６に記載のコンピューティングシステムにおいて、前記ソフトウェアモジュールは、料金ベース加入モデルのコンテキストで配信可能であることを特徴とするコンピューティングシステム。
【請求項３９】
コンピュータにより実行されるシングルアプリケーションプログラムを提供するように構成されたソフトウェアを備えたソフトウェアプラットフォームを含むコンピュータシステムであって、
該シングルアプリケーションプログラムは、
シングルナビゲート可能ウィンドウと、
ユーザが種々のタスクを遂行できるようにする種々の機能へ前記シングルナビゲート可能ウィンドウをナビゲートする機能と、
ユーザのナビゲーション行動を管理する機能と、
固有コマンドを提供し、ユーザのコンテキストがユーザのナビゲーション行動に従って変化したときに、該固有コマンドを変更する機能と、
個別の種々の機能を含む個々のソフトウェアコンポーネントを受け取り、それらを前記シングルアプリケーションプログラムに組み込む機能と、
を提供するアプリケーションプログラムであり、
前記個別の種々の機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウは、複数の種々の機能のうちの少なくとも２つの機能に関して、前記複数の種々の機能のうちの少なくとも２つの機能のそれぞれ対する固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドを有するコマンドエリアを含み、
各前記固有コマンドは前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行されるものであり、
前記グローバルコマンドは前記複数の種々の機能のうち前記少なくとも２つの機能の両方に表示されるが前記複数の種々の機能のうちの前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうちの前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行することを特徴とするコンピューティングシステム。
【請求項４０】
コンピュータによって実行されるときに、ユーザインタフェース（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ  ＵＩ）を提供する実体のあるコンポーネントを記録したコンピュータ読取可能記録媒体であって、
該ユーザインタフェースは、
複数の種々の機能を提供しかつ含むシングルアプリケーションに関連して、ユーザが複数のタスクを遂行できるようにする複数の種々の機能へ、またその機能間でナビゲート可能なシングルウィンドウと、
複数の種々の機能へかつそれらの機能間でユーザがナビゲートできるように構成されたナビゲーションボタンを含むナビゲーション支援ツールと、
を含んでおり、
前記複数の種々の機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウは、複数の種々の機能のうちの少なくとも２つの機能に関して、前記複数の種々の機能のうちの少なくとも２つの機能のそれぞれに対する固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドを有するコマンドエリアを含み、
各前記固有コマンドは前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行されるものであり、
前記グローバルコマンドは前記複数の種々の機能のうち前記少なくとも２つの機能の両方に表示されるが、前記複数の種々の機能のうちの前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうちの前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行することを特徴とするコンピュータ読取可能記録媒体。
【請求項４１】
請求項４０に記載のコンピュータ読取可能記録媒体において、前記ユーザインタフェースは、ユーザが前記複数の種々の機能へ、またその機能間でナビゲートしているときにユーザのコンテキストが変化すると、前記固有コマンドを自動的に変化するように構成されたことを特徴とするコンピュータ読取可能記録媒体。
【請求項４２】
請求項４０に記載のコンピュータ読取可能記録媒体において、前記ナビゲーション支援ツールは、その各々が種々の機能と関連付けられている複数のリンクを含み、該リンクは、選択されたリンクに関連する機能へ前記シングルウィンドウをナビゲートするように、ユーザによって選択可能であることを特徴とするコンピュータ読取可能記録媒体。
【請求項４３】
請求項４０に記載のコンピュータ読取可能記録媒体において、前記ナビゲーション支援ツールは、ナビゲーションボタンを含むことを特徴とするコンピュータ読取可能記録媒体。
【請求項４４】
請求項４０に記載のコンピュータ読取可能記録媒体において、前記ナビゲーション支援ツールは、
その各々が種々の機能と関連付けられている複数のリンクであって、該リンクは、選択されたリンクに関連する機能へ前記シングルウィンドウをナビゲートするように、ユーザによって選択可能である複数のリンクと、
ナビゲーションボタンと、
を含むことを特徴とするコンピュータ読取可能記録媒体。
【請求項４５】
プログラムされたコンピュータよって実行されるコンピューティング方法であって、該コンピューティング方法は、
シングルアプリケーションプログラムによって提供され、またそのシングルアプリケーションプログラムに含まれる複数の種々の機能間でナビゲート可能なシングルナビゲート可能ウィンドウを含むユーザインタフェースを表示し、
特定の機能を選択したことを示すユーザ入力を受け取り、
前記ユーザ入力の受け取りに応答して、前記特定の選択された機能へ前記シングルナビゲート可能ウィンドウをナビゲートし、かつ前記特定の選択された機能に関連するタスクをユーザが遂行できるようにする当該機能のインジケータを前記ウィンドウ中に表示し、
ユーザのナビゲーション行動に対応するエントリを保持するナビゲーションモデルを用いて前記ユーザのナビゲーション行動を管理することを含み、
前記複数の種々の機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウの前記表示は、複数の種々の機能のうちの少なくとも２つの機能に関して、前記複数の種々の機能のうちの少なくとも２つの機能のそれぞれに対する固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドを有するコマンドエリアの表示を含み、
各前記固有コマンドは前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行されるものであり、
前記グローバルコマンドは前記複数の種々の機能のうち前記少なくとも２つの機能の両方に表示されるが、前記複数の種々の機能のうちの前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうちの前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行することを特徴とするコンピューティング方法。
【請求項４６】
請求項４５に記載のコンピューティング方法において、前記管理することは、
ユーザの行動がナビゲーションモデルのエントリに影響を与えるかどうかを確かめ、
ユーザの行動がナビゲーションモデルのエントリの１つまたは２つ以上に影響を与えることが確かめられると、該１つまたは２つ以上のエントリを操作する、
ことを含むことを特徴とするコンピューティング方法。
【請求項４７】
請求項４６に記載のコンピューティング方法において、前記操作することは、エントリを削除することを含むことを特徴とするコンピューティング方法。
【請求項４８】
請求項４６に記載のコンピューティング方法において、前記操作することは、ユーザのナビゲーション行動に対応するエントリから離れた少なくとも１つのエントリである、あるエントリを取り除くことを含むことを特徴とするコンピューティング方法。
【請求項４９】
請求項４６に記載のコンピューティング方法において、前記操作することは、あるエントリを追加することを含むことを特徴とするコンピューティング方法。
【請求項５０】
請求項４６に記載のコンピューティング方法において、前記操作することは、ナビゲーションアクションでないユーザアクションに応答して、前記ナビゲーションモデルのエントリを再編成することを含むことを特徴とするコンピューティング方法。
【請求項５１】
請求項４６に記載のコンピューティング方法において、前記操作することは、少なくとも１つのナビゲーションモデルのエントリに関連する、少なくとも１つのURLを変更することを含むことを特徴とするコンピューティング方法。
【請求項５２】
請求項４６に記載のコンピューティング方法において、前記操作することは、少なくとも１つのナビゲーションモデルのエントリに関連する、少なくとも１つのタイトルを変更することを含むことを特徴とするコンピューティング方法。
【請求項５３】
請求項４６に記載のコンピューティング方法において、前記操作することは、あるエントリが以前にポイントしていたロケーションとは異なるロケーションをポイントするようにエントリを変更することを含むことを特徴とするコンピューティング方法。
【請求項５４】
請求項４６に記載のコンピューティング方法において、前記ナビゲーションモデルは、バックアンドトランケート (back-and-truncate) ナビゲーションスタックを含むことを特徴とするコンピューティング方法。
【請求項５５】
請求項４５に記載のコンピューティング方法において、前記ユーザインタフェースを表示することは、ユーザが特定の機能の選択を入力できるように構成されたナビゲーション支援ツールを、前記シングルナビゲート可能ウィンドウの最も近くに表示することを含むことを特徴とするコンピューティング方法。
【請求項５６】
請求項５５に記載のコンピューティング方法において、前記ナビゲーション支援ツールの１つは、前記複数の種々の機能の各々に関連するリンクを含むことを特徴とするコンピューティング方法。
【請求項５７】
請求項５５に記載のコンピューティング方法において、前記ナビゲーション支援ツールの１つは、前記複数の種々の機能間で前記シングルナビゲート可能ウィンドウをナビゲートするためにユーザによって使用できる、ナビゲーションボタンを含むことを特徴とするコンピューティング方法。
【請求項５８】
プログラムされたコンピュータよって実行されるコンピューティング方法であって、該コンピューティング方法はユーザインタフェースを表示することを含み、
該ユーザインタフェースは、
シングルアプリケーションプログラムによって提供されかつそれを内蔵している複数の種々の機能、すなわちウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能間でナビゲートできるシングルナビゲート可能ウィンドウであって、複数の種々の機能のうちの少なくとも２つの機能に関して、前記複数の種々の機能のうちの少なくとも２つ機能のそれぞれついての固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方についてのグローバルコマンドを有するコマンドエリアを含むシングルナビゲート可能ウィンドウと、
前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドとして表示され、使用可能であって、実行される各前記固有コマンドと、
前記複数の種々の機能のうち前記少なくとも２つの機能の両方に表示されるが、前記複数の種々の機能のうちの前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうちの前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行する前記グローバルコマンドと、
特定の機能の選択を可能にするように構成され、複数の種々の機能の各々に関連するリンクと、該種々の機能間で前記シングルナビゲート可能ウィンドウをナビゲートするためにユーザによって使用できるナビゲーションボタンとを含むナビゲーション支援ツールとを含み、
前記コンピューティング方法は、さらに
特定の機能の選択を指示するユーザ入力を、前記ナビゲーション支援ツールを介して受け取り、
前記ユーザ入力を受け取ったことに応答して、前記特定の選択された機能へ前記シングルナビゲート可能ウィンドウをナビゲートさせ、該特定の選択された機能に関連するタスクをユーザが遂行できるようにする当該機能のインジケータを前記ウィンドウに表示することを含むことを特徴とするコンピューティング方法。
【請求項５９】
請求項５８に記載のコンピューティング方法において、前記複数の種々の機能は、ドキュメント中心機能を含むことを特徴とするコンピューティング方法。
【請求項６０】
プログラムされたコンピュータよって実行されるコンピューティング方法であって、該コンピューティング方法は、
シングルアプリケーションプログラムによって提供可能である複数の種々の機能間でナビゲートするときユーザによって使用されるシングルナビゲート可能ウィンドウを表示するように構成されたシングルアプリケーションプログラムを提供すること、
種々の機能を拡張可能な形で前記シングルアプリケーションプログラム内に組み込んでおいて、ユーザが前記シングルナビゲート可能ウィンドウを使用して、該複数の組み込まれた機能へナビゲートできるようにすることを含み、
前記複数の組み込まれた機能は以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含み、
前記シングルナビゲート可能ウィンドウの前記表示は、複数の種々の機能のうちの少なくとも２つの機能に関して、前記複数の種々の機能のうちの少なくとも２つの機能のそれぞれに対する固有コマンドと、前記複数の種々の機能のうちの少なくとも２つの機能の両方に対するグローバルコマンドを有するコマンドエリアの表示を含み、
各前記固有コマンドは、前記複数の種々の機能のうちの少なくとも２つの機能の１つの機能のみについて特定するコマンドで表示され、そのコマンドで使用可能で、かつそのコマンドを実行するものであり、
前記グローバルコマンドは、前記複数の種々の機能のうちの前記少なくとも２つの機能の両方に表示されるが、前記複数の種々の機能のうちの前記少なくとも２つの機能の１つについて表示するときは、前記複数の種々の機能のうち前記少なくとも２つの機能のうちの別の機能について表示するときと比べて、異なるコマンドを実行することを特徴とするコンピューティング方法。
【請求項６１】
請求項６０に記載のコンピューティング方法において、前記組み込むことは、１つまたは２つ以上の機能を実現しているソフトウェアモジュールを、ネットワークを通して配信することを含むことを特徴とするコンピューティング方法。
【請求項６２】
請求項６０に記載のコンピューティング方法において、前記組み込むことは、１つまたは２つ以上の機能を実現しているソフトウェアモジュールを、インターネット（ｔｈｅ  Ｉｎｔｅｒｎｅｔ）を通して配信することを含むこと
を特徴とするコンピューティング方法。
【請求項６３】
請求項６０に記載のコンピューティング方法において、前記シングルアプリケーションプログラムは、該シングルアプリケーションプログラム内でユーザのナビゲート行動を管理するように構成されたナビゲーションモデルを提供するように構成されていることを特徴とするコンピューティング方法。
【請求項６４】
請求項６０に記載のコンピューティング方法において、前記シングルアプリケーションプログラムは、前記シングルナビゲート可能ウィンドウに関連するナビゲーション支援ツールを表示するように構成され、かつユーザが前記種々の組み込まれた機能へ該シングルウィンドウをナビゲートできるように構成されていることを特徴とするコンピューティング方法。
【請求項６５】
請求項６４に記載のコンピューティング方法において、前記ナビゲーション支援ツールは、次に挙げたものの１つ以上、すなわち、
前記シングルナビゲート可能ウィンドウがナビゲートできる前記種々の組み込まれた機能の各々に関連するリンクと、
前記種々の組み込まれた機能間で前記シングルナビゲート可能ウィンドウをナビゲートするために使用することのできるナビゲーションボタンと、
を含むことを特徴とするコンピューティング方法。
【請求項６６】
プログラムされたコンピュータよって実行されるコンピューティング方法であって、該コンピューティング方法は、
シングルアプリケーションプログラムによって提供され、またそのシングルアプリケーションプログラムに含まれる複数の種々のドキュメント中心機能間でナビゲートでき、グローバルコマンドと第１のドキュメント中心機能に対するコマンドで使用できそのコマンドを実行する第１の固有コマンドとを有するコマンドエリアを含むシングルナビゲート可能ウィンドウを含むユーザインタフェースを表示し、
特定の第２のドキュメント中心機能の選択を指示するユーザ入力を受け取り、
前記ユーザ入力を受け取ったことに応答して、前記選択された第２のドキュメント中心機能へ前記シングルナビゲート可能ウィンドウをナビゲートし、かつ前記ウィンドウに前記同一グローバルコマンドと第２の固有コマンドとを表示し、ここで、前記第２の固有コマンドは前記選択された第２のドキュメント中心機能のためのコマンドで使用可能でかつそのコマンドを実行するものであり、前記グローバルコマンドは前記選択された第２のドキュメント中心機能に対して、前記第１のドキュメント中心機能に対するよりも異なるコマンドを実行するものであり、かつ前記選択された第２の機能に関連するタスクをユーザが遂行することを可能にする当該機能のインジケータを表示し、
ユーザのナビゲーション行動に対応するエントリを保持するナビゲーションモデルを使用して該ユーザのナビゲーション行動を管理することを含み、
前記複数の種々のドキュメント中心機能は、以下の、ウェブブラウザ機能、プランナ機能、電子メール機能、コンタクト機能、文字処理機能のうちの２つ以上の機能を含むことを特徴とするコンピューティング方法。
【請求項６７】
請求項６６に記載のコンピューティング方法において、前記ドキュメント中心機能は、以下に挙げるものの各々、すなわち、ウェブブラウザ機能、電子メール機能、およびワードプロセッシング機能を含むことを特徴とするコンピューティング方法。
【請求項６８】
請求項６６に記載のコンピューティング方法において、さらに、複数の利用可能ドキュメントタイプから新たなドキュメントを作成するためのユーザ入力を受け取ることを含み、前記ナビゲートすることは、対応するタイプの空ドキュメントへ前記シングルウィンドウをナビゲートすることを含むことを特徴とするコンピューティング方法。
【請求項６９】
請求項６８に記載のコンピューティング方法において、さらに、前記新たなドキュメントに対応するエントリをナビゲーションモデルに作成することを含み、該ナビゲーションモデルは、ユーザのナビゲーション行動を管理するために使用されることを特徴とするコンピューティング方法。
【請求項７０】
請求項６６に記載のコンピューティング方法において、前記複数の種々のドキュメント中心機能は、ユーザによって作成できる種々のドキュメントタイプに関連づけられており、さらに、ユーザが特定のドキュメントタイプのドキュメントでの作業を完了したことを示すユーザ入力を受け取り、その応答として、該ドキュメントタイプに基づいて該ドキュメントを自動的にパブリッシュ（公開）することを含むことを特徴とするコンピューティング方法。
【請求項７１】
請求項６６に記載のコンピューティング方法において、前記管理することは、
ユーザの行動がナビゲーションモデルのエントリに影響するかどうかを確かめ、
ユーザの行動がナビゲーションモデルの１つまたは２つ以上のエントリに影響することが確かめられると、前記１つまたは２つ以上のエントリを操作する、
ことを含むことを特徴とするコンピューティング方法。
【請求項７２】
請求項７１に記載のコンピューティング方法において、前記操作することは、エントリを削除することを含むことを特徴とするコンピューティング方法。
【請求項７３】
請求項７１に記載のコンピューティング方法において、前記操作することは、ユーザの現ナビゲーション行動に対応するエントリから離れている、少なくとも１つのエントリであるエントリを削除することを含むことを特徴とするコンピューティング方法。
【請求項７４】
請求項７１に記載のコンピューティング方法において、前記操作することは、エントリを追加することを含むことを特徴とするコンピューティング方法。
【請求項７５】
請求項７１に記載のコンピューティング方法において、前記操作することは、ナビゲーションアクションでないユーザアクションに応答して、ナビゲーションモデルのエントリを再編成することを含むことを特徴とするコンピューティング方法。
【請求項７６】
請求項７１に記載のコンピューティング方法において、前記操作することは、ナビゲーションモデルの少なくとも１つのエントリに関連する、少なくとも１つのURLを変更することを含むことを特徴とするコンピューティング方法。
【請求項７７】
請求項７１に記載のコンピューティング方法において、前記操作することは、あるエントリが以前にポイントしていたロケーションとは異なるロケーションをポイントするようにエントリを変更することを含むことを特徴とするコンピューティング方法。
【請求項７８】
請求項６６に記載のコンピューティング方法において、前記第１のドキュメント中心機能は前記プランナ機能であり、前記選択された第２のドキュメント中心機能は前記ウェブブラウザ機能であり、前記グローバルコマンドは次のこと、すなわち「サーチ」が前記第１と第２のドキュメント中心機能の両方において前記グローバルコマンドにより実行されるが、前記第１と第２のドキュメント中心機能では異なるサーチコマンドが実行され、前記プランナ機能で選択されているときには第１のサーチコマンドがスケジュールをサーチし、また前記ウェブブラウザ機能で選択されているときにはウェブサイトにおいて第２のサーチコマンドが情報をサーチすることを示していることを特徴とするコンピューティング方法。
【発明の詳細な説明】
【０００１】
技術分野
本発明は、一般的には、コンピューティングシステムと方法に関し、さらに具体的には、コンピューティング環境内で情報の作成と使用を容易化するシステムと方法に関する。
【０００２】
発明の背景
ソフトウェアアプリケーション設計で現在人気のあるパラダイムでは、コンピューティングデバイス上で実行されているアプリケーションごとに、別々の、時には異なるウィンドウが提供されるようになっている。ユーザが特定のアプリケーションを使用したいときは、ユーザは、そのときにコンピューティングシステムによって１つまたは２つ以上のウィンドウの形で提示されるアプリケーションをオープンし、そのウィンドウ上でアプリケーションとやりとりしているのが代表的である。例えば、ワードプロセッシングアプリケーション（Microsoft Wordなど）はウィンドウに表示されるのが代表的であり、そのウィンドウには、ユーザがドキュメントを作成し、あるいはすでにデータベースにあるドキュメントを取り出し、編集するためのエリアがある。ユーザが自分のEメールを読みたいときは、Eメールアプリケーション（Microsoft Outlookなど）をオープンするのが代表的であり、このアプリケーションは、ワードプロセッシングウィンドウとは別で、異なる別のウィンドウに表示されるのが代表的である。ユーザには、管理するウィンドウとして、ワードプロセッシングウィンドウとEメールウィンドウの２つのウィンドウが表示されることになる。
【０００３】
従来、ユーザは、多くの場合、ユーザのディスプレイの最下部に置かれているタスクバーを使用して複数のウィンドウを管理していた。タスクバーは非常に細長いバーで、ユーザのディスプレイの大部分にわたって延長可能であり、そこには、ユーザが使用中または使用したことのあるアプリケーションまたはドキュメントへのレファレンスが置かれている。ユーザは、例えば、ワードプロセッシングアプリケーション内で作業したときは、Eメールウィンドウを「最小化」することができる。Eメールウィンドウが最小化されると、Eメールアプリケーションへのレファレンスは、タスクバーに置かれることになる。ワードプロセッシングアプリケーションで作業をしている途中でユーザがEメールを受信したときは、ユーザは、タスクバーに置かれているEメールアプリケーションへのレファレンスをクリックすることで、Eメールウィンドウを復元（リストア）することができる。これによりEメールアプリケーションが復元されるので、ユーザはEメールアプリケーションとやりとりして、Eメールを読み取ることが可能になる。Eメールメッセージを読んでいる途中で、そのメッセージは、さらに別のウィンドウに表示される可能性がある。ユーザがEメールメッセージに応答することを選んだときは、ユーザは、４番目のウィンドウである「応答」ウィンドウで応答を準備するのが代表的であり、このウィンドウもユーザが管理しなければならない。
【０００４】
上述したシナリオは、ユーザが２つのアプリケーションだけをオープンしたときの、ウィンドウ管理シナリオの単純な例を構成している。考えられるケースとして、ユーザがその日に作業しているアプリケーションが多数（例えば、４またはそれ以上）である場合がある。具体例として、ユーザがその日に計算している途中で、次に例示する４つのアプリケーション、すなわち、ワードプロセッシングアプリケーション、プレゼンテーションアプリケーション（Microsoft Powerpointなど）、Webブラウザアプリケーション（Microsoft Internet Exploreなど）、およびEメールアプリケーションを使用する必要が起こる場合が考えられる。
【０００５】
代表例として、多数のユーザが行うことは、これらのアプリケーションをすべてオープンしたあとで、異なるアプリケーションへのアクセスが必要になったとき、アプリケーションごとに別々で、異なるウィンドウを管理することである。スクリーンのアプリケーション管理部分では、「ウィンドウ環境(windowing environment)」と呼ばれるものが使用されている。しかし、ウィンドウ環境は、必ずしも、すべての潜在的コンピュータユーザに直観的に理解されているとは限らない。ユーザに関する研究で一貫して明らかになったことは、ウィンドウ環境の新規ユーザにとって最大のハードルの１つは、ウィンドウが重なり合うように「階層化」されている、ウィンドウシステムを学んで理解することである。例えば、図１に例示するユーザのディスプレイ１０には、４つの例示ウィンドウ１２、１４、１６、１８があり、それぞれは、ワードプロセッサアプリケーション、プレゼンテーションアプリケーション、Webブラウザアプリケーション、およびEメールアプリケーションに専用化されている。これらのウィンドウは相互に重なり合うように階層化されているため、新規コンピュータユーザにとっては、その概念を理解し、管理することが困難になることがある。例えば、ユーザによっては、ウィンドウを管理するためにタスクバーの使い方を理解していないこともあり得る。そのようなユーザは、例えば、アプリケーションを最小化するつもりでいたのに、そのアプリケーションを誤ってクローズしてしまうことがある。さらに、これらのユーザは、別々のウィンドウをディスプレイ上で動かし回す方法が分かっていないか、あるいは理解していない場合もある。さらに、別のウィンドウがユーザによって誤ってクリックされることもあり得る。例えば、ユーザがあるアプリケーションに関連するウィンドウにいるとき、別のアプリケーションに関連するウィンドウのエッジを誤ってクリックしてしまい、別のアプリケーションの中に自分がいることに気づくことがある。最後に、単純なことであるが、多くのユーザは、スクリーンが多数の層からなることを理解していない。ユーザは、一番上のウィンドウだけが、やりとりできるウィンドウと思い込み、以前のウィンドウは失われたものと思っている。
【０００６】
しかし、ウィンドウ環境が難題となっているのは、新規コンピュータユーザだけではない。ウィンドウ環境は、この環境に精通するユーザにとっても難題となることがある。具体的に説明すると、複数のウィンドウ管理は、特に、管理しようとするウィンドウが多数で、異なっているときは、コンピュータユーザにとっては煩わしくなっている。例えば、多数の異なるアプリケーションをユーザが実行していて、ユーザのディスプレイの最下部に置かれたタスクバーで管理しているとき、あるアプリケーションから別のアプリケーションへ切り替えるためには、ユーザは、関心のあるアプリケーションを参照している、該当のタスクバー部分を見つけなければならない。そのあと、ユーザはそのタスクバーをクリックして、アプリケーションをプルアップ (pull up) しなければならない。このシナリオは、例えば、あるアプリケーションの中に最小化された複数のドキュメント、例えば、複数のワードプロセッシングドキュメントや、その日の途中で応答しようと思っている複数のEメールドキュメントがある場合には、複雑化することになる。このことがシナリオを複雑にしているのは、ユーザのアプリケーションの各々のエントリだけでなく、各アプリケーションの中にあって、ユーザが最小化していた可能性のあるドキュメントの各々のエントリも、タスクバーに置かれていなければならないからである。この時点で、最小化されたアプリケーションまたはドキュメントにアクセスすることは容易な作業ではなく、むしろ、試行錯誤で探し出すプロセスにまで悪化している。多忙のユーザがこのような方法でアプリケーションとドキュメントを管理することは、効率的でない。
【０００７】
従って、本発明は、コンピュータユーザがコンピュータとやりとりするときの効率を向上することを課題にしてなされたものである。
【０００８】
発明の概要
一実施形態では、シングルナビゲート可能ウィンドウ (single navigable window) が提供され、異なる機能へ、および機能と機能の間でユーザによってナビゲートすることが可能になっている。機能は、アプリケーションプログラムに類似している。ユーザは、機能が異なるごとに異なるタスク、例えば、ワードプロセッシングタスク、Eメールタスク、カレンダタスクなどを実行することが可能になっている。この実施形態の利点は、シングルナビゲート可能ウィンドウとこのウィンドウをナビゲートしてそこに到達できる機能が、シングルアプリケーションによって提供され、シングルアプリケーションにすると、機能と機能が極めて高度に統合化されることである。
【０００９】
ここで説明している実施形態では、ユーザにはユーザインタフェース (user interface  UI) が提示され、そこには、ユーザが異なる機能と機能の間でナビゲートできるようにする、シングルウィンドウとナビゲーション支援ツール (navigation instrumentalities) の両方が収められている。ナビゲーション支援ツールの例としては、各機能に関連するリンクがあり、ユーザがリンクをクリックすると、特定の機能にアクセスできるようになっている。ユーザが種々のリンクをクリックして、機能内の異なるアクティビティに従事したとき、ナビゲーションモデルには、ユーザがどこにいたかの「トラベルログ(travel log)」がとられているので、ユーザは種々の機能に戻ってタスクを完了し、あるいは新タスクを開始できるようにしている。一実施形態では、トラベルログは、「バックアンドトランケート(back and truncate)」モデルを利用するナビゲーションスタックの形で実現されている。この実施形態の利点は、例示ナビゲーション支援ツールの１つとして、"back"（後退） ボタンと"forward"（前進） ボタンを含む、ナビゲーションバーの形になったブラウザに似たナビゲーションボタンも含まれていることである。これらのボタンをクリックすると、ユーザは、機能と機能の間および種々機能内のアクティビティとアクティビティの間で移動することができる。新規ナビゲーションモデルの種々操作は、ユーザのコンテキストが論理的に保たれるようにする形で行うことができる。そのような操作としては、エントリの追加、削除、および再編成がある。
【００１０】
もう１つの利点のある実施形態では、コンテキストセンシティブ（context-sensitive−文脈依存）コマンドセットは、ユーザが種々機能へ、および機能と機能の間でナビゲートすると、自動的に提示されるようになっている。コンテキストセンシティブコマンドは、ユーザが機能を変更すると変化するのが代表的であるので、ユーザは、現在選択されている機能内から、常に正しいコンテキストコマンドが選択できるようにしている。
【００１１】
一例示実施形態では、利用できる機能は、ワードプロセッシング機能、Eメール機能、プランナ (planner) 機能、Webブラウザ機能などのように、ドキュメント中心 (document-centric) 機能と呼ばれるものであり、これらは、すべて、シングルアプリケーションのコンテキスト内で提供されている。すなわち、これらの機能は、ユーザがブラウザできる、および/または編集できるドキュメントと、なんらかの形で係わりをもっている。
【００１２】
ドキュメント中心の実施形態では、ドキュメントはいくつかのプロパティをもち、その１つがドキュメントモードである。ドキュメントモードは、ユーザがドキュメントとやりとりする仕方を拘束するものである。このモードの例として、「ブラウズモード(browse mode)」と「編集モード(edit mode)」の２つがある。ブラウズモードにすると、ユーザは、ドキュメントを見るだけであり、そのコンテンツ、例えば、Webページを編集することは許されない。編集モードにすると、ユーザは、ドキュメント、例えば、ワードプロセッシングドキュメントを編集することも、変更することも許される。これらのモードはナビゲーションモデル（つまり、ナビゲーションスタック）の管理に影響するので、本発明によれば、ユーザのアクションがナビゲーションモデルに及ぼす影響が考慮され、ユーザのナビゲーションアクティビティがユーザのアクションと論理的に対応づけられるようにする種々の措置がとられている。
【００１３】
ドキュメント中心の実施形態では、ユーザは、特定タイプのブランクドキュメントへシングルウィンドウをナビゲートし、そのドキュメントを該当する方法で作成することにより、異なるタイプのドキュメントを作成することができる。作成されたドキュメントは、該当する方法でシステムによって自動的にパブリッシュ（publish−公表）させることができる（例えば、フリーフォーム（free-form−自由形式）ドキュメントの場合には、特定のコレクションにセーブし、Eメールメッセージの場合には受取人に送信する、いったことを行うことができる）。ドキュメント中心のシングルナビゲート可能ウィンドウの、特に利点のある特徴の１つは、異なるタイプのドキュメントコレクションをネイティブに理解し、表示できることである。特定のドキュメントコレクションへウィンドウをナビゲートすると、ユーザは、対応するタイプの個別ドキュメントを選択し、なんらかの方法でそのドキュメントに作用を及ぼすことができる。
【００１４】
一実施形態では、拡張可能なソフトウェアプラットフォームが用意されており、これは、シングルナビゲート可能ウィンドウを提供するシングルアプリケーションプログラムに、異なる「機能(functionalities)」を組み込んだり、統合化したりするときの基礎となっている。すなわち、個別機能だけでなく、メインアプリケーション自体も、拡張可能になっている。
【００１５】
特に利点のある、一実施形態では、シングルナビゲート可能ウィンドウアプリケーションに従って機能へアクセスすることは、インターネット (the Internet) などのネットワークを通して行われる。これは、加入者モデル (subscriber model) サービスの１つの基礎となっており、そこでは、機能をパッケージ化して、種々の加入者に販売するために提供することができる。
【００１６】
好適実施形態の詳細な説明
概要
以下に説明する実施形態によれば、コンピューティング環境で情報を作成し、使用するための改良方法とシステムが提供されている。本発明による方法とシステムは、特に、上述したようにマルチウィンドウ環境におけるコンピューティングに関係するユーザの問題を取り扱っている。
【００１７】
本発明による方法とシステムによれば、シングルアプリケーションプログラムによって提供される、複数の異なる機能へ、および機能と機能の間でナビゲートするためにユーザによって使用できるシングルナビゲート可能ウィンドウ (single navigable window) が提供されている。ここで「シングルナビゲート可能ウィンドウ (single navigable window)」とは、すべての機能が１つのウィンドウ内に置かれていて、ユーザがある機能から別の機能へ移動し、機能内で移動できること、そのあとで、以前に訪ねた機能と機能の間で、これらの場所を訪ねたときの順序に基づく所定の順序で、セッション内で前後に移動できることを意味している。これらの機能によると、ユーザは異なるタスクを完了することができ、シングルウィンドウによると、ユーザは機能と機能の間で、従って、タスクとタスクの間でシームレスにナビゲートすることができる。ウィンドウは１つだけであるので、ユーザは、複数のウィンドウを管理する負担から解放される。機能のすべてはシングルアプリケーションの中で提示されるので、ユーザには、ユーザのコンピューティング経験を大幅に向上する、高度に統合化されたソフトウェアプロダクトが提供されることになる。例示の機能は、ワードプロセッシング機能とEメール機能などの、ドキュメント中心機能のコンテキスト内で説明されている。
【００１８】
本発明による方法とシステムによれば、異なる機能へ、および機能と機能の間でナビゲートするユーザのアクティビティ（ナビゲーションアクティビティ）を管理するナビゲーションモデルが新規な使い方で利用されている。ここで説明しているナビゲーションモデルは、全体的に「バックアンドトランケート(back-and-truncate)」モデルに準拠するナビゲーションモデルである。
【００１９】
ナビゲーション支援ツール (navigation instrumentalities) が用意されているので、ユーザは、異なる機能と機能の間でナビゲートすることができる。ここで説明している実施形態では、これらのナビゲーション支援ツールには、異なる機能の各々へのリンク、およびブラウザに似たナビゲーションボタンが含まれているが、これらに限定されない。
【００２０】
コンテキストセンシティブ（context-sensitive−文脈依存）コマンドセットも、シングルナビゲート可能ウィンドウと一緒にユーザインタフェースの中で提供することが可能になっている。コンテキストセンシティブコマンドセットは、ユーザのコンピューティングコンテキストが変化すると、例えば、ユーザがある機能から別の機能へ移動すると、自動的に変化するコマンドを含んでいる。
【００２１】
一実施形態では、シングルアプリケーションは、異なる機能を受け取って、組み込むように拡張可能であるソフトウェアプラットフォームと定義されている。これらの機能は、インターネット (the Internet) などの、ネットワークを通して送信できるソフトウェアモジュールとして提供することができる。拡張可能ソフトウェアプラットフォームは、異なる加入者がインターネットなどの、ネットワークを通して異なる機能に有料でアクセスできるような、加入者サービスまたは料金方式サービスを提供するときの基礎となっている。
【００２２】
例示コンピュータシステム
図２は、ここで説明されている実施形態を実現するために使用できる例示コンピュータシステムを示している。コンピュータ１３０は、１つまたは２つ以上のプロセッサまたは処理ユニット１３２、システムメモリ１３４、およびシステムメモリ１３４を含む種々のシステムコンポーネントをプロセッサ１３２に結合しているバス１３６を装備している。バス１３６は、数種類のバス構造のいずれかの１つまたは２つ以上を表しており、その中には、種々のバスアーキテクチャのいずれかを採用しているメモリバスまたはメモリコントローラ、ペリフェラル（周辺）バス、高速グラフィックスポート、およびプロセッサまたはローカルバスが含まれている。システムメモリ１３４には、リードオンリメモリ (read only memory  ROM) １３８とランダムアクセスメモリ (random access memory  RAM) １４０が含まれている。スタートアップ時のときのように、コンピュータ１３０内のエレメント間で情報を転送するのを支援する基本ルーチンで構成された基本入出力システム (basic input/output system  BIOS) １４２は、ROM １３８に格納されている。
【００２３】
コンピュータ１３０は、さらに、ハードディスク（図示せず）との間で読み書きを行うハードディスクドライブ１４４、取り外し可能の磁気ディスク１４８との間で読み書きを行う磁気ディスクドライブ１４６、およびCD-ROMや他の光媒体などの取り外し可能の光ディスク１５２との間で読み書きを行う光ディスクドライブ１５０を装備している。ハードディスクドライブ１４４、磁気ディスクドライブ１４８および光ディスクドライブ１５０は、SCSIインタフェース１５４や他のなんらかの、該当インタフェースを通してバス１３６に接続されている。これらのドライブとそれぞれに関連するコンピュータ読取可能媒体は不揮発性ストレージとして、コンピュータ読取可能命令、データ構造、プログラムモジュール、およびその他のデータをコンピュータ１３０のために格納している。ここで説明している例示環境では、ハードディスク、取り外し可能磁気ディスク１４８および取り外し可能光ディスク１５２が採用されているが、この分野の精通者ならば理解されるように、コンピュータによってアクセス可能であるデータを格納しておくことができる、他のタイプのコンピュータ読取可能媒体を、例示動作環境で使用することも可能であり、そのようなものとしては、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ (RAM)、リードオンリメモリ (ROM) などがある。
【００２４】
いくつかのプログラムモジュールは、ハードディスク１４４、磁気ディスク１４８、光ディスク１５２、ROM １３８、またはRAM １４０に格納しておくことが可能であり、その中には、オペレーティングシステム１５８、１つまたは２つ以上のアプリケーションプログラム１６０、他のプログラムモジュール１６２、およびプログラムデータ１６４が含まれている。ユーザは、キーボード１６６やポインティングデバイス１６８などの入力デバイスを通して、コマンドと情報をコンピュータ１３０に入力することができる。その他の入力デバイス（図示せず）としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。これらの入力デバイスと他の入力デバイスは、バス１３６に結合されたインタフェース１７０を通して処理ユニット１３２に接続されている。モニタ１７２や他のタイプのディスプレイデバイスも、ビデオアダプタ１７４のような、インタフェースを介してバス１３６に接続されている。モニタのほかに、パーソナルコンピュータは、スピーカやプリンタなどの、他のペリ
フェラル（周辺）出力デバイス（図示せず）を装備しているのが代表的である。
【００２５】
コンピュータ１３０は、リモートコンピュータ１７６のような、１つまたは２つ以上のリモートコンピュータとの論理的コネクションを使用するネットワーキング環境で動作しているのが普通である。リモートコンピュータ１７６は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードにすることができ、図２には、メモリストレージデバイス１７８だけが示されているが、コンピュータ１３０に関連して上述したエレメントの多くまたは全部を装備しているのが代表的である。図２に示す論理的コネクションとしては、ローカルエリアネットワーク (local area network  LAN) １８０と広域ネットワーク (wide area network  WAN) １８２がある。このようなネットワーキング環境は、オフィス、企業内 (enterprise-wide) コンピュータネットワーク、イントラネットおよびインターネット (the Internet) で普及している。
【００２６】
LANネットワーキング環境で使用されるときは、コンピュータ１３０は、ネットワークインタフェースまたはアダプタ１８４を通してローカルネットワーク１８０に接続されている。WANネットワーキング環境で使用されるときは、コンピュータ１３０は、インターネットなどの、広域ネットワーク１８２上のコミュニケーションを確立するためのモデム１８６や他の手段を装備しているのが代表的である。モデム１８６は内蔵型と外付け型があり、どちらも、シリアルポートインタフェース１５６を介してバス１３６に接続されている。ネットワーキング環境では、パーソナルコンピュータ１３０に関連して上述したプログラムモジュールまたはその一部は、リモートのメモリストレージデバイスに格納しておくことができる。当然に理解されるように、図示のネットワークコネクションは例示であり、コンピュータ間の通信リンクを確立する他の手段を使用することも可能である。
【００２７】
一般的に、コンピュータ１３０のデータプロセッサは、コンピュータの種々コンピュータ読取可能ストレージ媒体に時期を異にして格納されている命令によってプログラムされている。プログラムとオペレーティングシステムは、例えば、フロッピディスクやCD-ROMに入れて配布されているのが代表的である。これらは、そこからコンピュータの二次メモリにインストールまたはロードされている。実行時には、これらは、少なくともその一部が、コンピュータの一次エレクトロニックメモリにロードされている。ここで説明している本発明によれば、上記および他の種々タイプのコンピュータ読取可能ストレージ媒体も本発明の対象に含まれており、これらの媒体には、マイクロプロセッサまたは他のデータプロセッサに関して以下に説明されているステップを実現するための命令またはプログラムが収められている。また、本発明によれば、コンピュータ自体も本発明の対象に含まれており、コンピュータは、以下に説明されている方法および手法に従ってプログラムされている。
【００２８】
説明の便宜上、オペレーティングなどの、プログラムおよび他の実行可能プログラムコンポーネントは、以下では、離散的ブロックとして示されているが、これらのプログラムとコンポーネントは、コンピュータの異なるストレージコンポーネントに時期を異にして置かれていて、コンピュータのデータプロセッサによって実行されることはもちろんである。
【００２９】
シングルナビゲート可能ウィンドウ
一実施形態によれば、ユーザによって機能 (functionality) から機能へ、および個別機能内でナビゲートできるシングルナビゲート可能ウィンドウ (single navigable window) は、ソフトウェアから提供されるユーザインタフェース (user interface  UI) を通してユーザに提示される。このユーザインタフェースを使用すると、一度に１つのウィンドウだけが提示されるので、ユーザは複数のウィンドウ、従って、複数の機能を効果的に管理することができる。これが従来のウィンドウ環境 (windowing environment) と異なっているのは、個別機能に関係するウィンドウが相互に重なり合った階層になっていないので、個別管理を必要としないことである。シングルナビゲート可能ウィンドウが従来のウィンドウ環境と異なっている、もう１つの注目すべき点は、種々の機能がシングルアプリケーションによって提供されることである。すなわち、従来のウィンドウ環境では、複数のウィンドウは、ユーザによってオープンされる複数の、異なるアプリケーションによって提供されているのが代表的ある。例えば、ワードプロセッシングアプリケーションはあるウィンドウをもち、Eメールアプリケーションは別のウィンドウをもち、Webブラウジングアプリケーションはさらに別のウィンドウをもつ、といったようになっている。これらのウィンドウは、すべてが別個であるため、ユーザは別々に管理することが要求されている。以前は、個別アプリケーションが別々になっているドメインであった種々機能は、本発明のケースでは、アプリケーションが１つに統合化されたドメインとなって、独自のウィンドウ管理方式を提供している。このウィンドウ管理方式は、ユーザによって機能から機能へナビゲートできるシングルナビゲート可能ウィンドウの形に具現化されている。
【００３０】
ユーザは、ナビゲーション支援ツールの使用を通して機能と機能の間をナビゲートすることができ、そのようにするとき、シングルウィンドウは、これらの機能の１つだけが、一度にユーザに提示されることを保証している。ここで説明している実施形態では、１つのナビゲーション支援ツールは、Webブラウザに似たナビゲーションツールの形で提供されている。Webブラウザに似たナビゲーションツールが選択されたのは、ナビゲーション支援ツールを、コンピューティング環境に精通している大部分のユーザに理解しやすいタイプにするという関心事からである。従って、ユーザが初めて本発明によるシングルウィンドウの概念に遭遇したとき、ユーザは、不慣れなナビゲーションの概念を学習する必要はない。もう１つのナビゲーション支援ツールは、複数の異なる機能の各々へのリンクを含んでいる。これらのリンクはユーザによってクリックできるので、シングルナビゲート可能ウィンドウは、選択された機能へ自動的にナビゲートされる。
【００３１】
図３は、ここで説明している一実施形態による、ユーザインタフェース (user interface  UI) ３００の単なる一例を示している。当然に理解されるように、ここで説明している本発明の概念は、他のUIを使用しても実現することが可能であり、図示のUIは、そのようなことを行う１つの方法にすぎない。図示の例では、UI３００は、ナビゲーションバー３０２、１つまたは２つ以上のコマンドエリア３０４、およびシングルナビゲート可能ウィンドウを構成するディスプレイまたはドキュメントエリア３０６を含んでいる。
【００３２】
ナビゲーションバー３０２は、ディスプレイエリア３０６の上部の近くに置かれており、そこには、"backward"（後退）ボタン、"forward"（前進）ボタン、"stop"（停止）ボタンなどの形になったナビゲーションボタン３０８が置かれている。ナビゲーションバーは、UI上のどこにでも置くことができる。しかし、図示のようにナビゲーションバーが置かれている個所は、外観的には、従来のWebブラウジングナビゲーション機能が置かれている個所と同じである。ナビゲーションボタン３０８のほかに、ナビゲーションバー３０２は、ユーザによってアクセスできる異なる機能へのリンク３１０も含んでいる。図示の例では、３つの例示機能（つまり、機能１、機能２、および機能３）へのリンクが示されている。これらの機能は、ユーザがそれぞれの異なるタスクを実行できるようにする機能とは異なっているのが代表的である。異なるタスクの例は、以下に詳しく説明されている。これらの機能は、すべてシングルアプリケーションのコンテキスト内で提供されている。特定の機能にアクセスするには、ユーザは、リンクの１つをクリックするだけで、選択された機能に関係するウィンドウが即時にディスプレイエリア３０６に表示される。
【００３３】
コマンドエリア３０４は、ディスプレイエリア３０６の上部左側の近くに置かれている。しかし、コマンドエリア（１または複数）は、適当であれば、どのロケーションに置いておくことも可能である。コマンドエリアから与えられるコマンドは、グローバルの性格をもつものと、ユーザが選択した特定のコンテキストに固有のものとがある。例えば、「サーチ(search)」や「ヘルプ(help)」のような、ある種のコマンドは、多くのコンテキストの中で使われることがあることから、グローバルな性格をもつものと考えることができる。「テキストボールド(text bold)」や「前進(forward)」のような、他のコマンドは、ユーザが選択した特定のコンテキストにもっと固有になっている。「テキストボールド」コマンドでは、ユーザのコンテキストはワードプロセッシングコンテキストであることがよくあるのに対し、「前進」コマンドは、Eメールコンテキストの中で採用されることがよくある。コンテキストセンシティブ（context-sensitive−文脈依存）コマンド構造の概念は、「コマンドセットを表示するためのタスクセンシティブ方法とシステム(Task Sensitive Methods and Systems For Displaying Command Sets)」という名称の米国特許出願に詳しく説明されている。なお、その内容は引用により本明細書の一部になっている。
【００３４】
例
図４と図５を参照して、シングルアプリケーションによって提供されるシングルナビゲート可能ウィンドウの例について説明する。
【００３５】
この例では、ユーザによってナビゲートできる複数の機能３１０は、ブラウザ機能（ホームアイコンで示されている）、メール機能（レターアイコンで示されている）、プランナ機能（クロックアイコンで示されている）、コンタクト機能（人物アイコンで示されている）、ドキュメント機能（フォルダアイコンで示されている）、およびリンク機能（ワールドアイコンで示されている）を含んでいる。これらの機能が「ドキュメント中心(document-centric)」機能と呼ばれるのは、例えば、Webページドキュメント、Eメールドキュメント、カレンダドキュメントなどのように、すべてが、ユーザがやりとりするドキュメントとなんらかの形で関係しているからである。
【００３６】
図４は、ユーザがブラウザ機能へのリンクをクリックしたときディスプレイエリア３０６にレンダリングされるディスプレイの例を示す図である。ブラウザ機能へのリンク（つまり、ホームアイコン）をクリックすると、ユーザのコンピュータ上で実行されているシングルアプリケーションプログラムソフトウェアがブラウザ機能を実現するように実行される。この例では、ブラウザ機能は、ユーザのホームページをディスプレイエリア３０６に表示する。この例で示すように、選択可能な異なる機能と機能の間でナビゲートするためのナビゲーションボタン３０８も一緒に表示される。コマンドエリア３０４には、ユーザが選択したコンテキストに固有のコマンドを含むコマンドセットが置かれている。この例では、ユーザのコンテキストはブラウジングコンテキストである。従って、左端のコマンドエリアには、ブラウジング機能に固有のコマンドが置かれている。このコマンドの中には、普通、ユーザがWebブラウザで見つかると期待しているコマンドが含まれている。また、この例に示すように、ディスプレイエリア３０６の上部近くにあるコマンドエリア３０４には、ブラウジングコンテキスト、つまり、"Add to Favorites"（お好みに追加）に固有のコマンドと、特定のWebサイトのURLをそこにタイプできるアドレスウェル (address well) も置かれている。
【００３７】
図５は、ユーザがメール機能（つまり、フォルダアイコン）へのリンクをクリックしたときディスプレイエリア３０６にレンダリングされるディスプレイの例を示す図である。このリンクをクリックすると、ユーザのコンピュータ上で実行されているシングルアプリケーションプログラムソフトウェアがメール機能を実現するように実行される。この例では、メール機能は、ユーザによって受信されたメッセージが入っているユーザのインボックス (in box) を表示する。この例で示すように、左端のコマンドエリアは、ユーザによって最小化されており、ディスプレイエリア３０６の上部近くのコマンドエリアには、ユーザのカレントコンテキストに固有のコマンド、例えば、新Eメールメッセージを生成する"New"（新）、Eメールメッセージに応答する"Reply"（応答）、Eメールメッセージの受取人全員に応答する"Reply to All"（全員に応答）、などが置かれている。
【００３８】
同様に、図示されているものに限られないが、ユーザは、プランナ機能、コンタクト機能、ドキュメント機能、およびリンク機能のディスプレイも、これらの特定機能へのリンクをクリックするだけで、ディスプレイエリア３０６に表示させることができる。ナビゲーションバー３０８を使用すると、ユーザは、ブラウザと同じように、これらの異なる機能を通るようにナビゲートすることができる。
【００３９】
なお、ここで注意すべきことは、上記の例は、どのようにすると、複数の異なる機能をナビゲート可能構造の構成 (construct) 内でユーザに提示できるかを示した単なる一例であることである。当然に理解されるように、具体的に示されている機能（つまり、ブラウザ、メール、プランナなど）は、ナビゲート可能ウィンドウを提供するシングルアプリケーションプログラムに組み込むことができる、異なる機能の具体例である。従って、他の異なる機能を採用することも可能である。この側面は、以下の「拡張可能機能」という見出しのセクションで詳しく説明されている。
【００４０】
図６は、ここで説明している実施形態による方法におけるステップを記述しているフロー図である。図示の方法は、適当なものであれば、どのようなハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせでも実現することができる。図示の例では、この方法はソフトウェアで実現されている。
【００４１】
ステップ６００では、複数の異なる機能をもつシングルアプリケーションプログラムが提供される。上に示した機能は、ユーザが異なるタスクを実行できるように異なっていることが好ましい。上に示した異なる機能の例は、ユーザがブラウザ機能、メール機能、プランナ機能、コンタクト機能、ドキュメント機能、およびリンク機能を利用できるようにするドキュメント中心機能という意味で示した具体例であり、これらに限定されるものでない。ステップ６００は、ユーザのコンピュータのようなコンピューティングデバイスが、複数の異なる機能をもつシングルアプリケーションプログラムを搭載した構成にすることによって実現することができる。以下の各セクションで明らかになるように、このステップは、ソフトウェアプラットフォームを汎用シングルアプリケーションシェル (generic single application shell) の形で提供し、種々の異なる機能を具現化している異なる拡張機能またはソフトウェアモジュールを受け入れるように拡張可能および適応可能にすることによって実現することも可能である。これらの異なる拡張機能は、複数の異なる機能をもつシングルアプリケーションのコンテキストの中でユーザに提示されることになる。
【００４２】
これらの拡張機能は、以下に説明するように、適当などのような方法でも、および適当などのような配信メカニズムを通しても、プラットフォームに配信することができる。例えば、種々の拡張機能または機能を配信する１つの方法は、イントラネット (intranet) やインターネット (the Internet) のようなネットワークを通してこれらを配信することである。シングルアプリケーションがどのような方法で提供されるかに関係なく、ステップ６００では、シングルウィンドウと、複数の異なる機能とをもつユーザインタフェース (user interface  UI) が提示される。このUIには、ユーザが異なる機能と機能の間でブラウザと同じようにナビゲートできるようにする、ナビゲーション支援ツールも含めることができるという利点がある。図３乃至図４は、ここで説明している実施形態に従って使用できる例示UIの具体例を示している。ステップ６０４では、ユーザがある機能への特定リンクを選択したかどうか、あるいはユーザが特定機能へナビゲートするためにナビゲーション支援ツールの１つを使用したかどうかが確かめられる。ユーザがどちらも行っていなければ、この方法はブランチしてステップ６０２に戻る。他方、ユーザが特定リンクを選択したか、特定機能へナビゲートするためにナビゲーション支援ツールを使用していれば、ステップ６０６で、機能固有のディスプレイがシングルウィンドウ内に表示される。すなわち、シングルナビゲート可能ウィンドウは、ソフトウェアによって選択された機能へナビゲートされる。図４と図５を参照して上に示したこれの具体例では、ブラウジング機能とメール機能は、それぞれがディスプレイエリア３０６に表示されていた。ステップ６０６で機能固有ディスプレイを提示することに関連して、ステップ６０８では、機能固有コマンドをUIのコマンドエリアに提示することができる。これの利点は、ユーザがある機能から別の機能へナビゲートすると、自動的に行われることである。すなわち、ユーザが機能を変更すると、ユーザのカレントコンテキストまたは機能に固有のコマンドセットが、自動的にコマンドエリアに表示される。そのあと、ステップ６０８はブランチしてステップ６０４に戻り、ユーザが別の機能へナビゲートしたかどうかが確かめられる。
【００４３】
以上のように、上記の例では、シングルアプリケーションは、ユーザが異なるタスクを実行できるようにする複数の機能を含んでいる。これら複数の機能は、異なる機能の間でユーザによってナビゲート可能であるシングルウィンドウのコンテキストの中で提示される。場合によっては、見かけ上ブラウザに似ている（以下で説明するように、必ずしも挙動が似ているとは限らない）ナビゲーション支援ツールが提供されるので、ユーザは、アプリケーション提供機能の間を、ブラウザに似た方法でナビゲートできるという利点がある。機能固有コマンドは、ユーザが特定の機能へナビゲートしたとき自動的にユーザに提示させることができる。
【００４４】
ナビゲーションモデル
ここで説明している実施形態では、ナビゲーションモデル (navigation model) は、複数の異なる機能を提供するシングルアプリケーション内のユーザのナビゲーションアクティビティを管理するために利用される。適当なものであれば、どのようなナビゲーションモデルでも使用できるが、ここで説明している実施形態では、「バックアンドトランケート(back-and-truncate)」と呼ばれるナビゲーションモデルが使用されている。バックアンドトランケートモデルの基本概念は公知であり、現在市販されている、多くの異なるWebブラウザの基礎となっている。基本的に、バックアンドトランケートモデルは、ユーザがn回戻ってから、新ドキュメントへ進むようにナビゲートすると、トランケートされる（切り捨てられる）ナビゲーションスタックを利用している。
【００４５】
図７に示す例では、例示のナビゲーションスタックが、ここで説明している実施形態に関連してどのような働きをするかを示している。基本的に、ユーザにシングルアプリケーションUIが提示されたとき、ユーザは、異なるエリアからリンクを選択することができる。最初に、ユーザは、ナビゲーションバーからプッシュボタンリンク（例えば、図３中の３１０）を選択し、二番目に、前進と後退ボタン３０８を選択し、三番目に、ディスプレイエリア３０６に表示されているリンクを選択することができる（例えば、ユーザがブラウジング機能にいるときは、ユーザが選択できる異なるWebページへのリンクがあることがある）。ユーザが種々機能と選択可能リンクを巡るように進んでいくと、ナビゲーションスタックが構築され、保存される。ここで説明している実施形態では、ナビゲーションスタックはメモリに保存されるが、ストアに保存しておくと、将来のセッションに備えてユーザのナビゲーションスタックを残しておくことが容易になる。
【００４６】
図７の例では、第１ナビゲーションスタック７００は、次のような手順で設定することができる。すなわち、ユーザがシングルウィンドウアプリケーションを開始すると、図３に示すものと同じようなUIがユーザに提示される。そこから、ユーザが第１機能へのリンクをクリックすると、第１エントリ７０２がナビゲーションスタックに作成される。第１機能と係わっている間に、ユーザは、なんらかのアクティビティ（行動）に関与すると、新ディスプレイがディスプレイエリア３０６に表示される（図３）。従って、第２エントリ７０４がナビゲーションスタック７００に現れることになる。ユーザが機能から機能へナビゲートすると（および機能内のアクティビティに関与すると）、ナビゲーションスタックは、この例で採用されているバックアンドトランケートモデルに従って大きくなったり、小さくなったりする。その結果、図示のエントリ７０６、７０８、７１０が得られることになる。次に、ユーザがナビゲーションバーの中の "back"（後退）ボタンを使用して、ナビゲーションスタック内を戻るように移動したとする。このアクションは、図７に矢印Aで示されている。ユーザがナビゲーションスタック内のエントリ７０４まで来たとき、ユーザが別のリンクをクリックすると、ウィンドウが機能４（ナビゲーションスタック内のエントリ７１２）へナビゲートされる。この時点で、ユーザはナビゲーションスタック内を戻っているので、スタックは、エントリ７０２、７０４および７１２だけを含むように切り捨てられている。機能４から、ユーザがアクティビティに関与すると、ディスプレイが表示され、エントリ７１４がナビゲーションスタックに作成される。上記の例は、基本的に、バックアンドトランケートモデルの機能を示している。本発明によるシステムと方法では、ユーザのナビゲーション体験が、ユーザが従事できるアクションと論理的に整合性をもつことを保証するように改良がなされている。
【００４７】
一例として、本発明によるシステムと方法では、代表的な従来ナビゲーションモデルには見られない、ナビゲーションスタックのオペレーションと操作が行えるようにしている。具体的には、本発明のケースでは、ナビゲーションスタックは、ナビゲーションスタックのエントリを削除、追加、および変更するように操作することにより、整合性が保たれるようにしている。次に説明するのは、基本的な例である。この例では、シングルウィンドウナビゲーションシステムは、図４と図５を参照して上述した機能を含む機能のコンテキストの中で採用されていることを想定している。また、ユーザは、自分のホームページからEメール機能へナビゲートし、"new"（新）ボタンをクリックして新Eメールメッセージを作成することを想定している。この時点で、図８に８００、８０２、および８０４で示すものと同じようなエントリが、ナビゲーションスタックに収められることになる。次に、ユーザは、"send"（送信）ボタンをクリックして、Eメールメッセージを受取人に送信し、そのあと、エントリ８０６で示すように、プランナ機能へナビゲートすることを想定している。次に、ユーザは、"back"（後退）ボタンを使用して、ナビゲーションスタック内を戻るようにナビゲートすることを想定している。ナビゲーションスタックがまったく操作されていなければ、ユーザが新Eメールメッセージ（これはすでに送信されているので、物理的にも、論理的にも存在していない）へ戻るようにナビゲートしたとき、そのナビゲーションスタックエントリに対応するドキュメントは存在しないので、ユーザはエラーメッセージを受け取ることになる。これに対して、本発明によるシステムと方法では、エントリ８０４を除去し、エントリ８０６の前に置かれたエントリがエントリ８０２になるようにナビゲーションスタックを再編成することによって、整合性が保たれるようにしている。
【００４８】
次に、図８を参照して別の例について説明する。この例では、ユーザは、Eメール機能へナビゲートし、Webページへのブラウザリンクを収めているメッセージを読むことを想定している。また、ユーザは、ブラウザリンクをクリックして、Webページへシングルウィンドウをナビゲートすることを想定している。従って、ナビゲーションスタックには、図８に８１０、８１２、および８１４で示すものと同じようなエントリが収められることになる。次に、ユーザは、Eメールメッセージをオリジナルメッセージの送信人に送信したいと思っているが、"back"（後退）ボタンを使用してナビゲーションスタック内を戻るようにナビゲートするのではなく、ナビゲーションバーの中のメールリンクをクリックするだけで、エントリ８１６をナビゲーションスタックに追加することを想定している。次に、Eメール機能にいる間に、ユーザは、ブラウザリンクを収めているメールメッセージを削除する決心をしたことを想定している。ユーザがエントリ８１２に対応するEメールメッセージを削除すると、ソフトウェアはナビゲーションスタックをチェックし、削除されたメッセージに対応する該当エントリ、すなわち、エントリ８１２を除去する。そのあと、ソフトウェアは、エントリ８１０からエントリ８１４に導かれるように、またはその逆になるようにナビゲーションスタックを再編成する。
【００４９】
上記の例は、本発明によるナビゲーションモデル操作オペレーションのいくつかには、通常のバックアンドトランケートオペレーションとは異なる重要な特徴があることを示している。例えば、この例では、ナビゲーションモデルの操作、つまり、エントリを除去し、エントリを追加し、エントリを再編成する操作は、必ずしもナビゲーションアクティビティであるとは限らないユーザのアクション、つまり、ユーザが機能へ移動したり、機能間で移動したりするアクションに応答して行われる。むしろ、これらの例においてナビゲーションスタックの操作が行われるようなユーザのアクションは、ユーザがたまたまナビゲートしてそこに到達した種々機能によって本来的にサポートされているアクションを構成している。これらのユーザアクションは、必然的に、ナビゲーションモデル内のエントリの論理的関連性に影響する。本発明によるナビゲーションモデル操作オペレーションを行わないと、シングルナビゲート可能ウィンドウインタフェースからユーザに提示される体験は、例えば、ユーザが図示のナビゲーションスタック内を戻るようにナビゲートしたとき、論理的に存在しないドキュメントがユーザに提示されるので、特定の機能内のユーザのナビゲーションアクティビティおよび/またはアクションと論理的に矛盾することになるので、低下する可能性が高くなる。
【００５０】
図９は、ここで説明している実施形態によるナビゲーションモデル管理方法におけるステップを記述しているフロー図である。ここで説明している方法は、適当なものであれば、どのハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせでも実現することができる。この例では、方法は、上述したようにシングルナビゲート可能ウィンドウを使用してナビゲートできる、複数の機能を収めているシングルアプリケーションに関してソフトウェアで実現されていることが好ましい。
【００５１】
ステップ９００では、ユーザのナビゲーションアクティビティに応答してナビゲーションモデルが設定される。上に示した例では、ナビゲーションモデルはメモリ内に設定され、ユーザがシングルナビゲートウィンドウのコンテキストの中で機能から機能へナビゲートするときの、ユーザのナビゲーションアクティビティを管理する。ここで説明している図示の実施形態では、ナビゲーションモデルは、ナビゲーションスタックを含んでいる。当然であるが、他のナビゲーションモデルを使用することも可能である。ステップ９０２では、ユーザは、機能の１つまたは２つ以上に対してアクションを行う。ここでは、上記で示したように、ユーザのアクションは、アクションの性質に応じて、ナビゲーションモデル内の異なるエントリに影響を及ぼすことができる。これらのアクションは、ユーザのカレントロケーションから多数のエントリだけ離れているエントリに影響を及ぼすことができる。これらのアクションがナビゲーションモデル内の、あるエントリに影響するときは、整合性があって、論理的に正確なユーザ体験がナビゲーションモデルから常に得られるようにナビゲーションモデルが調整されるか、さもなれば、操作されるはずである。従って、ステップ９０４では、ユーザのアクションがナビゲーションモデルのエントリに影響するかどうかが確かめられる。ユーザのアクションによって影響されるエントリがなければ、方法はステップ９０２に戻り、次のユーザアクションへ進む。他方、ユーザのアクションがナビゲーションモデルのエントリに影響することが、ステップ９０４で確かめられると、ユーザのアクションに応答してエントリの１つまたは２つ以上が、ステップ９０６で操作される。なお、この操作は、アクション自体によっても（この例では、図示のように、ナビゲーションスタックを操作するアクションは、その必要があることを分かっている）、連続的または条件つきモニタリングサービスによっても、ナビゲーションスタックに対して行うことができる。ナビゲーションモデルの操作は、ナビゲーションモデルのコンテキストとユーザのアクティビティとの整合性を保つことを目的とした操作であれば、どのような操作であっても構わない。例えば、エントリは、除去し、追加し、再編成し、および/またはリダイレクト (redirect) することができる。例示ナビゲーションスタック操作の別の例は、以下で説明する。
【００５２】
ドキュメント中心アプリケーション
図４と図５を参照して説明した実施形態では、ユーザが利用できる機能は、「ドキュメント中心(document-centric)」機能に関係している。ドキュメント中心機能には、ワードプロセッシング機能、Eメール機能、プランナ機能などの機能があり、そこでは、ユーザが操作を加えようとする、基礎となるオブジェクトはドキュメントになっている。当然に、その他のドキュメント中心機能を提供することも可能であるが、上の例に示した機能に限定されるものではない。そのような機能としては、いくつかを挙げると、財務管理機能、トラベル機能、メディカル機能、所得税機能、電話ログ機能があるが、これに限定されない。これらのドキュメント中心機能は、下述する「拡張可能機能」セクションで詳しく説明されているように、ユーザの要求事項と、シングルウィンドウアプリケーション用に拡張機能を設計できるサードパーティソフトウェア設計者の独創力とによって定義することができる。図示の例では、ドキュメントのすべては、HTMLで定義または作成されているが、当然のことであるが、ドキュメントを定義または作成する他のメカニズムを使用することも可能である。
【００５３】
ドキュメントモード (document modes)
ドキュメント中心機能の特徴の１つは、この例では、異なるタイプのドキュメントに出会うことである。例をあげると、ワードプロセッシングドキュメントのような「フリーフォーム（自由形式）」タイプのドキュメント、コンタクト機能における「パーソナルコンタクト」フォームのように、ユーザがあるブロックにある情報を挿入することができる「フォーム」タイプのドキュメント、およびフリーフォームドキュメントとフォームドキュメントの中間に位置するドキュメント、例えば、上部に宛先と主題用のフォームとその下にテキスト用のオープンエリアがあるEメールがある。ここで説明している実施形態では、複数のドキュメントモードが用意されており、その基本は、ユーザが特定のドキュメントに対してとることができるアクションを拘束することにある。具体的には、この例では、ドキュメントがとることができるドキュメントモードは、ブラウズモードと編集モードの２つがある。
【００５４】
ドキュメントモードを使用すると便利であるのは、コマンドエリア３０４(図３)に表示されるコマンドセットが、ユーザがブラウズモードのドキュメントを見ているだけか、編集モードのドキュメントを編集しているかに応じて、ドラスティックに変化することがあるからである。この例では、ディスプレイエリア３０６に表示されるドキュメントは、常に特定のモードになっている。例えば、ドキュメントがブラウズモードにあるときは、ユーザは、そのドキュメントを構成する基礎のHTMLを変更することができない。１つの例として、ユーザがWebページへナビゲートする場合を考えてみる。このWebページは、ブラウズモードにあるときディスプレイエリアに表示されるので、ユーザは、Webページを構成する基礎のHTMLを変更することができない（なお、このページには、テキストエリアのほかに、ユーザ入力を受け取るエリアがある場合もある）。他方、ドキュメントが編集モードにあるときは、ユーザは、ドキュメントを構成するコンテンツ（つまり、HTML）を変更することができる。どれだけ変更できるかは、用意されているドキュメントのタイプによって決まる。例えば、フリーフォームドキュメントでは、編集できるHTML部分はフォームドキュメントよりも多くなる。ユーザがワードプロセッシング機能へナビゲートし、ドキュメントコレクションに到達し、あるドキュメントをプルアップする場合を考えてみる。このドキュメントは、ブラウズモードにあるときプルアップできるので、ユーザはそれを読むことができる。しかし、ユーザがそのドキュメントを操作したい場合は、ユーザは、それを編集モードに変えると、ドキュメントのコンテンツを操作することが可能になる。ドキュメントを編集モードに変えるには、ユーザは"edit"（編集）ボタンをクリックするだけで、ドキュメントを編集することが可能になる。ドキュメントをいつ編集モードまたはブラウズモードにするかは、ポリシで定義することができる。例えば、作成者があるセッション期間にドキュメントを編集モードにし、そのあとで、編集アクティビティを終えないまま別のドキュメントへナビゲートしたときは、編集モードのドキュメントは、次回にそのドキュメントを訪ねたとき編集モードに置かれることになる。ここで説明している実施形態では、ユーザによって作成される「新」ドキュメントは、編集モードがデフォルトになっている。そのため、ユーザはドキュメントを修正することができる。さらに、ユーザは、例えば、ドキュメントの完了を指示することによって、ドキュメントのモードを編集からブラウズに変えることができる。例えば、ドキュメントがEメールメッセージの形になっているときは、編集からブラウズへのモード変更は、Eメールメッセージを送信すると行われる。ドキュメントがコンタクトの形になっているときは、編集からブラウズへのモード変更は、コンタクトをセーブすると行われる。
【００５５】
異なるドキュメントモードがあると、ナビゲーションモデルに問題が起こることがある。例えば、ユーザがシングルウィンドウをナビゲートして、ブラウズモードにあるドキュメントに到達したあとで、そのドキュメントを編集モードに変えた場合を考えてみる。そこで、ユーザがドキュメントの編集を始めたが、ドキュメントの編集を終えないうちに、ある友人からEメッセージを受け取ったとする。この場合は、ナビゲーション機能を使用して、ユーザはメールリンクをクリックしてEメールボックスをプルアップし、新メッセージをクリックする。この時点では、ナビゲーションスタックは次のようになっている。
【００５６】
編集モードドキュメント→Eメールボックス→新メッセージ
【００５７】
ユーザが新メッセージを読み終えたとき、ユーザは、編集していたドキュメントに戻りたいとする。この場合は、ユーザは、"back"（後退）ボタンを使用してナビゲーションスタック内を戻るようにナビゲートするのではなく、「ドキュメント」リンクをクリックしてドキュメント機能をプルアップしてから、編集していた個別ドキュメントをクリックする。問題のドキュメントは、以前は編集モードにあったので（ナビゲーションスタックがそのことを示している）、そのドキュメントがディスプレイエリアにユーザに表示されるときは、ブラウズモードではなく、編集モードになっている。従って、システムは、ユーザがナビゲーションスタックによって定義された直接経路の外側にあるドキュメントへナビゲートしたときでも、ナビゲーションモデルのエントリに対応するドキュメントのステートを保存しておくことができる。
【００５８】
別のナビゲーションモデル問題として、次の場合を考えてみる。すなわち、ユーザは、シングルウィンドウを使用してあるドキュメントへナビゲートしたとする。そのドキュメントは、Web上に置かれていて、URL http://..../document1によって指定されている。そこで、ユーザは、ドキュメントをブラウズモードから編集モードに変えたとする。ユーザがそうしたとき、システムはドキュメントのコピーをとり、そのコピーを、ローカルコピーとしてユーザのコンピュータに置いておく。ドキュメントのローカルコピーは、ユーザがWeb上のドキュメントにアクセスすることを可能にしていたURLとは別のURLで指定されることになる。従って、ナビゲーションスタックは、WebベースのドキュメントURLを変更し、そのURLがローカルコンピュータのURLとなるように操作される。そこで、ユーザがさらに続けて、シングルウィンドウをナビゲートして他の機能へ到達したとすると、ユーザがナビゲーションスタック内を戻ってドキュメント１に戻ったとき、ナビゲーションスタックは、ドキュメントのWebベースのバージョンではなく、現在編集中のコピー（つまり、変更されたURLに対応するコピー）のロケーションをポイントしている。この場合には、ナビゲーションスタックは、ユーザのアクションに基づいて、別のロケーションをポイントするように操作される。具体的には、ナビゲーションスタックは、関連のエントリのURLを変更し、そのエントリに関連するドキュメントに戻ったときユーザのコンテキストと矛盾しないように操作される。
【００５９】
作成 (authoring)
ドキュメント中心の例では、作成者またはユーザは、新アイテムを作成できるだけでなく、多数の既存アイテムを編集することもできる。図示の例では、ドキュメントは、HTMLで定義されているが、他のフォーマットを使用してドキュメントを定義することも可能である。作成は、フリーフォームフォーマットでも、フォームフォーマットでも行うことができる。新アイテムを作成するには、ユーザは、コマンドエリア３０４（図３）にある"new"（新）ボタンをクリックするだけである。ユーザは、同じコントロールから異なるタイプのアイテムを作成することができる（すなわち、新Eメールタイプ、ドキュメントタイプ、コンタクトタイプ、など）。例えば、"new"ボタンを使用すると、ドロップダウンメニューが表示されるので、ユーザは異なるタイプのドキュメントをそこから選択することができる。ユーザが新ドキュメントタイプを作成するときは、ナビゲーションウィンドウは、対応するタイプの新しい、空ドキュメントへナビゲートされ、新アイテムは編集モードでナビゲーションスタックに置かれる（編集モードがデフォルト）。この新ドキュメントはナビゲーションスタックに残されているが、ドキュメントがナビゲーションスタックからこぼれた場合でも、ドキュメントへのリンクは残して置くようにすることができる。
【００６０】
図１０は、ここで説明している実施形態によるドキュメント作成方法におけるステップを記述しているフロー図である。この方法は、ソフトウェアで実現されていることが好ましい。ステップ１０００では、新ドキュメントタイプを作成するためのユーザ入力が受け取られる。ドキュメントタイプは、適当であれば、どのドキュメントタイプにすることもでき、ドキュメントタイプの例としては、ドキュメント、Eメールメッセージ、カレンダアポイントメント、コンタクトなどがあるが、これらに限定されない。ユーザの入力に応答して、ステップ１００２では、対応するタイプの新しい空ドキュメントへシングルウィンドウがナビゲートされる。従って、ユーザがフリーフォームドキュメントをドキュメントタイプとして指定していれば、シングルウィンドウはフリーフォームドキュメントへナビゲートされることになる。ユーザがEメールメッセージをドキュメントタイプとして指定していれば、シングルウィンドウは、空のEメールメッセージフォームへナビゲートされ、ユーザによって記入されることになる。次に、ステップ１００４では、新ドキュメントタイプに対応するエントリがナビゲーションモデル（例えば、ナビゲーションスタック）に作成される。デフォルトでは、新ドキュメントタイプは、ユーザがドキュメントを作成できるように編集モードでナビゲーションスタックに入力される。
【００６１】
作成者は、上述したように、既存アイテムを編集することもできる。代表例として、これらのアイテムは、以前に取り扱ったことのあるアイテムである。既存アイテムを編集するには、ユーザは該当するドキュメントへシングルウィンドウをナビゲートし、"edit"（編集）ボタンをクリックしてドキュメントをブラウズモードから編集モードへ切り替える。ここで説明している実施形態では、ナビゲーションスタックは、ユーザのアクションを受け入れるように次のように操作される。ユーザが関心のあるドキュメントへナビゲートすると、ブラウズモードにあるドキュメントに対応するエントリがナビゲーションスタックに作成される。要するに、ユーザがプルアップしたのは、ブラウズモードのドキュメントであった。ユーザが"edit"（編集）ボタンをクリックすると、ブラウズモードのドキュメントは、ナビゲーションスタック内では編集モードのドキュメントに変えられる。このアクションを実現する１つの方法は、高速前進/削除オペレーションを行うことである。すなわち、ドキュメントが編集モードに切り替えられると、ブラウズモードドキュメントのコピーに対応する編集モードのエントリがナビゲーションスタックに作成され、そのあと、ブラウズドキュメントに対応するナビゲーションスタックエントリが削除される。従って、これは、ナビゲーションモデルがユーザのアクションに従ってどのように操作されて、ユーザのコンテキストとの整合性が保たれるかを示す、単なるもう１つの例である。
【００６２】
パブリッシング (publishing)
ユーザがドキュメントを完成したとき、ユーザは、それをパブリッシュ（公表）することによってドキュメントに完成のマークを付けることができる。ドキュメントのパブリッシュは、ドキュメントのタイプが異なるごとに、異なった意味を持っている。例えば、フリーフォームドキュメントは、中央サーバにパブリッシュされることがあり、コンタクトドキュメントは、サーバのユーザ独自のセクションにパブリッシュされることがあり、Eメールメッセージは、それが受取人に送信されるときパブリッシュされることがある。ここで説明している実施形態では、シングルナビゲート可能ウィンドウアプリケーションに含まれる機能は、シングルナビゲートウィンドウが、そのウィンドウと関連のあるドキュメントタイプの各々を理解し、ドキュメントの各々を具体的にどのようにパブリッシュするかを理解しているかを、機能が確かめるようにプログラムされている。従って、ユーザは、ある特定ドキュメントの作業を終えたとき、"publish"ボタンをクリックすると、対応するドキュメントをどのようにパブリッシュするかが、自動的にソフトウェアに知らされる。これは、アイテムがどのようにパブリッシュされるかを示す、単なる一例である。従って、ユーザはプロトコルを知っている必要もなければ、どのロケーションでアイテムがパブリッシュされるかを知っている必要もない。
【００６３】
図１１は、ここで説明している実施形態によるパブリッシング方法におけるステップを記述しているフロー図である。この方法は、ソフトウェアで実現されていることが好ましい。ステップ１１００では、ドキュメントが作成または編集される。このステップは、上述したように、ユーザがシングルナビゲート可能ウィンドウとやりとりして、新ドキュメントを作成するか、既存ドキュメントを編集することによって実現されている。ステップ１１０２では、ユーザがドキュメントを完成したことを示すユーザ入力が受け取られる。ここで説明している例では、このステップは、ユーザが"publish"ボタンなどのボタンをクリックすると実行される。ユーザがこの入力を与えると、ステップ１１０４では、ドキュメントタイプに基づいてドキュメントが自動的にパブリッシュされる。このステップでは、ソフトウェアは、選択されるパブリッシングルーチンが特定のドキュメントタイプと結びつくようにプログラムされているので、ユーザは、どの特定プロトコルまたはドキュメントロケーションにも、気にしないで済むようになっている。むしろ、ソフトウェアは、ドキュメントタイプと整合性を保つようにドキュメントを自動的にパブリッシュする。
【００６４】
コレクションの表示 (viewing collections)
ここで説明している実施形態では、シングルナビゲート可能ウィンドウアプリケーションの利点のある特徴の１つは、異なるタイプのドキュメントのコレクションをネイティブに作成し（異なる組み込み機能を通して）、理解し、見ることができるようにすることである。例えば、このアプリケーションを使用すると、ユーザは、ユーザ自身または他の人が、ドキュメントタイプやドキュメント作成者などの、ドキュメントの種々プロパティに基づいて作成していた可能性のある、どのドキュメントのコレクションでも見ることができる。これを行うには、ユーザは関心のあるコレクション（図５のEメールボックスやカレンダ上の日など）へシングルウィンドウをナビゲートするだけである。そのあと、コレクションは、UIのディスプレイエリア３０６（図３）に表示される。ユーザがいったん特定のコレクションへナビゲートすると、このソフトウェアによれば、多くの場合、特定のアイテムを選択し（つまり、Eメールボックスにある特定のメールメッセージを選択し）、シングルウィンドウをそのアイテムへナビゲートすることが可能になる。従って、選択されたアイテムは、特定のコレクションが表示されたのと同じウィンドウ内に表示される。種々のコレクションを見ているとき、ユーザには、そのコレクション内で使用できる種々のコンテキストセンシティブツールを表示させることができる。コンテキストセンシティブツールの例は、「コマンドセットを表示するためのタスクセンシティブ方法とシステム(Task Sensitive Methods And Systems For Displaying Command Sets)」という名称の米国特許出願に記載されている。なお、その内容は引用により本明細書の一部に含まれる。
【００６５】
従って、この実施形態では、シングルナビゲート可能ウィンドウアプリケーションは、異種タイプのドキュメントのコレクションへナビゲートさせることができ、それを表示することを可能にしている。ナビゲートし、および/またはユーザが異種タイプのドキュメントとやりとりすることを許していないのが代表的である、従来のブラウザ機能と注目すべき違いがあるのは、この点である。
【００６６】
拡張可能機能 (extensible functionalities)
一実施形態では、シングルナビゲート可能ウィンドウアプリケーションによって提供される機能は拡張可能になっている。つまり、機能をアプリケーションに追加し、アプリケーションから削除することが可能になっている。このようにすると、サードパーティ開発者は、シングルアプリケーションに追加できる、あるいは組み込むことができる種々の拡張可能機能を提供することができる。そのようにすると、ユーザは、関心のある１つまたは２つ以上の機能を選択し、その機能をアプリケーションに組み込むだけで、既存の機能群に追加することができる。さらに、システムアドミニストレータ（管理者）は、類似の選択メカニズムを使用することによって、ユーザグループのために既存機能群に追加することができる。これらの特定拡張可能機能は、「拡張機能(extensions)」と呼ばれる。拡張機能の例と拡張機能を提供する方法は、「ネットワークベースのソフトウェア拡張機能(Network-based Software Extensions)」という名称の米国特許出願、および「ネットワークベースのソフトウェア拡張機能を提供するためのアーキテクチャと方法(Architectures For And Methods Of Providing Network-based Software Extensions)」という名称の米国特許出願に記載されている。なお、その内容は引用により本明細書の一部に含まれている。
【００６７】
汎用シングルナビゲート可能ウィンドウアプリケーションプラットフォーム
上述したように、機能が拡張可能になっていることの利点の１つは、シングルナビゲートウィンドウアプリケーションが、基本的に、種々機能をそこに構築できるシェルまたはソフトウェアプラットフォームとして提供できるようになったことである。例えば、図１２には、シングルナビゲート可能ウィンドウプラットフォーム１２００が示されている。プラットフォーム１２００は、その最も基本的形体では、プラットフォームに関連する機能が１つもない。むしろ、シングルウィンドウナビゲーションの操作可能性を実現するインフラストラクチャサポート、例えば、ナビゲーションモデルとナビゲーションオペレーション（リンクをクリックすると、特定の機能へウィンドウをナビゲートする、といったような）を提供し、管理するソフトウェアコードを提供するだけである。このケースでは、機能の一部または全部は、サードパーティによって定義し、適宜にプラットフォームに追加することが可能になっている。一例として、機能１２０２、１２０４、および１２０６がプラットフォームに追加され、ある程度の機能がシングルナビゲート可能ウィンドウアプリケーションに伝達されている。これらの追加機能としては、ワードプロセッシング機能、Eメール機能、およびカレンダ機能がある。機能１２０８、１２１０、および１２１２などの、他の機能は追加されていないが、追加することが可能である。
【００６８】
機能または拡張機能の配信は、上記で言及したように、どのような適当な方法でも行うことができる。例えば、個人ユーザは、特定機能のソフトウェアコードを収めているCDを、物理的にコンピュータに挿入し、そのソフトウェアをロードすることができる。そのあと、機能はプラットフォームに追加され、ユーザが機能とやりとりすることになる。別の方法として、機能または拡張機能は、インターネットなどのネットワークを通して配信することも可能である。これがどのように行われるかの例は、「ネットワークベースのソフトウェア拡張機能(Network-based Software Extensions)」という名称の米国出願に記載されている。なお、その内容は引用により本明細書の一部に含まれている。
【００６９】
加入モデル (subscription model)
一実施形態によれば、シングルナビゲート可能ウィンドウアプリケーションとその種々機能は、パッケージ化され、有料で加入できるサービスとしてコンシューマに提供される。図１３は、モデルの一例である。そこでは、複数のクライアントが示され、クライアントの各々には、図１２を参照して説明したものと同じようなプラットフォームが置かれている。１つまたは２つ以上のサーバは、種々の機能または拡張機能を提供し、Web上で配信するように構成されている。種々機能または拡張機能は、独立のソフトウェアベンダによって提供することが可能であり、シングルナビゲート可能ウィンドウ機能を提供するソフトウェアプラットフォームに直接にプラグインされるように書くことが可能である。ソフトウェア拡張機能をソフトウェアプラットフォームにプラグインするためのメカニズムは、この分野の精通者に周知であるので、ここで詳しく説明することは省略する。
【００７０】
１つの例として、小企業がコンピューティングシステムを採用して、インベントリを追跡し、ワードプロセッシング、Eメール、会計（つまり、給与計算）などの、種々オフィスタスクを実行する場合について考えてみる。現在、この企業は、組織のために必要な機能のすべてを提供する、いくつかの異なるソフトウェアアプリケーションを採用する可能性がある。このアプローチによると、インフォメーションテクノロジ（情報技術）コストは、特に小企業では非常に高価になる。しかるに、このモデルでは、Webベースのサービスは、各カストマ、例えば、各企業が、加入料金を支払うことで、必要とする種々機能にアクセスできることを保証している。これらの機能は、シングルナビゲートウィンドウアプリケーションにプラグインされ、統合化されるので、カストマのコンピューティング体験は大幅に容易化されることになる。以上から理解されるように、図１３に図示の各クライアントは、そこに機能を追加できるプラットフォームをもつものとして示されているが、特定カストマ用の個別プラットフォームは、別のサーバがホストとなることができるので、カストマはWebにログインするだけで、そのカストマに公開されている加入機能が得られることになる。
【００７１】
結論
上述してきた実施形態によれば、コンピューティング環境で情報を作成し、使用するための改良方法とシステムが提供されている。本発明による方法とシステムは、マルチウィンドウ環境でのコンピューティングに関係するユーザの問題を取り扱い、そのソリューションを提供している。上述した方法とシステムは、シングルアプリケーションプログラムによって提供される複数の、異なる機能へおよび機能間でナビゲートするためにユーザによって使用できるシングルナビゲート可能ウィンドウを提供している。機能を使用すると、ユーザは、異なるタスクを実行することができ、シングルウィンドウを使用すると、ユーザは、機能間、従ってタスク間をシームレスにナビゲートすることができる。ウィンドウは１つだけであるので、ユーザは、複数のウィンドウを管理する負担から解放されることになる。機能はすべてがシングルアプリケーション内で提示されるので、ユーザには、ユーザのコンピューティング体験を大幅に向上する、高度に統合化されたソフトウェアプロダクトが提供されることになる。
【００７２】
ユーザが異なる機能へおよび機能間でナビゲートするアクティビティ（ナビゲーションアクティビティ）を管理するナビゲーションモデルは、上述したように新規な使い方がされているので、ユーザのナビゲーション体験は、ユーザの種々アクティビティと正確な論理関係をもつことが保証されている。提供されるナビゲーション支援ツールを使用すると、ユーザは、異なる機能間を高速かつ効率的にナビゲートすることができる。
【００７３】
ソフトウェアプラットフォームの実施形態では、シングルアプリケーションは、インターネットなどのネットワークを通して送信できるソフトウェアモジュールとして提供される異なる機能を受け取って、組み込むように拡張可能になっている。拡張可能ソフトウェアプラットフォームは、異なる加入者が、インターネットなどのネットワークを通して、有料で異なる機能にアクセスできるようにする、加入者サービスまたは料金方式サービスを提供するときの基礎となっている。
【００７４】
構造上の特徴および/または方法ステップに特有の表現で本発明を説明してきたが、当然に理解されるように、請求項に明確化されている本発明は、上述した具体的特徴またはステップに必ずしも限定されるものではない。むしろ、具体的特徴とステップは、請求項に記載された本発明を実施する、好ましい形態として開示されたものである。
【図面の簡単な説明】
【図１】  従来技術によるウィンドウ環境によって提供されるディスプレイの例を示す図である。
【図２】  上述した実施形態を実現するのに適している例示コンピューティングシステムを示すハイレベルブロック図である。
【図３】  上述した一実施形態によるユーザインタフェース (user interface  UI) の例を示す図である。
【図４】  上述した実施形態を示す例による、１つの例示ドキュメント中心機能を表示している具体的ユーザインタフェースの例を示す図である。
【図５】  上述した実施形態を示す例による、１つの例示ドキュメント中心機能を表示している具体的ユーザインタフェースの例を示す図である。
【図６】  上述した実施形態による方法におけるステップを記述しているフロー図である。
【図７】  ナビゲーションスタックの形体になっていて、「バックアンドトランケート(back-and-truncate)」を実現しているナビゲーションモデルの例を示すブロック図である。
【図８】  ナビゲーションスタックの形体になったナビゲーションモデルの例を示すブロック図であり、本発明による１つのナビゲーションスタックが上述した実施形態に従ってどのように操作されるかをビジュアルに示している。
【図９】  上述した実施形態による方法におけるステップを記述しているフロー図である。
【図１０】  上述した実施形態によるドキュメント中心の方法におけるステップを記述しているフロー図である。
【図１１】  上述した実施形態によるドキュメント中心の方法におけるステップを記述しているフロー図である。
【図１２】  一実施形態による概念を示すハイレベルブロック図である。
【図１３】  一実施形態による概念を示すハイレベルブロック図である。
【図１】
0004726386.tif 000002
【図２】
0004726386.tif 000003
【図３】
0004726386.tif 000004
【図４】
0004726386.tif 000005
【図５】
0004726386.tif 000006
【図６】
0004726386.tif 000007
【図７】
0004726386.tif 000008
【図８】
0004726386.tif 000009
【図９】
0004726386.tif 000010
【図１０】
0004726386.tif 000011
【図１１】
0004726386.tif 000012
【図１２】
0004726386.tif 000013
【図１３】
0004726386.tif 000014