JP2008521147A - アプリケーションクローラの方法及び装置 - Google Patents

アプリケーションクローラの方法及び装置 Download PDF

Info

Publication number
JP2008521147A
JP2008521147A JP2007543442A JP2007543442A JP2008521147A JP 2008521147 A JP2008521147 A JP 2008521147A JP 2007543442 A JP2007543442 A JP 2007543442A JP 2007543442 A JP2007543442 A JP 2007543442A JP 2008521147 A JP2008521147 A JP 2008521147A
Authority
JP
Japan
Prior art keywords
application
document
instantiated
event
crawler
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007543442A
Other languages
English (en)
Inventor
ディ. タトル、ティモシー
ベグラン、アダム
コックス、ピーター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Truveo Inc
Original Assignee
Truveo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Truveo Inc filed Critical Truveo Inc
Publication of JP2008521147A publication Critical patent/JP2008521147A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

インターネット上のファイルを検索するためにコンピュータが実施する方法が提供される。一実施形態では、本方法は、ウェブページの全てのコンポーネントをアセンブルし、動的にインスタンス化するアプリケーションクローラを提供することができる。従って、インスタンス化済みウェブアプリケーションアプリケーションを解析してウェブページの所望のコンポーネントの位置を特定することができる。この操作では、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントの挿入により起動し、情報をアプリケーションから抽出し、更に当該情報をファイルまたはデータベースに書き込む。

Description

