説明

メタデータベースのプリフェッチ

メディアファイル(32)のコンテンツを記述するメタデータ(36)の永続的な記憶を提供するためにデータベース(22)を使用するコンピュータ装置。メタデータはメディアファイルから個人化されたメディア製品(48)を作成するために使用される。そのメタデータは、メディアファイル間の関係性も示す。個人化されたメディア製品(48)の作成を加速するために、メディアエレメントメタデータ項目はキャッシュの中に記憶される。このキャッシュの実用性は、取り出されたメタデータ項目(36)から関連するメディアエレメントデータを読み取ってから、それらの項目をプリフェッチし、それらを該キャッシュに入れることによってさらに改善される。データ項目の相関性は、関連するデータ項目が近い将来に必要とされる可能性が高いことを意味しているため、該キャッシュ方法は公知のキャッシュ方法よりもさらに有用である。さらに、キャッシュの改善された有用性は、データ項目が永続的な記憶域のどこに入れられるのかに制約を課すことなく達成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータ装置に関する。本発明は特にデータベースから情報を取り出す際に使用されるコンピュータ装置に関して、特定の用途を有する。
【背景技術】
【0002】
データベースは、通常、永続メモリに大量のデータ項目を記憶しているコンピュータを使用して提供される。該装置は、データベースからのデータ項目の選択のための基準を提示するアプリケーションプログラムからクエリー(query)を受け取るために実行可能であるデータベース管理ソフトウェアを含む。データベース管理ソフトウェアを実行すると、アプリケーションプログラムを実行するコンピュータ上の揮発性メモリに該選択したデータが転送される。
【0003】
今日、データベースは多くの場合通信ネットワークを介してアクセスされる。例えば、BTのディレクトリ照会データベースはhttp://www.bt.com/directory−enquiriesで使用可能である。
【0004】
したがってクエリーに対する応答を取得するために要する時間は、2つの要因−クエリーを満足させるそれらのデータ項目を識別するために要する時間と、関連するアプリケーションプログラムが実行しているコンピュータの揮発性メモリにデータ項目を転送するために要する時間−に依存している。
【0005】
クエリーに対する応答を取得するために要する時間を短縮する1つの方法は、データベース内のメモリの隣接領域で類似したデータ項目をクラスタ化してから、メモリのその領域の内容を、その領域内で含むデータ項目を選択するクエリーに応えてクライアントコンピュータに送信することである。その結果、該領域の中に含まれているデータ項目に対する以後のいかなる参照も、ローカルメモリから満足させることができる。これはいわゆる「ページサーバ」ベースで動作するデータベースの特徴である。このようなデータベースの例はエクセロン社(Excelon Corporation)によって提供されているObjectStoreである(ObjectStoreの詳細は、1991年10月、ACMの通信、34(10):50−63、及び国際特許出願WO00/57276号パンフレット、C.Lamb、G.Landis、J.Orestein及びD.Weinrebの、「ObjectStoreデータベースシステム」に記載されている)。
【0006】
クエリーに応答するために要する平均時間を短縮する別の技法は、クエリーとその結果をローカルメモリに記憶することである。多くの場合、ユーザがクエリーを繰り返すことが判明しており、これによりリピートクエリーにはローカルメモリから回答できるようになる−それにより、さもなければクエリーを満たす選択されたデータ項目で費やされるであろう時間、及びローカルメモリにそれらのデータ項目を移動する際に費やされる時間を節約する。
【0007】
さらに別の技法は、初期のクエリーについてのデータに基づいて、ユーザがまさに入力するであろうそれらのクエリーを予測することである。この手法は、例えば、高度情報システムエンジニアリングに関する会議(Conference on Advanced Information Systems Engineering)(2000年)の会議録の中の「ウェブデータベースキャッシュのためのパーソナルアシスタント」、Beat Signer、Antonia Erni、Moira C.Norrieに記載されている。
【発明の開示】
【0008】
本発明の第1の態様によると、
i)1以上のデータプロセッサと、
ii)前記1以上のデータプロセッサに接続可能な永続的な記憶装置手段であって、この永続的な記憶装置手段は複数のデータ項目を記憶し、前記データ項目の内の1つ以上が、コンテンツが前記データ項目に意味論的に関連している1つ以上の他のデータ項目に対する参照(複数の場合がある)を含む、前記永続記憶装置手段と、
ii)前記データ項目の内の1つ以上を記憶するための、前記1-以上のデータプロセッサに接続可能な揮発性メモリ手段と、
iii)前記永続記憶装置手段から前記揮発性メモリ手段へ、前記クエリー内で指定された1つ以上の基準を満たすデータ項目を渡すことによってクエリーに応えるために、前記1以上のデータプロセッサにより実行可能な、データベース管理システムソフトウェアと、
iv)前記データベース管理システムソフトウェアにクエリーを渡すために、前記1以上のデータプロセッサによって実行可能なクエリーコードと、
v) a)前記クエリーに応えて提供された応答データ項目を分析し、前記応答データ項目に意味論的に関連する関連データ項目を発見し、b)前記意味論的に関連するデータ項目のために別のクエリーを自動的に生成するために、前記1以上のデータプロセッサによって実行可能なプリフェッチコードと、
を有する、コンピュータ装置が提供される。
【0009】
永続メモリからキャッシュメモリへの転送に対する要求に応えてデータ項目を選択してから、初期の選択されたデータ項目の一部を形成する関係性データに従って追加データ項目を選択し、該追加データ項目も該キャッシュメモリに移動することによって、以後関連する要求に対する応答時間が短縮される。
【0010】
本発明の第2の態様によると、プロセッサ、及び前記プロセッサにアクセス可能な第1のデータストア(メモリ)と第2のデータストア(メモリ)を備えるコンピュータ装置を動作する方法が提供され、前記第1のストア(メモリ)に保持されたデータへの前記プロセッサによるアクセスは、前記第2のストア(メモリ)へのアクセスより迅速であり、前記方法は、
前記データ項目間の関係性を示す関係性データとともに前記第2のデータストアに複数のデータ項目を記憶するステップと、
i)前記第2のストアから1つ以上のデータ項目を1つ以上の関連データ項目を示す関連性データとともにフェッチし、該1つ以上の関連データ項目はフェッチされる前記データ項目に意味論的に関連付けられており、
ii)前記関係性データの受信に応えて、前記第2のメモリから前記第1のメモリへ前記意味論的に関連するデータ項目の1つ以上をフェッチし、
iii)データ項目に対する以後の要求時に、前記要求されたデータ項目が前記第1のストアに存在するかどうかをチェックし、検出された場合、前記データ項目を前記第1のストアから読み取るために、
前記プロセッサ上でプロセスを実行するステップと、
を備える。
【0011】
既定のデータ項目は多くの場合、本物のエンティティ又は仮想されるエンティティを表現する、あるいは本物のエンティティ又は仮想されるエンティティの特性を表現する。その既定のデータ項目に意味論的に関連している追加のデータ項目は、本物のエンティティ又はその既定のデータ項目により表現される仮想エンティティに関連する本物のエンティティ又は仮想エンティティを表現する、あるいは本物のエンティティ又はその既定のデータ項目により表現される仮想エンティティに関連する本物のエンティティ又は仮想エンティティの特性を表現する。
【0012】
ほんの一例として、本発明の特定の実施形態がここで添付図面を参照して説明される。
【発明を実施するための最良の形態】
【0013】
図1は、それぞれが従来の方法でともに接続されている周知のハードウェア構成要素を備える、2台のパーソナルコンピュータ10、12を示している。該周知のハードウェア構成要素は、中央演算処理装置、揮発性メモリ−このケースではランダムアクセスメモリ−読み取り専用メモリ、ハードディスク及び入出力装置を備える。ハードウェア構成要素は1つ以上のデータバス及びアドレスバスを介して相互接続される。入出力装置はモニタ、キーボード、マウス、CD−ROMドライブ及びネットワークカードを備える。ネットワークカードはパブリックインターネット14によってサーバコンピュータ16に接続される。
【0014】
サーバコンピュータ16はパーソナルコンピュータ10、12に類似したアーキテクチャを有するが、より高速なプロセッサと、はるかに大量の永続記憶域を提供される。この記憶域は、安価なディスクの冗長なアレイ(Redundant Array of Inexpensive Disks)(RAID)18の形態を取る。RAIDはメディアファイル20の集合体を記憶する。
【0015】
サーバコンピュータ16は、ObjectStoreデータベースサーバと、それにインストールされたCD1からのObjectStoreアプリケーションプログラマインタフェース(API)ソフトウェアを有する。このようなソフトウェアは、アメリカ合衆国、マサチューセッツ州、バーリントン、25モールロードのエクセロン社から入手できる。加えて、APIソフトウェアを利用し、テンプレートポピュレータモジュールとリモートプロシージャコール(RPC)サーバモジュールを含むObjectStoreクライアントプログラムは、CD2からサーバコンピュータ16にインストールされる。ObjectStoreクライアントプログラムとともに含まれているのは、クエリーを取り扱う際に必要とされる処理の多くを実行するエクセロン社によって供給されているコードであり、サーバプログラムはObjectStoreクライアントプログラムによって提供するように要求されるときに、単にページ(4Kブロックのメモリ)を提供するにすぎない。第3のコンパクトディスクCD3は、やはりサーバコンピュータ16上にインストールされるメディアマークアップツールプログラムを提供する。メディアマークアップツールプログラムとテンプレートポピュレータプログラムは、本出願人の早期の国際特許出願GB2003/003976号に説明されており、これは参照により本明細書に組み込まれる。
【0016】
パソコンのそれぞれには、CD4からのテンプレート作成ツールプログラム、コンテンツシンセサイザ、及びRPCクライアントプログラムがインストールされている。テンプレート作成プログラム及びコンテンツシンセサイザは、本出願人の同時係属国際特許出願GB2003/003976号に説明されている。RPCクライアントプログラムは当業者により容易に提供できる。これらのプログラムの構造と動作及び相互運用は、図2を参照してここで説明される。
【0017】
メディアマークアップツール30は、エディタがコンテンツストア(メモリ)20とデータベース22を更新するためのインタフェースを提供する。実際には、本実施形態を使用するエディタが、他のエディタによって生成されるメディアエレメント32、多様なソースからのラッシュ、用意されたプログラムのセクション、スチール写真、及び(全てが電子形式で表現されている)メディアの多様な他の部分に自由にアクセスできることが予想される。これらのメディアエレメントはコンテンツストア20の適切なディレクトリ構造に記憶される。各ディレクトリは当技術分野において「ビン(bin)」−特定のプロジェクトに関する数巻のフィルム(rolls of film)が保管されるラベルの付いた容器(bins)に対する参照−として公知である。
【0018】
しかしながら、本説明の目的のため、エディタは、サッカーの試合で録画された未編集のフィルムの電子表現、及びサッカー番組のための紹介のシーケンスを含むファイルだけで開始すると仮定される。フィルムの未編集部分は、当技術分野においては「ラッシュ(rush)」として知られている。
【0019】
エディタはメディアマークアップツール30を使用して、ラッシュの多様なセクションを選択し、それぞれをコンテンツストア20のディレクトリ内に短いファイルのメディアエレメントとして記憶してもよい。
【0020】
メディアマークアップツール30は、エディタがコンテンツストア20に記憶されているメディアエレメントのためにメタデータ36を生成できるようにする、又は編集できるようにするツールも提供する。マークアップツールプログラム30は、RAID18に保持されるObjectStoreデータベース22の一部としてメディアファイル32ごとにメタデータ項目36を記憶するために、ObjectStoreサーバデータベースソフトウェア34を使用する。
【0021】
メディアマークアップツール30は、本実施形態をより大きなメディア製品作成配信システムの関連で示すために、ここで説明されてきた。しかしながら、エディタにデータベースに追加する能力を与えなくても−つまり、本例でのCD3の提供を必要としなくても−既存のメディア製品メタデータデータベース及びコンテンツストアが使用される本発明の代替実施形態が提供できるであろうことが理解されなければならない。
【0022】
CD2上のObjectStoreクライアントプログラムは、図4を参照してさらに詳しく後述されるデータベース方式36の定義を含む。それは、クライアントコンピュータ10、12からテンプレートデータ40を受信し、該データ40をクライアントコンピュータ10、12への返却用の編集決定リスト42を作成するために処理する、テンプレートポピュレータプログラム38も含む。テンプレートポピュレータプログラム38の動作は図7及び図8を参照してさらに詳細に後述される。ObjectStoreクライアントプログラムには、サーバコンピュータ16とクライアントコンピュータ(例えば、10、12)の間でのテンプレートデータ40と編集決定リスト42の通信を可能にする、RPCサーバ39がさらに含まれる。
【0023】
CD4からクライアントコンピュータ10、12にインストールされたテンプレート作成ツール44は、テンプレートデータ44を作成するために使用される。同じCD4からインストールされたコンテンツシンセサイザツール46は、コンテンツストア20から編集決定リスト42に一覧表示されているメディアエレメント32をフェッチするため、及びユーザ50に対するテンプレートデータ40に基づいてメディア製品48を生成するためにそれらを結合するために使用される。サーバコンピュータ16とクライアントコンピュータ10、12の間の通信が、RPCクライアント52を使用して行われる。
【0024】
メディアオブジェクト(データベース22の構成要素を形成するソフトウェアオブジェクト)に含まれている情報が図2に示されている。
【0025】
この情報を入力するために、エディタはメディアエレメントの内の1つを選択してから、2段階でそのメディアエレメントと関連付けられるメタデータを入力する。第1の段階では、エディタは、スキーマの中に含まれているパラメータの値が入力できる形式を提示するために、ピクチャの内の1つでダブルクリックできる。
【0026】
第1の段階で生成されるメタデータの例は、図2の2行目から12行目に示されている(エディタがファイルにメディアエレメント識別子を与えるときに生成された第1の行の中の情報)。
【0027】
メタデータが構造化されたデータモデルに従って構成されることが理解される。各行では、最も右側の列での入力が、ユーザによって入力されるプロパティの値を表現する。構造化データモデルは、複数のプロパティが第1の集約レベル−ここではプロパティのセットと呼ばれている(4つの列を有するそれらの行の左から2番目の列)−でのユニットのメンバーとしてラベルが付けられなければならないことを規定してよい。構造化されたデータモデルは、複数のセットが第2の集約のレベル−ここではプロパティのスーパーセット(3つの列又は4つの列を有するそれらの行の最も左の列)と呼ばれる−でのユニットのメンバーとしてラベルが付けられなければならないことも規定してよい。当業者は、追加の集約のレベルが提供される可能性があることを理解するであろう。
【0028】
階層構造は、前述されたマルチメディアコンテンツ記述インタフェースによって影響を受ける。意図は、全ての考えられる用途全体での完全なデータモデルの使用を施行することではなく、製作会社又はプロジェクトの特殊なセット(例えば野生生物のドキュメンタリー)の対象領域内でのコンテンツの再利用を可能にすることである。提供されるデータモデルは、要素の最大セットとそれらの使用を支援するインタフェースと、それらに適用できる語彙を提供することを目的とする。
【0029】
メタデータは、可変数のパラメータを含む(しかし、それにも関わらず所定の構造化されたデータモデルに準拠しなければならない)。図2に図示されている例では、エディタは18のプロパティのために入力された値を有する。これらは、以下を含む。
【0030】
i)メディアエレメントID−これはメディアエレメントを特定する−本例では、エディタは0.xxという数値をメディアエレメントに指定し、この場合xxは元のラッシュの中のメディアエレメントの位置を反映する。
【0031】
この後には、2つのプロパティと、プロパティの「位置」セットを備える「メディア」スーパーセットが続く。2つのプロパティは、以下のとおりである。
【0032】
ii)URI−該メディアエレメントを含むファイルのユニバーサルリソース識別子である。
【0033】
iii)フォーマット−これは、ファイルを構成するデータのフォーマットの表示になる。
【0034】
「位置」セットは、以下に示すように2つのプロパティを含む。
【0035】
iv)イン−メディアエレメントの開始時のラッシュの開始以来に経過した時間の表示
v)アウト−メディアエレメントの開始時のラッシュの開始以来に経過した時間の表示
「メディア」スーパーセットの後には、4つの「構造上の」プロパティのスーパーセットが続く。そのスーパーセットは以下で始まる。
【0036】
vi)記述−3つのプロパティを含む(「イベント」と呼ばれる)別のセットが後に続くファイルのコンテンツの記述
vii)性質−このファイル内に記録されたビデオシーケンスで見られるイベントのタイプ
viii)行為者−イベントの主要なアクションを実行する人物
ix)受け手−イベントの主要なアクションを受ける人物
以上のプロパティの後には、本例では二面のスポーツイベントから取得されたマテリアルに関するメディアエレメントに分別よく適用されるに過ぎないプロパティの、領域に特殊なスーパーセットが続く。
【0037】
最初の2つのプロパティは2つのプロパティの(「チーム」と呼ばれる)セットに属する。
【0038】
x)ホームチーム−元のラッシュで特集されているサッカーの試合で本拠地でプレーしているチームの名称
xi)アウェイチーム−元のラッシュで特集されているサッカーの試合での他のサッカーチームの名称
このセットの後には以下の2つのプロパティが続く。
【0039】
xii)行為者忠誠(Allegiance):行為者が忠誠を尽くす義務のある側(存在する場合)
xiii)受け手忠誠:受け手が忠誠を尽くす義務のある側(存在する場合)
以上の2つのプロパティの後には、以下の2つのプロパティを含む(「概念的」と名付けられる)セットが続く。
【0040】
xiv)関心値−0と1の間のこの値は、エディタがこのメディアエレメントをどの程度重要であると見なしているのかを示す。
【0041】
xv)レーティング−この値は、フィルムに与えられた分類と同様に、年齢基準に基づいた人に見せるためのメディアエレメントの適性を示す。
【0042】
1つ以上の「関係性」プロパティを生成するメタデータ作成の第2の段階は、本出願人の早期の国際特許出願GB2003/003976号に詳しく説明されている。ユーザは、ユーザがPCの画面18上のそれらのメディアエレメントを表現するアイコンを移動し、クリックすることによって、メディアエレメント間の関係性プロパティを示すことができるようにするグラフィカルユーザインタフェースを与えられる(図1)。
【0043】
エディタが示してよい1つのタイプの関係性は、配列(シーケンス)の関係性である。(メディアエレメントの複数がObjectStoreデータベース管理システムに対して行われるクエリーに応答して選択される場合)エディタは、メディアエレメントは示された順序で示されなければならないとユーザが感じるこの性質の順次関係性を示すことを希望することがある。例えば一年の異なる時期のガーデニングを示すメディアエレメントは、春の庭を表現するエレメントは夏等の庭を表すエレメントの前に来るような順序に配列される可能性がある。
【0044】
このようにして配列が作成されると、シーケンスオブジェクトが、配列の中に含まれているメディアエレメントと関連付けられたメディアオブジェクトを指すポインタを含むコンテナオブジェクトとして、オブジェクト指向データベースに作成される。以下で分かるように、それ自体が配列を含む配列を生成することが可能である。この階層プロパティは、該配列による識別子の第1の数に反映される。該配列が個々のメディアエレメントだけを含む場合には、配列識別子は1.xの形を取り、この場合xは階層の第1レベルで(後述される)新しい配列又はグループが形成されるたびに増分されるに過ぎない。
【0045】
配列の中の各メディアエレメントと関連付けられたメディアオブジェクト(つまりメタデータ)は、その配列内でのメディアエレメントの位置をそれに追加される。配列位置メタデータの例は、図2の最後から2番目の行で見ることができる。
【0046】
エディタがメディアエレメント間で示すことを希望する可能性がある別のタイプの関係性は、グループのメンバーの関係性である。エディタは、グループ内の複数のメディアエレメントが選択される場合にはそれらが一緒に示されなければならないことを示すことを希望する場合に、これを行う可能性がある。このアクションによりグループオブジェクトと、グループ内のメディアエレメントと関連付けられたメディアオブジェクトに対するポインタを含むコンテナオブジェクトとが作成される。グループオブジェクトもまた、オブジェクト指向データベース22内に記憶される。
【0047】
オブジェクト指向プログラミングは、クラス(メソッドの中のデータメンバーだけではなくメソッドも有する、ユーザによって定義されるデータタイプ)の作成を含む。次に、プログラムはコンピュータでの実行時に自らの作業を行うためにそれらのクラスのインスタンスを作成し、操作する。
【0048】
同様に、オブジェクト指向データベースは、(図2で見られるメタデータ等の)データメンバーと、それらのデータメンバーでクエリーを行うことができるようにするメソッドとの両方を有する、オブジェクトクラスのインスタンスを保持する。
【0049】
オブジェクト指向プログラミングでは、プログラマはオブジェクトクラスの階層を構築できる。このような階層では、オブジェクトクラスは親オブジェクトクラスのデータメンバーとメソッドを継承する。新しいクラスを作成する際、メソッド(これは親オブジェクトメソッドを無効にするとして知られている)のインプリメンテーションを変更する、あるいは親オブジェクトクラスの継承されたデータメンバー又はメソッドへ追加することが可能である。これは、オブジェクト指向プログラミングがコード再利用を促進する1つの方法である。
【0050】
継承は別として、オブジェクト指向プログラミングがコード再利用を促進する別の方法が合成として知られている。この場合、オブジェクトクラスは別のタイプのオブジェクトをデータメンバーとして含むように作成できる。
【0051】
プログラマが抽象(abstract)クラスを定義することが可能である。クラスがプログラマによって抽象的であると宣言されると、そのクラスのオブジェクトのインスタンスを作成することは不可能である。それは、プログラマによって作成されるあらゆるサブクラスが、抽象親クラスの全てのデータメンバーとメソッドを確かに有することを保証する方法としてだけ使用される。
【0052】
類似する概念はObjectStore等のオブジェクト指向データベースで使用される。図3は、本発明の第1の実施形態で使用されたオブジェクト階層を示す。
【0053】
データベース内の全てのオブジェクトはベースクラスSmartObjectからデータメンバーとメソッドを継承する。これにより、データベースに記憶される全てのオブジェクトが、それらが永続的となる(つまりObjectStoreデータベースに記憶される)ことができるようにする特定の属性を有することが確実になる。加えて、SmartObjectからの継承は、データベースを通して有用である、(オブジェクトのタイプを検出するためにオブジェクトに問合せを行う、あるいはオブジェクトに拡張マークアップ言語(XML)でそれ自体を表現するように依頼する能力等の)他のメソッドがデータベースの中に記憶された全てのオブジェクトに存在することを確実にする。
【0054】
MediaControllerは、(別物のパターンとしてモデリングされる−つまりこのクラスのオブジェクトのただ1つのインスタンスしかない)データベース内の「ルート」オブジェクトである。MediaControllerは、そのデータメンバー(合成の例)の中でMediaBinオブジェクトの集合体を有する。
【0055】
MediaController集合体クラス(C++テンプレート)は、その上で表現の形式のクエリーを行うことができるようにする関数を有する。例えば、MediaControllerオブジェクトのインスタンス(そのインスタンスはこの例ではbinListと呼ばれている)は以下のようにクエリーを行うことができる。
【数1】

