(57)【特許請求の範囲】
【請求項１】
コンピューティング・デバイスで静的レイアウトを含むグラフィカル・ユーザ・インタフェースを生成するステップであって、前記静的レイアウトは第１のレベルでの複数の表示領域および対話領域を含み、前記複数の表示領域の各々は、第２のレベルのサブグループおよび第３のレベルのアイテムのうち１つを表すデータを表示するように構成され、前記第１のレベルの対話領域は複数のサブ領域を有する、ステップと、
前記グラフィカル・ユーザ・インタフェースに静的に位置する前記複数の表示領域を動的なコンテンツで更新するためにユーザ入力を受信するステップと、
前記受信されたユーザ入力が、前記第１のレベルの対話領域の前記複数のサブ領域のうち１つの選択であるかどうかを判定するステップと、
前記受信されたユーザ入力が前記複数のサブ領域のうち１つの前記選択であるとの判定に応答して、前記複数のサブ領域のうち前記１つの前記選択に対応する前記第２のレベルのサブグループを含むように前記複数の表示領域の各々を更新するステップと、
前記受信されたユーザ入力が前記複数の表示領域のある表示領域の選択であるかどうかを判定するステップと、
前記ユーザ入力が前記表示領域の前記選択であるとの前記判定に応答して、
選択された前記表示領域が同一のままであり、かつ
前記選択された表示領域以外の前記複数の表示領域の各々が、前記選択された表示領域に対応する前記第２のレベルのサブグループの異なる第３のレベルのアイテムを表示するように前記複数の表示領域を更新するステップと、を含み、
前記ユーザ入力が前記表示領域の前記選択であるとの判定に応答して、前記複数の表示領域を更新するステップが、グレーアウトされる前記選択された表示領域以外の前記複数の表示領域の各々の選択領域をさらに生じさせる、
方法。
【請求項２】
１組のデータをデータ・サーバから取り出すステップであって、前記１組のデータは第１のレベルのグループ、前記第２のレベルのサブグループ、および前記第３のレベルのアイテムを含み、前記第３のレベルのアイテムは記事であり、前記第２のレベルのサブグループは共通イベントに関する記事のクラスタであり、前記第１のレベルのグループは共通カテゴリに関する記事のクラスタのグループである、ステップをさらに含む、
請求項１に記載の方法。
【請求項３】
前記受信されたユーザ入力が前記複数のサブ領域のうち１つの前記選択であるかどうかを判定するステップは、前記ユーザ入力が前記第１のレベルの対話領域にわたるスクラブ入力を含むかどうかを判定するステップを含む、
請求項１に記載の方法。
【請求項４】
前記表示領域は情報領域および選択領域を含み、前記情報領域はテキスト情報を表示し、前記選択領域は前記テキスト情報に対応する画像を表示する、
請求項１に記載の方法。
【請求項５】
前記選択領域は前記グラフィカル・ユーザ・インタフェースの垂直側の近くに配置される、
請求項４に記載の方法。
【請求項６】
前記第３のレベルのアイテムに関連付けられたメタデータ・タグに基づいて、前記第２のレベルのサブグループ内の前記第３のレベルのアイテムに対する順位を決定するステップと、
前記第３のレベルのアイテムに関連付けられた画像があるかどうかを判定するステップと、
前記第３のレベルのアイテムの前記順位が閾値を満たす場合に、前記グラフィカル・ユーザ・インタフェース内に表示するための前記第３のレベルのアイテムを選択するステップとをさらに含む、
請求項１に記載の方法。
【請求項７】
前記表示領域は、前記グラフィカル・ユーザ・インタフェースの第１の垂直エッジの近くに配置された選択領域および情報領域を含み、前記方法は、前記ユーザ入力が前記選択領域で開始し前記情報領域で終了する水平スワイプに含まれるかどうかを判定し、前記水平スワイプに応答して、前記表示領域を更新して、前記グラフィカル・ユーザ・インタフェースの第２の垂直エッジの近くに配置されるように前記選択領域を移動するステップをさらに含む、
請求項１に記載の方法。
【請求項８】
プロセッサと、
前記プロセッサにより実行されたとき、システムに、
静的レイアウトを含むグラフィカル・ユーザ・インタフェースを生成させることであって、前記静的レイアウトは第１のレベルでの複数の表示領域および対話領域を含み、前記複数の表示領域の各々は、第２のレベルのサブグループおよび第３のレベルのアイテムのうち１つを表すデータを表示するように構成され、前記第１のレベルの対話領域は複数のサブ領域を有する、ことと、
前記グラフィカル・ユーザ・インタフェースに静的に位置する前記複数の表示領域を動的なコンテンツで更新するためにユーザ入力を受信することと、
前記受信されたユーザ入力が、前記第１のレベルの対話領域の前記複数のサブ領域のうち１つの選択であるかどうかを判定することと、
前記受信されたユーザ入力が前記複数のサブ領域のうち１つの前記選択であるとの判定に応答して、前記複数のサブ領域のうち前記１つの前記選択に対応する前記第２のレベルのサブグループを含むように前記複数の表示領域の各々を更新することと、
前記受信されたユーザ入力が前記複数の表示領域のある表示領域の選択であるかどうかを判定することと、
前記ユーザ入力が前記表示領域の前記選択であるとの前記判定に応答して、
選択された前記表示領域が同一のままであり、かつ
前記選択された表示領域以外の前記複数の表示領域の各々が、前記選択された表示領域に対応する前記第２のレベルのサブグループの異なる第３のレベルのアイテムを表示するように前記複数の表示領域を更新することとを行わせる命令を格納したメモリと、を備え、
前記メモリはまた、前記プロセッサにより実行されたとき、前記システムに、前記ユーザ入力が前記表示領域の前記選択であるとの判定に応答して、
グレーアウトされる前記選択された表示領域以外の前記複数の表示領域の各々の選択領域をさらに生じさせるように、前記複数の表示領域を更新させる命令を格納する、
システム。
【請求項９】
前記メモリはまた、前記プロセッサにより実行されたとき、前記システムに、１組のデータをデータ・サーバから取り出すことであって、前記１組のデータは第１のレベルのグループ、前記第２のレベルのサブグループ、および前記第３のレベルのアイテムを含み、前記第３のレベルのアイテムは記事であり、前記第２のレベルのサブグループは共通イベントに関する記事のクラスタであり、前記第１のレベルのグループは共通カテゴリに関する記事のクラスタのグループである、ことを行わせる命令を格納する、
請求項８に記載のシステム。
【請求項１０】
前記メモリはまた、前記プロセッサにより実行されたとき、前記システムに、前記ユーザ入力が前記第１のレベルの対話領域にわたるスクラブ入力を含むかどうかを判定させる命令を格納する、
請求項８に記載のシステム。
【請求項１１】
前記表示領域は情報領域および選択領域を含み、前記情報領域はテキスト情報を表示し、前記選択領域は前記テキスト情報に対応する画像を表示する、
請求項８に記載のシステム。
【請求項１２】
前記選択領域は前記グラフィカル・ユーザ・インタフェースの垂直側の近くに配置される、
請求項１１に記載のシステム。
【請求項１３】
前記メモリはまた、前記プロセッサにより実行されたとき、前記システムに、
前記第３のレベルのアイテムに関連付けられたメタデータ・タグに基づいて、前記第２のレベルのサブグループ内の前記第３のレベルのアイテムに対する順位を決定することと、
前記第３のレベルのアイテムに関連付けられた画像があるかどうかを判定することと、
前記第３のレベルのアイテムの前記順位が閾値を満たす場合に、前記グラフィカル・ユーザ・インタフェース内に表示するための前記第３のレベルのアイテムを選択することとを行わせる命令を格納する、
請求項８に記載のシステム。
【請求項１４】
前記表示領域は、前記グラフィカル・ユーザ・インタフェースの第１の垂直エッジの近くに配置された選択領域および情報領域を含み、前記メモリはまた、前記プロセッサにより実行されたとき、前記システムに、前記ユーザ入力が前記選択領域で開始し前記情報領域で終了する水平スワイプに含まれるかどうかを判定し、前記水平スワイプに応答して、前記表示領域を更新して、前記グラフィカル・ユーザ・インタフェースの第２の垂直エッジの近くに配置されるように前記選択領域を移動させる命令を格納する、
請求項８に記載のシステム。
【請求項１５】
コンピュータ可読プログラムを含む非一時的コンピュータ可読記録媒体であって、前記コンピュータ可読プログラムは、コンピュータ上で実行されたとき、前記コンピュータに、
静的レイアウトを含むグラフィカル・ユーザ・インタフェースを生成することであって、前記静的レイアウトは第１のレベルでの複数の表示領域および対話領域を含み、前記複数の表示領域の各々は、第２のレベルのサブグループおよび第３のレベルのアイテムのうち１つを表すデータを表示するように構成され、前記第１のレベルの対話領域は複数のサブ領域を有する、ことと、
前記グラフィカル・ユーザ・インタフェースに静的に位置する前記複数の表示領域を動的なコンテンツで更新するためにユーザ入力を受信することと、
前記受信されたユーザ入力が、前記第１のレベルの対話領域の前記複数のサブ領域のうち１つの選択であるかどうかを判定することと、
前記受信されたユーザ入力が前記複数のサブ領域のうち１つの前記選択であるとの判定に応答して、前記複数のサブ領域のうち前記１つの前記選択に対応する前記第２のレベルのサブグループを含むように前記複数の表示領域の各々を更新することと、
前記受信されたユーザ入力が前記複数の表示領域のある表示領域の選択であるかどうかを判定することと、
前記ユーザ入力が前記表示領域の前記選択であるとの前記判定に応答して、
選択された前記表示領域が同一のままであり、かつ
前記選択された表示領域以外の前記複数の表示領域の各々が、前記選択された表示領域に対応する前記第２のレベルのサブグループの異なる第３のレベルのアイテムを表示するように前記複数の表示領域を更新することを行わせ、
前記コンピュータ可読プログラムはまた、前記コンピュータで実行されたとき、前記コンピュータに、前記ユーザ入力が前記表示領域の前記選択であるとの判定に応答して、グレーアウトになる前記選択された表示領域以外の前記複数の表示領域の各々の選択領域をさらに生じさせるように、前記複数の表示領域を更新させる、
非一時的コンピュータ可読記録媒体。
【請求項１６】
前記コンピュータ可読プログラムはまた、前記コンピュータで実行されたとき、前記コンピュータに１組のデータをデータ・サーバから取り出させ、前記１組のデータは第１のレベルのグループ、前記第２のレベルのサブグループ、および第３のレベルのアイテムを含み、前記第３のレベルのアイテムは記事であり、前記第２のレベルのサブグループは共通イベントに関する記事のクラスタであり、前記第１のレベルのグループは共通カテゴリに関する記事のクラスタのグループである、
請求項１５に記載の非一時的コンピュータ可読記録媒体。
【請求項１７】
前記コンピュータ可読プログラムはまた、前記コンピュータで実行されたとき、前記コンピュータに、前記ユーザ入力が前記第１のレベルの対話領域にわたるスクラブ入力を含むかどうかを判定させる、請求項１５に記載の非一時的コンピュータ可読記録媒体。
【請求項１８】
前記表示領域は情報領域および選択領域を含み、前記情報領域はテキスト情報を表示し、前記選択領域は前記テキスト情報に対応する画像を表示する、
請求項１５に記載の非一時的コンピュータ可読記録媒体。
【請求項１９】
前記選択領域は前記グラフィカル・ユーザ・インタフェースの垂直側の近くに配置される、
請求項１８に記載の非一時的コンピュータ可読記録媒体。
【請求項２０】
前記コンピュータ可読プログラムはまた、前記コンピュータで実行されたとき、前記コンピュータに、
前記第３のレベルのアイテムに関連付けられたメタデータ・タグに基づいて、前記第２のレベルのサブグループ内の前記第３のレベルのアイテムに対する順位を決定することと、
前記第３のレベルのアイテムに関連付けられた画像があるかどうかを判定することと、
前記第３のレベルのアイテムの前記順位が閾値を満たす場合に、前記グラフィカル・ユーザ・インタフェース内に表示するための前記第３のレベルのアイテムを選択することと、を行わせる、
請求項１５に記載の非一時的コンピュータ可読記録媒体。
【請求項２１】
前記表示領域は、前記グラフィカル・ユーザ・インタフェースの第１の垂直エッジの近くに配置された選択領域および情報領域を含み、前記コンピュータ可読プログラムはまた、前記コンピュータで実行されたとき、前記コンピュータに、前記ユーザ入力が前記選択領域で開始し前記情報領域で終了する水平スワイプに含まれるかどうかを判定し、前記水平スワイプに応答して、前記表示領域を更新して、前記グラフィカル・ユーザ・インタフェースの第２の垂直エッジの近くに配置されるように前記選択領域を移動させる、
請求項１５に記載の非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はコンピュータ生成されたユーザ・インタフェースに関する。さらに、本開示は、複数の階層レベルを有するデータを効率的に編成し、提示し、それとの対話を提供するための方法およびシステムに関する。さらに、幾つかの実装は、ニュースをモバイル・デバイスで提供するためのユーザ・インタフェースに関する。
【背景技術】
【０００２】
コンピュータアプリケーションはときどき、データ、特に、階層的に、例えば、複数のレベルまたはデータツリーに編成できるデータを提供するために使用される。階層データは、カテゴリ、ニュース・イベント、および特定の記事にソートされるニュース記事を含んでもよい。例えば、頻繁に、ニュース・ソースは、カテゴリおよびこれらのカテゴリ内のニュース記事のリストを含む、リストまたはアウトライン・フォーマットで大量のテキストおよびグラフィカル情報を提示する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
階層データ（例えば、ニュース記事）を提示するためのこれらの既存のソリューションは、当該階層データをダウンロードしナビゲートするための大幅な計算リソース、およびインターネット帯域幅を要し、これは、有限の帯域幅および処理能力を有するクライアント・デバイスに過大な負荷をかけうる。
【課題を解決するための手段】
【０００４】
本開示は、複数のレベルを有するデータを効率的に編成し、提示し、それとの対話を提供するためのシステムおよび方法に関する。本明細書で説明した技術が、静的に配置され、グラフィカル・ユーザ・インタフェースの特定の領域でのユーザ入力に従って様々なレベルの階層データで動的に更新されうる当該グラフィカル・ユーザ・インタフェース上の表示領域を提供するステップを含む方法を含んでもよい。同様に、当該方法は、階層データならびに高速な取出しのアクセスおよびナビゲーションおよびグラフィカル・ユーザ・インタフェース要素の戦略的配置を通じた当該階層データの表示の容易性を可能としうる。
【０００５】
一般に、本開示で説明する主題の１つの進歩的な態様を、プロセッサおよび当該プロセッサにより実行されたとき、システムに、静的レイアウトを含むグラフィカル・ユーザ・インタフェースを生成することであって、当該静的レイアウトは第１のレベルに対する表示領域および対話領域を含み、当該表示領域は、第２のレベルのサブグループおよび第３のレベルのアイテムのうち１つを表すデータを表示するように構成され、当該第１のレベル対話領域は複数のサブ領域を有する、ことと、ユーザ入力を受信することと、当該受信されたユーザ入力が、当該第１のレベル対話領域の当該複数のサブ領域のうち１つの選択であるかどうかを判定することと、当該受信されたユーザ入力が記複数のサブ領域のうち１つの当該選択であるとの判定に応答して、当該複数のサブ領域のうち当該１つの当該選択に対応する当該第２のレベルのサブグループを含むように当該表示領域を更新することと、当該受信されたユーザ入力が当該表示領域の選択であるかどうかを判定することと、当該ユーザ入力が当該表示領域の当該選択であるとの当該判定に応答して、当該第２のレベルのサブグループに対応する当該第３のレベルのアイテムを含むように当該表示領域を更新させることとを実施させる命令を格納したメモリとを備えたシステムで実装しうる。
【０００６】
一般に、本開示で説明する主題の別の進歩的な態様が、当該コンピューティング・デバイスで静的レイアウトを含むグラフィカル・ユーザ・インタフェースを生成するステップであって、当該静的レイアウトは第１のレベルでの表示領域および対話領域を含み、当該表示領域は、第２のレベルのサブグループおよび第３のレベルのアイテムのうち１つを表すデータを表示するように構成され、当該第１のレベル対話領域は複数のサブ領域を有する、ステップと、ユーザ入力を受信するステップと、当該受信されたユーザ入力が、当該第１のレベル対話領域の当該複数のサブ領域のうち１つの選択であるかどうかを判定するステップと、当該受信されたユーザ入力が記複数のサブ領域のうち１つの当該選択であるとの判定に応答して、当該複数のサブ領域のうち当該１つの当該選択に対応する当該第２のレベルのサブグループを含むように当該表示領域を更新するステップと、当該受信されたユーザ入力が当該表示領域の選択であるかどうかを判定するステップと、当該ユーザ入力が当該表示領域の当該選択であるとの当該判定に応答して、当該第２のレベルのサブグループに対応する当該第３のレベルのアイテムを含むように当該表示領域を更新するステップとを含む方法で具現化されてもよい。
【０００７】
これらのおよび他の実装は各場合によっては以下の特徴の１つまたは複数を含んでもよい。例えば、特徴が、１組のデータをデータ・サーバから取り出すステップであって、当該１組のデータは第１のレベルのグループ、第２のレベルのサブグループ、および第３のレベルのアイテムを含み、当該第３のレベルのアイテムは記事であり、当該第２のレベルのサブグループは共通イベントに関する記事のクラスタであり、当該第１のレベルのグループは共通カテゴリに関する記事のクラスタのグループである、ステップを含んでもよく、当該受信されたユーザ入力が当該複数のサブ領域のうち１つの選択であるかどうかを判定するステップは、当該ユーザ入力が当該第１のレベル対話領域にわたるスクラブ入力を含むかどうかを判定するステップを含み、当該表示領域は情報領域および選択領域を含み、当該情報領域はテキスト情報を表示し、当該選択領域は当該テキスト情報に対応する画像を表示し、当該選択領域は当該グラフィカル・ユーザ・インタフェースの垂直側の近くに配置され、当該グラフィカル・ユーザ・インタフェースは複数の表示領域を含み、当該第３のレベルのアイテムを含めるように当該表示領域を更新するステップは、当該複数の表示領域の各々を異なるデータで更新するステップを含む、ステップを含んでもよい。追加の特徴が、当該第３のレベルのアイテムに関連付けられたメタデータ・タグに基づいて、当該第２のレベルのサブグループ内の当該第３のレベルのアイテムに対する順位を決定するステップと、当該第３のレベルのアイテムに関連付けられた画像があるかどうかを判定するステップと、当該第３のレベルのアイテムの順位が閾値を満たす場合に、当該グラフィック・ユーザ・インタフェース内に表示するための当該第３のレベルのアイテムを選択するステップとを含んでもよい。さらに他の特徴は、当該グラフィカル・ユーザ・インタフェースの第１の垂直エッジの近くに配置された選択領域および情報領域を有する当該表示領域を含み、当該方法はさらに、当該ユーザ入力が当該選択領域で開始し当該情報領域で終了する水平スワイプに含まれるかどうかを判定し、水平スワイプに応答して、当該表示領域を更新して、当該グラフィカル・ユーザ・インタフェースの第２の垂直エッジの近くに配置されるように当該選択領域を移動するステップを含む。
【０００８】
これらの態様の１つまたは複数の他の実装は、コンピュータ記憶デバイスで符号化された当該方法のアクションを実施するように構成された対応するシステム、装置、およびコンピュータ・プログラムを含む。
【０００９】
これらの実装は幾つかの点で特に有利である。例えば、本明細書で説明した要素および技術の実装および組合せは、それらが、特に小型のディスプレイでの大量の情報の高速なナビゲーションおよび消費を可能とし、要求された計算リソースを削減し、当該階層データをデータ・サーバから取り出すのに必要な当該データ通信帯域幅を削減するので、特に有利である。当該実装はまた、それらが、提示する必要のある情報の量に適応するユーザ・インタフェースを提供し、容易な階層レベル訪問のためのデータを提供し高レベルなスクラビングが高レベルなトピックの間で容易に遷移できるようにするので、有利である。例えば、本明細書で説明した技術により、コンピューティング・デバイスは、それ以外では消費しナビゲートするのが困難な量のデータを多数のカテゴリおよびソースから効率的に提示することができる。
【００１０】
しかし、上述の特徴および利点は全てを含むものではなく、多数の追加の特徴および利点が考慮され本開示の範囲内に入ることは理解されるべきである。さらに、本開示で使用する言語は主に可読性および教示的な目的のために選択されたものであり、本明細書で開示された主題の範囲を限定するものではないことは理解されるべきである。
【００１１】
本開示が当該添付図面の図において限定ではなく例として示される。添付図面において、同じ参照番号は同じ要素を指すために使用される。
【図面の簡単な説明】
【００１２】
【図１】階層データとの対話を効率的に編成し、提示し、提供するための例示的な方法の流れ図である。
【図２】高レベル対話領域スクラブを受信したことに応答して表示領域を更新するための例示的な方法の流れ図である。
【図３】クライアント・デバイスでの提示およびナビゲーションのためのデータを受信し処理するための例示的な方法の流れ図である。
【図４】表示領域選択を受信したことに応答して表示領域を低レベルデータで更新するための例示的な方法の流れ図である。
【図５】水平選択領域スワイプに応答して右手および左手レイアウトの間でトグルするように表示領域を更新するための例示的な方法の流れ図である。
【図６Ａ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図６Ｂ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図６Ｃ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図６Ｄ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図７Ａ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図７Ｂ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図７Ｃ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図８Ａ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図８Ｂ】階層データとの対話を効率的に編成し、提示し、提供するための例示的なグラフィカル・ユーザ・インタフェースのグラフィカル表現の図である。
【図９】階層データとの対話を効率的に編成し、提示し、提供するための例示的なシステムを示す高レベルなブロック図である。
【図１０】例示的なコンピューティング・システムを示すブロック図である。
【発明を実施するための形態】
【００１３】
階層データとの対話を効率的に編成し、提示し、提供するためのシステム、方法、およびインタフェースが開示される。本開示のシステム、方法およびインタフェースをクライアント・サーバ・システムの文脈で説明するが、本明細書で説明した技術を、ネットワーク上で動作可能に接続されたクライアント・サーバ・システム以外のシステムに適用できることは理解されるべきである。例えば、クライアント・デバイス、サード・パーティ・サーバ、データ・サーバ等が、かかる機能提供するために、本明細書で説明した機能の一部または全部を提供してもよく、サーバのクラスタを使用してもよい。
【００１４】
階層データとの対話を効率的に編成し、提示し、提供するための本明細書で説明した技術が幾つかの例において、主にニュース記事の例において表されているが、多数の他のタイプの階層データが可能であり考慮されていることは理解されるべきである。例えば、本明細書で定義された階層データが、複数のレベル・グループ、またはデータツリー、例えば、写真、ソーシャルネットワークデータ、製品情報、メディア（映画、音楽、および他のオーディオビジュアル）情報等に編成またはソートしうる任意のデータを含んでもよい。
【００１５】
当該複数のレベルのデータは少なくとも２つのレベルの階層データを含む。本明細書の例示の目的のため、高レベル、中間レベル、および低レベルが説明される。高レベル・グループは１つまたは複数の中間レベル・アイテムまたはサブグループを含む。例えば、高レベル・グループはカテゴリであってもよく、例えば、ニュース記事の例では、トップ、世界、ビジネス、政治等のニュースのカテゴリであってもよく、これらがイベントまたはトピックにより編成された記事または記事のグループを含んでもよい。高レベル・グループデータは、高レベル・グループに対する表示可能情報、当該高レベル・グループに対するメタデータ、および／または当該高レベル・グループ内のアイテムに対するデータを含んでもよい。中間レベルのサブグループは高レベル・グループ内に入り、また、１つまたは複数の低レベル・アイテムを含んでもよい。例えば、中間レベルのサブグループは、例えば、ニュース記事の例においては、イベント周りの記事のグループ、個人、または組織といったアイテムのクラスタであってもよい。中間レベルデータは、メタデータ、当該中間レベルのサブグループに対する表示不可能および／または表示可能情報、および／または当該中間レベルのサブグループ内のアイテムに対するデータを含んでもよい。低レベル・アイテムは中間レベルのサブグループに入り、任意のタイプのコンテンツ、例えば、記事（例えば、ニュース記事）、媒体（オーディオ、ビデオ、ゲーム等）、ソーシャルネットワーク情報、写真、製品等を含んでもよい。低レベルデータ（例えば、低レベル・アイテムに対応するかまたはそれを表示するデータ）が、当該低レベル・アイテムに対するメタデータ、表示可能、および／または表示不可能情報を含んでもよい。１組のデータまたはデータ・セットは、１つまたは複数の高レベル・グループ、中間レベルのサブグループ、または低レベル・アイテムに対する当該データの一部または全部を含む。本開示はこれらのタームにおいて当該複数のレベルを説明するが、本明細書で説明した技術は他の実装、レベルの量等に適用可能であることは理解されるべきである。
【００１６】
本明細書で説明した技術は、それらが有限なディスプレイ（例えば、コンピューティング・デバイス上の当該スクリーン）上での大量の情報の高速なナビゲーションおよび消費を可能とし、（例えば、低レイテンシにつながる）要求された計算リソースを削減し、使用されるデータ通信帯域幅を削減するので、特に有利である。例えば、本明細書で説明した技術により、非常に制限された計算リソースおよび非常に制限されたディスプレイサイズを有するコンピューティング・デバイス、例えば、安価なスマートフォンまたはウェラブルデバイス（例えば、スマートウォッチ）は、制限された量のデータを用いつつ（例えば、多数のモバイル・デバイスは少量のデータのみをダウンロードできるようにする低速データ接続または制限されたセルラデータ・プランを有する）ニュースを多数のカテゴリおよび記事から効率的に提示することができる。
【００１７】
さらに、本明細書で説明した当該技術によりユーザは、ユーザが高速に要素をナビゲートし、参照し、選択できるように、グラフィカル・ユーザ・インタフェースの要素と対話を編成することで階層データを迅速に消費することができる。本発明の技術の幾つかの実装は、当該ディスプレイの第１のエッジでのスクラブ可能高レベル選択バー、当該ディスプレイの第２のエッジでの中間レベル対話領域、および当該ディスプレイのどちら側が当該中間レベル対話領域を含むかをトグルする能力を提供することで、特にタッチ・スクリーンに対してこれらの目的を達成する。
【００１８】
さらに、本明細書で説明した技術の幾つかの実装は、Fittsの法則を考慮してグラフィカル要素（および特に階層データ）をナビゲートするのに必要な時間を削減する。Fittsの法則は、人間が（例えば、グラフィカル・ユーザ・インタフェース上で）オブジェクトを選択するのに必要な時間はインジケータ（例えば、オブジェクトを選択するのに使用されるデバイス、例えば、指、スタイラスペン、またはコンピュータカーソル）の現在の位置からのオブジェクトの距離に比例し、当該オブジェクトのサイズに反比例することを記述する。したがって、本明細書で説明した技術の実装は、特に小型のタッチ・スクリーン（例えば、片手で、例えば、モバイル・フォンまたはウェラブルデバイスで使用可能）を用いて、グラフィカル・ユーザ・インタフェースの第１のエッジ（例えば、底）に沿って配置されたスクラブ可能高レベル対話領域６０２および選択可能な当該グラフィカル・ユーザ・インタフェースの第２のエッジ（例えば、左側または右側）に沿って配置された中間レベル選択領域の要素を結合することで、Fittsの法則を階層データのナビゲーションに適用することができる。これらの要素を結合することで、オブジェクトをより高速に選択できるだけでなく、表示されているデータは当該インジケータ（例えば、タッチ・スクリーン上の指）により不明瞭とされないままである。本発明の技術のこれらのおよび他の実装が本明細書にわたって他所で説明される。
【００１９】
本明細書で説明した技術の幾つかの実装はまた、グラフィカル要素を一貫した位置で維持し、アニメーションを回避し、冗長なまたは過剰なデータの提供を回避することで、階層データの高速なナビゲーションの目標を達成する。例えば、幾つかの実装は、スクロールが必要とされず防止さないように、データを表示でき、当該グリッド内に表示できるよりも多くのデータを表示または抽出可能としない固定されたグリッドを含む。特に、スクローリングは本来、当該ユーザの目が当該グラフィカル・ユーザ・インタフェースをスキャンして情報を見つけなければならないように情報の位置を変化させるので、スクローリングを防止するのが有利である。例えば、ユーザが特定の高レベル・グループを選択すると、当該ユーザは、当該特定の高レベル・グループに関する各タイプの情報がどこに配置されるかを、当該グラフィカル・ユーザ・インタフェースで検索する時間を費やすことなく、自動的に知る必要がある。さらに、幾つかの事例では、選択された表示領域は静的なままであり、当該インタフェースの他の領域は当該選択された情報を反映するように変化する。例えば、特定の中間レベルのサブグループが選択されているとき、その中間レベルのサブグループに対応する（例えば、データツリー／階層内のそのサブグループの下／内部の）低レベルデータが変化し、当該中間レベルのサブグループに対して表示されたデータは当該インタフェース上で不変なままである。幾つかの事例では、当該表示領域は、複数の中間レベルのサブグループに対応するデータを表示し、特定の中間レベルのサブグループが選択されているとき、当該選択されていない中間レベルのサブグループに対応するデータの上にまたはそれに代わって、当該選択された中間レベルのサブグループに対応する低レベルデータを拡張する固定されたグリッドとして配置される。さらに、当該データの表示選択領域が、本明細書で説明したように、固定されたグリッドに表示されている実装により、当該インタフェースは同一の情報および当該グラフィカル・ユーザ・インタフェース上の同一のグラフィカル位置における選択を表示しうるので、情報をユーザにより迅速に読み出しナビゲートすることができる。
【００２０】
データ提供モジュール９０８が階層データを受信し編成するようにクライアント・デバイス９０６で動作可能であるとして説明されているが、その機能の幾つかのまたは全てを１つまたは複数のサーバ、例えば、データ・サーバ９１６で実装してもよいことは理解されるべきである。同様に、データ分析エンジン９１８が階層データを取り出して処理し、ついで当該階層データをクライアント・デバイス９０６上のデータ提供モジュール９０８に送信するようにデータ・サーバ９１６上で動作可能であるとして説明されているが、データ分析エンジン９１８の機能の一部または全部はシステム９００のクライアント・デバイス９０６または別のコンポーネントで動作可能であってもよい。さらに、当該サード・パーティ・アプリケーションの機能の一部または全部が、例えば、データ・サーバ９１６で動作可能であってもよい。
【００２１】
図１は、階層データとの対話を効率的に編成し、提示し、提供するための例示的な方法１００の流れ図である。１０２で、データ提供モジュール９０８（データ提供モジュール９０８およびそのコンポーネント１０２０、１０２２、１０２４、および１０２６が図９および１０で示され、以下でより詳細に説明される）は、複数のデータ・セットを表示するために定義されたレイアウトを含むクライアント・デバイス９０６で表示するための動的グラフィカルインタフェースを生成し、当該インタフェースは高レベル対話領域６０２および表示領域６０８、６１０、６１２、および６１４を含む。当該定義されたレイアウトが、任意数のディスプレイおよび／または対話領域を含んでもよい。幾つかの実装では、当該ディスプレイおよび／または対話領域は当該グラフィカルインタフェース内に静的に配置されたままであり、これらの領域内のコンテンツのみがデータ提供モジュール９０８により変更される。例えば、表示領域６０８、６１０、６１２、および６１４を、選択されたレベルのデータ・セットを表示するグリッドに編成してもよい。例示的な定義されたレイアウトが図６乃至８Ｂを参照して説明されているが、他の構成が可能であり本明細書で説明した技術で考えられている。
【００２２】
１０４で、インタフェース・モジュール１０２２（例えば、図９および１０を参照して以下で説明される）が入力をクライアント・デバイス９０６（例えば、入力デバイス１００５を介して）から受信し、ブロック１０６、１１０、および１１４で、インタフェース・モジュール１０２２は、どのタイプの入力が受信されたかおよびどのアクションを当該ユーザ入力に応答してとるべきかを決定する。ユーザ入力が１０６、１１０、および１１４で決定されると、インタフェース・モジュール１０２２はそれぞれ当該アクションを１０８、１１２、および１１６で実施する。インタフェース・モジュール１０２２が１０６、１１０、または１１４での当該ユーザ入力の認識に失敗し、かつ／または、１０８、１１２、および１１６で実施される当該アクションが完了すると、方法１００は１０４に再度戻ってユーザ入力を待機してもよい。例えば、ブロック１０４の後で、方法１００はブロック１０６に続く。
【００２３】
１０６で、インタフェース・モジュール１０２２は入力が高レベル対話領域スクラブであったかどうかを判定する。スクラブが、当該グラフィカル・ユーザ・インタフェースにわたるインジケータ（例えば、指、スタイラスペン、カーソル、または他の入力デバイス）の任意の移動またはスライドを含んでもよい。例えば、当該スクラブ入力を認識しそれに応答して当該ユーザ・インタフェースを更新するステップが図６Ａ乃至６Ｄに示されている。インタフェース・モジュール１０２２が１０６でスクラブを登録してもよいが、幾つかの実装では、それが、高レベル・グループを高レベル対話領域６０２から選択する任意の入力（例えば、クリック、ホバー、タッチ・スクリーン上のタッチ等）であってもよくまたはそれらを登録してもよい。スクラブ可能高レベル対話領域６０２は、高速な対話能力を保持しつつグラフィカル・ユーザ・インタフェース上の非常に小さな領域を必要とする正確な選択領域を提供する。例えば、スクラブ可能対話領域６０２は、（上述のようにFittsの法則に従う追加の時間／工数を要する）小さな領域をユーザが正確に選択することを必要とせず、したがって、スクラブ可能領域は、位置だけでなく移動を追跡することでオブジェクトの高速選択を依然として可能としつつ、より小さいことができる。例示的な高レベル対話領域６０２が本明細書のどこかでさらに詳細に説明される。
【００２４】
インタフェース・モジュール１０２２が、入力が高レベル対話領域スクラブであったと判定した場合１０６、方法１００はブロック１０８において継続する。ブロック１０８で、インタフェース・モジュール１０２２は、データ提供モジュール９０８の他のコンポーネントと関連して、本明細書で説明したように、当該入力が高レベル対話領域スクラブを含むとの判定１０６に応答して、選択された高レベル・グループに対応する中間レベルデータで表示領域（複数可）を更新する。当該中間レベルデータは中間レベルのサブグループ内の低レベル・アイテムを反映してもよい。幾つかの実装では、当該中間レベルデータは当該サブグループ内の低レベル・アイテムのサマリであってもよい。幾つかの実装では、当該中間レベルデータは、当該サブグループ内の低レベル・アイテムのうち１つに対する低レベルデータを含んでもよい。例えば、幾つかの事例では、中間レベルのサブグループがニュース・イベントを記述するニュース記事のクラスタであってもよく、そのグループに対する中間レベルデータが当該イベントのサマリであってもよく、または、以下でさらに詳細に説明するように、当該中間レベルデータが選択された記事（例えば、提示のための指定された優先度記事）からの情報を含んでもよい。１０８で高レベル対話領域スクラブ／選択を受信したことに応答して表示領域６０８、６１０、６１２、および６１４を更新するステップを、図２を参照してさらに詳細に説明する。
【００２５】
ブロック１０６および１０８の例示的な実装において、ユーザは、タッチ・スクリーン（例えば、図６Ａ乃至８Ｂに示すように入力デバイス１００８および出力デバイス１０１０の組合せ）の下底で彼の親指を高レベル対話領域６０２にわたってスクラブして、ニュースカテゴリを選択してもよい。データ提供モジュール９０８は当該スクラブを本明細書で説明したように登録および認識し、表示領域６０８、６１０、６１２、および６１４を更新して、本明細書の図６Ａ乃至６Ｄを参照して説明したように階層データ・セットを取り出し当該データを表示することで、当該スクラブにより選択されたニュースカテゴリを反映してもよい。表示領域６０８、６１０、６１２、および６１４の各々が、当該選択された高レベル・グループまたはニュースカテゴリ内の記事のサブグループまたはクラスタに対応する画像およびテキストを含んでもよい。
【００２６】
インタフェース・モジュール１０２２が、入力が高レベル対話領域スクラブでなかったとブロック１０６で判定した場合、方法１００はブロック１１０に継続する。ブロック１１０で、インタフェース・モジュール１０２２が１０４で受信された入力が表示領域選択を含むかどうかを判定する。例えば、当該入力を認識しユーザ・インタフェースを更新するステップが図７Ａ乃至７Ｃに示されている。表示領域（例えば、６０８、６１０、６１２、または６１４）がグラフィカル・ユーザ・インタフェース６００の領域を含んでもよく、当該領域を、データを表示するための情報領域８１４およびそのデータを選択するための選択領域８１６に分割してもよい。例えば、情報領域８１４は中間または低レベルデータを表示してもよく、かつ／または選択領域８１６は中間レベルのサブグループを選択してもよい。さらに、表示領域６０８、６１０、６１２、および６１４が行のグリッドまたは列に編成されるケースでは、選択領域８１６（本明細書では８１６ａ乃至８１６ｄを単に８１４と称してもよい）が選択カラム８２２（本明細書では８２２ａおよび８２２ｂを単に８２２と称してもよい）に編成されてもよく、情報領域（本明細書では８１４ａ乃至８１４ｄを単に８１４と称してもよい）が情報カラム（本明細書では８２０ａおよび８２０ｂを単に８２０と称してもよい）に編成されてもよい。
【００２７】
インタフェース・モジュール１０２２が、受信された入力が表示領域選択を含むと判定した場合１１０、方法１００はブロック１１２に進む。ブロック１１２で、インタフェース・モジュール１０２２は、ユーザ入力が表示領域選択を含んだとの判定１１０に応答して、当該選択された中間レベルのサブグループに対応する低レベルデータで表示領域（複数可）を更新する。例えば、幾つかの実装では、当該低レベルデータはニュース記事のクラスタ内の個々の記事に関する情報を含んでもよい。表示領域選択を受信したことに応答して低レベルデータで表示領域６０８、６１０、６１２、および６１４を更新するステップを、図４を参照してさらに詳細に説明される。
【００２８】
ブロック１０４、１１０、および１１２の例示的な実装において、ユーザは、（例えば、表示領域内の画像上の特定の選択領域８１６を介して）表示領域を、タッチ・スクリーン上で彼の親指で選択して、ニュースクラスタを選択してもよい。データ提供モジュール９０８は本明細書で説明したように表示領域選択を登録および認識し、入力により選択されたニュースクラスタを反映するように表示領域６０８、６１０、６１２、および６１４を更新する。表示領域６０８、６１０、６１２、および６１４を、表示領域６０８、６１０、６１２、および６１４の各々におけるニュースアイテム／記事を反映するように更新してもよい。当該ユーザはついで、必要に応じて、当該表示領域を再度選択することで当該表示領域／ニュースクラスタを選択解除してもよく、例えば、当該ユーザは選択領域９１６を２回タップして、表示されている中間レベルのサブグループのリストに戻ってもよい。
【００２９】
インタフェース・モジュール１０２２が、受信された入力が表示領域選択を含まなかったと判定した場合１１０、方法１００はブロック１１４に進む。ブロック１１４で、インタフェース・モジュール１０２２は、１０４で受信された入力が水平選択領域スワイプを含むかどうかを判定する。スワイプが、グラフィカルインタフェースの領域にわたるインジケータの任意の移動またはスライドを含んでもよい。特に、水平選択領域スワイプは、選択領域８１６で始まるグラフィカル・ユーザ・インタフェースにわたってインジケータを水平にスライドすることを含む。例えば、水平選択領域スワイプおよび対応するユーザ・インタフェースの更新が図８Ａおよび８Ｂに示されている。インタフェース・モジュール１０２２が１０６での高レベル対話領域スクラブおよびブロック１１４での水平選択領域スワイプ（例えば、高レベル対話領域６０２が水平に向いているとき）の間で区別するために、インタフェース・モジュール１０２２は当該スワイプの位置に対する当該スクラブの位置を決定してもよい。スクラブは、１０６で決定されるように、高レベル対話領域６０２上に（おおよそまたは厳密に）配置される。スワイプは、１１４で決定されるように、（おおよそまたは厳密に）当該表示領域（複数可）上に配置される。例えば、スワイプが、本明細書のどこかで説明される選択領域／カラム８１６／８２２の選択とドラッグを含んでもよい。
【００３０】
インタフェース・モジュール１０２２が、１０４で受信された入力が水平選択領域スワイプであったと判定した場合１１４、方法１００はブロック１１６に進む。ブロック１１６で、インタフェース・モジュール１０２２は、当該入力が選択領域の水平スワイプを含んだとの判定１１４に応答して右手から左手レイアウト（またはその逆）にトグルするように表示領域（複数可）を更新する。幾つかの実装では、前述のように、当該表示領域（複数可）が、当該グラフィカルインタフェースの左手または右手レイアウトを提供するために再配置できる情報および選択カラム８２０および８２２を含んでもよい。例えば、選択カラム８２２をドラッグ／スワイプして、当該表示領域（複数可）を（例えば、図８Ａのように）右手から（例えば、図８Ｂのように）左手レイアウトにトグルして、グラフィカルインタフェースがタッチ・スクリーンデバイス（例えば、クライアント・デバイス９０６）上にあるときのより容易な入力アクセスを提供し、指が当該タッチ・スクリーンと対話することによる情報領域８１４の妨害を防止することができる。水平選択領域スワイプに応答して右手および左手レイアウトの間でトグルするように表示領域６０８、６１０、６１２、および６１４を更新するステップが図５、８Ａ、および８Ｂを参照してさらに詳細に説明される。他方、インタフェース・モジュール１０２２が、１０４で受信された当該入力が水平選択領域スワイプでなかったと判定した場合１１４、方法１００はステップ１０４にループする。
【００３１】
図２は、高レベル対話領域スクラブ／選択を受信したことに応答して、表示領域６０８、６１０、６１２、および６１４を更新するための例示的な方法２００の流れ図である。方法２００は、図１に示されるブロック１０６および１０８に対するさらなる詳細を提供する。２０２で、インタフェース・モジュール１０２２は複数のデータ・セットを表示するための定義されたレイアウトを含む動的グラフィカルインタフェースを生成し、当該データ・セットは複数のレベルを含み、２０４でインタフェース・モジュール１０２２はクライアント・デバイス９０６に表示するためのサブ領域を含む高レベル対話領域６０２を提供し、各サブ領域は高レベル・グループに対応する。
【００３２】
例示的な高レベル対話領域６０２が図６に表示されている。示すように、高レベル対話領域６０２は、（例えば、図６Ａ乃至６Ｄに示されるように）タッチ・スクリーンクライアント・デバイス上での（例えば、インジケータ６３０により示されるように）指による容易なアクセスを提供するために、グラフィカルインタフェース６００の下底の近くに静的に配置されてもよい。例えば、図６に示される高レベル対話領域６０２の配置は有利なことに、ユーザが片方の手を用いて親指を高レベル対話領域６０２に沿ってスライドすることで高レベル・グループをスクラブ／選択することを可能とする。さらに、示すように、高レベル対話領域６０２が複数のサブ領域６０４ａ乃至６０４ｈを含んでもよい。例えば、当該サブ領域はカテゴリまたはサブジェクトに対応してもよい。図６に示す例において、各サブ領域はニュースカテゴリ（例えば、トップ・ストーリ、世界、ＵＳ、ビジネス、技術、科学、健康、エンターテインメント等）に関する。当該サブ領域および高レベル対話領域６０２が静的に配置される事例では、ユーザは有利にもサブ領域／高レベル・グループを選択するために高レベル対話領域６０２またはサブ領域を見る必要はない。幾つかの実装では、当該インタフェースに表示された特定のサブ領域６０４ａ乃至６０４ｈがカスタマイズ可能または拡張可能であってもよい。さらに、幾つかの事例では、当該グラフィカルインタフェースが、どの高レベル・グループが（例えば、サブ領域６０４ａ乃至６０４ｈから）選択されるかを表示する高レベル・グループ選択インジケータ６０６を含んでもよい。８個のサブ領域６０４ａ乃至６０４ｈが示されているが、本明細書で説明した技術の範囲を逸脱することなくより少ないまたは追加のサブ領域を使用してもよい。高レベル対話領域６０２、サブ領域６０４ａ乃至６０４ｈ、および選択インジケータ６０６が図６の特定の構成で表示されているが、他の実装が可能であり、本明細書で考慮されていることは理解されるべきである。例えば、高レベル対話領域６０２をグラフィカル・ユーザ・インタフェースの左側または右側に沿って垂直に配向でき、または当該選択インジケータが当該選択されたサブ領域のハイライトのみで構成されてもよい。
【００３３】
図６Ａは初期グラフィカル・ユーザ・インタフェース６００の１例を示し、インタフェース・モジュール１０２２がユーザ入力を受信するのを待機している。例えば、サブ領域６０４ａにより表されるカテゴリが最初にグラフィカル・ユーザ・インタフェース６００に示されてもよい。図６Ｂはインジケータ６３０による入力を受信した際の例示的なグラフィカル・ユーザ・インタフェース６００を示し、示すように、サブ領域６０４ａはそれが選択されていることを反映するようにハイライトされ（または変更され）てもよい。同様に、選択インジケータ６０６は選択されたサブ領域６０４ａに対応するカテゴリを示す。図６Ｃは例示的なグラフィカル・ユーザ・インタフェース６００を示し、スクラブ入力が受信されている。例えば、インジケータ６３０は高レベル対話領域６０２にわたってスクラブしている。図６Ｃに示す例において、インタフェース・モジュール１０２２は当該スクラブを認識するが、当該インジケータが特定のサブ領域の上でまたはおおよそその上で停止または減速するのを待機してもよい。
【００３４】
図６Ｄは例示的なグラフィカル・ユーザ・インタフェース６００を示し、インタフェース・モジュール１０２２が、スクラブ入力がサブ領域６０４ｂを選択したことを認識している。サブ領域６０４ｄは、図示した実装において、ワールド・ニュースカテゴリに対応し、これが選択インジケータ６０６に表示されてもよい。さらに、図６Ｄにおいて、表示領域６０８、６１０、６１２、および６１４、ならびにそれらの夫々の要素の各々が、グラフィカル・ユーザ・インタフェース６００に静的に配置されたままであることがわかる。しかし、表示領域６０８、６１０、６１２、６１４内に表示された情報は、選択されたサブ領域６０４ｂを反映するように変更されている。幾つかの実装では、インタフェース・モジュール１０２２は、入力がサブ領域６０４ｂ、したがってワールド・ニュースカテゴリを選択すると認識してもよく、データ分析エンジン９１８（例えば、本明細書で説明したように、データ・ハンドラ１０２０、通信モジュール１００２、およびネットワーク９０２を介して）と通信して、選択された高レベル・グループ（例えば、サブ領域６０４ｂで選択されたカテゴリ）に対する階層データを含むデータ・セットを取り出してもよい。
【００３５】
図２に戻ると、２０６で、データ・ハンドラ１０２０はデータ・セット（複数可）をデータ・サーバ９１６から取り出す。例えば、データ・ハンドラ１０２０は特定の信号に応答してデータ・セットを取り出してもよく、当該信号がウェブ・ページまたはウェブ・アプリのオープン、アプリケーションの実行、またはユーザ入力の受信を含んでもよい。例えば、幾つかの実装では、インタフェース・モジュール１０２２は、それが、データ・セット（複数可）をデータ・サーバ９１６から（例えば、図９のネットワーク９０２を介して）取り出すためにデータ・ハンドラ１０２０に何を信号送信するかに応答して、ユーザ入力を受信する。
【００３６】
幾つかの実装では、データ・ハンドラ１０２０は、サブ領域６０４ａ乃至６０４ｈにより表されるグループに対するデータ・セット（例えば、各高レベル・グループの高、中、および低レベルに対応するデータ）を取り出す。幾つかの実装では、データ・ハンドラ１０２０は、選択された高レベル・グループに対応する１組のデータのみを取り出す。幾つかの実装では、データ・ハンドラ１０２０は、データ（例えば、中間レベルデータ、低レベルデータ等）を、当該情報を当該グラフィカルインタフェースに表示するのに必要なものとしてのみ取り出す。例えば、ユーザが特定の高レベル・グループおよび中間レベルのサブグループを選択した場合、データ・ハンドラ１０２０は、選択されたデータを当該インタフェースに表示するのに必要なデータ（例えば、当該選択された中間レベルのサブグループに対する利用可能な表示領域に対応する数の低レベル・アイテムを表示するのに必要なデータ）のみを取り出してもよい。
【００３７】
データ・ハンドラ１０２０はデータ・サーバ９１６から取り出されたデータをさらなる処理のためにインタフェース・モジュール１０２２に送信してもよく、または、幾つかの事例では、データ・ハンドラ１０２０は、当該取り出されたデータを、データ提供モジュール９０８の他のコンポーネントによるアクセスのためにデータ・ストア１０１２に格納してもよい。
【００３８】
２０８で、インタフェース・モジュール１０２２は、クライアント・デバイス９０６に表示するための定義されたレイアウトを有する表示領域６０８、６１０、６１２、および６１４を提供し、各表示領域は、中間レベルのサブグループに対する中間レベルデータを表示するように構成される。例えば、インタフェース・モジュール１０２２は、データ・ハンドラ１０２０によりデータ・ストア１０１２に格納されたデータ・セット１０１４ａにアクセスし、表示領域６０８、６１０、６１２、および６１４内のデータ・セットを用いてインタフェースを生成する。説明したように本明細書のどこかで、中間レベルデータは中間レベルのサブグループのコンテンツを反映する。例えば、各表示領域は、高レベル・グループ内の中間レベルのサブグループごとに中間レベルデータを表示する。複数の例示的な表示領域６０８、６１０、６１２、および６１４が図６乃至８Ｂで示されている。図６Ａ乃至６Ｄの図示した実装では、各表示領域６０８、６１０、６１２、および６１４は中間レベル・グループに対する中間レベルデータを表示している。例えば、ニュースデータが例示的なインタフェース６００に表示されおり、各中間レベル・グループは「トップ・ストーリ」の選択された高レベル・グループ６０４ａ内のイベントに対応する。
【００３９】
定義されたレイアウトが、図６Ａ乃至８Ｂに示すように、表示領域のカラム内に互いに積層された長方形領域でありうる１つまたは複数の表示領域６０８、６１０、６１２、および６１４を含んでもよい。幾つかの事例では、表示領域６０８、６１０、６１２、および６１４は図６Ａ乃至８Ｂ内のブラケットにより示すように画されている。表示領域６０８、６１０、６１２、および６１４は当該グラフィカル・ユーザ・インタフェースの左側から右側に拡張されてもよく、構成要素、例えば、情報領域８１４および選択領域８１６に分解されてもよい。さらに、情報領域８１４が、情報、例えば、図７Ａ乃至７Ｃに表示されるようにタイトル７０２ａ、ソース７０４ａ、サブジェクト７０６ａ、カテゴリ７１０ａ等を表示するために１つまたは複数の領域にさらに分解されてもよく、情報領域８１４内の特定の領域に表示されてもよい。幾つかの実装では、当該定義されたレイアウトは当該グラフィカル・ユーザ・インタフェース（例えば、図６Ａ乃至８Ｂに表示されるように６００、７００、または８００）の上部の近くに配置された選択インジケータ６０６、当該グラフィカル・ユーザ・インタフェースの下底の近くに配置された高レベル対話領域６０２を含み、幾つかの（例えば、４乃至６個の）表示領域６０８、６１０、６１２、および６１４は、選択インジケータ６０６および高レベル対話領域６０２の間の領域を埋める。
【００４０】
図２に戻ると、２１０で、インタフェース・モジュール１０２２が高レベル対話領域６０２にわたるスクラビングを含むユーザ入力を受信し、当該スクラビングはサブ領域／高レベル・グループの選択を反映し、２１２で、当該スクラブ入力を受信したことに応答して、インタフェース・モジュール１０２２は、本明細書でより詳細に説明するように、選択された高レベル・グループに対応する中間レベルデータを含むように表示領域６０８、６１０、６１２、および６１４を更新する。
【００４１】
図３は、クライアント・デバイス９０６での提示とナビゲーションのためのデータを受信するための例示的な方法３００の流れ図である。３０２で、データ・ハンドラ１０２０は、図２のブロック２０６を参照して上述したように、データをデータ・サーバ９１６から受信する。データ・ハンドラ１０２０により取り出されたデータ・セットが、既に（例えば、データ・ハンドラ１０２０によりダウンロードされる前に）高、中、および低レベルにソートされ、特定の基準に従って順位づけられ、かつ／または（図９に示されるように）データ分析エンジン９１８によりタグ付けされてもよいことは理解されるべきである。特に、当該データ・セットは、重い処理がデータ提供モジュール９０８により実施されないように、データ・ハンドラ１０２０により受信される前に、データ分析エンジン９１８により処理されるべきである。したがって、データ分析エンジン９１８により実施される処理の一部または全部をデータ提供モジュール９０８により実施してもよいが、方法３００は主に、当該データ・セットがデータ分析エンジン９１８により処理されついでデータ提供モジュール９０８による使用のために取り出されるとして説明される。さらに、データ提供モジュール９０８を参照して説明される追加の動作および機能をデータ分析エンジン９１８により実施してもよいことは理解されるべきである。
【００４２】
３０４で、カテゴリ化モジュール１０２４はデータ・ハンドラ１０２０により取り出されたデータ・セット（複数可）にアクセスし、当該データを高レベル・グループ、中間レベルのサブグループ、および低レベル・アイテムにソートしてもよい。幾つかの実装では、当該高、中、および低レベルデータは、各低レベル・アイテムのデータの順位を記述し、レベル（高、中、低等）を示し、かつ／または階層グループまたはサブグループ各アイテムが属するタグを含む（例えば、データ分析エンジン９１８によりタグ付けされデータ・アイテムのメタデータに含まれる）。例えば、低レベル・アイテムが、当該アイテムが特定の中間レベルのサブグループおよび特定の高レベル・グループに属することを示すタグを含んでもよい。カテゴリ化モジュール１０２４はこれらのデータ・アイテムを当該タグに従って中間レベルのサブグループおよび高レベル・グループにソートしてもよい。
【００４３】
３０６で、順序付けモジュール１０２６は、ソートされたデータ・セットを処理して、（例えば、カテゴリ化モジュール１０２４から受信されるかまたはクライアント・デバイス９０６のメモリにある）各高レベル・グループ内に表示される中間レベルのサブグループを決定する。幾つかの実装では、データ・ハンドラ１０２０により取り出されたデータ・セットは、当該インタフェース内の表示領域６０８、６１０、６１２、および６１４の数に対応する量の中間レベルのサブグループを含む。例えば、図６に示す例において、４つの表示領域６０８、６１０、６１２、および６１４のみが描画されており、したがって各高レベル・グループ内の最大で４つの中間レベルのサブグループに対応する（例えば、それに属するようにタグ付けされた）データがデータ・サーバ９１６から取り出される。
【００４４】
同様に、幾つかの実装では、データ・ハンドラ１０２０により取り出されたデータ・セットが、インタフェース内の表示領域６０８、６１０、６１２、および６１４の数に対応する量の低レベル・アイテムのみを含んでもよい。例えば、図７に示す例において、４つの表示領域６０８、６１０、６１２、および６１４のみが描画されており、したがって、各中間レベルのサブグループ内の最大で４つの低レベル・アイテムに対応する（例えば、それに属するようにタグ付けされた）データがデータ・サーバ９１６から取り出される。
【００４５】
３０８で、順序付けモジュール１０２６は、ソートされたデータ・セットを処理して各中間レベルのサブグループ内で表示される低レベル・アイテムを決定する。幾つかの実装では、データ・ハンドラ１０２０は、低レベル・アイテムごとに事前定義されたデータのみを取り出し、それらは各中間レベルのサブグループ内で低レベルデータとして表示され、他の実装において、データ・ハンドラ１０２０が低レベル・アイテム（例えば、ニュース記事）を全体として取り出すことが可能であり、順序付けモジュール１０２６は、どの低レベルデータを、テキスト分析、メタデータ・タグ等を用いて表示するかを判定する。
【００４６】
（例えば、表示領域（複数可）内で）表示された低レベルデータが、低レベル・アイテムごとに特定の情報を含んでもよい。例えば、図７の例示的な実装で示すように、表示された低レベルデータが、タイトル７０２、ソース７０４、分類７０６、サブジェクト７１０、および／または画像７１２を含んでもよいが、以下のブロック３１２を参照して説明するように他の実装が可能である。図７に示す例において、（以下の３１０を参照して定義されるように）指定された優先度の記事は分類７０６ではなくサブジェクト７０８を含むが、他の実装が可能であり考慮されている。さらに、幾つかの実装では、当該指定された優先度記事のみが（その記事に対して、データ・ハンドラ１０２０により取り出されうる）表示画像を含むが、例えば、（利用可能な場合）低レベルデータ・アイテム／記事の各々が画像を含む他の実装が可能である。
【００４７】
３１０で、順序付けモジュール１０２６は、各中間レベルのサブグループにおける低レベルデータ提供優先度を決定する。当該低レベルデータ提供優先度は低レベル・アイテムを提示する順番を定義し、幾つかの実装では、これらのアイテムのうちどれが指定された優先度アイテムであるかを定義する。指定された優先度アイテムに対する低レベルデータが中間レベルのサブグループを表すように表示されてもよい。例えば、指定された優先度アイテムがイベントに対するニュース記事のクラスタ内の最も人気のあるニュース記事であってもよく、当該指定された優先度記事に対する低レベルデータが記事の中間レベルのサブグループまたはクラスタ全体のコンテンツを反映するように中間レベルデータとして表示されてもよい。幾つかの事例では、当該指定された優先度アイテムは順位付けられその順位が閾値を満たすアイテムであってもよい。例えば、当該順位が、（例えば、アイテムの人気度を示す）低レベル・アイテム上のメタデータ・タグ、および、当該低レベル・アイテムが関連付けられた画像を含むかどうか（例えば、ニュース記事のケースでは、当該ニュース記事が画像を含むかどうか）に基づいてもよい。
【００４８】
幾つかの実装では、データ・セットをデータ提供モジュール９０８に送る前に、データ分析エンジン９１８は、指定された優先度アイテム、残りのアイテムに対する表示順序、および／または低レベル・アイテムおよび／または中間レベルのサブグループに対する順位を決定し（またはデータ提供モジュール９０８によるサービス要求に応答して決定してもよい）、順序付けモジュール１０２６による認識のために当該アイテムをタグ付けする。指定された優先度アイテムは、定義された１組の基準内にあるかまたはそれに最も密接に対応する最高優先度または順位に適合する、例えばそれらを有するアイテムに対応する任意のアイテムである。例えば、低レベル・アイテムが、全体の人気度、カテゴリ内の（例えば、中間レベルのサブグループ内、高レベル・グループ内等）人気度、コンテンツの深さ、そのソースの評価等に基づいて順位づけられてもよい。別の例では、低レベル・アイテムは、当該低レベル・アイテムの分類を記述する（例えば、データ分析エンジン９１８により決定される）タグを含む。例えば、図７Ｃに示す例において、分類（７１０ａ、７１０ｃ、および７１０ｄ）が、「詳細」、「意見」、および「国際」を含んでもよいが、最高順位の記事、ローカルソース、特定のソース、（例えば、ソーシャルネットワーク上の、人気度での）アイテムのトレンディング、頻繁に引用されている、頻繁に共有されている、最も視聴されている等を含んでもよい。
【００４９】
幾つかの実装では、順序付けモジュール１０２６は、各アイテムを評価し、関連付けられた画像を有する最高順位のアイテムを決定することで提示優先度を決定し、当該最高順位のアイテムがついで所与の表示領域における指定された優先度アイテムとして表示される。当該所与の表示領域は、中間レベルのサブグループデータがその特定の指定された優先度アイテムが属するサブグループに対して表示されていた／表示されている表示領域に対応する。例えば、指定された優先度ニュース記事が図７Ａ乃至７Ｃの表示領域６１０に表示されている。
【００５０】
図７Ａ乃至７Ｃに示す例において、ユーザは、図７Ａに表示されたサブグループのリストから表示領域／中間レベルのサブグループ６１０を選択しており、その選択の際、データ提供モジュール９０８は、指定されていない優先度低レベルデータを反映するように他の表示領域６０８、６１２、および６１４の全てを更新する。幾つかの事例では、指定されていない優先度アイテムが、（例えば、前述のように順位に従って）残りの表示領域（例えば、６０８、６１２、６１４）に順番に表示されている。例えば、指定された優先度記事が第３位に順位づけられ、表示領域６１０に表示される場合、第１位、第２位、および第４位に順位付けられた残りの記事はそれぞれ表示領域６０８、６１２、および６１４内に提示される。選択された中間レベルのサブグループに対する表示データは表示領域が低レベルデータで更新されるときに変更されないままであるので、当該変更はユーザにはあまり不快に見えない。
【００５１】
あるいはまたはさらに、幾つかの実装では、当該アイテムが表示領域６０８、６１０、６１２、および６１４内に表示される順番は（例えば、上述のように）それらの分類により記述される。例えば、図７Ｃで、表示領域６０８は分類７１０ａ「詳細」を有するアイテムを表示し、表示領域６１２は分類７１０ｃ「意見」を有するアイテムを表示し、表示領域６１４は分類７１０ｄ「国際」を有するアイテムを表示する。表示された配置および特定の分類は（例えば、管理者設定、利用可能な分類等に従って）データ提供モジュール９０８に対して予め決定されてもよく、または、データ分析エンジン９１８により提供される利用可能な低レベル・アイテムおよび分類により記述されてもよい。例えば、１実装では、指定された優先度低レベル・アイテムが或る表示領域に表示され、当該表示領域の残りが上述の当該分類の１つまたは複数を有する低レベル・アイテムで埋められる。
【００５２】
３１２で、順序付けモジュール１０２６は、表示領域６０８、６１０、６１２、および６１４に対する表示可能情報を、上述のように、表示優先度、表示領域内の利用可能なデータフィールド、および／またはメタデータ・タグに基づいて、データ・サーバ９１６から取り出されたデータ・セットから決定する。幾つかの実装では、当該表示可能情報が、サマリ、タイトル７０２ａ乃至７０２ｄ、ソース７０４ａ乃至７０４ｄ、分類７１０ａ乃至７１０ｄ、サブジェクト７０６ａ乃至７０６ｄ、画像７０８ａ乃至７０８ｄ、および／または（例えば、アイテム／記事および／または当該アイテム／記事に関連付けられたメタデータ・タグのコンテンツに基づいて）アイテムに対してそれぞれ決定されうる任意の他のテキストまたはグラフィカル情報を含んでもよい。
【００５３】
幾つかの実装では、当該表示可能情報が低レベル・アイテムの１つまたは複数に対して変化してもよい。例えば、指定されていない優先度アイテムと異なる情報／低レベルデータを、当該指定された優先度アイテムに対して表示してもよい。例えば、図７Ｃで示す例示的な実装では、表示領域６１０内の指定された優先度記事に対する表示可能情報はサブジェクト７０６ｂ、タイトル７０２ｂ、ソース７０４ｂ、および画像７０８ｂを含み、指定された優先度アイテム以外のアイテム／記事に対する表示可能情報は、例えば、６０８に表示されるように、分類７１０ａ、タイトル７１２ａ、およびソース７１４ａを含むが、画像は含まなくてもよい。図７Ａ乃至７Ｃに示す実装は記事、タイトル、分類等を指すが、明細書で説明した技術による他の実装が可能であり考慮されていることは理解されるべきである。
【００５４】
３１４で、順序付けモジュール１０２６は低レベルデータに対する表示可能情報を中間レベルのサブグループに関連付ける。特に、幾つかの実装では、順序付けモジュール１０２６は、指定された優先度アイテムに対する表示可能情報をその指定された優先度アイテムが属する中間レベル・グループに関連付ける。特に、中間レベルのサブグループごとの表示情報が単に、特定の低レベル・アイテム、例えば、指定された優先度アイテムに対する低レベルデータであってもよい。例えば、図７の表示領域７０８ｂで表示される情報は図６の表示領域６０８ｂ内の中間レベルのサブグループデータとしても表示される。
【００５５】
図４は、表示領域選択を受信したことに応答して表示領域６０８、６１０、６１２、および６１４を低レベルデータで更新するための例示的な方法４００の流れ図である。方法４００は図１に示すブロック１１０および１１２に対するさらなる詳細を提供する。４０２で、インタフェース・モジュール１０２２は少なくとも１つの１組のデータを表示するための定義されたレイアウトを含む動的グラフィカルインタフェースを生成し、各１組のデータは複数のレベルを含む。４０４で、データ・ハンドラ１０２０は１つまたは複数の高レベル・グループに対する中間レベルデータを取り出してもよい。４０６で、インタフェース・モジュール１０２２はクライアント・デバイス９０６に表示するための定義されたレイアウトを有する複数の表示領域６０８、６１０、６１２、および６１４を提供し、各表示領域は各中間レベルのサブグループに対する中間レベルデータを表示するように構成されている。特に、４０６でインタフェース・モジュール１０２２により生成された表示領域６０８、６１０、６１２、および６１４は、選択された高レベル・グループに対する中間レベルのサブグループデータを表示でき、中間レベルのサブグループを選択するための低レベルデータを表示するために更新されることができる。
【００５６】
４０８で、インタフェース・モジュール１０２２は、表示領域の複数の表示領域６０８、６１０、６１２、および６１４からの選択を示すユーザ入力を受信する。４１０で、データ・ハンドラ１０２０は、受信されたユーザ入力に基づいて信号をインタフェース・モジュール１０２２から受信したことに応答して、当該選択された表示領域に対応する中間レベルのサブグループに対する低レベルデータをデータ・サーバ９１６から取り出す。幾つかの実装では、当該低レベルデータは選択された高レベル・グループに対する中間レベルデータとともにまたはそれとして取り出され、したがって、４１０で、当該低レベルデータはデータ・ハンドラ１０２０により図１０を参照して説明されるデータ・ストア１０１２から取り出される。
【００５７】
４１２で、インタフェース・モジュール１０２２は、データ・ハンドラ１０２０により取り出された情報を用いて、選択された中間レベルのサブグループ内で低レベル・アイテムに対応する低レベルデータを含むように、複数の表示領域６０８、６１０、６１２、および６１４を更新する。特に、インタフェース・モジュール１０２２は、表示領域６０８、６１０、６１２、および６１４に表示された中間レベルのサブグループデータを、（例えば、図３を参照して説明したように）低レベル・アイテムごとの表示可能情報で置き換えてもよい。幾つかの実装では、表示領域６０８、６１０、６１２、および６１４の各々は低レベルデータを表示しうる（例えば、図８Ａおよび８Ｂに示される）選択および表示領域を含む。表示領域が、例えば、図７Ａ乃至７Ｃに示されるように、タイトル７０２ａ、ソース７０４ａ、分類７１０ａ、サブジェクト７０６ａ、画像７０８ａ等をロードし表示する領域を含んでもよい。例えば、低レベル・アイテムが、例えば、タイトル、ソース、分類、サブジェクト、画像等としてタグ付けまたは編成される様々な低レベルデータを含んでもよく、これらは例えば、図６Ａ乃至８Ｂを参照してさらに詳細に説明するように１つまたは複数の表示領域内の指定された領域にロードされる。
【００５８】
幾つかの事例では、表示領域（例えば、選択領域８１６）内の画像を、あたかも中間レベルのサブグループが高レベル・グループの上で拡張されるかのようにグレーアウトしてもよい。例えば、示された画像７０８ａ、７０８ｃ、および７０８ｄは、それらが選択されていない中間レベルのサブグループに対応することを示すようにグレーアウトされる。選択されていないサブグループに対応する画像（例えば、７０８ａ、７０８ｃ、および７０８ｄ）がグレーアウトされているが依然として可視である実装では、ユーザは、その中間レベルのサブグループに対応するグレーアウトされた画像を選択することで異なる中間レベルのサブグループを容易に選択でき、これは、選択された中間レベルのサブグループを拡張させる。あるいはまたはさらに、当該ユーザは、選択された表示領域を再度選択して、（例えば、図７Ａに示されるように）中間レベルのサブグループのリストを含む以前のビューに再び戻ることができる。
【００５９】
したがって、図７Ａは、表示領域６０８、６１０、６１２、および６１４がそれぞれ、選択された高レベル・グループにおける中間レベルデータと、中間レベルのサブグループに対応する画像とを表示する、例示的なグラフィカル・ユーザ・インタフェース７００を示す。例えば、幾つかの実装では、中間レベルのサブグループごとに表示された中間レベルデータが、タイトル７０２ａ乃至７０２ｄ、ソース７０４ａ乃至７０４ｄ、サブジェクト７０６ａ乃至７０６ｄ、および画像７０８ａ乃至７０８ｄを含んでもよい。図７Ｂはグラフィカル・ユーザ・インタフェース７００を示し、表示領域６１０はインジケータ６３０により選択されている。
【００６０】
図７Ｃはグラフィカル・ユーザ・インタフェース７００を示し、表示領域６１０がインジケータ７３０により選択されている。当該図示した実装において、表示領域６１０で表示された中間レベルデータは同一のままであるが、表示領域６０８、６１２、および６１４の各々に対して情報領域（例えば、８１４）で表示されたデータは、当該選択された中間レベルのサブグループ内の低レベル・アイテムを反映するように更新されている。例えば、表示領域６０８は、当該選択された中間レベルのサブグループ内の低レベル・アイテム（例えば、イベントベース記事クラスタ内の記事）に対するデータを含むように更新されている。
【００６１】
幾つかの実装では、低レベル・アイテムがいったん表示されると、ユーザは、単一の低レベル・アイテムを選択（例えば、情報領域８１４を選択）して、そのアイテムに対する追加の低レベルデータを表示してもよい。例えば、ユーザは表示領域内の情報領域を選択して、その表示領域に対応する記事を開いてもよい。別の例では、当該ユーザは複数の低レベル・アイテム（例えば、記事）を選択して、選択されたアイテムの各々に対するより多くの情報を表示（例えば、当該記事を開く）してもよい。
【００６２】
図５は、表示領域６０８、６１０、６１２、および６１４を更新して水平選択領域スワイプに応答して右手および左手レイアウトの間でトグルするための例示的な方法５００の流れ図である。方法５００は図１に示すブロック１１４および１１６に対するさらなる詳細を提供する。５０２で、インタフェース・モジュール１０２２は少なくとも１つの１組のデータを表示するための動的グラフィカルインタフェースを生成し、各１組のデータは複数のレベルを含む。５０４で、データ・ハンドラ１０２０は中間レベルおよび低レベルデータをデータ・サーバ９１６から取り出す。
【００６３】
５０６で、インタフェース・モジュール１０２２はクライアント・デバイス９０６に表示するための複数の表示領域６０８、６１０、６１２、および６１４を提供し、各表示領域は中間レベルデータまたは低レベルデータを表示し、各表示領域は選択カラム８２２および情報カラム８２０に分割される。図１を参照して説明したようにおよび図８Ａで示すように、表示領域６０８、６１０、６１２、および６１４をそれぞれ情報領域８１４および選択領域８１６に分割してもよい。例えば、図８Ａで示すように、表示領域６０８は情報領域８１４ａおよび選択領域８１６ａに分割される。さらに、幾つかの事例では、当該情報および選択領域を整列させて情報カラム８２０および選択カラム８２２を形成してもよい。
【００６４】
幾つかの実装では、ユーザは情報領域８１４を選択することで中間レベルのサブグループおよび／または低レベル・アイテムを選択できてもよいが、選択領域８１６ａ乃至８１６ｄは、ユーザが、当該選択の間に情報領域８１４内で情報をブロックするようにインジケータ６３０（例えば、タッチ・スクリーン上の指またはスタイラスペン、カーソル等）配置することなく選択を行うことができるように、理想的に提供されている。例えば、図７Ｂはインジケータ７３０による表示領域６１０の選択を示す。同様に、図８Ａに示されるように、幾つかの実装では、関連付けられた情報領域８１４内の情報に対応する選択領域８１６内の１つまたは複数の画像（例えば、サムネイル画像）が選択領域８１６ａ乃至８１６ｄ内またはそれらの上に表示されてもよいが、当該画像表示機能をユーザ嗜好としてオフにするか、または、当該機能が当該実装に存在しなくてもよい。例えば、選択領域８１６ａは情報領域８１４ａ内の情報に対応する画像を表示する。例えば、選択領域８１６ａに表示された画像はニュース記事が情報領域８１４ａに表示されているニュース記事内の第１の画像であってもよい。
【００６５】
５０８で、インタフェース・モジュール１０２２はクライアント・デバイス９０６に関連付けられた入力デバイスからユーザ入力を受信し、５１０で、インタフェース・モジュール１０２２は当該ユーザ入力が表示領域または選択領域のクリックまたは他の選択を含むかどうかを判定する。５１４で、５１０での決定に基づいて、インタフェース・モジュール１０２２は、複数の表示領域６０８、６１０、６１２、および６１４の表示領域を選択し、選択された中間レベルのサブグループに対応する低レベルデータを含むように選択された表示領域を更新する。
【００６６】
５１２で、インタフェース・モジュール１０２２は５０８で受信された入力が水平スワイプを含むかどうかを判定する。水平スワイプが、グラフィカルインタフェースの領域（例えば、特に表示領域）にわたる垂直よりも水平なインジケータの任意の移動またはスライドを含んでもよい。特に、インタフェース・モジュール１０２２は、選択カラム８２２で開始する水平スワイプがあるかどうかを判定し、それに応答して、インタフェース・モジュール１０２２は、５１６での当該スワイプの方向に選択カラム８２２を移動するように動的グラフィカル・ユーザ・インタフェースを更新する。例えば、図８Ａおよび８Ｂで示しそれらを参照して説明するように、インタフェース・モジュール１０２２は、選択カラム８２２を、ディスプレイの右側に近い領域（例えば、クライアント・デバイス９０６のタッチ・スクリーン・ディスプレイ）から当該ディスプレイの左側に近い領域に移動する。
【００６７】
幾つかの実装では、選択および情報カラムを、グラフィカル・ユーザ・インタフェース８００の左手または右手レイアウトを提供するために再配置することができる。例えば、当該グラフィカルインタフェースがタッチ・スクリーンデバイス上にあるときにより容易な入力アクセスを提供し、指が当該タッチ・スクリーンと対話することによる情報領域／カラムの妨害を防止するために、選択カラム８２２をドラッグ／スワイプして、右手および左手レイアウトの間で表示領域（複数可）をトグルすることができる。例えば、図８Ａおよび８Ｂは、例示的なインタフェース８００が図８Ａの右手レイアウトから図８Ｂの左手レイアウトへトグルされることを示す。図８Ａを参照すると、選択カラム８２２ａがグラフィカル・ユーザ・インタフェース８００の右側に示され、情報カラム８２０がグラフィカル・ユーザ・インタフェース８００の左側に示されており、それにより右手方位を生成する。図８Ａでは、インジケータ６３０が、グラフィカル・ユーザ・インタフェース８００の右側からグラフィカル・ユーザ・インタフェース８００の左側に選択カラム８２２ａをスワイプする（例えば、選択およびドラッグする）ことが示されている。図８Ｂは、当該レイアウトが左手方位にトグルされた後の例示的なグラフィカル・ユーザ・インタフェース８００を示す。例えば、情報カラム８２０ｂが右側に表示され、選択カラム８２２ｂが、左側グラフィカル・ユーザ・インタフェース８００からの簡単なアクセスのためにグラフィカル・ユーザ・インタフェース８００の左側に示されている。例えば、ユーザはタッチ・スクリーンクライアント・デバイス９０６を用いて、指、例えば、当該ユーザの親指を使用して、（例えば、図８Ａのように）右手を用いて右手レイアウト内のまたは（例えば、図８Ｂのように）左手を用いて左手レイアウト内の情報セクション／領域を妨害することなく、中間レベルのサブグループおよび／または低レベル・アイテムを選択してもよい。
【００６８】
図９は、階層データとの対話を効率的に編成し、提示し、提供するための例示的なシステム９００の高レベルなブロック図である。示されたシステム９００は、ユーザ９１２によりアクセスされるクライアント・デバイス９０６、データ分析エンジン９１８およびデータベース９２０を有するデータ・サーバ９１６、およびサード・パーティ・アプリケーション９２６を有するサード・パーティ・サーバ９２４を含む。コンポーネント９０６、９１６、および９２４はネットワーク９０２を介して接続される。
【００６９】
図９ではデバイス９０２、９０６、９１６、および９２４が例として示されている。図９は単一のクライアント・デバイス９０６、サード・パーティ・サーバ９２４、およびサーバ９１６を示すが、本開示は、任意数のクライアント・デバイス９０６、サード・パーティ・サーバ９２４、およびサーバ９１６を有する任意のシステムアーキテクチャに適用される。さらに、１つのネットワーク９０２のみがクライアント・デバイス９０６、データ・サーバ９１６、およびサード・パーティ・サーバ９２４に接続されているが、実際には１つまたは複数のネットワーク９０２をこれらのエンティティに接続することができる。
【００７０】
データ分析エンジン９１８がデータ・サーバ９１６で動作するとして示されており、データベース９２０がデータ・サーバ９１６に格納されるとして示されており、サード・パーティ・アプリケーションがサード・パーティ・サーバ９２４で動作するとして示されており、データ提供モジュール９０８がクライアント・デバイス９０６で動作するとして示されているが、これらのコンポーネント全部または一部およびそれらの機能が、システム９００の様々なコンポーネントに格納されてもよく、かつ／または、その上で動作してもよいことは理解されるべきである。例えば、幾つかの実装では、本明細書でデータ提供モジュール９０８に割り当てられた機能および／またはコンポーネントの全部または一部がデータ・サーバ９１６上で動作してもよい。
【００７１】
クライアント・デバイス９０６は任意のコンピューティング・デバイスであることができ、それらには、１つまたは複数のメモリおよび１つまたは複数のプロセッサ、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、スマートフォンデバイス、スマートウォッチまたは他のウェラブルデバイス、ポータブルゲームプレイヤ、ポータブル音楽プレイヤ、１つまたは複数のプロセッサを組み込むかまたは接続したテレビ、またはネットワークにアクセスできる任意の他の電子デバイスが含まれる。幾つかの実装では、システム９００は異なるタイプのクライアント・デバイス９０６の組合せ、例えば、パーソナル・コンピュータおよびモバイル・フォンの組合せを含む。以下で説明されるように、本技術はクライアント・サーバキテクチャと異なるモデルで動作できることは理解されるべきである。例えば、クライアント・デバイス９０６が、データ提供モジュール９０８および／またはデータ分析エンジン９１８ならびに他のサービスを含んでもよい。
【００７２】
さらに、データ提供モジュール９０８のコンポーネントの全部または一部が、例えば、ブラウザ上のウェブアプリケーションまたはブラウザ内の特殊コード実行可能として動作可能であり、これらはクライアント・デバイス９０６上に格納されデータ・サーバ９１６との双方向通信に対して構成されたウェブブラウザであることができる。例えば、当該ブラウザはウェブ上の情報リソースを抽出、提示、および訪問するためのソフトウェアアプリケーションである。
【００７３】
サーバ９１６および９２４が、データ処理、記憶、および通信能力を有する１つまたは複数のコンピューティング・デバイスを含んでもよい。例えば、サーバ９１６および９２４が、１つまたは複数のハードウェアサーバ、サーバアレイ、記憶デバイスおよび／またはシステム等を含んでもよい。幾つかの実装では、サーバ９１６および９２４が１つまたは複数の仮想サーバを含んでもよく、これらは、ホストサーバ環境で動作し、例えば、プロセッサ、メモリ、記憶、ネットワークインタフェース等を含むホストサーバの物理ハードウェアに、抽象レイヤ（例えば、仮想マシンマネージャ）を介してアクセスする。幾つかの実装では、サーバ９１６および９２４が、コンテンツ要求を処理するためのウェブサーバ（図示せず）、例えば、ＨＴＴＰサーバ、ＲＥＳＴ(representational state transfer)サービスを含んでもよく、またはコンテンツ要求を満足しネットワーク９０２に接続される１つまたは複数のコンピューティング・デバイスからコンテンツを受信するための構造および／または機能を有する、他のサーバタイプであってもよい。
【００７４】
図示した実装において、データ・サーバ９１６が、データ分析エンジン９１８およびデータベース９２０を含んでもよい。データ・サーバ９１６は、ネットワーク９０２を介してクライアント・デバイス９０６からのコンテンツ要求を受信しそれに応答するように動作可能である。データ分析エンジン９１８は階層データを集約し提供するように動作可能であり、データ・ストア、例えば、データベース９２０内の階層データを格納し、それへのアクセスを提供してもよい。データ分析エンジン９１８は図１０を参照しておよび本明細書のどこかでより詳細に説明される。
【００７５】
データベース９２０は、データを格納し、データへのアクセスを提供するための情報ソースである。データベース９２０により格納されたデータは、それらにより格納された任意のタイプのデータを含む様々な基準、例えば、アイテム識別子、アイテム−タグ関連付け、サブジェクト、タイトル、ソース、カテゴリ、著者、人気度、製造者、モデル、階層データ・セット内の位置、および／または他のタグおよび記述子を用いて編成され問い合わせられてもよい。データベース９２０が、データ・テーブル、データベース、または他の編成されたデータの集合を含んでもよい。当該データベースにより格納されたデータのタイプの例が、階層的に編成されうる任意のデータを含んでもよいがこれに限定されず、当該データはニュース記事、写真、ソーシャルネットワークデータ、製品情報、メディア等を含むがこれらに限定されない。
【００７６】
データベース９２０が、データ・サーバ９１６に含まれるか、または、データ・サーバ９１６と異なるがそれに接続されアクセス可能である別のコンピューティング・システムおよび／または記憶システムに含まれてもよい。データベース９２０は、当該データを格納するための１つまたは複数の非一時的コンピュータ可読媒体を含むことができる。幾つかの実装では、データベース９２０はデータ・サーバ９１６で動作可能なデータベース管理システム（ＤＢＭＳ）に関連付けられたデータを格納してもよい。例えば、当該ＤＢＭＳは構造化されたクエリ言語（ＳＱＬ）ＤＢＭＳ、ＮｏＳＱＬＤＭＢＳ、様々なそれらの組合せ等を含みうる。幾つかの事例では、当該ＤＢＭＳは、行および列からなる多次元テーブルにデータを格納し、即ち、プログラム動作を用いてデータの行を操作、即ち、挿入、問合せ、更新、および／または削除してもよい。
【００７７】
当該図示した実装において、サード・パーティ・サーバ１１６はサービス例えば、サード・パーティ・アプリケーション９２６をホストし、当該サービスが、幾つかの実装では、独立であってもよく、かつ／または、データ・サーバ９１６により提供されるサービスに組み込まれてもよい。サード・パーティ・サーバ９２４が、ネットワーク９０２を介してクライアント・デバイス９０６および／またはデータ・サーバ９１６からのコンテンツ要求を受信しそれに応答するように動作可能であってもよい。幾つかの実装では、サード・パーティ・アプリケーション９２６は複数のレベルまたはグループに編成されうるデータを提供する。例えば、サード・パーティ・アプリケーション９２６および関連付けられたサード・パーティ・サーバ９２４は、低レベルデータ・アイテム、例えば、ニュース記事写真、製品、メディア等を提供するニュースサービスであってもよく、これらをデータ・サーバ９１６上のデータ分析エンジン９１８により取り出し処理してもよい。例えば、サード・パーティ・アプリケーション９２６は、クライアント・デバイス（例えば、クライアント・デバイス９０６）および／またはデータ・サーバ（例えば、データ・サーバ９１６）からのサービス要求に応答して、ニュース記事または情報を１つまたは複数のソース、例えば、オンライン新聞、ニュースウェブサイト、ブログ等から提供してもよい。
【００７８】
ネットワーク９０２はクライアント・デバイス９０６、データ・サーバ９１６、およびサード・パーティ・サーバ９２４の間の通信を可能とする。したがって、ネットワーク９０２は、例えば、Ｗｉ−Ｆｉ、Ｗｉ−Ｍａｘ、２Ｇ、ユニバーサル・モバイル電気通信システム（ＵＭＴＳ）、３Ｇ、Ｅｔｈｅｒｎｅｔ、８０２．１１、統合サービスデジタルネットワーク（ＩＳＤＮ）、デジタル加入者線（ＤＳＬ）、非同期転送モード（ＡＴＭ）、ＩｎｆｉｎｉＢおよび、ＰＣＩエクスプレス高度スイッチング等を含む技術を用いたリンクを含むことができる。同様に、ネットワーク９０２で使用されるネットワーキングプロトコルは、送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、マルチプロトコルラベル・スイッチング（ＭＰＬＳ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、シンプル・メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）、軽量重みディレクトリアクセスプロトコル（ＬＤＡＰ）、符号分割多重アクセス（ＣＤＭＡ）、広帯域符号分割多重アクセス（WCDMA(登録商標)）、グローバル・システム・フォー・モバイル通信（GSM(登録商標)）、高速ダウンリンクパケット・アクセス（ＨＳＤＰＡ）等を含むことができる。ネットワーク９０２上で交換されるデータを、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張可能マークアップ言語（ＸＭＬ）等を含む技術および／またはフォーマットを用いて、表すことができる。さらに、リンクの全部または一部を、従来の暗号化技術、例えば、セキュアソケットレイヤ（ＳＳＬ）、セキュアＨＴＴＰおよび／または仮想プライベートネットワーク（ＶＰＮ）またはインターネットプロトコルセキュリティ（ＩＰｓｅｃ）を用いて暗号化することができる。幾つかの実装では、エンティティは上述したもの代わりにまたはそれに加えてカスタムおよび／または専用データ通信技術を使用することができる。実装に応じて、ネットワーク９０２はまた、他のネットワークへのリンクを含むことができる。
【００７９】
幾つかの実装では、ネットワーク９０２は部分的にパブリックまたは全体的にパブリックなネットワーク、例えば、インターネットである。ネットワーク９０２はまた、プライベートなネットワークであることができ、または、１つまたは複数の異なるまたは論理的プライベートネットワーク（例えば、仮想プライベートネットワーク、広域ネットワーク（「ＷＡＮ」）および／またはローカル・エリアネットワーク（「ＬＡＮ」））を含むことができる。さらに、ネットワーク９０２との通信リンクは有線または無線（即ち、地形または衛星ベースのトランシーバ）であることができる。幾つかの実装では、ネットワーク９０２はＩＰベースの広帯域またはメトリポリタン領域ネットワークである。
【００８０】
ネットワーク９０２は星形構成、トークン・リング構成または他の構成を含む任意数の構成を有してもよい。さらに、ネットワーク９０２が、複数のデバイスが通信しうるローカル・エリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）（例えば、インターネット）、および／または任意の他の相互接続されたデータ経路を含んでもよい。幾つかの実装では、ネットワーク９０２はピアツーピアネットワークであってもよい。ネットワーク９０２はまた、多数の異なる通信プロトコルでデータを送信するための電気通信ネットワークの部分に接続されるかまたはそれを含んでもよい。幾つかの実装では、ネットワーク９０２は、ショート・メッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、無線アプリケーションプロトコル（ＷＡＰ）、電子メッセージ等を介してを含めて、データを送受信するための短波長通信ネットワークまたはセルラ通信ネットワークを含む。
【００８１】
図１０は、例示的なコンピューティング・システム１０００を示すブロック図である。例示的なコンピューティング・システム１０００は、実装に応じてクライアント・デバイス９０６、サード・パーティ・サーバ９２４、および／またはデータ・サーバ９１６を表してもよい。示すように、コンピューティング・システム１０００が、通信モジュール１００２、プロセッサ１００４、メモリ（複数可）１００６、入力デバイス１００８、出力デバイス１０１０、およびデータ記憶１０１２を含んでもよく、それらが通信バス１０１６により通信可能に接続されてもよい。図１０に示されたコンピューティング・システム１０００はが例として提供され、本開示の範囲を逸脱することなく、他の形態をとり追加のまたはより少ないコンポーネントを含んでもよいことは理解されるべきである。例えば、当該コンピューティング・デバイスの様々なコンポーネントを、例えば、通信バス、ソフトウェア通信機構、コンピュータネットワーク等を含む多数の通信プロトコルおよび／または技術を用いて通信するために接続してもよい。図示していないが、コンピューティング・システム１０００が、様々なオペレーティング・システム、センサ、追加のプロセッサ、および他の物理構成を含んでもよい。
【００８２】
通信モジュール１００２は信号線１０１８によりネットワーク９０２に接続される。通信モジュール１００２もバス１０１６に接続される。通信モジュール１００２は有線接続に対するポートを含み、当該接続にはＵＳＢ、ＳＤ、またはＣＡＴ−５等が含まれるがこれらに限られない。通信モジュール１００２はプロセッサ１００４を、他の処理システムに接続されうるネットワーク９０２に接続する。通信モジュール１００２は標準ネットワークプロトコル、例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳおよびＳＭＴＰを用いたネットワーク９０２への他の従来の接続を提供する。幾つかの実装では、通信モジュール１００２は、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラ、または無線通信に対する他の通信プロトコルを用いて信号を送受信するためのトランシーバを含む。
【００８３】
プロセッサ１００４が、計算を実施し電子ディスプレイ信号をディスプレイデバイスに提供するための算術論理ユニット、マイクロプロセッサ、汎用目的コントローラまたは幾つかの他のプロセッサアレイを含んでもよい。幾つかの実装では、プロセッサ１００４はハードウェアプロセッサである。プロセッサ１００４が他のコンポーネントと通信するためにバス１０１６に接続される。プロセッサ１００４は、データ信号を処理し、複雑命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む様々なコンピューティングアーキテクチャを含んでもよい。単一のプロセッサのみが図１０に示されているが、複数のプロセッサを含めてもよい。他のプロセッサ、オペレーティング・システム、センサ、ディスプレイおよび物理構成が可能であることは理解されるべきである。
【００８４】
メモリ（複数可）１００６は、コンピューティング・システム１０００の他のコンポーネントにデータを格納してもよく、当該データへのアクセスを提供してもよい。メモリ（複数可）１００６は単一のコンピューティング・デバイスまたは複数のコンピューティング・デバイスに含まれてもよい。幾つかの実装では、メモリ（複数可）１００６は、プロセッサ１００４により実行されうる命令および／またはデータを格納してもよい。例えば、幾つかの実装では、メモリ（複数可）１００６は、当該構成に応じて、データ提供モジュール９０８、データ分析エンジン９１８、および／またはサード・パーティ・アプリケーション９２６、およびそれらの夫々のコンポーネントの１つまたは複数を格納してもよい。メモリ（複数可）１００６はまた他の命令およびデータを格納でき、例えば、オペレーティング・システム、ハードウェアドライバ、他のソフトウェアアプリケーション、データベース等を含む。メモリ（複数可）１００６を、プロセッサ（複数可）１００４およびコンピューティング・システム１０００の他のコンポーネントと通信するためにバス１０１６に接続してもよい。
【００８５】
メモリ（複数可）１００６は、非一時的コンピュータ使用可能（例えば、可読、書込み可能等）媒体を含み、これは、プロセッサ（複数可）１００４によりまたはそれと関連して処理するために、命令、データ、コンピュータ・プログラム、ソフトウェア、コード、ルーチン等を包含、格納、通信、電波、または転送できる任意の非一時的装置またはデバイスであることができる。幾つかの実装では、メモリ（複数可）１００６が、揮発性メモリおよび不揮発性メモリの１つまたは複数を含んでもよい。例えば、メモリ（複数可）１００６が、動的ランダム・アクセスメモリ（ＤＲＡＭ）デバイス、静的ランダム・アクセスメモリ（ＳＲＡＭ）デバイス、離散メモリデバイス（例えば、ＰＲＯＭ、ＦＰＲＯＭ、ＲＯＭ）、ハード・ディスク・ドライブ、光ディスク・ドライブ（ＣＤ、ＤＶＤ、Ｂｌｕｅ−ｒａｙＴＭ等）の１つまたは複数を含んでもよいがこれらに限定されない。メモリ（複数可）１００６が単一のデバイスであってもよく、または、複数のタイプのデバイスおよび構成を含んでもよいことは理解されるべきである。
【００８６】
入力デバイス１００８が、情報をコンピューティング・システム１０００に入力するための任意のデバイスを含んでもよい。幾つかの実装では、入力デバイス１００８が１つまたは複数の周辺デバイスを含んでもよい。例えば、入力デバイス１００８が、キーボード（例えば、ＱＷＥＲＴＹキーボード）、インジケータまたはポインティング・デバイス（例えば、マウスまたはタッチ・パッド）、マイクロフォン、画像／ビデオ・キャプチャ・デバイス（例えば、カメラ）等を含んでもよい。幾つかの実装では、入力デバイス１００８が、ユーザの１つまたは複数の指またはスタイラスペンから入力を受信できるタッチ・スクリーン・ディスプレイを含んでもよい。例えば、入力デバイス１００８および出力デバイス１０１０の１つまたは複数の構造および／または機能を統合してもよく、コンピューティング・システム１０００のユーザが、１つまたは複数の指を用いて（例えば、出力デバイス１０１０）のサーフェスと接触することでコンピューティング・システム１０００と対話してもよい。さらに、この例において、ユーザは、タッチ・スクリーン出力デバイス１０１０に表示されたエミュレートされた（例えば、仮想またはソフト）キーボードと、指を用いてキーボード領域内のディスプレイと接触することで、対話することができる。
【００８７】
出力デバイス１０１０は、コンピューティング・システム１０００から情報を出力できる任意のデバイスであってもよい。出力デバイス１０１０が、ディスプレイ、プリンタ、触覚デバイス、オーディオ再生デバイス等の１つまたは複数を含んでもよい。幾つかの実装では、出力デバイス１０１０が、ユーザ９１２の１つまたは複数の指から入力を受信できるタッチ・スクリーン・ディスプレイを含んでもよい。例えば、出力デバイス１０１０が、ディスプレイサーフェスとの複数の接触点を検出し解釈できる容量性タッチ・スクリーン・ディスプレイを含んでもよい。幾つかの実装では、コンピューティング・システム１０００が、出力デバイス１０１０に提示するための画像およびデータを描画し出力するためのグラフィックスアダプタ（図示せず）を含んでもよい。当該グラフィックアダプタ（図示せず）は別々のプロセッサおよびメモリ（図示せず）を含む別々の処理デバイスであってもよく、または、プロセッサ１００４およびメモリ（複数可）１００６と統合されてもよい。
【００８８】
データ・ストア１０１２は、データを格納しそれへのアクセスを提供するための情報ソースである。データ・ストア１０１２により格納されたデータを、それらにより格納された任意のタイプのデータ、例えば、アイテム識別子、アイテム−タグ関連付け、サブジェクト、タイトル、ソース、カテゴリ、著者、人気度、製造者、モデル、階層データ・セット内の位置、および／または他のタグおよび記述子を含む様々な基準を用いて編成し問い合わせてもよい。データ・ストア１０１２が、データ・テーブル、データベース、または他の編成されたデータの集合を含んでもよい。データ・ストア１０１２により格納されたデータのタイプの例はデータ・セット１０１４等を含むがこれに限定されない。
【００８９】
データ・ストア１０１２が、コンピューティング・システム１０００、または、コンピューティング・システム１０００とは異なるがそれに接続されるかまたはそれによりアクセス可能な別のコンピューティング・システムおよび／または記憶システムに含まれてもよい。データ・ストア１０１２はデータを格納するための１つまたは複数の非一時的コンピュータ可読媒体を含むことができる。幾つかの実装では、データ・ストア１０１２はメモリ（複数可）１００６に組み込まれてもよく、または、それと異なってもよい。幾つかの実装では、データ・ストア１０１２はコンピューティング・システム１０００で動作可能なデータベース管理システム（ＤＢＭＳ）に関連付けられたデータを格納してもよい。例えば、当該ＤＢＭＳは構造化されたクエリ言語（ＳＱＬ）ＤＢＭＳ、ＮｏＳＱＬＤＭＢＳ、様々なそれらの組合せ等を含みうる。幾つかの事例では、当該ＤＢＭＳが行および列からなる多次元テーブルにデータを格納してもよく、プログラム動作を用いてデータの行を操作、例えば、挿入、問合せ、更新、および／または削除してもよい。
【００９０】
データ・セット１０１４が、複数のレベルまたはデータツリーに編成されうる任意のデータを含んでもよい。データ・セット１０１４を（例えば、タグ等を用いてデータ構造に）低レベル・アイテムのグループ（例えば、中間レベルのサブグループ）に編成でき、各低レベル・アイテムは低レベルデータおよび／またはメタデータを有する。低レベル・アイテムのグループ（例えば、中間レベルのサブグループ）を高レベル・グループに編成することができる。幾つかの実装では、データ・セット１０１４をデータ・ストア１０１２にダウンロードし格納することができる。幾つかの実装では、データ・ストア１０１２が、データ・サーバ９１６またはサード・パーティ・サーバ９２４に格納されたデータ・セットの一部または全部への参照を含んでもよい。例えば、アイテムに関連する表示可能情報の一部または全部が、適用可能データを表示するｉフレームまたはオブジェクトを含んでもよい。例えば、クライアント・デバイス９０６が低レベル・アイテムに対する画像を直接サード・パーティ・サーバ９２４から取り出し、表示してもよい。さらに、データ・セット１０１４がさらにまたはあるいはデータベース９２０に格納されてもよく、クライアント・デバイス９０６上のメモリ（例えば、データ・ストア１０１２またはメモリ１００６に）に一時的に存在するだけでもよいことは理解されるべきである。
【００９１】
バス１０１６は、コンピューティング・デバイスのコンポーネントの間でまたはコンピューティング・デバイス、ネットワーク９０２またはその一部、プロセッサメッシュ、それらの組合せ等を含むネットワークバスシステムの間でデータを転送するための通信バスを含むことができる。幾つかの実装では、データ・ハンドラ１０２０、インタフェース・モジュール１０２２、カテゴリ化モジュール１０２４、および順序付けモジュール１０２６およびコンピューティング・デバイス１０００（データ分析エンジン９１８、サード・パーティ・アプリケーション９２６、オペレーティング・システム、デバイスドライバ等）で動作する様々な他のコンポーネントが、バス１０１６に含まれるかまたはそれと関連して実装される通信機構を介して協調し通信してもよい。バス１０１６が、例えば、プロセス間通信、ローカル関数またはプロシージャ・コール、リモートプロシージャ・コール、オブジェクトブローカ（例えば、ＣＯＲＢＡ）、ソフトウェアモジュール間の直接ソケット通信（例えば、ＴＣＰ／ＩＰソケット）、ＵＤＰブロードキャストおよび受信、ＨＴＴＰ接続等を含みかつ／または促進しうる、ソフトウェア通信機構を含んでもよい。さらに、通信の何れかまたは全部がセキュア（例えば、ＳＳＨ、ＨＴＴＰＳ等）であってもよい。
【００９２】
データ提供モジュール９０８および／またはそのコンポーネントを全体的にハードウェアとして実装してもよく、または、複数の階層レベルを有するデータ・セットを効率的に編成し、提示し、およびそれとの対話を提供するためのルーチンまたは方法を実装するために、プロセッサ１００４によりクライアント・デバイス９０６上で実行可能なコンピュータ論理を含んでもよい。幾つかの実装では、データ提供モジュール９０８がデータ分析エンジン９１８から受信された情報に少なくとも基づいてユーザ・インタフェースを生成し提示してもよい。例えば、ユーザ９１２はデータ提供モジュール９０８を使用して、階層データを効率的に参照／消費しナビゲートしてもよい。幾つかの実装では、データ提供モジュール９０８はウェブブラウザおよび／またはその中で動作可能なコード、カスタマイズされたクライアント・サイドアプリケーション（例えば、専用モバイル・アプリ）、その両方の組合せ等を含む。
【００９３】
データ・ハンドラ１０２０は、場合に応じて、データ要求および応答を処理し、かつ／またはデータをデータ提供モジュール９０８の他のコンポーネント、例えば、インタフェース・モジュール１０２２、カテゴリ化モジュール１０２４、および／または順序付けモジュール１０２６に提供する。例えば、データ・ハンドラ１０２０は、データ提供モジュール９０８のコンポーネントからのデータ要求を処理して、適用可能データをデータ・サーバ９１６および／またはサード・パーティ・サーバ９２４から受信／抽出してもよい。データ・ハンドラ１０２０が、例えば、バス１０１６を介して、インタフェース・モジュール１０２２等を介して、データ提供モジュール９０８の他のコンポーネントからデータ要求を受信しそれに応答してもよい。
【００９４】
インタフェース・モジュール１０２２がユーザ入力を入力デバイス１００８から受信し、当該ユーザ入力を処理して要求される動作を決定する。さらに、インタフェース・モジュール１０２２がコンピューティング・デバイス１０００およびデータ提供モジュール９０８の他のコンポーネントに接続され、データ提供モジュール９０８（例えば、１０２０、１０２４、１０２６）の当該コンポーネントに信号送信してそれらの動作を実施する。例えば、幾つかの実装では、インタフェース・モジュール１０２２をメモリ（複数可）１００６に格納して、プロセッサ１００４で実行し、入力デバイス１００８からのユーザ入力を処理し、（例えば、データ・ハンドラ１０２０および／または通信モジュール１００２を介して）データ・セットをデータ・サーバ９１６に要求し、カテゴリ化モジュールおよび／または順序付けモジュール１０２６に信号送信して当該データ・セットを処理し、グラフィカルインタフェースを出力デバイス１０１０に送信して当該要求される情報を当該ユーザに表示してもよい。
【００９５】
カテゴリ化モジュール１０２４が、どのレベルおよびグループ（例えば、階層グループまたはデータツリー）に各低レベルデータ・アイテムが属するかを判定してもよい。例えば、インタフェース・モジュール１０２２から受信された信号に応答して、カテゴリ化モジュール１０２４は、データ・ハンドラ１０２０により（例えば、データ・ストア１０１２から）取り出されたデータ・セット１０１４にアクセスし、データを高レベル・グループ、中間レベルのサブグループ、および低レベルデータ・アイテムに（例えば、当該アイテムのメタデータ内のタグに従って）ソートする。
【００９６】
順序付けモジュール１０２６は、ソートされたデータ・セットを処理して、インタフェース・モジュール１０２２またはカテゴリ化モジュール１０２４からの信号に応答して、中間レベルのサブグループおよび高レベル・グループごとに提供優先度を決定する
【００９７】
例えば、インタフェース・モジュール１０２２は順序付けモジュール１０２６に信号送信して、データ・セット（複数可）１０１４を処理し、低レベルに対する表示順序、および、幾つかの実装では、図３を参照して説明したように中間レベルデータに対する表示順序を決定する。順序付けモジュール１０２６が、データ・ストア１０１２内のデータにアクセスし、かつ／または、データを直接データ提供モジュール９０８の１つまたは複数のコンポーネント１０２０、１０２２、または１０２４から受信してもよい。
【００９８】
コンポーネント９０８、１０２０、１０２２、１０２４、および／または１０２６がソフトウェアまたはルーチンであってもよい。幾つかの実装では、９０８、１０２０、１０２２、１０２４、および／または１０２６がプロセッサ１００４により実行可能な１組の命令であってもよい。幾つかの実装では、９０８、１０２０、１０２２、１０２４、および／または１０２６は、システム１０００のメモリ（複数可）１００６に格納され、プロセッサ１００４によりアクセス可能および実行可能である。コンポーネント９０８、１０２０、１０２２、１０２４、および／または１０２６がバス１０１６および／またはプロセッサ（複数可）１００４によりコンピューティング・システム１０００の１つの別のおよび／または他のコンポーネント１００２、１００４、１００６、１００８、１０１０、および／または１０１２に通信可能に接続されてもよい。幾つかの実装では、コンポーネント１０２０、１０２２、１０２４、および／または１０２６が、それらの動作および／または機能を提供するためにプロセッサ（複数可）１００４により実行可能なコンピュータ論理を含んでもよい。以上の実装の何れかにおいて、これらのコンポーネント１０２０、１０２２、１０２４、および／または１０２６が、プロセッサ（複数可）１００４およびコンピューティング・システム１０００の他のコンポーネント、例えば、データ・ストア１０１２および／またはメモリ（複数可）１００６と協調し通信するように適合されてもよい。
【００９９】
データ分析エンジン９１８が全体的にハードウェアとして実装されてもよく、または、上述のように、データを処理するためのルーチンまたは方法を実装するための、例えば、それを階層レベル・グループ、タグアイテム、分析アイテム等に編成するための、コンピューティング・システム１０００（例えば、データ・サーバ９１６）上のプロセッサ１００４により実行可能なコンピュータ論理を含んでもよい。幾つかの実装では、データ分析エンジン９１８は、バス１０１６を介してプロセッサ１００４、メモリ１００６およびコンピューティング・デバイス１０００（例えば、データ・サーバ９１６）の他のコンポーネントと協調および通信するように適合される。
【０１００】
上述のように、サード・パーティ・アプリケーション９２６が、全体的にハードウェアとして実装されてもよく、または、階層またはデータツリーで編成されうるデータ／アイテムを提供するためのルーチンまたは方法を実装するための、コンピューティング・システム１０００（例えば、サード・パーティ・サーバ９２４）上のプロセッサ１００４により実行可能なコンピュータ論理を含んでもよい。幾つかの実装では、サード・パーティ・アプリケーション９２６は、バス１０１６を介して、プロセッサ１００４、メモリ１００６およびコンピューティング・デバイス１０００の他のコンポーネント（例えば、サード・パーティ・サーバ９２６）と協調および通信するように適合される。
【０１０１】
上の説明において、説明の目的のため、多数の具体的な詳細を説明した。しかし、当該開示された技術をこれらの具体的な詳細の任意の所与のサブセットなしに実践できることは明らかであろう。他の事例では、構造およびデバイスがブロック図の形で示されている。例えば、幾つかの実装では、当該開示された技術が、ユーザ・インタフェースおよび特定のハードウェアを参照して上述されている。
【０１０２】
本明細書における「１実装」または「実装」への参照は、当該実装と関連して説明した特定の特徴、構造、または特性が当該開示された技術の少なくとも１つの実装に含まれることを意味する。本明細書の様々な場所におけるフレーズ「１実装では」の出現は、必ずしも全て同一の実装を指すわけではない。
【０１０３】
上の当該詳細な説明の幾つかの部分を、コンピュータメモリ内のデータビット上の動作のプロセスまたは記号的表現で提示した。プロセスを一般に、結果につながる自己一貫的なステップのシーケンスと考えることができる。当該ステップが、物理量の物理操作を含んでもよい。これらの量が、格納、転送、結合、比較、または操作されうる電気的または磁気信号の形をとってもよい。これらの信号を、ビット、値、要素、記号、文字、項、数字等の形で参照してもよい。
【０１０４】
これらのおよび同様な用語を適切な物理量に関連付けることができ、これらの量に適用されるラベルと考えることができる。以前の説明から明らかなように特に断らない限り、当該説明にわたって、例えば、「処理」または「コンピューティング」または「計算」または「決定」または「表示」等の用語を用いた議論は、当該コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表現されたデータを操作し当該コンピュータシステムメモリまたはレジスタまたは他のかかる情報記憶、送信またはディスプレイデバイス内の物理量として同様に表現された他のデータに変換する、コンピュータシステム、または同様な電子コンピューティング・デバイスのアクションおよびプロセスを指してもよいことは理解される。
【０１０５】
当該開示された技術はまた、本明細書の当該動作を実施するための装置に関連してもよい。この装置は、要求された目的のために特に構築されてもよく、または、当該コンピュータに格納されたコンピュータ・プログラムにより選択的に起動または再構成される汎用目的コンピュータを含んでもよい。かかるコンピュータ・プログラムをコンピュータ可読記憶媒体に格納してもよく、当該媒体には、例えば、フロッピディスク、光ディスク、ＣＤ−ＲＯＭ、および磁気ディスク、読取専用メモリ（ＲＯＭ）、ランダム・アクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、電子命令を格納するのに適した不揮発性メモリまたは任意のタイプの媒体を有するＵＳＢキーを含むフラッシュ・メモリを含む任意のタイプのディスクがあるがこれらに限定されず、それぞれはコンピュータシステム・バスに接続される。
【０１０６】
当該開示された技術は、全体的にハードウェア実装、全体的にソフトウェア実装またはハードウェアおよびソフトウェア要素の両方を含む実装の形をとることができる。幾つかの実装では、当該技術はソフトウェアで実装され、当該ソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限定されない。
【０１０７】
さらに、当該開示された技術は、コンピュータまたは任意の命令実行システムによりまたはそれと関連して使用するためのプログラムコードを提供する非一時的コンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形をとることができる。この説明の目的のため、コンピュータ使用可能またはコンピュータ可読媒体は、当該命令実行システム、装置、またはデバイスによりまたはそれと関連して使用するためのプログラムを包含、格納、通信、伝播、または転送できる任意の装置であることができる。
【０１０８】
プログラムコードを格納および／または実行するのに適したコンピューティング・システムまたはデータ処理システムは、システム・バスを通じてメモリ要素に直接または間接的に接続された少なくとも１つのプロセッサ（例えば、ハードウェアプロセッサ）を含む。当該メモリ要素は、当該プログラムコードの実際の実行の間に使用されるローカルメモリ、バルク記憶、およびコードを実行の間にバルク記憶から取り出さなければならない回数を削減するために少なくとも幾つかのプログラムコードの一時記憶を提供するキャッシュメモリを含むことができる。
【０１０９】
入出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイス等を含むがこれらに限定されない）を、直接、または、介在Ｉ／Ｏコントローラを介してシステムに接続することができる。
【０１１０】
ネットワークアダプタをまた、システムに接続して、データ処理システムが介在プライベートまたはパブリックネットワークを介して他のデータ処理システムまたはリモートプリンタまたは記憶デバイスに接続されるようにしてもよい。モデム、ケーブル・モデムおよびＥｔｈｅｒｎｅｔカードは現在利用可能なタイプのネットワークアダプタの幾つかにすぎない。
【０１１１】
最後に、当該開示された技術は、任意の特定のプログラミング言語を参照しては説明されていない。多数のプログラミング言語を使用して本明細書で説明した技術の教示事項を実装してもよいことは理解される。
【０１１２】
本発明の技術および技術の実装の以上の説明を例示および説明の目的のために提示した。包括的であることは意図されておらず、本発明の技術および技術を開示された厳密な形態に限定することも意図されていない。多くの修正および変形が上の教示事項を鑑みて可能である。本発明の技術および技術の当該範囲がこの詳細な説明により限定されないことが意図されている。本発明の技術および技術を、その趣旨または本質的な特性から逸脱しない他の特定の形態で実装してもよい。同様に、モジュール、ルーチン、特徴、属性、方法および他の態様の特定のネーミングおよび分割は必須でも重要でもなく、本発明の技術および技術またはその特徴を実装する機構が異なる名前、分割および／またはフォーマットを有してもよい。さらに、本発明の技術のモジュール、ルーチン、特徴、属性、方法および他の態様を、ソフトウェア、ハードウェア、ファームウェアまたはこれら３つの任意の組合せとして実装することができる。また、コンポーネントが、その例がモジュールであるが、ソフトウェアとして実装されるときは常に、当該コンポーネントを、スタンドアロンプログラムとして、より大きなプログラムの一部として、複数の別々のプログラムとして、静的にまたは動的にリンクされたライブラリとして、カーネルローダブルモジュールとして、デバイスドライバとして、および／またはコンピュータプログラミングにおいて現在知られているかまたは将来知られる全てかつ他の任意の方法で実装することができる。さらに、本発明の技術および技術は、任意の特定のプログラミング言語における実装、または任意の特定のオペレーティング・システムまたは環境に対する実装には決して限定されない。したがって、本発明の技術および技術の当該開示は例示的であり限定的ではないことが意図されている。
【符号の説明】
【０１１３】
９０２  ネットワーク
９０６  クライアント・デバイス
９０８  データ提供モジュール
９１２  ユーザ
９１６  データ・サーバ
９１８  データ分析エンジン
９２０  データベース
９２４  サード・パーティ・サーバ
９２６  サード・パーティ・アプリケーション
【図１】
0006596594.tif 000002
【図２】
0006596594.tif 000003
【図３】
0006596594.tif 000004
【図４】
0006596594.tif 000005
【図５】
0006596594.tif 000006
【図６Ａ】
0006596594.tif 000007
【図６Ｂ】
0006596594.tif 000008
【図６Ｃ】
0006596594.tif 000009
【図６Ｄ】
0006596594.tif 000010
【図７Ａ】
0006596594.tif 000011
【図７Ｂ】
0006596594.tif 000012
【図７Ｃ】
0006596594.tif 000013
【図８Ａ】
0006596594.tif 000014
【図８Ｂ】
0006596594.tif 000015
【図９】
0006596594.tif 000016
【図１０】
0006596594.tif 000017