(57)【要約】  メディアファイル（３２）のコンテンツを記述するメタデータ（３６）の永続的な記憶を提供するためにデータベース（２２）を使用するコンピュータ装置。メタデータはメディアファイルから個人化されたメディア製品（４８）を作成するために使用される。そのメタデータは、メディアファイル間の関係性も示す。個人化されたメディア製品（４８）の作成を加速するために、メディアエレメントメタデータ項目はキャッシュの中に記憶される。このキャッシュの実用性は、取り出されたメタデータ項目（３６）から関連するメディアエレメントデータを読み取ってから、それらの項目をプリフェッチし、それらを該キャッシュに入れることによってさらに改善される。データ項目の相関性は、関連するデータ項目が近い将来に必要とされる可能性が高いことを意味しているため、該キャッシュ方法は公知のキャッシュ方法よりもさらに有用である。さらに、キャッシュの改善された有用性は、データ項目が永続的な記憶域のどこに入れられるのかに制約を課すことなく達成される。
2007531097.tif 000002
【特許請求の範囲】
【請求項１】
ｉ）１以上のデータプロセッサと、
ｉｉ）前記１以上のデータプロセッサに接続可能な永続的な記憶装置手段であって、前記永続的な記憶装置手段は複数のデータ項目を記憶し、前記データ項目の内の１つ以上が、１つ以上の他のデータ項目に対する参照（複数の場合がある）を含むものと、
ｉｉ）前記データ項目の内の１つ以上を記憶するための、前記１以上のデータプロセッサに接続可能な揮発性メモリ手段と、
ｉｉｉ）前記永続記憶装置手段から前記揮発性メモリ手段へ、クエリー内で指定された１つ以上の基準を満たすデータ項目を渡すことによってクエリーに応えるために、前記１以上のデータプロセッサにより実行可能なデータベース管理システムソフトウェアと、
ｉｖ）前記データベース管理システムソフトウェアにクエリーを渡すために、前記１以上のデータプロセッサによって実行可能なクエリーコードと、
ｖ）  ａ）前記クエリーに応えて提供された応答データ項目を分析し、前記応答データ項目に関連する関連データ項目を発見し、かつｂ）前記関連するデータ項目のために別のクエリーを自動的に生成するために、前記１以上のデータプロセッサによって実行可能なプリフェッチコードと、
を有する、コンピュータ装置。
【請求項２】
前記データ項目のそれぞれがメディアファイルについてのメタデータを含み、前記メタデータは前記参照（複数の場合がある）を含み、参照（複数の場合がある）のそれぞれが、直接的に又は間接的に、関連するメタデータデータ項目を指し、該メタデータ項目のメタデータはメディアファイルについてであり、メディアファイルのコンテンツが第１のメディアファイルのコンテンツに意味論的に関連する、請求項１に記載のコンピュータ装置。
【請求項３】
クライアントコンピュータ及びサーバコンピュータを備え、それぞれが前記プロセッサの内の少なくとも１を有し、前記サーバコンピュータは前記永続的なメモリを制御し、前記クライアントコンピュータは前記揮発性メモリを制御する、請求項１又は請求項２に記載のコンピュータ装置。
【請求項４】
前記データ項目はメモリのページの形式で転送される、請求項３に記載のコンピュータ装置。
【請求項５】
前記サーバコンピュータは前記クエリーを解決し、前記選択されたデータ項目を前記クライアントコンピュータに送信する、請求項３又は請求項４に記載のコンピュータ装置。
【請求項６】
前記サーバコンピュータは前記クライアントコンピュータに前記データ項目を送信し、前記クライアントコンピュータは前記クエリーを解決する、請求項３又は請求項４に記載のコンピュータ装置。
【請求項７】
前記データ項目はソフトウェアオブジェクトである、請求項１乃至請求項６のいずれか１項に記載のコンピュータ装置。
【請求項８】
プロセッサと、前記プロセッサにアクセスできる第１と第２のデータメモリとを備える、コンピュータ装置を操作する方法であって、前記第１のメモリに保持されているデータに対する前記プロセッサによるアクセスが、前記第２のメモリに対するアクセスよりも迅速であり、該方法は、
前記データ項目間の関係性を示す関係性データとともに、前記第２のデータメモリに複数のデータ項目を記憶するステップと、
ｉ）１つ以上のデータ項目を関係性データとともに前記第２のメモリからフェッチし、該関係性データは前記フェッチされるデータ項目に意味論的に関連する１つ以上の関連データ項目を示すものであり、
ｉｉ）前記関係性データの受信に応えて、前記第２のメモリから前記第１のメモリに前記意味論的に関連するデータ項目の内の１つ以上をフェッチし、
ｉｉｉ）データ項目に対する以後の要求時に、前記要求されたデータ項目が前記第１のメモリに存在するかチェックし、検出された場合には前記第１のメモリから前記データ項目を読み取るために、
前記プロセッサ上でプロセスを実行するステップと、
を備える、方法。
【請求項９】
前記データ項目は、メディアファイルの識別子、及び前記識別されたメディアファイルによって描かれている内容を表現するメタデータを備える、請求項８に記載の方法。
【請求項１０】
前記第２のメモリがデータベースを保持する、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ装置に関する。本発明は特にデータベースから情報を取り出す際に使用されるコンピュータ装置に関して、特定の用途を有する。
【背景技術】
【０００２】
データベースは、通常、永続メモリに大量のデータ項目を記憶しているコンピュータを使用して提供される。該装置は、データベースからのデータ項目の選択のための基準を提示するアプリケーションプログラムからクエリー(query)を受け取るために実行可能であるデータベース管理ソフトウェアを含む。データベース管理ソフトウェアを実行すると、アプリケーションプログラムを実行するコンピュータ上の揮発性メモリに該選択したデータが転送される。
【０００３】
今日、データベースは多くの場合通信ネットワークを介してアクセスされる。例えば、ＢＴのディレクトリ照会データベースはｈｔｔｐ：／／ｗｗｗ．ｂｔ．ｃｏｍ／ｄｉｒｅｃｔｏｒｙ−ｅｎｑｕｉｒｉｅｓで使用可能である。
【０００４】
したがってクエリーに対する応答を取得するために要する時間は、２つの要因−クエリーを満足させるそれらのデータ項目を識別するために要する時間と、関連するアプリケーションプログラムが実行しているコンピュータの揮発性メモリにデータ項目を転送するために要する時間−に依存している。
【０００５】
クエリーに対する応答を取得するために要する時間を短縮する１つの方法は、データベース内のメモリの隣接領域で類似したデータ項目をクラスタ化してから、メモリのその領域の内容を、その領域内で含むデータ項目を選択するクエリーに応えてクライアントコンピュータに送信することである。その結果、該領域の中に含まれているデータ項目に対する以後のいかなる参照も、ローカルメモリから満足させることができる。これはいわゆる「ページサーバ」ベースで動作するデータベースの特徴である。このようなデータベースの例はエクセロン社（Ｅｘｃｅｌｏｎ  Ｃｏｒｐｏｒａｔｉｏｎ）によって提供されているＯｂｊｅｃｔＳｔｏｒｅである（ＯｂｊｅｃｔＳｔｏｒｅの詳細は、１９９１年１０月、ＡＣＭの通信、３４（１０）：５０−６３、及び国際特許出願ＷＯ００／５７２７６号パンフレット、Ｃ．Ｌａｍｂ、Ｇ．Ｌａｎｄｉｓ、Ｊ．Ｏｒｅｓｔｅｉｎ及びＤ．Ｗｅｉｎｒｅｂの、「ＯｂｊｅｃｔＳｔｏｒｅデータベースシステム」に記載されている）。
【０００６】
クエリーに応答するために要する平均時間を短縮する別の技法は、クエリーとその結果をローカルメモリに記憶することである。多くの場合、ユーザがクエリーを繰り返すことが判明しており、これによりリピートクエリーにはローカルメモリから回答できるようになる−それにより、さもなければクエリーを満たす選択されたデータ項目で費やされるであろう時間、及びローカルメモリにそれらのデータ項目を移動する際に費やされる時間を節約する。
【０００７】
さらに別の技法は、初期のクエリーについてのデータに基づいて、ユーザがまさに入力するであろうそれらのクエリーを予測することである。この手法は、例えば、高度情報システムエンジニアリングに関する会議（Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｄｖａｎｃｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍｓ  Ｅｎｇｉｎｅｅｒｉｎｇ）（２０００年）の会議録の中の「ウェブデータベースキャッシュのためのパーソナルアシスタント」、Ｂｅａｔ  Ｓｉｇｎｅｒ、Ａｎｔｏｎｉａ  Ｅｒｎｉ、Ｍｏｉｒａ  Ｃ．Ｎｏｒｒｉｅに記載されている。
【発明の開示】
【０００８】
本発明の第１の態様によると、  
ｉ）１以上のデータプロセッサと、  
ｉｉ）前記１以上のデータプロセッサに接続可能な永続的な記憶装置手段であって、この永続的な記憶装置手段は複数のデータ項目を記憶し、前記データ項目の内の１つ以上が、コンテンツが前記データ項目に意味論的に関連している１つ以上の他のデータ項目に対する参照（複数の場合がある）を含む、前記永続記憶装置手段と、  
ｉｉ）前記データ項目の内の１つ以上を記憶するための、前記１-以上のデータプロセッサに接続可能な揮発性メモリ手段と、  
ｉｉｉ）前記永続記憶装置手段から前記揮発性メモリ手段へ、前記クエリー内で指定された１つ以上の基準を満たすデータ項目を渡すことによってクエリーに応えるために、前記１以上のデータプロセッサにより実行可能な、データベース管理システムソフトウェアと、  
ｉｖ）前記データベース管理システムソフトウェアにクエリーを渡すために、前記１以上のデータプロセッサによって実行可能なクエリーコードと、  
ｖ）  ａ）前記クエリーに応えて提供された応答データ項目を分析し、前記応答データ項目に意味論的に関連する関連データ項目を発見し、ｂ）前記意味論的に関連するデータ項目のために別のクエリーを自動的に生成するために、前記１以上のデータプロセッサによって実行可能なプリフェッチコードと、  
を有する、コンピュータ装置が提供される。
【０００９】
永続メモリからキャッシュメモリへの転送に対する要求に応えてデータ項目を選択してから、初期の選択されたデータ項目の一部を形成する関係性データに従って追加データ項目を選択し、該追加データ項目も該キャッシュメモリに移動することによって、以後関連する要求に対する応答時間が短縮される。
【００１０】
本発明の第２の態様によると、プロセッサ、及び前記プロセッサにアクセス可能な第１のデータストア（メモリ）と第２のデータストア（メモリ）を備えるコンピュータ装置を動作する方法が提供され、前記第１のストア（メモリ）に保持されたデータへの前記プロセッサによるアクセスは、前記第２のストア（メモリ）へのアクセスより迅速であり、前記方法は、  
前記データ項目間の関係性を示す関係性データとともに前記第２のデータストアに複数のデータ項目を記憶するステップと、  
ｉ）前記第２のストアから１つ以上のデータ項目を１つ以上の関連データ項目を示す関連性データとともにフェッチし、該１つ以上の関連データ項目はフェッチされる前記データ項目に意味論的に関連付けられており、  
ｉｉ）前記関係性データの受信に応えて、前記第２のメモリから前記第１のメモリへ前記意味論的に関連するデータ項目の１つ以上をフェッチし、  
ｉｉｉ）データ項目に対する以後の要求時に、前記要求されたデータ項目が前記第１のストアに存在するかどうかをチェックし、検出された場合、前記データ項目を前記第１のストアから読み取るために、  
前記プロセッサ上でプロセスを実行するステップと、  
を備える。
【００１１】
既定のデータ項目は多くの場合、本物のエンティティ又は仮想されるエンティティを表現する、あるいは本物のエンティティ又は仮想されるエンティティの特性を表現する。その既定のデータ項目に意味論的に関連している追加のデータ項目は、本物のエンティティ又はその既定のデータ項目により表現される仮想エンティティに関連する本物のエンティティ又は仮想エンティティを表現する、あるいは本物のエンティティ又はその既定のデータ項目により表現される仮想エンティティに関連する本物のエンティティ又は仮想エンティティの特性を表現する。
【００１２】
ほんの一例として、本発明の特定の実施形態がここで添付図面を参照して説明される。
【発明を実施するための最良の形態】
【００１３】
図１は、それぞれが従来の方法でともに接続されている周知のハードウェア構成要素を備える、２台のパーソナルコンピュータ１０、１２を示している。該周知のハードウェア構成要素は、中央演算処理装置、揮発性メモリ−このケースではランダムアクセスメモリ−読み取り専用メモリ、ハードディスク及び入出力装置を備える。ハードウェア構成要素は１つ以上のデータバス及びアドレスバスを介して相互接続される。入出力装置はモニタ、キーボード、マウス、ＣＤ−ＲＯＭドライブ及びネットワークカードを備える。ネットワークカードはパブリックインターネット１４によってサーバコンピュータ１６に接続される。
【００１４】
サーバコンピュータ１６はパーソナルコンピュータ１０、１２に類似したアーキテクチャを有するが、より高速なプロセッサと、はるかに大量の永続記憶域を提供される。この記憶域は、安価なディスクの冗長なアレイ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）（ＲＡＩＤ）１８の形態を取る。ＲＡＩＤはメディアファイル２０の集合体を記憶する。
【００１５】
サーバコンピュータ１６は、ＯｂｊｅｃｔＳｔｏｒｅデータベースサーバと、それにインストールされたＣＤ１からのＯｂｊｅｃｔＳｔｏｒｅアプリケーションプログラマインタフェース（ＡＰＩ）ソフトウェアを有する。このようなソフトウェアは、アメリカ合衆国、マサチューセッツ州、バーリントン、２５モールロードのエクセロン社から入手できる。加えて、ＡＰＩソフトウェアを利用し、テンプレートポピュレータモジュールとリモートプロシージャコール（ＲＰＣ）サーバモジュールを含むＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムは、ＣＤ２からサーバコンピュータ１６にインストールされる。ＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムとともに含まれているのは、クエリーを取り扱う際に必要とされる処理の多くを実行するエクセロン社によって供給されているコードであり、サーバプログラムはＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムによって提供するように要求されるときに、単にページ（４Ｋブロックのメモリ）を提供するにすぎない。第３のコンパクトディスクＣＤ３は、やはりサーバコンピュータ１６上にインストールされるメディアマークアップツールプログラムを提供する。メディアマークアップツールプログラムとテンプレートポピュレータプログラムは、本出願人の早期の国際特許出願ＧＢ２００３／００３９７６号に説明されており、これは参照により本明細書に組み込まれる。
【００１６】
パソコンのそれぞれには、ＣＤ４からのテンプレート作成ツールプログラム、コンテンツシンセサイザ、及びＲＰＣクライアントプログラムがインストールされている。テンプレート作成プログラム及びコンテンツシンセサイザは、本出願人の同時係属国際特許出願ＧＢ２００３／００３９７６号に説明されている。ＲＰＣクライアントプログラムは当業者により容易に提供できる。これらのプログラムの構造と動作及び相互運用は、図２を参照してここで説明される。
【００１７】
メディアマークアップツール３０は、エディタがコンテンツストア（メモリ）２０とデータベース２２を更新するためのインタフェースを提供する。実際には、本実施形態を使用するエディタが、他のエディタによって生成されるメディアエレメント３２、多様なソースからのラッシュ、用意されたプログラムのセクション、スチール写真、及び（全てが電子形式で表現されている）メディアの多様な他の部分に自由にアクセスできることが予想される。これらのメディアエレメントはコンテンツストア２０の適切なディレクトリ構造に記憶される。各ディレクトリは当技術分野において「ビン(bin)」−特定のプロジェクトに関する数巻のフィルム(rolls of film)が保管されるラベルの付いた容器(bins)に対する参照−として公知である。
【００１８】
しかしながら、本説明の目的のため、エディタは、サッカーの試合で録画された未編集のフィルムの電子表現、及びサッカー番組のための紹介のシーケンスを含むファイルだけで開始すると仮定される。フィルムの未編集部分は、当技術分野においては「ラッシュ(rush)」として知られている。
【００１９】
エディタはメディアマークアップツール３０を使用して、ラッシュの多様なセクションを選択し、それぞれをコンテンツストア２０のディレクトリ内に短いファイルのメディアエレメントとして記憶してもよい。
【００２０】
メディアマークアップツール３０は、エディタがコンテンツストア２０に記憶されているメディアエレメントのためにメタデータ３６を生成できるようにする、又は編集できるようにするツールも提供する。マークアップツールプログラム３０は、ＲＡＩＤ１８に保持されるＯｂｊｅｃｔＳｔｏｒｅデータベース２２の一部としてメディアファイル３２ごとにメタデータ項目３６を記憶するために、ＯｂｊｅｃｔＳｔｏｒｅサーバデータベースソフトウェア３４を使用する。
【００２１】
メディアマークアップツール３０は、本実施形態をより大きなメディア製品作成配信システムの関連で示すために、ここで説明されてきた。しかしながら、エディタにデータベースに追加する能力を与えなくても−つまり、本例でのＣＤ３の提供を必要としなくても−既存のメディア製品メタデータデータベース及びコンテンツストアが使用される本発明の代替実施形態が提供できるであろうことが理解されなければならない。
【００２２】
ＣＤ２上のＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムは、図４を参照してさらに詳しく後述されるデータベース方式３６の定義を含む。それは、クライアントコンピュータ１０、１２からテンプレートデータ４０を受信し、該データ４０をクライアントコンピュータ１０、１２への返却用の編集決定リスト４２を作成するために処理する、テンプレートポピュレータプログラム３８も含む。テンプレートポピュレータプログラム３８の動作は図７及び図８を参照してさらに詳細に後述される。ＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムには、サーバコンピュータ１６とクライアントコンピュータ（例えば、１０、１２）の間でのテンプレートデータ４０と編集決定リスト４２の通信を可能にする、ＲＰＣサーバ３９がさらに含まれる。
【００２３】
ＣＤ４からクライアントコンピュータ１０、１２にインストールされたテンプレート作成ツール４４は、テンプレートデータ４４を作成するために使用される。同じＣＤ４からインストールされたコンテンツシンセサイザツール４６は、コンテンツストア２０から編集決定リスト４２に一覧表示されているメディアエレメント３２をフェッチするため、及びユーザ５０に対するテンプレートデータ４０に基づいてメディア製品４８を生成するためにそれらを結合するために使用される。サーバコンピュータ１６とクライアントコンピュータ１０、１２の間の通信が、ＲＰＣクライアント５２を使用して行われる。
【００２４】
メディアオブジェクト（データベース２２の構成要素を形成するソフトウェアオブジェクト）に含まれている情報が図２に示されている。
【００２５】
この情報を入力するために、エディタはメディアエレメントの内の１つを選択してから、２段階でそのメディアエレメントと関連付けられるメタデータを入力する。第１の段階では、エディタは、スキーマの中に含まれているパラメータの値が入力できる形式を提示するために、ピクチャの内の１つでダブルクリックできる。
【００２６】
第１の段階で生成されるメタデータの例は、図２の２行目から１２行目に示されている（エディタがファイルにメディアエレメント識別子を与えるときに生成された第１の行の中の情報）。
【００２７】
メタデータが構造化されたデータモデルに従って構成されることが理解される。各行では、最も右側の列での入力が、ユーザによって入力されるプロパティの値を表現する。構造化データモデルは、複数のプロパティが第１の集約レベル−ここではプロパティのセットと呼ばれている（４つの列を有するそれらの行の左から２番目の列）−でのユニットのメンバーとしてラベルが付けられなければならないことを規定してよい。構造化されたデータモデルは、複数のセットが第２の集約のレベル−ここではプロパティのスーパーセット（３つの列又は４つの列を有するそれらの行の最も左の列）と呼ばれる−でのユニットのメンバーとしてラベルが付けられなければならないことも規定してよい。当業者は、追加の集約のレベルが提供される可能性があることを理解するであろう。
【００２８】
階層構造は、前述されたマルチメディアコンテンツ記述インタフェースによって影響を受ける。意図は、全ての考えられる用途全体での完全なデータモデルの使用を施行することではなく、製作会社又はプロジェクトの特殊なセット（例えば野生生物のドキュメンタリー）の対象領域内でのコンテンツの再利用を可能にすることである。提供されるデータモデルは、要素の最大セットとそれらの使用を支援するインタフェースと、それらに適用できる語彙を提供することを目的とする。
【００２９】
メタデータは、可変数のパラメータを含む（しかし、それにも関わらず所定の構造化されたデータモデルに準拠しなければならない）。図２に図示されている例では、エディタは１８のプロパティのために入力された値を有する。これらは、以下を含む。
【００３０】
ｉ）メディアエレメントＩＤ−これはメディアエレメントを特定する−本例では、エディタは０．ｘｘという数値をメディアエレメントに指定し、この場合ｘｘは元のラッシュの中のメディアエレメントの位置を反映する。
【００３１】
この後には、２つのプロパティと、プロパティの「位置」セットを備える「メディア」スーパーセットが続く。２つのプロパティは、以下のとおりである。
【００３２】
ｉｉ）ＵＲＩ−該メディアエレメントを含むファイルのユニバーサルリソース識別子である。
【００３３】
ｉｉｉ）フォーマット−これは、ファイルを構成するデータのフォーマットの表示になる。
【００３４】
「位置」セットは、以下に示すように２つのプロパティを含む。
【００３５】
ｉｖ）イン−メディアエレメントの開始時のラッシュの開始以来に経過した時間の表示
ｖ）アウト−メディアエレメントの開始時のラッシュの開始以来に経過した時間の表示  
「メディア」スーパーセットの後には、４つの「構造上の」プロパティのスーパーセットが続く。そのスーパーセットは以下で始まる。
【００３６】
ｖｉ）記述−３つのプロパティを含む（「イベント」と呼ばれる）別のセットが後に続くファイルのコンテンツの記述
ｖｉｉ）性質−このファイル内に記録されたビデオシーケンスで見られるイベントのタイプ
ｖｉｉｉ）行為者−イベントの主要なアクションを実行する人物
ｉｘ）受け手−イベントの主要なアクションを受ける人物
以上のプロパティの後には、本例では二面のスポーツイベントから取得されたマテリアルに関するメディアエレメントに分別よく適用されるに過ぎないプロパティの、領域に特殊なスーパーセットが続く。
【００３７】
最初の２つのプロパティは２つのプロパティの（「チーム」と呼ばれる）セットに属する。
【００３８】
ｘ）ホームチーム−元のラッシュで特集されているサッカーの試合で本拠地でプレーしているチームの名称
ｘｉ）アウェイチーム−元のラッシュで特集されているサッカーの試合での他のサッカーチームの名称
このセットの後には以下の２つのプロパティが続く。
【００３９】
ｘｉｉ）行為者忠誠（Ａｌｌｅｇｉａｎｃｅ）：行為者が忠誠を尽くす義務のある側（存在する場合）
ｘｉｉｉ）受け手忠誠：受け手が忠誠を尽くす義務のある側（存在する場合）
以上の２つのプロパティの後には、以下の２つのプロパティを含む（「概念的」と名付けられる）セットが続く。
【００４０】
ｘｉｖ）関心値−０と１の間のこの値は、エディタがこのメディアエレメントをどの程度重要であると見なしているのかを示す。
【００４１】
ｘｖ）レーティング−この値は、フィルムに与えられた分類と同様に、年齢基準に基づいた人に見せるためのメディアエレメントの適性を示す。
【００４２】
１つ以上の「関係性」プロパティを生成するメタデータ作成の第２の段階は、本出願人の早期の国際特許出願ＧＢ２００３／００３９７６号に詳しく説明されている。ユーザは、ユーザがＰＣの画面１８上のそれらのメディアエレメントを表現するアイコンを移動し、クリックすることによって、メディアエレメント間の関係性プロパティを示すことができるようにするグラフィカルユーザインタフェースを与えられる（図１）。
【００４３】
エディタが示してよい１つのタイプの関係性は、配列（シーケンス）の関係性である。（メディアエレメントの複数がＯｂｊｅｃｔＳｔｏｒｅデータベース管理システムに対して行われるクエリーに応答して選択される場合）エディタは、メディアエレメントは示された順序で示されなければならないとユーザが感じるこの性質の順次関係性を示すことを希望することがある。例えば一年の異なる時期のガーデニングを示すメディアエレメントは、春の庭を表現するエレメントは夏等の庭を表すエレメントの前に来るような順序に配列される可能性がある。
【００４４】
このようにして配列が作成されると、シーケンスオブジェクトが、配列の中に含まれているメディアエレメントと関連付けられたメディアオブジェクトを指すポインタを含むコンテナオブジェクトとして、オブジェクト指向データベースに作成される。以下で分かるように、それ自体が配列を含む配列を生成することが可能である。この階層プロパティは、該配列による識別子の第１の数に反映される。該配列が個々のメディアエレメントだけを含む場合には、配列識別子は１．ｘの形を取り、この場合ｘは階層の第１レベルで（後述される）新しい配列又はグループが形成されるたびに増分されるに過ぎない。
【００４５】
配列の中の各メディアエレメントと関連付けられたメディアオブジェクト（つまりメタデータ）は、その配列内でのメディアエレメントの位置をそれに追加される。配列位置メタデータの例は、図２の最後から２番目の行で見ることができる。
【００４６】
エディタがメディアエレメント間で示すことを希望する可能性がある別のタイプの関係性は、グループのメンバーの関係性である。エディタは、グループ内の複数のメディアエレメントが選択される場合にはそれらが一緒に示されなければならないことを示すことを希望する場合に、これを行う可能性がある。このアクションによりグループオブジェクトと、グループ内のメディアエレメントと関連付けられたメディアオブジェクトに対するポインタを含むコンテナオブジェクトとが作成される。グループオブジェクトもまた、オブジェクト指向データベース２２内に記憶される。
【００４７】
オブジェクト指向プログラミングは、クラス（メソッドの中のデータメンバーだけではなくメソッドも有する、ユーザによって定義されるデータタイプ）の作成を含む。次に、プログラムはコンピュータでの実行時に自らの作業を行うためにそれらのクラスのインスタンスを作成し、操作する。
【００４８】
同様に、オブジェクト指向データベースは、（図２で見られるメタデータ等の）データメンバーと、それらのデータメンバーでクエリーを行うことができるようにするメソッドとの両方を有する、オブジェクトクラスのインスタンスを保持する。
【００４９】
オブジェクト指向プログラミングでは、プログラマはオブジェクトクラスの階層を構築できる。このような階層では、オブジェクトクラスは親オブジェクトクラスのデータメンバーとメソッドを継承する。新しいクラスを作成する際、メソッド（これは親オブジェクトメソッドを無効にするとして知られている）のインプリメンテーションを変更する、あるいは親オブジェクトクラスの継承されたデータメンバー又はメソッドへ追加することが可能である。これは、オブジェクト指向プログラミングがコード再利用を促進する１つの方法である。
【００５０】
継承は別として、オブジェクト指向プログラミングがコード再利用を促進する別の方法が合成として知られている。この場合、オブジェクトクラスは別のタイプのオブジェクトをデータメンバーとして含むように作成できる。
【００５１】
プログラマが抽象(abstract)クラスを定義することが可能である。クラスがプログラマによって抽象的であると宣言されると、そのクラスのオブジェクトのインスタンスを作成することは不可能である。それは、プログラマによって作成されるあらゆるサブクラスが、抽象親クラスの全てのデータメンバーとメソッドを確かに有することを保証する方法としてだけ使用される。
【００５２】
類似する概念はＯｂｊｅｃｔＳｔｏｒｅ等のオブジェクト指向データベースで使用される。図３は、本発明の第１の実施形態で使用されたオブジェクト階層を示す。
【００５３】
データベース内の全てのオブジェクトはベースクラスＳｍａｒｔＯｂｊｅｃｔからデータメンバーとメソッドを継承する。これにより、データベースに記憶される全てのオブジェクトが、それらが永続的となる（つまりＯｂｊｅｃｔＳｔｏｒｅデータベースに記憶される）ことができるようにする特定の属性を有することが確実になる。加えて、ＳｍａｒｔＯｂｊｅｃｔからの継承は、データベースを通して有用である、（オブジェクトのタイプを検出するためにオブジェクトに問合せを行う、あるいはオブジェクトに拡張マークアップ言語（ＸＭＬ）でそれ自体を表現するように依頼する能力等の）他のメソッドがデータベースの中に記憶された全てのオブジェクトに存在することを確実にする。
【００５４】
ＭｅｄｉａＣｏｎｔｒｏｌｌｅｒは、（別物のパターンとしてモデリングされる−つまりこのクラスのオブジェクトのただ１つのインスタンスしかない）データベース内の「ルート」オブジェクトである。ＭｅｄｉａＣｏｎｔｒｏｌｌｅｒは、そのデータメンバー（合成の例）の中でＭｅｄｉａＢｉｎオブジェクトの集合体を有する。
【００５５】
ＭｅｄｉａＣｏｎｔｒｏｌｌｅｒ集合体クラス（Ｃ＋＋テンプレート）は、その上で表現の形式のクエリーを行うことができるようにする関数を有する。例えば、ＭｅｄｉａＣｏｎｔｒｏｌｌｅｒオブジェクトのインスタンス（そのインスタンスはこの例ではｂｉｎＬｉｓｔと呼ばれている）は以下のようにクエリーを行うことができる。
【数１】
2007531097.tif 000003
【００５６】
このクエリーにより、クエリーの結果を返す（ｂｉｎＬｉｓｔを含む）全てのＭｅｄｉａＣｏｎｔｒｏｌｌｅｒオブジェクトの一部を形成するクエリーメソッドが呼び出される。前記例では、等しいオブジェクトＩＤの付いたＭｅｄｉａＯｂｊｅｃｔポインタの集合体が返されるであろう。
【００５７】
ＭｅｄｉａＢｉｎオブジェクトは、ディレクトリのような階層構造の中のそれらの内に他のＭｅｄｉａＢｉｎオブジェクトを保持できる。したがって、例えば、「ＷｏｒｌｄＣｕｐ」ＭｅｄｉａＢｉｎは、「ＥｎｇｌａｎｄＳｗｅｄｅｎ」と呼ばれているその中にＭｅｄｉａＢｉｎを保持してよい。等しく、「ＥｎｇｌａｎｄＳｗｅｄｅｎ」ＭｅｄｉａＢｉｎは、イングランド・スウェーデンのワールドカップの試合からクラスタ化されたＭｅｄｉａＯｂｊｅｃｔｓを保持するであろう。
【００５８】
ＭｅｄｉａＢｉｎオブジェクトクラスはＳｅｍａｎｔｉｃＯｂｊｅｃｔｓの集合体も有する。ＳｅｍａｎｔｉｃＯｂｊｅｃｔは抽象クラスである。ＭｅｄｉａＯｂｊｅｃｔクラス、ＭＯＲｅｌａｔｉｏｎｓｈｉｐクラス、ＭＯＧｒｏｕｐクラス、及びＭＯＳｅｑｕｅｎｃｅクラスは全て、抽象的なＳｅｍａｎｔｉｃＯｂｊｅｃｔクラスのサブクラスである（継承の例）。ＭｅｄｉａＯｂｊｅｃｔは、図２に見られるメタデータのようなものを含むオブジェクトである。
【００５９】
ＭＯＲｅｌａｔｉｏｎｓｈｉｐは、ＭＯＧｒｏｕｐとＭＯＳｅｑｕｅｎｃｅがそれから継承する中間抽象クラスである。
【００６０】
ＳｅｍａｎｔｉｃＯｂｊｅｃｔｓ（及び継承によってＭｅｄｉａＯｂｊｅｃｔｓ）は、ＭＯＲｅｌａｔｉｏｎｓｈｉｐオブジェクトに対するポインタである（ｐａｒｅｎｔＲｅｌａｔｉｏｎｓｈｉｐと呼ばれている）データメンバーを有する。（「ルートオブジェクト」と呼ばれている）親関係のないＭｅｄｉａＯｂｊｅｃｔｓは、このメンバーをＮＵＬＬに設定させる。
【００６１】
ＭＯＲｅｌａｔｉｏｎｓｈｉｐオブジェクトは、２つのＭＯＲｅｌａｔｉｏｎｓｈｉｐサブクラス、ＭＯＧｒｏｕｐ及びＭＯＳｅｑｕｅｎｃｅの中でオーバロードされるいくつかのパブリック抽象メソッドを有し、これらは以下のとおりである。
【数２】
2007531097.tif 000004
【００６２】
ＭＯＧｒｏｕｐはこれらのパブリックメソッドをオーバロードし、Ｃｏｌｌオブジェクト（非順序集合体）で通るＭＯＲｅｌａｔｉｏｎｓｈｉｐが保護されているメソッドを呼び出す。ＭＯＳｅｑｕｅｎｃｅは同じメソッドをオーバロードし、（Ｃｏｌｌから継承された順序付けられた集合体として）Ｌｉｓｔオブジェクトを有する保護されたメソッドを呼び出す。
【００６３】
さらに、ＭＯＳｅｑｕｅｎｃｅは、意味論的に関連したオブジェクトの配列内の所定の点でオブジェクトを挿入するために、ｉｎｓｅｒｔＦｉｒｓｔ、ｉｎｓｅｒｔＬａｓｔ、ｉｎｓｅｒｔＯｂｊｅｃｔＢｅｆｏｒｅ及びＩｎｓｅｒｔＯｂｊｅｃｔＡｆｔｅｒの形式で追加のパブリックメソッドも提供する。
【００６４】
言及されたように、ＭＯＲｅｌａｔｉｏｎｓｈｉｐオブジェクトはＳｍａｒｔＯｂｊｅｃｔｓの集合体を保持できる。しかしながら、ＭＯＲｅｌａｔｉｏｎｓｈｉｐオブジェクトによって保持されるＳｍａｒｔＯｂｊｅｃｔのＴＹＰＥ（タイプ）は制限されている（例えば、ＭｅｄｉａＢｉｎｓはＭＯＲｅｌａｔｉｏｎｓｈｉｐオブジェクトによって保持されない）。保持されたＳｍａｒｔＯｂｊｅｃｔタイプは、ＳｅｍａｎｔｉｃＯｂｊｅｃｔの子ら、つまり（ｉ）ＭＯＧｒｏｕｐ、（ｉｉ）ＭＯＳｅｑｕｅｎｃｅ及び（ｉｉｉ）ＭｅｄｉａＯｂｊｅｃｔに制限される。
【００６５】
ＭＯＲｅｌａｔｉｏｎｓｈｉｐオブジェクトの中に挿入時、そのＴＹＰＥを確証するために入信オブジェクト上で（各派生クラスによってＳｍａｒｔＯｂｊｅｃｔから継承され、オーバロードされる）ｇｅｔＴｙｐｅを呼び出すことによってチェックが行われる。それが有効であると仮定し、オブジェクトが集合体（又はリスト）に追加され、そのｐａｒｅｎｔＲｅｌａｔｉｏｎｓｈｉｐ属性は、それがちょうど追加されたＭＯＲｅｌａｔｉｏｎｓｈｉｐに設定される。
【００６６】
挿入オブジェクトと取り外しオブジェクトによって戻されたブール(Boolean)値は、挿入又は取り外しが無事に実施されたのかを示す。
【００６７】
前記メソッドを用いて、エディタは、ＭｅｄｉａＯｂｊｅｃｔｓに対するポインタのリストを含む、ＭＯＧｒｏｕｐオブジェクトとＭＯＳｅｑｕｅｎｃｅオブジェクトを生成できる。図４は、階層形式でエディタによって入力された関係性を示す。図４に示されているエディタにより生成された階層が、図３で見られるデータベーススキーマ階層に無関係であることに注意する。エディタが多くのメディアエレメントの自分の配置を変更するたびに、データベーススキーマを変更することは実際的ではないであろう。代わりに図４で見られるリンケージは、ＭＯＧｒｏｕｐオブジェクトとＭＯＳｅｑｕｅｎｃｅオブジェクトのデータメンバーとして記憶される。
【００６８】
エディタによって生成される階層では、ＭｅｄｉａＯｂｊｅｃｔｓはツリー構造の「葉(leaves)」で見られる。ＭｅｄｉａＯｂｊｅｃｔｓの多く（例えば、０．１３、０．１４、０．１５）は、グループ（例えば、１．２）−それらの下に、それらに属するＭｅｄｉａＯｂｊｅｃｔｓを指す矢印を有する矩形として示されている−の中に配置される。配列は、矩形の左上角に矢印を有することを除き、同様に描かれている。グループと配列は、それら自体さらに高水準のグループと配列のメンバーであり得る。
【００６９】
ＣＤ４からクライアントコンピュータ１０、１２上にインストールされるテンプレート作成ツールコードは、メディア製品の所望される特性を指定するためにユーザにインタフェースを提供するために実行する−このようにして、テンプレートデータ４０を作成する。
【００７０】
メディアオブジェクトのように、本実施形態で使用するためのテンプレートオブジェクトは包括的な所定のデータモデルに適合する。図６から分かるように、所定のデータモデルはタイトルフィールド、及び複数のセクションを含む。各セクションは、名前フィールド、クエリーフィールド、及び任意に制約フィールドを備えるセットである。実行時、テンプレート作成プログラムは、ユーザにテンプレートの名称を入力し、セクション構造を示す（トップレベルのセクションはそれら自体セクションを含んでよい）ようにプロンプトを出すために、クライアントコンピュータ１０、１２を制御する。ユーザは例えば、マイクロソフトウィンドウズ（登録商標）エクスプローラ（登録商標）で提供されるフォルダリストに類似するグラフィカルユーザインタフェース構成要素を使用してセクション構造を示す。図６に示される例では、テンプレートは３つのセクションの平らな構造を有する。
【００７１】
ユーザは、セクションのそれぞれにクエリー文字列を入力するためのこのグラフィカルユーザインタフェースを使用する。図６の真中のセクションのためのクエリー文字列は、テンプレート内でこのスロットを充填するための候補メディアオブジェクトが指定された俳優としてＭｉｃｈａｅｌ  Ｏｗｅｎを有さなければならないことを示している。
【００７２】
ユーザは、クエリーに応えてデータベースから取り出されたメディアオブジェクトによって表現されたメディアエレメントに対してなんらかの制約を課すことを希望する、それらのセクションに対する１つ以上の制約も入力してよい。制約は、メディアオブジェクトがテンプレートポピュレータによってアセンブルされる様式を制限することを目的とする。制約の考えられる例は時間（例えば、このセクションが５分の長さでなければならない）、空間（例えば、このプレゼンテーションが６４０＊４８０ピクセルディスプレイで見られなければならない）、又は数（ニュース番組の「ヘッドライン」セクションには５つのニュース項目がなければならない）を含む。
【００７３】
ユーザがいったん、テンプレートが完成していることを示すと、クライアントコンピュータ１０、１２は（ＲＰＣクライアントとサーバ３９、５２を使用して）サーバコンピュータ１６にテンプレートデータ４０を送信する。
【００７４】
テンプレートデータ４０は、次に、図７に示されるように動作するテンプレートポピュレータプログラム３８に渡される。
【００７５】
前述されたように、テンプレートポピュレータモジュール３８は、消費者５０向けの個人化されたメディア製品４８の中にメディアオブジェクトのセットを合成することに備えて、編集決定リスト４２を自動的にアセンブルするためのプロセスを提供する。開始時、テンプレートポピュレータ３８は、その入力として、特定のテンプレート（例えば図６）と、メディアオブジェクトのストアのインジケータ（本ケースでは、オブジェクト指向データベース２２の位置の表示）を取る。
【００７６】
テンプレートポピュレータは、次に、テンプレート（図６）の第１のセクションを識別し、テンプレートの階層構造を通して反復する。
【００７７】
各反復（図７）は、テンプレート内の次のセクションが検出されること、そのセクションの中の任意のクエリーがＯｂｊｅｃｔＳｔｏｒｅクエリーに変換され（ステップ６０）、関連性のあるメディアオブジェクトにポインタ（基準）のセットを返すためにＯｂｊｅｃｔＳｔｏｒｅサーバ及びクライアントプログラム（ステップ６２）によって実行されることを必要とする。その結果、返された基準は、該受信された基準によって指されたメディアオブジェクトに意味論的に関連しているメディアオブジェクトのために、追加のＯｂｊｅｃｔＳｔｏｒｅクエリーを発行するために使用される（ステップ６３）。それ以後、テンプレートポピュレータプログラムの現在の反復で作用されている、テンプレートのセクションに対応する編集決定リスト４２の部分を作成するために、多様なステップ（６４、６８、７２）が実行される。
【００７８】
図６で「メイン」と名前が指定されたセクションに関連する第２の反復がここで説明される。反復は開始し（ステップ６２）、クエリーの該実施は該セクションとともに含まれる。第２のセクションの中のクエリーは、前述された指定俳優としてＭｉｃｈａｅｌ  Ｏｗｅｎに言及する全てのＭｅｄｉａＯｂｊｅｃｔｓを要求する。
【００７９】
図８は、１次クエリーと２次クエリーを発行し答えるステップ（図７：６２、６３）に関与している処理を、さらに詳しく示す。ステップ７０５では、ＯｂｊｅｃｔＳｔｏｒｅクエリー−この例では、以下のものに類似する−は、ｂｉｎＬｉｓｔと呼ばれているＭｅｄｉａＢｉｎ上で実行されるであろう。
【数３】
2007531097.tif 000005
【００８０】
これにより、「Ｍｉｃｈａｅｌ  Ｏｗｅｎ」が指定俳優であるＭｅｄｉａＯｂｊｅｃｔｓに対する参照の集合体が、テンプレートポピュレータプログラム３８に戻される。
【００８１】
ステップ７０７は、ＯｂｊｅｃｔＳｔｏｒｅデータベースサーバ３４とＯｂｊｅｃｔＳｔｏｒｅクライアントプログラム（３６、３８、３９）が、ＯｂｊｅｃｔＳｔｏｒｅデータベースサーバがクエリーに答えるときに、ＲＡＩＤ１８からサーバコンピュータの揮発性メモリ（ＲＡＭ）１７にアクセスされるページ（メモリの４Ｋユニット）をもたらすように相互運用することを示している。クエリーに回答する際にデータベース内に存在する任意のインデックスが使用されるときでさえ、これが揮発性メモリ１７の中にもたらされているクエリーを満たすＭｅｄｉａＯｂｊｅｃｔｓを含むページを生じさせる。
【００８２】
さらに詳細には、ＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムは、ＲＡＩＤ１８からサーバコンピュータ１６の揮発性メモリ１７にまだ転送されていないページ上のオブジェクトを指す基準を処理するために、現代のオペレーティングシステム（本例では、サーバコンピュータ１６はＷｉｎｄｏｗｓ（登録商標）ＮＴ等の適切なオペレーティングシステムプログラムを実行していると仮定される）により提供される、仮想メモリ（ページスワッピング）コードを使用する。当業者は、この状況が、メモリのページがＰＣのハードディスクとそのＰＣの揮発性メモリの間で転送される、ページスワッピングシステムで使用されている状況に類似していることを理解するであろう。プログラム、データ及びスタックの結合されたサイズが、使用可能な物理的なメモリより大きい仮想メモリが使用される。参照されるオブジェクトがあるページが、サーバコンピュータ１６の揮発性メモリ１７内にすでにある場合、ポインタの後に続くのはＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムにとっては容易な事柄であるが、関連性のあるページがサーバコンピュータの揮発性メモリ１７にまだ転送されていない場合、仮想メモリコードがメモリ障害を発行する。ＯｂｊｅｃｔＳｔｏｒｅクライアントコードは、ＯｂｊｅｃｔＳｔｏｒｅデータベースサーバ３４から関連性のあるページを要求することによってメモリ障害に応える。
【００８３】
したがって、ＯｂｊｅｃｔＳｔｏｒｅ状態についての前述された記事は、以下を述べている。「ＯｂｊｅｃｔＳｔｏｒｅはクライアントキャッシュ、つまり最近使用されたことがあるデータベースページのプールを、クライアントホストの仮想メモリの中に維持する。アプリケーションがメモリ障害を信号で知らせると、ＯｂｊｅｃｔＳｔｏｒｅは、アクセスされているページがクライアントキャッシュの中にあるかどうかを判断する。ない場合には、それはＯｂｊｅｃｔＳｔｏｒｅサーバにクライアントに該ページを送信するように依頼し、該ページをクライアントキャッシュの中に入れる。次に、クライアントキャッシュのページは［クライアントホストの］仮想アドレス空間の中にマッピングされ、その結果アプリケーションはそれにアクセスできる。最後に、故障指示が再開され、アプリケーションは続行する。」
前記の文章はＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムが、データベースが記憶されているサーバコンピュータとは異なるクライアントコンピュータ上で実行中である状況を指しているが、同じ利点は（本実施形態でのケースでのように）ＯｂｊｅｃｔＳｔｏｒｅデータベースサーバとＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムが同じコンピュータ上で実行している状況でも見られる−クライアントプログラム（３６、３８、３９）は、それがクエリーに答えるためにアクセスしなければならないメディアオブジェクトの内の１つ以上が、該クライアントプログラムに割り当てられているメモリ１７のその部分の中のキャッシュに保持されているのであれば、より迅速に解決する（ｒｅｓｏｌｖｅ）であろう。キャッシュのデフォルトサイズは８ＭＢである−しかしながら、これはサーバコンピュータ１７の管理者により改変されてよい。
【００８４】
ステップ７０５で発行されたクエリーに答えると、例えば、図９に太線で輪郭が描かれているＭｅｄｉａＯｂｊｅｃｔｓが選択される可能性がある。それらのメディアオブジェクトのそれぞれは、キャッシュの中に−つまりサーバコンピュータ１６の揮発性メモリ１７の中に−保持される。それらのオブジェクトに対する参照はテンプレートポピュレータプログラム３８に渡される。
【００８５】
ステップ７１１では、（選択されたＭｅｄｉａＯｂｊｅｃｔｓのそれぞれのｐａｒｅｎｔＲｅｌａｔｉｏｎｓｈｉｐ及びＭＯＲｅｌａｔｉｏｎｓｈｉｐデータメンバーを通して）追加のクエリーは、第１のクエリーに応えて戻されたＭｅｄｉａＯｂｊｅｃｔｓのそれぞれと同じ親を有するＭｅｄｉａＯｂｊｅｃｔｓについて行われる。意味論的なクエリーのこの第２の（及び任意の以後の）セットを構築する効果は、ＲＡＩＤ１８からサーバコンピュータ１６の揮発性メモリ１７の中に「関連」オブジェクトを転送することである。
【００８６】
この第２のクエリーにより、例えば、図１０に太線で輪郭が描かれているＭｅｄｉａＯｂｊｅｃｔｓが選択される可能性がある。再び、それらのメディアオブジェクトを含むページはＲＡＩＤ１８から揮発性メモリ１７に転送され（ステップ７１５）、それらのメディアオブジェクトに対する参照はテンプレートポピュレータコードに提供される（ステップ７１７）。
【００８７】
図７に戻ると、ステップ６４では、ツリーの「葉」として第１のクエリーに応えて選択されるメディアオブジェクトを含むツリーが構築される。この構築は以下のとおりに発生する。第１の選択されたメディアオブジェクトの親オブジェクトが取り出され、それに関連付けられた親オブジェクトを有さないオブジェクトに達するまで、その親オブジェクト等が後に続く。この時点で、葉オブジェクトから上位コンテナまでの単一のリンクされたリストが再構築された。別の選択された葉オブジェクトは（複数のオブジェクトがクエリーの結果として選択される場合）調べられ、第１のオブジェクトの祖先を表すリンクされたリストの中にすでに存在するオブジェクトが取り出されるか、あるいは別の上位コンテナに遭遇するかのどちらかまで、その葉オブジェクトの祖先が追跡される。選択の他のオブジェクト全てについてこのプロセスを繰り返すと、それらのオブジェクトを含む最小ツリーが再構築される。
【００８８】
その結果、例えば、最小ツリーは図１１に示されているとおりであってもよい。
【００８９】
ツリーの構築（ステップ６２から６４）の後には、ツリー内でのオブジェクトの並べ替え（ステップ６８）が行われる。
【００９０】
該並べ替え（ステップ６８）はユーザによって入力された配列情報を考慮する。これは、オブジェクトと関連付けられた配列位置メタデータによって識別されるように正しい順序でツリーのノードを設置するために、公知の「Ｑｕｉｃｋｓｏｒｔ」アルゴリズムを使用することによって行われる。これはツリーの上部で開始し、次にツリーの葉（つまりメディアオブジェクト）に向かって移動して行われる。
【００９１】
テンプレートポピュレータは、次に、あらゆる制約を評価し、相応してツリーを更新する（ステップ７２）。時間制約を評価するために、ツリーの中に含まれた各メディアオブジェクトの持続時間は「イン」プロパティから「アウト」プロパティを差し引くことによって計算され、これらの持続時間は実際の持続時間に到達するまでともに加算される。この持続時間がターゲット持続時間より大きいと判明すると、メディアオブジェクトはツリーから削除される。この持続時間がターゲット持続時間未満である場合には、メディアオブジェクトはツリーに追加される。
【００９２】
実際の持続時間がターゲット持続時間未満である場合、第１の照会に応えて選択されたＭｅｄｉａＯｂｊｅｃｔｓのどれかと同じ配列に属するＭｅｄｉａＯｂｊｅｃｔｓが選択される−それらは、次に配列の近似の順序及び持続時間の順序で選択されたＭｅｄｉａＯｂｊｅｃｔｓに添付される。現在のセクションの新しいツリーは次に元のツリーと同様に作成される。このプロセスは、実際の持続時間がターゲット持続時間を上回るまで繰り返される。
【００９３】
このステップは、このＭｅｄｉａＯｂｊｅｃｔがステップ７１５で２次クエリーの発行時に揮発性メモリ１７の中にもたらされたために、それ以外の場合当てはまるであろうよりわずかに迅速となると理解される。
【００９４】
全てのセクションがメディアオブジェクトメタデータを投入され、規定されたクエリー及び制約に従って配列されたとき、テンプレートポピュレータは、ループの３回の反復で生じたツリーの葉で検出されたメディアエレメントを連結することにより、編集決定リスト（図１２）を出力する（ステップ７８）。
【００９５】
テンプレートポピュレータプログラムモジュール（４６）によって作成された編集決定リスト（図１２）は、ＰＣ内のコンテンツシンセサイザモジュール（４８）に渡される。本例では、コンテンツシンセサイザモジュールは、ストリーム化されたビデオプレゼンテーション内で次々にシーンを出力する、あるいはプログラムファイルを作成するために共にシーンを連結する。もちろんユーザが可能な限り短い遅延の後に自動的に生成されたプログラムを与えられることを希望することが理解されであろう。
【００９６】
本実施形態は、データベース内のオブジェクト間の関係性を示すデータベースに関係性データを記憶することによって、これを達成するのにいくらか助けになることが分かるであろう。関係性データを分析することによって、クエリーに応えて戻された１次オブジェクトに関連する２次オブジェクトが特定され、キャッシュの中に入れられる。その結果（分解されるために２次オブジェクトへのアクセスを必要とする可能性が高い）以後のクエリーは加速される。
【００９７】
本発明は多くの異なる方法で具現化されてよい。例えば、前述された実施形態は、本発明の代替実施形態を提供するために、以下の一覧表示されている方法の内の１つ以上で改変されてよい（このリストは決して包括的ではない）。
【００９８】
ｉ）第１の実施形態はインターネットによってサーバに接続されたパーソナルコンピュータを示しているが、本発明の他の実施形態はコンピュータの代わりにセットトップボックスを使用することができ、結果として生じるビデオは関連付けられたテレビ受像機で示される。このようなセットトップボックスの機能性を内蔵したテレビを使用することもできる。インターネットの代わりに、ケーブルテレビネットワーク、衛星ネットワーク、又は地上無線ネットワーク等の他のネットワークが使用できるであろう。
【００９９】
ｉｉ）テンプレートの制約セクションはユーザによって可変である可能性がある−たとえば、ユーザは、自分が見ることを希望するメディア製品の持続時間を選択できるグラフィカルユーザインタフェースを与えられるであろう。その結果対応する値は、テンプレートポピュレータプログラムによってテンプレートオブジェクトに追加できる。
【０１００】
ｉｉｉ）オブジェクト指向データベースは前記実施形態で使用される−本発明の他の実施形態はリレーショナルデータベースを使用できるであろう。このような実施形態では、意味論的に関連するデータ項目を示す関係性データは別個の表に記憶することができ、データベースの中のレコードと、１つ以上の意味論的に関連するデータ項目を一覧表示する別の表の中のレコードの間の関連は、該２つの表の間の関連を示すために１次キーと２次キーを使用して関連付けられている。このようなケースでは、図３に示されているメタデータは、それぞれの表の中の１つ以上のレコードとして記憶できるであろう。
【０１０１】
ｉｖ）前記実施形態では、ＯｂｊｅｃｔＳｔｏｒｅクライアントプログラムはサーバコンピュータで実行する。代替実施形態では、ＯｂｊｅｃｔＳｔｏｒｅクライアントは代わりにクライアントコンピュータ上で実行できるであろう。その場合、インターネット全体で要求を送信し、応答するのに要するものが、関連性のあるデータ項目がクライアントコンピュータのメモリ内で検出されるたびに節約されるであろうため、キャッシュ方式はなおさらに有益となるであろう。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１の実施形態によるメディアコンテンツ分散システムの概略図である。
【図２】図１に示されているコンピュータで実行されるソフトウェアのアーキテクチャを示す。
【図３】ファイルと関連するメタデータを示す。
【図４】第１の実施形態で使用されるオブジェクト指向データベース方式を示す。
【図５】エディタによって入力される関係性データの階層表現である。
【図６】テンプレート作成ツールを使用して生成するテンプレートデータを示す。
【図７】本発明の第１の実施形態のテンプレートポピュレータの構成要素の動作を示すフローチャートである。
【図８】図７のステップのいくつかをさらに詳しく示す。
【図９】１次クエリーに応えて選択されたメディアオブジェクトを示す。
【図１０】２次クエリーに応えて選択されたメディアオブジェクトを示す。
【図１１】葉が、１次クエリーに応えて選択されるメディアオブジェクトであるツリーを示す。
【図１２】テンプレートポピュレータモジュールによって生じられる可能性のある編集決定リストを示す。
【図１】
2007531097.tif 000006
【図２】
2007531097.tif 000007
【図３】
2007531097.tif 000008
【図４】
2007531097.tif 000009
【図５】
2007531097.tif 000010
【図６】
2007531097.tif 000011
【図７】
2007531097.tif 000012
【図８】
2007531097.tif 000013
【図９】
2007531097.tif 000014
【図１０】
2007531097.tif 000015
【図１１】
2007531097.tif 000016
【図１２】
2007531097.tif 000017
【国際調査報告】
2007531097.tif 000018
2007531097.tif 000019
2007531097.tif 000020