技術分野は検索エンジンに関し、特に、ビデオファイルを検索可能で、最新のウェブページやウェブアプリケーションから詳細情報を抽出するように構成される検索エンジンに関する。本発明によるアプリケーションクローラは標準的なウェブクローラとは多くの点で顕著に異なる。
標準的なウェブクローラは元々、HTMLテキストファイルT内にそのページの有用情報の大半が含まれるウェブページに対して設計されている。図1Aは、現在のウェブページに適用した場合の標準的なウェブクローラの能力不足を示している。昨今のウェブページでは、ページについての有用情報が種々の異なるファイルに含まれていることが益々一般的になっており、これらのファイルが全てブラウザ内でアセンブルされてアプリケーション全体が構築される。最新ウェブアプリケーションに使用される共通ファイルには次のものが含まれる。
・複数のHTMLファイルやフレームセット
・GIFまたはJPEGのような画像ファイル
・Javascriptファイル、Jscriptファイル、及びVBScriptファイル
・カスケーディングスタイルシートファイル
・XMLデータファイル
・ActiveXコントロールまたはブラウザプラグイン
・ビデオ及びオーディオストリーム
・Flashアニメーション
・HTMLビヘイビア
・埋め込みメディアプレーヤ
昨今の最新ウェブアプリケーションでは、1つのウェブページだけでこれらの技術の全てを利用してページを生成するのは珍しいことではない。この点を考えると、昨今のウェブページはもはや単なる静的書類ではない。多くの場合、これらのウェブページは、複雑な状態を維持し、ユーザ入力イベントまたは他のブラウザイベントまたはタイマーイベントに応答して高性能の操作を実行するフル機能の動的アプリケーションである。
特にこれらの最新ウェブアプリケーションから有用情報を理解し抽出することができるように設計されたアプリケーションが望まれる。このようなアプリケーションは、HTMLやPDFなどのような静的ファイルタイプについてのみ理解する機能を持つ従来のウェブクローラよりも能力的に優れる。
本発明は、上に説明した不具合の内の少なくとも幾つかに対する解決手段を提供する。詳細には、本発明のある実施形態はHTMLファイルのテキストを解析するだけでなく、ビデオファイルの存在を示すリンクについてのコンテンツを検査するクローラを提供する。本発明は、これらには制限されないが、ビデオファイル、メディアファイル、マルチメディアストリーミングサービス、及び/又は非静的ファイルタイプのようなインターネット上の各種ファイルを更に徹底的に検索することができる改良型クローラを提供する。本発明はまた、これらには制限されないが、テキストストリング、画像、ドキュメントオブジェクトモデルのノード、及び/又は通常は最新ウェブアプリケーションの内部に含まれる他のクラスのデータオブジェクトのようなインターネット上の各種特定の情報を検索することができる改良型クローラを提供する。本発明は、現在のインターネットクローラに比べ詳細な情報をウェブページから抽出するように構成してもよい。本明細書に記載するこれらの目的及び他の目的の内の少なくとも幾つかの目的は本発明の実施形態によって達成されることになる。
一態様では、本発明は、オブジェクト空間のオブジェクト、またはドキュメントまたはアプリケーションのオブジェクトモデルを、特にインターネット上でクロールする方法を提供する。詳細には、本発明は、ワールドワイドウェブ(WWW)のオブジェクトモデルに対してクロールを行なう。本発明のクローラは、インスタンス化(実体化)されていないドキュメント及び/又は静的ドキュメントではなく、ファイルまたはページがウェブ上で実行された場合に得られる、機能しているアプリケーションまたはインスタンス化済みアプリケーションを探ることができる。このインデクシングは、個々のウェブページの内部で行なわれ、あるいは、インターネット上の複数の場所にあるウェブサイトに対して横断的に行なわれる。このインデクシングを行なうことは、オブジェクトモデルを検査し、検査を多数のマシンやネットワークやサイトに渡って行なうことができる。一実施形態では、オブジェクト空間のクローリングまたはインデクシングは、分散型アプリケーション及び/又はネットワークに渡って行なわれる。これまでのウェブドキュメントのページは通常はモノリス的で静的であり、更にそのページのコンテンツを全て確認するためにインスタンス化する必要がなかったので、従来では、クローリングまたはインデクシングを行ないたいという要望はなかった。アプリケーション及びドキュメントは非常に複雑になっているので、オブジェクト空間に対してクロールを行なって全ての利用可能なコンテンツを捜し出すことが望ましい。更に、これまでオブジェクトに容易にアクセスすることができなかったので、以前のクローラはオブジェクト空間に対してクロールを行なうように構成されていなかった。
本発明の一実施形態では、オブジェクト空間のクローリングは、ドキュメントがインスタンス化されると行なわれる。別の表現をすると、本発明は機能しているアプリケーションに対するクロールを行なう。これにより、クローラは、アプリケーションまたはウェブページがインスタンス化されると読み込まれる更に別のオブジェクトまたは要素を捜し出すことができる。インスタンス化を行なわなければ、コンテンツの多くは可視化されないであろう。捜し出すことができるコンテンツという観点では、読み取られる静的ファイルと、実行中アプリケーションでインスタンス化されているものとの間には差がある。
本発明の一実施形態では、全ての電子化されたドキュメントまたはアプリケーションメディアファイルに到達し、それを分析し、当該ファイルのコンテンツをインデクシングすることができるインデクサが用意される。インデクサはこの操作を、当該アプリケーションのあらゆるノードや要素に到達し、ノードまたは要素をデータベースに登録するか、またはノードまたは要素を指すポインタを取り込むことによって行なう。この方法は、インスタンス化済みアプリケーションのオブジェクトモデル(ピースまたはオブジェクト)の全てのノードまたは要素に適用される。
更に詳細には、本発明の一実施形態によるアプリケーションクローラは、ウェブアプリケーション全体を読み込み、アセンブルし、インスタンス化するように構成することができる。図1Bから分かるように、昨今のウェブページには、これらには制限されないが、同時に実行することができるスクリプト及び埋め込みコントロールのような複数のコンポーネントが組み込まれていることがある。この上部には、従来のクローラでは対象として設計されていない動的HTMLを使用するページがある。本発明は、これらのコンポーネントの全てを読み込み、インスタンス化することができるクローラを提供することができる。当該アプリケーションの当該インスタンス化の例では、クローラは、これに制限されないが、ビデオコンテンツのようなコンテンツを示すことができるソフトウェアオブジェクトを探索する。クローラはウェブページ上のボタンの押下またはリンクのクリックをシミュレートし、このようにして収集される情報をファイルまたはデータベースに保存する。
本発明の更に別の実施形態では、アプリケーションクローラの使用方法が提供される。1)一態様では、アプリケーションクローラは、ウェブドキュメント(HTMLドキュメントだけでなく)を一括して生成するコンポーネントの全てを読み込むことができる。一例として、ただし本発明を制限しない例として、コンポーネントは、複数のHTMLドキュメント、複数のスクリプト、埋め込みソフトウェア、バックグラウンドで読み込まれるスタイルシート、htmlビヘイビア(個別スクリプト)、XMLファイル、及び/又はウェブページのために読み込まれる種々のファイルの全てを含む。2)別の態様では、アプリケーションクローラは、ウェブページの複数のコンポーネントが一つのコンポーネントとしてアセンブルされ、かつ当該コンポーネントがテキストドキュメントとは異なるアプリケーションとして見えるようにインスタンス化されるように構成することができる。3)更に別の態様では、アプリケーションクローラは当該オブジェクト表現を取り込み、これに制限されないが、ビデオファイルのようなファイルに関連する、またはユーザに対して表示されている情報に関連する特定の数のメタデータを取り出すことができる。すなわち、オブジェクト空間で利用することができるメタデータは「ファイル」に関連付ける必要はないが、表示されている全ての情報に関連付ける必要がある。時間軸も考慮される。関連メタデータは、ウェブアプリケーションが決定する(フラッシュムービでは普通に行なわれるように)所定の時間軸の結果として、または特定ユーザアクションの結果(例えば、ユーザクリックの結果として現われるポップアップウィンドウ)として、現在たまたま表示されている情報に関連付ける必要がある。一実施形態では、アプリケーションはビデオストリームまたはビデオプレーヤに到達し、関連データを取り出すことができる。本発明は、ビデオストリームから出力されるイベントを探索し、情報を当該方法により取得することができる。
本発明の別の実施形態では、RSSフィードを使用してターゲットURLをクローラに供給して検査させることができる。本実施形態では、クローラは、供給URLに対応するインスタンス化済みウェブアプリケーションアプリケーションのオブジェクト空間及びオブジェクトモデルの全てを分析することができる。クローラはメタデータをメディアプレーヤから、またはウェブアプリケーションの他の場所から抽出することができる。従って、本実施形態では、クローリングはページを指すRSSポインタを通して行なわれる。クローラは、URLにhttpリンクを設置しているRSSフィードに従って動作する。従って、クローリングでは、1)クリック可能アイテムのツリーに対してクロールを行ない、これらのアイテムをユーザが行なう方法(人が行なう方法と同じ、または同様の自動化方法)で起動し、及び/又は、2)ページまたはアプリケーションのシードリスト(URLのリスト、またはアプリケーションポインタのリスト、またはRSSフィードのリストのような)を経由してクロールする。
本発明の別の実施形態では、アプリケーションクローラは3つのテンプレート、すなわち1)サイト自体のテンプレート(タイミング、コマーシャルなど…クロールを開始するところ)、2)リンクファインダー(リンクを捜し出す)、及び/又は3)データ抽出用テンプレート(タイトル、ディレクター、著者などの位置)の内のいずれか一つを使用することができる。例えば、クローリング及びインデクシングは時間的イベント(他のイベントが生じると同時に生じる変化の時間的同期)、空間関係(視覚的空間関係)、または他のトリガーに基づいて行なうことができる。第1テンプレートを使用して、クローラは、ウェブページ上のボタンのクリックのようなエンドユーザ行為をシミュレートする。30秒後のオブジェクトの探索のようなタイミングイベントを制御テンプレートとすることもでき、かつタイミングイベントによってクローラはウェブページを更に徹底的に検査することができる。これらのテンプレートによってクローラに指示して或る時間間隔だけ待機させ、オブジェクトツリーを再度クロールさせることができる。タイミングを制御するこのテンプレートは、昨今の複雑なウェブページのコンテンツをマイニングするために特に有用である。
テンプレートは、特定の数の情報をインスタンス化済みアプリケーションから抽出するために使用することもできる。クローラはテンプレートを使用してオブジェクトモデルの一部分またはノード、テキストストリング、アプリケーションのオブジェクト空間のシングルオブジェクトまたはオブジェクト集合、及び/又はアプリケーション内に含まれるページまたはファイルを特定することができる。本発明を制限しない例として、本発明のクローラはビデオの期間、ビデオの分解能、ビデオのタイトル、ビデオの説明、ビデオの品質、ビデオの原版に関する情報、及び/又は他の関連情報を収集することができる。収集メタデータはデータベースに格納される。一実施形態では、テンプレートは、クローラに、ウェブページまたはアプリケーションなどに対してクロールを行ない、及び/又はインデクシングする方法について指示する一連の命令及び/又はプログラミングコードとすることができる。
本発明は、メディアプレーヤオブジェクトに対してクロールを行なうアプリケーションクローラを含むこともできる。オブジェクトツリーを、非常に簡単なアプリケーションクローラを使用して巡回することができる。クローラは、ビデオが再生されていることを認識することができる。この簡易クローラはURLを検証してデータ完全性を確認し、ビデオファイルの位置を特定することもできる。この簡易クローラは、非常に多くの動的コンテンツ(例えば、広告など)を含んでいて全てのファイルを読み込むのに非常に手間が掛かるページに対して非常に有用である。
本発明の一実施形態では、コンピュータが実施する方法が提供され、この方法では、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なう。この方法におけるクローリングでは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回する。マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている。クローリングでは更に、クリック可能アイテムのツリーを辿り、個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動する。
この方法では、ページまたはアプリケーションのシードリストを辿る。この方法では、URLのリスト、アプリケーションポインタのリスト、またはRSSフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿る。この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回する。この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録する。この方法では、ドキュメントまたはアプリケーションを読み込み、ドキュメントまたはアプリケーションをインスタンス化し、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回する。この方法では、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードをデータベースに登録する。別の実施形態においては、この方法では、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードを指すポインタをデータベースに保管する。更に別の実施形態においては、この方法では、メディアに関連する複数のユニフォームリソースロケータ(URL)をデータベースに格納する。
この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートする。この方法では、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する。この方法では、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する。オブジェクトは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素とすることができる。クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Acrobatファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含むことができる。クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含むことができる。クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含むことができる。
この方法では、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なう。この方法では、インターネットに対してクロールを行なう。この方法では、TCP/IPネットワーク上の全てのデバイスに対してクロールを行なう。この方法では、公衆ネットワーク上の全てのデバイスに対してクロールを行なう。この方法では、プライベートネットワーク上の全てのデバイスに対してクロールを行なう。この方法では、アプリケーションまたはドキュメントは全てインスタンス化される。本発明のある実施形態では、アプリケーションまたはドキュメントの一部分のみがインスタンス化される。この方法では、ビデオファイルをインスタンス化する。この方法では、ビデオストリームをインスタンス化する。この方法では、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする。この方法では、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする。
本発明の更に別の実施形態では、コンピュータネットワーク上のビデオファイルを検索するためにコンピュータが実施する方法が提供される。この方法では、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なってビデオファイルの位置を特定する。
本発明の別の実施形態では、検索可能なデータベースを生成するためにコンピュータが実施する方法が提供される。この方法では、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なってビデオファイルの位置を特定し、オブジェクトモデルに含まれるビデオファイルを、ビデオファイルを指すポインタをデータベースに保管することによりインデクシングし、ビデオファイルについてのメタデータをオブジェクトモデルから抽出し、メタデータをデータベースに格納する。
本発明の更に別の実施形態では、インターネット上のファイルを検索するためにコンピュータが実施する方法が提供され、この方法では、ビデオリッチなウェブサイトを特定するプロトコルクローラを用意し、アプリケーションクローラを用意する。アプリケーションクローラは、ビデオリッチな前記ウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタを含む。アプリケーションクローラは更に、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを含む。
一実施形態では、インスペクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、一つまたは複数のブラウザのドキュメントオブジェクトモデル(DOM)実装、JavaScript、JScript、ECMAScript、またはVBScriptを実行する機能を持つスクリプトエンジン、XMLパーサエンジン、カスケーディングスタイルシートエンジン、ネットワークI/Oライブラリ、HTMLパーサ兼レンダリングエンジン、ActiveXコントロールのような埋め込みコントロールを実行するエンジン、またはウェブアプリケーションをレンダリングするエンジンである。
一実施形態では、エクストラクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、XSLエンジン、XPath実装、正規表現エンジン、スクリプト実行エンジン、これらには制限されないが、ActiveXオブジェクト及びCOMオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ、httpプロキシのようなネットワークトランスポートプロキシ、rtspプロキシまたは他のマルチメディアストリームプロキシ、データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ、メタデータを分類するタクソノミーエンジン、またはテキストパーサ兼処理エンジンである。
一実施形態では、クローラは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、ファイルI/Oライブラリ、ネットワークI/Oライブラリ、またはログファイルを生成し、保存するライブラリである。
本発明の更に別の実施形態では、インターネット上のファイルを検索するためにコンピュータが実施する方法が提供される。この方法では、ターゲットURLを捜し出し、ターゲットURLのHTMLファイルをダウンロードし、ウェブアプリケーション全体をHTMLファイルに含まれる情報に基づいて構築するために使用される補足データファイルをダウンロードし、前記補足データファイル及びHTMLファイルのアプリケーションコンポーネントをアセンブルし、アプリケーションコンポーネントをインスタンス化してウェブアプリケーションを生成し、データクエリーインターフェースをウェブアプリケーションの内、有用データを含む可能性のある全てのオブジェクトに適用し、事前定義アプリケーションテンプレートを読み込み、またはアプリケーションテンプレートを生成し、自動定義し、アプリケーションテンプレートを適用して所望情報の全てをウェブアプリケーションから抽出し、所望情報をファイルまたはデータベースに構造化データ情報レコードとして保存し、ウェブアプリケーションの全てのコンポーネントを分析して、マウスイベントに応答することができる、またはクリック可能アイテムを構成することができる全ての使用可能なコンポーネントを特定し、どのクリック可能アイテムが、シミュレートされた最後のマウスイベント以降に現われたかを判断し、全ての可能なアプリケーション状態においてアプリケーション内の全てのクリック可能アイテムを含むツリーの新規ブランチのような適切なデータ構造に、クリック可能な新規アイテムを保存し、クリック可能アイテムのツリーの現在のブランチの第1のクリック可能アイテムに対するマウスクリックをシミュレートする。
本方法では、この方法を、クリック可能アイテムのツリー全体が巡回されるまで繰り返す。インスタンス化ステップは、HTMLをレンダリングし、ドキュメントオブジェクトモデルを構築するステップ、スタイルシートを適用するステップ、スクリプトを適切なスクリプトインタープリタで実行するステップ、ActiveXコントロールのようなコントロールまたはプラグインの全てを起動するステップ、ビデオストリームまたはオーディオストリームを送出するステップ、Flashアニメーションのようなアニメーションを展開するステップ、またはHTMLビヘイビアスクリプトを実行するステップ、の内の少なくとも一つのステップを含む。
本発明の別の実施形態では、コンピュータシステムは、ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうプログラミングコードを有するアプリケーションクローラを備える。システムは更に、ウェブサイトを特定して検査するプロトコルクローラを備え、アプリケーションクローラは、ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なう。アプリケーションクローラは、複数のウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタを含む。アプリケーションクローラは更に、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタを含む。更に、アプリケーションクローラは、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラを含む。プロトコルクローラは、少なくとも一つのビデオファイル、少なくとも一つのメディアファイル、またはmpegファイル、aviファイル、リアルメディアファイル、フラッシュファイル、tsファイル、wmvファイル、またはQuicktime(商標)ファイルの内の少なくとも一つを含むウェブサイトを特定して検査する。アプリケーションクローラは、クリック可能アイテムのツリーを検査し、個人ユーザが行なう手順とほぼ同様に自動化した手順で各アイテムを起動するように構成される。アプリケーションクローラは、データ抽出、いつリンクを辿ればよいかのタイミング、クロールする深度レベル、コマーシャルをスキップする方法、クロールを開始すべき場所、リンクを捜し出す操作、タイトルの位置、メディアファイルメタデータの位置、時間的同期、またはクローラに指示して或る時間間隔だけ待機させ、次にオブジェクトツリーを再度クローリングさせる操作の内の少なくとも一つのために構成されたテンプレートを使用してもよい。
本発明の更に別の実施形態では、ビデオリッチなウェブサイトを特定するプロトコルクローラと、アプリケーションクローラとを含むコンピュータシステムが提供される。アプリケーションクローラは、ビデオリッチな前記ウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタと、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを含む。
本発明の更に別の実施形態においては、コンピュータが実施する方法では、ターゲットURLを受信し、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルをインデクシングする。受信するステップでは、URLのリストを受信する。受信するステップでは更に、URLのリスト、アプリケーションポインタのリスト、またはRSSフィードの内の少なくとも一つを受信する。この方法では、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回する。
本発明の別の実施形態では、コンピュータプログラム製品は、コンピュータで利用可能な媒体、及びコンピュータで利用可能な前記媒体に格納されるコンピュータ読み取り可能なコードを備える。コンピュータ読み取り可能なコードは、コンピュータ読み取り可能なプログラムコードを含み、そのプログラムコードは、コンピュータに、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうように構成される。
本発明の本質及び利点は、本明細書の残りの部分、及び図を参照することにより更に深く理解される。
上記の概要説明及び下記の詳細説明はともに一例に過ぎず、かつ例示を目的としたものであり、請求の範囲に記載した本発明を制限しないことを理解されたい。本明細書及び請求の範囲に使用されるように、単数形「a」、「an」、及び「the」は本文において特に断らない限り、複数の指示対象を含むことに留意されたい。従って、例えば「クローラ(a crawler)」と表現される場合、この表現は「複数のクローラ(multiple crawlers)」などを包含する。本明細書において列挙される参考文献は、これらの文献の内容の内、本明細書に明示される示唆と相容れない部分を除いて、ここで参照することにより文献の内容の全体が本明細書に組み込まれる。
概括すると、クローラのようなプログラムは、コンピュータネットワークを事前に巡回してドキュメント(例えば、ウェブページ)を探し求め、そのドキュメント中に見つかったリンク、キーワード、及び/又はメタデータから成る大きいインデックスファイルまたはデータベースを構築する。ユーザが一つ以上の検索タームを含むクエリーを策定する場合、ユーザはそのクエリーを検索エンジンの別のプログラムに提出する。それに応答して、その検索エンジンは自身のインデックスファイルを検査し、その検索クエリーに一致するドキュメントのリストを通常はハイパーリンクとして表示する。次に、ユーザは通常はこれらのハイパーリンクの内の一つを起動してドキュメントに含まれる情報を閲覧する。
図1A及び図1Bから分かるように、トゥルベオ(Truveo)アプリケーションクローラ10は、これに制限されないがメディアファイルのようなファイルを探し出すことに関して従来のクローラよりもずっと優れている。図1Bから分かるように、クローラ10は、これらには制限されないが、ビデオストリーム11、バックグラウンドで読み込まれるXMLデータアイランド12、ブラウザプラグインやActiveXコントロール13、スクリプトによって生成されるHTMLフラグメント14、非アンカーの「onClick」リンク15、フォームエレメント、スクリプト実行により生成されるページエレメント、ユーザイベントまたはタイマーイベント16、動的に適用されるスタイルシート17、HTMLビヘイビア18などのような各種コンポーネントを含む複雑なウェブアプリケーションを分析し、操作することができる。クローラ10は、単一の、または複数のドキュメント、フレーム、フレームセット、ファイル、オブジェクト、アプリケーション、及び/又はウィンドウから成るウェブアプリケーションを分析し、操作することができる。各メディアファイルについての情報はビデオデータレコードとしてデータベースに保存することができる。ビデオデータレコード19は、これらには制限されないが、タイトル、内容説明、URL、ジャンル、ビデオランタイムまたはビデオ長、ビットレート、日付などのような情報を含むことができる。
概括すると、本発明の一実施形態は、プロトコルクローラ2と、リポジトリ4と、リコメンデーションエンジン6と、アプリケーションクローラ10とを含むことができる。プロトコルクローラ2は高スループットHTTPエンジンであり、このエンジンはウェブに対してクロールを行ない、ビデオコンテンツを管理(ホスト)すると考えられるサイトを特定することができる。プロトコルクローラ2は、アプリケーションクローラ10に特定サイトに対するクロールとインデクシングを行なうように指示する。アプリケーションクローラ10が収集する情報はリポジトリ4に保存される。任意であるが、リコメンデーションエンジン6を使用して有用な応答を、リポジトリに対して実行されるクエリーに送信し易くすることができる。
トゥルベオアプリケーションクローラの設計
次に、図2に示す実施形態を参照すれば、トゥルベオアプリケーションクローラ10は、協調動作して機能全体を提供する3つのコンポーネントを含むことができる。これらの3つのコンポーネントとは、(1)インスペクタ20、(2)エクストラクタ30、及び(3)クローラ40であり、以下に説明する。しかしながら、この構成は本発明の一実施形態であり、他の実施形態ではこれらのコンポーネントの機能を異なる順番で組み合わせたり、またはより少ないコンポーネントとして実施することができることを理解されたい。本発明を制限しない例として、インスペクタ20をエクストラクタ30と組み合わせたり、インスペクタ20をクローラ40と組み合わせたり、または他の組み合わせを行なうことができる。
概括すると、アプリケーションクローラ10の技術は、昨今の複合ウェブアプリケーションに対してクロールを行なうことができる。本発明を制限しないクローラ10の例として、インスペクタ20は全てのコンポーネントを動的にインスタンス化し全てのコンポーネントを全機能アプリケーションにアセンブルする。エクストラクタ30は適応型データマイニングエンジンであり、このエンジンは、XPath、スクリプト、XSL、及びDOMナビゲーションを利用してリッチメタデータを抽出する。クローリングエンジン40はダイナミックリンクを特定し、ユーザイベント及びタイマーイベントを生成する。図2を参照すると、本発明のある実施形態はRSSフィード9(仮想線で示す)及び他のXMLフィード、またはウェブサイトの簡易リストを、プロトコルクローラ2ではなく、アプリケーションクローラ10の入力の独立ソースとして有することができると理解されよう。アプリケーションクローラ10の更に別の実施形態は、プロトコルクローラまたはRSSフィードを入力として用いることなく使用される。
インスペクタ
本実施形態では、インスペクタ20は、全てのウェブアプリケーションコンポーネントをダウンロードし、ウェブアプリケーションをインスタンス化し、「データクエリーインターフェース」をアプリケーション内に存在する全てのオブジェクトに適用する役割を担う。これを行なうために、インスペクタ20は幾つかのソフトウェアコンポーネントを管理することができ、これらのソフトウェアコンポーネントを使用してこれらのタスクを図3に示すように実行することができる。本発明を制限しない一例では、これらのソフトウェアコンポーネントには以下のものが適宜含まれる。
・一つまたは複数のブラウザに関するドキュメントオブジェクトモデル(DOM)実装21
・JavaScript、JScript、ECMAScript、XAML、またはVBScriptを実行する機能を持つスクリプトエンジン22
・XMLパーサエンジン23
・カスケーディングスタイルシートエンジン24
・ネットワークI/Oライブラリ/エンジン25
・HTMLパーサ兼レンダリングエンジン26
・ActiveXコントロールのような埋め込みコントロールを実行するエンジン27
・ウェブアプリケーションをレンダリングするエンジン28
本実施形態では、インスペクタ20は以下のようにして、ウェブアプリケーションコンポーネントをダウンロードし、インスタンス化する。まず、インスペクタは或るターゲットURLに関するHTMLページまたはフレームセットをダウンロードする。この操作は、標準的なHTTP GET処理を使用して行なうことができる。当該親HTMLページまたはフレームセットのコンテンツに基づいて、インスペクタ20は次に、アプリケーション全体をアセンブルするために使用される追加ファイルの全てをダウンロードする。これらのファイルはスクリプト、画像、スタイルシート、データファイル、プラグイン、ActiveXコントロール、オーディオストリームまたはビデオストリーム、或いはアプリケーション全体をサポートするために必要な他の全てのコンポーネントを含む。
ひとたびアプリケーションコンポーネントファイルの全てがダウンロードされると、インスペクタ20は、ダウンロード済みファイルを、上に列挙したコンポーネントのような適切なソフトウェアコンポーネントを使用して実行することにより、アプリケーションをインスタンス化する。
ひとたび個々のアプリケーションコンポーネントの全てがインスタンス化され、かつウェブアプリケーション全体がアセンブルされると、インスペクタ20は、「データクエリーインターフェース」を、インスタンス化済みソフトウェアオブジェクトの全てに適用する。これらの「データクエリーインターフェース」は、ウェブアプリケーションのソフトウェアオブジェクトを、トゥルベオアプリケーションクローラ10が情報をページから自動的に抽出するために使用可能な標準インターフェースで包むラッパーであってもよい。例えば、「データクエリーインターフェース」は、ドキュメントオブジェクトモデルの全ての個々の要素に適用することができ、これによりアプリケーションクローラ10は当該DOM要素の全ての属性またはスタイルに関するクエリーを実行することができる。同様に、「データクエリーインターフェース」は、ウェブアプリケーション内部でインスタンス化される全てのメディアプレーヤに適用することができ、これによりアプリケーションクローラ10はメディアプレーヤに対して、メディアプレーヤプロパティに対してだけでなく、全てのダウンロード済みオーディオストリームまたはビデオストリームのメタデータに対してクエリーを実行することができる。任意であるが、「データクエリーインターフェース」のある実施形態はソフトウェアオブジェクトを包むのにラッパーを使用しなくてもよいことを理解されたい。ある実施形態は直接接続を使用することができる。
エクストラクタ
トゥルベオアプリケーションクローラ10の本実施形態の2つ目の主要コンポーネントはエクストラクタ30である。本発明のこの実施形態では、エクストラクタ30は、インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタレコードに取り込むために使用されるロジックを提供する役割を担う。これを行なうために、エクストラクタ30は、エクストラクタが図4から分かるようなタスクを実行するために使用する種々のソフトウェアコンポーネントを管理する。一例として、かつ本発明を制限しないが、これらのソフトウェアコンポーネントには以下のものが適宜含まれることができる。
・XSLエンジン31
・XPath実装32
・正規表現エンジン33
・スクリプト実行エンジン34
・これらには制限されないが、例えばActiveXオブジェクト及びCOMオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ35
・httpプロキシのようなネットワークトランスポートプロキシ36
・rtspまたは他のマルチメディアストリームプロキシ37
・データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ38(例えば、メタデータを更に処理するためのNETブリッジ)
・メタデータを分類するタクソノミーエンジン39
・テキストパーサ兼処理エンジン41
本実施形態では、エクストラクタ30は、ウェブアプリケーションの内、有用情報を含む特定部分を特定するが、この特定操作は、(1)自動アルゴリズムを使用して、アプリケーションに含まれかつ有用データを含むオブジェクトを認識するか、または、(2)有用データを含むオブジェクトを特定する事前設定テンプレートを使用するか、または、(3)(1)及び(2)を組み合わせることにより行なわれる。本発明を制限しない例として、かつウェブアプリケーションに含まれる情報を特定するときにエクストラクタが使用する自動アルゴリズムの例として、エクストラクタは情報を、特定時間に生じるDOMの変化に基づいて、ページの所定オブジェクトに空間的に近い別オブジェクトの情報に基づいて、視覚的特徴または視覚スタイルに基づいて、所定のDOM構造の存在を認識することにより、及び/又はウェブアプリケーションにおける所定テキスト、または他のタイプの情報の存在を認識することにより特定することができる。ここで、一実施形態では、これらの自動アルゴリズムはエクストラクタ30のコンポーネントを、読み込まれ、かつ特定ウェブページ、アプリケーションなどに使用されるテンプレートの指示に従って使用することを理解されたい。本発明を制限しない例として、かつ有用データを特定するために使用することができるテンプレートの例として、エクストラクタ30は、インスペクタ20によって適用される「データクエリーインターフェース」のメソッドまたは属性を使用する、DOMパスネーム、XSLフィルタまたはXPathフィルタ、正規表現、スクリプトコードのセグメント、またはこれらの要素のいずれかの組み合わせを使用することができる。これらの技術を連続使用して抽出情報を更に高度化することもできる。エクストラクタ30はこの埋め込みロジックを使用して全ての有用情報をページから抽出し、要求されたときに当該情報を構造化メタデータレコード内に返す。
クローラ
トゥルベオアプリケーションクローラ10のこの実施形態の3つ目の主要コンポーネントはクローラ40である。本発明のこの実施形態では、クローラ40は、インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションに含まれる全てのクリック可能アイテム(akaリンク、onClickイベントなど)を捜し出し、解析し、イベントを挿入することによりウェブアプリケーションを起動し、そのアプリケーションから情報を抽出し、当該情報をファイルまたはデータベースに書き込む役割を担う。この操作を行なうために、クローラ40は、クローラがそのタスクを実行するために利用する種々のソフトウェアコンポーネントを管理する。一例として、かつ本発明を制限しない例として、これらのコンポーネントは以下の技術要素を取り入れることができる。
・ファイルI/Oライブラリ42
・ネットワークI/Oライブラリ43
・ログファイルを生成し、保存するライブラリ44
・イベントモニタ45
この実施形態では、クローラ40はウェブアプリケーションを解析し、ページの中で、マウスクリックイベントに応答することができる全ての利用可能なアイテムを捜し出す。これらのアイテムは「クリック可能アイテム」と呼ばれる。この操作を行なうために、クローラ40は以下に示すアイテムのようなページアイテムを特定する。
(1)マウスクリックイベントに応答することができるアンカー(すなわち、<A>)タグのようなHTMLタグ
(2)有効な「onClick」ハンドラーを含むHTML要素、または、有効な「onClick」ハンドラーを含むDOM内のオブジェクトの子オブジェクト
(3)マウスクリックイベントをハンドルするHTMLビヘイビアをすることになるHTML要素
(4)マウスイベントに応答することができるFlashオブジェクトまたはメディアプレーヤのような全ての埋め込みコントロールの内部の要素またはオブジェクト
(5)クリックされるとウェブページにフォームサブミッションを行なわせるHTML要素
ひとたびクローラ40がアプリケーションに含まれる全ての「クリック可能アイテム」を特定すると、クローラはこれらのアイテムを、「クロールツリー(crawl tree)」とも呼ばれるツリーのようなデータ構造に保持する。
この実施形態では、クローラ40はまた、イベントの挿入及びイベントのモニタリングにより、ウェブアプリケーションを起動しモニタリングする役割を担う。例えば、クローラ40は、これらには制限されないが、マウスオーバーイベント、マウスダウンイベント、またはマウスクリックイベントのようなイベントをアプリケーションに追加して、ユーザがリンクをクリックする操作をシミュレートする。クローラ40はまた、タイマーイベント、メディアプレーヤイベント、またはページ再読み込みのようなブラウザイベントを追加して必要に応じてウェブアプリケーションを制御することができる。従って、本発明を制限しない例として、クローラ40は、シミュレートマウスイベント、キーボードイベント、または他のユーザイベントが終わるまで待機することができる。クローラ40は、プログラム生成イベント、ブラウザイベント、及び/又はメディアプレーヤイベントが終わるまで待機することもできる。アプリケーションを起動する他に、クローラ40はアプリケーションをモニタリングして種々のイベントを検出することもできる。例えば、クローラ40は、新規データがアプリケーションにダウンロードされた時点、または新規ビデオストリームまたは新規オーディオストリームが送出された時点を示すイベントを検出することができる。これらのイベントは全て、グローバルアプリケーションイベントモニタによってモニタリングされる。イベントモニタは或るウェブアプリケーションの状態をモニタリングし、ウェブアプリケーションによって生成されるイベントをモニタリングし、クローラ40の実行を所定の状態及び/又はイベントの有無に基づいて制御する役割を担う。本発明を制限しない例として、イベントモニタは、(1)ドキュメントオブジェクトモデルの特定部分、または所定のウェブアプリケーションまたは埋め込みコントロールのオブジェクト状態、(2)ウェブアプリケーションを表示するために使用されるスクリーンバッファの一部分、または全てにおける変化、及び/又は(3)ウェブページ、メディアプレーヤまたは埋め込みコントロールによって生成されるイベントをモニタリングすることができる。
正常動作状態では、クローラ40は、第1ターゲットURLに対応するウェブアプリケーションが全てインスタンス化されると動作を開始する。この時点で、クローラ40はページに含まれる全ての「クリック可能アイテム」を特定し、次にリストの第1の「クリック可能アイテム」に対するマウスクリックをシミュレートする。この時点で、イベントモニタは、シミュレートしたクリックに応答したアプリケーションの変化をモニタリングする。イベントモニタの中でコード化されたロジックに基づいて、ひとたび所定イベント(ページ読み込み、またはコンポーネント起動のような)が受信されると、イベントモニタはエクストラクタ30を起動して全ての所望情報を含むメタデータレコードをウェブアプリケーションから返す。次に、クローラ40はこのメタデータレコードを取得し、当該レコードをメモリ、ファイルに書き込む、または当該レコードをデータベースに追加する。ひとたびこのメタデータレコードを収集すると、クローラ40はウェブアプリケーションを再分析し、シミュレートした最後のマウスクリック以降に現われたクリック可能な新規アイテムの全てを特定する。これらのクリック可能な新規アイテムは「クロールツリー(crawl tree)」データ構造に追加される。次に、クローラ40は「クロールツリー」内にある次の「クリック可能アイテム」に進み、当該アイテムのマウスクリックをシミュレートし、上記したステップを繰り返す。クローラ40は、ウェブアプリケーションの全てのクリック可能アイテムの捜し出しとクリックが完了するまでこの動作を続ける。この動作が終了したら、クローラ40はターゲットURLリスト内の次のURLに進む。クローラ40はツリーに対してクロールを行なうためのテンプレートを含むこともできる。一実施形態では、テンプレートはナビゲートするためのパス、及び特定タイミング命令の両方を含むことができる。本発明において使用するテンプレート(群)は、種々の管理項目の中でも、データ抽出だけでなく、リンクを捜し出すべき場所、いつリンクを辿ればよいかのタイミング、クロールする深度レベル、どのようにしてコマーシャルをスキップするかについて管理することができる。
トゥルベオアプリケーションクローラの動作
次に、図6を参照すれば、標準動作モードにおいて、この実施形態のトゥルベオアプリケーションクローラ10は次のステップに従って動作することができる。以下の記述では、HTMLファイルのダウンロードについて説明するが、以下の技術要素は、これらには制限されないが、XAML、XML、Acrobat、Flashファイル、またはいずれかのダウンロード可能なウェブページのようないずれかのウェブアプリケーションまたはドキュメントに適用することもできる。クローラ10の使用方法は以下のステップを含むことができる。
1.ターゲットURLから開始する(50)
2.所定URLのHTMLファイル(XAMLファイル、XMLファイル、Acrobatファイル、Flashファイル、またはいずれかのダウンロード可能なウェブページとすることもできる)をダウンロードする(52)。HTMLファイルに含まれる情報に基づいて、ウェブアプリケーション全体を構築するために使用される全ての補足データファイルをダウンロードする。補足データファイルとして、これらには制限されないが、以下の技術要素を挙げることができる。
a.画像ファイル
b.JavaScript、Jscript、及びVBScriptのようなスクリプトファイル
c.XMLデータファイル及び/又はXAMLファイル
d.スタイルシートファイル
e.ActiveXコンポーネントまたはプラグイン
f.ビデオストリーム
g.オーディオストリーム
h.Flashファイルのようなアニメーション
i.HTMLビヘイビア
3.全てのアプリケーションコンポーネントがダウンロードされると、ウェブアプリケーション全体を、これらには制限されないが、以下のようなアクションによってインスタンス化する(54)。
a.HTMLをレンダリングし、ドキュメントオブジェクトモデルを構成する
b.スタイルシートを適用する
c.全てのスクリプトを適切なスクリプトインタープリタで実行する
d.ActiveXコントロールのようなコントロールまたはプラグインの全てを起動する
e.ビデオストリームまたはオーディオストリームを送出する
f.Flashアニメーションのようなアニメーションを展開する
g.HTMLビヘイビアスクリプトを実行する
4.ひとたびウェブアプリケーション全体をアセンブルし、インスタンス化し、初期化すると、データクエリーインターフェースを上述のように、有用データを含むことができるアプリケーションの全オブジェクトに適用する(56)。
5.アプリケーションの状態を、イベントモニタを使用してモニタリングし(58)、指定条件が満たされる場合に、次のステップを実行する。
a.事前定義アプリケーションテンプレートを読み込む、または上述のように定義される自動定義アプリケーションテンプレートを生成する(60)
b.アプリケーションテンプレートを適用して(62)所望情報の全てをウェブアプリケーションから抽出する
c.抽出データをファイルまたはデータベースに構造化データ情報レコードとして保存する(64)
6.ウェブアプリケーションに含まれる全てのコンポーネントを分析して(66)、マウスイベントに応答することができ、かつクリック可能アイテムとも呼ばれる全ての利用可能なコンポーネントを特定する。どのクリック可能アイテムがシミュレートした最後のマウスイベント以降に現われたかについて判断する。クリック可能な新規アイテムを、全てのクリック可能アイテムをアプリケーションに全ての可能なアプリケーション状態で含むツリーの新規ブランチのような適切なデータ構造に保存する。
7.クリック可能アイテムのツリーの現在のブランチの第1のクリック可能アイテムに対するマウスクリックをシミュレートし(68)、次に最初のステップに戻る。これらのステップをクリック可能アイテムのツリー全体が巡回されるまで繰り返す操作を継続する。
ここで、上記方法に関して、データクエリーインターフェースの適用のような任意の幾つかのステップをスキップすることができることを理解されたい。これらのステップの順番は変更することができ、かつ幾つかのステップを一つのステップにまとめることができる。
次に、図7を参照すれば、本発明の原理は、複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なう操作(70)、及びインデクシングする操作(72)であると考えることができる。ここでも同じように、この原理はインターネット規模で実行することができ、クローリングでは、異なるマシンのページ、ファイル、ドキュメント、またはアプリケーションを巡回することができる。これらのページ、ファイル、ドキュメント、またはアプリケーションを、クリック可能アイテムを検査する前にインスタンス化して利用可能なコンテンツ及び/又はメタデータの各々を更に徹底的に検査する。
データ集約
図8を参照すれば、クローラ10が収集するデータは集約することができる。例えば、プロトコルクローラ2が抽出したメタデータは、アプリケーションクローラ10が抽出したメタデータと集約することができる。更に、複数のソースからのデータ集約はアプリケーションクローラ10自体の内部で行なうことができる。例えば、アプリケーションクローラは、ビデオに関連する可能性のある複数のウェブブラウザ(ウィンドウ)を同時に検査することができる。これらのウェブページは異なるURIドメインにさえも存在し得る。本発明の実施形態は、ビデオストリームのテクニカルデータを、これらには制限されないが、アプリケーションクローラ10、プロトコルクローラ2、RSS/XMLフィード9のような他のソースから得られるメタデータと集約することもできる、またはビデオを解析するために使用されるツール74(これらには制限されないが、ビデオストリームのオーディオコンテンツをテキストに変換する音声認識ツールを含む)から得られるメタデータと集約することもできる。メタデータ集約エンジン76は、適切なポインタ、リンク、テキスト、または種々のソースからの他の情報を検索可能な参照データベースに保存することができる。
本発明の更に別の実施形態では、本発明のクローリング技術は、テキストベースのメタデータをビデオ自体に基づいて生成されるテクニカルパラメータに関連付ける機能を含む。本発明を制限しない例として、ビデオのテクニカルパラメータは、ビデオの期間、分解能、フレームレート、品質、フォーマット、サムネイルなどを含むことができる。更に、アプリケーションクローラが収集するデータは、プロトコルクローラ、RSSフィードからのデータ、クローラのオペレータによる編集コメント、またはコンテンツ製作者または配信者が供給するデータにより補足する、またはこれらのデータと集約することができる。
図9から分かるように、この操作を行なうための一の方法は、機能が極めて制限された一実施形態のアプリケーションクローラ140を使用するプロセスを含むことができる。例えば、本発明は、RSSフィードのURLをステップ150の入力として使用し、HTML及び全ての補足事項をステップ152でダウンロードし、ウェブページのHTML及び補足事項をステップ154においてレンダリングし(例えば、URLにナビゲートするブラウザを使用する)、ウェブページが開いてビデオを再生するのを待機し、次にマルチメディアプレーヤとして公開されるアプリケーションプログラミングインターフェース(API)を使用してマルチメディアプレーヤにビデオについての情報に関するクエリーを実行する。この実施形態では、本発明は公開APIを使用してマルチメディアプレーヤのオブジェクトモデルに対してクエリーを実行し、マルチメディアプレーヤから取り出されるメタデータを、入力URLのソースにより供給されるデータと集約する。この制限アプリケーションクローラへの入力URLは多数の場所から入力することができ、これらの場所として、RSS、プロトコルクローラ出力、XMLフィード、ウェブアプリケーション(例えば、AJAXアプリケーションが使用する、またはシンプルオブジェクトアクセスプロトコル(SOAP)メソッドのコールに使用されるXMLサービス)が使用する隠れたデータストリーム(hidden data streams)やビデオを含むウェブサイトの他のディレクトリを挙げることができる。ここで、本発明は、ビデオの集約テキストデータ及びテクニカル詳細を提示するまたは表示する方法を含むこともできることを理解されたい。図9から分かるように、この方法では、データクエリーインターフェースをステップ156で適用し、イベントモニタをステップ158で使用し、テンプレートをステップ160で読み込み、テンプレートをステップ162で適用し、データをステップ164で保存し、ステップ158に戻る。この方法では、条件が満たされたとイベントモニタが判断した後、別のターゲットURLに対するリクエストを待機することができる。本発明を制限しない例として、条件は、ビデオファイル、ビデオストリーム、所定期間などの終了位置を含むことができる。クローラ140の場合、本発明のある実施形態は全てのサイトに対してテンプレートを一つしか使用しなくて済むことを理解されたい。他の実施形態は、選択対象の複数のテンプレートの一部分のみを、または限られた部分のみを有することができる。
ビデオを含むウェブページの他に、本発明は次の技術要素に適用することもできる。
・ビデオ及び関連メタデータをダウンロードするマルチメディアプレーヤのような、ブラウザをベースとしないビデオアプリケーション
・動的テキスト及び動画広告を含むウェブページ以外の、静的情報(テキストベースのニュースのような)を含むウェブページ。この場合、クローラを使用してビデオコンテンツ及び他の動的コンテンツを排除する。
・AJAXアプリケーション、wiki、ユーザフォーラム、フォト共有サイト、財務サービスサイト、またはウェブサーバとは関係なく変化するコンテンツを有する全てのウェブページのような動的ウェブアプリケーション。例えば、本発明に基づいて構成され、かつ特定の銘柄記号に関連する画像及び図の全てに関する検索可能なインデックスを生成するクローラを想像されたい。
インスペクタの別の特徴は、ビデオコンテンツまたは他の動的コンテンツを管理するウェブアプリケーションの構造を「有効にする(assert)」機能である。アサーションコードはウェブサイトのテンプレートを使用して、ウェブサイトの構造が変化したかどうかを判断する。サイトが変化した、またはビデオ(または動的コンテンツ)をもはや利用することができない場合、データは抽出されず、既に抽出されているデータは(もしあれば)、当該データをもはやウェブサイトでは利用することができない場合にリポジトリから削除される。この機能はデータ品質を維持するために重要である。
本発明について、ある特定の実施形態を参照しながら説明して示したが、この当業者であれば、手順及びプロトコルの種々の適応化、変更、変形、置き換え、消去、または追加を、本発明の技術的思想及び技術範囲から逸脱しない範囲において為し得ることが分かるであろう。例えば、上述の実施形態のいずれを用いても、アプリケーションクローラは時間依存ビデオ(時間に応じて表示が変化するビデオ)をリアルタイムでクロールすることができる。ビデオコンテンツは時間依存性が高く、かつ短い時間ウィンドウの中でしか利用することができない場合が多い。上述の実施形態のいずれを用いても、アプリケーションクローラ(40)がオブジェクトを巡回した後に事後処理を行なうことができ、この事後処理では、データをリポジトリに格納する前にデータ集約(上述のような)または音声−テキスト認識を行なう。
上述の実施形態のいずれを用いても、アプリケーションクローラはコンテンツを、メタデータの多数のフィールドを使用してインデクシングすることができる。一実施形態では、このアプリケーションはビデオストリームまたはビデオプレーヤに到達し、関連データを取り出すことができる。別の実施形態では、本発明は、ビデオストリームから生成される、またはビデオストリームに関連するイベントを探索し、情報を該当する方法により取得することができる。ある実施形態では、トゥルベオアプリケーションクローラは、ブラウザがサポートする方法と同じ方法でウェブアプリケーションをレンダリングするために必要となる全ての処理を実行することを理解されたい。従って、インスタンス化済みウェブアプリケーションページ、アプリケーションなどの状態はブラウザによって生成される状態と同じである。これにより、クローラは、ドキュメントまたはファイルがインスタンス化されている場合にのみ利用することができるオブジェクトモデルでモデル化されたコンテンツを捜し出すことができる。上述の実施形態のいずれを用いても、クローラはビデオストリームをハンドリングするように構成することもでき、かつビデオファイルのみに制限されないことを理解されたい。「ビデオファイル(video files)」のように使用される「ファイル(files)」という用語は、ファイルのコンテンツをサーバ(すなわち、メディアサーバ)からストリームの形態で配信する場合のファイルを含むことができることを理解されたい。
アプリケーションクローラは、ウェブページのコンポーネントをアセンブルし、動的にインスタンス化し、この場合、次にインスタンス化済みウェブアプリケーションアプリケーションを解析して、ウェブページの所望のコンポーネントの位置を特定することができる。この動作では、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むことができる。ウェブアプリケーションをアセンブルし、インスタンス化するコンポーネントは、本出願において説明した通りのものとすることができる。他の実施形態では、これらには制限されないが、種々のコンポーネントの機能を組み合わせる、ソフトウェアコンポーネントを追加して追加アプリケーションをハンドリングする、幾つかのステップを同時に実行するなどのような変更を本実施形態に加え得る。本発明は、本発明によるクローラが生成するデータベースを検索する検索エンジン及び検索方法も包含することを理解されたい。
本明細書において説明した、または引用した刊行物は、本願の出願日前におけるこれらの刊行物の開示内容のみに関連することを目的として提供される。本発明が先願発明の点から、このような刊行物に先行するに値しないと容認するものであると解釈されるべきではない。更に、提示した刊行物の日付は、個々に確認する必要がある実際の刊行日とは異なる場合があり得る。2004年11月22日付け米国仮出願番号60/630552(代理人整理番号41702−1002)、及び2004年11月22日付け米国仮出願番号60/630423(代理人整理番号41702−1001)は共に、本明細書において全ての目的のために参照されることにより、これらの文献の内容全体が本明細書に組み込まれる。本明細書に記載される全ての刊行物は本明細書において参照することにより当該刊行物の内容が本明細書に組み込まれるので、刊行物が引用される際に関わってくる構造及び/又は方法を開示し、記載することになる。
得られる結果の中に予測される変動または差異は、本発明の目的及び実施に伴い想定されるものである、本発明は請求の範囲によって規定されるべきであり、かつ請求の範囲は出来る限り広く合理的に解釈されるべきである。
Aは既存のクローラによる検索結果を示し、Bは本発明によるクローラによって捜し出された詳細な情報を示す。 本発明の一実施形態の模式図である。 一実施形態のインスペクタの模式図である。 一実施形態のエクストラクタの模式図である。 一実施形態のクローラの模式図である。 本発明の一実施形態による方法を示す。 本発明の別の実施形態による方法を示す。 データ集約の一実施形態の模式図である。 本発明の別の実施形態による方法を示す。

