(57)【要約】【課題】自動的に代替コンテンツに置き換えることができる。【解決手段】自身の代替を行うか、木構造上１つ上の親ノードを代替するかを示す制御情報をもつコンテンツおよび子ノードスクリプトを、少なくとも１つ含むスクリプトを複数格納する第１格納手段１０１と、親ノードスクリプトを解析し、必要に応じ子ノードスクリプトを取得してさらに解析する解析手段１０２と、コンテンツを取得しようとする第１取得手段１０３と、必要に応じて代替コンテンツを検索する検索手段１０４と、必要に応じ代替子ノードスクリプトまたは代替親ノードスクリプトを検索する検索手段１０７と、検索した代替コンテンツを取得する第２取得手段１０５と、検索した代替スクリプトを取得する第３取得手段１０８と、取得した代替コンテンツ、代替子ノードスクリプトおよび代替親ノードスクリプトの少なくとも１つを変更した変更スクリプトを得る変更手段１１０と、を具備する。【選択図】図１
2010176489.tif 000002
【特許請求の範囲】
【請求項１】
木構造を構成するスクリプトであって子ノードである子ノードスクリプトの取得に失敗した場合に該子ノードスクリプトの代替となる代替子ノードスクリプトを検索するか否かを示す第１スクリプト制御情報、および、該子ノードスクリプトの木構造上１つ上のノードの親ノードスクリプトの代替である第１代替親ノードスクリプトを検索するか否かを示す第２スクリプト制御情報を含む、該子ノードスクリプトへのリンクを示す第１子ノードスクリプトと、
コンテンツの取得に失敗した場合に代替となる代替コンテンツを検索するか否かを示す第１コンテンツ制御情報、および、該コンテンツの木構造上１つ上のノードの親ノードスクリプトの代替である第２代替親ノードスクリプトを検索するか否かを示す第２コンテンツ制御情報を含む、該コンテンツへのリンクを示す第１コンテンツと、を使用する情報処理装置であって、
前記木構造を構成するスクリプトを複数格納する第１格納手段と、
前記第１格納手段が格納している複数のスクリプトの中から１つのスクリプトを親ノードスクリプトとして選択し、該親ノードスクリプトの子ノードの１つであり子ノードスクリプトへのリンクである第２子ノードスクリプトに含まれる、第１スクリプト制御情報および第２スクリプト制御情報を参照してそれぞれ検索するか否かを解析し、該親ノードスクリプトの子ノードの１つでありコンテンツへのリンクである第２コンテンツに含まれる、第１コンテンツ制御情報および第２コンテンツ制御情報を参照してそれぞれ検索するか否かを解析し、前記第２子ノードスクリプトに示されているリンクにある第３子ノードスクリプトがあれば取得して、取得した第３子ノードスクリプトについてさらに解析をおこなうスクリプト解析手段と、
前記第２コンテンツに示されているリンクにある第３コンテンツがあれば取得するコンテンツ取得手段と、
前記第３コンテンツの取得に失敗して、前記第２コンテンツの第１コンテンツ制御情報が代替コンテンツを検索することを示すと解析した場合は該代替コンテンツを検索する代替コンテンツ検索手段と、
前記第３子ノードスクリプトの取得に失敗して、前記第２子ノードスクリプトの第１スクリプト制御情報が代替子ノードスクリプトを検索することを示すと解析した場合は該代替子ノードスクリプトを検索し、前記第２コンテンツの第２コンテンツ制御情報および前記第２子ノードスクリプトの第２スクリプト制御情報のいずれか一方が代替親ノードスクリプトを検索することを示す場合は代替親ノードスクリプトを検索する代替スクリプト検索手段と、
代替コンテンツが見つかった場合は該代替コンテンツを取得する代替コンテンツ取得手段と、
代替子ノードスクリプトおよび代替親ノードスクリプトが見つかった場合は、それぞれ該代替子ノードスクリプトおよび該代替親ノードスクリプトを取得する代替スクリプト取得手段と、
前記代替コンテンツの保存場所を示す第１代替コンテンツを前記第２コンテンツに反映するか、代替子ノードスクリプトへのリンクを示す第１代替子ノードスクリプトを前記第２子ノードスクリプトに反映するか、および、代替親ノードスクリプトを前記親ノードスクリプトに反映するか、の少なくとも１つを変更した変更スクリプトを得る変更手段と、を具備することを特徴とする情報処理装置。
【請求項２】
前記親ノードスクリプトは、前記コンテンツおよび前記子ノードスクリプトの少なくとも１つから構成される親ノードであって、該コンテンツおよび該子ノードスクリプトの木構造上１つ上の親ノードであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
第１コンテンツサーバおよび該第１コンテンツサーバとは含むコンテンツが異なる第２コンテンツサーバ、スクリプトサーバ、外部サーバと接続している情報処理装置であって、
コンテンツキャッシュをさらに具備し、
前記コンテンツ取得手段は、前記第３コンテンツを前記第１コンテンツサーバから取得し、
前記スクリプト解析手段は、前記第３子ノードスクリプトを前記第１格納手段から取得し、
前記代替コンテンツ検索手段は、前記代替コンテンツを前記外部サーバおよび前記コンテンツキャッシュから検索し、
前記代替スクリプト検索手段は、前記代替子ノードスクリプトおよび前記代替親ノードスクリプトを該外部サーバおよび前記第１格納手段から検索し、
前記代替コンテンツ取得手段は、前記代替コンテンツを前記第２コンテンツサーバから取得し、
前記代替スクリプト取得手段は、前記代替子ノードスクリプトおよび前記代替親ノードスクリプトをそれぞれ前記スクリプトサーバおよび前記第１格納手段から取得することを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記スクリプト解析手段は、スクリプト内に新たなスクリプトが含まれる場合は該新たなスクリプトがさらに新たなスクリプトを含むか否かを解析する第１手順と、スクリプト内に新たなスクリプトを含まない場合は１つ上の親ノードであるスクリプトに戻り、該スクリプト内にさらに新たなスクリプトを含むか否かを解析する第２手順とを有し、
前記第１手順と前記第２手順を前記第３子ノードスクリプトに適用することを特徴とする請求項１または請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第３コンテンツおよび前記第３子ノードスクリプトのそれぞれの取得に成功したか否かを示す複数の第１フラグと、前記第３コンテンツおよび前記第３子ノードスクリプトのそれぞれの代替が少なくとも１つ以上あったか否かを示す複数の第２フラグと、前記第２コンテンツの第２コンテンツ制御情報および前記第２子ノードスクリプトの第２スクリプト制御情報のいずれかにより前記親ノードスクリプトそのものの代替をおこなうかを示す複数の第３フラグとを格納する第２格納手段をさらに具備し、
前記代替スクリプト検索手段は、前記第３コンテンツおよび前記第３子ノードスクリプトのいずれか１つが前記第３フラグを満たす場合は、前記親ノードスクリプトの代替親ノードスクリプトを検索することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記変更手段は、前記変更スクリプトを前記第１格納手段へ格納することを特徴とする請求項１から請求項４のいずれか１項に記載の情報処理装置。
【請求項７】
前記第３コンテンツの取得に失敗することは、前記第１コンテンツサーバが一時的または恒久的に該第３コンテンツを提供しないか、該第３コンテンツの利用条件が変更され前記コンテンツの保存場所にある該第３コンテンツを利用できないかであることを特徴とする請求項１から請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
木構造を構成するスクリプトであって子ノードである子ノードスクリプトの取得に失敗した場合に該子ノードスクリプトの代替となる代替子ノードスクリプトを検索するか否かを示す第１スクリプト制御情報、および、該子ノードスクリプトの木構造上１つ上のノードの親ノードスクリプトの代替である第１代替親ノードスクリプトを検索するか否かを示す第２スクリプト制御情報を含む、該子ノードスクリプトへのリンクを示す第１子ノードスクリプトと、
コンテンツの取得に失敗した場合に代替となる代替コンテンツを検索するか否かを示す第１コンテンツ制御情報、および、該コンテンツの木構造上１つ上のノードの親ノードスクリプトの代替である第２代替親ノードスクリプトを検索するか否かを示す第２コンテンツ制御情報を含む、該コンテンツへのリンクを示す第１コンテンツと、を使用する情報処理方法であって、
前記木構造を構成するスクリプトを複数格納する第１格納手段を用意し、
前記第１格納手段が格納している複数のスクリプトの中から１つのスクリプトを親ノードスクリプトとして選択し、該親ノードスクリプトの子ノードの１つであり子ノードスクリプトへのリンクである第２子ノードスクリプトに含まれる、第１スクリプト制御情報および第２スクリプト制御情報を参照してそれぞれ検索するか否かを解析し、該親ノードスクリプトの子ノードの１つでありコンテンツへのリンクである第２コンテンツに含まれる、第１コンテンツ制御情報および第２コンテンツ制御情報を参照してそれぞれ検索するか否かを解析し、前記第２子ノードスクリプトに示されているリンクにある第３子ノードスクリプトがあれば取得して、取得した第３子ノードスクリプトについてさらに解析し、
前記第２コンテンツに示されているリンクにある第３コンテンツがあれば取得し、
前記第３コンテンツの取得に失敗して、前記第２コンテンツの第１コンテンツ制御情報が代替コンテンツを検索することを示すと解析した場合は該代替コンテンツを検索し、
前記第３子ノードスクリプトの取得に失敗して、前記第２子ノードスクリプトの第１スクリプト制御情報が代替子ノードスクリプトを検索することを示すと解析した場合は該代替子ノードスクリプトを検索し、前記第２コンテンツの第２コンテンツ制御情報および前記第２子ノードスクリプトの第２スクリプト制御情報のいずれか一方が代替親ノードスクリプトを検索することを示す場合は代替親ノードスクリプトを検索し、
代替コンテンツが見つかった場合は該代替コンテンツを取得し、
代替子ノードスクリプトおよび代替親ノードスクリプトが見つかった場合は、それぞれ該代替子ノードスクリプトおよび該代替親ノードスクリプトを取得し、
前記代替コンテンツの保存場所を示す第１代替コンテンツを前記第２コンテンツに反映するか、代替子ノードスクリプトへのリンクを示す第１代替子ノードスクリプトを前記第２子ノードスクリプトに反映するか、および、代替親ノードスクリプトを前記親ノードスクリプトに反映するか、の少なくとも１つを変更した変更スクリプトを得ることを特徴とする情報処理方法。
【請求項９】
木構造を構成するスクリプトであって子ノードである子ノードスクリプトの取得に失敗した場合に該子ノードスクリプトの代替となる代替子ノードスクリプトを検索するか否かを示す第１スクリプト制御情報、および、該子ノードスクリプトの木構造上１つ上のノードの親ノードスクリプトの代替である第１代替親ノードスクリプトを検索するか否かを示す第２スクリプト制御情報を含む、該子ノードスクリプトへのリンクを示す第１子ノードスクリプトと、
コンテンツの取得に失敗した場合に代替となる代替コンテンツを検索するか否かを示す第１コンテンツ制御情報、および、該コンテンツの木構造上１つ上のノードの親ノードスクリプトの代替である第２代替親ノードスクリプトを検索するか否かを示す第２コンテンツ制御情報を含む、該コンテンツへのリンクを示す第１コンテンツと、を使用する情報処理プログラムであって、
コンピュータを、
前記木構造を構成するスクリプトを複数格納する第１格納手段と、
前記第１格納手段が格納している複数のスクリプトの中から１つのスクリプトを親ノードスクリプトとして選択し、該親ノードスクリプトの子ノードの１つであり子ノードスクリプトへのリンクである第２子ノードスクリプトに含まれる、第１スクリプト制御情報および第２スクリプト制御情報を参照してそれぞれ検索するか否かを解析し、該親ノードスクリプトの子ノードの１つでありコンテンツへのリンクである第２コンテンツに含まれる、第１コンテンツ制御情報および第２コンテンツ制御情報を参照してそれぞれ検索するか否かを解析し、前記第２子ノードスクリプトに示されているリンクにある第３子ノードスクリプトがあれば取得して、取得した第３子ノードスクリプトについてさらに解析をおこなうスクリプト解析手段と、
前記第２コンテンツに示されているリンクにある第３コンテンツがあれば取得するコンテンツ取得手段と、
前記第３コンテンツの取得に失敗して、前記第２コンテンツの第１コンテンツ制御情報が代替コンテンツを検索することを示すと解析した場合は該代替コンテンツを検索する代替コンテンツ検索手段と、
前記第３子ノードスクリプトの取得に失敗して、前記第２子ノードスクリプトの第１スクリプト制御情報が代替子ノードスクリプトを検索することを示すと解析した場合は該代替子ノードスクリプトを検索し、前記第２コンテンツの第２コンテンツ制御情報および前記第２子ノードスクリプトの第２スクリプト制御情報のいずれか一方が代替親ノードスクリプトを検索することを示す場合は代替親ノードスクリプトを検索する代替スクリプト検索手段と、
代替コンテンツが見つかった場合は該代替コンテンツを取得する代替コンテンツ取得手段と、
代替子ノードスクリプトおよび代替親ノードスクリプトが見つかった場合は、それぞれ該代替子ノードスクリプトおよび該代替親ノードスクリプトを取得する代替スクリプト取得手段と、
前記代替コンテンツの保存場所を示す第１代替コンテンツを前記第２コンテンツに反映するか、代替子ノードスクリプトへのリンクを示す第１代替子ノードスクリプトを前記第２子ノードスクリプトに反映するか、および、代替親ノードスクリプトを前記親ノードスクリプトに反映するか、の少なくとも１つを変更した変更スクリプトを得る変更手段として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンテンツを組み合わせて出力する情報処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
実質的に同様のメディアコンテンツを有する複数のメディアファイルから、再生特性に応じて再生ファイルを自動選択するシステムが存在する。一方、履歴やメタデータを利用してコンテンツを自動推薦する技術はＤＶＤレコーダーなどの製品にも搭載されており、既存技術となっている。ただし、これらはメディアファイルやコンテンツが取得不可能になった場合を想定したものではなく、既に取得済の複数のコンテンツをどのように活用するか、という点に着目したものであった（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１５２２５９公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数の権利者のサービス・コンテンツをあるスクリプトに従って組み合わせて表示する機器においては、コンテンツの内容の一部分だけが突然利用できなくなる可能性がある。原因としてはコンテンツ提供者がサービス提供を一時的もしくは恒久的に中止した、コンテンツの利用条件（例えば契約内容や利用料金など）が変更になり利用できなくなった、などが考えられる。また、スクリプトとコンテンツの提供者が異なるとき、スクリプト提供者はコンテンツが利用できなくなることを事前に把握できない、という問題がある。
【０００５】
しかしながら、上記した従来の技術ではコンテンツの管理者と再生するコンテンツの決定者および推薦者は同一と考えられている。つまり、再生時、コンテンツの取得状況は自明と言えるため、再生時にコンテンツの取得が不可能になった場合のことは想定していない。
【０００６】
本発明は、上記の課題を解決するためになされたものであり、複数の権利者から取得したコンテンツをさらに別の権利者またはユーザが作成したスクリプトにしたがい組み合わせて情報を出力するシステムにおいて、一部のコンテンツが利用不可能になった場合に、自動的に代替となるコンテンツに置き換えるための情報処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明に係る情報処理装置は、木構造を構成するスクリプトであって子ノードである子ノードスクリプトの取得に失敗した場合に該子ノードスクリプトの代替となる代替子ノードスクリプトを検索するか否かを示す第１スクリプト制御情報、および、該子ノードスクリプトの木構造上１つ上のノードの親ノードスクリプトの代替である第１代替親ノードスクリプトを検索するか否かを示す第２スクリプト制御情報を含む、該子ノードスクリプトへのリンクを示す第１子ノードスクリプトと、コンテンツの取得に失敗した場合に代替となる代替コンテンツを検索するか否かを示す第１コンテンツ制御情報、および、該コンテンツの木構造上１つ上のノードの親ノードスクリプトの代替である第２代替親ノードスクリプトを検索するか否かを示す第２コンテンツ制御情報を含む、該コンテンツへのリンクを示す第１コンテンツと、を使用する情報処理装置であって、前記木構造を構成するスクリプトを複数格納する第１格納手段と、前記第１格納手段が格納している複数のスクリプトの中から１つのスクリプトを親ノードスクリプトとして選択し、該親ノードスクリプトの子ノードの１つであり子ノードスクリプトへのリンクである第２子ノードスクリプトに含まれる、第１スクリプト制御情報および第２スクリプト制御情報を参照してそれぞれ検索するか否かを解析し、該親ノードスクリプトの子ノードの１つでありコンテンツへのリンクである第２コンテンツに含まれる、第１コンテンツ制御情報および第２コンテンツ制御情報を参照してそれぞれ検索するか否かを解析し、前記第２子ノードスクリプトに示されているリンクにある第３子ノードスクリプトがあれば取得して、取得した第３子ノードスクリプトについてさらに解析をおこなうスクリプト解析手段と、前記第２コンテンツに示されているリンクにある第３コンテンツがあれば取得するコンテンツ取得手段と、前記第３コンテンツの取得に失敗して、前記第２コンテンツの第１コンテンツ制御情報が代替コンテンツを検索することを示すと解析した場合は該代替コンテンツを検索する代替コンテンツ検索手段と、前記第３子ノードスクリプトの取得に失敗して、前記第２子ノードスクリプトの第１スクリプト制御情報が代替子ノードスクリプトを検索することを示すと解析した場合は該代替子ノードスクリプトを検索し、前記第２コンテンツの第２コンテンツ制御情報および前記第２子ノードスクリプトの第２スクリプト制御情報のいずれか一方が代替親ノードスクリプトを検索することを示す場合は代替親ノードスクリプトを検索する代替スクリプト検索手段と、代替コンテンツが見つかった場合は該代替コンテンツを取得する代替コンテンツ取得手段と、代替子ノードスクリプトおよび代替親ノードスクリプトが見つかった場合は、それぞれ該代替子ノードスクリプトおよび該代替親ノードスクリプトを取得する代替スクリプト取得手段と、前記代替コンテンツの保存場所を示す第１代替コンテンツを前記第２コンテンツに反映するか、代替子ノードスクリプトへのリンクを示す第１代替子ノードスクリプトを前記第２子ノードスクリプトに反映するか、および、代替親ノードスクリプトを前記親ノードスクリプトに反映するか、の少なくとも１つを変更した変更スクリプトを得る変更手段と、を具備することを特徴とする。
【発明の効果】
【０００８】
本発明の情報処理装置、方法及びプログラムによれば、一部のコンテンツが利用不可能になった場合に自動的に代替となるコンテンツに置き換えることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る情報処理装置のブロック図。
【図２】スクリプトの構成を示す図。
【図３】スクリプトの木構造を示す図。
【図４】スクリプトのＸＭＬでの記述例を示す図。
【図５】スクリプトのＸＭＬでの記述例の別例を示す図。
【図６】本実施形態に係る情報処理装置の動作を示すフローチャート。
【図７】代替コンテンツ検索部および代替コンテンツ取得部の動作を示すフローチャート。
【図８】代替スクリプト検索部および代替スクリプト取得部の動作を示すフローチャート。
【図９】コンテンツの代替における代替をおこなう前の状態の一例を示す図。
【図１０】コンテンツの代替のスクリプト記述例を示す図。
【図１１】コンテンツの代替における代替をおこなった後の状態の一例を示す図。
【図１２】代替スクリプトの代替をおこなう前の状態の一例を示す図。
【図１３】代替スクリプトのスクリプト記述例を示す図。
【図１４】代替スクリプトのスクリプト記述例の別例を示す図。
【図１５】代替スクリプトの代替をおこなった後の状態の一例を示す図。
【図１６】スクリプトの変更をおこなう前の状態の一例を示す図。
【図１７】スクリプトの変更をおこなう際のスクリプト記述例を示す図。
【図１８】スクリプトの変更をおこなった後の状態の一例を示す図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の実施形態に係る情報処理装置、方法及びプログラムについて詳細に説明する。なお、以下の実施形態では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。  
（実施形態）  
本発明の本実施形態に係る情報処理装置について図１を参照して説明する。本実施形態に係る情報処理装置は、端末に載せることを前提としているが、サーバにあってもよい。  
本実施形態に係る情報処理装置１００は、スクリプトストレージ部１０１、スクリプト解析部１０２、コンテンツ取得部１０３、代替コンテンツ検索部１０４、代替コンテンツ取得部１０５、スクリプトフラグチェック部１０６、代替スクリプト検索部１０７、代替スクリプト取得部１０８、フラグ格納部１０９、スクリプト変更部１１０、コンテンツキャッシュ部１１１を含む。  
スクリプトストレージ部１０１は、複数のスクリプトを格納している。スクリプトはウェブ上のスクリプト提供者からの受信、情報処理装置１００の利用者による作成や情報処理装置１００内での自動生成などの方法で作成され、プレイリスト、メタデータなどを含んでいる。スクリプトについては、後に図２、図４を参照して詳細に説明する。またスクリプトストレージ部は、スクリプト解析部１０２と代替スクリプト取得部１０８へスクリプトを送る。  
スクリプト解析部１０２は、スクリプトストレージ部１０１からあるスクリプトを読み出し、これを親ノードスクリプト（または親スクリプトとも呼ぶ）としてスクリプトの解析をおこなう。親ノードスクリプトは、このスクリプトがもつプレイリスト中にさらにスクリプトを含む場合をいう。この親ノードスクリプトに含まれているスクリプトを子ノードスクリプト（または子スクリプトとも呼ぶ）と呼ぶ。プレイリストがコンテンツを含むものであれば、コンテンツ取得部１０３に送り、プレイリストがスクリプトを含むものであれば、スクリプトストレージ部１０１から対応するスクリプトを取得する。また、プレイリスト中のコンテンツや子ノードスクリプトがもつフラグをフラグ格納部１０９へ送る。フラグは、取得に成功したか、あるいは代替となるものを取得したか等の条件を示すものであり、後に詳細に説明する。またスクリプト解析部１０２は、スクリプトの処理が全て終わった場合は、スクリプト変更部１１０から受け取ったスクリプトを外部へ出力する。
【００１１】
コンテンツ取得部１０３は、スクリプト解析部１０２からスクリプトを受け取り、外部のコンテンツ提供者Ａ１５０およびコンテンツ提供者Ｂ１５１からコンテンツの取得をおこなう。コンテンツの取得に成功した場合または親ノードスクリプトそのものの代替が必要である場合は、スクリプト解析部１０２に送る。コンテンツの取得に失敗した場合は、代替コンテンツ検索部１０４へ送る。コンテンツの取得に失敗した場合とは、例えばコンテンツの提供者が一時的または恒久的に中止した、またはコンテンツの利用条件（例えばユーザの契約内容や利用料金など）が変更され、コンテンツ提供者からのコンテンツを利用できない場合などがある。  
代替コンテンツ検索部１０４は、代替コンテンツの検索をおこなう。代替コンテンツは、はじめの親ノードスクリプトで指定されたコンテンツの同様またはそれに類似した情報内容を含むコンテンツである。代替コンテンツの検索は、コンテンツキャッシュ部１１１や外部にある照合情報保持サーバ１５３を参照して検索をおこなう。検索によって代替コンテンツが見つかった場合は、検索結果を代替コンテンツ取得部１０５へ送る。  
代替コンテンツ取得部１０５は、代替コンテンツ検索部１０４から受け取った検索結果をもとに、代替コンテンツを外部にある代替コンテンツ提供者１５２から取得する。代替コンテンツの取得に成功した場合、フラグをフラグ格納部１０９へ送り、取得内容をスクリプト変更部１１０へ送る。  
スクリプトフラグチェック部１０６は、スクリプト解析部１０２から受け取ったプレイリストに含まれるフラグのチェックをおこなう。チェックを終えてスクリプト（親ノードスクリプトまたは子ノードスクリプト）の代替が必要でない場合は、スクリプト解析部１０２へ送る。スクリプトの代替が必要である場合、代替スクリプト検索部１０７へ進む。
【００１２】
代替スクリプト検索部１０７は、子ノードスクリプトの代替をおこなう場合または親ノードスクリプトの代替をおこなう場合に、代替スクリプトの検索をおこなう。代替スクリプトの検索は、外部の照合情報保持サーバ１５３やスクリプトストレージ部１０１からおこなう。検索によって代替となるスクリプトが見つかった場合には、検索結果を代替スクリプト取得部１０８へ送る。
【００１３】
代替スクリプト取得部１０８は、代替スクリプト検索部１０７から受け取った検索結果をもとに、代替スクリプトを外部にある代替スクリプト提供サーバ１５４またはスクリプトストレージ部１０１から取得する。代替スクリプトの取得に成功した場合、フラグをフラグ格納部１０９へ送り、取得内容をスクリプト変更部１１０へ送る。  
フラグ格納部１０９は、各コンテンツや各スクリプトが持つフラグの値を格納し、必要に応じてスクリプト変更部１１０へ送る。  
スクリプト変更部１１０は、フラグ格納部１０９から受け取ったフラグの値に応じて、プレイリスト全体のフラグについてマージ処理を行う。マージ処理した結果によりスクリプトの変更を行う必要がある場合は、子ノードスクリプトまたは親ノードスクリプトのプレイリストを書き換える。またスクリプト変更部１１０は、書き換えたこれらのスクリプトをスクリプト解析部１０２へ送る。  
コンテンツキャッシュ部１１１は、代替となるコンテンツのキャッシュを記録してあり、外部から取得したコンテンツのキャッシュについても更新して記録する。
【００１４】
次に、スクリプトについて図２、図３を参照しながら説明する。スクリプト２００は、プレイリスト２１０とメタデータ２２０を含む。  
プレイリスト２１０は、サービス・コンテンツの表示順を示しており、例えばどのコンテンツを表示させるかを示す。プレイリスト２１０に並べられた順にコンテンツを取得する。子ノードスクリプトへのリンクと制御情報２１１、コンテンツへのリンクと制御情報２１２を少なくとも１つ以上含む。つまりスクリプト２００は、複数のスクリプトを木構造で構成して構造化することができるようになっている。子ノードスクリプトへのリンクと制御情報２１１は、スクリプトの木構造のリンクを表現するためと、子ノードスクリプトに対する制御情報を記述するためのものである。  
木構造で構造化した一例を図３を参照して説明する。スクリプト３０１を基となる親ノードスクリプト（ルート；根ノードとも呼ぶ）とすれば、スクリプト３０１のプレイリスト中に、スクリプト３０２、３０３へのリンクがあり、これが子ノードスクリプトとなる。スクリプト３０３のプレイリスト中には、さらに次の子ノードスクリプトとなるスクリプト３０４へのリンクがなされている。スクリプト３０４から見れば、スクリプト３０３は親ノードスクリプトとなる。このように複数のスクリプトを入れ子状態で組み合わせて用いることができる。
【００１５】
また、コンテンツへのリンクと制御情報２１２は、図１のコンテンツ提供者Ａ１５０やコンテンツ提供者Ｂ１５１などのコンテンツの提供者に対するリンク情報と、コンテンツへのリンクが指し示すコンテンツに対する制御情報を記述するためのものである。  
メタデータ２２０は、名前、作成者、ジャンル、キーワード、権利者情報、説明文などを含む属性情報を記述するためのものであり、スクリプト２００自身の属性情報を記述するスクリプト自身のメタデータ２２１と、プレイリスト２２０でリンクされた子ノードスクリプトやコンテンツのメタデータを記述するプレイリスト中の子ノードスクリプトおよびコンテンツのメタデータ２２２を含む。
【００１６】
このスクリプト２００をＸＭＬ（Extensible Markup Language）形式で記述した一例を図４および図５に示す。  
図４は「朝のニュース情報」という名前のスクリプトであり、その内容は“ｄａｉｌｙ＿ｎｅｗｓ”という子ノードスクリプトと、“ｍａｒｕｍａｒｕ＿ｗｅａｔｈｅｒ”という子ノードスクリプトと、“ｓｐｏｒｔｓ＿ｎｅｗｓ”という子ノードスクリプトによって構成されている。  
図４のスクリプト中の子ノードスクリプトのうち、“ｍａｒｕｍａｒｕ＿ｗｅａｔｈｅｒ”スクリプトの記述例が図５である。“ｍａｒｕｍａｒｕ＿ｗｅａｔｈｅｒ”スクリプトは、“ｋｙｏｕａｓｕ＿ｗｅａｔｈｅｒ”という子ノードスクリプトと、“ｏｔｅｎｋｉ．ｊｐ／ｗｅｅｋｌｙ”というコンテンツと、“ａｍｅｄｅｒｕ．ｊｐ／”というコンテンツと、“ｔｙｐｈｏｏｎ．ｊｐ／”というコンテンツによって構成される。  
それぞれの子ノードスクリプトにおいて、＜ｓｃｒｉｐｔｍｅｔａ＞タグで囲まれた部分がスクリプト自身のメタデータ２２１、＜ｐｌａｙｌｉｓｔ＞タグで囲まれた部分がプレイリスト２１０、その子エレメントのうち、＜ｓｕｂｓｃｒｉｐｔ＞タグで囲まれた部分が子ノードスクリプトへのリンクと制御情報２１１、＜ｃｏｎｔｅｎｔ＞タグで囲まれた部分がコンテンツへのリンクと制御情報２１２となる。
【００１７】
＜ｓｕｂｓｃｒｉｐｔ＞タグおよび＜ｃｏｎｔｅｎｔ＞タグの子エレメントのうち＜ｍｅｔａ＞タグで囲まれた部分がプレイリスト中の子ノードスクリプトおよびコンテンツのメタデータ２２２である。  
＜ｓｕｂｓｃｒｉｐｔ＞タグの属性“ｉｄ”が子ノードスクリプトへのリンクで、子ノードとなるスクリプトの判別は＜ｓｃｒｉｐｔ＞タグの属性“ｉｄ”とのマッチングにより行われる。＜ｃｏｎｔｅｎｔ＞タグの属性“ｕｒｌ”はコンテンツへのリンクである。
【００１８】
＜ｓｕｂｓｃｒｉｐｔ＞タグおよび＜ｃｏｎｔｅｎｔ＞タグの子エレメントのうち＜ｃｏｎｔｒｏｌ＞タグに書かれている部分が制御情報にあたる。制御情報として、図４および図５の例では以下の２つを記述している。  
制御情報１：取得に失敗したときに置き換えを行うかどうか  
制御情報２：取得および代替に失敗したときに、呼び出し元の親ノードスクリプトそのもの代替を行うかどうか  
この２つの制御情報について、制御情報１は、＜ｃｏｎｔｒｏｌ＞タグの子エレメントである＜ａｌｔｅｒｎａｔｅ＞タグに‘ｙｅｓ’または‘ｎｏ’で記述している。‘ｙｅｓ’の場合はコンテンツおよびスクリプトの取得に失敗ときに代替による置き換えを行い、‘ｎｏ’の場合は代替による置き換えを行わない。制御情報２は＜ｃｏｎｔｅｎｔ＞タグの子エレメントである＜ｍａｎｄａｔｏｒｙ＞タグに‘ｙｅｓ’または‘ｎｏ’で記述し、‘ｙｅｓ’の場合はコンテンツおよびスクリプトの取得および代替の取得に失敗したときに、現在注目しているスクリプトより１つ上の階層のノードである親ノードスクリプトそのものの代替を行い、‘ｎｏ’の場合はその代替を行わない、とする。  
以後の説明では、＜ｓｕｂｓｃｒｉｐｔ＞タグもしくは＜ｃｏｎｔｅｎｔ＞タグで囲まれたひとかたまりをプレイリスト中の１件と定義して説明を進めていくものとする。  
プレイリストの再生順については、上から記述された順に処理することを基本とするが、スクリプトは繰り返しや分岐、入れ子などの制御構造を持った文法としても良い。
【００１９】
＜コンテンツ収集処理＞  
次に、スクリプトストレージ部１０１から、あるスクリプトを読み出して処理をおこなう手順を図４から図８を参照して詳細に説明する。  
なお、スクリプトの処理ではプレイリストの１件ごとに以下の３つのフラグを用意して処理を進める。なお、フラグは初期ではすべて「ＯＦＦ」になっているものとする。各フラグの「ＯＮ」となる条件を以下に示す。  
フラグ１：「取得成功」コンテンツまたは子ノードスクリプトの取得に成功したら「ＯＮ」  
フラグ２：「代替を取得」コンテンツまたは子ノードスクリプトの取得には失敗したが、代替コンテンツまたは代替子ノードスクリプトの検索または取得には成功したら「ＯＮ」  
フラグ３：「親ノードスクリプトそのものの代替」コンテンツまたは子ノードスクリプトの取得および代替の両方に失敗し、さらに制御情報２が‘ｙｅｓ’であった場合に「ＯＮ」  
なお、コンテンツの取得状況については、＜ｃｏｎｔｅｎｔ＞タグの属性“ｕｒｌ”から必要な情報が取得できたかによって決定する。
【００２０】
ここで、スクリプトの読込みからスクリプトの書き換えまでの動作を図６のフローチャートを参照しながら詳細に説明する。  
はじめに、スクリプト解析部１０２は、スクリプトストレージ部１０１からあるスクリプトを、はじめに親ノードスクリプトとして読み出す（Ｓ６０１）。次に、読み込んだ親ノードスクリプトのプレイリストのうち、最初に書かれている１件を読み込む（Ｓ６０２）。そして、読み込んだ１件の内容がコンテンツであるか、子ノードスクリプトであるかを判定する（Ｓ６０３）。読み込んだ１件がコンテンツである場合には、コンテンツ取得部１０３において「コンテンツ取得」処理を行う（Ｓ６０４）。  
Ｓ６０５において、コンテンツの取得に成功した場合には、処理をスクリプト解析部１０２に戻し、プレイリストの処理中の１件についてについてフラグ１「取得成功」を「ＯＮ」にする。そしてプレイリストの次の１件の取得を試みるためＳ６１１へ移り、プレイリストに次の１件があるかどうかを判定する。次の１件がある場合はＳ６０２へ戻り再び処理を進める。次の１件がない場合は、Ｓ６１２へ進む。  
Ｓ６０５において、コンテンツの取得に失敗した場合は、Ｓ６０７へ進み「代替コンテンツ検索および取得」処理をおこなう。代替コンテンツ検索および取得の処理については図７を参照して詳細に説明する。
【００２１】
＜代替コンテンツ検索および取得＞  
まずプレイリストの処理中について制御情報１の内容をチェックする（Ｓ７０１）。制御情報１の内容を示す＜ａｌｔｅｒｎａｔｅ＞タグの中身が‘ｙｅｓ’の場合には、置き換えを許可と判断してＳ７０２へ進み、代替コンテンツの検索を行う。制御情報１が‘ｎｏ’の場合には、コンテンツの代替を行わず、制御情報２の内容チェックをおこなうためＳ７０６へ進む。  
Ｓ７０２における代替コンテンツの検索は、スクリプトに書かれたメタデータやコンテンツのＵＲＬをキーに、外部の照合情報保持サーバ１５３への問い合わせ、もしくはコンテンツキャッシュ部１１１内のコンテンツに対するマッチングによって行う。キーのマッチング方法については完全一致を基本とするが、部分一致や、関連する単語を別の辞書により探しだし、その結果をキーに代替コンテンツを検索しても良い。代替コンテンツの検索については、スクリプト中にどのような検索方法を用いるか記述してもよい。  
また、コンテンツが画像や音声、テキストなどの単一のメディアではなく、ＨＴＭＬ（HyperText Markup Language）やＸＭＬなどのマークアップ言語とそのリンクに記載されたマルチメデイアデータであった場合、そのうち一部のみ取得に失敗することがあり得る。この場合には、取得に失敗した一部のデータのみの代替を検索しても良い。そのとき、検索にはスクリプトに記載された情報だけでなく、取得に成功したデータをテキスト処理、信号処理を行って解析し、検索のキーを生成しても良い。さらに、代替コンテンツの検索は、照合情報保持サーバ１５３またはシステム内部のキャッシュ（コンテンツキャッシュ部１１１など）への問い合わせを想定しているが、その両方が利用できる場合、どちらを優先するかについてはシステムで決定もしくはスクリプト上で指定することが考えられる。問い合わせの優先度をスクリプト上に直接記述してもよい。  
Ｓ７０３において、代替コンテンツが見つかった場合には、Ｓ７０４に進み代替スクリプト取得部１０８において代替コンテンツを取得する。そして、プレイリストの処理中の１件についてフラグ２「代替を取得」を「ＯＮ」にし（Ｓ７０５）、フラグ２をフラグ格納部１０９へ送り「ＥＮＤ」からＳ６０７に戻る。  
Ｓ７０３において代替コンテンツが見つからなかった場合には、制御情報１のチェックで‘ｎｏ’だった場合と同様、制御情報２の内容チェックへと進む（Ｓ７０６）。制御情報２の内容が‘ｙｅｓ’（親ノードスクリプトそのものの代替行う）の場合には、Ｓ７０７に進みプレイリストの処理中の１件についてフラグ３「親ノードスクリプトそのものの代替」を「ＯＮ」にし、「ＥＮＤ」からＳ６０７に戻る。  
制御情報２の内容が‘ｎｏ’（親ノードスクリプトそのものの代替を行わない）の場合は、フラグ３「親ノードスクリプトそのものの代替」は「ＯＦＦ」のまま、「ＥＮＤ」からＳ６０７に戻る。
【００２２】
＜子ノードスクリプト呼び出し処理＞  
次に、Ｓ６０２で読み込んだ次の１件が子ノードスクリプトであった場合のＳ６０３における処理について示す。  
子ノードスクリプトであった場合には、Ｓ６０８に進み、子ノードスクリプトへのリンクに記述されたｉｄをスクリプトストレージ部１０１から子ノードスクリプトを取得し、新たに取得したスクリプトについて、もとの子ノードスクリプト同様に図６の「ＳＴＡＲＴ」から処理を行う。子ノードスクリプトの処理は、その子ノードスクリプトの中にさらに新たなスクリプトを含むかどうかを解析し、新たなスクリプトを含む場合は先に新たなスクリプトの処理をおこない、処理中のスクリプトのプレイリスト内に新たなスクリプトを含まない子ノードまで、つまりプレイリスト中にコンテンツのみを含んでいる子ノードにいたるまで順次先に処理を行う。子ノードスクリプトのプレイリスト中に新たなスクリプトがない場合は、その子ノードスクリプト内での処理を終えて、一つ上のノードスクリプトに処理がうつりさらに新たなスクリプトがないかどうかを解析する。このように子ノードスクリプトの再帰的な処理が終了し、処理が上のノードへ戻ってくると、スクリプトフラグチェック部１０６において、子ノードスクリプトの取得状況をチェックする（Ｓ６０９）。  
子ノードスクリプトの取得状況は、子ノードスクリプトの処理の結果、子ノードスクリプトの処理結果でフラグ３が「ＯＦＦ」の場合を成功、と定義する。ただし、他の実施形態においては「制御情報として代替コンテンツが入っていてはいけない」といった制御情報を追加してもよい。その場合には、子ノードスクリプトの処理の結果、子ノードスクリプトの処理結果でフラグ２が「ＯＦＦ」の場合を成功、と定義されることになる。  
子ノードスクリプトの取得が成功と判定された場合には、処理をスクリプトフラグチェック部１０６からスクリプト解析部１０２に戻し、プレイリストの処理中の１件についてについてフラグ１「取得成功」を「ＯＮ」にし（Ｓ６０６）、プレイリストの次の１件の取得を試みてＳ６１１の処理へ進む。次の１件がある場合はＳ６０２へ戻り再び処理を進める。次の１件がない場合は、Ｓ６１２へ進む。
【００２３】
＜代替スクリプト検索および取得＞  
Ｓ６０９において、子ノードスクリプトで取得失敗となったものがあった場合には、Ｓ６１０における「代替スクリプト検索および取得」の処理を行う。この処理を行うために図８の「ＳＴＡＲＴ」へと処理が移る。Ｓ６１０における具体的な処理を図８を参照して説明する。  
まず、プレイリストの処理中の１件について制御情報１の内容をチェックする（Ｓ８０１）。制御情報１の内容である＜ａｌｔｅｒｎａｔｅ＞タグの中身が‘ｙｅｓ’の場合には置き換えを許可と判断し、Ｓ８０２へ進み代替スクリプトの検索処理に移る。制御情報１の内容が‘ｎｏ’の場合には、スクリプトの代替を行わず、制御情報２の内容チェックをおこなうためＳ８０６へと進む。  
代替スクリプトの検索は、スクリプトに書かれたメタデータやコンテンツのＵＲＬ、もしくは子ノードスクリプトに書かれたメタデータやコンテンツのＵＲＬ、取得した一部のコンテンツ内のメタデータやコンテンツそのものをキーとして、外部の照合情報保持サーバ１５３への問い合わせ、もしくはスクリプトストレージ部１０１に対するマッチングによって行う。取得のキーがテキスト情報である場合には、完全一致を基本とするが、部分一致は関連する単語を別の辞書をベースに検索し、関連する単語をベースに検索しても良い。代替スクリプトの検索については、スクリプト中にどのような検索方法を用いるか記述することも考えられる。また、スクリプト中の取得に成功した一部のコンテンツがテキスト以外のデータ（画像、音声、動画など）である場合には、画像認識および音声認識などの信号処理を行い、検索のキーとしても良い。
【００２４】
代替スクリプトの検索は、照合情報保持サーバ１５３またはシステム内部のキャッシュ（スクリプトストレージ部１０１など）への問い合わせを想定しているが、その両方が利用できる場合、どちらを優先するかについてはシステムで決定、もしくは親ノードスクリプト上で指定することが考えられる。問い合わせの優先度を親ノードスクリプト上に直接記述しても良いものとする。  
Ｓ８０３において、代替スクリプトが見つかった場合には、代替スクリプト取得部１０８において代替スクリプトを取得し（Ｓ８０４）、プレイリストの処理中の１件についてについてフラグ２「代替を取得」を「ＯＮ」にする（Ｓ８０５）。このフラグ２をフラグ格納部１０９へ送り、「ＥＮＤ」からＳ６１０に戻る。  
代替スクリプトが見つからなかった場合には、制御情報１のチェックで‘ｎｏ’だった場合と同様、制御情報２の内容チェックへと進む（Ｓ８０６）。制御情報２の内容が‘ｙｅｓ’（親ノードスクリプトそのものの代替行う）の場合にはプレイリストの処理中の１件についてフラグ３「親ノードスクリプトそのものの代替」を「ＯＮ」にし（Ｓ８０７）、「ＥＮＤ」からＳ６１０に戻る。  
制御情報２の内容が‘ｎｏ’（親ノードスクリプトそのものの代替を行わない）の場合は、フラグ３「親ノードスクリプトそのものの代替」は「ＯＦＦ」のまま、「ＥＮＤ」からＳ６１０に戻る。  
プレイリストの１件の処理が終了すると、プレイリストに次のコンテンツまたは子ノードスクリプトの記述があるかどうかをチェックする（Ｓ６１１）。次の１件が存在する場合には、Ｓ６０２へ戻り、プレイリストの次の１件を読み込んで同様の処理をおこなう。  
次の１件が存在しない場合には、プレイリスト中のすべてのコンテンツおよび子ノードスクリプトを処理し終わったこととなり、親ノードスクリプトのプレイリストの処理結果のフラグのマージへ移る（Ｓ６１２）。
【００２５】
Ｓ６１２において、各プレイリストが有する処理結果のフラグのマージ処理をおこなう。プレイリスト１件ごとのフラグをプレイリスト全体でマージした結果は、処理中のスクリプトの親ノードスクリプトにおいて子ノードスクリプトの処理結果として用いられる。処理中のスクリプトが、ある親ノードスクリプトから呼び出された子ノードスクリプトであった場合、図６の「ＥＮＤ」の処理が終わると、親ノードスクリプトのＳ６０８の処理へ戻る。そしてＳ６０９でのフラグのチェックと、親ノードスクリプトのプレイリスト処理終了時でのフラグのマージにおいてこの処理結果が利用される。  
フラグのマージ方法は以下の通りである。  
フラグ１：「取得成功」のマージ  
フラグ１はコンテンツおよび子ノードスクリプトの取得に成功したら「ＯＮ」となる。「ＯＦＦ」となっているスクリプトが１つでもある場合には、完全に取得できたとはいえないため、フラグをＡＮＤ演算したものを、マージ結果とする。  
フラグ２：「代替を取得」のマージ  
フラグ２はコンテンツおよび子ノードスクリプトの取得には失敗したが、代替コンテンツの検索および取得に成功した場合に「ＯＮ」となる。代替を取得したコンテンツおよび子ノードスクリプトが１つでもある場合には、どこかで代替が行われたことになるため、フラグをＯＲ演算したものをマージ結果とする。  
フラグ３：「親ノードスクリプトそのものの代替」のマージ  
フラグ３は、コンテンツおよび子ノードスクリプトの取得および代替の両方に失敗し、さらに制御情報２、つまり親ノードスクリプトそのものの代替が‘ｙｅｓ’であった場合に「ＯＮ」となる。取得および代替の失敗により親ノードスクリプトそのものの代替を要求する、コンテンツおよび子ノードスクリプトが１つでもあった場合には、スクリプトそのものを代替することを示すフラグであるため、フラグをＯＲ演算したものをマージ結果とする。  
スクリプトのフラグのマージが終わると、スクリプト変更部１１０においてスクリプトの書き換えが行われる（Ｓ６１３）。なお、更新したスクリプトをスクリプトストレージ部１０１へ格納し、コンテンツが取得できなかったスクリプトについて書き換えてもよい。  
スクリプトの書き換え処理が終わると、１つのスクリプトの処理は終了となり、スクリプト解析部１０２へ戻る。このとき、処理していたスクリプトに親ノードスクリプトが存在する場合には、Ｓ６０８の「子ノードスクリプトの処理」に戻り、親ノードスクリプトの処理を再開する。親ノードスクリプトが存在しない場合には、スクリプト全体の木構造のスクリプトの処理の終了、つまりスクリプト全体の処理が終了したと判断して外部への出力処理を行う。
【００２６】
＜スクリプト書き換えの例＞  
ここから、スクリプトの記述例である図４、図５、および図９から図１８を用い、スクリプト変更部１１０における実際のスクリプト書き換えの例を示す。図５のスクリプト“ｍａｒｕｍａｒｕ＿ｗｅａｔｈｅｒ”は、図４のスクリプト“ｍｏｒｎｉｎｇ＿ｎｅｗｓ”から子ノードスクリプトとして呼び出される関係となっている。スクリプト変更部１１０では、以下の３つのいずれかの場合にスクリプトの書き換えを行う。  
・コンテンツの代替による書き換え  
・スクリプトの代替による書き換え  
・スクリプトおよびコンテンツの代替を行わず、スクリプトから削除  
なお、実施形態においてスクリプト変更部１１０での書き換え処理は、スクリプト代替の取得条件の判定や、代替コンテンツ・スクリプトの取得などが終わった後に、１つのスクリプト単位で行われる。そのため、システムはスクリプトの変更すべき内容について、フラグ格納部１０９に格納したフラグを参照して書き換え処理をおこなう。なお、内部のメモリやキャッシュに保持しておき、スクリプト変更部１１０ではその情報を参照して書き換え処理をおこなってもよい。
【００２７】
＜コンテンツの代替の例＞  
まず、コンテンツの代替について図４、図５および図９から図１１を用いて示す。コンテンツの代替が行われるのは、制御情報１が‘ｙｅｓ’であり、代替コンテンツを取得してフラグ２が「ＯＮ」になっている場合である。  
図９のように、図５の２件目のコンテンツであるコンテンツＵＲＬ“ｏｔｅｎｋｉ．ｊｐ／ｗｅｅｋｌｙ”が取得できない状態を考える。この場合、＜ａｌｔｅｒｎａｔｅ＞タブが‘ｙｅｓ’であるため、このコンテンツの取得できない場合の代替コンテンツを検索する。図５のスクリプトの“ｏｔｅｎｋｉ．ｊｐ／ｗｅｅｋｌｙ”のコンテンツ記述部分が、“ｓａｎｋａｋｕ−ｔｅｎｋｉ．ｊｐ／ｗｅｅｋｌｙ”のコンテンツ記述に書き換えられた一例を図１０に示す。このとき、コンテンツＵＲＬ“ｓａｎｋａｋｕ−ｔｅｎｋｉ．ｊｐ／ｗｅｅｋｌｙ”というコンテンツが見つかった場合、コンテンツの構成例は図１１のようになる。
【００２８】
＜親ノードスクリプトの代替の例＞  
次に、親ノードスクリプトの代替について図４、図５および図１２から図１５を用いて示す。親ノードスクリプトの代替が行われるのは、図６に示した子ノードスクリプト取得情報の確認において、親ノードスクリプトそのものの代替が必要と判断され、フラグ３が「ＯＮ」となり、親ノードスクリプトの代替を検索および取得に成功した場合である。
【００２９】
図１２のように、コンテンツＵＲＬ“ａｍｅｄｅｒｕ．ｊｐ／”の取得に失敗した場合を考えてみる。このとき、図５のコンテンツＵＲＬ“ａｍｅｄｅｒｕ．ｊｐ／”の制御情報では、＜ａｌｔｅｒｎａｔｅ＞が‘ｎｏ’で、＜ｍａｎｄａｔｏｒｙ＞が‘ｙｅｓ’となっている。そのため、“ａｍｅｄｅｒｕ．ｊｐ／”を含む親ノードスクリプトである“ｍａｒｕｍａｒｕ＿ｗｅａｔｈｅｒ”そのものの代替が必要となる。このとき、各コンテンツのメタデータ、この例では＜ｍｅｔａ＞タグの子エレメントの内容をキーにして、同じような＜ｍｅｔａ＞タグを持った代替スクリプトを検索する。  
図５の例では、子ノードスクリプト“ｋｙｏｕａｓｕ＿ｗｅａｔｈｅｒ”に含まれる＜ｋｅｙｗｏｒｄ＞タグとして「今日明日の天気」および「きょうあすの天気」、コンテンツＵＲＬ“ｏｔｅｎｋｉ．ｊｐ／ｗｅｅｋｌｙ”に含まれる＜ｋｅｙｗｏｒｄ＞タグとして「週間天気」、コンテンツＵＲＬ“ａｍｅｄｅｒｕ．ｊｐ／”に含まれる＜ｋｅｙｗｏｒｄ＞タグとして「降雨情報」および「アメデル」、コンテンツＵＲＬ“ｔｙｐｈｏｏｎ．ｊｐ／”に含まれる＜ｋｅｙｗｏｒｄ＞タグとして「台風情報」が記述されている。これらのキーを元に、子ノードスクリプトおよびコンテンツの単位で代替すべき内容が分離されていると考え、検索した結果見つかったコンテンツの例を図１３の“ｂａｔｓｕｂａｔｓｕ＿ｗｅａｔｈｅｒ”の代替スクリプトの記述例に示す。また、“ｂａｔｓｕｂａｔｓｕ＿ｗｅａｔｈｅｒ”を含むように図４のスクリプトを書き換えた一例を図１４に示す。このときのコンテンツの構成例は図１５のようになり、「降雨情報」などの親ノードスクリプトである「○○天気予報」が、「××天気予報」に置き換わり、コンテンツ取得場所も変更される。
【００３０】
＜スクリプトおよびコンテンツの代替を行わずにスクリプトから削除＞  
次に、スクリプトおよびコンテンツの代替を行わず、スクリプトから削除する場合について図４、図５および図１６から図１８を用いて示す。スクリプトおよびコンテンツの代替を行わずにスクリプトから削除するのは、子ノードスクリプトおよびコンテンツの取得および代替に失敗し、図７または図８の制御情報２の判定で、親ノードスクリプトそのものの代替を行わない、つまり＜ｍａｎｄａｔｏｒｙ＞タグが‘ｎｏ’となっている場合である。  
ここでは図１６のように、コンテンツＵＲＬ“ｔｙｐｈｏｏｎ．ｊｐ／”が取得できなかった場合を考える。このとき、図５のコンテンツＵＲＬ“ｔｙｐｈｏｏｎ．ｊｐ／”の制御情報では、＜ａｌｔｅｒｎａｔｅ＞が‘ｎｏ’で、＜ｍａｎｄａｔｏｒｙ＞が‘ｎｏ’となっている。そのため、“ｔｙｐｈｏｏｎ．ｊｐ／”の代替および親ノードスクリプトの代替はおこなわず、図５のスクリプトからコンテンツＵＲＬ“ｔｙｐｈｏｏｎ．ｊｐ／”を削除する。図５のスクリプトからコンテンツＵＲＬ“ｔｙｐｈｏｏｎ．ｊｐ／”を削除した結果のスクリプト記述例を図１７に示す。このときのコンテンツの構成例は図１８のようになり、「台風情報」というタイトルの記述なくなっている。  
システムの大まかな処理手順は、スクリプトストレージ部１０１から１つのスクリプトを基となる親ノードスクリプトとして読み込み、すべての葉ノード（子ノードスクリプト）までのスクリプトの処理が終わり、全てのコンテンツの取得および代替または削除が終了したら出力するというものであるが、すべてのコンテンツを取得してからではなく、１つのスクリプト中のコンテンツを取得できればそのたびに出力してもよいし、取得に成功したコンテンツから順に出力してもよい。
【００３１】
上述した実施形態によれば、スクリプト中のコンテンツおよび子ノードスクリプトごとに代替をおこなうか、親ノードスクリプトの代替をおこなうかの制御情報のパラメータを持たせ、コンテンツの取得に失敗したときにパラメータに応じて自動的に代替を検索して置き換えをおこなう。その際に複数のスクリプトを木構造で構成し、葉ノード（子ノードスクリプト）から順にコンテンツの取得結果および取得に失敗したときの代替コンテンツの取得結果を親ノード（親ノードスクリプト）に伝達する処理をおこなう。これにより、スクリプト提供者の意思を尊重しながら、元のスクリプトに対する変更範囲を最小限に抑えることができ、代替コンテンツへの置き換えをおこなう処理単位を柔軟に変更できるようになる。その結果、スクリプトとスクリプトに従って構成されたコンテンツとを利用者に提供し続けることができる。
【００３２】
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した情報処理装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の情報処理装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。  
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本願発明における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。  
また、記録媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【００３３】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【００３４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００３５】
１００・・・情報処理装置、１０１・・・スクリプトストレージ部、１０２・・・スクリプト解析部、１０３・・・コンテンツ取得部、１０４・・・代替コンテンツ検索部、１０５・・・代替コンテンツ取得部、１０６・・・スクリプトフラグチェック部、１０７・・・代替スクリプト検索部、１０８・・・代替スクリプト取得部、１０９・・・フラグ格納部、１１０・・・スクリプト変更部、１１１・・・コンテンツキャッシュ部、１５０・・・コンテンツ提供者Ａ、１５１・・・コンテンツ提供者Ｂ、１５２・・・代替コンテンツ提供者、１５３・・・照合情報保持サーバ、１５４・・・代替スクリプト提供サーバ、２００、３０１、３０２、３０３、３０４・・・スクリプト、２１０・・・プレイリスト、２１１・・・子ノードスクリプトへのリンクと制御情報、２１２・・・コンテンツのリンクと制御情報、２２０・・・メタデータ、２２１・・・スクリプト自身のメタデータ、２２２・・・プレイリスト中の子ノードスクリプトおよびコンテンツのメタデータ。
【図１】
2010176489.tif 000003
【図２】
2010176489.tif 000004
【図３】
2010176489.tif 000005
【図４】
2010176489.tif 000006
【図５】
2010176489.tif 000007
【図６】
2010176489.tif 000008
【図７】
2010176489.tif 000009
【図８】
2010176489.tif 000010
【図９】
2010176489.tif 000011
【図１０】
2010176489.tif 000012
【図１１】
2010176489.tif 000013
【図１２】
2010176489.tif 000014
【図１３】
2010176489.tif 000015
【図１４】
2010176489.tif 000016
【図１５】
2010176489.tif 000017
【図１６】
2010176489.tif 000018
【図１７】
2010176489.tif 000019
【図１８】
2010176489.tif 000020