【0056】
このクエリーにより、クエリーの結果を返す(binListを含む)全てのMediaControllerオブジェクトの一部を形成するクエリーメソッドが呼び出される。前記例では、等しいオブジェクトIDの付いたMediaObjectポインタの集合体が返されるであろう。
【0057】
MediaBinオブジェクトは、ディレクトリのような階層構造の中のそれらの内に他のMediaBinオブジェクトを保持できる。したがって、例えば、「WorldCup」MediaBinは、「EnglandSweden」と呼ばれているその中にMediaBinを保持してよい。等しく、「EnglandSweden」MediaBinは、イングランド・スウェーデンのワールドカップの試合からクラスタ化されたMediaObjectsを保持するであろう。
【0058】
MediaBinオブジェクトクラスはSemanticObjectsの集合体も有する。SemanticObjectは抽象クラスである。MediaObjectクラス、MORelationshipクラス、MOGroupクラス、及びMOSequenceクラスは全て、抽象的なSemanticObjectクラスのサブクラスである(継承の例)。MediaObjectは、図2に見られるメタデータのようなものを含むオブジェクトである。
【0059】
MORelationshipは、MOGroupとMOSequenceがそれから継承する中間抽象クラスである。
【0060】
SemanticObjects(及び継承によってMediaObjects)は、MORelationshipオブジェクトに対するポインタである(parentRelationshipと呼ばれている)データメンバーを有する。(「ルートオブジェクト」と呼ばれている)親関係のないMediaObjectsは、このメンバーをNULLに設定させる。
【0061】
MORelationshipオブジェクトは、2つのMORelationshipサブクラス、MOGroup及びMOSequenceの中でオーバロードされるいくつかのパブリック抽象メソッドを有し、これらは以下のとおりである。
【数2】