Claims (132)

  1. 複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうことをコンピュータが実施する方法。
  2. 前記クロールを行なうことは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回することを備える請求項1の方法。
  3. 前記マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている請求項2の方法。
  4. 前記クロールを行なうことは、
    クリック可能アイテムのツリーを辿り、
    個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動することを備える請求項1の方法。
  5. 前記クロールを行なうことは、ページまたはアプリケーションのシードリストを辿ることを備える請求項1の方法。
  6. 前記クロールを行なうことは、URLのリスト、アプリケーションポインタのリスト、またはRSSフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿ることを備える請求項1の方法。
  7. 前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項1の方法。
  8. 前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項1の方法。
  9. 前記インデクシングを行なうことは、
    ドキュメントまたはアプリケーションを読み込み、
    前記ドキュメントまたはアプリケーションをインスタンス化し、
    インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項1の方法。
  10. 前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードをデータベースに登録することを備える請求項1の方法。
  11. 前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードを指すポインタをデータベースに保管することを備える請求項1の方法。
  12. 前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ(URL)をデータベースに格納することを備える請求項1の方法。
  13. 前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項1の方法。
  14. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項13の方法。
  15. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項13の方法。
  16. オブジェクトは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項1の方法。
  17. クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Acrobatファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項1の方法。
  18. クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含む請求項1の方法。
  19. クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含む請求項1の方法。
  20. 前記クロールを行なうことは、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なうことを備える請求項1の方法。
  21. クローリングではインターネットに対してクロールを行なう請求項1の方法。
  22. 前記クロールを行なうことは、TCP/IPネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項1の方法。
  23. 前記クロールを行なうことは、公衆ネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項1の方法。
  24. 前記クロールを行なうことは、プライベートネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項1の方法。
  25. アプリケーションまたはドキュメントは全てインスタンス化される請求項1の方法。
  26. アプリケーションまたはドキュメントの一部分のみがインスタンス化される請求項1の方法。
  27. 前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項1の方法。
  28. 前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項1の方法。
  29. 更に、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項1の方法。
  30. 更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項1の方法。
  31. コンピュータネットワーク上のビデオファイルを検索するためにコンピュータが実施する方法であって、
    複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なってビデオファイルの位置を特定する、前記方法。
  32. 前記クロールを行なうことは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回することを備える請求項31の方法。
  33. 前記マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている請求項32の方法。
  34. 前記クロールを行なうことは、
    クリック可能アイテムのツリーを辿り、
    個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動することを備える請求項31の方法。
  35. 前記クロールを行なうことは、ページまたはアプリケーションのシードリストを辿ることを備える請求項31の方法。
  36. 前記クロールを行なうことは、URLのリスト、アプリケーションポインタのリスト、またはRSSフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿ることを備える請求項31の方法。
  37. 前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項31の方法。
  38. 前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項31の方法。
  39. 前記インデクシングを行なうことは、
    ドキュメントまたはアプリケーションを読み込み、
    前記ドキュメントまたはアプリケーションをインスタンス化し、
    インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項31の方法。
  40. 前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードをデータベースに登録することを備える請求項31の方法。
  41. 前記インデクシングを行なうことは、前記実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、前記ノードを指すポインタをデータベースに保管することを備える請求項31の方法。
  42. 前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ(URL)をデータベースに格納することを備える請求項31の方法。
  43. 前記インデクシングを行なうことは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項31の方法。
  44. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項43の方法。
  45. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項43の方法。
  46. オブジェクトは、前記インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項31の方法。
  47. クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Acrobatファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項31の方法。
  48. クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含む請求項31の方法。
  49. クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含む請求項31の方法。
  50. 前記クロールを行なうことは、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なうことを備える請求項31の方法。
  51. クローリングではインターネットに対してクロールを行なう請求項31の方法。
  52. 前記クロールを行なうことは、TCP/IPネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項31の方法。
  53. 前記クロールを行なうことは、公衆ネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項31の方法。
  54. 前記クロールを行なうことは、プライベートネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項31の方法。
  55. アプリケーションまたはドキュメントは全てインスタンス化される請求項31の方法。
  56. アプリケーションまたはドキュメントの一部分だけがインスタンス化される請求項31の方法。
  57. 前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項31の方法。
  58. 前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項31の方法。
  59. 更に、データクエリーインターフェースを、前記実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項31の方法。
  60. 更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項31の方法。
  61. 検索可能なデータベースを生成するためにコンピュータが実施する方法であって、
    複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールを行なってビデオファイルの位置を特定し、
    前記オブジェクトモデル内で見つかったビデオファイルを、当該ビデオファイルを指すポインタを前記データベースに保管することによりインデクシングし、
    前記ビデオファイルについてのメタデータを前記オブジェクトモデルから抽出し、前記メタデータを前記データベースに格納する、前記方法。
  62. インターネット上のファイルを検索するためにコンピュータが実施する方法であって、
    ビデオリッチなウェブサイトを特定するプロトコルクローラを用意し、
    前記ビデオリッチなウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタと、
    前記インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定するエクストラクタであって、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、
    前記インスタンス化済みウェブアプリケーションアプリケーションを解析し、そのアプリケーションの全てのクリック可能アイテムを捜し出し、解析して、そのウェブアプリケーションを、イベントを挿入することにより起動し、そのアプリケーションから情報を抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを備えるアプリケーションクローラを用意する、前記方法。
  63. 前記インスペクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
    一つまたは複数のブラウザのドキュメントオブジェクトモデル(DOM)実装、
    JavaScript、JScript、ECMAScript、またはVBScriptを実行する機能を持つスクリプトエンジン、
    XMLパーサエンジン、
    カスケーディングスタイルシートエンジン、
    ネットワークI/Oライブラリ、
    HTMLパーサ兼レンダリングエンジン、
    ActiveXコントロールのような埋め込みコントロールを実行するエンジン、または
    ウェブアプリケーションをレンダリングするエンジン、
    である請求項62の方法。
  64. 前記エクストラクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
    XSLエンジン、
    XPath実装、
    正規表現エンジン、
    スクリプト実行エンジン、
    これらには制限されないが、ActiveXオブジェクト及びCOMオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ、
    httpプロキシのようなネットワークトランスポートプロキシ、
    rtspプロキシまたは他のマルチメディアストリームプロキシ、
    データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ、
    メタデータを分類するタクソノミーエンジン、または
    テキストパーサ兼処理エンジン、
    である請求項62の方法。
  65. 前記クローラは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
    ファイルI/Oライブラリ、
    ネットワークI/Oライブラリ、または
    ログファイルを生成し、保存するライブラリ、
    である請求項62の方法。
  66. インターネット上のファイルを検索するためにコンピュータが実施する方法であって、
    ターゲットURLを捜し出し、
    前記ターゲットURLのHTMLファイルをダウンロードし、
    ウェブアプリケーション全体をHTMLファイルに含まれる情報に基づいて構築するために使用される補足データファイルをダウンロードし、
    前記補足データファイル及びHTMLファイルのアプリケーションコンポーネントをアセンブルし、
    前記アプリケーションコンポーネントをインスタンス化してウェブアプリケーションを生成し、
    ウェブアプリケーションの内、有用データを含む可能性のある全てのオブジェクトにデータクエリーインターフェースを適用し、
    事前定義アプリケーションテンプレートを読み込むか、または、アプリケーションテンプレートを生成して自動定義し、
    前記アプリケーションテンプレートを適用して所望情報の全てを前記ウェブアプリケーションから抽出し、
    前記所望情報をファイルまたはデータベースに構造化データ情報レコードとして保存し、
    前記ウェブアプリケーションの全てのコンポーネントを分析して、マウスイベントに応答することができる、またはクリック可能アイテムを構成することができる全ての使用可能なコンポーネントを特定し、
    どのクリック可能アイテムが、シミュレートされた最後のマウスイベント以降に現われたかを判断し、
    全ての可能なアプリケーション状態においてアプリケーション内の全てのクリック可能アイテムを含むツリーの新規ブランチのような適切なデータ構造に、クリック可能な新規アイテムを保存し、
    前記クリック可能アイテムのツリーの現在のブランチの第1のクリック可能アイテムに対するマウスクリックをシミュレートする、
    方法。
  67. 更に、本方法を、クリック可能アイテムのツリー全体が巡回されるまで繰り返す請求項66の方法。
  68. インスタンス化ステップは、
    HTMLをレンダリングし、ドキュメントオブジェクトモデルを構築するステップ、
    スタイルシートを適用するステップ、
    スクリプトを適切なスクリプトインタープリタで実行するステップ、
    ActiveXコントロールのようなコントロールまたはプラグインの全てを起動するステップ、
    ビデオストリームまたはオーディオストリームを送出するステップ、
    Flashアニメーションのようなアニメーションを展開するステップ、または
    HTMLビヘイビアスクリプトを実行するステップ、
    の内の少なくとも一つのステップを含む請求項66の方法。
  69. ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なうプログラミングコードを有するアプリケーションクローラを備えるコンピュータシステム。
  70. 更に、
    ウェブサイトを特定して検査するプロトコルクローラを備え、前記アプリケーションクローラは、前記ウェブサイトの実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なう請求項69のコンピュータシステム。
  71. 前記アプリケーションクローラは、
    複数のウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタを含む請求項69のコンピュータシステム。
  72. 前記アプリケーションクローラは、
    インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタを含む請求項69のコンピュータシステム。
  73. 前記アプリケーションクローラは、
    インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラを含む請求項69のコンピュータシステム。
  74. 前記プロトコルクローラは、少なくとも一つのビデオファイルを含むウェブサイトを特定して検査する請求項69のコンピュータシステム。
  75. 前記プロトコルクローラは、少なくとも一つのメディアファイルを含むウェブサイトを特定して検査する請求項69のコンピュータシステム。
  76. 前記プロトコルクローラは、mpegファイル、aviファイル、リアルメディアファイル、フラッシュファイル、tsファイル、wmvファイル、またはQuicktime(商標)ファイルの内の少なくとも一つを含むウェブサイトを特定して検査する請求項69のコンピュータシステム。
  77. 前記アプリケーションクローラは、クリック可能アイテムのツリーを検査し、個人ユーザが行なう手順とほぼ同様に自動化した手順で各アイテムを起動するように構成される請求項69のコンピュータシステム。
  78. 前記アプリケーションクローラは、データ抽出、いつリンクを辿ればよいかのタイミング、クロールする深度レベル、コマーシャルをスキップする方法、クロールを開始すべき場所、リンクを捜し出す操作、タイトルの位置、メディアファイルメタデータの位置、時間的同期、またはクローラに指示して或る時間間隔だけ待機させ、次にオブジェクトツリーを再度クロールさせる操作の内の少なくとも一つのために構成されたテンプレートを使用する請求項69のコンピュータシステム。
  79. ビデオリッチなウェブサイトを特定するプロトコルクローラと、アプリケーションクローラとを備えるシステムであって、前記アプリケーションクローラが、
    ビデオリッチな前記ウェブサイトの内の一つのウェブサイトのウェブページの全てのコンポーネントを動的にインスタンス化し、アセンブルして少なくとも一つのインスタンス化済みウェブアプリケーションアプリケーションを生成するインスペクタと、
    インスタンス化済みウェブアプリケーションアプリケーションの内、有用情報を含む特定部分を特定し、当該情報を抽出してメタデータレコードに取り込むために必要なロジックを提供するエクストラクタと、
    インスタンス化済みウェブアプリケーションアプリケーションを解析し、アプリケーションの全てのクリック可能アイテムを捜し出し、解析し、ウェブアプリケーションをイベントを挿入することにより起動し、情報をアプリケーションから抽出し、当該情報をファイルまたはデータベースに書き込むクローラとを含むものである、前記システム。
  80. 前記インスペクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
    一つまたは複数のブラウザのドキュメントオブジェクトモデル(DOM)実装、
    JavaScript、JScript、ECMAScript、またはVBScriptを実行する機能を持つスクリプトエンジン、
    XMLパーサエンジン、
    カスケーディングスタイルシートエンジン、
    ネットワークI/Oライブラリ、
    HTMLパーサ兼レンダリングエンジン、
    ActiveXコントロールのような埋め込みコントロールを実行するエンジン、または
    ウェブアプリケーションをレンダリングするエンジン、
    である請求項79のコンピュータシステム。
  81. 前記エクストラクタは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
    XSLエンジン、
    XPath実装、
    正規表現エンジン、
    スクリプト実行エンジン、
    これらには制限されないが、ActiveXオブジェクト及びCOMオブジェクトのようなコンポーネントの埋め込みオブジェクトインスペクタ、
    httpプロキシのようなネットワークトランスポートプロキシ、
    rtspプロキシまたは他のマルチメディアストリームプロキシ、
    データを外部プログラミングフレームワークのクラスライブラリで処理するソフトウェアブリッジ、
    メタデータを分類するタクソノミーエンジン、または
    テキストパーサ兼処理エンジン、
    である請求項79のコンピュータシステム。
  82. クローラは、次の項目の内の少なくとも一つの項目に関するソフトウェアコンポーネントのコードを含み、これらの項目は、
    ファイルI/Oライブラリ、
    ネットワークI/Oライブラリ、または
    ログファイルを生成し、保存するライブラリ、
    である請求項79のコンピュータシステム。
  83. ターゲットURLを受信し、
    複数の実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルをインデクシングする、コンピュータが実施する方法。
  84. 受信するステップでは、URLのリストを受信する請求項83の方法。
  85. 受信するステップでは、URLのリスト、アプリケーションポインタのリスト、またはRSSフィードの内の少なくとも一つを受信する請求項83の方法。
  86. 前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項83の方法。
  87. 前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項83の方法。
  88. 前記インデクシングを行なうことは、
    ドキュメントまたはアプリケーションを読み込み、
    ドキュメントまたはアプリケーションをインスタンス化し、
    インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項83の方法。
  89. 前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードをデータベースに登録することを備える請求項83の方法。
  90. 前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードを指すポインタをデータベースに保管することを備える請求項83の方法。
  91. 前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ(URL)をデータベースに格納することを備える請求項83の方法。
  92. 前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項83の方法。
  93. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項92の方法。
  94. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項92の方法。
  95. オブジェクトは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項83の方法。
  96. インデクシング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Acrobatファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項83の方法。
  97. アプリケーションまたはドキュメントは全てインスタンス化される請求項83の方法。
  98. アプリケーションまたはドキュメントの一部分だけがインスタンス化される請求項83の方法。
  99. 前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項83の方法。
  100. 前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項83の方法。
  101. 更に、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項83の方法。
  102. 更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項83の方法。
  103. コンピュータで利用可能な媒体、及びコンピュータで利用可能な前記媒体に格納されるコンピュータ読み取り可能なコードを備えるコンピュータプログラム製品であって、
    前記コンピュータ読み取り可能なコードが、コンピュータに、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルに対してクロールとインデクシングを行なわせるように構成されたコンピュータ読み取り可能なプログラムコードを含む、コンピュータプログラム製品。
  104. 前記クロールを行なうことは、マシンからマシンへと移動して各マシンの少なくとも一つのドキュメントまたはアプリケーションを巡回することを備える請求項103のコンピュータプログラム製品。
  105. 前記マシンは異なる物理的ロケーションに位置し、コンピュータネットワークに接続されている請求項104のコンピュータプログラム製品。
  106. 前記クロールを行なうことは、
    クリック可能アイテムのツリーを辿り、
    個人ユーザが行なう手順とほぼ同様に自動化した手順でアイテムを起動することを備える請求項103のコンピュータプログラム製品。
  107. 前記クロールを行なうことは、ページまたはアプリケーションのシードリストを辿ることを備える請求項103のコンピュータプログラム製品。
  108. 前記クロールを行なうことは、URLのリスト、アプリケーションポインタのリスト、またはRSSフィードの内の少なくとも一つから選択されるページまたはアプリケーションのシードリストを辿ることを備える請求項103のコンピュータプログラム製品。
  109. 前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項103のコンピュータプログラム製品。
  110. 前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、オブジェクトロケーション及びコンテンツを記録することを備える請求項103のコンピュータプログラム製品。
  111. 前記インデクシングを行なうことは、
    ドキュメントまたはアプリケーションを読み込み、
    ドキュメントまたはアプリケーションをインスタンス化し、
    インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回することを備える請求項103のコンピュータプログラム製品。
  112. 前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードをデータベースに登録することを備える請求項103のコンピュータプログラム製品。
  113. 前記インデクシングを行なうことは、実行中インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードに到達し、ノードを指すポインタをデータベースに保管することを備える請求項103のコンピュータプログラム製品。
  114. 前記インデクシングを行なうことは、メディアに関連する複数のユニフォームリソースロケータ(URL)をデータベースに格納することを備える請求項103のコンピュータプログラム製品。
  115. 前記インデクシングを行なうことは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルのオブジェクトツリーを巡回し、マウスイベント、キーボードイベント、または他のユーザイベントをシミュレートすることを備える請求項103のコンピュータプログラム製品。
  116. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、オブジェクトツリーを巡回する請求項115のコンピュータプログラム製品。
  117. 更に、マウスイベント、キーボードイベント、他のユーザイベント、ブラウザイベント、またはメディアプレーヤイベントの後、所定期間だけ待機し、イベントの結果として表示される新規アプリケーションまたはドキュメントのオブジェクトツリーを巡回する請求項115のコンピュータプログラム製品。
  118. オブジェクトは、インスタンス化済みドキュメントまたはアプリケーションのオブジェクトモデルの全てのノードまたは要素である請求項103のコンピュータプログラム製品。
  119. クローリング対象のドキュメントまたはアプリケーションは、ワードプロセシングファイル、Acrobatファイル、スプレッドシート、ブラウザアプリケーション、メディアプレーヤ、マルチメディアアプリケーション、またはメディアストリームに埋め込まれたメタデータヘッダの内の少なくとも一つを含む請求項103のコンピュータプログラム製品。
  120. クローリング対象のドキュメントまたはアプリケーションはオペレーティングシステムを含む請求項103のコンピュータプログラム製品。
  121. クローリング対象のドキュメントまたはアプリケーションはファイルシステムを含む請求項103のコンピュータプログラム製品。
  122. 前記クロールを行なうことは、次のタイプのネットワーク要素、すなわちイントラネット、シングルマシン、またはシングルマシンで実行される複数のアプリケーションに対してクロールを行なうことを備える請求項103のコンピュータプログラム製品。
  123. クローリングではインターネットに対してクロールを行なう請求項103のコンピュータプログラム製品。
  124. 前記クロールを行なうことは、TCP/IPネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項103のコンピュータプログラム製品。
  125. 前記クロールを行なうことは、公衆ネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項103のコンピュータプログラム製品。
  126. 前記クロールを行なうことは、プライベートネットワーク上の全てのデバイスに対してクロールを行なうことを備える請求項103のコンピュータプログラム製品。
  127. アプリケーションまたはドキュメントは全てインスタンス化される請求項103のコンピュータプログラム製品。
  128. アプリケーションまたはドキュメントの一部分だけがインスタンス化される請求項103のコンピュータプログラム製品。
  129. 前記インデクシングを行なうことは更に、ビデオファイルをインスタンス化する請求項103のコンピュータプログラム製品。
  130. 前記インデクシングを行なうことは更に、ビデオストリームをインスタンス化する請求項103のコンピュータプログラム製品。
  131. 更に、データクエリーインターフェースを、実行中インスタンス化済みドキュメントまたはアプリケーションのソフトウェアオブジェクトに追加して、アプリケーションクローラとのインターフェースを可能にする請求項103のコンピュータプログラム製品。
  132. 更に、セキュリティコントロールを緩めてオブジェクトモデルへのアクセスを可能にする請求項103のコンピュータプログラム製品。
