(57)【特許請求の範囲】
【請求項１】
受信装置のプロセッサによって実行されるデータ文書構築方法であって、データ文書、既存のデータ文書及び文書フラグメントが親及び子ノードの記述ツリーとして構成されたマルチメディアコンテンツの記述を含み、該既存のデータ文書及び該文書フラグメントから該データ文書を構築するデータ文書構築方法において、
送信装置に記憶されている上記データ文書のコピーの代わりに、該送信装置から送信される、上記既存のデータ文書及び／又は上記文書フラグメント内の更新位置ノードを特定するナビゲーションパス、更新コマンド及び上記文書フラグメントを受信するステップと、
上記更新コマンドが結合コマンドであるとき、
上記受信するステップは、上記送信装置から送信される、上記ナビゲーションパス、上記更新コマンド及び上記文書フラグメントと共に、上記文書フラグメント又は上記既存のデータ文書をノードを選択するソースとして特定するソース要素と、該ソース内のノードの１つを特定する結合パスとからなる要素対の複数からなるリストである結合ソース要素を受信するステップを含み、
上記ナビゲーションパスを用いて、上記既存のデータ文書用の記述ツリーの更新位置ノードを特定するステップと、
上記文書フラグメント及び既存のデータ文書用の記述ツリーから、上記結合ソース要素に基づいて特定されるノードを選択するステップと、
上記選択されたノードを、上記識別された更新位置ノードの子ノードとして、該選択されたノードをルートとするサブツリー全体を、上記既存のデータ文書用の記述ツリーに付加するステップと、
上記更新コマンドが併合コマンドであるとき、
上記ナビゲーションパスを用いて、上記文書フラグメント用の記述ツリーの更新位置ノードを特定するステップと、
上記特定された更新位置ノードを、上記既存のデータ文書用の記述ツリーに置換するステップとを有するデータ文書構築方法。
【請求項２】
送信装置のプロセッサによって実行されるデータ文書構築方法であって、データ文書、既存のデータ文書及び文書フラグメントが親及び子ノードの記述ツリーとして構成されたマルチメディアコンテンツの記述を含み、該既存のデータ文書及び該文書フラグメントから該データ文書を構築するデータ文書構築方法において、
上記送信装置に記憶されている上記データ文書のコピーの代わりに、ナビゲーションパス、更新コマンド及び上記文書フラグメントを受信装置に送信するステップを有し、
上記更新コマンドが結合コマンドであるとき、上記送信するステップは、上記受信装置に送信する、上記ナビゲーションパス、上記更新コマンド及び上記文書フラグメントと共に、上記文書フラグメント又は上記既存のデータ文書をノードを選択するソースとして特定するソース要素と、該ソース内のノードの１つを特定する結合パスとからなる要素対の複数からなるリストである結合ソース要素を送信するステップを含み、上記ナビゲーションパスは、上記既存のデータ文書内の更新位置ノードを特定するものであり、該更新位置ノードは、上記受信装置において、上記文書フラグメント及び既存のデータ文書用の記述ツリーから上記結合ソース要素に基づいて特定され、選択されたノードが、該更新位置ノードの子ノードとして、該選択されたノードをルートとするサブツリー全体が、上記既存のデータ文書用の記述ツリーに付加されるものであり、
上記更新コマンドが併合コマンドであるとき、上記ナビゲーションパスは、上記受信装置において上記既存のデータ文書用の記述ツリーに置換される、上記文書フラグメント内の更新位置ノードを特定するものであることを特徴とするデータ文書構築方法。
【請求項３】
データ文書、既存のデータ文書及び文書フラグメントが親及び子ノードの記述ツリーとして構成されたマルチメディアコンテンツの記述を含み、該既存のデータ文書及び該文書フラグメントから該データ文書を構築する処理を、受信コンピュータに実行させるためのプログラムが記録されたコンピュータにより読取可能な媒体において、
上記処理は、
送信コンピュータに記憶されている上記データ文書のコピーの代わりに、該送信コンピュータから送信される、上記既存のデータ文書及び／又は上記文書フラグメント内の更新位置ノードを特定するナビゲーションパス、更新コマンド及び上記文書フラグメントを受信するステップと、
上記更新コマンドが結合コマンドであるとき、
上記受信するステップは、上記送信装置から送信される、上記ナビゲーションパス、上記更新コマンド及び上記文書フラグメントと共に、上記文書フラグメント又は上記既存のデータ文書をノードを選択するソースとして特定するソース要素と、該ソース内のノードの１つを特定する結合パスとからなる要素対の複数からなるリストである結合ソース要素を受信するステップを含み、
上記ナビゲーションパスを用いて、上記既存のデータ文書用の記述ツリーの更新位置ノードを特定するステップと、
上記文書フラグメント及び既存のデータ文書用の記述ツリーから、上記結合ソース要素に基づいて特定されるノードを選択するステップと、
上記選択されたノードを、上記識別された更新位置ノードの子ノードとして、該選択されたノードをルートとするサブツリー全体を、上記既存のデータ文書用の記述ツリーに付加するステップと、
上記更新コマンドが併合コマンドであるとき、
上記ナビゲーションパスを用いて、上記文書フラグメント用の記述ツリーの更新位置ノードを特定するステップと、
上記特定された更新位置ノードを、上記既存のデータ文書用の記述ツリーに置換するステップとを有することを特徴とするコンピュータにより読取可能な媒体。
【請求項４】
データ文書、既存のデータ文書及び文書フラグメントが親及び子ノードの記述ツリーとして構成されたマルチメディアコンテンツの記述を含み、該既存のデータ文書及び該文書フラグメントから該データ文書を構築する処理を、送信コンピュータに実行させるためのプログラムが記録されたコンピュータにより読取可能な媒体において、
上記処理は、
上記送信コンピュータに記憶されている上記データ文書のコピーの代わりに、ナビゲーションパス、更新コマンド及び上記文書フラグメントを受信コンピュータに送信するステップを有し、
上記更新コマンドが結合コマンドであるとき、上記送信するステップは、上記受信コンピュータに送信する、上記ナビゲーションパス、上記更新コマンド及び上記文書フラグメントと共に、上記文書フラグメント又は上記既存のデータ文書をノードを選択するソースとして特定するソース要素と、該ソース内のノードの１つを特定する結合パスとからなる要素対の複数からなるリストである結合ソース要素を送信するステップを含み、上記ナビゲーションパスは、上記既存のデータ文書内の更新位置ノードを特定するものであり、該更新位置ノードは、上記受信コンピュータにおいて、上記文書フラグメント及び既存のデータ文書用の記述ツリーから上記結合ソース要素に基づいて特定され、選択されたノードが、該更新位置ノードの子ノードとして、該選択されたノードをルートとするサブツリー全体が、上記既存のデータ文書用の記述ツリーに付加されるものであり、
上記更新コマンドが併合コマンドであるとき、上記ナビゲーションパスは、上記受信コンピュータにおいて上記既存のデータ文書用の記述ツリーに置換される、上記文書フラグメント内の更新位置ノードを特定するものであることを特徴とするコンピュータにより読取可能な媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２００１年７月に出願された米国仮特許出願番号６０／３０６，２５６号に対する優先権を主張し、この文献は参照により本願に援用される。
【著作権表示／許諾】
【０００２】
この明細書の開示内容の一部は、著作権保護の対象となる要素を含む。著作権者は、この明細書が特許商標庁への特許出願であると認められるファックスコピーに対しては異議を唱えないが、この他のあらゆる全ての著作権を主張する。以下の注意は、後述するソフトウェア及びデータ、並びに添付の図面に適用される。著作権（ｃ）２０００：全ての著作権はソニーエレクトロニクスインク社に帰属する。
【技術分野】
【０００３】
本発明は、概してデータ文書、詳しくは、マルチメディアコンテンツ記述を含むデータ文書のインクリメンタル構築（incremental construction）に関する。
【背景技術】
【０００４】
デジタルテレビジョン信号を始めとする放送伝送（broadcast transmission）及びインターネットを始めとするインタラクティブ伝送を介して、デジタルマルチメディア情報が広く配信されるようになっている。これらの情報には、静止画像、音声信号、ビデオデータストリーム等が含まれる。ここで、利用可能な情報量が膨大になると、ユーザが特に興味を有するコンテンツを特定することが困難になっている。このような問題を解決するために、多くの企業や団体は、特定のコンテンツを見つけ出すための検索、フィルタリング及び／又はブラウジングに用いることができる情報の記述方式を開発している。ムービングピクチャエキスパートグループ（Moving Picture Experts Group：以下、ＭＰＥＧという。）は、一般的にＭＰＥＧ−７と呼ばれる、マルチメディア情報用のコンテンツ記述を標準化したマルチメディアコンテンツ記述インタフェース規格（Multimedia Content Description Interface standard）を発表している。オーディオ／ビジュアルコンテンツの符号化表現を規定したＭＰＥＧ−１又はＭＰＥＧ−２を始めとするこれまでのＭＰＥＧ規格とは異なり、ＭＰＥＧ−７のコンテンツ記述は、コンテンツ自体ではなく、コンテンツの構造及び意味（semantics）を記述する。
【０００５】
映画を具体例とすると、対応するＭＰＥＧ−７コンテンツ記述は、例えばシーンのタイトル、シーン中のショット、ショットの時間、色、形、動き及びオーディオ情報等の映画の特徴（feature）を記述する要素である「記述子（descriptors）」（Ｄ）を含んでいる。コンテンツ記述は、２つ以上の記述子間及び／又は記述スキーム間の関係を記述する要素である「記述スキーム（description scheme）」（ＤＳ）を含んでいる場合もある。記述スキームとしては、例えばショットの特徴を関連付けるショット記述スキーム等がある。記述スキームは、例えば、シーン内の異なるショットを関連付けるシーン記述スキームやシーンのタイトルフィーチャ（title feature）をショットに関連付ける記述スキーム等のように、他の記述スキーム間の関係、及び記述スキームと記述子間の関係も記述することができる。
【０００６】
ＭＰＥＧ−７は、記述ツール（ＤＳ，Ｄ）の標準セットを定義し、新たな記述ツールを定義する言語を定めるとともに、記述子と記述スキームとのコアセット（core set）を提供するデータ定義言語（Data Definition Language：以下、ＤＤＬという。）を用いる。一組の記述子及び記述スキームのためのＤＤＬ定義は、異なるクラスのコンテンツのための「スキーマ（schemas）」に組織化される。スキーマ内の各記述子のためのＤＤＬ定義は、対応する特徴（feature）の統語構造（syntax）及び意味（semantics）を定める。スキーマ内の各記述スキームのためのＤＤＬ定義は、その子要素（children component）、記述子及び記述スキーム間の関係の構造（structure）及び意味を定める。ＤＤＬを用いて、既存の記述スキームを変更及び拡張することができ、新たな記述スキーム及び記述子を作成することもできる。
【０００７】
ＭＰＥＧ−７のＤＤＬは、拡張可能マークアップ言語（extensible markup language：以下、ＸＭＬという。）及びＸＭＬスキーマ規格に基づいている。記述子、記述スキーム、意味、統語構造及び構造は、ＸＭＬ要素（XML element）及びＸＭＬ属性（XML attribute）によって表される。幾つかのＸＭＬ要素及びＸＭＬ属性は、任意に用いることができる。
【０００８】
コンテンツの特定のピースのためのＭＰＥＧ−７コンテンツ記述は、ＭＰＥＧ−７スキーマのインスタンスとして定義され、すなわち、スキーマにおいて定義されている統語構造と意味を結びつけるデータを含んでいる。コンテンツ記述は、適切なスキーマを参照する「インスタンス文書（instance document）」にエンコードされる。インスタンス文書は、スキーマにおいて定義されている要素及び属性、及び全ての必要な任意の要素及び／又は属性に要求される一組の「記述子値（descriptor values）」を含む。具体例として、例えば、特定の映画についての幾つかの記述子値は、映画が３つのシーンを有し、シーン１が６ショットを含み、シーン２が５ショットを含み、シーン３が１０ショットを含むということを特定する。インスタンス文書は、ＸＭＬを用いたテキストフォーマットでエンコードしてもよく、又は例えば「ＢｉＭ」として知られるＭＰＥＧ−７データ用に特化されたバイナリフォーマットのようなバイナリフォーマットでエンコードしてもよく、これらの２つのフォーマットを組み合わせてエンコードしてもよい。
【０００９】
インスタンス文書は、例えばコンピュータネットワーク等の通信チャンネルを介して、他の装置に伝送され、この他の装置は、インスタンス文書に含まれるコンテンツ記述データを用いて、対応するコンテンツデータストリームを検索し、フィルタリングし、及び／又はブラウジングする。多くの場合、インスタンス文書は、より速く伝送するために、圧縮される。インスタンス文書のエンコード及び圧縮は、いずれも１つのエンコーダ（encoder component）によって行ってもよく、これらの処理を別々の構成要素で行ってもよい。更に、インスタンス文書をある装置で生成し、続いて、他の装置によってインスタンス文書を伝送するようにしてもよい。受信装置の対応するデコーダ（decoder component）は、参照スキーマ（referenced schema）を用いて、インスタンス文書をデコードする。ここで、同じ伝送データの一部として、スキーマをインスタンス文書とは別に伝送してもよく、或いは受信装置が他のソースからスキーマのみを受け取ってもよい。これに代えて、ある種のスキーマをデコーダに予め組み込んでおいてもよい。
【００１０】
圧縮により、インスタンス文書のサイズを小さくし、伝送時間をある程度短くすることができるが、記述の情報量が多い場合、このような圧縮を行ってもなお、ネットワークを介してコンテンツ記述全体を伝送するのに長い時間がかかることがある。そこで、帯域幅を節約するために、インスタンス文書の一部のみを伝送してもよい。一般的に、コンテンツ記述は、一組のサブツリー（sub-tree）又はフラグメント（fragment）からなるツリー構造としてモデル化することができる。どのフラグメントを送るかに関する判断は、アプリケーションに依存する。
【００１１】
コンテンツ記述は、記述フラグメント、すなわちフラグメント内の記述子、記述スキーム及び／又は属性を追加、削除又は置換することによって更新することができる。この更新に関する情報は、一連のパケット、又は１つ以上のフラグメント更新ユニットを含むＭＰＥＧ−７規格における「アクセスユニット（access units）」を介して受信装置に伝送される。受信装置内のデコーダは、フラグメント更新ユニットに含まれる情報を適用することによって、既存のコンテンツ記述を更新する。フラグメント更新ユニットは、代表的には、記述ツリーにおける更新を適用する適切な位置にデコーダを向けるナビゲーションパスと、実行すべき更新の種類、すなわち追加、削除、置換等を特定する更新コマンドと、追加又は置換コマンドのための更新値を識別するフラグメントペイロードとからなる。現在の全ての更新コマンドは、更新位置への正しいパスを特定する必要があるため、エンコーダは、フラグメント更新ユニットを生成及び伝送する前に、デコーダに格納されている記述ツリーに関する知識を予め有していなければならない。したがって、現在のフラグメント更新ユニットは、デコーダにおいて、記述ツリーをトップダウンで（from the top down）構築することしかできない。
【発明の開示】
【課題を解決するための手段】
【００１２】
データ文書は、ナビゲーションパスによって識別される、既存のデータ文書又は文書フラグメントのいずれかのノードである更新位置に、既存のデータ文書及び文書フラグメントのうちの少なくとも一方から選択された一組の子ノードを付加することによって構築される。更新コマンドが併合コマンドであるとき、文書フラグメント内の１つ以上のノード（併合ノード）が更新位置として識別され、既存のデータ文書のノードは、文書フラグメントの併合ノードの子ノードとして併合される。更新コマンドが結合コマンドである場合、既存のデータ文書内のノード（結合ノード）が更新位置として識別され、順序付けられたリストにより、既存のデータ文書内のどのノードと、文書フラグメント内のどのノードとを結合ノードの子ノードとして結合するかが特定される。結合及び併合コマンド、ナビゲーションパス、文書フラグメントは、データ文書を構築するための一連のフラグメント更新ユニットとして送信してもよい。
【発明を実施するための最良の形態】
【００１３】
以下、添付の図面を用いて、本発明の実施例を詳細に説明する。添付の図面においては、類似した構成要素には、類似した参照符号を付す。添付の図面は、本発明を実現する特定の実施例を例示的に示している。これらの実施例は、当業者が本発明を実施することができるよう、詳細に説明するが、他の実施例も可能であり、本発明の範囲から逸脱することなく、論理的、機械的、電気的、機能的及びこの他の変更を行うことができる。したがって、以下の詳細な説明は、限定的には解釈されず、本発明の範囲は、特許請求の範囲によってのみ定義される。
【００１４】
ツリー構造を有するデータ文書は、以下に説明するように、既存のデータ文書内のノードを文書フラグメント（document fragment）内のノードで併合（merging）及び／又は結合（joining）することによって、ボトムアップで（from the bottom up）構築することができる。このような文書の具体例としては、拡張可能マークアップ言語（Extensible Markup Language：以下、ＸＭＬという。）文書及びマルチメディアコンテンツ記述文書があり、特に、ＭＰＥＧ−７規格に準拠した記述子を含む文書がある。例示的な実施例では、マルチメディアコンテンツ記述文書を用いるが、本発明はこれに限定されず、本発明を他の種類のデータ文書に適用できることは、当業者にとって明らかである。
【００１５】
まず、図１Ａに概観を示すマルチメディアコンテンツ記述配信システム（multimedia content description delivery system）１００では、送信装置１０１上のコンテンツ記述１１３は、アクセスユニット１０９として伝送される記述フラグメントを用いて、受信装置１０５上において再生される。受信装置１０５上のコンテンツ記述１１３は、後述するように、デコーダ１０７により、受信装置１０５上の既存のコンテンツ記述１１３に、アクセスユニット１０９内の記述フラグメントを併合及び／又は結合することによって、ボトムアップで構築される。送信装置１０１内のエンコーダ１０３は、後に図１Ｂを用いて説明するように、併合及び／又は結合コマンド及び記述フラグメントを含むアクセスユニット１０９を生成する。なお、「アクセスユニット」とは、ＭＰＥＧ−７規格において用いられる用語であるが、本発明はこれに限定されるわけではなく、あらゆる種類のコンテンツ記述の構築にも適用することができる。更に、本発明は、図１Ａに示すような特定の要素の構成に限定されるわけではない。例えば、送信装置１０１が他の装置からアクセスユニットを受信した後、それを送信してもよいことは、当業者には明らかである。
【００１６】
図１Ｂは、アクセスユニット１２１の具体例を示している。アクセスユニット１２１は、１つ以上のフラグメント更新ユニット１２５を含んでいる。各フラグメント更新ユニット１２５は、ナビゲーションパス１２７と、更新コマンド１２９と、フラグメントペイロード１３１とを含んでいる。更新コマンド１２９が併合コマンド１３３又は結合コマンド１３５であるときは、ナビゲーションパス１２７は、更新位置、すなわち受信装置１０５上の既存のコンテンツ記述内又は記述フラグメント内のノードを特定する。フラグメントペイロード１３１は、記述フラグメント又は記述フラグメントへの参照（reference）を含む。既存のコンテンツ記述及び／又は記述フラグメントから選択された１つ以上の子ノード（child node）の組は、更新位置に子ノードとして付加され、コンテンツ記述が構築される。更新コマンド１２０が結合コマンド１３５を含んでいるとき、フラグメント更新ユニット１２５内には、結合ソース要素１３７（破線枠で表示している）も存在する。一実施例においては、結合ソース要素１３７は、「ソース、結合パス（source, join path）」要素対１３９の順序付けられたリストであり、これについては、後に図１Ｄを用いて詳細に説明する。併合コマンド１３３又は結合コマンド１３５用のフラグメント更新ユニット１２５は、アクセスユニット１２１内において、追加、削除、置換及びリセットコマンドを含むフラグメント更新ユニット１２５と共存することができる。
【００１７】
併合コマンド１３３は、図１Ｃに示すように、既存の記述ツリーを１つ以上のノード、すなわち記述フラグメント内の併合ノードに付加することによって、フラグメント更新ユニット１２５内の記述フラグメントを受信装置上の既存の記述ツリーに併合する。ここで、併合コマンド１３３用のフラグメント更新ユニット１２５がそのフラグメントペイロード１３１として記述フラグメント１４３を含んでおり、ナビゲーションパス１２７が記述フラグメント１４３内の更新位置としてノードＢを特定するコンテキスト表現（context expression）を含んでいるとする。併合コマンド１３３は、コマンドを実行すると、記述ツリー１４１のルートとして記述フラグメント１４３を設定し、記述フラグメント１４３内のノードＢを既存の記述ツリー１４１で置換して、併合された記述ツリー１４５を生成する。
【００１８】
図１Ｄに示すように、結合コマンド１３５は、フラグメント更新ユニット１２５内の記述フラグメントを既存の記述ツリーに結合し、結合された記述ツリーを生成する。例えば、この具体例では、既存の記述ツリー１５１と、フラグメント更新ユニット１２５内の記述フラグメント１５３とがあり、既存の記述ツリー１５１内のノードＢと記述フラグメント１５３とが、結合された記述ツリー１５５における結合ノードＡ’に結合される。ナビゲーションパス１２７は、記述フラグメント１５３を結合する更新位置として、記述ツリー１５１内のノードＢを特定するコンテキスト表現を含む。記述フラグメント１５３をノードＢに結合すると、結合された記述ツリー１５５における結合ノードＡ’となる。ノードＡ及びノードＢは、いずれも子ノードとしての属性（attribute）及びサブツリー（sub-tree）を有することができるため、フラグメント更新ユニット１２５内の結合ソース要素１３７は、結合される２つのノードの子ノードから、どの子ノードを結合ノードＡ’の子ノードとして付加するか、及びこれらのノードをどのような順序で付加するかを指定する。子ノードを結合ノードに付加すると、指定された子ノードをルートとするサブツリー全体が付加され、すなわち、子ノードの付加とは、指定された子ノードの全ての子孫ノード（descendant nodes）の付加を含む。最も単純な場合では、結合動作（join operation）の結果、２つのノードの子ノードが、次の順序で、結合ノードＡ’の子ノードとして連結（concatenation）される。すなわち、まず、記述ツリー１５１内の指定された結合ノード（すなわち、ノードＢ）の全ての子ノード、次にノードＡの子ノードの順である。「ソース、結合パス」要素対１３９の順序付けられたリストにより、任意の複雑な結合も可能となる。「ソース、結合パス」要素対１３９のソース要素は、既存の記述ツリー１５１又は記述フラグメント１５３のいずれかを結合ノードＡ’の子のソースとして指定し、結合パス要素は、ソースのどの属性又はサブツリーが結合ノードの子ノードとなるかを指定する。したがって、図１Ｄに示すように、結合ソースリストは、既存の記述ツリー１５１内のノードＢの子ノードと、記述フラグメント１５３内のノードＡとをどのように結合するかを特定する２対のソース、子パス要素対を含む。第１の対は、ソースが既存の記述ツリー１５１であること、及び子パスが記述ツリー１５１における子ノードＤ（その親ノードＢに対して相対的に特定される）を指定していること示す。第２の対は、ソースが記述フラグメント１５３であり、子パスが記述フラグメント１５３内のノードＡに対する子ノードＣを指定していることを示す。この結果、既存の記述ツリー１５１からの、ノードＤをルートとし、ノードＦ及びノードＧを含むサブツリーと、記述フラグメント１５３からの、ノードＣをルートとし、ノードＨを含むサブツリーとが結合ノードＡ’の子ノードとなる。なお、記述ツリー１５１のノードＥは、結合ソースリストに含まれていないため、結合ノードＡ’の子ノードに含まれない。
【００１９】
このように、上述した併合コマンド及び結合コマンドによって、データ文書の一部を記述フラグメントとして送信し、ボトムアップで新たなデータ文書を構築することができるようになる。
【００２０】
次に、図２を用いて、本発明の実現に適しているコンピュータハードウェア及び他の動作構成要素の概観を説明するが、以下の説明は、本発明が適用される環境を限定するものではない。図２は、図１Ａに示す送信装置及び／又は受信装置として用いることができるコンピュータシステム４０の具体的構成を示している。コンピュータシステム４０は、それぞれがシステムバス６５に接続されたプロセッサ５０と、メモリ５５と、入出力装置（input/output capability）６０とを備える。メモリ５５は、プロセッサ５０によって実行されることにより、ここに説明する方法を実現する命令（instruction）を記憶するように構成されている。更に、メモリ５５は、アクセスユニットを記憶する。入出力装置６０は、アクセスユニットの送信及び受信を行う。また、入出力装置６０は、プロセッサ５０によってアクセス可能なあらゆる種類のストレージ装置を含む、様々な種類のコンピュータにより読取可能な媒体を含んでいる。なお、「コンピュータにより読取可能な媒体」という用語は、デジタル信号によってエンコードされる搬送波をも含むことは、当業者にとって明らかである。コンピュータシステム４０は、メモリ５５において実行されるオペレーティングシステムソフトウェアによって制御される。入出力装置６０及びこれに関連する媒体は、このオペレーティングシステムソフトウェア及び本発明の方法に関する命令と、アクセスユニットとを格納している。図１Ａに示すエンコーダ１０３及びデコーダ１０７は、プロセッサ５０に接続されたそれぞれ独立した構成要素であってもよく、プロセッサ５０によって実行される、コンピュータにより実行可能な命令として実現してもよい。一実施例においては、コンピュータシステム４０は、インターネットサービスプロバイダ（Internet Service Provider：以下、ＩＳＰという。）の一部であってもよく、或いは、入出力装置６０を介してＩＳＰに接続され、インターネットを介してアクセスユニットを送受信してもよい。なお、本発明は、インターネットアクセス及びインターネットウェブサイトに限定されるものではなく、直接接続されたコンピュータシステム及びプライベートネットワークに適用してもよいことは明らかである。
【００２１】
なお、コンピュータシステム４０は、異なるアーキテクチャを有する様々な可能なコンピュータシステムの一例にすぎないことは言うまでもない。典型的なコンピュータシステムは、通常、少なくともプロセッサと、メモリと、及びプロセッサとメモリを接続するバスとを備えている。なお、本発明は、マルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成によっても実現できることは当業者にとって明らかである。更に、本発明は、通信ネットワークを介してリンクされたリモートの処理装置によってタスクが実行される分散型コンピュータシステム環境によっても実現することができる。
【００２２】
次に、本発明に基づくコンピュータソフトウェアによって実現される特定の方法について、図３Ａ〜図３Ｄに示す一連のフローチャートを用いて説明する。この方法は、図３Ａ〜図３Ｄに示すブロック（動作）に対応するコンピュータにより実行可能な複数の命令からなるコンピュータプログラムとして実現される。これらのフローチャートを用いて本発明を説明することにより、当業者は、適切に構成されたコンピュータによってこの方法を実行するための命令を含むプログラムを開発することができる（コンピュータのプロセッサは、メモリを含むコンピュータにより読取可能な媒体から命令を読み出し、実行する）。コンピュータにより実行可能な命令は、コンピュータプログラミング言語として書いてもよく、ファームウェアロジックとして実現してもよい。一般的に認知されている規格に準拠したプログラミング言語で書いた場合、このような命令は、様々な種類のハードウェアプラットホーム上で実行でき、様々なオペレーティングシステムに調和する。更に、本発明では、いかなる特定のプログラミング言語にも基づくことなく、本発明を説明する。ここに開示する本発明の方法を実現するために、様々なプログラミング言語を用いてることができることは言うまでもない。更に、当分野においては、動作を行い又は結果を生じるものとして、ソフトウェアを様々な呼び方（例えば、プログラム、手続き、プロセス、アプリケーション、モジュール、ロジック等）で呼ぶことは一般的である。これらの表現は、コンピュータによるソフトウェアの実行によって、コンピュータのプロセッサが動作を実行し又は結果を生じるということを単に簡略的に表現しているにすぎない。また、本発明の範囲から逸脱することなく、図面（フローチャート）に示す処理ステップを省略してもよく、他のステップを追加してもよく、更に、ここで説明する処理ステップの実行順序を変更してもよいことは言うまでもない。
【００２３】
図３Ａは、受信装置１０５によって実行され、併合コマンド又は結合コマンド用のフラグメント更新ユニットを処理するためのデコード処理３００を示している。デコード処理３００は、受信装置１０５のデコーダ１０７によって実行してもよく、独立したモジュールによって実行してもよい。デコード処理３００は、例えば追加、削除、置換、リセット等の他の更新コマンドを含むフラグメント更新ユニットをデコードする他の処理と共に実行され、これらの処理については、特に説明しない。ブロック３０１において、フラグメント更新ユニット内のコマンドを検査する。コマンドが併合コマンドの場合（ブロック３０３）、図３Ｂに示す併合処理を実行する（ブロック３０５）。この他の場合、図３Ｃに示す結合処理を実行する（ブロック３０７）。
【００２４】
図３Ｂを用いて説明すると、併合処理３１０が起動されると、受信装置上の既存の記述ツリーＸを保存し（ブロック３１１）、フラグメントペイロードを現在のツリーＹとして設定する（ブロック３１３）。併合処理３１０は、ツリーＹ内の各ノードに対して、ブロック３１５から始まりブロック３２１で終わるノードループを実行する。ブロック３１７において、併合処理３１０は、ノードがフラグメント更新ユニット内のナビゲーションパスによって特定されているコンテキスト表現に一致しているか否かを判定し、ブロック３１９において、一致しているノードをノードリストに追加する。ツリーＹ内の全てのノードの評価が終了すると、ノードリスト内の各ノード（及び、サブツリーがある場合は、そのサブツリー）を保存されている記述ツリーＸのコピーに置換する（ブロック３２３）。
【００２５】
図３Ｃに示す結合処理３３０は、ナビゲーションパスにおいて指定されているノード（及びその全てのサブツリー）を結合ノード（Ｅ）に置換する（ブロック３３１）。結合ノードの要素及びスキーマタイプは、記述フラグメントのルートノードの要素及びスキーマタイプである。結合処理３３０は、結合ソース要素の順序付けられたリスト内の各対に対して、ブロック３３３から始まりブロック３４５で終わる対ループ（pair loop）を実行する。対ループ内において、ソース要素は、現在のソースが既存の記述ツリーであるか記述フラグメントであるかを判定するために用いられ、現在のソースの各子ノードは、ブロック３３５から始まりブロック３４１で終わる子ループにおいて評価される。ブロック３３７において、子ノードが結合パス要素に一致するときは、ブロック３３９において、この子ノードをリストＱに追加する。現在のソースの全ての子ノードの評価が完了すると、リストＱ内の子ノードを結合ノードＥに付加する。ここでは、各子ノードを最後の子（last child）ノードとして付加する（ブロック３４３）。ここで、結合処理３３０において、同じ子属性が２回以上出現した場合、最初の子属性を付加し、次回以降の同じ子属性は無視する。最後の対の評価が完了すると、結合ノードに関する全ての子ノードの付加が終了し、結合処理３３０が終了する。
【００２６】
図に示さない一実施例では、結合ソース要素１３７が空である場合、デフォルトの順序付けられたリストを用いる。デフォルトの順序付けられたリストは、既存の記述ツリーの全ての子ノードを特定する第１の対と、記述フラグメントのルートノードの全ての子ノードを特定する第２の対とを含む。デフォルトの順序付けられたリストにより、結合ノードの下の全ての子ノードが、第１及び第２の対の順で連結される。
【００２７】
図３Ｄは、併合及び結合コマンド用のフラグメント更新ユニットをエンコードするエンコード処理３５０を示している。エンコード処理３５０は、受信装置１０５において新たなコンテンツ記述を構築する必要が生じたときに起動される。エンコード処理３５０は、エンコーダ１０３に組み込んでもよく、独立したモジュールとして実行してもよく、或いは送信装置１０１で実行又は他の装置によって実行して送信装置１０１に転送してもよい。デコード処理３００は、受信装置１０５のデコーダ１０７によって実行してもよく、独立したモジュールによって実行してもよい。デコード処理３００は、例えば、追加、削除、置換、リセット等の他の更新コマンドを含むフラグメント更新ユニットをデコードする他の処理と共に実行され、これらの処理については、特に説明しない。
【００２８】
エンコード処理３５０は、アクセスユニット１０９で送信される併合又は結合コマンド用の各フラグメント更新ユニットに対して、ブロック３５１〜ブロック３６５からなる処理ループを実行する。エンコード処理３５０は、併合又は結合する記述フラグメント、若しくは記述フラグメントへの参照によってフラグメントペイロードをフォーマットする（ブロック３５３）。更新コマンドが結合コマンドである場合（ブロック３５５）、新たな記述ツリー内の結合ノードの位置を特定するコンテキスト表現を判定し、ナビゲーションパスに保存する（ブロック３５７）。次に、結合ノードの子ノードを特定する対の順序付けられたリストを作成し、結合ソース要素に保存する（ブロック３５９）。一方、更新コマンドが併合コマンドである場合、記述フラグメント内の付加ノード（attachment node）用のコンテキスト表現を判定し、ナビゲーションパスに保存する（ブロック３６１）。ナビゲーションパス、フラグメントペイロード、結合ソース要素は、これらが存在する場合、併合／結合コマンドに組み合わされ、これによりフラグメント更新ユニットを生成する（ブロック３６３）。
【００２９】
コンテンツ記述が例えばＭＰＥＧ−７コンテンツ記述等、ＸＭＬでコード化されている場合、一実施例においては、ナビゲーションパス及び結合パスは、ＸＭＬパス言語（ＸＰａｔｈ）における位置パス表現（location path expression）として表現される。ＸＰａｔｈ位置パスは、ツリー構造内のノードを通過する一組の位置ステップ（location step）からなる。各ステップは、前のステップによって特定された一組のコンテキストノードに関連する。位置ステップは、以下のような３つの部分からなる。
１．ステップ及びコンテキストノードによって選択された、例えば親、子、祖先、兄弟、属性等のツリーにおけるノード間の関係を特定する軸（axis）
２．ステップによって選択された、例えばテキスト、属性、要素等のノードの種類を特定するノード検査（node test）
３．ステップによって選択された、例えば「全てを選択(select all)」、テキスト（text）、＠属性名（@attribute-name）、序数（order-number）等の０以上の述語（predicate）
ＭＰＥＧ−７アクセスユニットのＢｉＭエンコーディングを用いる他の実施例では、パスは、記述フラグメントの種類に対応したＸＭＬスキーマタイプに関連する。
【００３０】
更に、併合及び結合コマンド用のフラグメント更新ユニットは、アクセスユニット用の既存のＭＰＥＧ−７統語構造（syntax）を以下のように拡張することによって定めることができる。
【００３１】
【数１】
0004481001.tif 000002
【００３２】
ここで、Navigation要素は、図１Ｂに示すナビゲーションパス１２７に対応し、JoinSource要素は、結合ソース要素１３７に対応する。JoinSource要素のソース部分の値「current」は、受信装置における既存の記述ツリーを特定し、値「fragment」は、フラグメントペイロードに含まれる記述フラグメントを特定する。
【００３３】
UpdateCommand要素の統語構造は、以下のように、併合及び結合コマンドを含むよう変更してもよい。
【００３４】
【数２】
0004481001.tif 000003
【００３５】
ここで、「MergeFragment」及び「JoinFragment」は、それぞれ更新コマンド１２９用の併合コマンド１３３及び結合コマンド１３５を表している。
【００３６】
フラグメントペイロード用のＭＰＥＧ−７統語構造は、併合及び結合コマンドを含むように変更する必要はない。
【００３７】
以上、コンテンツ記述をボトムアップで伝送及び構築するマルチメディアコンテンツ記述システムを説明した。ここでは、特定の実施例を示したが、ここに示した特定の実施例に代えて、同じ目的を達成するいかなる構成を用いてもよいことは当業者にとって明らかである。したがって、本出願は、本発明のあらゆる適応例及び変形例を包含するものとする。
【００３８】
また、ＭＰＥＧ−７に関連してここで用いた用語は、コンテンツ記述を提供するあらゆる環境を含むものとする。したがって、本発明は、特許請求の範囲及びその等価物によってのみ限定される。
【図面の簡単な説明】
【００３９】
【図１Ａ】本発明の実施例の動作を説明する図である。
【図１Ｂ】本発明の実施例の動作を説明する図である。
【図１Ｃ】本発明の実施例の動作を説明する図である。
【図１Ｄ】本発明の実施例の動作を説明する図である。
【図２】本発明を実現するのに適したコンピュータ環境の構成を示すブロック図である。
【図３Ａ】図１Ｂに示す受信装置によって実行されるデコード処理の手順を示すフローチャートである。
【図３Ｂ】図１Ａに示す動作に関連して実行される処理の手順を示すフローチャートである。
【図３Ｃ】図１Ａに示す動作に関連して実行される処理の手順を示すフローチャートである。
【図３Ｄ】図１Ｂに示す送信装置によって実行されるエンコード処理の手順を示すフローチャートである。
【図１Ａ】
0004481001.tif 000004
【図１Ｂ】
0004481001.tif 000005
【図１Ｃ】
0004481001.tif 000006
【図１Ｄ】
0004481001.tif 000007
【図２】
0004481001.tif 000008
【図３Ａ】
0004481001.tif 000009
【図３Ｂ】
0004481001.tif 000010
【図３Ｃ】
0004481001.tif 000011
【図３Ｄ】
0004481001.tif 000012