ツリーデータ構造を処理する方法
本発明は、相互接続された構成要素で構成されるツリーデータ構造を処理する方法に関連する。本発明によれば、本発明は、処理ユニットを前記相互接続された構成要素のサブセットとして定義する過程と、その時に、処理ユニットに割当てられたデータが、前記データに関する宛先であるユニットによって使用されるべきである処理時刻を、各処理ユニットに割当てる過程とを有する。上記の処理方法は、特にスケーラブルマルチメディアコンテンツの適応のためのストリーミングメタデータに適用され得る。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、相互接続された構成要素で構成されるツリーデータ構造を処理する方法に関連する。
【背景技術】
【0002】
本発明は、一般的に、遠隔通信の分野、特にインターネットを経由した遠隔通信に適用される。しかしながら、本発明のもう一つの特に有利なアプリケーションは、特にスケーラブルマルチメディアコンテンツを適応させるために、進行的にメタデータを送信すること(ストリーミング)に関連する。
【0003】
MPEG SC29/WG11 M11611(71st MPEG Meeting, Hong Kong, China, 17/21-01-2005)の論文は、MPEG−21標準(ISO/IEC TR 2100-1:2004, Part 1: Vision, Technologies and Strategy)によって定義された概念に属するデジタルアイテムのストリーミングの方法を定義すると共に、MPEG−21コンテキストにおける基本的なトランザクションと分配ユニットを表す。デジタルアイテムは、全てがトランザクションとエンドユースユニット(end-use unit)を構成する、1つ以上の意味的に連結されたマルチメディアコンテンツ(例えば、ビデオ、画像、オーディオ)の抽象概念、及びそれらのコンテンツに連結されたあらゆるメタデータである。
【発明の開示】
【発明が解決しようとする課題】
【0004】
デジタルアイテムと連結されたメタデータは、高い頻度で、XML(eXtensible Mark-Up Language)として知られている広く使用されるデータツリー構成言語で書かれる。デジタルアイテムは、ここでは適切なインターネットタイプのネットワークによって伝達されることを意図しているので、その中に含まれるメタデータを送信すること、より一般的にはXML文書を送信することに関する問題が発生する。
【0005】
特に、送り先の主体が、全体の文書を受信することを待つ必要がなく受信したフラグメントを使用することができるように、XML文書を流す(進行的に送信する)ことは有益である。更に、XML文書の使用は、時にはビデオストリームのような連続して送信される他のデータの使用と連結される。その場合に、相互に様々なデータストリームを同期させることが必要であると共に、この目的のために、XML文書のフラグメントにタイミング情報を割り当てることが必要である。
【0006】
上述のMPEGの論文は、デジタルアイテムをフラグメント化すると共に、獲得されたフラグメントにタイミング情報を割り当てることに関する解決方法を提案する。それは、特にXML文書に適用されるが、しかしそれらには制限されない。その解決方法は、Xpath表現を用いて送信されるべきフラグメントを示すと共に、Xpath(XML Path Language, version 1.0, W3C Recommendation, 16 November 1999)は、XML文書におけるノード、またはノードのセットを識別するための表現言語である。更に、パラメータが、それらのフラグメントに関する伝送時刻を定義するために使用される。
【0007】
しかしながら、その従来技術の処理方法は、いくつかの欠点を有している。
【0008】
・第一に、その方法は、XML文書のフラグメントを選択するために、表現言語XPathを使用する。
【0009】
XPathに関する問題は、全体のXML文書が、評価されるべき表現のためのメモリにロードされなければならないことである。小さなXML文書に関して、これは、問題ではない。一方、大きな文書に関して、それは、かなりのメモリ資源を消費し得ると共に、システム性能を著しく減少させ得る。
【0010】
・第二に、そして同じ理由のために、その方法は、オンザフライ(on the fly)で生成されたXML文書のために使用されることができない。
【0011】
・第三に、フラグメントに適用されたタイミング情報は、先行するフラグメントと相対的な時刻を定義し得ない。
【0012】
そのバックグラウンドに対して、本発明によって解決されるべき技術的な問題は、特にXMLタイプの文書におけるフラグメントのセットを選択し、しかも柔軟にタイミング情報をそれらに割り当てることを可能にする、相互接続された構成要素で構成されるツリーデータ構造を処理する方法を提案することである。
【0013】
更に、流されるべき文書のサイズに関係なく、それが限られたメモリ資源を必要とするべきであるという事実は別として、この方法は、同様に、オンザフライで生成される文書に適用できるべきである。
【課題を解決するための手段】
【0014】
本発明によれば、提示された技術的問題に対する解決方法は、以下の方法に存在し、前記方法は、
・処理ユニットを相互接続された構成要素のサブセットとして定義する過程と、
・その時に、関連する処理ユニットのデータが、それに対して前記データが宛先指定される主体によって使用されるべきである処理時刻を、各処理ユニットに割り当てる過程と
を有する。
【0015】
本発明は、更に特に、アンカーエレメントと呼ばれる所定の構成要素に基づいて、所定のアタッチメントモードに従い、前記アンカーエレメントに連結された構成要素のセットとして定義される各処理ユニットを提供する。
【0016】
本発明によれば、前記アタッチメントモードは、以下の“単一体(simple)”、“祖先(ancestors)”、“子孫(descendants)”、“祖先及び子孫(ancestors and descendants)”、及び“祖先、子孫及び先行する兄弟(ancestors, descendants, and preceding siblings)”のモードの中から選択される。これらの様々なアタッチメントモードは、以下で定義される。
【0017】
本発明は、更に、時刻アドレッシングモード、及び時刻指定モードによって定義されるべき前記処理時刻を提供する。
【0018】
本発明の第1の実施において、前記時刻アドレッシングモードは、絶対的アドレッシングモードであると共に、前記処理ユニットの処理時刻は、完全に時刻通りに定義される。前記処理時刻指定モードは、その場合に、所定の指定フォーマットにおける処理時刻である。
【0019】
本発明の第2の実施において、前記時刻アドレッシングモードは、相対的アドレッシングモードであると共に、前記処理ユニットの処理時刻は、先行する処理ユニットと比較して定義される。時間間隔から構成される処理時刻指定モードが、その場合に予想され得ると共に、同様に、前記時間間隔は、時間尺度に関する多くのユニットとして表される。
【0020】
以下に詳細に開示されたように、本発明は、静的に、もしくは動的に実施され得る。
【0021】
より正確には、静的に実施される場合、ツリー形式でデータを構造化する文書を用いて実施される本発明の方法は、前記構成要素に割り当てられたモードが、前記文書の中で指定されるという点で注目に値する。
【0022】
更に、動的に実施される場合、ツリー形式でデータを構造化する文書を用いて実施される本発明の方法は、前記文書が、前記文書に関係のある構成要素に割り当てられたモードが指定されるテンプレート文書と関連付けられるという点で注目に値する。
【0023】
特に、前記テンプレート文書は、テンプレートのセットを含み、各テンプレートは、テンプレートパターンによって、及び前記テンプレートパターンを満足させる1つまたは複数の構成要素に関して指定されるべき属性のセットによって定義されるという条件がある。
【0024】
最後に、本発明は、更に、本発明の方法を実行するためのサーバ、プログラムがコンピュータにおいて実行された場合に、本発明の方法を実行するためのプログラムのコード命令を含むコンピュータプログラム、及び、属性を用いて、処理ユニット及び関連付けられた処理時刻を指定するツリー構造の形式でデータを構造化する文書を表している信号に関連する。
【0025】
制限しない例として提供される添付された図面を参照した以下の説明は、本発明が何から構成されるか、そして実行するためにどのように削減され得るかを明瞭に説明する。
【発明を実施するための最良の形態】
【0026】
図1は、相互接続された構成要素で構成されるツリーデータ構造を示す。構成要素は、ツリーのノードに対応すると共に、一般的に文字“e1”で識別される。ツリーの第1の構成要素“e10”は、根底(root)と呼ばれる。
【0027】
図2a、図2b、及び図2cは、送り先の主体によってそのように使用され得るツリーのサブセットまたはフラグメントであるこの構造の3つの処理ユニットUT1、UT2、及びUT3を示す。フラグメントは、構成要素のあらゆる連結されたセットである。処理ユニットUT1は、構成要素e10、及びe11を含み、処理ユニットUT2は、構成要素e10、e12、e121、及びe1211を含み、処理ユニットUT3は、構成要素e10、e12、e122、e1221、及びe1222を含む。
【0028】
図3のXML文書は、図1のツリー構造と関連付けられる。もちろん、本発明は、XML文書だけに制限されないと共に、あらゆるツリーデータ構造に適用され得る。
【0029】
受け側のアプリケーションは、進行的にこの文書を使用することができると仮定されている。この状況において、処理ユニットは、文書の残り部分とは無関係に使用され得る文書のフラグメントである。
【0030】
図4a、図4b、及び図4cは、図3のオリジナルの文書から抽出された、各々処理ユニットUT1、UT2、及びUT3と関連付けられているであろうと共に、サーバのメモリにオリジナルの文書とは独立して格納されるであろうXML文書を示す。
【0031】
しかしながら、この解決方法は、データの冗長性、及び格納スペースと帯域幅の不必要な消費によって引き起こされる矛盾の危険を導入するであろう。
【0032】
本発明が図5から図10を参照して以下に説明される処理方法を提案するのは、これらの欠点を回避するためである。
【0033】
概して、この処理方法は、前記処理ユニットを定義すると共に、その時に、関連する処理ユニットのデータが、前記データの送り先を構成する主体によって使用されるべきである処理時刻を各処理ユニットに割り当てる方法を提供する。
【0034】
処理ユニットは、アンカーエレメントと呼ばれる所定の構成要素に基づいて、所定のアタッチメントモードに従い、前記アンカーエレメントに連結された構成要素のセットとして定義される。図2a、図2b、及び図2cにおいて、処理ユニットUT1、UT2、及びUT3のアンカーエレメントは、各々ツリーにおいて白丸で表されるe11、e1211、そしてe122である。
【0035】
様々なアタッチメントモード、すなわち“単一体(simple)”アタッチメントモード、“祖先(ancestors)”アタッチメントモード、“子孫(descendants)”アタッチメントモード、“祖先及び子孫(ancestors and descendants)”アタッチメントモード、そして“祖先、子孫及び先行する兄弟(ancestors, descendants, and preceding siblings)”アタッチメントモードが想定され得る。
【0036】
“単一体”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント自身のみを含む。
【0037】
“祖先”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、及びアンカーエレメントの全ての祖先を含む。
【0038】
“子孫”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、及びアンカーエレメントの全ての子孫を含む。
【0039】
“祖先及び子孫”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、アンカーエレメントの全ての子孫、及びアンカーエレメントの全ての祖先を含む。
【0040】
“祖先、子孫及び先行する兄弟”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、アンカーエレメントの子孫、アンカーエレメントの祖先、アンカーエレメントの祖先に先行する構成要素及びそれらの子孫を含む。
【0041】
図2a、図2b、及び図2cにおいて、処理ユニットUT1、UT2、及びUT3は、“祖先及び子孫”アタッチメントモードをそれらのそれぞれのアンカーエレメントに適用することによって定義される。
【0042】
アンカーエレメント、及びアタッチメントモードの概念は、送り先の主体へ流されるべきツリー構造の構成要素に適用するプロパティを定義するために使用される。
【0043】
アンカーエレメントの概念は、それによって構成要素がアンカーエレメントになるか、またはアンカーエレメントにならないプロパティに対応する。同様に、アタッチメントモードの概念は、それによって構成要素が所定のアタッチメントモードに従ってアンカーエレメントに接続されるプロパティに対応する。
【0044】
“アンカーエレメント”プロパティに従って、アンカーエレメントは、唯一の処理ユニットを定義する。一方、それは、他の処理ユニットに属することができる。相互に、処理ユニットは、唯一のアンカーエレメントによって識別される。一方、それは、他のアンカーエレメントを含むことができる。
【0045】
本発明の処理方法が、例えばXML文書によって実行されるとき、例えば、構成要素のプロパティは、XML属性によって定義されるか、またはその親の構成要素から継承されるかのいずれかである。
【0046】
図5は、図2a、図2b、及び図2cの処理ユニットが、どのように図3に示されたオリジナルのXML文書において静的に選択され得るかを示す。
【0047】
“アンカーエレメント”プロパティは、e11、e1211、及びe122に割り当てられた“アンカーエレメント”属性において反映される。アンカーエレメント属性の値は、ブール代数であり、構成要素は、値が“真”である“アンカーエレメント”属性をそれが含むと共に、その時に限り、アンカーエレメントである。
【0048】
左から右まで、及び上から下までスキャンされた文書のナビゲーション経路と対応する、XML文書の構成要素に関して定義された順序の関係が存在すると共に、構成要素の順序は、初めのタグの発生の順序となる。例えば、図3の文書において、構成要素は、以下の{e10,e11,e12,e121,e1211,e122,e1221,e1222,e13}のように順序付けられる。処理ユニットの順序は、それらを定義するアンカーエレメントの順序となる。特に先行する処理ユニットと相対的な処理ユニットの処理時刻を定義する相対的時刻アドレッシング(relative time addressing)のために、その順序は以下で使用される。
【0049】
“アンカーエレメント”プロパティは、構成要素が親の構成要素からこのプロパティを継承し得ないという意味において、継承され得ないという点に注意が必要である。
【0050】
アタッチメントモードと連結された第2のプロパティは、アンカーエレメントに基づいて処理ユニットを選択するために使用される“puMode”属性において反映される。このプロパティは、直接“puMode”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、以下の内の1つである。
【0051】
・“単一体”アタッチメントモードのための“self”;
・“祖先”アタッチメントモードのための“ancestors”;
・“子孫”アタッチメントモードのための“descendants”;
・“祖先及び子孫”アタッチメントモードのための“ancestorsDescendants”;
・“祖先、子孫及び先行する兄弟”アタッチメントモードのための“ancestorsDescendantsPrecedingSibling”
【0052】
図5において示された文書において、“puMode”属性は、根底の構成要素e10において、例えば、値“ancestorsDescendants”を有する属性“puMode”を定義するために使用される。ここで、このプロパティは、文書の全ての構成要素によって継承される。アンカーエレメントe11、e1211、及びe122は、従って、このプロパティを継承する。各々は、従って、上で説明されたそのプロパティの関数として処理ユニットを定義する。処理ユニットUT1、UT2、及びUT3は、図4a、図4b、及び図4cにおいて示されると共に、図2a、図2b、及び図2cにおいて図式的に示される3つの文書に対応するこのような方法で定義される。
【0053】
この例において、“puMode”プロパティは、“puMode”属性によって、根底の構成要素に対して1度定義されると共に、その後、他の構成要素によって継承される。他の構成要素のために別々にこのプロパティを定義することが等しく可能である。もし図2cの処理ユニットUT3が図6の処理ユニットUT’3と交換される場合、それに関してアンカーエレメントはまだe122であるが、しかしそれに関して“puMode”プロパティは、“子孫”アタッチメントモードによって定義され、その場合に、“puMode”属性の“descendants”の値は、アンカーエレメントe122において、指定されなければならない。
【0054】
属性及び継承といったようなものでプロパティを定義するために本発明によって提案されたメカニズムは、従って、細かい精度によって(すなわち、もし必要ならば各構成要素に関して独立して)及び能率的にプロパティを定義すると共に、もし文書のサブツリーの構成要素が同じプロパティを共有する場合に、そのプロパティを定義するために、各構成要素に属性を加えることは必要ではない。それは、サブツリーの根底の構成要素に属性を加えるのに十分であり、そして、このように定義されたプロパティは、その場合に、それの全ての子孫によって継承される。
【0055】
まさにこのメカニズムは、類似性によって処理時刻を処理ユニットに割り当てるために適用される。
【0056】
第1のプロパティ“timeMode”は、時刻アドレッシングモード(time addressing mode)を定義する。それは、“timeMode”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。“timeMode”属性の値は、以下のとおりである。
【0057】
・“undefined”:時刻アドレッシングモードは定義されていない。
・“relative”:時刻アドレッシングモードは相対的であり、すなわち処理ユニットの処理時刻は、先行する処理ユニットと比較して相対的に定義される。
・“absolute”:時刻アドレッシングモードは絶対的であり、すなわち処理ユニットの処理時刻は、絶対的に定義される。
【0058】
第2のプロパティ“timeScale”は、相対的時刻アドレッシングのための時間尺度を定義する。それは、“timeScale”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、時間尺度、すなわち1秒当たりのユニットの数を定義する整数である。
【0059】
第3のプロパティ“timeInterval”は、相対的時刻アドレッシングのための連続した2つの処理ユニットの間の時間間隔を定義する。それは、“timeInterval”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、先行する処理ユニットと比較した相対的な時刻ユニットの数を定義する整数であると共に、時刻ユニットは、上で定義された“timeScale”プロパティによって定義される。
【0060】
第4のプロパティ“absTimeScheme”は、絶対的時刻アドレッシングのためのアドレッシングフォーマットを定義する。それは、“absTimeScheme”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、時刻アドレッシングフォーマットを定義するキャラクタストリーム(character stream)である。例えば、ストリーム“mp7t”は、MPEG7のMDS(MediaTimePointType)によって定義された時刻アドレッシングフォーマットを示す。
【0061】
最後に、第5のプロパティ“absTime”は、絶対的時刻アドレッシングのための処理時刻を定義する。それは、継承されないと共に、“absTime”属性によって定義される。その値は、“absTimeScheme”プロパティによって定義された時刻アドレッシングフォーマットに従って時刻を定義するキャラクタストリームである。MPEG7のアドレッシングフォーマットに関するこの値の1つの例は、“T17:30:45:2F10”である。
【0062】
例えば、図8において示された文書において、根底の構成要素e10に適用された“timeMode”属性、“timeScale”属性、及び“timeInterval”属性は、その構成要素に関する時刻アドレッシングが相対的なものであり、時間尺度が1秒当たり22050ユニットであり、そして、2つの処理ユニットの間の期間が1024ユニットである、ということを示す。ここで、これらのプロパティは、文書の構成要素によって、及び特にアンカーエレメントによって継承される。処理ユニットは、これらのプロパティをそれらのそれぞれのアンカーエレメントから継承する。処理ユニットUT1は、従って、時刻t1=0において、受け側アプリケーションに提示され、処理ユニットUT2は、時刻t2=1024/22050秒において、受け側アプリケーションに提示され、そして、処理ユニットUT3は、時刻t3=2048/22050秒において、受け側アプリケーションに提示されることになる。
【0063】
図8において例証されたように、どのように処理ユニットとそれらに関連する処理時刻を定義するプロパティが、オリジナルの文書に静的に加えられた属性を用いて指定され得るかが、上で示された。
【0064】
どのようにこれらの属性がテンプレートのセットを適用することによって動的に加えられ得るかは、以下で説明される。
【0065】
この動的な実装において、図3で示されるようなオリジナルのXML文書は、その中で各テンプレートがテンプレートパターンによって定義されるテンプレート文書と関連付けられる。このパターンは、それに対してこのテンプレートが適用されることになるXMLの構成要素、及びその場合にそれらの構成要素に加えられることになる属性のセットを定義する。全ての属性及びテンプレートのシンタックスは、図10において定義される。
【0066】
図9は、動的なテンプレート文書の例を与える。この例の結果は、図8の静的な命令の使用と同じである。
【0067】
テンプレートパターンは、STX(Streaming Transformations for XML (STX), Version 1.0, Working Draft 1 July 2004)で定義された表現言語STXPathから得られたシンタックスによって書かれる。STXは、オンザフライ(on the fly)で、すなわち最初に文書の全てをメモリにロードせずに、XML文書を変換するためのXML変換言語である。これは、大きなXML文書、及びオンザフライで生成されると共に、従ってそれらの全体で利用可能にされることができない文書の変換を可能にする。STXPathは、従って、特に本発明の状況に適当である。
【0068】
STXPathシンタックスは、XPathに近い。その一方、その意味論は異なる。STXPathと同様に、XPathにおいて、表現は文脈構成要素(context element)と比較して解決される。表現を評価するために、XPathは、文書全体に存在する文脈を考慮しなければならない。一方、STXPathは、文脈構成要素及びその祖先のスタックだけを考察する。STXPathにおける問題の解決に必要な文脈は、従って、限られていると共に、特に本発明の状況に適当である。STXPathは、特に文脈の構成要素名、それらの序数、そして潜在的な属性の名前及び値の制約を表すために使用される。
【0069】
例えば、XPath表現“/e11/e12”は、親の構成要素がe11と名前を付けられると共に文書の根底(root)である、e12と名前を付けられた全ての構成要素を選択する。STXPathにおける同じ表現は、最大でも1つの構成要素、すなわちその親の構成要素がe12と名前を付けられ、そして更にその親がe11と名前を付けられる文脈構成要素の祖先のスタックにおける構成要素を選択する。
【0070】
所定の実装は、柔軟でかつ高速なフィルタ処理を提供するために、STXPathのサブセットを使用することができる。
【0071】
本発明の方法による、図3のXML文書の構成要素の処理は、図11を参照して、(a)スタティックモードの場合、及び(b)ダイナミックモードの場合が、以下で説明される。
【0072】
オリジナルのXML文書は、構文解析プログラム(構文アナライザ)と呼ばれるソフトウェアモジュールによって読み込まれる。いくつかの種類の構文解析プログラムは、広く使用される。これらのモジュールは、アプリケーションが、所定のアプリケーションプログラミングインタフェース(API)を経由して、XML文書に含まれる情報にアクセスすることを可能にする。XML文書に含まれる全ての情報は、ウェブコンソーシアム(Web Consortium)によって標準化された情報セット(Infoset)と呼ばれる抽象モデルによってモデル化される(XML Information Set (Second Edition), W3C Recommendation 4 February 2004)。
【0073】
本発明は、DOM(Document Object Model)(Document Object System Level 2 Core Specification, Version 1.0, W3C Recommendation 13 November 2004)、またはSAX(Simple API for XML)のような、いくつかのタイプの構文解析プログラムによって使用され得る。本発明は、メモリ消費に関して効率的な実装であるSAXを用いてここで説明される。
【0074】
SAXタイプの構文解析プログラムは、XML文書を読み込むと共に、コンテンツを示す一連のイベントを出力する。例えば、図3において表された一般的な文書の読み込みは、実質上、以下の表1に示す一連のイベントを生じさせる。
【0075】
【表1】
【0076】
本発明は、処理ユニットを定義する情報によって、XML文書の情報セット(Infoset)を強化する。
【0077】
スタティックモード(a)において、図8において示されたように、属性がオリジナルの文書に加えられる。SAX構文解析プログラムは、従って、強化された情報を含むSAXイベントシーケンスを生成する。
【0078】
ダイナミックモード(b)において、オリジナルの文書を分析することによって生成されたイベントは、オンザフライで、属性を加えるために、テンプレートのバンクによって処理される。ストリーミング命令プロセッサと呼ばれるモジュールは、オリジナルの文書を読み込む構文解析プログラムによって出力されたSAXイベントを入力として受信し、ダイナミックストリーミング命令(Dynamic Streaming Instructions)と呼ばれる文書において指定されたテンプレートを適用し、そして強化された情報を含むSAXイベントシーケンスを出力する。エンコーダは、従って、ちょうどそれらの命令が静的にオリジナルのXML文書に加えられたかのように、ストリーミング命令によって強化された情報セット(Infoset)を受信する。処理の残りは、従って静的な命令の状況と同じである。
【0079】
エンコーダは、その場合に、それらを符号化するために、処理ユニットを定義する情報を使用する。エンコーダの出力は、連続するアクセスユニットを解読することが、ストリーミング命令によって定義されるように処理ユニットを復元することができるように、移送するために符号化されたデータの主体である一連のアクセスユニットUAから構成される。
【0080】
MPEG7システム(ISO/IEC 15938-1: 2002, Part 1: Systems)、TeM(text encoding)、BiM(binary encoding)のような、いくつかのエンコーディング方法が使用され得る。各符号化方法は、いくつかのエンコーディング戦略を有することができる。
【0081】
アクセスユニットは、その場合に、ネットワーク(例えば、インターネット)を経由して送信され得るか、もしくは、後で送信されるためにメモリに連結され得る。図11は、これらの場合の両方を示す。いずれの場合も、各アクセスユニットは、解読された後で適切な所で使用されるために、処理ユニットが送り先の主体によって利用可能でなければならない時刻を指定する処理時刻と関連付けられる。図11の右手部分は、送り先の主体によるアクセスユニットの使用を示す。
【図面の簡単な説明】
【0082】
【図1】相互接続された構成要素のツリー構造を示す図である。
【図2a】図1のツリー構造が提供する処理ユニットを示す図である。
【図2b】図1のツリー構造が提供する処理ユニットを示す図である。
【図2c】図1のツリー構造が提供する処理ユニットを示す図である。
【図3】図1のツリー構造と関連付けられたXML文書を示す図である。
【図4a】図2aの処理ユニットと関連付けられたXML文書を示す図である。
【図4b】図2bの処理ユニットと関連付けられたXML文書を示す図である。
【図4c】図2cの処理ユニットと関連付けられたXML文書を示す図である。
【図5】本発明の処理方法に従って図2a、図2b、及び図2cの処理ユニットと関連付けられたXML文書を示す図である。
【図6】図2cの処理ユニットの変形を示す図である。
【図7】図6の変形と関連付けられた図5のXML文書の変形を示す図である。
【図8】処理ユニットに関する処理時刻属性を含む、図5のXML文書を示す図である。
【図9】図3のXML文書と関連付けられたテンプレート文書を示す図である。
【図10】本発明の方法によって使用される属性、及びテンプレートのシンタックスを示す図である。
【図11】(a)スタティックモードにおける、及び(b)ダイナミックモードにおける本発明の方法に関して、図3のXML文書の構成要素の処理ストリームを示す図である。
【符号の説明】
【0083】
e10、e11、e12、e13 構成要素
e121、e122 構成要素
e1211、e1221、e1222 構成要素
UT1、UT2、UT3 処理ユニット
UA アクセスユニット
【技術分野】
【0001】
本発明は、相互接続された構成要素で構成されるツリーデータ構造を処理する方法に関連する。
【背景技術】
【0002】
本発明は、一般的に、遠隔通信の分野、特にインターネットを経由した遠隔通信に適用される。しかしながら、本発明のもう一つの特に有利なアプリケーションは、特にスケーラブルマルチメディアコンテンツを適応させるために、進行的にメタデータを送信すること(ストリーミング)に関連する。
【0003】
MPEG SC29/WG11 M11611(71st MPEG Meeting, Hong Kong, China, 17/21-01-2005)の論文は、MPEG−21標準(ISO/IEC TR 2100-1:2004, Part 1: Vision, Technologies and Strategy)によって定義された概念に属するデジタルアイテムのストリーミングの方法を定義すると共に、MPEG−21コンテキストにおける基本的なトランザクションと分配ユニットを表す。デジタルアイテムは、全てがトランザクションとエンドユースユニット(end-use unit)を構成する、1つ以上の意味的に連結されたマルチメディアコンテンツ(例えば、ビデオ、画像、オーディオ)の抽象概念、及びそれらのコンテンツに連結されたあらゆるメタデータである。
【発明の開示】
【発明が解決しようとする課題】
【0004】
デジタルアイテムと連結されたメタデータは、高い頻度で、XML(eXtensible Mark-Up Language)として知られている広く使用されるデータツリー構成言語で書かれる。デジタルアイテムは、ここでは適切なインターネットタイプのネットワークによって伝達されることを意図しているので、その中に含まれるメタデータを送信すること、より一般的にはXML文書を送信することに関する問題が発生する。
【0005】
特に、送り先の主体が、全体の文書を受信することを待つ必要がなく受信したフラグメントを使用することができるように、XML文書を流す(進行的に送信する)ことは有益である。更に、XML文書の使用は、時にはビデオストリームのような連続して送信される他のデータの使用と連結される。その場合に、相互に様々なデータストリームを同期させることが必要であると共に、この目的のために、XML文書のフラグメントにタイミング情報を割り当てることが必要である。
【0006】
上述のMPEGの論文は、デジタルアイテムをフラグメント化すると共に、獲得されたフラグメントにタイミング情報を割り当てることに関する解決方法を提案する。それは、特にXML文書に適用されるが、しかしそれらには制限されない。その解決方法は、Xpath表現を用いて送信されるべきフラグメントを示すと共に、Xpath(XML Path Language, version 1.0, W3C Recommendation, 16 November 1999)は、XML文書におけるノード、またはノードのセットを識別するための表現言語である。更に、パラメータが、それらのフラグメントに関する伝送時刻を定義するために使用される。
【0007】
しかしながら、その従来技術の処理方法は、いくつかの欠点を有している。
【0008】
・第一に、その方法は、XML文書のフラグメントを選択するために、表現言語XPathを使用する。
【0009】
XPathに関する問題は、全体のXML文書が、評価されるべき表現のためのメモリにロードされなければならないことである。小さなXML文書に関して、これは、問題ではない。一方、大きな文書に関して、それは、かなりのメモリ資源を消費し得ると共に、システム性能を著しく減少させ得る。
【0010】
・第二に、そして同じ理由のために、その方法は、オンザフライ(on the fly)で生成されたXML文書のために使用されることができない。
【0011】
・第三に、フラグメントに適用されたタイミング情報は、先行するフラグメントと相対的な時刻を定義し得ない。
【0012】
そのバックグラウンドに対して、本発明によって解決されるべき技術的な問題は、特にXMLタイプの文書におけるフラグメントのセットを選択し、しかも柔軟にタイミング情報をそれらに割り当てることを可能にする、相互接続された構成要素で構成されるツリーデータ構造を処理する方法を提案することである。
【0013】
更に、流されるべき文書のサイズに関係なく、それが限られたメモリ資源を必要とするべきであるという事実は別として、この方法は、同様に、オンザフライで生成される文書に適用できるべきである。
【課題を解決するための手段】
【0014】
本発明によれば、提示された技術的問題に対する解決方法は、以下の方法に存在し、前記方法は、
・処理ユニットを相互接続された構成要素のサブセットとして定義する過程と、
・その時に、関連する処理ユニットのデータが、それに対して前記データが宛先指定される主体によって使用されるべきである処理時刻を、各処理ユニットに割り当てる過程と
を有する。
【0015】
本発明は、更に特に、アンカーエレメントと呼ばれる所定の構成要素に基づいて、所定のアタッチメントモードに従い、前記アンカーエレメントに連結された構成要素のセットとして定義される各処理ユニットを提供する。
【0016】
本発明によれば、前記アタッチメントモードは、以下の“単一体(simple)”、“祖先(ancestors)”、“子孫(descendants)”、“祖先及び子孫(ancestors and descendants)”、及び“祖先、子孫及び先行する兄弟(ancestors, descendants, and preceding siblings)”のモードの中から選択される。これらの様々なアタッチメントモードは、以下で定義される。
【0017】
本発明は、更に、時刻アドレッシングモード、及び時刻指定モードによって定義されるべき前記処理時刻を提供する。
【0018】
本発明の第1の実施において、前記時刻アドレッシングモードは、絶対的アドレッシングモードであると共に、前記処理ユニットの処理時刻は、完全に時刻通りに定義される。前記処理時刻指定モードは、その場合に、所定の指定フォーマットにおける処理時刻である。
【0019】
本発明の第2の実施において、前記時刻アドレッシングモードは、相対的アドレッシングモードであると共に、前記処理ユニットの処理時刻は、先行する処理ユニットと比較して定義される。時間間隔から構成される処理時刻指定モードが、その場合に予想され得ると共に、同様に、前記時間間隔は、時間尺度に関する多くのユニットとして表される。
【0020】
以下に詳細に開示されたように、本発明は、静的に、もしくは動的に実施され得る。
【0021】
より正確には、静的に実施される場合、ツリー形式でデータを構造化する文書を用いて実施される本発明の方法は、前記構成要素に割り当てられたモードが、前記文書の中で指定されるという点で注目に値する。
【0022】
更に、動的に実施される場合、ツリー形式でデータを構造化する文書を用いて実施される本発明の方法は、前記文書が、前記文書に関係のある構成要素に割り当てられたモードが指定されるテンプレート文書と関連付けられるという点で注目に値する。
【0023】
特に、前記テンプレート文書は、テンプレートのセットを含み、各テンプレートは、テンプレートパターンによって、及び前記テンプレートパターンを満足させる1つまたは複数の構成要素に関して指定されるべき属性のセットによって定義されるという条件がある。
【0024】
最後に、本発明は、更に、本発明の方法を実行するためのサーバ、プログラムがコンピュータにおいて実行された場合に、本発明の方法を実行するためのプログラムのコード命令を含むコンピュータプログラム、及び、属性を用いて、処理ユニット及び関連付けられた処理時刻を指定するツリー構造の形式でデータを構造化する文書を表している信号に関連する。
【0025】
制限しない例として提供される添付された図面を参照した以下の説明は、本発明が何から構成されるか、そして実行するためにどのように削減され得るかを明瞭に説明する。
【発明を実施するための最良の形態】
【0026】
図1は、相互接続された構成要素で構成されるツリーデータ構造を示す。構成要素は、ツリーのノードに対応すると共に、一般的に文字“e1”で識別される。ツリーの第1の構成要素“e10”は、根底(root)と呼ばれる。
【0027】
図2a、図2b、及び図2cは、送り先の主体によってそのように使用され得るツリーのサブセットまたはフラグメントであるこの構造の3つの処理ユニットUT1、UT2、及びUT3を示す。フラグメントは、構成要素のあらゆる連結されたセットである。処理ユニットUT1は、構成要素e10、及びe11を含み、処理ユニットUT2は、構成要素e10、e12、e121、及びe1211を含み、処理ユニットUT3は、構成要素e10、e12、e122、e1221、及びe1222を含む。
【0028】
図3のXML文書は、図1のツリー構造と関連付けられる。もちろん、本発明は、XML文書だけに制限されないと共に、あらゆるツリーデータ構造に適用され得る。
【0029】
受け側のアプリケーションは、進行的にこの文書を使用することができると仮定されている。この状況において、処理ユニットは、文書の残り部分とは無関係に使用され得る文書のフラグメントである。
【0030】
図4a、図4b、及び図4cは、図3のオリジナルの文書から抽出された、各々処理ユニットUT1、UT2、及びUT3と関連付けられているであろうと共に、サーバのメモリにオリジナルの文書とは独立して格納されるであろうXML文書を示す。
【0031】
しかしながら、この解決方法は、データの冗長性、及び格納スペースと帯域幅の不必要な消費によって引き起こされる矛盾の危険を導入するであろう。
【0032】
本発明が図5から図10を参照して以下に説明される処理方法を提案するのは、これらの欠点を回避するためである。
【0033】
概して、この処理方法は、前記処理ユニットを定義すると共に、その時に、関連する処理ユニットのデータが、前記データの送り先を構成する主体によって使用されるべきである処理時刻を各処理ユニットに割り当てる方法を提供する。
【0034】
処理ユニットは、アンカーエレメントと呼ばれる所定の構成要素に基づいて、所定のアタッチメントモードに従い、前記アンカーエレメントに連結された構成要素のセットとして定義される。図2a、図2b、及び図2cにおいて、処理ユニットUT1、UT2、及びUT3のアンカーエレメントは、各々ツリーにおいて白丸で表されるe11、e1211、そしてe122である。
【0035】
様々なアタッチメントモード、すなわち“単一体(simple)”アタッチメントモード、“祖先(ancestors)”アタッチメントモード、“子孫(descendants)”アタッチメントモード、“祖先及び子孫(ancestors and descendants)”アタッチメントモード、そして“祖先、子孫及び先行する兄弟(ancestors, descendants, and preceding siblings)”アタッチメントモードが想定され得る。
【0036】
“単一体”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント自身のみを含む。
【0037】
“祖先”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、及びアンカーエレメントの全ての祖先を含む。
【0038】
“子孫”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、及びアンカーエレメントの全ての子孫を含む。
【0039】
“祖先及び子孫”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、アンカーエレメントの全ての子孫、及びアンカーエレメントの全ての祖先を含む。
【0040】
“祖先、子孫及び先行する兄弟”アタッチメントモードにおいて、処理ユニットは、アンカーエレメント、アンカーエレメントの子孫、アンカーエレメントの祖先、アンカーエレメントの祖先に先行する構成要素及びそれらの子孫を含む。
【0041】
図2a、図2b、及び図2cにおいて、処理ユニットUT1、UT2、及びUT3は、“祖先及び子孫”アタッチメントモードをそれらのそれぞれのアンカーエレメントに適用することによって定義される。
【0042】
アンカーエレメント、及びアタッチメントモードの概念は、送り先の主体へ流されるべきツリー構造の構成要素に適用するプロパティを定義するために使用される。
【0043】
アンカーエレメントの概念は、それによって構成要素がアンカーエレメントになるか、またはアンカーエレメントにならないプロパティに対応する。同様に、アタッチメントモードの概念は、それによって構成要素が所定のアタッチメントモードに従ってアンカーエレメントに接続されるプロパティに対応する。
【0044】
“アンカーエレメント”プロパティに従って、アンカーエレメントは、唯一の処理ユニットを定義する。一方、それは、他の処理ユニットに属することができる。相互に、処理ユニットは、唯一のアンカーエレメントによって識別される。一方、それは、他のアンカーエレメントを含むことができる。
【0045】
本発明の処理方法が、例えばXML文書によって実行されるとき、例えば、構成要素のプロパティは、XML属性によって定義されるか、またはその親の構成要素から継承されるかのいずれかである。
【0046】
図5は、図2a、図2b、及び図2cの処理ユニットが、どのように図3に示されたオリジナルのXML文書において静的に選択され得るかを示す。
【0047】
“アンカーエレメント”プロパティは、e11、e1211、及びe122に割り当てられた“アンカーエレメント”属性において反映される。アンカーエレメント属性の値は、ブール代数であり、構成要素は、値が“真”である“アンカーエレメント”属性をそれが含むと共に、その時に限り、アンカーエレメントである。
【0048】
左から右まで、及び上から下までスキャンされた文書のナビゲーション経路と対応する、XML文書の構成要素に関して定義された順序の関係が存在すると共に、構成要素の順序は、初めのタグの発生の順序となる。例えば、図3の文書において、構成要素は、以下の{e10,e11,e12,e121,e1211,e122,e1221,e1222,e13}のように順序付けられる。処理ユニットの順序は、それらを定義するアンカーエレメントの順序となる。特に先行する処理ユニットと相対的な処理ユニットの処理時刻を定義する相対的時刻アドレッシング(relative time addressing)のために、その順序は以下で使用される。
【0049】
“アンカーエレメント”プロパティは、構成要素が親の構成要素からこのプロパティを継承し得ないという意味において、継承され得ないという点に注意が必要である。
【0050】
アタッチメントモードと連結された第2のプロパティは、アンカーエレメントに基づいて処理ユニットを選択するために使用される“puMode”属性において反映される。このプロパティは、直接“puMode”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、以下の内の1つである。
【0051】
・“単一体”アタッチメントモードのための“self”;
・“祖先”アタッチメントモードのための“ancestors”;
・“子孫”アタッチメントモードのための“descendants”;
・“祖先及び子孫”アタッチメントモードのための“ancestorsDescendants”;
・“祖先、子孫及び先行する兄弟”アタッチメントモードのための“ancestorsDescendantsPrecedingSibling”
【0052】
図5において示された文書において、“puMode”属性は、根底の構成要素e10において、例えば、値“ancestorsDescendants”を有する属性“puMode”を定義するために使用される。ここで、このプロパティは、文書の全ての構成要素によって継承される。アンカーエレメントe11、e1211、及びe122は、従って、このプロパティを継承する。各々は、従って、上で説明されたそのプロパティの関数として処理ユニットを定義する。処理ユニットUT1、UT2、及びUT3は、図4a、図4b、及び図4cにおいて示されると共に、図2a、図2b、及び図2cにおいて図式的に示される3つの文書に対応するこのような方法で定義される。
【0053】
この例において、“puMode”プロパティは、“puMode”属性によって、根底の構成要素に対して1度定義されると共に、その後、他の構成要素によって継承される。他の構成要素のために別々にこのプロパティを定義することが等しく可能である。もし図2cの処理ユニットUT3が図6の処理ユニットUT’3と交換される場合、それに関してアンカーエレメントはまだe122であるが、しかしそれに関して“puMode”プロパティは、“子孫”アタッチメントモードによって定義され、その場合に、“puMode”属性の“descendants”の値は、アンカーエレメントe122において、指定されなければならない。
【0054】
属性及び継承といったようなものでプロパティを定義するために本発明によって提案されたメカニズムは、従って、細かい精度によって(すなわち、もし必要ならば各構成要素に関して独立して)及び能率的にプロパティを定義すると共に、もし文書のサブツリーの構成要素が同じプロパティを共有する場合に、そのプロパティを定義するために、各構成要素に属性を加えることは必要ではない。それは、サブツリーの根底の構成要素に属性を加えるのに十分であり、そして、このように定義されたプロパティは、その場合に、それの全ての子孫によって継承される。
【0055】
まさにこのメカニズムは、類似性によって処理時刻を処理ユニットに割り当てるために適用される。
【0056】
第1のプロパティ“timeMode”は、時刻アドレッシングモード(time addressing mode)を定義する。それは、“timeMode”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。“timeMode”属性の値は、以下のとおりである。
【0057】
・“undefined”:時刻アドレッシングモードは定義されていない。
・“relative”:時刻アドレッシングモードは相対的であり、すなわち処理ユニットの処理時刻は、先行する処理ユニットと比較して相対的に定義される。
・“absolute”:時刻アドレッシングモードは絶対的であり、すなわち処理ユニットの処理時刻は、絶対的に定義される。
【0058】
第2のプロパティ“timeScale”は、相対的時刻アドレッシングのための時間尺度を定義する。それは、“timeScale”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、時間尺度、すなわち1秒当たりのユニットの数を定義する整数である。
【0059】
第3のプロパティ“timeInterval”は、相対的時刻アドレッシングのための連続した2つの処理ユニットの間の時間間隔を定義する。それは、“timeInterval”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、先行する処理ユニットと比較した相対的な時刻ユニットの数を定義する整数であると共に、時刻ユニットは、上で定義された“timeScale”プロパティによって定義される。
【0060】
第4のプロパティ“absTimeScheme”は、絶対的時刻アドレッシングのためのアドレッシングフォーマットを定義する。それは、“absTimeScheme”属性によって定義されるか、もしくは親の構成要素から継承されるかのいずれかである。その値は、時刻アドレッシングフォーマットを定義するキャラクタストリーム(character stream)である。例えば、ストリーム“mp7t”は、MPEG7のMDS(MediaTimePointType)によって定義された時刻アドレッシングフォーマットを示す。
【0061】
最後に、第5のプロパティ“absTime”は、絶対的時刻アドレッシングのための処理時刻を定義する。それは、継承されないと共に、“absTime”属性によって定義される。その値は、“absTimeScheme”プロパティによって定義された時刻アドレッシングフォーマットに従って時刻を定義するキャラクタストリームである。MPEG7のアドレッシングフォーマットに関するこの値の1つの例は、“T17:30:45:2F10”である。
【0062】
例えば、図8において示された文書において、根底の構成要素e10に適用された“timeMode”属性、“timeScale”属性、及び“timeInterval”属性は、その構成要素に関する時刻アドレッシングが相対的なものであり、時間尺度が1秒当たり22050ユニットであり、そして、2つの処理ユニットの間の期間が1024ユニットである、ということを示す。ここで、これらのプロパティは、文書の構成要素によって、及び特にアンカーエレメントによって継承される。処理ユニットは、これらのプロパティをそれらのそれぞれのアンカーエレメントから継承する。処理ユニットUT1は、従って、時刻t1=0において、受け側アプリケーションに提示され、処理ユニットUT2は、時刻t2=1024/22050秒において、受け側アプリケーションに提示され、そして、処理ユニットUT3は、時刻t3=2048/22050秒において、受け側アプリケーションに提示されることになる。
【0063】
図8において例証されたように、どのように処理ユニットとそれらに関連する処理時刻を定義するプロパティが、オリジナルの文書に静的に加えられた属性を用いて指定され得るかが、上で示された。
【0064】
どのようにこれらの属性がテンプレートのセットを適用することによって動的に加えられ得るかは、以下で説明される。
【0065】
この動的な実装において、図3で示されるようなオリジナルのXML文書は、その中で各テンプレートがテンプレートパターンによって定義されるテンプレート文書と関連付けられる。このパターンは、それに対してこのテンプレートが適用されることになるXMLの構成要素、及びその場合にそれらの構成要素に加えられることになる属性のセットを定義する。全ての属性及びテンプレートのシンタックスは、図10において定義される。
【0066】
図9は、動的なテンプレート文書の例を与える。この例の結果は、図8の静的な命令の使用と同じである。
【0067】
テンプレートパターンは、STX(Streaming Transformations for XML (STX), Version 1.0, Working Draft 1 July 2004)で定義された表現言語STXPathから得られたシンタックスによって書かれる。STXは、オンザフライ(on the fly)で、すなわち最初に文書の全てをメモリにロードせずに、XML文書を変換するためのXML変換言語である。これは、大きなXML文書、及びオンザフライで生成されると共に、従ってそれらの全体で利用可能にされることができない文書の変換を可能にする。STXPathは、従って、特に本発明の状況に適当である。
【0068】
STXPathシンタックスは、XPathに近い。その一方、その意味論は異なる。STXPathと同様に、XPathにおいて、表現は文脈構成要素(context element)と比較して解決される。表現を評価するために、XPathは、文書全体に存在する文脈を考慮しなければならない。一方、STXPathは、文脈構成要素及びその祖先のスタックだけを考察する。STXPathにおける問題の解決に必要な文脈は、従って、限られていると共に、特に本発明の状況に適当である。STXPathは、特に文脈の構成要素名、それらの序数、そして潜在的な属性の名前及び値の制約を表すために使用される。
【0069】
例えば、XPath表現“/e11/e12”は、親の構成要素がe11と名前を付けられると共に文書の根底(root)である、e12と名前を付けられた全ての構成要素を選択する。STXPathにおける同じ表現は、最大でも1つの構成要素、すなわちその親の構成要素がe12と名前を付けられ、そして更にその親がe11と名前を付けられる文脈構成要素の祖先のスタックにおける構成要素を選択する。
【0070】
所定の実装は、柔軟でかつ高速なフィルタ処理を提供するために、STXPathのサブセットを使用することができる。
【0071】
本発明の方法による、図3のXML文書の構成要素の処理は、図11を参照して、(a)スタティックモードの場合、及び(b)ダイナミックモードの場合が、以下で説明される。
【0072】
オリジナルのXML文書は、構文解析プログラム(構文アナライザ)と呼ばれるソフトウェアモジュールによって読み込まれる。いくつかの種類の構文解析プログラムは、広く使用される。これらのモジュールは、アプリケーションが、所定のアプリケーションプログラミングインタフェース(API)を経由して、XML文書に含まれる情報にアクセスすることを可能にする。XML文書に含まれる全ての情報は、ウェブコンソーシアム(Web Consortium)によって標準化された情報セット(Infoset)と呼ばれる抽象モデルによってモデル化される(XML Information Set (Second Edition), W3C Recommendation 4 February 2004)。
【0073】
本発明は、DOM(Document Object Model)(Document Object System Level 2 Core Specification, Version 1.0, W3C Recommendation 13 November 2004)、またはSAX(Simple API for XML)のような、いくつかのタイプの構文解析プログラムによって使用され得る。本発明は、メモリ消費に関して効率的な実装であるSAXを用いてここで説明される。
【0074】
SAXタイプの構文解析プログラムは、XML文書を読み込むと共に、コンテンツを示す一連のイベントを出力する。例えば、図3において表された一般的な文書の読み込みは、実質上、以下の表1に示す一連のイベントを生じさせる。
【0075】
【表1】
【0076】
本発明は、処理ユニットを定義する情報によって、XML文書の情報セット(Infoset)を強化する。
【0077】
スタティックモード(a)において、図8において示されたように、属性がオリジナルの文書に加えられる。SAX構文解析プログラムは、従って、強化された情報を含むSAXイベントシーケンスを生成する。
【0078】
ダイナミックモード(b)において、オリジナルの文書を分析することによって生成されたイベントは、オンザフライで、属性を加えるために、テンプレートのバンクによって処理される。ストリーミング命令プロセッサと呼ばれるモジュールは、オリジナルの文書を読み込む構文解析プログラムによって出力されたSAXイベントを入力として受信し、ダイナミックストリーミング命令(Dynamic Streaming Instructions)と呼ばれる文書において指定されたテンプレートを適用し、そして強化された情報を含むSAXイベントシーケンスを出力する。エンコーダは、従って、ちょうどそれらの命令が静的にオリジナルのXML文書に加えられたかのように、ストリーミング命令によって強化された情報セット(Infoset)を受信する。処理の残りは、従って静的な命令の状況と同じである。
【0079】
エンコーダは、その場合に、それらを符号化するために、処理ユニットを定義する情報を使用する。エンコーダの出力は、連続するアクセスユニットを解読することが、ストリーミング命令によって定義されるように処理ユニットを復元することができるように、移送するために符号化されたデータの主体である一連のアクセスユニットUAから構成される。
【0080】
MPEG7システム(ISO/IEC 15938-1: 2002, Part 1: Systems)、TeM(text encoding)、BiM(binary encoding)のような、いくつかのエンコーディング方法が使用され得る。各符号化方法は、いくつかのエンコーディング戦略を有することができる。
【0081】
アクセスユニットは、その場合に、ネットワーク(例えば、インターネット)を経由して送信され得るか、もしくは、後で送信されるためにメモリに連結され得る。図11は、これらの場合の両方を示す。いずれの場合も、各アクセスユニットは、解読された後で適切な所で使用されるために、処理ユニットが送り先の主体によって利用可能でなければならない時刻を指定する処理時刻と関連付けられる。図11の右手部分は、送り先の主体によるアクセスユニットの使用を示す。
【図面の簡単な説明】
【0082】
【図1】相互接続された構成要素のツリー構造を示す図である。
【図2a】図1のツリー構造が提供する処理ユニットを示す図である。
【図2b】図1のツリー構造が提供する処理ユニットを示す図である。
【図2c】図1のツリー構造が提供する処理ユニットを示す図である。
【図3】図1のツリー構造と関連付けられたXML文書を示す図である。
【図4a】図2aの処理ユニットと関連付けられたXML文書を示す図である。
【図4b】図2bの処理ユニットと関連付けられたXML文書を示す図である。
【図4c】図2cの処理ユニットと関連付けられたXML文書を示す図である。
【図5】本発明の処理方法に従って図2a、図2b、及び図2cの処理ユニットと関連付けられたXML文書を示す図である。
【図6】図2cの処理ユニットの変形を示す図である。
【図7】図6の変形と関連付けられた図5のXML文書の変形を示す図である。
【図8】処理ユニットに関する処理時刻属性を含む、図5のXML文書を示す図である。
【図9】図3のXML文書と関連付けられたテンプレート文書を示す図である。
【図10】本発明の方法によって使用される属性、及びテンプレートのシンタックスを示す図である。
【図11】(a)スタティックモードにおける、及び(b)ダイナミックモードにおける本発明の方法に関して、図3のXML文書の構成要素の処理ストリームを示す図である。
【符号の説明】
【0083】
e10、e11、e12、e13 構成要素
e121、e122 構成要素
e1211、e1221、e1222 構成要素
UT1、UT2、UT3 処理ユニット
UA アクセスユニット
【特許請求の範囲】
【請求項1】
相互接続された構成要素で構成されるツリーデータ構造を処理する方法であって、
前記方法が、
・処理ユニットを前記相互接続された構成要素のサブセットとして定義する過程と、
・その時に、関連する処理ユニットのデータが、それに対して前記データが宛先指定される主体によって使用されるべきである処理時刻を、各処理ユニットに割り当てる過程と
を有することを特徴とする方法。
【請求項2】
各処理ユニットが、アンカーエレメントと呼ばれる所定の構成要素に基づいて、所定のアタッチメントモードに従い、前記アンカーエレメントに連結された構成要素のセットとして定義される
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記アタッチメントモードが、以下の“単一体”、“祖先”、“子孫”、“祖先及び子孫”、及び“祖先、子孫及び先行する兄弟”のモードの中から選択される
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記処理時刻が、時刻アドレッシングモード、及び時刻指定モードによって定義される
ことを特徴とする請求項1から請求項3のいずれか一項に記載の方法。
【請求項5】
前記時刻アドレッシングモードが、絶対的アドレッシングモードであると共に、
前記処理ユニットの処理時刻が、完全に時刻通りに定義される。
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記処理時刻指定モードが、所定の指定フォーマットにおける処理時刻である
ことを特徴とする請求項5に記載の方法。
【請求項7】
前記時刻アドレッシングモードが、相対的アドレッシングモードであると共に、
前記処理ユニットの処理時刻が、先行する処理ユニットと比較して定義される
ことを特徴とする請求項4に記載の方法。
【請求項8】
前記処理時刻指定モードが、時間間隔である
ことを特徴とする請求項7に記載の方法。
【請求項9】
前記時間間隔が、時間尺度に関する多くのユニットとして表される
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記方法が、ツリー構造の形式の文書構成データを用いて実行されると共に、
前記構成要素に割り当てられたモードが、前記文書において指定される
ことを特徴とする請求項2から請求項9のいずれか一項に記載の方法。
【請求項11】
前記文書において、前記処理ユニットの各アンカーエレメントが、対応する構成要素のアンカーエレメント特性を指定する“アンカーエレメント”属性、及び前記アンカーエレメントに関連付けられたアタッチメントモードを指定する“puMode”属性を割り当てられる
ことを特徴とする請求項10に記載の方法。
【請求項12】
所定の構成要素に割り当てられた前記“puMode”属性が、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項11に記載の方法。
【請求項13】
前記所定の構成要素に割り当てられた前記“puMode”属性が、前記属性とは異なる“puMode”属性を割り当てられた構成要素に至るまで、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項12に記載の方法。
【請求項14】
前記処理ユニットのアタッチメントモードが、前記ユニットのアンカーエレメントに割り当てられた“puMode”属性によって決定される
ことを特徴とする請求項11から請求項13のいずれか一項に記載の方法。
【請求項15】
各処理ユニットの構成要素が、時刻アドレッシングの“timeMode”属性、及び時刻指定属性を割り当てられる
ことを特徴とする請求項11または請求項12のいずれか一項に記載の方法。
【請求項16】
絶対的時刻アドレッシングモードにおいて、前記時刻指定属性が、時刻指定フォーマットにおける“absTimeScheme”属性、及び前記フォーマットにおける前記処理時刻を指定するための“absTime”属性を含む
ことを特徴とする請求項15に記載の方法。
【請求項17】
相対的時刻アドレッシングモードにおいて、前記時刻指定属性が、“timeScale”で示される時間尺度属性、及び“timeInterval”で示される時間間隔属性を含む
ことを特徴とする請求項15に記載の方法。
【請求項18】
前記所定の構成要素に割り当てられた“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、及び“timeInterval”属性が、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項15から請求項17のいずれか一項に記載の方法。
【請求項19】
前記所定の構成要素に割り当てられた“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、及び“timeInterval”属性が、前記属性とは異なる“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、または“timeInterval”属性を割り当てられた構成要素に至るまで、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項15から請求項18のいずれか一項に記載の方法。
【請求項20】
前記時刻アドレッシングモード、前記時刻指定フォーマット、前記時間尺度、及び前記処理ユニットの前記時間間隔が、前記装置のアンカーエレメントに割り当てられた“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、及び“timeInterval”属性によって決定される
ことを特徴とする請求項15から請求項19のいずれか一項に記載の方法。
【請求項21】
前記方法が、ツリー構造の形式の文書構成データを用いて実行されると共に、
前記文書が、その中で前記文書に関係のある構成要素に割り当てられたモードが指定されるテンプレート文書と関連付けられる
ことを特徴とする請求項2から請求項9のいずれか一項に記載の方法。
【請求項22】
前記テンプレート文書が、テンプレートのセットを含むと共に、
各テンプレートが、テンプレートパターン、及び前記テンプレートパターンを満足させる1つまたは複数の構成要素に関して指定されるべき属性のセットによって定義される
ことを特徴とする請求項21に記載の方法。
【請求項23】
前記所定の構成要素に適用される前記テンプレートパターンが、もし存在するならば、前記所定の構成要素の祖先、前記所定の構成要素自身、及びそれらの属性の順序に関する1つ以上の状態を指定する
ことを特徴とする請求項22に記載の方法。
【請求項24】
前記状態が、前記構成要素の名前と序数、及び前記属性の名前と値を制約するように適合される
ことを特徴とする請求項23に記載の方法。
【請求項25】
請求項1から請求項24のいずれか一項に記載の方法を実行するためのサーバ。
【請求項26】
プロラムがコンピュータにおいて実行された場合に、請求項1から請求項24のいずれか一項に記載の方法を実行するためのプログラムのコード命令を含むコンピュータプログラム。
【請求項27】
“anchorElement”属性、“puMode”属性、“timeMode”属性、“absTimeScheme”属性、“absTime”属性、“timeScale”属性、または“timeInterval”属性を用いて、処理ユニット及び関連付けられた処理時刻を指定するツリー構造の形式でデータを構造化する文書を表している信号。
【請求項1】
相互接続された構成要素で構成されるツリーデータ構造を処理する方法であって、
前記方法が、
・処理ユニットを前記相互接続された構成要素のサブセットとして定義する過程と、
・その時に、関連する処理ユニットのデータが、それに対して前記データが宛先指定される主体によって使用されるべきである処理時刻を、各処理ユニットに割り当てる過程と
を有することを特徴とする方法。
【請求項2】
各処理ユニットが、アンカーエレメントと呼ばれる所定の構成要素に基づいて、所定のアタッチメントモードに従い、前記アンカーエレメントに連結された構成要素のセットとして定義される
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記アタッチメントモードが、以下の“単一体”、“祖先”、“子孫”、“祖先及び子孫”、及び“祖先、子孫及び先行する兄弟”のモードの中から選択される
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記処理時刻が、時刻アドレッシングモード、及び時刻指定モードによって定義される
ことを特徴とする請求項1から請求項3のいずれか一項に記載の方法。
【請求項5】
前記時刻アドレッシングモードが、絶対的アドレッシングモードであると共に、
前記処理ユニットの処理時刻が、完全に時刻通りに定義される。
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記処理時刻指定モードが、所定の指定フォーマットにおける処理時刻である
ことを特徴とする請求項5に記載の方法。
【請求項7】
前記時刻アドレッシングモードが、相対的アドレッシングモードであると共に、
前記処理ユニットの処理時刻が、先行する処理ユニットと比較して定義される
ことを特徴とする請求項4に記載の方法。
【請求項8】
前記処理時刻指定モードが、時間間隔である
ことを特徴とする請求項7に記載の方法。
【請求項9】
前記時間間隔が、時間尺度に関する多くのユニットとして表される
ことを特徴とする請求項8に記載の方法。
【請求項10】
前記方法が、ツリー構造の形式の文書構成データを用いて実行されると共に、
前記構成要素に割り当てられたモードが、前記文書において指定される
ことを特徴とする請求項2から請求項9のいずれか一項に記載の方法。
【請求項11】
前記文書において、前記処理ユニットの各アンカーエレメントが、対応する構成要素のアンカーエレメント特性を指定する“アンカーエレメント”属性、及び前記アンカーエレメントに関連付けられたアタッチメントモードを指定する“puMode”属性を割り当てられる
ことを特徴とする請求項10に記載の方法。
【請求項12】
所定の構成要素に割り当てられた前記“puMode”属性が、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項11に記載の方法。
【請求項13】
前記所定の構成要素に割り当てられた前記“puMode”属性が、前記属性とは異なる“puMode”属性を割り当てられた構成要素に至るまで、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項12に記載の方法。
【請求項14】
前記処理ユニットのアタッチメントモードが、前記ユニットのアンカーエレメントに割り当てられた“puMode”属性によって決定される
ことを特徴とする請求項11から請求項13のいずれか一項に記載の方法。
【請求項15】
各処理ユニットの構成要素が、時刻アドレッシングの“timeMode”属性、及び時刻指定属性を割り当てられる
ことを特徴とする請求項11または請求項12のいずれか一項に記載の方法。
【請求項16】
絶対的時刻アドレッシングモードにおいて、前記時刻指定属性が、時刻指定フォーマットにおける“absTimeScheme”属性、及び前記フォーマットにおける前記処理時刻を指定するための“absTime”属性を含む
ことを特徴とする請求項15に記載の方法。
【請求項17】
相対的時刻アドレッシングモードにおいて、前記時刻指定属性が、“timeScale”で示される時間尺度属性、及び“timeInterval”で示される時間間隔属性を含む
ことを特徴とする請求項15に記載の方法。
【請求項18】
前記所定の構成要素に割り当てられた“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、及び“timeInterval”属性が、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項15から請求項17のいずれか一項に記載の方法。
【請求項19】
前記所定の構成要素に割り当てられた“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、及び“timeInterval”属性が、前記属性とは異なる“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、または“timeInterval”属性を割り当てられた構成要素に至るまで、前記文書内の前記所定の構成要素の全ての子孫の構成要素によって継承される
ことを特徴とする請求項15から請求項18のいずれか一項に記載の方法。
【請求項20】
前記時刻アドレッシングモード、前記時刻指定フォーマット、前記時間尺度、及び前記処理ユニットの前記時間間隔が、前記装置のアンカーエレメントに割り当てられた“timeMode”属性、“absTimeScheme”属性、“timeScale”属性、及び“timeInterval”属性によって決定される
ことを特徴とする請求項15から請求項19のいずれか一項に記載の方法。
【請求項21】
前記方法が、ツリー構造の形式の文書構成データを用いて実行されると共に、
前記文書が、その中で前記文書に関係のある構成要素に割り当てられたモードが指定されるテンプレート文書と関連付けられる
ことを特徴とする請求項2から請求項9のいずれか一項に記載の方法。
【請求項22】
前記テンプレート文書が、テンプレートのセットを含むと共に、
各テンプレートが、テンプレートパターン、及び前記テンプレートパターンを満足させる1つまたは複数の構成要素に関して指定されるべき属性のセットによって定義される
ことを特徴とする請求項21に記載の方法。
【請求項23】
前記所定の構成要素に適用される前記テンプレートパターンが、もし存在するならば、前記所定の構成要素の祖先、前記所定の構成要素自身、及びそれらの属性の順序に関する1つ以上の状態を指定する
ことを特徴とする請求項22に記載の方法。
【請求項24】
前記状態が、前記構成要素の名前と序数、及び前記属性の名前と値を制約するように適合される
ことを特徴とする請求項23に記載の方法。
【請求項25】
請求項1から請求項24のいずれか一項に記載の方法を実行するためのサーバ。
【請求項26】
プロラムがコンピュータにおいて実行された場合に、請求項1から請求項24のいずれか一項に記載の方法を実行するためのプログラムのコード命令を含むコンピュータプログラム。
【請求項27】
“anchorElement”属性、“puMode”属性、“timeMode”属性、“absTimeScheme”属性、“absTime”属性、“timeScale”属性、または“timeInterval”属性を用いて、処理ユニット及び関連付けられた処理時刻を指定するツリー構造の形式でデータを構造化する文書を表している信号。
【図1】
【図2a】
【図2b】
【図2c】
【図3】
【図4a】
【図4b】
【図4c】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2a】
【図2b】
【図2c】
【図3】
【図4a】
【図4b】
【図4c】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公表番号】特表2008−536423(P2008−536423A)
【公表日】平成20年9月4日(2008.9.4)
【国際特許分類】
【出願番号】特願2008−505936(P2008−505936)
【出願日】平成18年4月7日(2006.4.7)
【国際出願番号】PCT/FR2006/050317
【国際公開番号】WO2006/108983
【国際公開日】平成18年10月19日(2006.10.19)
【出願人】(591034154)フランス テレコム (290)
【Fターム(参考)】
【公表日】平成20年9月4日(2008.9.4)
【国際特許分類】
【出願日】平成18年4月7日(2006.4.7)
【国際出願番号】PCT/FR2006/050317
【国際公開番号】WO2006/108983
【国際公開日】平成18年10月19日(2006.10.19)
【出願人】(591034154)フランス テレコム (290)
【Fターム(参考)】
[ Back to top ]