【0062】
MOGroupはこれらのパブリックメソッドをオーバロードし、Collオブジェクト(非順序集合体)で通るMORelationshipが保護されているメソッドを呼び出す。MOSequenceは同じメソッドをオーバロードし、(Collから継承された順序付けられた集合体として)Listオブジェクトを有する保護されたメソッドを呼び出す。
【0063】
さらに、MOSequenceは、意味論的に関連したオブジェクトの配列内の所定の点でオブジェクトを挿入するために、insertFirst、insertLast、insertObjectBefore及びInsertObjectAfterの形式で追加のパブリックメソッドも提供する。
【0064】
言及されたように、MORelationshipオブジェクトはSmartObjectsの集合体を保持できる。しかしながら、MORelationshipオブジェクトによって保持されるSmartObjectのTYPE(タイプ)は制限されている(例えば、MediaBinsはMORelationshipオブジェクトによって保持されない)。保持されたSmartObjectタイプは、SemanticObjectの子ら、つまり(i)MOGroup、(ii)MOSequence及び(iii)MediaObjectに制限される。
【0065】
MORelationshipオブジェクトの中に挿入時、そのTYPEを確証するために入信オブジェクト上で(各派生クラスによってSmartObjectから継承され、オーバロードされる)getTypeを呼び出すことによってチェックが行われる。それが有効であると仮定し、オブジェクトが集合体(又はリスト)に追加され、そのparentRelationship属性は、それがちょうど追加されたMORelationshipに設定される。
【0066】
挿入オブジェクトと取り外しオブジェクトによって戻されたブール(Boolean)値は、挿入又は取り外しが無事に実施されたのかを示す。
【0067】
前記メソッドを用いて、エディタは、MediaObjectsに対するポインタのリストを含む、MOGroupオブジェクトとMOSequenceオブジェクトを生成できる。図4は、階層形式でエディタによって入力された関係性を示す。図4に示されているエディタにより生成された階層が、図3で見られるデータベーススキーマ階層に無関係であることに注意する。エディタが多くのメディアエレメントの自分の配置を変更するたびに、データベーススキーマを変更することは実際的ではないであろう。代わりに図4で見られるリンケージは、MOGroupオブジェクトとMOSequenceオブジェクトのデータメンバーとして記憶される。
【0068】
エディタによって生成される階層では、MediaObjectsはツリー構造の「葉(leaves)」で見られる。MediaObjectsの多く(例えば、0.13、0.14、0.15)は、グループ(例えば、1.2)−それらの下に、それらに属するMediaObjectsを指す矢印を有する矩形として示されている−の中に配置される。配列は、矩形の左上角に矢印を有することを除き、同様に描かれている。グループと配列は、それら自体さらに高水準のグループと配列のメンバーであり得る。
【0069】
CD4からクライアントコンピュータ10、12上にインストールされるテンプレート作成ツールコードは、メディア製品の所望される特性を指定するためにユーザにインタフェースを提供するために実行する−このようにして、テンプレートデータ40を作成する。
【0070】
メディアオブジェクトのように、本実施形態で使用するためのテンプレートオブジェクトは包括的な所定のデータモデルに適合する。図6から分かるように、所定のデータモデルはタイトルフィールド、及び複数のセクションを含む。各セクションは、名前フィールド、クエリーフィールド、及び任意に制約フィールドを備えるセットである。実行時、テンプレート作成プログラムは、ユーザにテンプレートの名称を入力し、セクション構造を示す(トップレベルのセクションはそれら自体セクションを含んでよい)ようにプロンプトを出すために、クライアントコンピュータ10、12を制御する。ユーザは例えば、マイクロソフトウィンドウズ(登録商標)エクスプローラ(登録商標)で提供されるフォルダリストに類似するグラフィカルユーザインタフェース構成要素を使用してセクション構造を示す。図6に示される例では、テンプレートは3つのセクションの平らな構造を有する。
【0071】
ユーザは、セクションのそれぞれにクエリー文字列を入力するためのこのグラフィカルユーザインタフェースを使用する。図6の真中のセクションのためのクエリー文字列は、テンプレート内でこのスロットを充填するための候補メディアオブジェクトが指定された俳優としてMichael Owenを有さなければならないことを示している。
【0072】
ユーザは、クエリーに応えてデータベースから取り出されたメディアオブジェクトによって表現されたメディアエレメントに対してなんらかの制約を課すことを希望する、それらのセクションに対する1つ以上の制約も入力してよい。制約は、メディアオブジェクトがテンプレートポピュレータによってアセンブルされる様式を制限することを目的とする。制約の考えられる例は時間(例えば、このセクションが5分の長さでなければならない)、空間(例えば、このプレゼンテーションが640*480ピクセルディスプレイで見られなければならない)、又は数(ニュース番組の「ヘッドライン」セクションには5つのニュース項目がなければならない)を含む。
【0073】
ユーザがいったん、テンプレートが完成していることを示すと、クライアントコンピュータ10、12は(RPCクライアントとサーバ39、52を使用して)サーバコンピュータ16にテンプレートデータ40を送信する。
【0074】
テンプレートデータ40は、次に、図7に示されるように動作するテンプレートポピュレータプログラム38に渡される。
【0075】
前述されたように、テンプレートポピュレータモジュール38は、消費者50向けの個人化されたメディア製品48の中にメディアオブジェクトのセットを合成することに備えて、編集決定リスト42を自動的にアセンブルするためのプロセスを提供する。開始時、テンプレートポピュレータ38は、その入力として、特定のテンプレート(例えば図6)と、メディアオブジェクトのストアのインジケータ(本ケースでは、オブジェクト指向データベース22の位置の表示)を取る。
【0076】
テンプレートポピュレータは、次に、テンプレート(図6)の第1のセクションを識別し、テンプレートの階層構造を通して反復する。
【0077】
各反復(図7)は、テンプレート内の次のセクションが検出されること、そのセクションの中の任意のクエリーがObjectStoreクエリーに変換され(ステップ60)、関連性のあるメディアオブジェクトにポインタ(基準)のセットを返すためにObjectStoreサーバ及びクライアントプログラム(ステップ62)によって実行されることを必要とする。その結果、返された基準は、該受信された基準によって指されたメディアオブジェクトに意味論的に関連しているメディアオブジェクトのために、追加のObjectStoreクエリーを発行するために使用される(ステップ63)。それ以後、テンプレートポピュレータプログラムの現在の反復で作用されている、テンプレートのセクションに対応する編集決定リスト42の部分を作成するために、多様なステップ(64、68、72)が実行される。
【0078】
図6で「メイン」と名前が指定されたセクションに関連する第2の反復がここで説明される。反復は開始し(ステップ62)、クエリーの該実施は該セクションとともに含まれる。第2のセクションの中のクエリーは、前述された指定俳優としてMichael Owenに言及する全てのMediaObjectsを要求する。
【0079】
図8は、1次クエリーと2次クエリーを発行し答えるステップ(図7:62、63)に関与している処理を、さらに詳しく示す。ステップ705では、ObjectStoreクエリー−この例では、以下のものに類似する−は、binListと呼ばれているMediaBin上で実行されるであろう。
【数3】

