(57)【要約】インターネット上のファイルを検索するためにコンピュータが実施する方法が提供される。一実施形態では、本方法は、ウェブページの全てのコンポーネントをアセンブルし、動的にインスタンス化するアプリケーションクローラを提供することができる。従って、インスタンス化済みウェブアプリケーションアプリケーションを解析してウェブページの所望のコンポーネントの位置を特定することができる。この操作では、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントの挿入により起動し、情報をアプリケーションから抽出し、更に当該情報をファイルまたはデータベースに書き込む。
2008521147.tif 000002
【特許請求の範囲】
【請求項１】
複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうことをコンピュータが実施する方法。
【請求項２】
前記クロールを行なうことは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回することを備える請求項１の方法。
【請求項３】
前記マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている請求項２の方法。
【請求項４】
前記クロールを行なうことは、
クリック可能アイテムのツリーを辿り、
個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動することを備える請求項１の方法。
【請求項５】
前記クロールを行なうことは、ページまたはアプリケーションのシードリストを辿ることを備える請求項１の方法。
【請求項６】
前記クロールを行なうことは、ＵＲＬのリスト、アプリケーションポインタのリスト、またはＲＳＳフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿ることを備える請求項１の方法。
【請求項７】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項１の方法。
【請求項８】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項１の方法。
【請求項９】
前記インデクシングを行なうことは、
ドキュメントまたはアプリケーションを読み込み、
前記ドキュメントまたはアプリケーションをインスタンス化し、
インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項１の方法。
【請求項１０】
前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードをデータベースに登録することを備える請求項１の方法。
【請求項１１】
前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードを指すポインタをデータベースに保管することを備える請求項１の方法。
【請求項１２】
前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ（ＵＲＬ）をデータベースに格納することを備える請求項１の方法。
【請求項１３】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項１の方法。
【請求項１４】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項１３の方法。
【請求項１５】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項１３の方法。
【請求項１６】
オブジェクトは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項１の方法。
【請求項１７】
クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Ａｃｒｏｂａｔファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項１の方法。
【請求項１８】
クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含む請求項１の方法。
【請求項１９】
クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含む請求項１の方法。
【請求項２０】
前記クロールを行なうことは、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なうことを備える請求項１の方法。
【請求項２１】
クローリングではインターネットに対してクロールを行なう請求項１の方法。
【請求項２２】
前記クロールを行なうことは、ＴＣＰ／ＩＰネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１の方法。
【請求項２３】
前記クロールを行なうことは、公衆ネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１の方法。
【請求項２４】
前記クロールを行なうことは、プライベートネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１の方法。
【請求項２５】
アプリケーションまたはドキュメントは全てインスタンス化される請求項１の方法。
【請求項２６】
アプリケーションまたはドキュメントの一部分のみがインスタンス化される請求項１の方法。
【請求項２７】
前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項１の方法。
【請求項２８】
前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項１の方法。
【請求項２９】
更に、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項１の方法。
【請求項３０】
更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項１の方法。
【請求項３１】
コンピュータネットワーク上のビデオファイルを検索するためにコンピュータが実施する方法であって、
複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なってビデオファイルの位置を特定する、前記方法。
【請求項３２】
前記クロールを行なうことは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回することを備える請求項３１の方法。
【請求項３３】
前記マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている請求項３２の方法。
【請求項３４】
前記クロールを行なうことは、
クリック可能アイテムのツリーを辿り、
個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動することを備える請求項３１の方法。
【請求項３５】
前記クロールを行なうことは、ページまたはアプリケーションのシードリストを辿ることを備える請求項３１の方法。
【請求項３６】
前記クロールを行なうことは、ＵＲＬのリスト、アプリケーションポインタのリスト、またはＲＳＳフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿ることを備える請求項３１の方法。
【請求項３７】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項３１の方法。
【請求項３８】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項３１の方法。
【請求項３９】
前記インデクシングを行なうことは、
ドキュメントまたはアプリケーションを読み込み、
前記ドキュメントまたはアプリケーションをインスタンス化し、
インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項３１の方法。
【請求項４０】
前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードをデータベースに登録することを備える請求項３１の方法。
【請求項４１】
前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードを指すポインタをデータベースに保管することを備える請求項３１の方法。
【請求項４２】
前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ（ＵＲＬ）をデータベースに格納することを備える請求項３１の方法。
【請求項４３】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項３１の方法。
【請求項４４】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項４３の方法。
【請求項４５】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項４３の方法。
【請求項４６】
オブジェクトは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項３１の方法。
【請求項４７】
クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Ａｃｒｏｂａｔファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項３１の方法。
【請求項４８】
クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含む請求項３１の方法。
【請求項４９】
クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含む請求項３１の方法。
【請求項５０】
前記クロールを行なうことは、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なうことを備える請求項３１の方法。
【請求項５１】
クローリングではインターネットに対してクロールを行なう請求項３１の方法。
【請求項５２】
前記クロールを行なうことは、ＴＣＰ／ＩＰネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項３１の方法。
【請求項５３】
前記クロールを行なうことは、公衆ネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項３１の方法。
【請求項５４】
前記クロールを行なうことは、プライベートネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項３１の方法。
【請求項５５】
アプリケーションまたはドキュメントは全てインスタンス化される請求項３１の方法。
【請求項５６】
アプリケーションまたはドキュメントの一部分だけがインスタンス化される請求項３１の方法。
【請求項５７】
前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項３１の方法。
【請求項５８】
前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項３１の方法。
【請求項５９】
更に、データクエリーインターフェースを、前記実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項３１の方法。
【請求項６０】
更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項３１の方法。
【請求項６１】
検索可能なデータベースを生成するためにコンピュータが実施する方法であって、
複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なってビデオファイルの位置を特定し、
前記オブジェクトモデル内で見つかったビデオファイルを、当該ビデオファイルを指すポインタを前記データベースに保管することによりインデクシングし、
前記ビデオファイルについてのメタデータを前記オブジェクトモデルから抽出し、前記メタデータを前記データベースに格納する、前記方法。
【請求項６２】
インターネット上のファイルを検索するためにコンピュータが実施する方法であって、
ビデオリッチなウェブサイトを特定するプロトコルクローラを用意し、
前記ビデオリッチなウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタと、
前記インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定するエクストラクタであって、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、
前記インスタンス化済みウェブアプリケーションアプリケーションを解析し、そのアプリケーションの全てのクリック可能アイテムを捜し出し、解析して、そのウェブアプリケーションを、イベントを挿入することにより起動し、そのアプリケーションから情報を抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを備えるアプリケーションクローラを用意する、前記方法。
【請求項６３】
前記インスペクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
一つまたは複数のブラウザのドキュメントオブジェクトモデル（ＤＯＭ）実装、
ＪａｖａＳｃｒｉｐｔ、ＪＳｃｒｉｐｔ、ＥＣＭＡＳｃｒｉｐｔ、またはＶＢＳｃｒｉｐｔを実行する機能を持つスクリプトエンジン、
ＸＭＬパーサエンジン、
カスケーディングスタイルシートエンジン、
ネットワークＩ／Ｏライブラリ、
ＨＴＭＬパーサ兼レンダリングエンジン、
ＡｃｔｉｖｅＸコントロールのような埋め込みコントロールを実行するエンジン、または
ウェブアプリケーションをレンダリングするエンジン、
である請求項６２の方法。
【請求項６４】
前記エクストラクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
ＸＳＬエンジン、
ＸＰａｔｈ実装、
正規表現エンジン、
スクリプト実行エンジン、
これらには制限されないが、ＡｃｔｉｖｅＸオブジェクト及びＣＯＭオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ、
ｈｔｔｐプロキシのようなネットワークトランスポートプロキシ、
ｒｔｓｐプロキシまたは他のマルチメディアストリームプロキシ、
データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ、
メタデータを分類するタクソノミーエンジン、または
テキストパーサ兼処理エンジン、
である請求項６２の方法。
【請求項６５】
前記クローラは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
ファイルＩ／Ｏライブラリ、
ネットワークＩ／Ｏライブラリ、または
ログファイルを生成し、保存するライブラリ、
である請求項６２の方法。
【請求項６６】
インターネット上のファイルを検索するためにコンピュータが実施する方法であって、
ターゲットＵＲＬを捜し出し、
前記ターゲットＵＲＬのＨＴＭＬファイルをダウンロードし、
ウェブアプリケーション全体をＨＴＭＬファイルに含まれる情報に基づいて構築するために使用される補足データファイルをダウンロードし、
前記補足データファイル及びＨＴＭＬファイルのアプリケーションコンポーネントをアセンブルし、
前記アプリケーションコンポーネントをインスタンス化してウェブアプリケーションを生成し、
ウェブアプリケーションの内、有用データを含む可能性のある全てのオブジェクトにデータクエリーインターフェースを適用し、
事前定義アプリケーションテンプレートを読み込むか、または、アプリケーションテンプレートを生成して自動定義し、
前記アプリケーションテンプレートを適用して所望情報の全てを前記ウェブアプリケーションから抽出し、
前記所望情報をファイルまたはデータベースに構造化データ情報レコードとして保存し、
前記ウェブアプリケーションの全てのコンポーネントを分析して、マウスイベントに応答することができる、またはクリック可能アイテムを構成することができる全ての使用可能なコンポーネントを特定し、
どのクリック可能アイテムが、シミュレートされた最後のマウスイベント以降に現われたかを判断し、
全ての可能なアプリケーション状態においてアプリケーション内の全てのクリック可能アイテムを含むツリーの新規ブランチのような適切なデータ構造に、クリック可能な新規アイテムを保存し、
前記クリック可能アイテムのツリーの現在のブランチの第１のクリック可能アイテムに対するマウスクリックをシミュレートする、
方法。
【請求項６７】
更に、本方法を、クリック可能アイテムのツリー全体が巡回されるまで繰り返す請求項６６の方法。
【請求項６８】
インスタンス化ステップは、
ＨＴＭＬをレンダリングし、ドキュメントオブジェクトモデルを構築するステップ、
スタイルシートを適用するステップ、
スクリプトを適切なスクリプトインタープリタで実行するステップ、
ＡｃｔｉｖｅＸコントロールのようなコントロールまたはプラグインの全てを起動するステップ、
ビデオストリームまたはオーディオストリームを送出するステップ、
Ｆｌａｓｈアニメーションのようなアニメーションを展開するステップ、または
ＨＴＭＬビヘイビアスクリプトを実行するステップ、
の内の少なくとも一つのステップを含む請求項６６の方法。
【請求項６９】
ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうプログラミングコードを有するアプリケーションクローラを備えるコンピュータシステム。
【請求項７０】
更に、
ウェブサイトを特定して検査するプロトコルクローラを備え、前記アプリケーションクローラは、前記ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なう請求項６９のコンピュータシステム。
【請求項７１】
前記アプリケーションクローラは、
複数のウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタを含む請求項６９のコンピュータシステム。
【請求項７２】
前記アプリケーションクローラは、
インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタを含む請求項６９のコンピュータシステム。
【請求項７３】
前記アプリケーションクローラは、
インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラを含む請求項６９のコンピュータシステム。
【請求項７４】
前記プロトコルクローラは、少なくとも一つのビデオファイルを含むウェブサイトを特定して検査する請求項６９のコンピュータシステム。
【請求項７５】
前記プロトコルクローラは、少なくとも一つのメディアファイルを含むウェブサイトを特定して検査する請求項６９のコンピュータシステム。
【請求項７６】
前記プロトコルクローラは、ｍｐｅｇファイル、ａｖｉファイル、リアルメディアファイル、フラッシュファイル、ｔｓファイル、ｗｍｖファイル、またはＱｕｉｃｋｔｉｍｅ（商標）ファイルの内の少なくとも一つを含むウェブサイトを特定して検査する請求項６９のコンピュータシステム。
【請求項７７】
前記アプリケーションクローラは、クリック可能アイテムのツリーを検査し、個人ユーザが行なう手順とほぼ同様に自動化した手順で各アイテムを起動するように構成される請求項６９のコンピュータシステム。
【請求項７８】
前記アプリケーションクローラは、データ抽出、いつリンクを辿ればよいかのタイミング、クロールする深度レベル、コマーシャルをスキップする方法、クロールを開始すべき場所、リンクを捜し出す操作、タイトルの位置、メディアファイルメタデータの位置、時間的同期、またはクローラに指示して或る時間間隔だけ待機させ、次にオブジェクトツリーを再度クロールさせる操作の内の少なくとも一つのために構成されたテンプレートを使用する請求項６９のコンピュータシステム。
【請求項７９】
ビデオリッチなウェブサイトを特定するプロトコルクローラと、アプリケーションクローラとを備えるシステムであって、前記アプリケーションクローラが、
ビデオリッチな前記ウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタと、
インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、
インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを含むものである、前記システム。
【請求項８０】
前記インスペクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
一つまたは複数のブラウザのドキュメントオブジェクトモデル（ＤＯＭ）実装、
ＪａｖａＳｃｒｉｐｔ、ＪＳｃｒｉｐｔ、ＥＣＭＡＳｃｒｉｐｔ、またはＶＢＳｃｒｉｐｔを実行する機能を持つスクリプトエンジン、
ＸＭＬパーサエンジン、
カスケーディングスタイルシートエンジン、
ネットワークＩ／Ｏライブラリ、
ＨＴＭＬパーサ兼レンダリングエンジン、
ＡｃｔｉｖｅＸコントロールのような埋め込みコントロールを実行するエンジン、または
ウェブアプリケーションをレンダリングするエンジン、
である請求項７９のコンピュータシステム。
【請求項８１】
前記エクストラクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
ＸＳＬエンジン、
ＸＰａｔｈ実装、
正規表現エンジン、
スクリプト実行エンジン、
これらには制限されないが、ＡｃｔｉｖｅＸオブジェクト及びＣＯＭオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ、
ｈｔｔｐプロキシのようなネットワークトランスポートプロキシ、
ｒｔｓｐプロキシまたは他のマルチメディアストリームプロキシ、
データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ、
メタデータを分類するタクソノミーエンジン、または
テキストパーサ兼処理エンジン、
である請求項７９のコンピュータシステム。
【請求項８２】
クローラは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
ファイルＩ／Ｏライブラリ、
ネットワークＩ／Ｏライブラリ、または
ログファイルを生成し、保存するライブラリ、
である請求項７９のコンピュータシステム。
【請求項８３】
ターゲットＵＲＬを受信し、
複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルをインデクシングする、コンピュータが実施する方法。
【請求項８４】
受信するステップでは、ＵＲＬのリストを受信する請求項８３の方法。
【請求項８５】
受信するステップでは、ＵＲＬのリスト、アプリケーションポインタのリスト、またはＲＳＳフィードの内の少なくとも一つを受信する請求項８３の方法。
【請求項８６】
前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項８３の方法。
【請求項８７】
前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項８３の方法。
【請求項８８】
前記インデクシングを行なうことは、
ドキュメントまたはアプリケーションを読み込み、
ドキュメントまたはアプリケーションをインスタンス化し、
インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項８３の方法。
【請求項８９】
前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードをデータベースに登録することを備える請求項８３の方法。
【請求項９０】
前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードを指すポインタをデータベースに保管することを備える請求項８３の方法。
【請求項９１】
前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ（ＵＲＬ）をデータベースに格納することを備える請求項８３の方法。
【請求項９２】
前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項８３の方法。
【請求項９３】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項９２の方法。
【請求項９４】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項９２の方法。
【請求項９５】
オブジェクトは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項８３の方法。
【請求項９６】
インデクシング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Ａｃｒｏｂａｔファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項８３の方法。
【請求項９７】
アプリケーションまたはドキュメントは全てインスタンス化される請求項８３の方法。
【請求項９８】
アプリケーションまたはドキュメントの一部分だけがインスタンス化される請求項８３の方法。
【請求項９９】
前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項８３の方法。
【請求項１００】
前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項８３の方法。
【請求項１０１】
更に、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項８３の方法。
【請求項１０２】
更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項８３の方法。
【請求項１０３】
コンピュータで利用可能な媒体、及びコンピュータで利用可能な前記媒体に格納されるコンピュータ読み取り可能なコードを備えるコンピュータプログラム製品であって、
前記コンピュータ読み取り可能なコードが、コンピュータに、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なわせるように構成されたコンピュータ読み取り可能なプログラムコードを含む、コンピュータプログラム製品。
【請求項１０４】
前記クロールを行なうことは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回することを備える請求項１０３のコンピュータプログラム製品。
【請求項１０５】
前記マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている請求項１０４のコンピュータプログラム製品。
【請求項１０６】
前記クロールを行なうことは、
クリック可能アイテムのツリーを辿り、
個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動することを備える請求項１０３のコンピュータプログラム製品。
【請求項１０７】
前記クロールを行なうことは、ページまたはアプリケーションのシードリストを辿ることを備える請求項１０３のコンピュータプログラム製品。
【請求項１０８】
前記クロールを行なうことは、ＵＲＬのリスト、アプリケーションポインタのリスト、またはＲＳＳフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿ることを備える請求項１０３のコンピュータプログラム製品。
【請求項１０９】
前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項１０３のコンピュータプログラム製品。
【請求項１１０】
前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項１０３のコンピュータプログラム製品。
【請求項１１１】
前記インデクシングを行なうことは、
ドキュメントまたはアプリケーションを読み込み、
ドキュメントまたはアプリケーションをインスタンス化し、
インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項１０３のコンピュータプログラム製品。
【請求項１１２】
前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードをデータベースに登録することを備える請求項１０３のコンピュータプログラム製品。
【請求項１１３】
前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードを指すポインタをデータベースに保管することを備える請求項１０３のコンピュータプログラム製品。
【請求項１１４】
前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ（ＵＲＬ）をデータベースに格納することを備える請求項１０３のコンピュータプログラム製品。
【請求項１１５】
前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項１０３のコンピュータプログラム製品。
【請求項１１６】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項１１５のコンピュータプログラム製品。
【請求項１１７】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項１１５のコンピュータプログラム製品。
【請求項１１８】
オブジェクトは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項１０３のコンピュータプログラム製品。
【請求項１１９】
クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Ａｃｒｏｂａｔファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項１０３のコンピュータプログラム製品。
【請求項１２０】
クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含む請求項１０３のコンピュータプログラム製品。
【請求項１２１】
クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含む請求項１０３のコンピュータプログラム製品。
【請求項１２２】
前記クロールを行なうことは、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なうことを備える請求項１０３のコンピュータプログラム製品。
【請求項１２３】
クローリングではインターネットに対してクロールを行なう請求項１０３のコンピュータプログラム製品。
【請求項１２４】
前記クロールを行なうことは、ＴＣＰ／ＩＰネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１０３のコンピュータプログラム製品。
【請求項１２５】
前記クロールを行なうことは、公衆ネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１０３のコンピュータプログラム製品。
【請求項１２６】
前記クロールを行なうことは、プライベートネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１０３のコンピュータプログラム製品。
【請求項１２７】
アプリケーションまたはドキュメントは全てインスタンス化される請求項１０３のコンピュータプログラム製品。
【請求項１２８】
アプリケーションまたはドキュメントの一部分だけがインスタンス化される請求項１０３のコンピュータプログラム製品。
【請求項１２９】
前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項１０３のコンピュータプログラム製品。
【請求項１３０】
前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項１０３のコンピュータプログラム製品。
【請求項１３１】
更に、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項１０３のコンピュータプログラム製品。
【請求項１３２】
更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項１０３のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野は検索エンジンに関し、特に、ビデオファイルを検索可能で、最新のウェブページやウェブアプリケーションから詳細情報を抽出するように構成される検索エンジンに関する。本発明によるアプリケーションクローラは標準的なウェブクローラとは多くの点で顕著に異なる。
【背景技術】
【０００２】
標準的なウェブクローラは元々、ＨＴＭＬテキストファイルＴ内にそのページの有用情報の大半が含まれるウェブページに対して設計されている。図１Ａは、現在のウェブページに適用した場合の標準的なウェブクローラの能力不足を示している。昨今のウェブページでは、ページについての有用情報が種々の異なるファイルに含まれていることが益々一般的になっており、これらのファイルが全てブラウザ内でアセンブルされてアプリケーション全体が構築される。最新ウェブアプリケーションに使用される共通ファイルには次のものが含まれる。
・複数のＨＴＭＬファイルやフレームセット
・ＧＩＦまたはＪＰＥＧのような画像ファイル
・Ｊａｖａｓｃｒｉｐｔファイル、Ｊｓｃｒｉｐｔファイル、及びＶＢＳｃｒｉｐｔファイル
・カスケーディングスタイルシートファイル
・ＸＭＬデータファイル
・ＡｃｔｉｖｅＸコントロールまたはブラウザプラグイン
・ビデオ及びオーディオストリーム
・Ｆｌａｓｈアニメーション
・ＨＴＭＬビヘイビア
・埋め込みメディアプレーヤ
昨今の最新ウェブアプリケーションでは、１つのウェブページだけでこれらの技術の全てを利用してページを生成するのは珍しいことではない。この点を考えると、昨今のウェブページはもはや単なる静的書類ではない。多くの場合、これらのウェブページは、複雑な状態を維持し、ユーザ入力イベントまたは他のブラウザイベントまたはタイマーイベントに応答して高性能の操作を実行するフル機能の動的アプリケーションである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特にこれらの最新ウェブアプリケーションから有用情報を理解し抽出することができるように設計されたアプリケーションが望まれる。このようなアプリケーションは、ＨＴＭＬやＰＤＦなどのような静的ファイルタイプについてのみ理解する機能を持つ従来のウェブクローラよりも能力的に優れる。
【課題を解決するための手段】
【０００４】
本発明は、上に説明した不具合の内の少なくとも幾つかに対する解決手段を提供する。詳細には、本発明のある実施形態はＨＴＭＬファイルのテキストを解析するだけでなく、ビデオファイルの存在を示すリンクについてのコンテンツを検査するクローラを提供する。本発明は、これらには制限されないが、ビデオファイル、メディアファイル、マルチメディアストリーミングサービス、及び／又は非静的ファイルタイプのようなインターネット上の各種ファイルを更に徹底的に検索することができる改良型クローラを提供する。本発明はまた、これらには制限されないが、テキストストリング、画像、ドキュメントオブジェクトモデルのノード、及び／又は通常は最新ウェブアプリケーションの内部に含まれる他のクラスのデータオブジェクトのようなインターネット上の各種特定の情報を検索することができる改良型クローラを提供する。本発明は、現在のインターネットクローラに比べ詳細な情報をウェブページから抽出するように構成してもよい。本明細書に記載するこれらの目的及び他の目的の内の少なくとも幾つかの目的は本発明の実施形態によって達成されることになる。
【０００５】
一態様では、本発明は、オブジェクト空間のオブジェクト、またはドキュメントまたはアプリケーションのオブジェクトモデルを、特にインターネット上でクロールする方法を提供する。詳細には、本発明は、ワールドワイドウェブ（ＷＷＷ）のオブジェクトモデルに対してクロールを行なう。本発明のクローラは、インスタンス化（実体化）されていないドキュメント及び／又は静的ドキュメントではなく、ファイルまたはページがウェブ上で実行された場合に得られる、機能しているアプリケーションまたはインスタンス化済みアプリケーションを探ることができる。このインデクシングは、個々のウェブページの内部で行なわれ、あるいは、インターネット上の複数の場所にあるウェブサイトに対して横断的に行なわれる。このインデクシングを行なうことは、オブジェクトモデルを検査し、検査を多数のマシンやネットワークやサイトに渡って行なうことができる。一実施形態では、オブジェクト空間のクローリングまたはインデクシングは、分散型アプリケーション及び／又はネットワークに渡って行なわれる。これまでのウェブドキュメントのページは通常はモノリス的で静的であり、更にそのページのコンテンツを全て確認するためにインスタンス化する必要がなかったので、従来では、クローリングまたはインデクシングを行ないたいという要望はなかった。アプリケーション及びドキュメントは非常に複雑になっているので、オブジェクト空間に対してクロールを行なって全ての利用可能なコンテンツを捜し出すことが望ましい。更に、これまでオブジェクトに容易にアクセスすることができなかったので、以前のクローラはオブジェクト空間に対してクロールを行なうように構成されていなかった。
【０００６】
本発明の一実施形態では、オブジェクト空間のクローリングは、ドキュメントがインスタンス化されると行なわれる。別の表現をすると、本発明は機能しているアプリケーションに対するクロールを行なう。これにより、クローラは、アプリケーションまたはウェブページがインスタンス化されると読み込まれる更に別のオブジェクトまたは要素を捜し出すことができる。インスタンス化を行なわなければ、コンテンツの多くは可視化されないであろう。捜し出すことができるコンテンツという観点では、読み取られる静的ファイルと、実行中アプリケーションでインスタンス化されているものとの間には差がある。
【０００７】
本発明の一実施形態では、全ての電子化されたドキュメントまたはアプリケーションメディアファイルに到達し、それを分析し、当該ファイルのコンテンツをインデクシングすることができるインデクサが用意される。インデクサはこの操作を、当該アプリケーションのあらゆるノードや要素に到達し、ノードまたは要素をデータベースに登録するか、またはノードまたは要素を指すポインタを取り込むことによって行なう。この方法は、インスタンス化済みアプリケーションのオブジェクトモデル（ピースまたはオブジェクト）の全てのノードまたは要素に適用される。
【０００８】
更に詳細には、本発明の一実施形態によるアプリケーションクローラは、ウェブアプリケーション全体を読み込み、アセンブルし、インスタンス化するように構成することができる。図１Ｂから分かるように、昨今のウェブページには、これらには制限されないが、同時に実行することができるスクリプト及び埋め込みコントロールのような複数のコンポーネントが組み込まれていることがある。この上部には、従来のクローラでは対象として設計されていない動的ＨＴＭＬを使用するページがある。本発明は、これらのコンポーネントの全てを読み込み、インスタンス化することができるクローラを提供することができる。当該アプリケーションの当該インスタンス化の例では、クローラは、これに制限されないが、ビデオコンテンツのようなコンテンツを示すことができるソフトウェアオブジェクトを探索する。クローラはウェブページ上のボタンの押下またはリンクのクリックをシミュレートし、このようにして収集される情報をファイルまたはデータベースに保存する。
【０００９】
本発明の更に別の実施形態では、アプリケーションクローラの使用方法が提供される。１）一態様では、アプリケーションクローラは、ウェブドキュメント（ＨＴＭＬドキュメントだけでなく）を一括して生成するコンポーネントの全てを読み込むことができる。一例として、ただし本発明を制限しない例として、コンポーネントは、複数のＨＴＭＬドキュメント、複数のスクリプト、埋め込みソフトウェア、バックグラウンドで読み込まれるスタイルシート、ｈｔｍｌビヘイビア（個別スクリプト）、ＸＭＬファイル、及び／又はウェブページのために読み込まれる種々のファイルの全てを含む。２）別の態様では、アプリケーションクローラは、ウェブページの複数のコンポーネントが一つのコンポーネントとしてアセンブルされ、かつ当該コンポーネントがテキストドキュメントとは異なるアプリケーションとして見えるようにインスタンス化されるように構成することができる。３）更に別の態様では、アプリケーションクローラは当該オブジェクト表現を取り込み、これに制限されないが、ビデオファイルのようなファイルに関連する、またはユーザに対して表示されている情報に関連する特定の数のメタデータを取り出すことができる。すなわち、オブジェクト空間で利用することができるメタデータは「ファイル」に関連付ける必要はないが、表示されている全ての情報に関連付ける必要がある。時間軸も考慮される。関連メタデータは、ウェブアプリケーションが決定する（フラッシュムービでは普通に行なわれるように）所定の時間軸の結果として、または特定ユーザアクションの結果（例えば、ユーザクリックの結果として現われるポップアップウィンドウ）として、現在たまたま表示されている情報に関連付ける必要がある。一実施形態では、アプリケーションはビデオストリームまたはビデオプレーヤに到達し、関連データを取り出すことができる。本発明は、ビデオストリームから出力されるイベントを探索し、情報を当該方法により取得することができる。
【００１０】
本発明の別の実施形態では、ＲＳＳフィードを使用してターゲットＵＲＬをクローラに供給して検査させることができる。本実施形態では、クローラは、供給ＵＲＬに対応するインスタンス化済みウェブアプリケーションアプリケーションのオブジェクト空間及びオブジェクトモデルの全てを分析することができる。クローラはメタデータをメディアプレーヤから、またはウェブアプリケーションの他の場所から抽出することができる。従って、本実施形態では、クローリングはページを指すＲＳＳポインタを通して行なわれる。クローラは、ＵＲＬにｈｔｔｐリンクを設置しているＲＳＳフィードに従って動作する。従って、クローリングでは、１）クリック可能アイテムのツリーに対してクロールを行ない、これらのアイテムをユーザが行なう方法（人が行なう方法と同じ、または同様の自動化方法）で起動し、及び／又は、２）ページまたはアプリケーションのシードリスト（ＵＲＬのリスト、またはアプリケーションポインタのリスト、またはＲＳＳフィードのリストのような）を経由してクロールする。
【００１１】
本発明の別の実施形態では、アプリケーションクローラは３つのテンプレート、すなわち１）サイト自体のテンプレート（タイミング、コマーシャルなど…クロールを開始するところ）、２）リンクファインダー（リンクを捜し出す）、及び／又は３）データ抽出用テンプレート（タイトル、ディレクター、著者などの位置）の内のいずれか一つを使用することができる。例えば、クローリング及びインデクシングは時間的イベント（他のイベントが生じると同時に生じる変化の時間的同期）、空間関係（視覚的空間関係）、または他のトリガーに基づいて行なうことができる。第１テンプレートを使用して、クローラは、ウェブページ上のボタンのクリックのようなエンドユーザ行為をシミュレートする。３０秒後のオブジェクトの探索のようなタイミングイベントを制御テンプレートとすることもでき、かつタイミングイベントによってクローラはウェブページを更に徹底的に検査することができる。これらのテンプレートによってクローラに指示して或る時間間隔だけ待機させ、オブジェクトツリーを再度クロールさせることができる。タイミングを制御するこのテンプレートは、昨今の複雑なウェブページのコンテンツをマイニングするために特に有用である。
【００１２】
テンプレートは、特定の数の情報をインスタンス化済みアプリケーションから抽出するために使用することもできる。クローラはテンプレートを使用してオブジェクトモデルの一部分またはノード、テキストストリング、アプリケーションのオブジェクト空間のシングルオブジェクトまたはオブジェクト集合、及び／又はアプリケーション内に含まれるページまたはファイルを特定することができる。本発明を制限しない例として、本発明のクローラはビデオの期間、ビデオの分解能、ビデオのタイトル、ビデオの説明、ビデオの品質、ビデオの原版に関する情報、及び／又は他の関連情報を収集することができる。収集メタデータはデータベースに格納される。一実施形態では、テンプレートは、クローラに、ウェブページまたはアプリケーションなどに対してクロールを行ない、及び／又はインデクシングする方法について指示する一連の命令及び／又はプログラミングコードとすることができる。
【００１３】
本発明は、メディアプレーヤオブジェクトに対してクロールを行なうアプリケーションクローラを含むこともできる。オブジェクトツリーを、非常に簡単なアプリケーションクローラを使用して巡回することができる。クローラは、ビデオが再生されていることを認識することができる。この簡易クローラはＵＲＬを検証してデータ完全性を確認し、ビデオファイルの位置を特定することもできる。この簡易クローラは、非常に多くの動的コンテンツ（例えば、広告など）を含んでいて全てのファイルを読み込むのに非常に手間が掛かるページに対して非常に有用である。
【００１４】
本発明の一実施形態では、コンピュータが実施する方法が提供され、この方法では、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なう。この方法におけるクローリングでは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回する。マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている。クローリングでは更に、クリック可能アイテムのツリーを辿り、個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動する。
【００１５】
この方法では、ページまたはアプリケーションのシードリストを辿る。この方法では、ＵＲＬのリスト、アプリケーションポインタのリスト、またはＲＳＳフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿る。この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回する。この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録する。この方法では、ドキュメントまたはアプリケーションを読み込み、ドキュメントまたはアプリケーションをインスタンス化し、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回する。この方法では、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードをデータベースに登録する。別の実施形態においては、この方法では、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードを指すポインタをデータベースに保管する。更に別の実施形態においては、この方法では、メディアに関連する複数のユニフォームリソースロケータ（ＵＲＬ）をデータベースに格納する。
【００１６】
この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートする。この方法では、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する。この方法では、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する。オブジェクトは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素とすることができる。クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Ａｃｒｏｂａｔファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含むことができる。クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含むことができる。クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含むことができる。
【００１７】
この方法では、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なう。この方法では、インターネットに対してクロールを行なう。この方法では、ＴＣＰ／ＩＰネットワーク上の全てのデバイスに対してクロールを行なう。この方法では、公衆ネットワーク上の全てのデバイスに対してクロールを行なう。この方法では、プライベートネットワーク上の全てのデバイスに対してクロールを行なう。この方法では、アプリケーションまたはドキュメントは全てインスタンス化される。本発明のある実施形態では、アプリケーションまたはドキュメントの一部分のみがインスタンス化される。この方法では、ビデオファイルをインスタンス化する。この方法では、ビデオストリームをインスタンス化する。この方法では、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする。この方法では、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする。
【００１８】
本発明の更に別の実施形態では、コンピュータネットワーク上のビデオファイルを検索するためにコンピュータが実施する方法が提供される。この方法では、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なってビデオファイルの位置を特定する。
【００１９】
本発明の別の実施形態では、検索可能なデータベースを生成するためにコンピュータが実施する方法が提供される。この方法では、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なってビデオファイルの位置を特定し、オブジェクトモデルに含まれるビデオファイルを、ビデオファイルを指すポインタをデータベースに保管することによりインデクシングし、ビデオファイルについてのメタデータをオブジェクトモデルから抽出し、メタデータをデータベースに格納する。
【００２０】
本発明の更に別の実施形態では、インターネット上のファイルを検索するためにコンピュータが実施する方法が提供され、この方法では、ビデオリッチなウェブサイトを特定するプロトコルクローラを用意し、アプリケーションクローラを用意する。アプリケーションクローラは、ビデオリッチな前記ウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタを含む。アプリケーションクローラは更に、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを含む。
【００２１】
一実施形態では、インスペクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、一つまたは複数のブラウザのドキュメントオブジェクトモデル（ＤＯＭ）実装、ＪａｖａＳｃｒｉｐｔ、ＪＳｃｒｉｐｔ、ＥＣＭＡＳｃｒｉｐｔ、またはＶＢＳｃｒｉｐｔを実行する機能を持つスクリプトエンジン、ＸＭＬパーサエンジン、カスケーディングスタイルシートエンジン、ネットワークＩ／Ｏライブラリ、ＨＴＭＬパーサ兼レンダリングエンジン、ＡｃｔｉｖｅＸコントロールのような埋め込みコントロールを実行するエンジン、またはウェブアプリケーションをレンダリングするエンジンである。
【００２２】
一実施形態では、エクストラクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、ＸＳＬエンジン、ＸＰａｔｈ実装、正規表現エンジン、スクリプト実行エンジン、これらには制限されないが、ＡｃｔｉｖｅＸオブジェクト及びＣＯＭオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ、ｈｔｔｐプロキシのようなネットワークトランスポートプロキシ、ｒｔｓｐプロキシまたは他のマルチメディアストリームプロキシ、データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ、メタデータを分類するタクソノミーエンジン、またはテキストパーサ兼処理エンジンである。
【００２３】
一実施形態では、クローラは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、ファイルＩ／Ｏライブラリ、ネットワークＩ／Ｏライブラリ、またはログファイルを生成し、保存するライブラリである。
【００２４】
本発明の更に別の実施形態では、インターネット上のファイルを検索するためにコンピュータが実施する方法が提供される。この方法では、ターゲットＵＲＬを捜し出し、ターゲットＵＲＬのＨＴＭＬファイルをダウンロードし、ウェブアプリケーション全体をＨＴＭＬファイルに含まれる情報に基づいて構築するために使用される補足データファイルをダウンロードし、前記補足データファイル及びＨＴＭＬファイルのアプリケーションコンポーネントをアセンブルし、アプリケーションコンポーネントをインスタンス化してウェブアプリケーションを生成し、データクエリーインターフェースをウェブアプリケーションの内、有用データを含む可能性のある全てのオブジェクトに適用し、事前定義アプリケーションテンプレートを読み込み、またはアプリケーションテンプレートを生成し、自動定義し、アプリケーションテンプレートを適用して所望情報の全てをウェブアプリケーションから抽出し、所望情報をファイルまたはデータベースに構造化データ情報レコードとして保存し、ウェブアプリケーションの全てのコンポーネントを分析して、マウスイベントに応答することができる、またはクリック可能アイテムを構成することができる全ての使用可能なコンポーネントを特定し、どのクリック可能アイテムが、シミュレートされた最後のマウスイベント以降に現われたかを判断し、全ての可能なアプリケーション状態においてアプリケーション内の全てのクリック可能アイテムを含むツリーの新規ブランチのような適切なデータ構造に、クリック可能な新規アイテムを保存し、クリック可能アイテムのツリーの現在のブランチの第１のクリック可能アイテムに対するマウスクリックをシミュレートする。
【００２５】
本方法では、この方法を、クリック可能アイテムのツリー全体が巡回されるまで繰り返す。インスタンス化ステップは、ＨＴＭＬをレンダリングし、ドキュメントオブジェクトモデルを構築するステップ、スタイルシートを適用するステップ、スクリプトを適切なスクリプトインタープリタで実行するステップ、ＡｃｔｉｖｅＸコントロールのようなコントロールまたはプラグインの全てを起動するステップ、ビデオストリームまたはオーディオストリームを送出するステップ、Ｆｌａｓｈアニメーションのようなアニメーションを展開するステップ、またはＨＴＭＬビヘイビアスクリプトを実行するステップ、の内の少なくとも一つのステップを含む。
【００２６】
本発明の別の実施形態では、コンピュータシステムは、ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうプログラミングコードを有するアプリケーションクローラを備える。システムは更に、ウェブサイトを特定して検査するプロトコルクローラを備え、アプリケーションクローラは、ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なう。アプリケーションクローラは、複数のウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタを含む。アプリケーションクローラは更に、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタを含む。更に、アプリケーションクローラは、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラを含む。プロトコルクローラは、少なくとも一つのビデオファイル、少なくとも一つのメディアファイル、またはｍｐｅｇファイル、ａｖｉファイル、リアルメディアファイル、フラッシュファイル、ｔｓファイル、ｗｍｖファイル、またはＱｕｉｃｋｔｉｍｅ（商標）ファイルの内の少なくとも一つを含むウェブサイトを特定して検査する。アプリケーションクローラは、クリック可能アイテムのツリーを検査し、個人ユーザが行なう手順とほぼ同様に自動化した手順で各アイテムを起動するように構成される。アプリケーションクローラは、データ抽出、いつリンクを辿ればよいかのタイミング、クロールする深度レベル、コマーシャルをスキップする方法、クロールを開始すべき場所、リンクを捜し出す操作、タイトルの位置、メディアファイルメタデータの位置、時間的同期、またはクローラに指示して或る時間間隔だけ待機させ、次にオブジェクトツリーを再度クローリングさせる操作の内の少なくとも一つのために構成されたテンプレートを使用してもよい。
【００２７】
本発明の更に別の実施形態では、ビデオリッチなウェブサイトを特定するプロトコルクローラと、アプリケーションクローラとを含むコンピュータシステムが提供される。アプリケーションクローラは、ビデオリッチな前記ウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタと、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを含む。
【００２８】
本発明の更に別の実施形態においては、コンピュータが実施する方法では、ターゲットＵＲＬを受信し、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルをインデクシングする。受信するステップでは、ＵＲＬのリストを受信する。受信するステップでは更に、ＵＲＬのリスト、アプリケーションポインタのリスト、またはＲＳＳフィードの内の少なくとも一つを受信する。この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回する。
【００２９】
本発明の別の実施形態では、コンピュータプログラム製品は、コンピュータで利用可能な媒体、及びコンピュータで利用可能な前記媒体に格納されるコンピュータ読み取り可能なコードを備える。コンピュータ読み取り可能なコードは、コンピュータ読み取り可能なプログラムコードを含み、そのプログラムコードは、コンピュータに、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうように構成される。
【００３０】
本発明の本質及び利点は、本明細書の残りの部分、及び図を参照することにより更に深く理解される。
【発明を実施するための最良の形態】
【００３１】
上記の概要説明及び下記の詳細説明はともに一例に過ぎず、かつ例示を目的としたものであり、請求の範囲に記載した本発明を制限しないことを理解されたい。本明細書及び請求の範囲に使用されるように、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は本文において特に断らない限り、複数の指示対象を含むことに留意されたい。従って、例えば「クローラ（ａ  ｃｒａｗｌｅｒ）」と表現される場合、この表現は「複数のクローラ（ｍｕｌｔｉｐｌｅ  ｃｒａｗｌｅｒｓ）」などを包含する。本明細書において列挙される参考文献は、これらの文献の内容の内、本明細書に明示される示唆と相容れない部分を除いて、ここで参照することにより文献の内容の全体が本明細書に組み込まれる。
【００３２】
概括すると、クローラのようなプログラムは、コンピュータネットワークを事前に巡回してドキュメント（例えば、ウェブページ）を探し求め、そのドキュメント中に見つかったリンク、キーワード、及び／又はメタデータから成る大きいインデックスファイルまたはデータベースを構築する。ユーザが一つ以上の検索タームを含むクエリーを策定する場合、ユーザはそのクエリーを検索エンジンの別のプログラムに提出する。それに応答して、その検索エンジンは自身のインデックスファイルを検査し、その検索クエリーに一致するドキュメントのリストを通常はハイパーリンクとして表示する。次に、ユーザは通常はこれらのハイパーリンクの内の一つを起動してドキュメントに含まれる情報を閲覧する。
【００３３】
図１Ａ及び図１Ｂから分かるように、トゥルベオ（Ｔｒｕｖｅｏ）アプリケーションクローラ１０は、これに制限されないがメディアファイルのようなファイルを探し出すことに関して従来のクローラよりもずっと優れている。図１Ｂから分かるように、クローラ１０は、これらには制限されないが、ビデオストリーム１１、バックグラウンドで読み込まれるＸＭＬデータアイランド１２、ブラウザプラグインやＡｃｔｉｖｅＸコントロール１３、スクリプトによって生成されるＨＴＭＬフラグメント１４、非アンカーの「ｏｎＣｌｉｃｋ」リンク１５、フォームエレメント、スクリプト実行により生成されるページエレメント、ユーザイベントまたはタイマーイベント１６、動的に適用されるスタイルシート１７、ＨＴＭＬビヘイビア１８などのような各種コンポーネントを含む複雑なウェブアプリケーションを分析し、操作することができる。クローラ１０は、単一の、または複数のドキュメント、フレーム、フレームセット、ファイル、オブジェクト、アプリケーション、及び／又はウィンドウから成るウェブアプリケーションを分析し、操作することができる。各メディアファイルについての情報はビデオデータレコードとしてデータベースに保存することができる。ビデオデータレコード１９は、これらには制限されないが、タイトル、内容説明、ＵＲＬ、ジャンル、ビデオランタイムまたはビデオ長、ビットレート、日付などのような情報を含むことができる。
【００３４】
概括すると、本発明の一実施形態は、プロトコルクローラ２と、リポジトリ４と、リコメンデーションエンジン６と、アプリケーションクローラ１０とを含むことができる。プロトコルクローラ２は高スループットＨＴＴＰエンジンであり、このエンジンはウェブに対してクロールを行ない、ビデオコンテンツを管理（ホスト）すると考えられるサイトを特定することができる。プロトコルクローラ２は、アプリケーションクローラ１０に特定サイトに対するクロールとインデクシングを行なうように指示する。アプリケーションクローラ１０が収集する情報はリポジトリ４に保存される。任意であるが、リコメンデーションエンジン６を使用して有用な応答を、リポジトリに対して実行されるクエリーに送信し易くすることができる。
【００３５】
トゥルベオアプリケーションクローラの設計
次に、図２に示す実施形態を参照すれば、トゥルベオアプリケーションクローラ１０は、協調動作して機能全体を提供する３つのコンポーネントを含むことができる。これらの３つのコンポーネントとは、（１）インスペクタ２０、（２）エクストラクタ３０、及び（３）クローラ４０であり、以下に説明する。しかしながら、この構成は本発明の一実施形態であり、他の実施形態ではこれらのコンポーネントの機能を異なる順番で組み合わせたり、またはより少ないコンポーネントとして実施することができることを理解されたい。本発明を制限しない例として、インスペクタ２０をエクストラクタ３０と組み合わせたり、インスペクタ２０をクローラ４０と組み合わせたり、または他の組み合わせを行なうことができる。
【００３６】
概括すると、アプリケーションクローラ１０の技術は、昨今の複合ウェブアプリケーションに対してクロールを行なうことができる。本発明を制限しないクローラ１０の例として、インスペクタ２０は全てのコンポーネントを動的にインスタンス化し全てのコンポーネントを全機能アプリケーションにアセンブルする。エクストラクタ３０は適応型データマイニングエンジンであり、このエンジンは、ＸＰａｔｈ、スクリプト、ＸＳＬ、及びＤＯＭナビゲーションを利用してリッチメタデータを抽出する。クローリングエンジン４０はダイナミックリンクを特定し、ユーザイベント及びタイマーイベントを生成する。図２を参照すると、本発明のある実施形態はＲＳＳフィード９（仮想線で示す）及び他のＸＭＬフィード、またはウェブサイトの簡易リストを、プロトコルクローラ２ではなく、アプリケーションクローラ１０の入力の独立ソースとして有することができると理解されよう。アプリケーションクローラ１０の更に別の実施形態は、プロトコルクローラまたはＲＳＳフィードを入力として用いることなく使用される。
【００３７】
インスペクタ
本実施形態では、インスペクタ２０は、全てのウェブアプリケーションコンポーネントをダウンロードし、ウェブアプリケーションをインスタンス化し、「データクエリーインターフェース」をアプリケーション内に存在する全てのオブジェクトに適用する役割を担う。これを行なうために、インスペクタ２０は幾つかのソフトウェアコンポーネントを管理することができ、これらのソフトウェアコンポーネントを使用してこれらのタスクを図３に示すように実行することができる。本発明を制限しない一例では、これらのソフトウェアコンポーネントには以下のものが適宜含まれる。
・一つまたは複数のブラウザに関するドキュメントオブジェクトモデル（ＤＯＭ）実装２１
・ＪａｖａＳｃｒｉｐｔ、ＪＳｃｒｉｐｔ、ＥＣＭＡＳｃｒｉｐｔ、ＸＡＭＬ、またはＶＢＳｃｒｉｐｔを実行する機能を持つスクリプトエンジン２２
・ＸＭＬパーサエンジン２３
・カスケーディングスタイルシートエンジン２４
・ネットワークＩ／Ｏライブラリ／エンジン２５
・ＨＴＭＬパーサ兼レンダリングエンジン２６
・ＡｃｔｉｖｅＸコントロールのような埋め込みコントロールを実行するエンジン２７
・ウェブアプリケーションをレンダリングするエンジン２８
本実施形態では、インスペクタ２０は以下のようにして、ウェブアプリケーションコンポーネントをダウンロードし、インスタンス化する。まず、インスペクタは或るターゲットＵＲＬに関するＨＴＭＬページまたはフレームセットをダウンロードする。この操作は、標準的なＨＴＴＰ  ＧＥＴ処理を使用して行なうことができる。当該親ＨＴＭＬページまたはフレームセットのコンテンツに基づいて、インスペクタ２０は次に、アプリケーション全体をアセンブルするために使用される追加ファイルの全てをダウンロードする。これらのファイルはスクリプト、画像、スタイルシート、データファイル、プラグイン、ＡｃｔｉｖｅＸコントロール、オーディオストリームまたはビデオストリーム、或いはアプリケーション全体をサポートするために必要な他の全てのコンポーネントを含む。
【００３８】
ひとたびアプリケーションコンポーネントファイルの全てがダウンロードされると、インスペクタ２０は、ダウンロード済みファイルを、上に列挙したコンポーネントのような適切なソフトウェアコンポーネントを使用して実行することにより、アプリケーションをインスタンス化する。
【００３９】
ひとたび個々のアプリケーションコンポーネントの全てがインスタンス化され、かつウェブアプリケーション全体がアセンブルされると、インスペクタ２０は、「データクエリーインターフェース」を、インスタンス化済みソフトウェアオブジェクトの全てに適用する。これらの「データクエリーインターフェース」は、ウェブアプリケーションのソフトウェアオブジェクトを、トゥルベオアプリケーションクローラ１０が情報をページから自動的に抽出するために使用可能な標準インターフェースで包むラッパーであってもよい。例えば、「データクエリーインターフェース」は、ドキュメントオブジェクトモデルの全ての個々の要素に適用することができ、これによりアプリケーションクローラ１０は当該ＤＯＭ要素の全ての属性またはスタイルに関するクエリーを実行することができる。同様に、「データクエリーインターフェース」は、ウェブアプリケーション内部でインスタンス化される全てのメディアプレーヤに適用することができ、これによりアプリケーションクローラ１０はメディアプレーヤに対して、メディアプレーヤプロパティに対してだけでなく、全てのダウンロード済みオーディオストリームまたはビデオストリームのメタデータに対してクエリーを実行することができる。任意であるが、「データクエリーインターフェース」のある実施形態はソフトウェアオブジェクトを包むのにラッパーを使用しなくてもよいことを理解されたい。ある実施形態は直接接続を使用することができる。
【００４０】
エクストラクタ
トゥルベオアプリケーションクローラ１０の本実施形態の２つ目の主要コンポーネントはエクストラクタ３０である。本発明のこの実施形態では、エクストラクタ３０は、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタレコードに取り込むために使用されるロジックを提供する役割を担う。これを行なうために、エクストラクタ３０は、エクストラクタが図４から分かるようなタスクを実行するために使用する種々のソフトウェアコンポーネントを管理する。一例として、かつ本発明を制限しないが、これらのソフトウェアコンポーネントには以下のものが適宜含まれることができる。
・ＸＳＬエンジン３１
・ＸＰａｔｈ実装３２
・正規表現エンジン３３
・スクリプト実行エンジン３４
・これらには制限されないが、例えばＡｃｔｉｖｅＸオブジェクト及びＣＯＭオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ３５
・ｈｔｔｐプロキシのようなネットワークトランスポートプロキシ３６
・ｒｔｓｐまたは他のマルチメディアストリームプロキシ３７
・データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ３８（例えば、メタデータを更に処理するためのＮＥＴブリッジ）
・メタデータを分類するタクソノミーエンジン３９
・テキストパーサ兼処理エンジン４１
本実施形態では、エクストラクタ３０は、ウェブアプリケーションの内、有用情報を含む特定部分を特定するが、この特定操作は、（１）自動アルゴリズムを使用して、アプリケーションに含まれかつ有用データを含むオブジェクトを認識するか、または、（２）有用データを含むオブジェクトを特定する事前設定テンプレートを使用するか、または、（３）（１）及び（２）を組み合わせることにより行なわれる。本発明を制限しない例として、かつウェブアプリケーションに含まれる情報を特定するときにエクストラクタが使用する自動アルゴリズムの例として、エクストラクタは情報を、特定時間に生じるＤＯＭの変化に基づいて、ページの所定オブジェクトに空間的に近い別オブジェクトの情報に基づいて、視覚的特徴または視覚スタイルに基づいて、所定のＤＯＭ構造の存在を認識することにより、及び／又はウェブアプリケーションにおける所定テキスト、または他のタイプの情報の存在を認識することにより特定することができる。ここで、一実施形態では、これらの自動アルゴリズムはエクストラクタ３０のコンポーネントを、読み込まれ、かつ特定ウェブページ、アプリケーションなどに使用されるテンプレートの指示に従って使用することを理解されたい。本発明を制限しない例として、かつ有用データを特定するために使用することができるテンプレートの例として、エクストラクタ３０は、インスペクタ２０によって適用される「データクエリーインターフェース」のメソッドまたは属性を使用する、ＤＯＭパスネーム、ＸＳＬフィルタまたはＸＰａｔｈフィルタ、正規表現、スクリプトコードのセグメント、またはこれらの要素のいずれかの組み合わせを使用することができる。これらの技術を連続使用して抽出情報を更に高度化することもできる。エクストラクタ３０はこの埋め込みロジックを使用して全ての有用情報をページから抽出し、要求されたときに当該情報を構造化メタデータレコード内に返す。
【００４１】
クローラ
トゥルベオアプリケーションクローラ１０のこの実施形態の３つ目の主要コンポーネントはクローラ４０である。本発明のこの実施形態では、クローラ４０は、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションに含まれる全てのクリック可能アイテム（ａｋａリンク、ｏｎＣｌｉｃｋイベントなど）を捜し出し、解析し、イベントを挿入することによりウェブアプリケーションを起動し、そのアプリケーションから情報を抽出し、当該情報をファイルまたはデータベースに書き込む役割を担う。この操作を行なうために、クローラ４０は、クローラがそのタスクを実行するために利用する種々のソフトウェアコンポーネントを管理する。一例として、かつ本発明を制限しない例として、これらのコンポーネントは以下の技術要素を取り入れることができる。
・ファイルＩ／Ｏライブラリ４２
・ネットワークＩ／Ｏライブラリ４３
・ログファイルを生成し、保存するライブラリ４４
・イベントモニタ４５
この実施形態では、クローラ４０はウェブアプリケーションを解析し、ページの中で、マウスクリックイベントに応答することができる全ての利用可能なアイテムを捜し出す。これらのアイテムは「クリック可能アイテム」と呼ばれる。この操作を行なうために、クローラ４０は以下に示すアイテムのようなページアイテムを特定する。
（１）マウスクリックイベントに応答することができるアンカー（すなわち、＜Ａ＞）タグのようなＨＴＭＬタグ
（２）有効な「ｏｎＣｌｉｃｋ」ハンドラーを含むＨＴＭＬ要素、または、有効な「ｏｎＣｌｉｃｋ」ハンドラーを含むＤＯＭ内のオブジェクトの子オブジェクト
（３）マウスクリックイベントをハンドルするＨＴＭＬビヘイビアをすることになるＨＴＭＬ要素
（４）マウスイベントに応答することができるＦｌａｓｈオブジェクトまたはメディアプレーヤのような全ての埋め込みコントロールの内部の要素またはオブジェクト
（５）クリックされるとウェブページにフォームサブミッションを行なわせるＨＴＭＬ要素
ひとたびクローラ４０がアプリケーションに含まれる全ての「クリック可能アイテム」を特定すると、クローラはこれらのアイテムを、「クロールツリー（ｃｒａｗｌ  ｔｒｅｅ）」とも呼ばれるツリーのようなデータ構造に保持する。
【００４２】
この実施形態では、クローラ４０はまた、イベントの挿入及びイベントのモニタリングにより、ウェブアプリケーションを起動しモニタリングする役割を担う。例えば、クローラ４０は、これらには制限されないが、マウスオーバーイベント、マウスダウンイベント、またはマウスクリックイベントのようなイベントをアプリケーションに追加して、ユーザがリンクをクリックする操作をシミュレートする。クローラ４０はまた、タイマーイベント、メディアプレーヤイベント、またはページ再読み込みのようなブラウザイベントを追加して必要に応じてウェブアプリケーションを制御することができる。従って、本発明を制限しない例として、クローラ４０は、シミュレートマウスイベント、キーボードイベント、または他のユーザイベントが終わるまで待機することができる。クローラ４０は、プログラム生成イベント、ブラウザイベント、及び／又はメディアプレーヤイベントが終わるまで待機することもできる。アプリケーションを起動する他に、クローラ４０はアプリケーションをモニタリングして種々のイベントを検出することもできる。例えば、クローラ４０は、新規データがアプリケーションにダウンロードされた時点、または新規ビデオストリームまたは新規オーディオストリームが送出された時点を示すイベントを検出することができる。これらのイベントは全て、グローバルアプリケーションイベントモニタによってモニタリングされる。イベントモニタは或るウェブアプリケーションの状態をモニタリングし、ウェブアプリケーションによって生成されるイベントをモニタリングし、クローラ４０の実行を所定の状態及び／又はイベントの有無に基づいて制御する役割を担う。本発明を制限しない例として、イベントモニタは、（１）ドキュメントオブジェクトモデルの特定部分、または所定のウェブアプリケーションまたは埋め込みコントロールのオブジェクト状態、（２）ウェブアプリケーションを表示するために使用されるスクリーンバッファの一部分、または全てにおける変化、及び／又は（３）ウェブページ、メディアプレーヤまたは埋め込みコントロールによって生成されるイベントをモニタリングすることができる。
【００４３】
正常動作状態では、クローラ４０は、第１ターゲットＵＲＬに対応するウェブアプリケーションが全てインスタンス化されると動作を開始する。この時点で、クローラ４０はページに含まれる全ての「クリック可能アイテム」を特定し、次にリストの第１の「クリック可能アイテム」に対するマウスクリックをシミュレートする。この時点で、イベントモニタは、シミュレートしたクリックに応答したアプリケーションの変化をモニタリングする。イベントモニタの中でコード化されたロジックに基づいて、ひとたび所定イベント（ページ読み込み、またはコンポーネント起動のような）が受信されると、イベントモニタはエクストラクタ３０を起動して全ての所望情報を含むメタデータレコードをウェブアプリケーションから返す。次に、クローラ４０はこのメタデータレコードを取得し、当該レコードをメモリ、ファイルに書き込む、または当該レコードをデータベースに追加する。ひとたびこのメタデータレコードを収集すると、クローラ４０はウェブアプリケーションを再分析し、シミュレートした最後のマウスクリック以降に現われたクリック可能な新規アイテムの全てを特定する。これらのクリック可能な新規アイテムは「クロールツリー（ｃｒａｗｌ  ｔｒｅｅ）」データ構造に追加される。次に、クローラ４０は「クロールツリー」内にある次の「クリック可能アイテム」に進み、当該アイテムのマウスクリックをシミュレートし、上記したステップを繰り返す。クローラ４０は、ウェブアプリケーションの全てのクリック可能アイテムの捜し出しとクリックが完了するまでこの動作を続ける。この動作が終了したら、クローラ４０はターゲットＵＲＬリスト内の次のＵＲＬに進む。クローラ４０はツリーに対してクロールを行なうためのテンプレートを含むこともできる。一実施形態では、テンプレートはナビゲートするためのパス、及び特定タイミング命令の両方を含むことができる。本発明において使用するテンプレート（群）は、種々の管理項目の中でも、データ抽出だけでなく、リンクを捜し出すべき場所、いつリンクを辿ればよいかのタイミング、クロールする深度レベル、どのようにしてコマーシャルをスキップするかについて管理することができる。
【００４４】
トゥルベオアプリケーションクローラの動作
次に、図６を参照すれば、標準動作モードにおいて、この実施形態のトゥルベオアプリケーションクローラ１０は次のステップに従って動作することができる。以下の記述では、ＨＴＭＬファイルのダウンロードについて説明するが、以下の技術要素は、これらには制限されないが、ＸＡＭＬ、ＸＭＬ、Ａｃｒｏｂａｔ、Ｆｌａｓｈファイル、またはいずれかのダウンロード可能なウェブページのようないずれかのウェブアプリケーションまたはドキュメントに適用することもできる。クローラ１０の使用方法は以下のステップを含むことができる。
【００４５】
１．ターゲットＵＲＬから開始する（５０）
２．所定ＵＲＬのＨＴＭＬファイル（ＸＡＭＬファイル、ＸＭＬファイル、Ａｃｒｏｂａｔファイル、Ｆｌａｓｈファイル、またはいずれかのダウンロード可能なウェブページとすることもできる）をダウンロードする（５２）。ＨＴＭＬファイルに含まれる情報に基づいて、ウェブアプリケーション全体を構築するために使用される全ての補足データファイルをダウンロードする。補足データファイルとして、これらには制限されないが、以下の技術要素を挙げることができる。
ａ．画像ファイル
ｂ．ＪａｖａＳｃｒｉｐｔ、Ｊｓｃｒｉｐｔ、及びＶＢＳｃｒｉｐｔのようなスクリプトファイル
ｃ．ＸＭＬデータファイル及び／又はＸＡＭＬファイル
ｄ．スタイルシートファイル
ｅ．ＡｃｔｉｖｅＸコンポーネントまたはプラグイン
ｆ．ビデオストリーム
ｇ．オーディオストリーム
ｈ．Ｆｌａｓｈファイルのようなアニメーション
ｉ．ＨＴＭＬビヘイビア
３．全てのアプリケーションコンポーネントがダウンロードされると、ウェブアプリケーション全体を、これらには制限されないが、以下のようなアクションによってインスタンス化する（５４）。
ａ．ＨＴＭＬをレンダリングし、ドキュメントオブジェクトモデルを構成する
ｂ．スタイルシートを適用する
ｃ．全てのスクリプトを適切なスクリプトインタープリタで実行する
ｄ．ＡｃｔｉｖｅＸコントロールのようなコントロールまたはプラグインの全てを起動する
ｅ．ビデオストリームまたはオーディオストリームを送出する
ｆ．Ｆｌａｓｈアニメーションのようなアニメーションを展開する
ｇ．ＨＴＭＬビヘイビアスクリプトを実行する
４．ひとたびウェブアプリケーション全体をアセンブルし、インスタンス化し、初期化すると、データクエリーインターフェースを上述のように、有用データを含むことができるアプリケーションの全オブジェクトに適用する（５６）。
【００４６】
５．アプリケーションの状態を、イベントモニタを使用してモニタリングし（５８）、指定条件が満たされる場合に、次のステップを実行する。
ａ．事前定義アプリケーションテンプレートを読み込む、または上述のように定義される自動定義アプリケーションテンプレートを生成する（６０）
ｂ．アプリケーションテンプレートを適用して（６２）所望情報の全てをウェブアプリケーションから抽出する
ｃ．抽出データをファイルまたはデータベースに構造化データ情報レコードとして保存する（６４）
６．ウェブアプリケーションに含まれる全てのコンポーネントを分析して（６６）、マウスイベントに応答することができ、かつクリック可能アイテムとも呼ばれる全ての利用可能なコンポーネントを特定する。どのクリック可能アイテムがシミュレートした最後のマウスイベント以降に現われたかについて判断する。クリック可能な新規アイテムを、全てのクリック可能アイテムをアプリケーションに全ての可能なアプリケーション状態で含むツリーの新規ブランチのような適切なデータ構造に保存する。
【００４７】
７．クリック可能アイテムのツリーの現在のブランチの第１のクリック可能アイテムに対するマウスクリックをシミュレートし（６８）、次に最初のステップに戻る。これらのステップをクリック可能アイテムのツリー全体が巡回されるまで繰り返す操作を継続する。
【００４８】
ここで、上記方法に関して、データクエリーインターフェースの適用のような任意の幾つかのステップをスキップすることができることを理解されたい。これらのステップの順番は変更することができ、かつ幾つかのステップを一つのステップにまとめることができる。
【００４９】
次に、図７を参照すれば、本発明の原理は、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なう操作（７０）、及びインデクシングする操作（７２）であると考えることができる。ここでも同じように、この原理はインターネット規模で実行することができ、クローリングでは、異なるマシンのページ、ファイル、ドキュメント、またはアプリケーションを巡回することができる。これらのページ、ファイル、ドキュメント、またはアプリケーションを、クリック可能アイテムを検査する前にインスタンス化して利用可能なコンテンツ及び／又はメタデータの各々を更に徹底的に検査する。
【００５０】
データ集約
図８を参照すれば、クローラ１０が収集するデータは集約することができる。例えば、プロトコルクローラ２が抽出したメタデータは、アプリケーションクローラ１０が抽出したメタデータと集約することができる。更に、複数のソースからのデータ集約はアプリケーションクローラ１０自体の内部で行なうことができる。例えば、アプリケーションクローラは、ビデオに関連する可能性のある複数のウェブブラウザ（ウィンドウ）を同時に検査することができる。これらのウェブページは異なるＵＲＩドメインにさえも存在し得る。本発明の実施形態は、ビデオストリームのテクニカルデータを、これらには制限されないが、アプリケーションクローラ１０、プロトコルクローラ２、ＲＳＳ／ＸＭＬフィード９のような他のソースから得られるメタデータと集約することもできる、またはビデオを解析するために使用されるツール７４（これらには制限されないが、ビデオストリームのオーディオコンテンツをテキストに変換する音声認識ツールを含む）から得られるメタデータと集約することもできる。メタデータ集約エンジン７６は、適切なポインタ、リンク、テキスト、または種々のソースからの他の情報を検索可能な参照データベースに保存することができる。
【００５１】
本発明の更に別の実施形態では、本発明のクローリング技術は、テキストベースのメタデータをビデオ自体に基づいて生成されるテクニカルパラメータに関連付ける機能を含む。本発明を制限しない例として、ビデオのテクニカルパラメータは、ビデオの期間、分解能、フレームレート、品質、フォーマット、サムネイルなどを含むことができる。更に、アプリケーションクローラが収集するデータは、プロトコルクローラ、ＲＳＳフィードからのデータ、クローラのオペレータによる編集コメント、またはコンテンツ製作者または配信者が供給するデータにより補足する、またはこれらのデータと集約することができる。
【００５２】
図９から分かるように、この操作を行なうための一の方法は、機能が極めて制限された一実施形態のアプリケーションクローラ１４０を使用するプロセスを含むことができる。例えば、本発明は、ＲＳＳフィードのＵＲＬをステップ１５０の入力として使用し、ＨＴＭＬ及び全ての補足事項をステップ１５２でダウンロードし、ウェブページのＨＴＭＬ及び補足事項をステップ１５４においてレンダリングし（例えば、ＵＲＬにナビゲートするブラウザを使用する）、ウェブページが開いてビデオを再生するのを待機し、次にマルチメディアプレーヤとして公開されるアプリケーションプログラミングインターフェース（ＡＰＩ）を使用してマルチメディアプレーヤにビデオについての情報に関するクエリーを実行する。この実施形態では、本発明は公開ＡＰＩを使用してマルチメディアプレーヤのオブジェクトモデルに対してクエリーを実行し、マルチメディアプレーヤから取り出されるメタデータを、入力ＵＲＬのソースにより供給されるデータと集約する。この制限アプリケーションクローラへの入力ＵＲＬは多数の場所から入力することができ、これらの場所として、ＲＳＳ、プロトコルクローラ出力、ＸＭＬフィード、ウェブアプリケーション（例えば、ＡＪＡＸアプリケーションが使用する、またはシンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）メソッドのコールに使用されるＸＭＬサービス）が使用する隠れたデータストリーム（ｈｉｄｄｅｎ  ｄａｔａ  ｓｔｒｅａｍｓ）やビデオを含むウェブサイトの他のディレクトリを挙げることができる。ここで、本発明は、ビデオの集約テキストデータ及びテクニカル詳細を提示するまたは表示する方法を含むこともできることを理解されたい。図９から分かるように、この方法では、データクエリーインターフェースをステップ１５６で適用し、イベントモニタをステップ１５８で使用し、テンプレートをステップ１６０で読み込み、テンプレートをステップ１６２で適用し、データをステップ１６４で保存し、ステップ１５８に戻る。この方法では、条件が満たされたとイベントモニタが判断した後、別のターゲットＵＲＬに対するリクエストを待機することができる。本発明を制限しない例として、条件は、ビデオファイル、ビデオストリーム、所定期間などの終了位置を含むことができる。クローラ１４０の場合、本発明のある実施形態は全てのサイトに対してテンプレートを一つしか使用しなくて済むことを理解されたい。他の実施形態は、選択対象の複数のテンプレートの一部分のみを、または限られた部分のみを有することができる。
【００５３】
ビデオを含むウェブページの他に、本発明は次の技術要素に適用することもできる。
・ビデオ及び関連メタデータをダウンロードするマルチメディアプレーヤのような、ブラウザをベースとしないビデオアプリケーション
・動的テキスト及び動画広告を含むウェブページ以外の、静的情報（テキストベースのニュースのような）を含むウェブページ。この場合、クローラを使用してビデオコンテンツ及び他の動的コンテンツを排除する。
・ＡＪＡＸアプリケーション、ｗｉｋｉ、ユーザフォーラム、フォト共有サイト、財務サービスサイト、またはウェブサーバとは関係なく変化するコンテンツを有する全てのウェブページのような動的ウェブアプリケーション。例えば、本発明に基づいて構成され、かつ特定の銘柄記号に関連する画像及び図の全てに関する検索可能なインデックスを生成するクローラを想像されたい。
【００５４】
インスペクタの別の特徴は、ビデオコンテンツまたは他の動的コンテンツを管理するウェブアプリケーションの構造を「有効にする（ａｓｓｅｒｔ）」機能である。アサーションコードはウェブサイトのテンプレートを使用して、ウェブサイトの構造が変化したかどうかを判断する。サイトが変化した、またはビデオ（または動的コンテンツ）をもはや利用することができない場合、データは抽出されず、既に抽出されているデータは（もしあれば）、当該データをもはやウェブサイトでは利用することができない場合にリポジトリから削除される。この機能はデータ品質を維持するために重要である。
【００５５】
本発明について、ある特定の実施形態を参照しながら説明して示したが、この当業者であれば、手順及びプロトコルの種々の適応化、変更、変形、置き換え、消去、または追加を、本発明の技術的思想及び技術範囲から逸脱しない範囲において為し得ることが分かるであろう。例えば、上述の実施形態のいずれを用いても、アプリケーションクローラは時間依存ビデオ（時間に応じて表示が変化するビデオ）をリアルタイムでクロールすることができる。ビデオコンテンツは時間依存性が高く、かつ短い時間ウィンドウの中でしか利用することができない場合が多い。上述の実施形態のいずれを用いても、アプリケーションクローラ（４０）がオブジェクトを巡回した後に事後処理を行なうことができ、この事後処理では、データをリポジトリに格納する前にデータ集約（上述のような）または音声−テキスト認識を行なう。
【００５６】
上述の実施形態のいずれを用いても、アプリケーションクローラはコンテンツを、メタデータの多数のフィールドを使用してインデクシングすることができる。一実施形態では、このアプリケーションはビデオストリームまたはビデオプレーヤに到達し、関連データを取り出すことができる。別の実施形態では、本発明は、ビデオストリームから生成される、またはビデオストリームに関連するイベントを探索し、情報を該当する方法により取得することができる。ある実施形態では、トゥルベオアプリケーションクローラは、ブラウザがサポートする方法と同じ方法でウェブアプリケーションをレンダリングするために必要となる全ての処理を実行することを理解されたい。従って、インスタンス化済みウェブアプリケーションページ、アプリケーションなどの状態はブラウザによって生成される状態と同じである。これにより、クローラは、ドキュメントまたはファイルがインスタンス化されている場合にのみ利用することができるオブジェクトモデルでモデル化されたコンテンツを捜し出すことができる。上述の実施形態のいずれを用いても、クローラはビデオストリームをハンドリングするように構成することもでき、かつビデオファイルのみに制限されないことを理解されたい。「ビデオファイル（ｖｉｄｅｏ  ｆｉｌｅｓ）」のように使用される「ファイル（ｆｉｌｅｓ）」という用語は、ファイルのコンテンツをサーバ（すなわち、メディアサーバ）からストリームの形態で配信する場合のファイルを含むことができることを理解されたい。
【００５７】
アプリケーションクローラは、ウェブページのコンポーネントをアセンブルし、動的にインスタンス化し、この場合、次にインスタンス化済みウェブアプリケーションアプリケーションを解析して、ウェブページの所望のコンポーネントの位置を特定することができる。この動作では、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むことができる。ウェブアプリケーションをアセンブルし、インスタンス化するコンポーネントは、本出願において説明した通りのものとすることができる。他の実施形態では、これらには制限されないが、種々のコンポーネントの機能を組み合わせる、ソフトウェアコンポーネントを追加して追加アプリケーションをハンドリングする、幾つかのステップを同時に実行するなどのような変更を本実施形態に加え得る。本発明は、本発明によるクローラが生成するデータベースを検索する検索エンジン及び検索方法も包含することを理解されたい。
【００５８】
本明細書において説明した、または引用した刊行物は、本願の出願日前におけるこれらの刊行物の開示内容のみに関連することを目的として提供される。本発明が先願発明の点から、このような刊行物に先行するに値しないと容認するものであると解釈されるべきではない。更に、提示した刊行物の日付は、個々に確認する必要がある実際の刊行日とは異なる場合があり得る。２００４年１１月２２日付け米国仮出願番号６０／６３０５５２（代理人整理番号４１７０２−１００２）、及び２００４年１１月２２日付け米国仮出願番号６０／６３０４２３（代理人整理番号４１７０２−１００１）は共に、本明細書において全ての目的のために参照されることにより、これらの文献の内容全体が本明細書に組み込まれる。本明細書に記載される全ての刊行物は本明細書において参照することにより当該刊行物の内容が本明細書に組み込まれるので、刊行物が引用される際に関わってくる構造及び／又は方法を開示し、記載することになる。
【００５９】
得られる結果の中に予測される変動または差異は、本発明の目的及び実施に伴い想定されるものである、本発明は請求の範囲によって規定されるべきであり、かつ請求の範囲は出来る限り広く合理的に解釈されるべきである。
【図面の簡単な説明】
【００６０】
【図１】Ａは既存のクローラによる検索結果を示し、Ｂは本発明によるクローラによって捜し出された詳細な情報を示す。
【図２】本発明の一実施形態の模式図である。
【図３】一実施形態のインスペクタの模式図である。
【図４】一実施形態のエクストラクタの模式図である。
【図５】一実施形態のクローラの模式図である。
【図６】本発明の一実施形態による方法を示す。
【図７】本発明の別の実施形態による方法を示す。
【図８】データ集約の一実施形態の模式図である。
【図９】本発明の別の実施形態による方法を示す。
【図１】
2008521147.tif 000003
【図２】
2008521147.tif 000004
【図３】
2008521147.tif 000005
【図４】
2008521147.tif 000006
【図５】
2008521147.tif 000007
【図６】
2008521147.tif 000008
【図７】
2008521147.tif 000009
【図８】
2008521147.tif 000010
【図９】
2008521147.tif 000011
【手続補正書】
【提出日】平成19年8月10日(2007.8.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータネットワーク上のビデオファイルを検索し、検索可能なデータベースを生成するためにコンピュータが実施する方法であって、
クローラが、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なってビデオファイルの位置を特定し、
インデクサが、前記オブジェクトモデル内で見つかったビデオファイルを、当該ビデオファイルを指すポインタを前記データベースに保管することによりインデクシングし、
エクストラクタが、前記ビデオファイルについてのメタデータを前記オブジェクトモデルから抽出し、前記メタデータを前記データベースに格納する、前記方法。
【請求項２】
前記クロールを行なうことは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回することを備える請求項１の方法。
【請求項３】
前記マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている請求項２の方法。
【請求項４】
前記クロールを行なうことは、
クリック可能アイテムのツリーを辿り、
個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動することを備える請求項１の方法。
【請求項５】
前記クロールを行なうことは、ページまたはアプリケーションのシードリストを辿ることを備える請求項１の方法。
【請求項６】
前記クロールを行なうことは、ＵＲＬのリスト、アプリケーションポインタのリスト、またはＲＳＳフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿ることを備える請求項１の方法。
【請求項７】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項１の方法。
【請求項８】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項１の方法。
【請求項９】
前記インデクシングを行なうことは、
ドキュメントまたはアプリケーションを読み込み、
前記ドキュメントまたはアプリケーションをインスタンス化し、
インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項１の方法。
【請求項１０】
前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードをデータベースに登録することを備える請求項１の方法。
【請求項１１】
前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードを指すポインタをデータベースに保管することを備える請求項１の方法。
【請求項１２】
前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ（ＵＲＬ）をデータベースに格納することを備える請求項１の方法。
【請求項１３】
前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項１の方法。
【請求項１４】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項１３の方法。
【請求項１５】
更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項１３の方法。
【請求項１６】
オブジェクトは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項１の方法。
【請求項１７】
クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Ａｃｒｏｂａｔファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項１の方法。
【請求項１８】
クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含む請求項１の方法。
【請求項１９】
クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含む請求項１の方法。
【請求項２０】
前記クロールを行なうことは、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なうことを備える請求項１の方法。
【請求項２１】
クローリングではインターネットに対してクロールを行なう請求項１の方法。
【請求項２２】
前記クロールを行なうことは、ＴＣＰ／ＩＰネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１の方法。
【請求項２３】
前記クロールを行なうことは、公衆ネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１の方法。
【請求項２４】
前記クロールを行なうことは、プライベートネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項１の方法。
【請求項２５】
アプリケーションまたはドキュメントは全てインスタンス化される請求項１の方法。
【請求項２６】
アプリケーションまたはドキュメントの一部分だけがインスタンス化される請求項１の方法。
【請求項２７】
前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項１の方法。
【請求項２８】
前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項１の方法。
【請求項２９】
更に、データクエリーインターフェースを、前記実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項１の方法。
【請求項３０】
更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項１の方法。
【請求項３１】
インターネット上のビデオファイルを検索し、検索可能なデータベースを生成するためのコンピュータプログラム製品であって、コンピュータで利用可能な記録媒体、及びコンピュータで利用可能な前記記録媒体に格納されるコンピュータ読み取り可能なコードを備え、前記コンピュータ読み取り可能なコードが、コンピュータに、請求項１乃至３０のいずれか一項に記載の方法を行なわせるように構成されたコンピュータ読み取り可能なプログラムコードを含む、コンピュータプログラム製品。
【請求項３２】
コンピュータネットワーク上のビデオファイルを検索し、検索可能なデータベースを生成するためのコンピュータシステムであって、
複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なってビデオファイルの位置を特定する工程と、
前記オブジェクトモデル内で見つかったビデオファイルを、当該ビデオファイルを指すポインタを前記データベースに保管することによりインデクシングする工程と、
前記ビデオファイルについてのメタデータを前記オブジェクトモデルから抽出し、前記メタデータを前記データベースに格納する工程と、
を実行するようにプログラムされたコンピュータを備える前記コンピュータシステム。