(57)【特許請求の範囲】
【請求項１】
計算装置のプロセッサを、該計算装置にネットワーク接続されたクライアントデバイスがメディアファイルを再生することを可能にする方法を実行するようにプログラミングするためのコンピューター実行可能命令を格納するコンピューター読み取り可能な記憶媒体であって、前記方法は、
（ａ）前記クライアントデバイスによってサポートされている前記メディアファイルフォーマットを検出するステップと、
（ｂ）前記計算装置から離れたメディアサーバーから、ダウンロード可能なメディアファイルのリストを受信するステップと、
（ｃ）前記メディアサーバーからの前記ダウンロード可能なメディアファイルのリストを、前記メディアサーバー上のメディアファイルに対するリンクを含むデータ構造にフォーマット設定するステップであって、
（ｉ）前記ダウンロード可能なメディアファイルのリストからのメディアファイルが前記クライアントデバイスによってサポートされているフォーマットであるかどうかを決定するステップ、
（ｉｉ）前記ステップ（ｉ）においてサポートされているフォーマットであると決定されたメディアファイルについての前記リスト中のデータ構造を、前記メディアサーバーへの直接のアドレスを有するリンクを含むようにフォーマット設定するステップ、及び、
（ｉｉｉ）前記ステップ（ｉ）においてサポートされていないフォーマットであると決定されたメディアファイルについての前記リスト中のデータ構造を、前記計算装置へのアドレスを有するリンクを含むようにフォーマット設定するステップ
を含む、ステップと、
（ｄ）前記ダウンロード可能なメディアファイルのリストを表示する、前記クライアントデバイスに関連付けられるモニター上での表示のためのユーザーインターフェースを生成するステップと、
（ｅ）前記クライアントデバイスから、前記メディアファイルに関連付けられるデータ構造に従ってサポートされていないフォーマットのメディアファイルを取得するという要求を受信するステップと、
（ｆ）前記ステップ（ｅ）において要求された前記メディアファイルを取得するステップと、
（ｇ）前記ステップ（ｆ）において取得された前記メディアファイルを、前記クライアントデバイスによってサポートされているフォーマットにトランスコードするステップと、
（ｈ）前記ステップ（ｇ）においてトランスコードされた前記メディアファイルを前記クライアントデバイスによって再生するために該クライアントデバイスに転送するステップと、
（ｉ）ユーザーによって生成されるルート検索クエリーを受信するステップと、
（ｊ）前記ルート検索クエリーの検索結果を生成するステップと、
（ｋ）前記ルート検索クエリーから１つ又は複数の派生検索クエリーを生成するステップであって、前記派生検索クエリーは、元のルート検索クエリーに関連する検索クエリーを派生させることができるメタデータマイニングエンジンによって生成される、ステップと、
（ｌ）前記１つ又は複数の派生検索クエリーの検索結果を生成するステップと、
（ｍ）前記ステップ（ｉ）において生成された前記ルートクエリーの検索結果からのコンテンツを含み、かつ前記ステップ（ｋ）における前記１つ又は複数の派生検索クエリーの検索結果からのコンテンツを含む、仮想テレビチャンネルを作成するステップであって、
前記ルート検索クエリーの検索結果及び前記１つ又は複数の派生検索クエリーの検索結果を格納するステップと、
前記ルート検索クエリーの検索結果から仮想テレビチャンネルのタイトルを作成するステップと、
前記ルート検索クエリーの検索結果及び前記１つ又は複数の派生検索クエリーの検索結果から番組タイトルを作成するステップと、
各番組について、
番組の長さを読み出すステップ、及び
前記番組の長さの範囲で、ランキングの高い順に、前記番組に関連付けられる検索結果を番組に追加するステップ
を含む、仮想テレビチャンネルを作成するステップと
を含む、コンピューター読み取り可能な記憶媒体。
【請求項２】
前記ステップ（ｂ）の前に、
（ｎ）前記クライアントデバイスから、前記メディアサーバーにおいてメディアファイルの検索を実行するという要求を受信するステップと、
（ｏ）前記メディアサーバーにコンタクトするステップと、
（ｐ）前記メディアサーバーから利用可能なメディアファイルのカテゴリを取得するステップと、
（ｑ）前記カテゴリを、前記メディアサーバーにおける利用可能なメディアファイルのカテゴリへのリンクを含むデータ構造にフォーマット設定するステップと、
（ｒ）前記フォーマット設定されたデータ構造を前記クライアントデバイスに送信するステップと、
をさらに含む、請求項１に記載のコンピューター読み取り可能な記憶媒体。
【請求項３】
前記ステップ（ｂ）の前に、前記クライアントデバイスから、利用可能なメディアファイルの前記カテゴリのうちの１つ又は複数の閲覧要求を受信し、前記メディアサーバーにコンタクトして前記要求された１つ又は複数のカテゴリを取得するステップをさらに含む、請求項２に記載のコンピューター読み取り可能な記憶媒体。
【請求項４】
前記クライアントデバイスに、リモートロケーションに直接コンタクトして、前記要求されたメディアファイルのロケーションへの直接接続を指定するリンクを有する前記データ構造を介して、該クライアントデバイスによってサポートされているフォーマットのメディアファイルを取得するように指示するステップを含む、請求項１に記載のコンピューター読み取り可能な記憶媒体。
【請求項５】
前記ステップ（ｇ）においてトランスコードされた前記メディアファイルを前記クライアントデバイスに転送する前記ステップ（ｈ）は、前記ステップ（ｇ）においてトランスコードされた前記メディアファイルを、テレビシステムに関連付けられるセットトップボックス、移動電話及びゲームコンソールのうちの１つに転送するステップを含む請求項１に記載のコンピューター読み取り可能な記憶媒体。
【請求項６】
前記仮想チャンネル上のメディアファイルを所定の長さの番組に分割するステップをさらに含む請求項１に記載のコンピューター読み取り可能な記憶媒体。
【請求項７】
コンテンツ再生のための時間を未来の所定のある期間に設定するスケジュールに従って、前記仮想テレビチャンネル上でメディアファイルを再生するステップをさらに含む請求項１に記載のコンピューター読み取り可能な記憶媒体。
【請求項８】
前記クライアントデバイスが、サポートされるコンテンツを要求するために該サポートされるコンテンツのソースに直接コンタクトするステップをさらに含む請求項１に記載のコンピューター読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディアコンテンツ読出しシステム及び個人用仮想チャンネルに関する。
【背景技術】
【０００２】
[001]従来から、人々は自身のテレビを保有する上での体験とは異なる形で自身のホームコンピューターを体験してきた。特に、ユーザーは自身のテレビを介して放送コンテンツを受信し、自身のコンピューターを介して、ビデオ、写真、音楽、及びオーディオファイル等のインターネットメディアコンテンツを受信してきた。しかしながら、２つの体験を合体させようという近年の動きがある。人々はますます、自身のテレビを用いて従来のインターネットコンテンツを受信し、自身のコンピューターを用いて従来の放送コンテンツを受信するようになってきている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[002]コンピューターの範囲内に大部分が留まった１つの分野は、インターネットナビゲーション及びメディア検索の分野である。この理由は、テレビコンテンツを受信するのに用いられる従来のセットトップボックス（ＳＴＢ）が、通常のコンピューターが有する処理能力又はブラウジング機能を備えてこなかったことである。この１つの例は、セットトップボックスが、存在する多岐にわたるメディアファイルフォーマットの限られた数しかプレイバックすることができないことである。ビデオファイルはウィンドウズ（登録商標）メディアビデオ（ＷＭＶ）、フラッシュビデオ（ＦＬＶ）、ＭＰＥＧビデオファイル、及び多くの他のフォーマットとして符号化される。オーディオファイルは、例を挙げると、ウィンドウズメディアオーディオ（ＷＭＡ）、ウェーブフォームオーディオフォーマット（ＷＡＶ）、及びＭＰＥＧオーディオレイヤー３（ＭＰ３）として符号化される。そして、グラフィックファイルはＪＰＧ、ＧＩＦ、ＴＩＦ等として格納される。従来のセットトップボックスは、メディアのタイプごとに限られた数のフォーマットしかサポートしない。
【０００４】
[003]セットトップボックスのようなクライアントデバイスはいくつかのインターネット検索機能を有し、いくつかのタイプのメディアファイルをプレイバックすることができるが、これらの能力は限られている。従来のＰＣコンピューターと同じ処理能力及びブラウジング機能を有するセットトップボックスを提供することは確かに可能である。しかしながら、これによって、セットトップボックスのコストを著しく増大させる。セットトップボックスのコストを増大させることは、放送及び或る特定のタイプのダウンロードコンテンツを扱う機能をセットトップボックスに提供するが、その他の点ではセットトップボックスを単純かつ安価にしておくという現在の傾向に反している。このため、ワールドワイドウェブを介して利用可能な多岐にわたるメディアファイルを体験するために、ユーザーは依然として自身のコンピューターに頼っている。
【０００５】
[004]他方で、テレビの範囲内に大部分が留まった１つの分野は、ユーザが自身が受信するコンテンツのすべてを能動的に探し出し選択する必要なくコンテンツを受信する能力である。ユーザーは、自身のコンピューターを用いてウェブサーフィンを行い、自身の興味のあるコンテンツのみを受信することができる一方、１つのコンテンツピース（content piece）が終了すると、ユーザーは別のコンテンツピースを能動的に選択しなくてはならない。逆に、テレビでは、ユーザーはチャンネルにチューニングを合わせ、放送局が選択した終わりのないコンテンツフローをくつろいで受信することができる。放送局は多岐にわたるコンテンツを提供するが、ユーザーは自身の興味のある特定のコンテンツを放送するチャンネルを必ずしも見つけることはできない。
【課題を解決するための手段】
【０００６】
[005]本システムは、概して、メディアコンテンツ検索及び読出しのためのシステム及び該システムを用いることが可能な仮想テレビチャンネルに関する。本システムは、たとえばホームＰＣ等のメディアサービスサーバー、及びたとえばテレビシステムのセットト
ップボックス、移動電話、携帯情報端末、又はゲームコンソール等のクライアントデバイス上に実装することができる。
【０００７】
[006]本システムの第１の態様は、能力が限られているクライアントデバイスが、該クライアントデバイスによってサポートされていないフォーマットでウェブサイトから到来するメディアコンテンツを再生することを可能にするメディアダウンロード制御エンジンに関する。メディアダウンロード制御エンジンはまず、クライアントデバイスと、メディアコンテンツが格納されているリモートサーバーとの間の媒介者としての役割を果たすことによってメディア検索プロセスを制御する。メディアダウンロード制御エンジンは、クライアントデバイスによって作成されるコンテンツ要求をフォーマット設定し、それによって、クライアントデバイスはユーザー選択を受信するだけでよく、その選択は、その要求を扱い、要求された情報を返すメディアサービスサーバーに自動的にルーティングされる。
【０００８】
[007]特定のメディアファイルへのリンクがメディアサービスによってフォーマット設定され、次にクライアントデバイスに送信される。メディアサービスサーバーは、クライアントデバイスの能力を検出することができ、特に、クライアントデバイスがいずれのタイプのメディアファイルをサポートしているかを検出することができる。ユーザーがサポートされているメディアファイルをダウンロードのために選択すると、クライアントデバイスが所望のメディアファイルをホスティングしているリモートサーバーにコンテンツを直接要求するように、このコンテンツへのリンクがメディアサービスサーバーからクライアントデバイスに提供される。一方で、ユーザーがサポートされていないメディアファイルをダウンロードのために選択した場合、クライアントデバイスがメディアサービスサーバーに対するコンテンツ要求を作成するように、このコンテンツへのリンクがメディアサービスサーバーからクライアントデバイスに提供される。次に、メディアサービスサーバーはリモートサーバーからコンテンツを取得し、該コンテンツをクライアントデバイスによってサポートされているフォーマットにトランスコードする。次に、トランスコードされたファイルはプレイバックのためにクライアントデバイスに送信される。
【０００９】
[008]メディアダウンロード制御エンジンは、ユーザーに、メディアコンテンツを検索し、自身のテレビシステムに直接ダウンロードする能力を提供する。本システムの第２の態様は、メディアダウンロード制御エンジンを利用してメディアコンテンツを取得し、カスタマイズされた仮想チャンネルを作成することができる。第２の態様は特に、ユーザーのために、該ユーザーの関心のあるトピックに基づいて選択されたコンテンツの連続ストリームをスケジューリングする仮想チャンネルエンジンに関する。ユーザーは検索クエリーを入力するように促される。クエリーが入力されると、検索エンジンはその検索クエリーに関連する結果を返す。ルート検索クエリーからの結果に加えて、ルート検索クエリーからさらなるクエリーを派生させる（導出する）ことができ、派生した（導出した）検索クエリーからの結果も取得することができる。
【００１０】
[009]次に、ルート検索クエリー及び派生した検索クエリーからのメディアコンテンツをまとめて、ユーザーが仮想テレビチャンネルを介して閲覧するためのメディアコンテンツ番組にする。ルート検索クエリー及びそれぞれの派生した検索クエリーは、それぞれ仮想チャンネルの異なる番組を形成することができる。コンテンツ持続時間、ルート検索クエリー及び派生した検索クエリーに対する結果の近さを含む様々な判断基準に基づいて番組にコンテンツが加えられる。番組が組立てられると、それらは、たとえば１週間〜２週間後等の未来にスケジューリングされる。ユーザーは電子番組ガイドのスケジュールを閲覧して、番組のうちのいずれを自身が閲覧するか又は聴取することを望むかを選択する。
【図面の簡単な説明】
【００１１】
【図１】[010]本システムの一実施形態によるシステムのアーキテクチャのブロック図である。
【図２】[011]本システムの一実施形態によるメディアサービスサーバーのブロック図である。
【図３Ａ】[012]本システムの一実施形態によるメディアダウンロード制御エンジンの動作のフローチャートである。
【図３Ｂ】本システムの一実施形態によるメディアダウンロード制御エンジンの動作のフローチャートである。
【図３Ｃ】本システムの一実施形態によるメディアダウンロード制御エンジンの動作のフローチャートである。
【図４】[013]本システムの一実施形態による、メディアダウンロード制御エンジンによって提示されるグラフィックユーザーインターフェースの図である。
【図５Ａ】本システムの一実施形態による、メディアダウンロード制御エンジンによって提示されるグラフィックユーザーインターフェースの図である。
【図５Ｂ】本システムの一実施形態による、メディアダウンロード制御エンジンによって提示されるグラフィックユーザーインターフェースの図である。
【図５Ｃ】本システムの一実施形態による、メディアダウンロード制御エンジンによって提示されるグラフィックユーザーインターフェースの図である。
【図６Ａ】[014]本システムの一実施形態による、仮想チャンネルエンジンの動作のフローチャートである。
【図６Ｂ】本システムの一実施形態による、仮想チャンネルエンジンの動作のフローチャートである。
【図６Ｃ】本システムの一実施形態による、仮想チャンネルエンジンの動作のフローチャートである。
【図７】[015]本システムの一実施形態による、仮想チャンネルエンジンによって提示されるグラフィックユーザーインターフェースの図である。
【図８】本システムの一実施形態による、仮想チャンネルエンジンによって提示されるグラフィックユーザーインターフェースの図である。
【図９】[016]本システムの一実施形態による、仮想チャンネルエンジンによって提示されるグラフィックユーザーインターフェースにおける電子番組ガイドの図である。
【図１０】[017]本システムの一実施形態によるクライアントデバイスのブロック図である。
【図１１】[018]本システムの一実施形態による、ローカルセットトップボックス広告挿入を実施するためのコンピューティング環境のブロック図である。
【発明を実施するための形態】
【００１２】
[019]次に、図１〜図１１を参照してシステムの実施形態を説明する。このシステムは、包括的にはメディアコンテンツの検索及び読出しのためのシステム、並びに該システムを用いることが可能な仮想テレビチャンネルに関する。本システムの第１の態様では、メディアダウンロード制御エンジンが、能力が限られているクライアントデバイスが該クライアントデバイスによってサポートされていないフォーマットでウェブサイトから到来するメディアコンテンツをロケーション特定し再生することを可能にする。メディアダウンロード及び制御エンジンは、ＰＣ等のメディアサービスサーバーによってホスティングされる。メディアサービスサーバーは、クライアントデバイスに、サポートされていないメディアファイルの要求を該メディアサービスサーバーを通じて行うように指示する。メディアサービスサーバーはサポートされていないメディアファイルを取得し、それらをクライアントデバイスによってサポートされているフォーマットにトランスコードする。次に、トランスコードされたファイルは、クライアントデバイスによる再生のために該クライアントデバイスに送信される。本システムの第２の態様は、メディアダウンロード制御エンジンを利用してメディアコンテンツを取得し、カスタマイズされた仮想チャンネルを作成することができる。第２の態様は特に、ユーザのためのコンテンツの連続ストリームをスケジューリングする仮想チャンネルエンジンに関し、該コンテンツはユーザが関心のあるトピックに基づいて選択される。
【００１３】
[020]最初に図１を参照すると、メディアサービスサーバー１０２及びクライアントデバイス１０４を含むシステムアーキテクチャ１００が示されている。実施形態において、メディアサービスサーバー１０２は、従来のホームＰＣ等の計算装置とすることができ、
クライアントデバイス１０４は、テレビとすることができるディスプレイ１０６に取り付けられたセットトップボックスとすることができる。図１１について、以下で、クライアントデバイス１０４がセットトップボックスである一実施形態のより詳細な説明を行い、図９について、以下で、メディアサービスサーバーの一例のより詳細な説明を行う。代替的な実施形態では、クライアントデバイス１０４は、メディアサービスサーバー１０２と比較して限られた処理能力を有する、セットトップボックス以外のデバイスとすることができることが理解される。そのようなさらなるクライアントデバイスは、移動電話、携帯情報端末、及びたとえばマイクロソフト社からのＸｂｏｘ（登録商標）ゲーム機等のゲームコンソールを含むことができるがこれらに限定されない。
【００１４】
[021]メディアサービスサーバー１０２及びクライアントデバイス１０４はユーザーの自宅に置くことができ、有線又は無線のネットワーク接続によって互いにネットワーク接続される。デバイス１０２及び１０４はそれぞれインターネット１１０にも接続され、インターネット１１０においてデバイス１０２及び１０４は、ビデオオンデマンド（ＶＯＤ）及び他のサービスを提供するメディアサーバー１１２、並びにウェブ検索を実行することが可能な検索エンジンを含むポータル１１４を含む様々なウェブサーバーにアクセスすることができる。メディアサーバー１１２は、受信したコンテンツメディア要求に基づいてメディアサービスサーバー１０２及び／又はクライアントデバイス１０４へのメディアコンテンツの配信を管理するメディア配信エンジンを備えることができる。ポータル１１４は、メディアファイルを求めてワールドワイドウェブを検索することが可能なウェブクローラーアプリケーション、及びメディアファイルのロケーションを格納するためのインデックスを有する検索エンジンを備えることができる。
【００１５】
[022]次に図２を参照すると、メディアサービスサーバー１０２は概して、１つ又は複数のプロセッサ１１６、及びオペレーティングシステム１１８を備えることができる。メディアサービスサーバー１０２と、クライアントデバイス１０４と、他の計算システムとの間の通信を可能にするために、ネットワークインターフェース１２０をさらに設けることができる。メディアサービスサーバー１０２は、プロセッサ１１６上で実行される複数のソフトウェアアプリケーションプログラムをさらに備える。これらのアプリケーションプログラムは、本システムによる一対のクライアントアプリケーションを含む。これらのクライアントアプリケーションのそれぞれが以下で詳細に説明されるが、概して、本明細書においてメディアダウンロード制御エンジン１２４と呼ばれる第１のアプリケーションは、クライアントデバイス１０４が、メディア検索を実行し、クライアントデバイス１０４によってサポートされていないファイルフォーマットでリモートソースサーバー上に存在する場合があるメディアをプレイバックすることを可能にする。本明細書において仮想チャンネルエンジン１２８と呼ばれる第２のクライアントアプリケーションは、ユーザーが、該ユーザーの関心のあるトピックに対する検索クエリーに関連するコンテンツの連続的なストリームを提示する仮想テレビチャンネルを作成することを可能にする。
【００１６】
[023]実施形態において、メディアダウンロード制御エンジン１２４及び仮想チャンネルエンジン１２８の双方がメディアサービスサーバー１０２上に常駐することができるが、代替的な実施形態では、ソフトウェアエンジン１２４、１２８は互いに異なるサーバー上に格納することができることが理解される。１つのそのような実施形態では、仮想チャンネルエンジンはクライアントデバイス１０４上に常駐することができる。
【００１７】
[024]メディアサービスサーバー１０２はユーザーのホームＰＣとすることができるが、代替的に、メディアサービスサーバー１０２は専用アプリケーションサーバーとすることもできる。そのような専用アプリケーションサーバーは、ユーザーの自宅に置くことができ、又はさらなる実施形態では、メディアサービスサーバーはユーザーの自宅からリモートにあることができる。すなわち、メディアダウンロード制御エンジン及び／又は仮想チャンネルエンジンは、電話会社又は他のサービスプロバイダーのリモートサーバー上に置くすることができる。そのような実施形態では、リモートサーバーはインターネット又は他のネットワーク接続を介してクライアントデバイス１０４と通信することができる。さらに、メディアサービスサーバー１０２は単一のクライアントデバイス１０４と関連付
けられて示されているが、さらなる実施形態ではメディアサービスサーバーに関連付けられた２つ以上のクライアントデバイスが存在することができる。
【００１８】
[025]メディアサービスサーバー１０２は、メディアコンテンツ及び該メディアコンテンツに関するメタデータを格納するためのデータストア１３０をさらに備える。そのようなメタデータは、タイトル、キャスト、プロダクション、及びメディアサービスサーバーデータストア１３０内に格納されたメディアコンテンツに関する他のデータを含むことができる。メタデータは、プロセッサ１１６が、テレビ１０６を介して表示されることになるコンテンツのスケジュールを提示するインタラクティブな電子番組ガイド（「ＥＰＧ」）を生成することを可能にする。このコンテンツは、データストア１３０に格納することもできるし、メディアサーバー１１２又はポータル１１４（図１）から適切な時点においてダウンロードすることもできる。以下で説明するように、ユーザーは仮想チャンネルエンジン１２８を用いてカスタマイズされた仮想チャンネルを生成することができる。仮想チャンネルのために選択されたメディアコンテンツ、及び該仮想チャンネルのメタデータをデータストア１３０に格納することができる。代替的な実施形態では、データストア１３０はクライアントデバイス１０４内に常駐することができる。
【００１９】
[026]次に、図３Ａ〜図３Ｃのフローチャート及び図４及び図５のユーザーインターフェースの図を参照してメディアダウンロード制御エンジン１２４の動作を説明する。ソフトウェアエンジン１２４がメディアサービスサーバー１０２にインストールされ実行されると、ステップ２００におけるクライアントデバイス１０４の起動時に、クライアントデバイスはローカルエリアネットワーク内の他のデバイスに呼掛けを行い、ステップ２０２においてメディアサービスサーバー１０２にリンクすることができる。クライアントデバイスは単純サービス発見プロトコル（simple service discovery protocol、ＳＳＤＰ）を用いることができ、ＳＳＤＰは、クライアントデバイスがメディアサービスサーバー１０２の存在を含むネットワークサービスを発見することを可能にするメカニズムを提供する。クライアントデバイス１０４についてＳＳＤＰ以外のプロトコルを用いてメディアサービスサーバー１０２を見つけることができる。
【００２０】
[027]メディアサービスサーバー１０２は、クライアントデバイス１０４にリンクすると、ステップ２０４において、クライアントデバイス１０４の能力を判断する。メディアサービスサーバー１０２は、クライアントデバイスがいずれのメディアファイルフォーマットに互換性があるか（すなわちクライアントデバイスがいずれのメディアファイルフォーマットをサポートし、再生することができるか）を含めて、クライアントデバイス能力を検出する、当該技術分野において既知のユーザーエージェントを備えることができる。ステップ２０６において、メディアサービスサーバー１０２は、クライアントデバイス１０４がメディアコンテンツ検索を開始するときに該クライアントデバイスの要求をメディアサービスサーバー１０２に送信する命令をクライアントデバイス１０４に与えるブロードキャストメッセージで応答する。
【００２１】
[028]ステップ２０８において、クライアントデバイス１０４は、既知の方式でテレビ１０６にユーザーインターフェースを生成するためにテレビ１０６にデータを送信する。ユーザーインターフェースはユーザーに、メディア検索を実行するオプションを含むメインメニューを提示する。ユーザーはクライアントデバイス１０４及び／又はテレビ１０６に関連付けられたリモコンを介してこのユーザーインターフェースとインタラクトすることができる。ステップ２１０において、クライアントデバイス１０４は、ユーザーがメディア検索を開始することを望むか否かを判断する。ステップ２１０においてユーザーがメディア検索を実行することを望むというインジケーションを受信すると、ステップ２１２において、クライアントは、検索開始要求をメディアサービスサーバー１０２に送信する。ステップ２１２において送信された要求は、ステップ２０６においてメディアサービスサーバー１０２から最初に送信された（すなわち、検索が開始されることになったときにメディアサービスサーバーに接触する）命令に従って生成される。
【００２２】
[029]メディアサービスサーバー１０２は、ユーザーがメディア検索を開始することを望むという通知をクライアントデバイスから受信すると、ステップ２１４において、所定
のウェブＵＲＬに接続して、メディア検索トピックのメニューディレクトリを取得する。所定のウェブＵＲＬは、ポータル１１４（図１）のアドレスとすることができる。ウェブポータル１１４は、たとえばマイクロソフト社によってホスティングされているＭＳＮ．ｃｏｍのような様々な既存の検索エンジンポータルのうちの任意のものとすることができる。ステップ２１４において、メディアサービスサーバー１０２はポータル１１４のホームページ又はメインの検索ページのロケーションを格納し、指定されたウェブページから検索トピックのリストをダウンロードする。メディアサービスサーバー１０２の接続先のページは、ポータル上のユーザーのカスタマイズされたホームページとすることもできる。メディアサービスサーバー１０２は、所定のウェブサイトに接触し、メディア検索ディレクトリを要求し、該ウェブサイトから応答情報を受信することが可能な既知のブラウザーアプリケーションを含むことができる。
【００２３】
[030]ステップ２２０において、メディアサービスサーバー１０２は取得した検索トピックのリストを、クライアントデバイス１０４がリストから選択を行い、選択された１つ又は複数のトピックごとのさらなる結果を取得することを可能にするデータ構造にフォーマット設定する。多くの例のうちの１つとして、メディア検索ディレクトリは以下のようなトピック、すなわち
−アルバム名からの音楽
−アーティスト名からの音楽
−曲名からの音楽、
−アルバム名からの写真
−日付からの写真
−タイトルからのビデオ
−お気に入り
−最近再生したもの
−キーワード
をダウンロードすることができる。さらなる実施形態において、メディアディレクトリリストは、追加のトピック又は代替的なトピックを含むことができることが理解される。ユーザーはメディアサービスサーバー１０２によって読み出されたトピックを、クライアントデバイスユーザーインターフェース又はメディアサービスサーバーを用いて直接調整することができる。
【００２４】
[031]示されるように、ステップ２２０において、メディアサービスサーバー１０２はメディアディレクトリのデータをトピックごとのそれぞれのデータ構造にフォーマット設定する。各データ構造は所与のトピックを指定し、該所与のトピックがポータル１１４に格納されるＵＲＬへのＵＲＬリンクも提供する。メディアディレクトリデータがデータ構造にフォーマット設定されると、ステップ２２４において、該データ構造はクライアントデバイスに送信される。以下はメディアサービスサーバー１０２によってフォーマット設定され、メディアサービスサーバー１０２からクライアントデバイス１０４に送信される様々なデータ構造のＸＭＬバージョンの例である。
【００２５】
【表１−１】
0005612676.tif 000002
【００２６】
【表１−２】
0005612676.tif 000003
【００２７】
[032]上記のＸＭＬコードでは、メディアディレクトリ内の各トピックがデータ構造内に埋め込まれる。各トピックにおいて、CAMLNodeはそれぞれのデータ構造の定義である。トピックタイトルがそれに続き、所定のウェブサイトにおけるそのトピックのＵＲＬを指定するコンテンツリンクがそれに続く。各データ構造におけるリンクの開始部（この例では「１５７．５６．１４４．１６３：９９９９」）は、ステップ２０２においてクライアントデバイスが最初にデバイス１０２にリンクするときに該クライアントデバイスによって検出されるメディアサービスサーバー１０２のローカルアドレスである。以下で説明するように、データ構造内にトピックを含むメディアディレクトリがクライアントデバイス１０４によってテレビ１０６を介して表示され、ユーザーはさらに探索するトピックを選択することができる。各データ構造内にメディアサービスサーバーのローカルアドレスを含めることによって、クライアントに、トピックに関するさらなる情報の任意の要求をメディアサービスサーバー１０２を通じてルーティングさせる。
【００２８】
[033]上記は様々なメディアトピックを指定するためにメディアサービスサーバーからクライアントデバイスに渡すことができるデータ構造の１つの例である。メディア検索のためのトピックをメディアサービスサーバーからクライアントデバイスに他のデータフォーマットで通信することができることが予期される。さらに上記はＸＭＬであるが、他の言語プロトコルも用いることができる。さらなる例として、クライアントデバイス１０４がマイクロソフト社によるＳｉｌｖｅｒＬｉｇｈｔ（登録商標）ブラウザープラグインをサポートしている場合、メディアサービスサーバー１０２とクライアントデバイス１０４との間の言語プロトコルとしてＪＳＯＮを用いてデータ構造を通信することができる。
【００２９】
[034]ステップ２３０（図３Ｂ）において、クライアントデバイスはデータ構造を受信し、テレビ１０６上に既知の方式でユーザーインターフェースを生成する。このユーザーインターフェース１４０の例が図４に示されている。クライアントデバイスはデータ構造からメディアディレクトリトピックを取り出し、それらをユーザーインターフェース１４０を介してユーザーが使いやすい方式で表示する。
【００３０】
[035]ステップ２３２において、クライアントデバイス１０４は、ユーザーが表示されたトピックをさらなる検索のために選択したか否かを判断する。選択した場合、クライアントデバイス１０４はそのトピックに関連付けられた追加情報のＨＴＴＰ要求をメディアサービスサーバー１０２に対し行う。特に、メディアサービスサーバー１０２によってク
ライアントデバイス１０４に提供されるデータ構造は、トピックのリスト及びそれらのトピックに関する追加情報を見つけることができるＵＲＬへのリンクを含む。このため、ユーザーが所与のトピックを選択すると、クライアントデバイスはユーザーインターフェース１４０からの選択のインジケーションを受信し、次にその選択されたトピックに関連付けられたリンクを辿る。
【００３１】
[036]上記で示したように、各データ構造内のリンクは、メディアサービスサーバー１０２のローカルアドレスを含むこともできるので、トピックに対する追加情報のすべての要求はメディアサービスサーバー１０２を通じてルーティングされる。クライアントデバイスに送信されたデータ構造内のリンクをフォーマット設定することによって、クライアントデバイスは追加情報を取得する方法も、場所も、ルートも処理する必要がない。クライアントデバイスは、各トピックに関連付けられたデータ構造において指定されたリンクを単に辿る。
【００３２】
[037]ステップ２３６において、メディアサービスサーバー１０２は、クライアントデバイス１０４から受信したＵＲＬを用いて、指定されたＵＲＬアドレスでサーバーに接触し、要求された追加情報を有する検索結果を取得する。ステップ２４０において、指定されたトピックの追加情報を上述したようなデータ構造においてフォーマット設定することができる。すなわち、データ構造は、追加情報のタイトルと、クライアントデバイス１０４を介してユーザーによって選択された場合、メディアサービスサーバー１０２によって追加情報を取得することができるリンクとを含むことができる。
【００３３】
[038]ステップ２４４において、要求された追加情報のデータ構造は、メディアサービスサーバー１０２からクライアントデバイス１０４に送信される。以下はメディアサービスサーバーからクライアントデバイスに送信される選択されたトピックの追加情報のＸＭＬバージョンの例である。この例において、ユーザーはユーザーインターフェース上に表示されたメディアディレクトリから「ＭＳＮビデオ」を選択した。
【００３４】
【表２−１】
0005612676.tif 000004
【００３５】
【表２−２】
0005612676.tif 000005
【００３６】
【表２−３】
0005612676.tif 000006
【００３７】
[039]上記のステップ２１４のように、メディアサービスサーバー１０２は返された情報をデータ構造にフォーマット設定し、次にそのデータ構造をクライアントデバイス１０４に転送する。次に、上述したようにステップ２３０において、追加情報はクライアントデバイス１０４によってユーザーインターフェース１４０を介してユーザーが使いやすいフォーマットで表示される。ユーザーインターフェース１４０上に表示することができる追加情報の例が図５Ａに示されている。上記のデータ構造において示されるように、メディアサービスサーバーは「ポスター」並びにサムネイル及び説明も返すことができ（図５Ｂ及び図５Ｃに示される）、それによってクライアントはリッチユーザーインターフェースを表示することができる。次に、ユーザーはユーザーインターフェース１４０を介して表示された追加情報からさらなる選択を行うことができる。ステップ２３０〜２４４は、メディア検索を、ユーザーが閲覧及び／又は聴取することを望んでいる特定のコンテンツに絞り込むことをユーザーが望むたびに繰り返すことができる。
【００３８】
[040]ステップ２３０〜２４４を繰り返すことによってユーザー検索を絞り込むことに対する１つの例外は、ユーザーが概括的なメディアトピックの代わりにキーワード検索を選択する場合である。ユーザーがキーワード検索を選択した場合、ユーザーインターフェースはユーザーがその中に検索を入力することができるウィンドウを表示する。次にユーザーは、クライアントデバイス１０４及び／又はテレビに関連付けられたキーボード又はリモコンを用いてテキストクエリーを入力することができる。キーボードが存在しない場合、クライアントは代わりに、ユーザーインターフェース上にソフトキーボードを生成することができ、そこからユーザーはクエリーを編成するテキストを選択することができる。次に、検索クエリーはメディアサービスサーバー１０２に送信される。メディアサービスサーバー１０２は、ウェブポータル検索エンジンを用いたウェブポータル検索のために所定のウェブポータル１１４にクエリーを渡す。検索結果はクライアントデバイス１０４に返され、クライアントデバイス１０４はその結果をたとえば上述したデータ構造にフォーマット設定する。次に、フォーマット設定された結果がクライアントデバイス１０４に送信され、ユーザーインターフェース１４０を介してユーザーが使いやすいフォーマットで表示される。
【００３９】
[041]ユーザーは、上述したステップを用いて、トピック又はキーワード検索を選択す
ることができ、クライアントデバイス１０４は要求をメディアサービスサーバー１０２に渡す。このプロセスは、ユーザーがダウンロードを望むビデオ、音楽、又は画像に該ユーザーが到達するまでいくつかのステップの間続くことができる。このシステムによれば、クライアントデバイス１０４は自身がいずれのサーバーと通信しているかを知らない。クライアントデバイスは選択されたトピックに関連付けられたＵＲＬに要求を単に行う。メディアサービスサーバー１０２はCAMLNodeの「ＵＲＬ」部に設定されたＵＲＬを制御することによってフローを制御する。これによって著しい量の柔軟性がもたらされる。たとえば、以下で説明するように、このシステムは、クライアントデバイス１０４が、該クライアントデバイスによってサポートされていないフォーマットでサイトから到来するメディアコンテンツを再生する能力を提供する。
【００４０】
[042]ステップ２３２においてユーザーが情報の追加検索を選択しない場合、次に、ステップ２４８において、メディアダウンロード制御エンジン１２４は、ユーザーが特定のメディアをダウンロードするリンクを選択したか否かを判断する。選択していない場合、ステップ２５０において、エンジン１２４は、ユーザーがメディアの検索を終了することを望むか否かをチェックする（終了オプションはユーザーインターフェース１４０上に提供することができる）。所望している場合、ステップ２５４において、クライアントデバイス１０４はメインメニュースクリーン（図示せず）に戻り、メディアダウンロード制御エンジン１２４は終了する。
【００４１】
[043]しかしながら、ステップ２４８において、ユーザーがダウンロードする特定のメディアを選択すると仮定すると、メディアはダウンロードされ再生される。図５Ｂ及び図５Ｃは、ユーザーが再生することを望むコンテンツに到達するために、該ユーザーに自身の選択の結果として提示することができるユーザーインターフェース１４０の例を示している。ユーザーが図４に示すユーザーインターフェースから「ビデオ」を選択し、次に図５Ａに示すユーザーインターフェースから「ニュース」を選択したと仮定する。このとき、メディアサービスサーバー１０２はビデオのリストを取得することができ、それらは次に転送され、図５Ｂに示すようなインターフェース１４０上で表示される。ユーザーはリストをスクロールし、関心のあるビデオを選択することができる。上記に示したように、サムネイル１４２又は他のグラフィックをコンテンツリストに加えることができる。この例では、ユーザーは、マイクロソフトのSteve Ballmerへのインタビューのビデオを選択した。選択されると、メディアサービスサーバー１０２は、図５Ｃに示すようなコンテンツのサマリーを有するサマリーページを読み出すことができる。ユーザーがそのコンテンツを閲覧することを選択する場合、図３Ｃのステップ２５６〜２７０に関して以下で説明するように、そのコンテンツのメディアファイルが取得され、ユーザーのテレビ１０６を介して再生される。図４〜図５Ｃに示すユーザーインターフェーススクリーン１４０は単なる例示であり、多岐にわたる代替的かつ／又は付加的なユーザーインターフェーススクリーンをユーザーに提示して、該ユーザーが所望のコンテンツにナビゲートすることを可能にすることができることが理解される。
【００４２】
[044]上記で示したように、メディアサービスサーバー１０２は、クライアントデバイス１０４の能力がわかっており、特に、クライアントデバイスが再生可能なファイルタイプがわかっている。メディアサービスサーバー１０２は、メディアファイルのリストを有するデータ構造を、ユーザーによるレビューのためにクライアントデバイス１０４に送信するとき、サポートされているメディアファイル及びサポートされていないメディアファイルの双方のリストを送信する。クライアントデバイスによってサポートされていることを計算システムが知っているメディアファイルの場合、計算システムは、そのファイルのためのデータ構造内のリンクを、クライアントデバイスがメディアファイルを自身で取りに行くことができるようにフォーマット設定する。すなわち、メディアファイルが、クライアントデバイスが再生することができるフォーマットである場合、そのメディアファイルに対するメディアサービスサーバー１０２からのデータ構造内のリンクは、そのファイルが位置するリモートサーバーを直接指す。このため、ユーザーがサポートされているファイルをダウンロードのために選択する場合、選択されたリンクはリモートサーバーを直
接指し、要求はクライアントデバイス１０４からリモートサーバーに直接行われる。次に、リモートサーバーはファイルをクライアントデバイス１０４に直接ダウンロード（又はストリーミング）する（ステップ２５６）。
【００４３】
[045]一方で、メディアサービスサーバーによって送信されたリストは、クライアントデバイスが再生することができないフォーマットのメディアファイルへのリンクを含むことができる。これらのサポートされていないファイルの場合、メディアサービスサーバー１０２はメディアサービスサーバーに戻るように指すリンクに関連付けられたデータ構造を符号化する。すなわち、クライアントデバイス１０４に送信されるデータ構造内のリンクは、メディアサービスサーバー１０２のローカルアドレスを含むことになる。このため、ユーザーがサポートされていないファイルをダウンロードのために選択する場合、選択されたリンクはメディアサービスサーバー１０２を指し、クライアントデバイス１０４は、メディアサービスサーバーのファイル取得要求をメディアサービスサーバー１０２に対し行う（ステップ２６０）。次に、メディアサービスサーバーは指定されたウェブサイトに接触し、サポートされていないファイルをメディアサービスサーバー１０２にダウンロードする（ステップ２６４）。
【００４４】
[046]ステップ２６６において、メディアサービスサーバーは、メディアファイルを受信するとトランスコードする。トランスコードするプロセスは元のメディアファイルを取り込み、クライアントデバイスによってサポートされているフォーマットで新たなメディアファイルを生成する。メディアファイルを１つのフォーマットから別のフォーマットにトランスコードする方法が当該技術分野において既知である。コンテンツをトランスコードする多数の既存の方式が存在し、クライアントネットワーク状態の変化を利用して、適応制御（すなわち、利用可能なネットワーク帯域幅が減少するときの可変ビットレート）を提供することができるものもある。メディアサービスサーバー１０２はこのタイプのトランスコード及び任意の他の既知のトランスコード方式を用いることができる。
【００４５】
[047]ファイルがトランスコードされると、メディアサービスサーバー１０２はトランスコードされたファイルをメディアサービスサーバー１０２上のストレージロケーションに格納することができる。クライアントデバイスから送信されたリンクはこのストレージロケーションを指す。このため、ファイルがトランスコードされると、ステップ２６８において該ファイルをクライアントデバイス１０４に送信し、ステップ２７０においてプレイバックすることがでる。本明細書において用いられるとき、メディアファイルのプレイバック又は再生はテレビ１０６（若しくは他のモニター）上でビデオを表示すること及び／又はテレビ１０６（若しくは他のデバイス）に関連付けられたスピーカーを介してオーディオを再生することを意味する。さらなる実施形態では、メディアサービスサーバー１０２はファイルがトランスコードされるのを待つ必要なく、リアルタイムでコンテンツを「オンザフライ」でトランスコードすることができる。そのような実施形態では、クライアントはすべてのソースコンテンツがトランスコードされる前にコンテンツを閲覧し始めることができるようになる。
【００４６】
[048]１つの例として、クライアントデバイス１０４はウィンドウズメディアビデオ（ＷＭＶ）をサポートしているがフラッシュビデオ（ＦＬＶ）をサポートしていない場合がある。ユーザーが、ＦＬＶビデオファイル（又は他のサポートされていないファイルフォーマット）をリモートサーバーからダウンロードするために選択する場合、クライアントデバイス１０４において選択されるデータ構造リンクは、メディアサービスサーバー１０２に、リモートサーバーからファイルを取得することを指示する。メディアサービスサーバー１０２は、．ｆｌｖビデオファイルを受信すると、クライアントデバイスがサポートしているフォーマット（たとえば．ｗｍｖ）を有する新たなファイルにライブトランスコードし、トランスコードされた．ｗｍｖファイルをクライアントデバイスに送信する。次に、ステップ２７０において、クライアントデバイスはトランスコードされたビデオを再生することができる。一方で、ユーザーがサポートされているフォーマット（たとえば．ｗｍｖ）のファイルをリモートサーバーからダウンロードしようとした場合、クライアントデバイス１０４は、メディアサービスサーバーの支援なしでリモートサーバーから直接
．ｗｍｖファイルをダウンロードする。次に、ステップ２７０において、クライアントデバイス１０４は．ｗｍｖビデオを再生する。サポートされている／サポートされていないオーディオファイル、サポートされている／サポートされていないグラフィックファイル、及びサポートされている／サポートされていないテキストファイルについて同様のプロセスを実行することができる。
【００４７】
[049]クライアントデバイス１０４が所与のメディアのための複数のフォーマットをサポートしている場合、サポートされていないファイルフォーマットがトランスコードされる、デフォルトのサポートされているファイルフォーマットが存在することができる。代替的に又は付加的に、メディアダウンロード制御エンジン１２４は、サポートされていないファイルフォーマットをサポートされているファイルフォーマットにトランスコードする際に規則を用いることができる。たとえば、所与のファイルフォーマットが、デフォルトのファイルフォーマット以外のサポートされているファイルフォーマットにより手際よくトランスコードされることが知られている場合、エンジン１２４は、サポートされていないファイルフォーマットを、トランスコードの手際がよりよいファイルフォーマットにトランスコードすることができる。
【００４８】
[050]上記のシステムは、ユーザーに、メディアコンテンツを検索し、自身のテレビシステムに直接ダウンロードする能力を与える。これは、ユーザーに、該ユーザーのコンテンツ検索体験における柔軟性の増大をもたらし、テレビシステムから様々なインターネット検索アプリケーションが実行されることを可能にする。本システムによる１つのそのようなアプリケーションは、図２について上述し、図６及び図７について次にさらに詳細に説明する仮想チャンネルエンジン１２８である。仮想チャンネルエンジン１２８の実施形態は上述したメディアダウンロード制御エンジン１２４を利用するが、本システムの代替的な実施形態では、仮想チャンネルエンジン１２８はメディアダウンロード制御エンジン１２４を用いる必要がないことが理解される。
【００４９】
[051]概して、仮想チャンネルエンジン１２８は、ユーザーが上記で示したクライアントデバイス１０４を用いて検索クエリーを入力することを可能にし、次に検索クエリーに関連する番組を生成する。エンジン１２８はこれらの番組をスケジューリングし、ユーザーが自身のテレビを介して見るのに利用可能になるようにする。取り入れられた番組のスケジュールは、ユーザーに示されるＥＰＧにおいて、他のチャンネルのスケジューリングされたコンテンツと共に新たな仮想チャンネルの下にリストすることができる。
【００５０】
[052]次に、図６Ａ〜図６Ｃのフローチャート及び図７〜図９のユーザーインターフェースを参照して仮想チャンネルエンジン１２８の動作を説明する。仮想チャンネルエンジン１２８は、メディアサービスサーバー１０２、クライアントデバイス１０４、又は２つの組み合わせによって実行することができることが理解される。仮想チャンネルエンジン１２８は、ユーザーがルーチンにアクセスし、該ルーチンを実行して１つ又は複数の仮想チャンネルを作成することができるリモートサーバー上に置かれることも考えられる。
【００５１】
[053]ステップ３００において、エンジン１２８はユーザーが所望の検索クエリーを入力することを可能にするユーザーインターフェースを表示する。特に、仮想チャンネルエンジン１２８がメディアサービスサーバー１０２上でホスティングされている場合、デバイス１０２はクライアントデバイス１０４にメッセージを送信し、次にクライアントデバイス１０４がテレビ１０６にメッセージを送信し、テレビ１０６上にユーザーインターフェースを生成する。仮想チャンネルエンジン１２８がクライアントデバイス上に常駐している場合、クライアントデバイスはテレビ１０６にメッセージを送信し、テレビ１０６上にユーザーインターフェースを生成する。
【００５２】
[054]そのようなユーザーインターフェース１４８の例が図７に示されている。ユーザーは、クライアントデバイス１０４又はテレビ１０６に関連付けられたキーボードを用いて検索クエリーを入力する。代替的に、キーボードが存在しない場合、ユーザーが自身のリモコンを用いてインタラクトすることができるソフトキーボードをインターフェース１４８上に表示することができる。ステップ３０２において、検索クエリーが受信されると、たとえばポータル１１４（図１）によってサポートされているリモート検索エンジンウ
ェブサイト等のリモート検索エンジンウェブサイトを介してそのクエリーの検索が実行される。検索は、人々、映画、ショー、音楽、イベント、又は特定のユーザーが興味のある任意の他のトピックに関連することができる。ユーザーによって入力された特定の検索クエリーは、本明細書ではルート検索クエリー又は第１世代検索クエリーと呼ぶ。
【００５３】
[055]ステップ３０４において第１世代検索クエリーの結果が受信される。検索エンジンの検索結果について通常そうであるように、取得された結果は関連度順でランキングされ、テキストファイル、ビデオファイル、グラフィックファイル、及びオーディオファイルへのリンクを含むことができる。実施形態では、仮想チャンネル上に含まれる番組は、ビデオファイルからのみ形成される。しかしながら、ビデオファイル、グラフィックファイル、オーディオファイル、テキストファイル、又はそれらの任意の組み合わせを含む番組を形成することができることが理解される。実施形態では、ユーザーは検索を１つのタイプのメディア、たとえばビデオのみに限定することができる。これらの実施形態では、番組は選択されたメディアタイプからのみ編集されることになる。他の検索判断基準を用いて検索結果を精緻化することもできる。そのような追加の判断基準は、検索結果の持続時間、検索結果の縦横比、検索結果の解像度、検索結果が取得される取得元、検索結果のジャンル（たとえば映画、音楽ビデオ、ドキュメンタリー、ニュース等）を含む。他の検索判断基準を用いることもできる。
【００５４】
[056]一般的な検索トピックに関連する検索クエリーは、以下で説明するような番組を形成することができる材料の大きなコーパスを生成することができる。しかしながら、検索クエリーがほとんど結果をもたらさない場合も起こり得るし、ユーザーがルート検索クエリーに関連する異なる検索クエリーからの検索結果を取得するように手を広げることを望むことも起こり得る。したがって、仮想チャンネルエンジン１２８は第２世代検索クエリーを用いてさらなる結果を取得することができる。
【００５５】
[057]特に、検索は、元のルート検索クエリーに関連する検索クエリーを派生させることが可能なメタデータマイニングエンジンを用いて検索エンジンによって実行することができる。そのようなメタデータマイニングエンジンはルート検索クエリーに関連する派生した検索クエリーを取得するための様々な既知のアルゴリズムを用いることができる。概して、メタデータマイニングエンジンは検索エンジンから検索クエリーのログを検査して、ルート検索クエリーに関連する派生した検索クエリーを求めることができる。この関連は、意味的相関、文脈的相関、時間的相関、又はルート検索クエリーから派生した検索クエリーを求めるための他の既知の相関とすることができる。ルート検索クエリーから派生した検索クエリーは、本明細書では派生した検索クエリー又は第２世代検索クエリーと呼ぶ。
【００５６】
[058]１つの例では、マイニングエンジンは、たとえばＷｉｋｉｐｅｄｉａ（登録商標）検索サイト等の既存の検索ウェブサイト上で用いられるマイニングエンジンとすることができる。そのような例では、マイニングエンジンは第１世代検索クエリーを取り込み、該第１世代検索クエリーに戻るリンクを含む結果を有する検索サイト上のクエリーのインデックスを検索することができる。１つの例として、ユーザーは、第１世代ルート検索クエリーとして、俳優「John Cleese」の名前を入力することができる。次に、マイニングエンジンは他のクエリーの結果を検索して、それらのうちのいずれがJohn Cleeseに戻るリンクを含むかを知る。１つの例として、検索クエリー「Monty Python」及び「James Bond」は共に、名前「John Cleese」及びJohn Cleeseのページへのリンクを含む検索結果を有する場合がある。これらの検索クエリーは次に、第２世代検索クエリーの少なくとも一部をなす。マイニングエンジンは、たとえば「John Cleeseの経歴」及び「John Cleeseの映画」等の多岐にわたる他のトピックに関する第２世代検索クエリーも生成することができる。多岐にわたる他の方式に従って派生検索クエリー（derivative search query）を求めることができることが理解される。
【００５７】
[059]実施形態では、第２世代検索クエリー、第３世代検索クエリー等の生成は、ユーザーによって制御することができる。以下に説明する代替的な実施形態では、仮想チャンネルエンジンはルート検索クエリーから世代の検索クエリーを自動的に作成することがで
きる。ユーザーがさらなる世代の検索クエリーの作成を制御する実施形態では、ユーザーが第１世代のルート検索クエリーを入力した後、ステップ３０６において第２世代の検索クエリーを取得することができ、ステップ３０８においてテレビ１０６上のユーザーインターフェース１４８を介してユーザーに表示することができる。そのようなユーザーインターフェース１４８が、検索クエリーの第１世代及び第２世代の上記の例を用いて図１１に示されている。ユーザーは第２世代検索クエリーのうちの１つ又は複数を選択して検索するオプションを与えられる（ステップ３１２）。ユーザーがいずれの第２世代クエリーも検索しないことを選んだ場合、検索は終わり、ルート検索クエリー及びその結果が格納される（図６Ｂ、ステップ３３６）。一方で、ユーザーが第２世代検索クエリーのうちの１つ又は複数を検索することを選んだ場合、ステップ３１４において、選択された第２世代検索クエリーごとの検索結果が取得される。
【００５８】
[060]図１１に示されるように、ユーザーは、さらなる世代の検索クエリーを作成するオプションも与えられる（ステップ３１８）。たとえば、検索クエリーの第３世代（ｎ＝３）のセットは、メタデータマイニングエンジンが、第２世代検索クエリーのうちの１つに関連していると判断する検索クエリーである。各第２世代検索クエリーは、結果として第３世代検索クエリーのセットをもたらすことができる。このため、検索クエリーは後に続く各世代と共に指数関数的に枝を広げることができる。
【００５９】
[061]ステップ３１８〜３３２は、第ｎ世代の検索クエリー及び検索結果を生成するステップを表している。ステップ３０６において第２世代検索クエリーが取得されたため、最初にステップ３１８〜３３２を通るとき、ｎは３（すなわち第３世代）で開始し、ループを通るたびに１世代インクリメントする。このため、最初にステップ３１８〜３３２を通るとき、ユーザーは、自身が第３世代検索クエリーを見ることを望むか否かを示す（ステップ３１８）。望む場合、ステップ３２０において第３世代検索クエリーが取得される。ステップ３２４において、第３世代検索クエリーがユーザーインターフェース１４８（図１１）を介してユーザーに表示される。次に、ユーザーは、第３世代検索クエリーを検索するオプションを与えられる（ステップ３２６）。
【００６０】
[062]ユーザーが第３世代クエリーのいずれも選択して検索しない場合、検索クエリー（第１世代クエリー及び任意の選択された第２世代クエリー）のすべて及びこれらの検索クエリーについて取得された結果が格納される（図６Ｂ、ステップ３３６）。一方、ユーザーがステップ３２６において第３世代検索クエリーのうちの１つ又は複数を検索することを選んだ場合、ステップ３３０において、選択された第３世代検索クエリーごとの検索結果が取得される。次に、ステップ３３２において、世代カウンターｎが（たとえば第４世代に）インクリメントされ、ルーチンはステップ３１８に戻る。ｎ＝４のとき、ステップ３１８において、ユーザーは再び第ｎ世代検索クエリーを取得するオプションを与えられる。ここで、第ｎ世代検索クエリーは、第ｎ−１世代検索クエリーのそれぞれから派生した検索クエリーである。次に、プロセスは再びステップ３１８〜３３２を通過する。
【００６１】
[063]実際に、第２世代〜第３世代以降の派生した検索クエリーが取得される必要があることは稀である場合がある。しかしながら、ステップ３１８〜３３２は、ユーザーが、自身が所望するだけの検索クエリーの世代及び結果を取得するために、ユーザーが望むだけ何度も繰り返すことができることが考えられる。実施形態では、第２世代を超える世代検索の結果は、ルート検索クエリーに対して相互参照され、離れた世代の検索結果がルート検索クエリーに対し何らかの関連を有することを確実にすることができる（ただし、この相互参照は実施形態において省くことができる）。
【００６２】
[064]実施形態において、ユーザーが自身が何世代分の検索結果を所望するかを決める代わりに、仮想チャンネルエンジンが１つ又は複数の世代の検索クエリー及び検索結果を自動的に生成することができる。この実施形態では、様々な判断基準を用いて何世代分の検索語が用いられるかを求めることができる。１つの実施形態では、ルート検索クエリー及び派生した検索クエリーの検索は、番組を形成するのに十分な、全体として所定の時間期間、たとえば数時間、一日、一週間、又は数週間続くコンテンツが存在するようになるまで実行することができる。検索結果が、番組に形成されたときに所定の時間期間続くコ
ンテンツを生成した場合、それ以上の世代の検索を実行する必要はない。
【００６３】
[065]さらなる実施形態では、異なる世代の検索を実行し、元の検索クエリーに関連する様々な異なるコンテンツが存在することを確実にすることができる。このため、John Cleeseに関連する結果を与える上記のJohn Cleeseの例では、Monty Python及びJames Bondが良い見本となり、John Cleeseに関連する様々なコンテンツをもたらす。
【００６４】
[066]ルート検索クエリー及び任意の派生した検索クエリーについて取得された検索結果は、ポータル１１４の検索エンジンによるワールドワイドウェブの検索を通じて取得される。これらの検索結果に加えて、仮想チャンネルエンジン１２８はメディアサービスサーバー１０２及び／又はクライアントデバイス１０４上のローカルストレージのコンテンツストア内に格納された関連コンテンツも検索することができる。エンジン１２８は、他のＩＰチャネル又はネットワークブロードキャストチャネルにまもなく登場するコンテンツのスケジュールも検索して、関連コンテンツ（すなわち、ルート検索クエリー語又は派生した検索クエリー語を含むコンテンツ又は該コンテンツのメタデータ）を見つけることができる。これらのソースのうちの任意のものからのコンテンツを以下で説明されるように番組内に含めることができる。
【００６５】
[067]次に図６Ｂを参照すると、検索プロセスが完了すると、第１世代及び任意の追加の世代のすべての検索クエリーが、これらの検索クエリーの検索結果と共に格納される（ステップ３３６）。その後、ステップ３４０において、仮想チャンネル名が定義される。仮想チャンネルはルートクエリーと同じ名前を取ることができる。このため、上記の例において、仮想チャンネルエンジン１２８は、「John Cleese」と呼ばれる仮想チャンネルを作成することができる。長い検索語に対応する仮想チャンネル名は縮めることができる。
【００６６】
[068]ステップ３４２において、様々な番組のための番組タイトルを作成することができる。１つの実施形態では、番組タイトルはルート検索クエリー及び任意の派生した検索クエリーと同じ名前を取ることができる。各検索クエリーを用いて異なる番組名を形成することができる。このため、上記の例では、「John Cleese」、「Monty Python」、「James Bond」、「John Cleeseの経歴」、及び「John Cleeseの映画」と呼ばれる番組を作成することができる。これらの番組名は単なる例示である。ステップ３４４において、仮想チャンネル名及び番組タイトルをメディアサービスサーバー１０２のデータストア１３０内に格納することもできるし、クライアントデバイス１０４のデータストア内又はリモートサーバーに格納することもできる。所与の検索クエリーの検索結果は、メモリ内で該所与の検索クエリーに対応する番組名とリンクされる。
【００６７】
[069]ステップ３４６において、番組のコンテンツを番組に加えることができる。ステップ３４６の１つの実施形態のさらなる詳細が図６Ｃのフローチャートに示されている。この実施形態では、ステップ３５４において、番組名がメモリから連続的に読み出される。このため、上記の例では、第１の番組名は「John Cleese」である。番組の長さも読み出される。番組は所定の長さ（たとえば１／２時間、１時間、２時間等）に設定することができる。すべての番組を同じ長さに設定することもできるし、異なる番組を異なる長さに設定することもできる。
【００６８】
[070]番組にコンテンツを追加するために、所与の番組について次に高いランキングの検索結果の長さが選ばれる（ステップ３５６）。この寸法（measure：長さ）は、検索結果に関連付けられるメタデータの一部として返される。次に、ステップ３５８において、現在の番組において、次に高いランキングの検索結果を番組に追加するのに十分な利用可能時間が存在するか否かを知るためのチェックが行われる。存在する場合、ステップ３６０においてそのコンテンツが番組に追加され、ルーチンはステップ３５６に戻り、次に高いランキングの検索結果をチェックする。次のランキングのコンテンツの余地がない場合、ステップ３６１において、ルーチンは、現在の番組タイトルに関連付けられたさらなる結果が存在するか否かをチェックする。存在する場合、ルーチンはステップ３５６に戻り、次の検索結果が番組内に適合するか否かをチェックする。
【００６９】
[071]このため、１つの例では、第１の番組は１／２時間に設定することができる。仮
想チャンネルエンジンは第１の番組を読み出し、その番組に関連付けられた第１のランキングの検索結果の時間の長さを読み出す。エンジンは、第１のランキングの検索結果が１０分の長さのビデオであると判断する。これは１／２時間の番組に加えられることになる最初のコンテンツであり、コンテンツ長が１／２時間未満であるので、番組に加えられる。次に、第２のランキングの検索結果の時間の長さが選ばれる。その長さが２０分未満の長さ（第１のコンテンツピースを加えた後に番組内に残った時間）である場合、第２のコンテンツピースは加えられる。コンテンツピースが番組内に残された時間に対して長すぎる場合、そのコンテンツピースはスキップされ、次のコンテンツピースが検討される。スキップされたコンテンツピースは、（以下で説明するように）番組が変更された場合に該番組に最初に加えるためにタグ付けすることができる。
【００７０】
[072]ステップ３５６〜３６１のプロセスは、この例では１／２時間の番組がコンテンツで満たされるまで継続する。検索結果を下方に進むと、番組にあまり関連していない場合があるので、仮想チャンネルエンジンは検討する結果を切り捨てて、たとえば最初の２０個の結果のみとすることができる。さらなる実施形態では、切捨ての境界は省くこともできるし、２０個よりも多いか又は少ない結果とすることもできる。コンテンツピース間の遷移が急になることを防ぐために、各コンテンツピースに短時間のバッファーを付加することができる。番組が完成したとき（割り当てられた時間内に適合するコンテンツがこれ以上ないとき）、ステップ３６２において該番組を格納することができる。
【００７１】
[073]番組内に数分が残されることが起こる場合があり、その数分内に適合するコンテンツを見つけることが困難である場合がある。これは多くの方法のうちの１つによって対処することができる。その数分を埋める広告を選択することができる。代替的に番組の時間の長さを、番組内のコンテンツピースの長さに適合するように短くすることもできるし長くすることもできる。別のオプションとして、コンテンツを、その一部のみが番組に含まれるように加えることができる。
【００７２】
[074]番組が格納された後、次に、ステップ３６４において、仮想チャンネルエンジンは、コンテンツを加えるさらなる格納された番組が存在するか否かを確かめることができる。存在する場合、上記で説明したように、ルーチンはステップ３６０に戻って、次の番組についてコンテンツを加える。これ以上番組が存在しない場合、コンテンツを番組に加えるステップ３４６は完了する。実施形態において、格納されるのは、番組名、及びその番組に含まれるコンテンツピースへのリンクである。以下で説明されるように、番組が再生されるとき、エンジンは格納されたリンクからコンテンツを取ってくることができる。代替的な実施形態では、番組が作成されるときに実際のコンテンツ自体をダウンロードして、番組の一部として格納することができる。
【００７３】
[075]上記の例では、より低いランキングの検索結果の前により高いランキングの検索結果が番組に編集される。さらなる実施形態において、コンテンツは他のステップに従って番組に加えることができることが理解される。１つの代替形態として、コンテンツピースをそれらのランクによって番組に加える代わりに、その時間を合算すると全体として番組の時間の長さとなる、所与の番組に関連付けられた一群のコンテンツピースを選択することができる。上記のプロセスの後にコンテンツが残されている場合があるので、番組は長くすることもできるし、番組がシリーズとなるように該番組の他のエピソードを作成することもできる。
【００７４】
[076]番組は通常、ビデオのみ又はビデオ及びオーディオファイルで構成することができるが、テキスト及び／又はグラフィックファイルも含むことができる。テキスト及び／又はグラフィックファイルの場合、デフォルト表示時間期間は、ファイルのサイズに依拠して各ファイルに割り当てることができる。このため、より短いテキストファイル又はグラフィックファイルは、たとえば３０秒間表示することができ、より長いテキストファイル又はグラフィックファイルはより長く表示することができる。このとき、テキストファイル又はグラフィックファイルを表示する時間期間は、そのようなファイルを番組に含めるときにカウントすることができる。
【００７５】
[077]図６Ｂに戻ると、番組が作成された後、該番組は次にステップ３４８においてス
ケジューリングすることができる。番組は、元のルート検索に最も密に関連する番組がスケジュールの最初にあり、より密に関連していない番組がより後にスケジューリングされるようにスケジュールに加えることができる。仮想チャンネルエンジンは、番組のスケジュールを、未来の異なる時間期間であるが、未来の約１週間〜２週間とすることができる時間期間続くように組み立てることができる。スケジュール内の番組のすべてが再生された後、スケジュールを繰り返すことができる。時間が経過すると、未視聴番組を繰り返すことができる。さらに、以下で説明するように、仮想チャンネルエンジンはフィードバックメカニズムを含む。高い評価を与えられた視聴済み番組を再度スケジュールに加え、繰り返すことができる。スキップされた番組又は低評価を与えられた番組は、いずれスケジュールから省くことができる。
【００７６】
[078]上記の例の作成された仮想チャンネルのための番組のスケジュールの例が、図９のユーザーインターフェースＥＰＧ１５０に示されている。ＥＰＧ１５０は、概して、上部を横切って水平方向に示されるスケジュール時間と、側部を下って垂直方向に示される様々な利用可能なチャンネルを含むグリッドとすることができる。図９のＥＰＧ１５０は単純な例であるが、概して、ＥＰＧは多数のチャンネルを有することができ、該チャンネルをユーザーがスクロールし、特定の時点において自身のテレビ１０６を介して見るコンテンツを選択することができる。ＥＰＧには、ケーブル又は衛星サービスプロバイダーを介してネットワーク放送局（ＡＢＣ、ＮＢＣ等）を含む様々な外部ソースから、又はインターネットプロトコルテレビ（ＩＰＴＶ）をストリーミングするウェブサーバー（サーバー１１２等）から受信したコンテンツ情報が埋め込まれている。ＥＰＧには、メディアサービスサーバー１０２及び／又はクライアントデバイス１０４に常駐しているローカルストレージ（たとえばストレージ１３０）からの情報も埋め込むことができる。
【００７７】
[079]記録されたメディアコンテンツは、このコンテンツが現在の検索クエリーに関連していることを示すサブタイトル、テレテキスト、又は検索することができる他のデータ要素等の組込みデータを有することができる。サブタイトル、テレテキスト、又は他のデータは、検索インデクサーによって復号することができ、所与の検索クエリーについて特定の番組をインデックス付けするのに用いられる。たとえば、ユーザーがJohn Cleeseの個人検索チャンネルを有している場合、該ユーザーは、サブタイトルストリームを含む記録されたニュース番組を有することができる。このサブタイトルストリームは、サブタイトル復号器に読み込むことができ、その結果として得られるテキストは、検索インデクサーがこの特定の記録された番組コンテンツをインデックス付けするのに用いることができる。別の例として、ニュース記事がJohn Cleeseをカバーしている場合、この記事はインデックス付けすることができ、このコンテンツを、個人検索チャンネルに用いられる可能性のあるコンテンツとすることができる。
【００７８】
[080]クライアントデバイス１０４はＥＰＧ１５０のためのＥＰＧコンテンツデータ、並びに外部ソース及び／又は内部ソースからのメタデータを受信する。このメタデータは、様々なチャンネル上にスケジューリングされたコンテンツに関連し、たとえば、タイトル、あらすじ、ジャンル、カテゴリ、分類、レビュー、キャスト、クルー、アーティスト、プロデューサー、時間、期間、ロケーション、コンテンツタイプ、コンテンツプロバイダー、ソース、解像度、コスト、加入者、又は特定のメディアコンテンツに関連する他のデータを含むことができる。図９のＥＰＧ１５０には示されないが、このメタデータはユーザーのリモコンを介してＥＰＧ１５０とインタラクトすることを通じてユーザーに利用可能とすることもできる。
【００７９】
[081]本システムによれば、仮想チャンネルエンジン１２８はＥＰＧ１５０に新たなチャンネルを加えることができ、該チャンネルはＥＰＧ１５０において利用可能な他のチャンネルと共に示される。ステップ３４８が完了すると、仮想チャンネルエンジン１２８は、チャンネルにおいて利用可能な番組のスケジュールと共にＥＰＧ１５０に新たなチャンネル名を加えることができる。この情報は、メディアサービスサーバー１０２、クライアントデバイス１０４、又はリモートサーバーに格納されている。上記の例を続けると、「John Cleese」と呼ばれるチャンネルが作成され、様々な番組がそれらのスケジューリン
グされた時間によって示される。図９のＥＰＧ１５０は数番組しか含まないが、さらに多くが存在することができる。
【００８０】
[082]特定の番組を視聴する時間になると、メディアサービスサーバー１０２又はクライアントデバイス１０４は、番組に含まれるコンテンツを有するソースサーバーに接触することができ、次にデバイス１０２又は１０４はその番組のためのコンテンツをダウンロード（又はストリーミング）することができる。コンテンツのダウンロード又はストリーミングは、メディアダウンロード制御エンジン１２４、並びに上記でメディアダウンロード及び制御エンジン１２４に関して説明した図３Ｂのステップ２４８及び図３Ｃのステップ２５６〜２７０によって達成することができる。すなわち、サポートされるファイルタイプは、クライアントデバイス１０４によって取得し、該クライアントデバイス１０４に直接ダウンロード又はストリーミングすることができる。番組内で用いられるファイルのうちのいくつかは、クライアントデバイス１０４によってサポートされていないフォーマットである場合がある。これらのファイルはメディアサービスサーバー１０２に送信してトランスコードし、次にクライアントデバイス１０４に送信することができる。実施形態において、仮想チャンネルエンジン１２８は、メディアダウンロード制御エンジンなしで用いることができることが理解される。そのような実施形態では、仮想チャンネルに加えられる番組は、クライアントデバイス１０４によってサポートされているコンテンツに限定することができる。
【００８１】
[083]番組の開始時に、様々なソースから番組のコンテンツの全てをダウンロードすることもできるし、番組中に特定のコンテンツが示されることになる時点において様々なソースからコンテンツをストリーミングすることもできる。さらなる実施形態では、近く登場する番組のコンテンツを該コンテンツのスケジューリングされた閲覧時間の前にダウンロードし、トランスコードし（必要な場合）、メディアサービスサーバー１０２のメディアストア１３０又はクライアントデバイス１０４内に格納することができる。広告を挿入するためのスペースを番組の間又は番組中に設けることができる。実施形態では、広告は個々のユーザーの番組のために選択されたコンテンツに基づいて、該個々のユーザーを対象とすることができる。
【００８２】
[084]上記で示したように、仮想チャンネルエンジン１２８は、所与の番組内のコンテンツ及び／又は番組全体に対するフィードバックを可能にすることができる。フィードバックはステップ３５０において受信することができる。そのようなフィードバックは受動的とすることができる。すなわち、クライアントデバイス１０４は番組コンテンツのユーザーの閲覧パターンを検出する。ユーザーはコンテンツピース又は全体番組をスキップするする場合がある。或いは、ユーザーは、コンテンツピース又は番組の一部分を巻戻すか又は早送りする場合がある。エンジン１２８は、この受動フィードバックを格納し、該受動フィードバックを用いてスケジュールを経時的に変更し、仮想チャンネルを特定のユーザーの嗜好にさらにカスタマイズする（ステップ３５２）。代替的に、ステップ３５０におけるフィードバックは能動的とすることができる。ユーザーには、該ユーザーに提示されるコンテンツを明示的に評価するオプションを与えることができる。そのようなフィードバックは、番組の完成時にユーザーに表示されるユーザーインターフェースを介して取得することができる。
【００８３】
[085]仮想チャンネルエンジン１２８を用いて、ユーザーは、該ユーザーの興味のあるトピックに基づいて選択される該ユーザーのコンテンツの連続ストリームをスケジューリングするチャンネルを作成することができる。ユーザーが自身の検索クエリーを入力し、任意の派生検索クエリーを選択すると、仮想チャンネル及び番組が自動的に作成され、ユーザーは、該ユーザー側でさらにインタラクトすることなく番組を提供される。上記の例は単一の仮想チャンネルの作成を示しているが、上記のステップを用いて、ユーザーが関心のある任意のトピックに関する複数の仮想チャンネルを作成することができることが理解される。これらの仮想チャンネルのそれぞれがＥＰＧ１５０に表示され、ユーザーは、単一チャンネルで閲覧するコンテンツを選択することもできるし、チャンネル間を切り換えることもできる。
【００８４】
[086]上述した実施形態では、仮想チャンネルのための番組が特定の時点にスケジューリングされる。一方、代替的な実施形態では、番組は上述したように生成することができるが、これらの番組は、スケジューリングされる代わりに、メディアサービスサーバー１０２及びクライアントデバイス１０４にローカルなストレージ内に、又はリモートメディアサーバー１１２に格納することができる。この実施形態では、コンテンツ番組を、オンデマンドコンテンツとして利用可能にし、ユーザーが望む任意の時点に閲覧するためにオンデマンドで選択することができる。
【００８５】
[087]実施形態では、仮想チャンネルは各ユーザーに対し個人的なものである。一方、さらなる実施形態では、個々のユーザーの仮想チャンネルのラインアップは、バックエンドサーバー、たとえばメディアサーバー１１２（図１）にアップロード及び格納することができる。その後、後続のユーザーが検索クエリーを入力して仮想チャンネルを作成するとき、後続のユーザーのクライアント又はメディアサービスサーバーはバックエンドサーバーに呼び掛け、何らかの他のユーザーが仮想チャンネルの作成時に同じ検索クエリーを入力したか否かをチェックする。入力していた場合、仮想チャンネルエンジン１２８は、同じルート検索クエリーからの仮想チャンネルの以前の作成に関連付けられた格納された番組データから、後続のユーザーのための新たな仮想チャンネルを構築することができる。
【００８６】
[088]上述したメディアダウンロード制御エンジン１２４及び仮想チャンネルエンジン１２８は、メディアサービスサーバー１０２、クライアントデバイス１０４、又はメディアサーバー１１２等のリモートサーバー上で実行されているプログラムモジュール等のコンピューター実行可能命令の一般的な文脈で説明することができる。概して、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本システムは、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実行することもできる。分散コンピューティング環境において、プログラムモジュールは、メモリストレージデバイスを含むローカルコンピューターストレージ媒体及びリモートコンピューターストレージ媒体の双方に配置することができる。
【００８７】
[089]図１０は、たとえばテレビ１０６に関連付けられたセットトップボックスとすることができる放送対応電子メディアデバイス３６８の構成例を示している。デバイス３６８は、プロセッサ３７２、揮発性メモリ３７４（たとえばＲＡＭ）、及びプログラムメモリ３７６（たとえばＲＯＭ、フラッシュ、ディスクドライブ、フロッピーディスクドライブ、ＣＤ−ＲＯＭ等）を有する中央処理ユニット３７０を含む。デバイス３６８は１つ又は複数の入力デバイス３８０（たとえば、リモコン、キーボード、マウス等）、テレビ１０６又は他のＶＧＡディスプレイ、ＳＶＧＡディスプレイとすることができるビデオディスプレイ、及びステレオシステムとインターフェースするステレオＩ／Ｏ３８２を有する。
【００８８】
[090]デバイス３６８は、インターネット１１０、ＬＡＮ若しくはＷＡＮ等のネットワーク上の適切なアドレス、又はネットワーク上にない周波数にチューニングする１つ又は複数のチューナー３８４を有する。チューナーは、アンテナ、ケーブル、又は衛星用アンテナに結合することができる。代替的に、チューナーは、ネットワークインターフェース３８８を通じてサーバー１１２（図１）等のコンテンツサーバーにアクセスすることを可能にするソフトウェアで実装される「仮想チューナー」３８６とすることができる。チューナーカード３８４は、アナログデータ及び／又はデジタルデータを受信するように構成することができる。たとえば、チューナーカード３８４は、ＭＰＥＧ符号化されたデジタルビデオ及びオーディオデータ、並びにデータファイルの形態のソフトウェアプログラム及びプログラミング情報を含む多くの異なる形態のデータを受信することができる。ネットワークインターフェース３８８はネットワークへのアクセスを提供し、モデム、ネットワークカード、ＲＦ受信機、又は外部ネットワークへのアクセスを提供する他のタイプのポート／受信機とすることができる。
【００８９】
[091]デバイス３６８は、複数のアプリケーションをサポートするオペレーティングシステムを実行する。オペレーティングシステムは、複数のアプリケーションの同時実行を可能にするマルチタスクオペレーティングシステムとすることができる。オペレーティングシステムは、「ウィンドウ」と呼ばれる表示スクリーンの特別に輪郭が画定されたエリア内にアプリケーション又は文書を提示するグラフィックユーザーインターフェースウィンドウ環境を用いることができる。
【００９０】
[092]デバイスは、必要な場合、サーバー１１２等のリモートサーバーから送信された認証キー及びセッションキーを受信するキーリスナー３９０を有するものとして示される。リスナー３９０によって受信されたキーは、セッションキー及びデータの暗号解読を可能にするために実装された暗号セキュリティサービスによって用いられる。暗号サービスは、ハードウェア及びソフトウェアの組合わせを通じて実装される。セキュアな耐タンパーハードウェアユニット３９２がＣＰＵ３７０の外部に設けられる。プロセッサ３７２上で実行されているソフトウェアレイヤーを用いて暗号ハードウェア３９２上のリソースへのアクセスを容易にする。
【００９１】
[093]ソフトウェアレイヤーは、暗号サービス（たとえば、暗号化、暗号解読、署名、又は検証）を求める任意のアプリケーションに機能を提供する暗号アプリケーションプログラムインターフェース（ＣＡＰＩ）３９４を含む。１つ又は複数の暗号サービスプロバイダー（ＣＳＰ）３９６は、ＣＡＰＩによってアプリケーションに提示された機能を実施する。ＣＡＰＩレイヤー３９４は、要求された暗号機能を実行するための適切なＣＳＰを選択する。ＣＳＰ３９６は、暗号化キー管理、暗号化／暗号解読サービス、ハッシングルーチン、デジタル署名、及び認証タスク等の様々な暗号機能を暗号ユニット３９２と連携して実行する。異なるＣＳＰを、暗号化、暗号解読、署名等のような特定の機能を扱うように構成することができるが、単一のＣＳＰを、それらの全てを扱うように実装することができる。ＣＳＰ３９６は、ＣＡＰＩによってオンデマンドでロードされる動的リンクライブラリ（ＤＬＬ）として実装することができ、その場合、アプリケーションによってＣＡＰＩ３９４を通じて呼び出すことができる。
【００９２】
[094]図１１は、例えばメディアサービスサーバー１０２でとすることができるコンピューティング環境を示す。本システムの態様を実施するコンピューティング環境は、コンピューター４１０の形態の汎用計算装置を含む。コンピューター４１０の構成要素は、処理ユニット４２０、システムメモリ４３０、及びシステムメモリを含む様々なシステム構成要素を処理ユニット４２０へ結合するシステムバス４２１を含むことができるが、これらに限定されない。システムバス４２１は、様々なバスアーキテクチャのいずれかを用いるメモリバス又はメモリコントローラ、周辺機器バス、及びローカルバスを含むいくつかの種類のバス構造のいずれかとすることができる。例として、非制限的に、このようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子規格協会（ＶＥＳＡ）ローカルバス、及びメザニンバスとしても知られている周辺機器相互接続（ＰＣＩ）バスを含む。
【００９３】
[095]コンピューター４１０は通常、様々なコンピューター読み取り可能な媒体を備える。コンピューター読み取り可能な媒体は、コンピューター４１０によりアクセス可能な任意の利用可能な媒体とすることができ、揮発性媒体及び不揮発性媒体の双方、並びにリムーバブル媒体及び非リムーバブル媒体を含む。非限定的な例として、コンピューター読み取り可能な媒体は、コンピューター記憶媒体及び通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶する任意の方法又は技術で実施される揮発性及び不揮発性のリムーバブル媒体及び非リムーバル媒体の双方を含む。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、又は所望の情報を記憶するために用いることができ、コンピューター４１０によってアクセスできる任意の他
の媒体を含むが、これらに限定されない。通信媒体は、通常、搬送波又は他の伝送メカニズム等の変調されたデータ信号中のコンピューター可読命令、データ構造、プログラムモジュール又は他のデータを具現化し、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号の特性のうちの１つ又は複数が該信号に情報を符号化するように設定又は変更された信号を意味する。非限定的な例として、通信媒体は、有線ネットワーク又は直接配線接続等の有線媒体、並びに音響、ＲＦ、赤外線及び他の無線媒体等の無線媒体を含む。上記のいずれかの組み合わせも、コンピューター読み取り可能な媒体の範囲内に含まれる。
【００９４】
[096]システムメモリ４３０は、ＲＯＭ４３１及びＲＡＭ４３２等の揮発性及び／又は不揮発性のメモリの形態のコンピューター記憶媒体を含む。コンピューター４１０内の要素間の、例えば起動時の情報の転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）４３３は通常、ＲＯＭ４３１に記憶される。ＲＡＭ４３２は通常、処理ユニット４２０が即時にアクセスでき、且つ／又は現在操作しているデータモジュール及び／又はプログラムモジュールを含む。非限定的な例として、図１１は、オペレーティングシステム４３４、アプリケーションプログラム４３５、他のプログラムモジュール４３６、及びプログラムデータ４３７を示している。
【００９５】
[097]コンピューター４１０は、他のリムーバブル／非リムーバブルな揮発性／不揮発性コンピューター記憶媒体も含むことができる。単なる例示として、図１１は、非リムーバブルな不揮発性磁気媒体に対して読み出し又は書き込みを行うハードディスクドライブ４４１、リムーバブルな不揮発性の磁気ディスク４５２に対して読み出し又は書き込みを行う磁気ディスクドライブ４５１、及びＣＤ  ＲＯＭ又は他の光媒体等のリムーバブルな不揮発性の光ディスク４５６に対して読み出し又は書き込みを行う光ディスクドライブ４５５を示している。例示的な動作環境において用いることができる他のリムーバブル／非リムーバブルな揮発性／不揮発性コンピューター記憶媒体は、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等を含むが、これらに限定されない。ハードディスクドライブ４４１は通常、インターフェース４４０等の非リムーバブルメモリインターフェースを介してシステムバス４２１に接続され、磁気ディスクドライブ４５１及び光ディスクドライブ４５５は通常、インターフェース４５０等のリムーバブルメモリインターフェースによってシステムバス４２１に接続される。
【００９６】
[098]上述し図１１に示したドライブ及びその関連するコンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール及び他のデータのストレージをコンピューター４１０に提供する。図１１において、例えば、ハードディスクドライブ４４１は、オペレーティングシステム４４４、アプリケーションプログラム４４５、他のプログラムモジュール４４６、及びプログラムデータ４４７を記憶するものとして示されている。これらの構成要素は、オペレーティングシステム４３４、アプリケーションプログラム４３５、他のプログラムモジュール４３６、及びプログラムデータ４３７と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム４４４、アプリケーションプログラム４４５、他のプログラムモジュール４４６、及びプログラムデータ４４７は、ここでは、少なくとも異なるコピーであることを示すために異なる符号を付している。ユーザーは、キーボード４６２、及び一般にマウス、トラックボール又はタッチパッドと呼ばれるポインティングデバイス４６１等の入力デバイスを介してコマンド及び情報をコンピューター４１０に入力することができる。他の入力デバイス（図示せず）として、マイク、ジョイスティック、ゲームパッド、衛星用アンテナ、スキャナ等を含むことができる。これら及び他の入力デバイスは多くの場合、システムバス４２１に結合されたユーザー入力インタフェース４６０を介して処理ユニット４２０に接続されるが、パラレルポート、ゲームポート又はユニバーサルシリアルバス（ＵＳＢ）等の他のインタフェース構造及びバス構造によっても接続することができる。上述したモニター４９３又は他のタイプのディスプレイデバイスも、ビデオインタフェース４９０等のインタフェースを介してシステムバス４２１に接続される。モニター１２０に加えて、コンピュータ
ー４１０は、出力周辺機器インタフェース４９５を介して接続することができるスピーカー４９７及びプリンター４９６等の他の周辺出力デバイスも含むことができる。
【００９７】
[099]コンピューター４１０は、リモートコンピューター４８０等の１つ又は複数のリモートコンピューターへの論理接続を用いたネットワーク接続環境で動作することができる。リモートコンピューター４８０は、パーソナルコンピューター、サーバー、ルーター、ネットワークＰＣ、ピアデバイス又は他の一般的なネットワークノードとすることができ、図１１にはメモリストレージデバイス４８１のみを示しているが、通常、コンピューター４１０に関して上述した要素の多く又は全てを含む。図１１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）４７１及びワイドエリアネットワーク（ＷＡＮ）４７３を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、オフィス、企業全体のコンピューターネットワーク、イントラネット及びインターネットで一般的なものである。
【００９８】
[0100]ＬＡＮネットワーク環境で用いる場合、コンピューター４１０は、ネットワークインタフェース又はネットワークアダプタ４７０（インターフェース１２６等）を介してＬＡＮ４７１に接続される。ＷＡＮネットワーク環境で用いる場合、コンピューター４１０は通常、インターネット等のＷＡＮ４７３を介した通信を確立するためのモデム４７２又は他の手段を含む。内部又は外部とすることができるモデム４７２は、ユーザー入力インタフェース４６０又は他の適切なメカニズムを介してシステムバス４２１に接続することができる。ネットワーク接続環境において、コンピューター４１０と関連して示されるプログラムモジュール又はその一部は、リモートメモリ記憶デバイスに記憶することができる。非限定的な例として、図１１は、リモートアプリケーションプログラム４８５をメモリデバイス４８１に常住するものとして示している。図示したネットワーク接続は例示的なものであり、コンピューター間の通信リンクを確立する他の手段を用いることができることが理解されるであろう。
【００９９】
[0101]本システムの上記の詳細な説明は、例示及び説明の目的で提示されてきた。この詳細な説明は、包括的であることも、本システムを開示された正確な形態に限定することも意図されていない。上記の教示に鑑みて多くの変更形態及び変形形態が可能である。説明された実施形態は、本システム及びその実際の応用の原理を最も良好に説明し、それによって当業者が様々な実施形態において、かつ意図される特定の使用に適した様々な変更形態を用いて本システムを最も良好に利用することを可能にするために選択された。本発明の範囲は本明細書に添付された特許請求の範囲によって規定されることが意図される。
【図１】
0005612676.tif 000007
【図２】
0005612676.tif 000008
【図３Ａ】
0005612676.tif 000009
【図３Ｂ】
0005612676.tif 000010
【図３Ｃ】
0005612676.tif 000011
【図４】
0005612676.tif 000012
【図５Ａ】
0005612676.tif 000013
【図５Ｂ】
0005612676.tif 000014
【図５Ｃ】
0005612676.tif 000015
【図６Ａ】
0005612676.tif 000016
【図６Ｂ】
0005612676.tif 000017
【図６Ｃ】
0005612676.tif 000018
【図７】
0005612676.tif 000019
【図８】
0005612676.tif 000020
【図９】
0005612676.tif 000021
【図１０】
0005612676.tif 000022
【図１１】
0005612676.tif 000023