【0080】
これにより、「Michael Owen」が指定俳優であるMediaObjectsに対する参照の集合体が、テンプレートポピュレータプログラム38に戻される。
【0081】
ステップ707は、ObjectStoreデータベースサーバ34とObjectStoreクライアントプログラム(36、38、39)が、ObjectStoreデータベースサーバがクエリーに答えるときに、RAID18からサーバコンピュータの揮発性メモリ(RAM)17にアクセスされるページ(メモリの4Kユニット)をもたらすように相互運用することを示している。クエリーに回答する際にデータベース内に存在する任意のインデックスが使用されるときでさえ、これが揮発性メモリ17の中にもたらされているクエリーを満たすMediaObjectsを含むページを生じさせる。
【0082】
さらに詳細には、ObjectStoreクライアントプログラムは、RAID18からサーバコンピュータ16の揮発性メモリ17にまだ転送されていないページ上のオブジェクトを指す基準を処理するために、現代のオペレーティングシステム(本例では、サーバコンピュータ16はWindows(登録商標)NT等の適切なオペレーティングシステムプログラムを実行していると仮定される)により提供される、仮想メモリ(ページスワッピング)コードを使用する。当業者は、この状況が、メモリのページがPCのハードディスクとそのPCの揮発性メモリの間で転送される、ページスワッピングシステムで使用されている状況に類似していることを理解するであろう。プログラム、データ及びスタックの結合されたサイズが、使用可能な物理的なメモリより大きい仮想メモリが使用される。参照されるオブジェクトがあるページが、サーバコンピュータ16の揮発性メモリ17内にすでにある場合、ポインタの後に続くのはObjectStoreクライアントプログラムにとっては容易な事柄であるが、関連性のあるページがサーバコンピュータの揮発性メモリ17にまだ転送されていない場合、仮想メモリコードがメモリ障害を発行する。ObjectStoreクライアントコードは、ObjectStoreデータベースサーバ34から関連性のあるページを要求することによってメモリ障害に応える。
【0083】
したがって、ObjectStore状態についての前述された記事は、以下を述べている。「ObjectStoreはクライアントキャッシュ、つまり最近使用されたことがあるデータベースページのプールを、クライアントホストの仮想メモリの中に維持する。アプリケーションがメモリ障害を信号で知らせると、ObjectStoreは、アクセスされているページがクライアントキャッシュの中にあるかどうかを判断する。ない場合には、それはObjectStoreサーバにクライアントに該ページを送信するように依頼し、該ページをクライアントキャッシュの中に入れる。次に、クライアントキャッシュのページは[クライアントホストの]仮想アドレス空間の中にマッピングされ、その結果アプリケーションはそれにアクセスできる。最後に、故障指示が再開され、アプリケーションは続行する。」
前記の文章はObjectStoreクライアントプログラムが、データベースが記憶されているサーバコンピュータとは異なるクライアントコンピュータ上で実行中である状況を指しているが、同じ利点は(本実施形態でのケースでのように)ObjectStoreデータベースサーバとObjectStoreクライアントプログラムが同じコンピュータ上で実行している状況でも見られる−クライアントプログラム(36、38、39)は、それがクエリーに答えるためにアクセスしなければならないメディアオブジェクトの内の1つ以上が、該クライアントプログラムに割り当てられているメモリ17のその部分の中のキャッシュに保持されているのであれば、より迅速に解決する(resolve)であろう。キャッシュのデフォルトサイズは8MBである−しかしながら、これはサーバコンピュータ17の管理者により改変されてよい。
【0084】
ステップ705で発行されたクエリーに答えると、例えば、図9に太線で輪郭が描かれているMediaObjectsが選択される可能性がある。それらのメディアオブジェクトのそれぞれは、キャッシュの中に−つまりサーバコンピュータ16の揮発性メモリ17の中に−保持される。それらのオブジェクトに対する参照はテンプレートポピュレータプログラム38に渡される。
【0085】
ステップ711では、(選択されたMediaObjectsのそれぞれのparentRelationship及びMORelationshipデータメンバーを通して)追加のクエリーは、第1のクエリーに応えて戻されたMediaObjectsのそれぞれと同じ親を有するMediaObjectsについて行われる。意味論的なクエリーのこの第2の(及び任意の以後の)セットを構築する効果は、RAID18からサーバコンピュータ16の揮発性メモリ17の中に「関連」オブジェクトを転送することである。
【0086】
この第2のクエリーにより、例えば、図10に太線で輪郭が描かれているMediaObjectsが選択される可能性がある。再び、それらのメディアオブジェクトを含むページはRAID18から揮発性メモリ17に転送され(ステップ715)、それらのメディアオブジェクトに対する参照はテンプレートポピュレータコードに提供される(ステップ717)。
【0087】
図7に戻ると、ステップ64では、ツリーの「葉」として第1のクエリーに応えて選択されるメディアオブジェクトを含むツリーが構築される。この構築は以下のとおりに発生する。第1の選択されたメディアオブジェクトの親オブジェクトが取り出され、それに関連付けられた親オブジェクトを有さないオブジェクトに達するまで、その親オブジェクト等が後に続く。この時点で、葉オブジェクトから上位コンテナまでの単一のリンクされたリストが再構築された。別の選択された葉オブジェクトは(複数のオブジェクトがクエリーの結果として選択される場合)調べられ、第1のオブジェクトの祖先を表すリンクされたリストの中にすでに存在するオブジェクトが取り出されるか、あるいは別の上位コンテナに遭遇するかのどちらかまで、その葉オブジェクトの祖先が追跡される。選択の他のオブジェクト全てについてこのプロセスを繰り返すと、それらのオブジェクトを含む最小ツリーが再構築される。
【0088】
その結果、例えば、最小ツリーは図11に示されているとおりであってもよい。
【0089】
ツリーの構築(ステップ62から64)の後には、ツリー内でのオブジェクトの並べ替え(ステップ68)が行われる。
【0090】
該並べ替え(ステップ68)はユーザによって入力された配列情報を考慮する。これは、オブジェクトと関連付けられた配列位置メタデータによって識別されるように正しい順序でツリーのノードを設置するために、公知の「Quicksort」アルゴリズムを使用することによって行われる。これはツリーの上部で開始し、次にツリーの葉(つまりメディアオブジェクト)に向かって移動して行われる。
【0091】
テンプレートポピュレータは、次に、あらゆる制約を評価し、相応してツリーを更新する(ステップ72)。時間制約を評価するために、ツリーの中に含まれた各メディアオブジェクトの持続時間は「イン」プロパティから「アウト」プロパティを差し引くことによって計算され、これらの持続時間は実際の持続時間に到達するまでともに加算される。この持続時間がターゲット持続時間より大きいと判明すると、メディアオブジェクトはツリーから削除される。この持続時間がターゲット持続時間未満である場合には、メディアオブジェクトはツリーに追加される。
【0092】
実際の持続時間がターゲット持続時間未満である場合、第1の照会に応えて選択されたMediaObjectsのどれかと同じ配列に属するMediaObjectsが選択される−それらは、次に配列の近似の順序及び持続時間の順序で選択されたMediaObjectsに添付される。現在のセクションの新しいツリーは次に元のツリーと同様に作成される。このプロセスは、実際の持続時間がターゲット持続時間を上回るまで繰り返される。
【0093】
このステップは、このMediaObjectがステップ715で2次クエリーの発行時に揮発性メモリ17の中にもたらされたために、それ以外の場合当てはまるであろうよりわずかに迅速となると理解される。
【0094】
全てのセクションがメディアオブジェクトメタデータを投入され、規定されたクエリー及び制約に従って配列されたとき、テンプレートポピュレータは、ループの3回の反復で生じたツリーの葉で検出されたメディアエレメントを連結することにより、編集決定リスト(図12)を出力する(ステップ78)。
【0095】
テンプレートポピュレータプログラムモジュール(46)によって作成された編集決定リスト(図12)は、PC内のコンテンツシンセサイザモジュール(48)に渡される。本例では、コンテンツシンセサイザモジュールは、ストリーム化されたビデオプレゼンテーション内で次々にシーンを出力する、あるいはプログラムファイルを作成するために共にシーンを連結する。もちろんユーザが可能な限り短い遅延の後に自動的に生成されたプログラムを与えられることを希望することが理解されであろう。
【0096】
本実施形態は、データベース内のオブジェクト間の関係性を示すデータベースに関係性データを記憶することによって、これを達成するのにいくらか助けになることが分かるであろう。関係性データを分析することによって、クエリーに応えて戻された1次オブジェクトに関連する2次オブジェクトが特定され、キャッシュの中に入れられる。その結果(分解されるために2次オブジェクトへのアクセスを必要とする可能性が高い)以後のクエリーは加速される。
【0097】
本発明は多くの異なる方法で具現化されてよい。例えば、前述された実施形態は、本発明の代替実施形態を提供するために、以下の一覧表示されている方法の内の1つ以上で改変されてよい(このリストは決して包括的ではない)。
【0098】
i)第1の実施形態はインターネットによってサーバに接続されたパーソナルコンピュータを示しているが、本発明の他の実施形態はコンピュータの代わりにセットトップボックスを使用することができ、結果として生じるビデオは関連付けられたテレビ受像機で示される。このようなセットトップボックスの機能性を内蔵したテレビを使用することもできる。インターネットの代わりに、ケーブルテレビネットワーク、衛星ネットワーク、又は地上無線ネットワーク等の他のネットワークが使用できるであろう。
【0099】
ii)テンプレートの制約セクションはユーザによって可変である可能性がある−たとえば、ユーザは、自分が見ることを希望するメディア製品の持続時間を選択できるグラフィカルユーザインタフェースを与えられるであろう。その結果対応する値は、テンプレートポピュレータプログラムによってテンプレートオブジェクトに追加できる。
【0100】
iii)オブジェクト指向データベースは前記実施形態で使用される−本発明の他の実施形態はリレーショナルデータベースを使用できるであろう。このような実施形態では、意味論的に関連するデータ項目を示す関係性データは別個の表に記憶することができ、データベースの中のレコードと、1つ以上の意味論的に関連するデータ項目を一覧表示する別の表の中のレコードの間の関連は、該2つの表の間の関連を示すために1次キーと2次キーを使用して関連付けられている。このようなケースでは、図3に示されているメタデータは、それぞれの表の中の1つ以上のレコードとして記憶できるであろう。
【0101】
iv)前記実施形態では、ObjectStoreクライアントプログラムはサーバコンピュータで実行する。代替実施形態では、ObjectStoreクライアントは代わりにクライアントコンピュータ上で実行できるであろう。その場合、インターネット全体で要求を送信し、応答するのに要するものが、関連性のあるデータ項目がクライアントコンピュータのメモリ内で検出されるたびに節約されるであろうため、キャッシュ方式はなおさらに有益となるであろう。
【図面の簡単な説明】
【0102】
【図1】本発明の第1の実施形態によるメディアコンテンツ分散システムの概略図である。
【図2】図1に示されているコンピュータで実行されるソフトウェアのアーキテクチャを示す。
【図3】ファイルと関連するメタデータを示す。
【図4】第1の実施形態で使用されるオブジェクト指向データベース方式を示す。
【図5】エディタによって入力される関係性データの階層表現である。
【図6】テンプレート作成ツールを使用して生成するテンプレートデータを示す。
【図7】本発明の第1の実施形態のテンプレートポピュレータの構成要素の動作を示すフローチャートである。
【図8】図7のステップのいくつかをさらに詳しく示す。
【図9】1次クエリーに応えて選択されたメディアオブジェクトを示す。
【図10】2次クエリーに応えて選択されたメディアオブジェクトを示す。
【図11】葉が、1次クエリーに応えて選択されるメディアオブジェクトであるツリーを示す。
【図12】テンプレートポピュレータモジュールによって生じられる可能性のある編集決定リストを示す。

