(57)【要約】【課題】文書を構造化する言語で記述されたコンテンツを、ポインティングデバイスにより操作することが可能な情報処理装置及びプログラムを提供する。【解決手段】構造化された複数の要素と、当該複数の要素に対する処理と、が記載された文書を解釈して、前記複数の要素が配置された表示画面を作成する文書解釈手段と、前記文書に記載された処理を実行する処理実行手段と、前記表示画面上の位置を示す情報の入力があったときに、当該位置に表示される要素のうちで、識別子を有する要素を検出し、当該要素の識別子を取得する識別子検出手段と、を有し、前記文書は、前記識別子検出手段により識別子が取得されたときに実行する処理が、識別子それぞれに対して記載されており、前記処理実行手段は、前記情報の入力があったときは、前記識別子検出手段により取得された識別子に対して前記文書に記載された処理を実行する。【選択図】図８
2011165037.tif 000002
【特許請求の範囲】
【請求項１】
構造化された複数の要素と、当該複数の要素に対する処理と、が記載された文書を解釈して、前記複数の要素が配置された表示画面を作成する文書解釈手段と、
前記文書に記載された処理を実行する処理実行手段と、
前記表示画面上の位置を示す情報の入力があったときに、当該位置に表示される要素のうちで、識別子を有する要素を検出し、当該要素の識別子を取得する識別子検出手段と、を有し、
前記文書は、前記識別子検出手段により識別子が取得されたときに実行する処理が、識別子それぞれに対して記載されており、
前記処理実行手段は、前記情報の入力があったときは、前記識別子検出手段により取得された識別子に対して前記文書に記載された処理を実行することを特徴とする情報処理装置。
【請求項２】
前記識別子検出手段は、前記文書を行きがけ順に探索することにより、前記位置に表示される要素のうちで、前記識別子を有する要素を検出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記文書は、ＸＭＬにより記述されており、
前記要素の識別子は、ＩＤ属性で指定されるＩＤであることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
情報処理装置を、
構造化された複数の要素と、当該複数の要素に対する処理と、が記載された文書を解釈して、前記複数の要素が配置された表示画面を作成する文書解釈手段と、
前記文書に記載された処理を実行する処理実行手段と、
前記表示画面上の位置を示す情報の入力があったときに、当該位置に表示される要素のうちで、前記識別子を有する要素を検出し、当該要素の識別子を取得する識別子検出手段として機能させ、
前記文書は、前記識別子検出手段により識別子が取得されたときに実行する処理が、識別子それぞれに対して記載されており、
前記処理実行手段は、前記情報の入力があったときは、前記識別子検出手段により取得された識別子に対して前記文書に記載された処理を実行することを特徴とするプログラム。
【請求項５】
前記識別子検出手段は、前記文書を行きがけ順に探索することにより、前記位置に表示される要素のうちで、識別子を有する要素を検出することを特徴とする請求項４に記載のプログラム。
【請求項６】
前記文書は、ＸＭＬにより記述されており、
前記要素の識別子は、ＩＤ属性で指定されるＩＤであることを特徴とする請求項４または５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書を構造化する言語で記述されたコンテンツを解釈する情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
デジタル化されたテレビ放送である地上波デジタル放送などでは、映像・音声だけでなく、文字や画像からなるコンテンツがデータ放送として提供されている。このデータ放送により提供されるコンテンツに含まれる文書は、ＢＭＬ（Broadcast Markup Language）と呼ばれる文書を構造化する言語で記述されており、データ放送の受信機であるテレビ装置は、このＢＭＬを解釈し、コンテンツの内容を表示するＢＭＬブラウザを備えている。
【０００３】
これは、Ｗｅｂにおいて提供されているＨＴＭＬ（Hyper Text Markup Language）で記述された文書をＷｅｂブラウザが解釈して表示するのと同じである。Ｗｅｂブラウザにより表示された文書の内容であるホームページ上の文字やボタンなどの要素（オブジェクト）を選択するなどの操作は、マウスやタッチパネルなどのポインティングデバイスにより行うことができる。同様に、ＢＭＬブラウザにより表示されたコンテンツ内の要素を選択するなどの操作を入力装置により行うことができる。
【０００４】
しかし、データ放送は、テレビ放送に付随して提供されるものであるため、入力装置として、通常のテレビ装置の操作に使用されるリモコンのみを想定しており、データ放送のコンテンツを記述するＢＭＬは、キーの押下による操作に対してのみに対応している。つまり、リモコンのどのキーが押されたか、どのキーが押された状態から戻ったか、の情報のみを操作情報として使用する。このため、キーの押し上げの情報だけでなく、位置情報を操作情報として入力するマウスなどのポインティングデバイスではデータ放送のコンテンツを操作することができない。
【０００５】
テレビチューナーを備えたＰＣ（パーソナルコンピュータ）が普及してきている。また、インターネットを介してデジタル放送の提供を行うＩＰＴＶ（Internet Protocol Television）も普及してきている。このため、ＰＣによりデジタル放送が視聴されるようになってきた。ＰＣでは多くの操作がマウスなどのポインティングデバイスにより行われるが、上述したように、データ放送のコンテンツはポインティングデバイスにより操作することができない。そこで、データ放送のコンテンツをポインティングデバイスにより操作できるようにするための方法がいろいろと提案されてきた。
【０００６】
例えば、特許文献１では、表示されたコンテンツ上でのフォーカスの位置を、ポインティングデバイスにより移動する方法が開示されている。ＢＭＬでは、リモコンからの入力された操作情報に対応してフォーカスがどのように移動するかが、コンテンツの文書に定義されている。特許文献１に開示された方法では、このコンテンツの文書に定義されたフォーカスの移動の定義を使用し、ポインティングデバイスから入力された操作情報と、リモコンの上下左右キーの入力による操作情報と、を対応させる。そして、ポインティングデバイスの入力された操作情報を、リモコンにより入力された操作として解釈し、それに対応した処理する。
【０００７】
また、例えば、特許文献２では、コンテンツに対して行い得るリモコンによる全ての操作とその操作の結果をあらかじめ解析しておき、この解析結果をデータベースとして保存する方法が開示されている。そして、この方法では、ポインティングデバイスからの入力があったときに、このデータベースを参照することで、ポインティングデバイスの入力に対応した処理が実行される。例えば、コンテンツ上のある要素において決定キーが押されたときに、つまり、その要素が選択されたときに、どのような処理が行われるかをあらかじめ解析し、データベースに記載しておき、その要素の位置でポインティングデバイスからクリックされた情報が入力されたときは、このデータベースに記載された処理が実行される。
【０００８】
また、例えば、特許文献３では、ＢＭＬで記述されたコンテンツ内の要素とリモコンによる入力とを対応させたテーブルを用意し、コンテンツとともこのテーブルも提供する方法が開示されている。この方法では、ポインティングデバイスから位置情報の入力があった際に、まず、その入力された位置情報に対応するコンテンツ内の要素を検出する。そして、検出された要素に対応したリモコンによる入力をテーブルから抽出し、学習リモコンにより、この抽出されたリモコンによる入力が実行される。つまり、この方法も、特許文献１に開示された方法同様に、ポインティングデバイスの入力された操作情報を、リモコンにより入力された操作として解釈し、それに対応した処理する。特許文献３に開示された方法は、コンテンツの配信側であらかじめコンテンツ内の要素とリモコンによる入力とを対応させたテーブルを用意するため、特許文献１に開示された方法よりも、受信機側が行う処理が少なくて済む。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−３４５３９２号公報
【特許文献２】特開２００９−１８８７８９号公報
【特許文献３】特開２００８−２５２７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１に開示された方法は、リモコンからの入力された操作情報に対応してフォーカスがどのように移動するかをＢＭＬにより定義していないコンテンツに対しては適用できない。データ放送のコンテンツに含まれる文書には、ＢＭＬで記述された部分のほかに、ECMAScriptにより記述された部分がある。コンテンツの表示の変化などは、ECMAScriptによりプログラミングすることで実現される。フォーカスの移動は、ＢＭＬにより定義されることよりも、ECMAScriptにより定義されることが多い。このため、多くのコンテンツは、特許文献１に開示された方法では対応できない。
【００１１】
また、特許文献２に開示されているように、リモコンによる全ての操作とその操作の結果をあらかじめ解析してデータベースを作成することは、実際には困難である。操作の結果を解析するためには、ECMAScriptによる処理の解析をする必要があるが、ECMAScriptの意味理解、つまり、ECMAScriptで記述されたスクリプトによりどのような処理が行われるかを自動的な解析により理解することは、技術的に困難である。よって、特許文献２に開示された方法を実現するのは困難である。
【００１２】
また、特許文献３に開示された方法は、コンテンツの作成の際に、コンテンツ内の要素とリモコンの入力とを対応させたテーブルも用意しなくてはならない。これは、コンテンツ作成の作業量を増やすものであり、コンテンツ作成の際にかかるコストを上げてしまう。
【００１３】
そこで本発明は、上記問題点に鑑みてなされたもので、文書を構造化する言語で記述されたコンテンツを、ポインティングデバイスにより操作することが可能な情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、本発明における情報処理装置は、構造化された複数の要素と、当該複数の要素に対する処理と、が記載された文書を解釈して、前記複数の要素が配置された表示画面を作成する文書解釈手段と、前記文書に記載された処理を実行する処理実行手段と、前記表示画面上の位置を示す情報の入力があったときに、当該位置に表示される要素のうちで、識別子を有する要素を検出し、当該要素の識別子を取得する識別子検出手段と、を有し、前記文書は、前記識別子検出手段により識別子が取得されたときに実行する処理が、識別子それぞれに対して記載されており、前記処理実行手段は、前記情報の入力があったときは、前記識別子検出手段により取得された識別子に対して前記文書に記載された処理を実行することを特徴とする。
【００１５】
また、本発明におけるプログラムは、情報処理装置を、構造化された複数の要素と、当該複数の要素に対する処理と、が記載された文書を解釈して、前記複数の要素が配置された表示画面を作成する文書解釈手段と、前記文書に記載された処理を実行する処理実行手段と、前記表示画面上の位置を示す情報の入力があったときに、当該位置に表示される要素のうちで、前記識別子を有する要素を検出し、当該要素の識別子を取得する識別子検出手段として機能させ、前記文書は、前記識別子検出手段により識別子が取得されたときに実行する処理が、識別子それぞれに対して記載されており、前記処理実行手段は、前記情報の入力があったときは、前記識別子検出手段により取得された識別子に対して前記文書に記載された処理を実行することを特徴とする。
【発明の効果】
【００１６】
本発明により、文書を構造化する言語で記述されたコンテンツを、ポインティングデバイスにより操作することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る情報処理装置１００の構成例を示す図である。
【図２】データ放送のコンテンツに含まれる文書ファイルの例を示す図である。
【図３】データ放送のコンテンツの表示画面の例を示す図である。
【図４】文書ファイルの要素を説明する図である。
【図５】文書ファイルの要素の構造を示す図である。
【図６】データ放送のコンテンツの表示画面の例を示す図である。
【図７】データ放送のコンテンツに含まれる文書ファイルの例を示す図である。
【図８】本発明の実施形態に係るＢＭＬブラウザ１４０の構成例を示す図である。
【図９】本発明の実施形態に係るＢＭＬブラウザ１４０の識別子検出部１４１における処理動作を示す図である。
【図１０】データ放送のコンテンツの表示画面の例を示す図である。
【図１１】本発明の実施形態に係るスクリプトを示す図である。
【図１２】本発明の実施形態に係るスクリプトを示す図である。
【図１３】本発明の実施形態に係るＢＭＬブラウザ１４０における処理動作を示す図である。
【発明を実施するための形態】
【００１８】
次に、本発明を実施するための形態について図面を参照して詳細に説明する。
【００１９】
＜情報処理装置１００の構成例＞
図１は、本発明の実施形態に係る情報処理装置１００の構成例を示す図である。本実施形態に係る情報処理装置１００は、通信インタフェース１１０と、放送チューナ１２０と、コンテンツメモリ１３０と、ＢＭＬブラウザ１４０と、を有して構成される。情報処理装置１００には、表示装置２００と、入力装置３００と、ポインティングデバイス４００と、が接続している。
【００２０】
表示装置２００は、情報処理装置１００から出力された情報を表示する。入力装置３００は、複数のキーを有しており、ユーザにより、それらのキーが押されたときや、押された状態から戻されたときに、どのキーに対してどのように操作が行われたかの情報を情報処理装置１００に出力する。入力装置３００は、テレビ装置で使用されるようなリモコンやキーボードなどであり、上下左右キーや決定キー（リターンキー）などを有している。
【００２１】
ポインティングデバイス４００は、マウスやタッチパネルなどであり、複数のキーと位置情報を取得する手段を備えている。ポインティングデバイス４００は、取得された位置情報や、キーの押されたときなどの操作情報を情報処理装置１００に出力する。
【００２２】
通信インタフェース１１０は、情報処理装置１００をインターネット等のネットワークと接続するためのインタフェースである。通信インタフェース１１０は、ユーザにより選択された放送のデータ放送のコンテンツを、ネットワークを介して取得する。そして、取得したデータ放送のコンテンツをコンテンツメモリ１３０に保存する。
【００２３】
放送チューナ１２０は、アンテナにより受信されたデジタル放送信号やケーブルにより配信されている有線デジタル放送信号などを受信し、この受信した放送信号からユーザに選択されたチャンネルの放送データを復調する。そして、その復調された放送データからデータ放送のコンテンツを抽出してコンテンツメモリ１３０に保存する。
【００２４】
なお、情報処理装置１００は、通信インタフェース１１０と放送チューナ１２０のいずれも備えるようにしても良いし、通信インタフェース１１０と放送チューナ１２０とのいずれかのみを備えるようにしても良い。
【００２５】
コンテンツメモリ１３０は、通信インタフェース１１０に取得されたデータ放送のコンテンツや、放送チューナ１２０により抽出されたデータ放送のコンテンツを保存する。また、その他の情報を保存するようにしても良い。
【００２６】
ＢＭＬブラウザ１４０は、コンテンツメモリ１３０に保存されたデータ放送のコンテンツに含まれる文書ファイルを解釈して表示画面を作成し、その表示画面を表示装置２００に出力する。また、ＢＭＬブラウザ１４０は、入力装置３００やポインティングデバイス４００から操作情報などが入力されたとき、その入力された情報と、コンテンツに含まれる文書ファイルと、に基づいた処理を実行し、その結果の表示画面を作成し、その表示画面を表示装置２００に出力する。
【００２７】
＜データ放送のコンテンツに含まれる文書ファイルの例＞
データ放送のコンテンツは、通常、複数の文書ファイルや、複数の画像ファイルなどを有して構成される。図２は、通常のデータ放送のコンテンツに含まれる文書ファイルの一部分の例を示す図である。図２に示すように、文書ファイルは、ECMAScriptにより記述されたスクリプト部分と、ＢＭＬにより記述されたＤＯＭツリー部分と、により構成される。図２に示した文書ファイルは、ＢＭＬブラウザにより解釈され、例えば、表示装置の画面上で図３に示すように表示される。
【００２８】
図２に示した文書ファイルの例では、図３に示すように、「ニュース」、「天気」、「占い」の３つのボタンが表示されるように記述されている。それぞれのボタンは、２つの枠を有しており、外枠と内枠との間の色を変えることにより、３つのボタンのうちのどのボタンがフォーカスされているかを示すようにしている。図３に示した状態では、「ニュース」がフォーカスされている。
【００２９】
＜ＤＯＭツリー部分の例＞
図２に示した文書ファイルのＤＯＭツリー部分は、主に、ボタンの表示を定義している。ＢＭＬ文書は、複数の要素により構成される。各要素は、「＜要素名  属性＝”値“＞」と記述される開始タグと、「＜／要素名＞」と記述される終了タグと、により挟むことで表現する。例えば、図２において、「ニュース」の文字を、開始タグ「＜ｐ  ｓｔｙｌｅ＝”ｔｏｐ：１０ｐｘ；ｌｅｆｔ：１０ｐｘ；ｗｉｄｔｈ：１００ｐｘ；ｈｅｉｇｈｔ：４０ｐｘ”＞」と、終了タグ「＜／ｐ＞」と、で挟んだ部分は、ＢＭＬ文書を構成する要素の一つであり、ｐ要素と呼ばれる。
【００３０】
各要素は内部に要素を含むことが可能であり、この内部の要素は子要素と呼ばれる。また、逆に、子要素にとって、自身を内部に含む要素は親要素である。例えば、図２において、開始タグ「＜ｄｉｖ  ｉｄ＝”ｎｅｗｓ”  ｓｔｙｌｅ＝”ｔｏｐ：０ｐｘ；ｌｅｆｔ：０ｐｘ；ｗｉｄｔｈ：１２０ｐｘ；ｈｅｉｇｈｔ：６０ｐｘ”＞」と終了タグ「＜／ｄｉｖ＞」とで挟まれる要素であるｄｉｖ要素は、上記のｐ要素を内部に含んでいる。よって、ｄｉｖ要素にとって、ｐ要素は子要素である。また、逆に、ｐ要素にとって、ｄｉｖ要素は親要素である。
【００３１】
図２において、上記のｐ要素は、「ｓｔｙｌｅ＝”ｔｏｐ：１０ｐｘ；ｌｅｆｔ：１０ｐｘ；ｗｉｄｔｈ：１００ｐｘ；ｈｅｉｇｈｔ：４０ｐｘ”」のように、属性として、ｓｔｙｌｅ属性が指定されている。これは、このｐ要素の親要素が占める領域内での位置とその占める領域を示している。図２に示した例では、ｓｔｙｌｅ属性により指定されるｐ要素の左上の位置は、親要素の左上から１０ピクセルだけ下にあり、１０ピクセルだけ左にある。また、ｐ要素の占める領域、つまり、大きさは、幅が１００ピクセルであり、高さが４０ピクセルである。ＢＭＬブラウザ１４０は、このｓｔｙｌｅ属性による指定に基づいて、表示画面を作成し、その表示画面を表示装置２００に出力する。図３において、このｐ要素は「ニュース」の文字を囲む内枠で囲まれる部分である。また、図３において、このｐ要素の親要素であるｄｉｖ要素は「ニュース」の文字を囲む外枠で囲まれる部分である。このように、子要素は親要素に上に重なって表示される。
【００３２】
また、上記のｄｉｖ要素は、ｓｔｙｌｅ属性の他に、「ｉｄ＝”ｎｅｗｓ”」のように、ｉｄ属性も指定されている。ｉｄ属性はその要素を識別するための識別子を指定する。つまり、この要素には、このｄｉｖ要素は「ｎｅｗｓ」と識別子が指定され、後述するスクリプト部分に記述されるスクリプトなどは、このｄｉｖ要素を参照するときにこの識別子を使用する。
【００３３】
また、各要素は子要素として複数の要素を含むことができる。例えば、図２において、このｐ要素を子要素とするｄｉｖ要素の親要素であるｄｉｖ要素は、複数のｄｉｖ要素を含んでいる。このように、１つの要素が複数の子要素を含んでいるとき、それぞれの子要素は兄弟要素と呼ばれる。例えば、図２において、「ニュース」の文字を含むｐ要素の親要素であるｄｉｖ要素と、「天気」の文字を含むｐ要素の親要素であるｄｉｖ要素と、は兄弟要素である。また、それぞれの子要素間の関係では、文書中で先に記述されている方は兄要素と呼ばれ、文書中で先に記述されている方は弟要素と呼ばれる。例えば、上記の兄弟要素については、「ニュース」の文字を含むｐ要素の親要素であるｄｉｖ要素が兄要素であり、「天気」の文字を含むｐ要素の親要素であるｄｉｖ要素が弟要素である。また、兄要素の占める領域と、弟要素の占める領域と、が重なったときは、その重なった領域において、弟要素が兄領域の上に重なって表示される。
【００３４】
このように、ＢＭＬで記述された文書は、要素間に親子関係、兄弟関係がある。つまり、ＢＭＬ文書は、図４に示すように要素ごとに分割してみることができ、これらの要素は、図５に示すように、ツリー構造をしている。ＢＭＬブラウザ１４０は、ＤＯＭツリー部分を、このようなツリー構造で解釈し、それぞれの要素の参照を行う。
【００３５】
＜スクリプト部分の例＞
図２に示した文書ファイルのスクリプト部分は、ECMAScriptにより入力装置３００の上下キーでのフォーカス位置の移動と、入力装置３００の決定キーを押下した際の処理を定義している。つまり、上述したように、図２に示すような通常のデータ放送に含まれる文書ファイルは、入力装置３００として、テレビ装置で使用するリモコンのようなキーの押下情報のみを入力できる入力装置を想定している。
【００３６】
図２に示した文書ファイルの例では、ｂｏｄｙ要素の長男要素、つまり、ｂｏｄｙ要素の２つの子要素のうちの兄要素であるｄｉｖ要素１１は、ｏｎｋｅｙｄｏｗｎ属性が指定されている。このｏｎｋｅｙｄｏｗｎ属性は、入力装置３００のキーが押されたとき、どのような処理を行うかを指定する。図２に示した例では、関数「ｋｅｙｄｏｗｎ（）」を実行することが指定されている。つまり、図２に示した例では、図３に示した表示のときに、入力装置３００のいずれかのキーが押されたときに、ＢＭＬブラウザ１４０が、どのキーが押されたかを示す操作情報を入力装置３００から取得し、その取得した操作情報に基づき、関数「ｋｅｙｄｏｗｎ（）」を実行する。
【００３７】
関数「ｋｅｙｄｏｗｎ（）」は、図２のスクリプト部分の「ｆｕｎｃｔｉｏｎ  ｋｅｙｄｏｗｎ（）｛・・・｝」において定義されている。関数「ｋｅｙｄｏｗｎ（）」は、入力装置３００から入力されたキーが下キーであれば、「ｉｆ（ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｋｅｙｃｏｄｅ＝＝ＤＯＷＮ＿ＫＥＹ）｛・・・｝」に記述された処理を実行し、その後に、関数「ｒｅｄｒａｗ（）」を実行する。また、同様に、上キーであれば、「ｉｆ（ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｋｅｙｃｏｄｅ＝＝ＵＰ＿ＫＥＹ）｛・・・｝」に記述された処理を実行した後に、決定キーであれば、「ｉｆ（ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｋｅｙｃｏｄｅ＝＝ＲＥＴＵＲＮ＿ＫＥＹ）｛・・・｝」に記述された処理された後に、関数「ｒｅｄｒａｗ（）」を実行する。
【００３８】
図２の例では、関数「ｋｅｙｄｏｗｎ（）」は、入力装置３００の下キーが押されたときに、まず、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値に１を加えた値を変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」に代入する処理を行い、その処理が行われた変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」を３で割ったときの余りを変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」に代入する処理を行う。例えば、入力装置３００による操作がある前に、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」が「０」であったときは、操作後、まず、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」に０＋１＝「１」が代入され、そして、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」に１ｍｏｄ３＝「１」が代入される。よって、入力装置３００の下キーが押されたことにより、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値は、「０」から「１」に変化する。同様に、入力装置３００による操作がある前に、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」が「１」であったときは、その値が「２」に変化し、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」が「２」であったときは、その値が「０」に変化する。つまり、下キーが押されたときは、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値は、「０」から「１」に、「１」から「２」に、「３」から「０」に変換するように、つまり、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」は「０」、「１」、「２」の間を循環するようになっている。
【００３９】
また、同様に、入力装置３００の上キーが押されたときは、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が、「１」から「３」に、「２」から「１」に、「３」から「２」に変化するようになっている。
【００４０】
関数「ｒｅｄｒａｗ（）」は「ｆｕｎｃｔｉｏｎ  ｒｅｄｒａｗ（）｛・・・｝」に定義されている。関数「ｒｅｄｒａｗ（）」は、実行されたときに、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「０」であれば、「ｉｆ（ｉｎｄｅｘ−ｎｕｍｂｅｒ＝＝０）｛・・・｝」に記述された処理を行い、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「１」であれば、「ｉｆ（ｉｎｄｅｘ−ｎｕｍｂｅｒ＝＝１）｛・・・｝」に記述された処理を行い、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「２」であれば、「ｉｆ（ｉｎｄｅｘ−ｎｕｍｂｅｒ＝＝２）｛・・・｝」に記述された処理を行う。
【００４１】
例えば、関数「ｒｅｄｒａｗ（）」が実行されたときに、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「０」であったならば、「ｄｏｃｕｍｅｎｔ．ｇｅｔＥｌｅｍｅｎｔＢｙＩｄ（”ｎｅｗｓ”）．ｂａｃｋＧｒｏｕｎｄＣｏｌｏｒＩｎｄｅｘ＝”１”」と記述された処理が行われることになる。この記述は、識別子が「ｎｅｗｓ」である要素の色を「１」にする処理を行うことを指定している。よって、関数「ｒｅｄｒａｗ（）」が実行されたときに、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「０」であったならば、識別子が「ｎｅｗｓ」である要素の色を「１」になる。また、同様に、識別子が「ｗｅａｔｈｅｒ」である要素の色が「０」に、識別子が「ｕｒａｎａｉ」である要素の色が「０」になる。つまり、関数「ｒｅｄｒａｗ（）」は、実行されたときの変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」に基づき、識別子が「ｎｅｗｓ」、「ｗｅａｔｈｅｒ」、「ｕｒａｎａｉ」である要素の色を指定する。
【００４２】
図２の例では、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「０」であるときは、識別子が「ｎｅｗｓ」である要素のみが「１」の色であり、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「１」であるときは、識別子が「ｗｅａｔｈｅｒ」である要素のみが「１」の色であり、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「２」であるときは、識別子が「ｕｒａｎａｉ」である要素のみが「１」の色である。つまり、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値により、色の「１」である要素が変わる。
【００４３】
よって、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「０」であるとき、つまり、識別子が「ｎｅｗｓ」である要素の色が「１」であるときに、入力装置３００の下キーが押された場合、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「１」になり、識別子が「ｎｅｗｓ」である要素の色が「１」から「０」に変わり、識別子が「ｗｅａｔｈｅｒ」である要素の色が「０」から「１」に変わる。つまり、入力装置３００の下キーを押すことにより、色が「１」である要素が変わる。同様に、入力装置３００の上キーが押されたときも、色が「１」である要素が変わる。
【００４４】
この色が変わる部分は、図３では、各ボタンの内枠と外枠の間の部分である。つまり、図２に示した文書ファイルの例では、上下キーが押されたときに、ＢＭＬブラウザ１４０がスクリプト部分に記述された処理を実行し、ボタンの外枠と内枠の色を変化させ、これにより、フォーカスの位置の移動を実現している。例えば、図３の状態で、入力装置３００の下キーが押されたときは、図６に示す表示に変化する。つまり、「天気」のボタンがフォーカスされた状態になる。
【００４５】
また、入力装置３００の決定キーが押されたときは、「ｉｆ（ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｋｅｙｃｏｄｅ＝＝ＲＥＴＵＲＮ＿ＫＥＹ）｛・・・｝」に記述された処理が実行される。変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が０であるときに、入力装置３００の決定キーが押された場合、「ｉｆ（ｉｎｄｅｘ−ｎｕｍｂｅｒ＝＝０）｛・・・｝」に記述された「ｂｒｏｗｓｅｒ．ｌａｕｎｃｈＤｏｃｕｍｅｎｔ（”ｎｅｗｓ．ｂｍｌ）」と記載された処理が実行される。これは、データ放送のコンテンツに含まれている、図２に示した文書ファイルとは別の文書ファイルである「ｎｅｗｓ．ｂｍｌ」を表示することが指定されている。つまり、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「０」であるときに、入力装置３００の決定キーが押された場合、ＢＭＬブラウザ１４０は、コンテンツメモリ１２０に保存された文書ファイル「ｎｅｗｓ．ｂｍｌ」を解釈し、対応する表示画面を作成し、その表示画面を表示装置２００に出力する。
【００４６】
図２の例では、変数「ｉｎｄｅｘ−ｎｕｍｂｅｒ」の値が「０」であるときには、「ニュース」のボタンがフォーカスされている。つまり、図２の例では、「ニュース」のボタンがフォーカスされているときに、決定キーが押されると、文書ファイル「ｎｅｗｓ．ｂｍｌ」が表示される。同様に、「天気」のボタンがフォーカスされているときに、決定キーが押されると、文書ファイル「ｗｅａｔｈｅｒ．ｂｍｌ」が表示され、「占い」のボタンがフォーカスされているときに、決定キーが押されると、文書ファイル「ｕｒａｎａｉ．ｂｍｌ」が表示される。
【００４７】
このように、通常のデータ放送のコンテンツは、入力装置３００から入力される操作情報に対応する処理を、スクリプト部分に記述することにより、入力装置３００によりコンテンツが操作できるようにしている。なお、上述したように、入力装置３００からの操作情報に対応する処理を、ＤＯＭツリー部分に定義することによって、入力装置３００から操作できるようにしたコンテンツもある。例えば、図７に示すように記述された文書ファイルは、ＤＯＭツリー部分において、入力装置３００からの操作情報に対応する処理を定義している。
【００４８】
＜ＢＭＬブラウザ１４０の構成例＞
図８は、本実施形態に係るＢＭＬブラウザ１４０の構成例を示す図である。本実施形態に係るＢＭＬブラウザ１４０は、文書解釈部１４１と、スクリプト実行部１４２と、識別子検出部１４３と、を有して構成される。図２に示したような通常のデータ放送のコンテンツは、この文書解釈部１４１が、上述したようにＤＯＭツリー部分を解釈して表示画面を作成し、その表示画面を表示装置２００に出力する。また、スクリプト実行部１４２が、スクリプト部分に記載された処理を実行する。その際、上述のように、スクリプト部分に記載されたスクリプトは、ＤＯＭツリー部分に記載された要素を特定するときに、ＩＤ属性で指定された識別子を用いる。つまり、スクリプト部分に記載されたスクリプトは、ＤＯＭツリー部分に記載された要素のうち、ＩＤ属性により識別子が指定された要素しか参照できない。
【００４９】
上述したように、通常のデータ放送のコンテンツは、ポインティングデバイス４００から入力される位置情報、操作情報には対応していない。そこで、本実施形態に係るＢＭＬブラウザ１４０は、新たに、識別子検出部１４３を備える。ポインティングデバイス４００により位置情報が入力されたときに、その位置にある要素の識別子を識別子検出部１４１により検出する。そして、スクリプト実行部１４２が、この検出された識別子を用いて、コンテンツの文書ファイル中の要素を特定し、この特定された要素に対して処理を実行するようにする。ユーザからの入力による操作を受ける要素は、スクリプト部分に記述されたスクリプトにより参照され得る必要があるため、識別子を有しているはずである。どの要素がユーザから操作を受けたかを特定するのには、その識別子を特定すれば良い。
【００５０】
＜識別子検出部１４３による処理動作例＞
識別子検出部１４３は、ポインティングデバイス４００により入力された位置情報に基づき、その位置に存在する要素のうち、ＩＤ属性が指定されている要素、つまり、識別子を有する要素を検出する。
【００５１】
文書ファイルのＤＯＭツリー部分は、前述したように、ツリー構造を有している。例えば、図２に示した文書ファイルのＤＯＭツリー部分は、図５に示すような構造をしている。識別子検出部１４３は、入力された位置情報の位置に存在する識別子を有した要素を検出するために、このツリー状に構造化された要素のすべてを行きがけ順に調査していく。
【００５２】
例えば、図９に示すように行う。まず、ポインティングデバイス４００により入力された位置情報の位置に存在する識別子を有した要素を設定するための変数Ｎ＿ｃｌｉｃｋを用意し、空にしておく（Ｓ１０１）。そして、検出したい要素であるかどうかの調査を行う要素を設定するための変数Ｎ＿ｔｅｓｔを用意し、最初に調査する要素として、ＢＯＤＹ要素をＮ＿ｔｅｓｔに設定する（Ｓ１０２）。
【００５３】
そして、Ｎ＿ｔｅｓｔに設定された要素が表示状態かを調べる（Ｓ１０３）。つまり、非表示に指定されていないかを調べる。ユーザによる操作を受ける要素は表示されているはずなので、そこで、まず、その要素が表示されているのかどうかを調べる。
【００５４】
Ｎ＿ｔｅｓｔに設定された要素が表示状態であるときは（Ｓ１０３、Ｙｅｓ）、つまり、その要素がユーザに操作を受けた可能性のある要素であることがわかったときは、入力された位置情報の位置はその要素の占める領域内かどうかを調べる（Ｓ１０４）。つまり、その要素が、ユーザに操作を受けた位置に存在する要素であるのかどうかを調べる。
【００５５】
そして、入力された位置情報の位置がＮ＿ｔｅｓｔに設定された要素の占める領域内であるときは（Ｓ１０４、Ｙｅｓ）、つまり、その要素がユーザにより操作を受けた位置に存在する要素であることがわかったときは、その要素が識別子を有するかを調べる（Ｓ１０５）。つまり、その要素にＩＤ属性が指定されているかを調べる。Ｎ＿ｔｅｓｔに設定された要素が識別子を有するときは（Ｓ１０５、Ｙｅｓ）、その要素を、操作を受けた要素の候補として、Ｎ＿ｃｌｉｃｋに設定する（Ｓ１０６）。
【００５６】
ステップＳ１０６で、Ｎ＿ｃｌｉｃｋに設定要素は、ユーザから操作を受けた位置に存在する要素であり、識別子を有しているため、ユーザから操作を受けた要素の候補ではある。しかし、その要素の子要素の中に、ユーザから操作を受けた位置に存在する要素であり、識別子を有している要素があるときは、この要素がユーザから操作を受けたと考えられる。これは、上述したように、子要素は、親要素の上に重なって表示されるため、ユーザが操作を行った位置には、親要素ではなく、子要素が表示されている。ユーザは、この表示に対して操作を行うため、子要素の位置が操作されたときは、親要素でなく、子要素をユーザは操作しようとしている。なお、ここで、ユーザが操作をする要素とは、例えば、図１０に示すように、カーソルが指している位置に表示されている要素のことである。
【００５７】
よって、ステップＳ１０５の調査までが行った後に、Ｎ＿ｔｅｓｔに設定された要素に長男要素が存在するかを調べる（Ｓ１０７）。Ｎ＿ｔｅｓｔに設定された要素に長男要素が存在するときは、その長男要素をＮ＿ｔｅｓｔに設定し（Ｓ１０８）、ステップＳ１０３に戻り、その長男要素の調査を行う。このようにすることで、ツリー構造において、その要素と同じ枝にある要素をすべて調査することができる。同じ枝にある要素はそれぞれ重なって表示されるため、ユーザから操作を受けた位置に存在する識別子を有した要素のうちで、枝の一番下に存在した要素がユーザにより操作を受けた要素ということになる。
【００５８】
また、Ｎ＿ｔｅｓｔに設定された要素に長男要素が存在しないときは（Ｓ１０９）、その要素に弟要素が存在するかどうかを調べる（Ｓ１０９）。つまり、ツリー構造において、その要素と同じ枝にある要素のすべての調査を終えたため、次に、その要素の弟要素の枝の調査に移る。これは、兄要素と弟要素が重なったときは、弟要素が兄要素の上に重なって表示されるためである。兄要素が、ユーザにより操作された位置であったとしても、そのユーザにより操作された位置に弟要素も存在するときは、ユーザは弟要素の表示に対して操作したことになる。よって、兄要素の調査の後に、弟要素の調査をする必要がある。
【００５９】
また、Ｎ＿ｔｅｓｔに設定された要素が表示状態でないときは（Ｓ１０３、Ｎｏ）、その要素に子要素が存在しても、それらの子要素の調査はしない。これは、非表示に指定された要素の子要素は非表示であるためである。非表示の要素がユーザから操作を受けることはない。よって、非表示の要素の調査する必要はない。そこで、Ｎ＿ｔｅｓｔに設定された要素が表示状態でないときは（Ｓ１０３、Ｎｏ）、その要素に弟要素が存在するかどうかを調べる（Ｓ１０９）。つまり、その要素の弟要素の枝の調査に移る。
【００６０】
入力された位置情報の位置がＮ＿ｔｅｓｔに設定された要素の占める領域内でないときは（Ｓ１０４、Ｎｏ）、その要素に子要素が存在しても、それらの子要素の調査はしない。上述したように、子要素の占める領域は、親要素の占める領域の内側に限られる。よって、入力された位置情報の位置が親要素の占める領域内でないときは、その位置は、子要素の占める領域内でもない。そこで、入力された位置情報の位置がＮ＿ｔｅｓｔに設定された要素の占める領域内でないときは（Ｓ１０４、Ｎｏ）、その要素に弟要素が存在するかどうかを調べる（Ｓ１０９）。つまり、その要素の弟要素の枝の調査に移る。
【００６１】
Ｎ＿ｔｅｓｔに設定された要素に弟要素が存在するときは（Ｓ１０９、Ｙｅｓ）、その弟要素をＮ＿ｔｅｓｔに設定し（Ｓ１１０）、ステップＳ１０３に戻り、その弟要素の調査を行う。つまり、その弟要素の枝の調査を開始する。
【００６２】
Ｎ＿ｔｅｓｔに設定された要素に弟要素が存在しないときは（Ｓ１０９、Ｎｏ）、その要素の兄弟要素に連なる枝にある要素の調査がすべて終了したことになる。そこで、Ｎ＿ｔｅｓｔに設定された要素に弟要素が存在しないときは（Ｓ１０９、Ｎｏ）、その要素に親要素が存在するかどうかを調べ（Ｓ１１１）、Ｎ＿ｔｅｓｔに設定された要素に親要素が存在するときは（Ｓ１１１、Ｙｅｓ）、その親要素をＮ＿ｔｅｓｔに設定し（Ｓ１１２）、その要素に弟要素が存在するかどうかを調べる（Ｓ１０９）。つまり、その親要素の弟要素の枝の調査に移る。
【００６３】
Ｎ＿ｔｅｓｔに設定された要素に親要素が存在しないとき（Ｓ１１１、Ｎｏ）、つまり、Ｎ＿ｔｅｓｔに設定された要素がｂｏｄｙ要素に戻っているときは、すべての要素に対して調査が終了したため、処理動作を終了する。そして、この処理動作が終了したときに、Ｎ＿ｃｌｉｃｋに設定されている要素が、ポインティングデバイス４００による操作を受けた位置にある要素のうちで識別子を有した要素である。つまり、この要素がポインティングデバイス４００による操作を受けた要素である。本実施形態に係るＢＭＬブラウザ１４０は、このようにして、識別子検出部１４３により、まず、ポインティングデバイス４００による操作を受けた要素を検出する。
【００６４】
＜スクリプト実行部１４２による処理動作例＞
スクリプト実行部１４２は、識別子検出部１４３が検出した識別子を用いて、コンテンツの文書ファイルのスクリプト部分を解釈し、文書ファイルのスクリプト部分に記述された処理を実行する。本実施形態では、識別子検出部１４３により検出された識別子を用いて処理を行うために、通常の放送データのコンテンツに含まれる文書ファイルのスクリプト部分に、識別子を用いて、操作に対応した処理を要素に実行するための関数を付加する。そして、ポインティングデバイス４００による操作があったときには、この付加された関数を実行する。例えば、図２に示した文書ファイルであれば、図１１に示したようなスクリプトを付加する。つまり、関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」を図２の文書ファイルに付加をし、ポインティングデバイス４００による操作があったときには、この関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」を実行する。
【００６５】
スクリプト実行部１４２は、関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」を実行する際に、まず、「ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｔａｒｇｅｔ．ＩＤ」に、識別子検出部１４３により検出された識別子が設定する。そして、スクリプト実行部１４２は、関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」を実行する。例えば、スクリプト実行部１４２は、識別子検出部１４３により検出された識別子が「ｎｅｗｓ」であるときは、「ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｔａｒｇｅｔ．ＩＤ」に識別子「ｎｅｗｓ」を設定し、「ｉｆ（ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｔａｒｇｅｔ．ＩＤ＝＝”ｎｅｗｓ．ｂｍｌ”）｛・・・｝」に記述された「ｂｒｏｗｓｅｒ．ｌａｕｎｃｈＤｏｃｕｍｅｎｔ（”ｎｅｗｓ．ｂｍｌ”）」と記載された処理が実行される。上記と同様に、これは、図１１の関数が付加された図２に示した文書ファイルとは別の、データ放送のコンテンツに含まれている文書ファイルである「ｎｅｗｓ．ｂｍｌ」を表示することが指定されている。
【００６６】
つまり、ＩＤ属性により識別子が「ｎｅｗｓ」と指定されている要素、つまり、図１０に示すように、「ニュース」の文字の書かれたボタンの外枠より内側の位置にカーソルがあるとき、ポインティングデバイス４００によりクリックされた場合に、ＢＭＬブラウザ１４０は、コンテンツメモリ１２０に保存された文書ファイル「ｎｅｗｓ．ｂｍｌ」を解釈して表示装置２００に出力する。
【００６７】
なお、上記では、ユーザにより操作された要素の識別子をスクリプトにより参照する際に、「ｄｏｃｕｍｅｎｔ．ｃｕｒｒｅｎｔＥｖｅｎｔ．ｔａｒｇｅｔ．ＩＤ」を使用するのではなく、放送用拡張関数を用いて、関数「ｂｒｏｗｓｅｒ．ｇｅｔＭｏｕｓｅＯｂｊｅｃｔ（）」をインタフェースとして定義し、この関数を使用するようにしても良い。
【００６８】
このように、本実施形態により、ポインティングデバイス４００によりコンテンツの操作ができるようになる。そのためには、上記のように、文書ファイルに関数の付加をする必要があるが、その付加する関数は、図１１に示すように、かなり簡単なスクリプトである。
【００６９】
本実施形態のように、操作された要素の識別子の検出をしない場合は、図１２に示すような関数を付加することによっても、ポインティングデバイス４００によりコンテンツの操作ができるようになる。図１２に示した関数は、位置情報を直接用いて、要素を特定し、その要素に対する処理を実行するように記述されている。しかし、図１２の関数の記述は、図１１に示した関数の記述に比べるとかなり複雑である。つまり、まず操作された要素の識別子を求め、その識別子を用いて処理を行うようにすることにより、コンテンツの文書ファイルに付加する関数の記載を簡易にすることが可能になる。入力された情報により要素を移動させるといった処理を行おうとすると、図１１のような識別子を使用する関数と、図１２のような位置情報を直接使用する関数と、では、関数を記述する際の手間がかなり変わってくる。図１１と図１２との違いからわかるように、位置情報を使用する関数は、識別子を使用する関数は、かなり記載量が多くなり、見た目も複雑になる。これは、コンテンツ作成者にかなりの負担をかけることになる。つまり、操作された要素の識別子をあらかじめ求めておき、その識別子を用いて関数を実行することにより、コンテンツ作成者の負担をかなり低減することが可能になる。よって、ポインティングデバイス４００に対応するコンテンツを作成する際のコストを低減することも可能になる。
【００７０】
図１２に示した関数が付加されたときは、スクリプト実行部１４２が、入力された位置情報を直接用いて、位置情報の位置にある要素を探す。つまり、スクリプト実行部１４２が座標計算を行うことになる。ECMAScriptはインタプリタ言語であるため、座標計算の処理は実行速度に影響を及ぼす。つまり、上述した操作された要素の識別子を検出する処理よりも、座標計算は処理に時間を要する。よって、操作された要素の識別子をあらかじめ求めておき、その識別子を用いて関数を実行することにより、処理時間の短縮化も可能になる。
【００７１】
なお、コンテンツが複雑な場合は、図１１のような識別子を使用する関数を付加することにし、コンテンツがそれほど複雑でないときは、図１２のような位置情報を使用する関数を付加するようにしても良い。
【００７２】
＜レガシー機器、ＡＲＩＢとの関係＞
上述したように、ポインティングデバイス４００により操作を行えるようにするために、コンテンツの文書ファイルに関数を付加しなくてはならない。よって、コンテンツをデータ放送として配信する際に、この関数をコンテンツの文書ファイルに付加した上で配信することになる。このとき、このコンテンツは本実施形態に係るＢＭＬブラウザ１４０を搭載した機器だけでなく、レガシー機器、つまり、従来からデータ放送のコンテンツを表示する際に使用されている機器によっても受信される。よって、この従来から使用されている機器が、この関数の付加された文書ファイルが読み込んだときにエラーが発生しないかが問題になる。
【００７３】
上述したように、本実施形態において、付加される関数は、ECMAScriptで記述された関数である。従来の機器は、スクリプト部分に使用しない関数が記述されているときは、単に、その関数を実行しないだけである。また、使用しない変数が記述されているときは、単に、その変数を未定義の変数として扱う。このため、上記のように、スクリプト部分にECMAScriptで記述した関数を付加したとしても、従来の機器ではエラーは発生しない。よって、本実施形態により、従来の機器に対する影響が発生させず、ポインティングデバイス４００によりコンテンツの操作ができるようになる。
【００７４】
また、データ放送のコンテンツは、データ放送の規格を策定する業界団体であり、ＢＭＬの規格を策定した業界団体であるＡＲＩＢ（Association of Radio Industries and Bussinesses：社団法人電波産業会）による規定に違反をしてはならない。ＡＲＩＢは、ＤＯＭツリー部分の記載には厳しい規定を課してしているが、スクリプト部分はＥＣＭＡ言語の仕様として記述の自由度が高い。本実施形態のように、ECMAScriptにより記述された関数をスクリプト部分に記載することは、ＡＲＩＢの規定違反にはならない。よって、本実施形態により、ＡＲＩＢの規定違反をせず、ポインティングデバイス４００によりコンテンツの操作ができるようになる。
【００７５】
＜ＢＭＬブラウザ１４０における処理動作例＞
図１３は、ポインティングデバイス４００による操作があった際に、本実施形態に係るＢＭＬブラウザ１４０における処理動作例を示す図である。ポインティングデバイス４００から位置情報の入力がある（Ｓ２０１）。識別子検出部１４３は、コンテンツメモリ１３０に保存された文書ファイルに、関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」が記載されているかを確認する（Ｓ２０２）。記載されていないときは（Ｓ２０２、Ｎｏ）、処理を終了する。なお、本実施形態では、文書ファイルに付加する関数に「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」という名前を付けたが、この付加する関数の名前はどのようなものでも良い。
【００７６】
関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」が記載されているときは（Ｓ２０２、Ｙｅｓ）、識別子検出部１４３は、上述したように、コンテンツメモリ１３０に保存された文書ファイルのＤＯＭツリー部分を解析することにより、入力された位置情報の位置に存在する識別子を持つ要素を検出する（Ｓ２０３）。そして、スクリプト実行部１４１は、この識別子検出部１４３により検出された識別子を用いて、文書ファイルの関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」を実行する（Ｓ２０４）。文書解釈部１４１は、その実行結果の表示画面を作成し、その表示画面を表示装置４００に出力する（Ｓ２０５）。このようにすることにより、関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」が付加された文書ファイルに対しては、ポインティングデバイス４００により操作ができるようになる。
【００７７】
また、図１１に示す関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」が文書ファイルに記載されていないときは（Ｓ２０２、Ｎｏ）、図１２に示すような位置情報を使用する関数が文書ファイルに記載されているかどうかを確認するようにしても良い。そして、位置情報を使用する関数が文書ファイルに記載されているときは、上述したように、位置情報を用いて、ポインティングデバイス４００からの操作を実行するようにしても良い。このようにすることにより、コンテンツに付加する関数を、図１１に示すような識別子を使用する関数にすることも、図１２に示すような位置情報を使用する関数にすることもできるようになる。つまり、コンテンツの内容により、付加する関数を使い分けることが可能になる。
【００７８】
また、関数「Ｘ＿ＮＥＣＰ＿ｏｎＭｏｕｓｅＤｏｗｎ（）」が文書ファイルに記載されていないときは（Ｓ２０２、Ｎｏ）、文書ファイルのＤＯＭツリー部分にフォーカスの移動の定義が記載されているかどうかを確認するようにしても良い。そして、ＤＯＭツリー部分にフォーカスの移動の定義が記載されているときは、特許文献１に記載されたような方法によって、ポインティングデバイス４００からの操作を実行するようにしても良い。このようにすることにより、ＤＯＭツリー部分にフォーカスの移動の定義が記載されているときは、コンテンツに識別子を使用する関数を付加しなくても、ポインティングデバイス４００によりコンテンツの操作ができるようになる。
【００７９】
なお、上記に示した処理動作では、ポインティングデバイス４００によるクリック操作や、ダブルクリック操作に対応している。つまり、クリック操作やダブルクリック操作が行われたときの位置情報が入力されたときの処理を示している。しかし、上記に示した処理動作を、ポインティングデバイス４００によるポイント移動操作に適用することは可能である。例えば、ポインティングデバイス４００が移動するごとに、識別子検出部１４３が位置情報を取得するようにし、その位置にある識別子を有した要素を検出するようにすれば良い。また、例えば、ポインティングデバイス４００であるマウスの右クリック操作に対応する処理に対する関数を文書に付加することにより、コンテンツをマウスの右クリックによっても操作することも可能になる。
【００８０】
なお、上記では、データ放送のコンテンツについて説明してきたが、データ放送のコンテンツの文書ファイルのように、ＸＭＬ（Extensible Mark Language）などの構造記述言語とECMAScript（Java（登録商標）Script）により記載されているコンテンツであれば、上記の方法を適用することができる。なお、ＢＭＬは、データ放送のコンテンツにＸＭＬを適用するために策定された言語であり、ＢＭＬの文法は、ＸＭＬの文法に従っている。
【００８１】
上述した実施形態における処理動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【００８２】
なお、ソフトウェアによる処理を実行する場合には、処理シーケンスを記録したプログラムが格納されているＲＯＭ（Read Only Memory）から、専用のハードウェアに組み込まれているコンピュータ内のメモリ（ＲＡＭ）にプログラムを読み込んで実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【００８３】
例えば、プログラムは、記録媒体としてのハードディスクやＲＯＭに予め記録しておくことが可能である。あるいは、プログラムは、フロッピー（登録商標）ディスク等の磁気ディスク、ＣＤ（Compact Disc）、ＤＶＤ(Digital Versatile Disc)等の光ディスク、ＭＯ（Magneto Optical）ディスク等の光磁気ディスクなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。
【００８４】
このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することが可能である。
【００８５】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ（Local Area Network）、インターネットといったネットワークを介して、コンピュータに有線で転送したりし、コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。
【００８６】
また、上記実施形態で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【００８７】
また、上記実施形態で説明したシステムは、複数の装置の論理的集合構成にしたり、各装置の機能を混在させたりするように構築することも可能である。
【００８８】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更が可能である。
【００８９】
また、本発明における情報処理装置は、前記識別子検出手段は、前記文書を行きがけ順に探索することにより、前記位置に表示される要素のうちで、前記識別子を有する要素を検出するようにしても良い。
【００９０】
また、本発明における情報処理装置は、前記文書は、ＸＭＬにより記述されており、前記要素の識別子は、ＩＤ属性で指定されるＩＤであるようにしても良い。
【００９１】
また、本発明におけるプログラムは、前記識別子検出手段は、前記文書を行きがけ順に探索することにより、前記位置に表示される要素のうちで、識別子を有する要素を検出するようにしても良い。
【００９２】
また、本発明におけるプログラムは、前記文書は、ＸＭＬにより記述されており、前記要素の識別子は、ＩＤ属性で指定されるＩＤであるようにしても良い。
【符号の説明】
【００９３】
１００    情報処理装置
１１０    情報インタフェース
１２０    放送チューナ
１３０    コンテンツメモリ
１４０    ＢＭＬブラウザ
１４１    文書解釈部
１４２    スクリプト実行部
１４３    識別子検出部
２００    表示装置
３００    入力装置
４００    ポインティングデバイス
【図１】
2011165037.tif 000003
【図２】
2011165037.tif 000004
【図３】
2011165037.tif 000005
【図４】
2011165037.tif 000006
【図５】
2011165037.tif 000007
【図６】
2011165037.tif 000008
【図７】
2011165037.tif 000009
【図８】
2011165037.tif 000010
【図９】
2011165037.tif 000011
【図１０】
2011165037.tif 000012
【図１１】
2011165037.tif 000013
【図１２】
2011165037.tif 000014
【図１３】
2011165037.tif 000015