JP2007543442A 2004-11-22 2005-11-22 アプリケーションクローラの方法及び装置 Pending JP2008521147A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63042304P 2004-11-22 2004-11-22
PCT/US2005/042456 WO2006058075A2 (en) 2004-11-22 2005-11-22 Method and apparatus for an application crawler

Publications (1)

Publication Number Publication Date
JP2008521147A true JP2008521147A (ja) 2008-06-19

Family

ID=36498499

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007543442A Pending JP2008521147A (ja) 2004-11-22 2005-11-22 アプリケーションクローラの方法及び装置

Country Status (7)

Country Link
US (1) US9405833B2 (ja)
EP (1) EP1831796A4 (ja)
JP (1) JP2008521147A (ja)
CN (1) CN101443751A (ja)
AU (1) AU2005309617B2 (ja)
CA (1) CA2588219C (ja)
WO (1) WO2006058075A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010104880A2 (en) * 2009-03-13 2010-09-16 Microsoft Corporation Rich web site authoring and design
JP2013505501A (ja) * 2009-09-20 2013-02-14 ヤフー! インコーポレイテッド 高度な検索結果ページコンテンツを提供するためのシステム及び方法
US8381093B2 (en) 2006-12-06 2013-02-19 Microsoft Corporation Editing web pages via a web browser
JP2015135680A (ja) * 2009-04-02 2015-07-27 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Ajaxウェブページコンテンツを取得する方法およびシステム

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584194B2 (en) 2004-11-22 2009-09-01 Truveo, Inc. Method and apparatus for an application crawler
EP1831796A4 (en) 2004-11-22 2010-01-27 Truveo Inc METHOD AND DEVICE FOR AN APPLICATION CRAWLER
US20080162505A1 (en) * 2006-12-29 2008-07-03 Hill Charles R Context browser based navigation of pivotally related information for a document
US7701944B2 (en) 2007-01-19 2010-04-20 International Business Machines Corporation System and method for crawl policy management utilizing IP address and IP address range
US10176258B2 (en) * 2007-06-28 2019-01-08 International Business Machines Corporation Hierarchical seedlists for application data
WO2009126152A1 (en) * 2008-04-09 2009-10-15 The Nielsen Company (U.S.), Inc. Methods and apparatus to play and control playing of media content in a web page
US9639531B2 (en) 2008-04-09 2017-05-02 The Nielsen Company (Us), Llc Methods and apparatus to play and control playing of media in a web page
AU2013203736B2 (en) * 2008-04-09 2015-11-26 The Nielsen Company (Us), Llc Methods and apparatus to play and control playing of media content in a web page
CN102216945B (zh) * 2008-08-21 2013-04-17 杜比实验室特许公司 通过媒体指纹进行联网
US20100080411A1 (en) * 2008-09-29 2010-04-01 Alexandros Deliyannis Methods and apparatus to automatically crawl the internet using image analysis
US8255384B2 (en) 2009-09-30 2012-08-28 Fujitsu Limited Client-tier validation of dynamic web applications
US10346483B2 (en) * 2009-10-02 2019-07-09 Akamai Technologies, Inc. System and method for search engine optimization
CN102117289B (zh) * 2009-12-30 2012-10-10 北京大学 一种从网页中抽取评论内容的方法和装置
US8832099B2 (en) 2010-03-09 2014-09-09 Yahoo! Inc. User specific feed recommendations
US9032067B2 (en) 2010-03-12 2015-05-12 Fujitsu Limited Determining differences in an event-driven application accessed in different client-tier environments
US20110238653A1 (en) * 2010-03-25 2011-09-29 Microsoft Corporation Parsing and indexing dynamic reports
CN101826110B (zh) * 2010-04-13 2011-12-21 北京大学 一种BitTorrent种子文件爬取方法
US8924395B2 (en) 2010-10-06 2014-12-30 Planet Data Solutions System and method for indexing electronic discovery data
US9400962B2 (en) 2010-10-29 2016-07-26 Fujitsu Limited Architecture for distributed, parallel crawling of interactive client-server applications
US8880588B2 (en) 2010-10-29 2014-11-04 Fujitsu Limited Technique for stateless distributed parallel crawling of interactive client-server applications
US8832065B2 (en) 2010-10-29 2014-09-09 Fujitsu Limited Technique for coordinating the distributed, parallel crawling of interactive client-server applications
CN103392320B (zh) * 2010-12-29 2016-08-31 思杰系统有限公司 对加密项目进行多层标记以提供额外的安全和有效的加密项目确定的系统和方法
US9208054B2 (en) 2011-02-14 2015-12-08 Fujitsu Limited Web service for automated cross-browser compatibility checking of web applications
CN102880618A (zh) * 2011-07-15 2013-01-16 国际商业机器公司 用于网页文档搜索的方法及系统
CN102902693B (zh) * 2011-07-29 2018-01-12 慧与发展有限责任合伙企业 检测在网页上的重复模式
US10089403B1 (en) * 2011-08-31 2018-10-02 Amazon Technologies, Inc. Managing network based storage
CN103020087A (zh) * 2011-09-26 2013-04-03 百度在线网络技术(北京)有限公司 点击日志的生成方法及装置,搜索结果调整方法及装置
US8769014B2 (en) * 2011-11-25 2014-07-01 Sap Ag Universal collaboration adapter for web editors
EP2650802B1 (en) * 2012-04-12 2018-10-24 Dassault Systèmes Building of a web corpus with the help of a reference web crawl
CN103914454A (zh) * 2012-12-31 2014-07-09 上海证大喜马拉雅网络科技有限公司 基于ajax锚点的全站无缝伴随式音频播放方法和系统
US10152552B2 (en) 2013-01-29 2018-12-11 Entit Software Llc Analyzing a structure of a web application to produce actionable tokens
WO2014130048A1 (en) 2013-02-25 2014-08-28 Hewlett-Packard Development Company, L.P. Presentation of user interface elements based on rules
US9076182B2 (en) 2013-03-11 2015-07-07 Yodlee, Inc. Automated financial data aggregation
EP2972943A4 (en) * 2013-03-15 2017-01-04 Adparlor Media, Inc. Intelligent platform for real-time bidding
US20140281980A1 (en) 2013-03-15 2014-09-18 Chad A. Hage Methods and Apparatus to Identify a Type of Media Presented by a Media Player
US8855280B1 (en) * 2013-09-27 2014-10-07 Securus Technologies, Inc. Communication detail records (CDRs) containing media for communications in controlled-environment facilities
US9825812B2 (en) * 2013-12-05 2017-11-21 Pulse Secure, Llc Transparently intercepting and optimizing resource requests
CN103729458B (zh) * 2014-01-10 2017-01-11 湖南神州祥网科技有限公司 一种网页请求的区分方法及装置
CN106687949B (zh) * 2014-06-24 2020-11-17 谷歌有限责任公司 本地应用的搜索结果
CN105988994A (zh) * 2015-02-06 2016-10-05 北京询达数据科技有限公司 Web领域分布式实时抽取系统
US10152488B2 (en) * 2015-05-13 2018-12-11 Samsung Electronics Co., Ltd. Static-analysis-assisted dynamic application crawling architecture
US9348671B1 (en) * 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
US20170060864A1 (en) * 2015-08-26 2017-03-02 Quixey, Inc. Action Recommendation System for Focused Objects
US10191988B2 (en) * 2015-10-28 2019-01-29 Sony Mobile Communications Inc. System and method for returning prioritized content
US10423675B2 (en) * 2016-01-29 2019-09-24 Intuit Inc. System and method for automated domain-extensible web scraping
WO2017203521A1 (en) * 2016-05-22 2017-11-30 Fornova Ltd. System and method for automatic detection and filling of online calendars
US10152465B2 (en) 2016-12-20 2018-12-11 Qualcomm Incorporated Security-focused web application crawling
CN106844486A (zh) * 2016-12-23 2017-06-13 北京奇虎科技有限公司 爬取动态网页的方法及装置
US11361328B2 (en) * 2017-03-15 2022-06-14 International Business Machines Corporation Reduced network footprint customer behavior analytics
CN107273653A (zh) * 2017-04-27 2017-10-20 广州慧扬健康科技有限公司 基于Wrapper控件适配器的电子病历表单设计器
CN107622015B (zh) * 2017-09-25 2021-05-04 北京因特睿软件有限公司 一种数据流分析方法、装置、设备及介质
CN109698844A (zh) * 2017-10-23 2019-04-30 镇江雅迅软件有限责任公司 一种媒体资源管理系统
CN108089967A (zh) * 2017-12-12 2018-05-29 成都睿码科技有限责任公司 一种爬取安卓手机App数据的方法
CN108304498B (zh) * 2018-01-12 2020-08-25 深圳壹账通智能科技有限公司 网页数据采集方法、装置、计算机设备和存储介质
US11100555B1 (en) * 2018-05-04 2021-08-24 Coupa Software Incorporated Anticipatory and responsive federated database search
CN109639770A (zh) * 2018-11-22 2019-04-16 山东中创软件工程股份有限公司 一种数据访问方法、装置、设备及介质
CN110413566A (zh) * 2019-07-04 2019-11-05 广州视源电子科技股份有限公司 课件存储和处理方法、装置、智能交互平板及存储介质
US11228611B1 (en) * 2019-08-20 2022-01-18 Rapid7, Inc. Scanning unexposed web applications for vulnerabilities
CN111565336B (zh) * 2020-05-22 2022-12-27 郑州阿帕斯科技有限公司 一种视频播放方法和装置
CN112100061A (zh) * 2020-08-28 2020-12-18 广州探迹科技有限公司 一种可视化爬虫代码编写与调试方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000033575A1 (en) * 1998-11-30 2000-06-08 Yuen Henry C Search engine for video and graphics
US6282549B1 (en) * 1996-05-24 2001-08-28 Magnifi, Inc. Indexing of media content on a network
JP2002318803A (ja) * 2000-12-07 2002-10-31 Sony United Kingdom Ltd ビデオ情報検索
JP2003296335A (ja) * 2002-04-02 2003-10-17 Kddi Corp 動画像検索装置
US20040059809A1 (en) * 2002-09-23 2004-03-25 Benedikt Michael Abraham Automatic exploration and testing of dynamic Web sites

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314420B1 (en) 1996-04-04 2001-11-06 Lycos, Inc. Collaborative/adaptive search engine
US6360234B2 (en) 1997-08-14 2002-03-19 Virage, Inc. Video cataloger system with synchronized encoders
US6421675B1 (en) 1998-03-16 2002-07-16 S. L. I. Systems, Inc. Search engine
US7072888B1 (en) 1999-06-16 2006-07-04 Triogo, Inc. Process for improving search engine efficiency using feedback
US6516337B1 (en) * 1999-10-14 2003-02-04 Arcessa, Inc. Sending to a central indexing site meta data or signatures from objects on a computer network
AUPQ475799A0 (en) * 1999-12-20 2000-01-20 Youramigo Pty Ltd An internet indexing system and method
US6665658B1 (en) * 2000-01-13 2003-12-16 International Business Machines Corporation System and method for automatically gathering dynamic content and resources on the world wide web by stimulating user interaction and managing session information
US6546388B1 (en) 2000-01-14 2003-04-08 International Business Machines Corporation Metadata search results ranking system
US7305610B1 (en) 2000-04-06 2007-12-04 Google, Inc. Distributed crawling of hyperlinked documents
US7260564B1 (en) * 2000-04-07 2007-08-21 Virage, Inc. Network video guide and spidering
US7519902B1 (en) * 2000-06-30 2009-04-14 International Business Machines Corporation System and method for enhanced browser-based web crawling
US6618717B1 (en) 2000-07-31 2003-09-09 Eliyon Technologies Corporation Computer method and apparatus for determining content owner of a website
US7080073B1 (en) * 2000-08-18 2006-07-18 Firstrain, Inc. Method and apparatus for focused crawling
NO313399B1 (no) 2000-09-14 2002-09-23 Fast Search & Transfer Asa Fremgangsmate til soking og analyse av informasjon i datanettverk
US20020103920A1 (en) 2000-11-21 2002-08-01 Berkun Ken Alan Interpretive stream metadata extraction
US20020091671A1 (en) 2000-11-23 2002-07-11 Andreas Prokoph Method and system for data retrieval in large collections of data
US20020078134A1 (en) * 2000-12-18 2002-06-20 Stone Alan E. Push-based web site content indexing
US7502994B2 (en) 2001-02-05 2009-03-10 Omniture, Inc. Web page link-tracking system
US20020129062A1 (en) * 2001-03-08 2002-09-12 Wood River Technologies, Inc. Apparatus and method for cataloging data
US7047294B2 (en) 2001-05-02 2006-05-16 Microsoft Corporation Page-view recording with click-thru tracking
US7272657B2 (en) 2001-07-30 2007-09-18 Digeo, Inc. System and method for displaying video streams ranked by user-specified criteria
US7010527B2 (en) 2001-08-13 2006-03-07 Oracle International Corp. Linguistically aware link analysis method and system
US7565367B2 (en) 2002-01-15 2009-07-21 Iac Search & Media, Inc. Enhanced popularity ranking
AU2003239490A1 (en) 2002-05-14 2003-12-02 Verity, Inc. Searching structured, semi-structured, and unstructured content
US20060190561A1 (en) 2002-06-19 2006-08-24 Watchfire Corporation Method and system for obtaining script related information for website crawling
US7130844B2 (en) 2002-10-31 2006-10-31 International Business Machines Corporation System and method for examining, calculating the age of an document collection as a measure of time since creation, visualizing, identifying selectively reference those document collections representing current activity
US20040088649A1 (en) 2002-10-31 2004-05-06 International Business Machines Corporation System and method for finding the recency of an information aggregate
US20040133558A1 (en) 2003-01-06 2004-07-08 Masterwriter, Inc. Information management system plus
US7725875B2 (en) * 2003-09-04 2010-05-25 Pervasive Software, Inc. Automated world wide web navigation and content extraction
US20050060286A1 (en) 2003-09-15 2005-03-17 Microsoft Corporation Free text search within a relational database
US7346839B2 (en) 2003-09-30 2008-03-18 Google Inc. Information retrieval based on historical data
US8065383B2 (en) * 2004-05-17 2011-11-22 Simplefeed, Inc. Customizable and measurable information feeds for personalized communication
RU2388050C2 (ru) 2004-09-16 2010-04-27 Теленор Аса Способ, система и компьютерный программный продукт для поиска, навигации и ранжирования документов в персональной сети
EP1831796A4 (en) 2004-11-22 2010-01-27 Truveo Inc METHOD AND DEVICE FOR AN APPLICATION CRAWLER
US7584194B2 (en) 2004-11-22 2009-09-01 Truveo, Inc. Method and apparatus for an application crawler
US7653617B2 (en) 2005-08-29 2010-01-26 Google Inc. Mobile sitemaps

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282549B1 (en) * 1996-05-24 2001-08-28 Magnifi, Inc. Indexing of media content on a network
WO2000033575A1 (en) * 1998-11-30 2000-06-08 Yuen Henry C Search engine for video and graphics
JP2002318803A (ja) * 2000-12-07 2002-10-31 Sony United Kingdom Ltd ビデオ情報検索
JP2003296335A (ja) * 2002-04-02 2003-10-17 Kddi Corp 動画像検索装置
US20040059809A1 (en) * 2002-09-23 2004-03-25 Benedikt Michael Abraham Automatic exploration and testing of dynamic Web sites

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381093B2 (en) 2006-12-06 2013-02-19 Microsoft Corporation Editing web pages via a web browser
WO2010104880A2 (en) * 2009-03-13 2010-09-16 Microsoft Corporation Rich web site authoring and design
WO2010104880A3 (en) * 2009-03-13 2011-01-13 Microsoft Corporation Rich web site authoring and design
JP2015135680A (ja) * 2009-04-02 2015-07-27 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Ajaxウェブページコンテンツを取得する方法およびシステム
US9767082B2 (en) 2009-04-02 2017-09-19 Alibaba Group Holding Limited Method and system of retrieving ajax web page content
JP2013505501A (ja) * 2009-09-20 2013-02-14 ヤフー! インコーポレイテッド 高度な検索結果ページコンテンツを提供するためのシステム及び方法