【特許請求の範囲】
【請求項1】
i)1以上のデータプロセッサと、
ii)前記1以上のデータプロセッサに接続可能な永続的な記憶装置手段であって、前記永続的な記憶装置手段は複数のデータ項目を記憶し、前記データ項目の内の1つ以上が、1つ以上の他のデータ項目に対する参照(複数の場合がある)を含むものと、
ii)前記データ項目の内の1つ以上を記憶するための、前記1以上のデータプロセッサに接続可能な揮発性メモリ手段と、
iii)前記永続記憶装置手段から前記揮発性メモリ手段へ、クエリー内で指定された1つ以上の基準を満たすデータ項目を渡すことによってクエリーに応えるために、前記1以上のデータプロセッサにより実行可能なデータベース管理システムソフトウェアと、
iv)前記データベース管理システムソフトウェアにクエリーを渡すために、前記1以上のデータプロセッサによって実行可能なクエリーコードと、
v) a)前記クエリーに応えて提供された応答データ項目を分析し、前記応答データ項目に関連する関連データ項目を発見し、かつb)前記関連するデータ項目のために別のクエリーを自動的に生成するために、前記1以上のデータプロセッサによって実行可能なプリフェッチコードと、
を有する、コンピュータ装置。
【請求項2】
前記データ項目のそれぞれがメディアファイルについてのメタデータを含み、前記メタデータは前記参照(複数の場合がある)を含み、参照(複数の場合がある)のそれぞれが、直接的に又は間接的に、関連するメタデータデータ項目を指し、該メタデータ項目のメタデータはメディアファイルについてであり、メディアファイルのコンテンツが第1のメディアファイルのコンテンツに意味論的に関連する、請求項1に記載のコンピュータ装置。
【請求項3】
クライアントコンピュータ及びサーバコンピュータを備え、それぞれが前記プロセッサの内の少なくとも1を有し、前記サーバコンピュータは前記永続的なメモリを制御し、前記クライアントコンピュータは前記揮発性メモリを制御する、請求項1又は請求項2に記載のコンピュータ装置。
【請求項4】
前記データ項目はメモリのページの形式で転送される、請求項3に記載のコンピュータ装置。
【請求項5】
前記サーバコンピュータは前記クエリーを解決し、前記選択されたデータ項目を前記クライアントコンピュータに送信する、請求項3又は請求項4に記載のコンピュータ装置。
【請求項6】
前記サーバコンピュータは前記クライアントコンピュータに前記データ項目を送信し、前記クライアントコンピュータは前記クエリーを解決する、請求項3又は請求項4に記載のコンピュータ装置。
【請求項7】
前記データ項目はソフトウェアオブジェクトである、請求項1乃至請求項6のいずれか1項に記載のコンピュータ装置。
【請求項8】
プロセッサと、前記プロセッサにアクセスできる第1と第2のデータメモリとを備える、コンピュータ装置を操作する方法であって、前記第1のメモリに保持されているデータに対する前記プロセッサによるアクセスが、前記第2のメモリに対するアクセスよりも迅速であり、該方法は、
前記データ項目間の関係性を示す関係性データとともに、前記第2のデータメモリに複数のデータ項目を記憶するステップと、
i)1つ以上のデータ項目を関係性データとともに前記第2のメモリからフェッチし、該関係性データは前記フェッチされるデータ項目に意味論的に関連する1つ以上の関連データ項目を示すものであり、
ii)前記関係性データの受信に応えて、前記第2のメモリから前記第1のメモリに前記意味論的に関連するデータ項目の内の1つ以上をフェッチし、
iii)データ項目に対する以後の要求時に、前記要求されたデータ項目が前記第1のメモリに存在するかチェックし、検出された場合には前記第1のメモリから前記データ項目を読み取るために、
前記プロセッサ上でプロセスを実行するステップと、
を備える、方法。
【請求項9】
前記データ項目は、メディアファイルの識別子、及び前記識別されたメディアファイルによって描かれている内容を表現するメタデータを備える、請求項8に記載の方法。
【請求項10】
前記第2のメモリがデータベースを保持する、請求項8に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公表番号】特表2007−531097(P2007−531097A)
【公表日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2007−504460(P2007−504460)
【出願日】平成17年3月18日(2005.3.18)
【国際出願番号】PCT/GB2005/001051
【国際公開番号】WO2005/093603
【国際公開日】平成17年10月6日(2005.10.6)
【出願人】(390028587)ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー (104)
【氏名又は名称原語表記】BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY
【Fターム(参考)】