Also Published As

Publication number Publication date
CA2588219A1 (en) 2006-06-01
US20130066848A1 (en) 2013-03-14
AU2005309617A1 (en) 2006-06-01
US9405833B2 (en) 2016-08-02
EP1831796A2 (en) 2007-09-12
AU2005309617B2 (en) 2009-03-26
CN101443751A (zh) 2009-05-27
EP1831796A4 (en) 2010-01-27
WO2006058075A2 (en) 2006-06-01
WO2006058075A3 (en) 2009-02-12
CA2588219C (en) 2014-05-20

Similar Documents

Publication Publication Date Title
US9405833B2 (en) Methods for analyzing dynamic web pages
US7584194B2 (en) Method and apparatus for an application crawler
Lawson Web scraping with Python
US8799262B2 (en) Configurable web crawler
US8996682B2 (en) Automatically instrumenting a set of web documents
US7827191B2 (en) Discovering web-based multimedia using search toolbar data
US7536389B1 (en) Techniques for crawling dynamic web content
US9703883B2 (en) Social bookmarking of resources exposed in web pages
US20060031751A1 (en) Method for creating editable web sites with increased performance & stability
US20090100345A1 (en) Method and System for Testing Websites
US20100070856A1 (en) Method for Graphical Visualization of Multiple Traversed Breadcrumb Trails
US20100077300A1 (en) Computer Method and Apparatus Providing Social Preview in Tag Selection
CN112612943A (zh) 一种基于异步处理框架的具有自动测试功能的数据爬取方法
KR101503268B1 (ko) 시맨틱 클라이언트, 시맨틱 정보 관리 서버, 시맨틱 정보생성 방법, 시맨틱 정보 검색 방법 및 그 방법들을수행하기 위한 컴퓨터 기록매체
KR102054020B1 (ko) 참조 웹 크롤의 도움에 의한 웹 코퍼스의 구축
Matthijssen et al. FireDetective: understanding ajax client/server interactions
Panum et al. Kraaler: A user-perspective web crawler
JP2006127117A (ja) Web閲覧操作の記録・再生方法及び装置及びプログラム及びプログラムを格納した記憶媒体
Kaczmarek et al. Harvesting deep web data through produser involvement
Ganibardi et al. Web Usage Data Cleaning: A Rule-Based Approach for Weblog Data Cleaning
Aru et al. DEVELOPMENT OF AN INTELLIGENT WEB BASED DYNAMIC NEWS AGGREGATOR INTEGRATING INFOSPIDER AND INCREMENTAL WEB CRAWLING TECHNOLOGY
Gunnam How I changed over time: a webservice to summarize TimeMaps based on SimHashed HTML content
Olofsson Evaluation of webscraping tools for creating an embedded webwrapper
Chen Web evolution
Li et al. Let google index your media fragments

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100907