(57)【特許請求の範囲】
【請求項１】
ウェブページレンダリングを加速させるための方法であって、
複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップと、
前記収集したウェブページにおける要素情報に対して行った前記機械学習分析に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップと、
予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップと
を含む方法。
【請求項２】
前記予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップは、
前記ウェブページにおける前記ウェブページ要素情報に基づいてサブツリーがアプリオリに独立していると予測するステップと、
DOMツリーのアプリオリ独立部分からのタスクを形成するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記ウェブページにおける前記ウェブページ要素情報に基づいて、一定の情報が特定された場合にサブツリーが条件付きで独立したものであると予測するステップと、
前記一定の情報を取得するためのタスクを実行するステップと、
前記取得された一定の情報を使用して、DOMツリーの前記条件付き独立部分からのタスクを形成するステップと
をさらに含む、請求項1に記載の方法。
【請求項４】
前記一定の情報を取得するためのタスクを実行するステップは、前記一定の情報を迅速に計算するステップを含む、請求項3に記載の方法。
【請求項５】
前記一定の情報を取得するためのタスクを実行するステップは、推測に基づいて前記一定の情報を特定するステップを含む、請求項3に記載の方法。
【請求項６】
ウェブページ要素のレイアウトサイズ、位置、CSSスタイル属性、サブツリーのサイズ、HTMLタグ、親のHTMLタグ、およびウェブページ特徴情報のうちの少なくとも1つを含むウェブページ要素情報を収集するステップ
をさらに含む、請求項1に記載の方法。
【請求項７】
前記予測サブツリー独立性を使用して、前記ウェブページのDOMツリーのサブツリーが独立しておらず、前記サブツリーを同時に処理することはできないと判断するステップをさらに含む、請求項1に記載の方法。
【請求項８】
単一のウェブブラウザを使用して、前記機械学習分析を実行し、サブツリー独立性を予測して、前記ウェブページの部分を同時に処理するステップをさらに含む、請求項1に記載の方法。
【請求項９】
第1のコンピューティングデバイスにおいて第1のプロセッサを使用して、機械学習分析を実行するステップと、
第2の異なるコンピューティングデバイスにおいて第2のプロセッサを使用して、サブツリー独立性を予測して前記ウェブページの部分を同時に処理するステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
複数の更新されたウェブページを処理することによって前記分類子を更新するステップと、更新されたウェブページ要素情報を収集するステップと、前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性の追加のパターンを識別するように機械学習分析を実行するステップとをさらに含む、請求項1に記載の方法。
【請求項１１】
コンピューティングデバイス上で動作するインストゥルメントブラウザを使用して、ウェブページ要素情報を収集するステップをさらに含み、
複数のウェブページを処理し、ウェブページ要素情報を収集するステップは、前記インストゥルメントブラウザにおいて実現され、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、同じコンピューティングデバイスにおいて実現される、請求項1に記載の方法。
【請求項１２】
複数のウェブページを処理し、ウェブページ要素情報を収集するステップは、
複数のコンピューティングデバイスにおいて、複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ情報を前記複数のコンピューティングデバイスの各々からサーバに送信するステップと、
前記複数のコンピューティングデバイスによって送信された前記ウェブページ情報を前記サーバにおいて受信し総合して、総合ウェブページ要素情報を生成するステップと、
前記複数のコンピューティングデバイスのうちの少なくとも1つに総合ウェブページ要素情報を送信するステップと、
前記送信された総合ウェブページ要素情報を前記複数のコンピューティングデバイスのうちの少なくとも1つにおいて受信するステップと
を含み、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、前記複数のコンピューティングデバイスのうちの前記少なくとも1つにおいて、前記受信された総合ウェブページ要素情報に対して実現され、
ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップは、前記受信された総合ウェブページ要素情報に対して実行された機械学習分析に基づいてサブツリー独立性を予測するように、前記複数のコンピューティングデバイスのうちの前記少なくとも1つにおいて動作する分類子をトレーニングするステップを含む、請求項1に記載の方法。
【請求項１３】
複数のウェブページを処理し、ウェブページ要素情報を収集するステップは、
複数のコンピューティングデバイスにおいて、複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ情報を前記複数のコンピューティングデバイスの各々からサーバに送信するステップと、
前記複数のコンピューティングデバイスによって送信された前記ウェブページ情報を前記サーバにおいて受信して、総合ウェブページ要素情報を生成するステップと
を含み、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、前記サーバにおいて、前記複数のコンピューティングデバイスによって送信された受信ウェブページ情報に対して、レイアウト独立性のパターンを識別するように機械学習分析を実行するステップを含み、
本方法は、
レイアウト独立性の前記識別されたパターンを前記サーバから前記複数のコンピューティングデバイスのうちの少なくとも1つに送信するステップと、
レイアウト独立性の前記識別されたパターンを前記複数のコンピューティングデバイスのうちの前記少なくとも1つにおいて受信するステップと
をさらに含み、
ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップは、レイアウト独立性の前記受信された識別されたパターンに基づいてサブツリー独立性を予測するように、前記複数のコンピューティングデバイスのうちの前記少なくとも1つにおいて動作する分類子をトレーニングするステップを含む、請求項1に記載の方法。
【請求項１４】
前記分類子がウェブページスクリプトにおける前記ウェブページ要素情報に基づいてサブツリー独立性を予測するステップであって、前記分類子がスケジューリングアルゴリズムにサブツリー独立性データを提供する、ステップをさらに含む、請求項1に記載の方法。
【請求項１５】
前記スケジューリングアルゴリズムが前記予測サブツリー独立性を使用して、前記ウェブページの部分を同時に処理するステップをさらに含む、請求項14に記載の方法。
【請求項１６】
前記収集されたウェブページ要素情報に対して、所定のスタイルシート言語コーディングにおけるプレゼンテーションセマンティクスと相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含む、請求項1に記載の方法。
【請求項１７】
前記予測サブツリー独立性を使用して、DOMツリーの第1の独立サブツリーを、前記DOMツリーの第2の従属サブツリーをレンダリングする前にレンダリングするステップをさらに含む、請求項1に記載の方法。
【請求項１８】
連続的にインターネットからの複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を連続的に実行するステップと、
ウェブページスクリプトにおける要素情報および前記識別されたパターンに基づいてサブツリー独立性を予測するように前記分類子を更新するステップと
をさらに含む、請求項1に記載の方法。
【請求項１９】
第1のウェブページセットを処理し、前記第1のウェブページセットに関連するウェブページ要素情報を収集し、前記収集されたウェブページ要素情報に対して、第1のパターンセットを識別するように機械学習分析を実行するステップと、
前記第1のウェブページセットの前記予測サブツリー独立性に関連する前記第1のパターンセットを使用して、レンダリングされる部分を同時に処理するステップと、
連続的に追加のウェブページ要素情報を収集し、前記第1のパターンセットを補完する追加のパターンを識別するように機械分析を実行することによって、前記第1のパターンセットを動的に連続的に更新するステップと
をさらに含む、請求項1に記載の方法。
【請求項２０】
第2のウェブページセットを処理し、ウェブページ要素情報を収集して第2のパターンセットを識別し、前記第2のパターンセットを使用して前記第1のパターンセットを更新するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記収集されたウェブページ要素情報に対して、HTMLコーディングにおけるウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含む、請求項1に記載の方法。
【請求項２２】
HTMLコーディングは、並列処理能力を示すDOMツリーの第1のサブツリーを含み、HTMLコーディングはまた、第2のサブツリーの前記並列処理能力について沈黙している前記第2のサブツリーを含み、前記分類子は、ウェブページスクリプトにおける要素情報に基づいて、ウェブページ要素の前記第2のサブツリーのサブツリー独立性を予測する、請求項21に記載の方法。
【請求項２３】
ディスプレイと、
内部メモリと、
前記ディスプレイおよび前記内部メモリに結合されたプロセッサとを含み、前記プロセッサは、
複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップと、
前記収集したウェブページにおける要素情報に対して行った前記機械学習分析に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップと、
予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップと
を含む動作を実行するためのプロセッサ実行可能命令で構成される、コンピューティングデバイス。
【請求項２４】
前記プロセッサは、前記予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップが、
前記ウェブページにおける前記ウェブページ要素情報に基づいてサブツリーがアプリオリに独立していると予測するステップと、
DOMツリーのアプリオリ独立部分からのタスクを形成するステップと
を含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項２５】
前記プロセッサは、
前記ウェブページにおける前記ウェブページ要素情報に基づいて、一定の情報が特定された場合にサブツリーが条件付きで独立したものであると予測するステップと、
前記一定の情報を取得するためのタスクを実行するステップと、
前記取得された一定の情報を使用して、DOMツリーの前記条件付き独立部分からのタスクを実行するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項２６】
前記プロセッサは、前記一定の情報を取得するためのタスクを実行するステップが、前記一定の情報を迅速に計算するステップを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項25に記載のコンピューティングデバイス。
【請求項２７】
前記プロセッサは、前記一定の情報を取得するためのタスクを実行するステップが、推測に基づいて前記一定の情報を特定するステップを含むような動作を実行するためのプロセッサ実行可能命令で構成される、請求項25に記載のコンピューティングデバイス。
【請求項２８】
前記プロセッサは、ウェブページ要素のレイアウトサイズ、位置、CSSスタイル属性、サブツリーのサイズ、HTMLタグ、親のHTMLタグ、およびウェブページ特徴情報のうちの少なくとも1つを含むウェブページ要素情報を収集するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項２９】
前記プロセッサは、前記予測サブツリー独立性を使用して、前記ウェブページのDOMツリーのサブツリーが独立しておらず、前記サブツリーを同時に処理することはできないと判断するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３０】
前記プロセッサは、単一のウェブブラウザを使用して、前記機械学習分析を実行し、サブツリー独立性を予測して、前記ウェブページの部分を同時に処理するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３１】
前記プロセッサは、
複数の更新されたウェブページを処理することによって前記分類子を更新するステップと、
更新されたウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性の追加のパターンを識別するように機械学習分析を実行するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３２】
前記プロセッサは、複数のウェブページを処理し、ウェブページ要素情報を収集するステップが、前記コンピューティングデバイスで動作するインストゥルメントブラウザにおいて実現されるような動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３３】
前記プロセッサは、ウェブページスクリプトにおける前記ウェブページ要素情報に基づいてサブツリー独立性を予測するステップが前記分類子によって実行されるような動作を実行するためのプロセッサ実行可能命令で構成され、前記分類子がスケジューリングアルゴリズムにサブツリー独立性データを提供する、請求項23に記載のコンピューティングデバイス。
【請求項３４】
前記プロセッサは、前記スケジューリングアルゴリズムが前記予測サブツリー独立性を使用して、前記ウェブページの部分を同時に処理するような動作を実行するためのプロセッサ実行可能命令で構成される、請求項33に記載のコンピューティングデバイス。
【請求項３５】
前記プロセッサは、前記収集されたウェブページ要素情報に対して、所定のスタイルシート言語コーディングにおけるプレゼンテーションセマンティクスと相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３６】
前記プロセッサは、前記予測サブツリー独立性を使用して、DOMツリーの第1の独立サブツリーを、前記DOMツリーの第2の従属サブツリーをレンダリングする前にレンダリングするステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３７】
前記プロセッサは、
連続的にインターネットからの複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を連続的に実行するステップと、
ウェブページスクリプトにおける要素情報および前記識別されたパターンに基づいてサブツリー独立性を予測するように前記分類子を更新するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３８】
前記プロセッサは、
第1のウェブページセットを処理し、前記第1のウェブページセットに関連するウェブページ要素情報を収集し、前記収集されたウェブページ要素情報に対して、第1のパターンセットを識別するように機械学習分析を実行するステップと、
前記第1のウェブページセットの前記予測サブツリー独立性に関連する前記第1のパターンセットを使用して、レンダリングされる部分を同時に処理するステップと、
連続的に追加のウェブページ要素情報を収集し、前記第1のパターンセットを補完する追加のパターンを識別するように機械分析を実行することによって、前記第1のパターンセットを動的に連続的に更新するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項３９】
前記プロセッサは、第2のウェブページセットを処理し、ウェブページ要素情報を収集して第2のパターンセットを識別し、前記第2のパターンセットを使用して前記第1のパターンセットを更新するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項38に記載のコンピューティングデバイス。
【請求項４０】
前記プロセッサは、前記収集されたウェブページ要素情報に対して、HTMLコーディングにおけるウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成される、請求項23に記載のコンピューティングデバイス。
【請求項４１】
HTMLコーディングは、並列処理能力を示すDOMツリーの第1のサブツリーを含み、HTMLコーディングはまた、第2のサブツリーの前記並列処理能力について沈黙している前記第2のサブツリーを含み、前記分類子は、ウェブページスクリプトにおける要素情報に基づいて、ウェブページ要素の前記第2のサブツリーのサブツリー独立性を予測する、請求項40に記載のコンピューティングデバイス。
【請求項４２】
通信ネットワークに相互接続されたネットワークインターフェースと、
内部メモリと、
前記ネットワークインターフェースおよび前記内部メモリに結合されたプロセッサとを含み、前記プロセッサは、
前記通信ネットワークに接続された少なくとも1つのコンピューティングデバイスからウェブページ要素情報を受信するステップであって、前記ウェブページ要素情報が前記少なくとも1つのコンピューティングデバイスによって、複数のウェブページを処理している間に収集される、ステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップと、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する情報を前記少なくとも1つのコンピューティングデバイスに対して特定のフォーマットで送信するステップであって、前記フォーマットは、前記少なくとも1つのコンピューティングデバイスがウェブページにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングすること、および予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理することを可能にするものであるステップと、
を含む動作を実行するためのプロセッサ実行可能命令で構成される、サーバ。
【請求項４３】
通信ネットワークに結合された複数のコンピューティングデバイスと、
前記通信ネットワークに結合されたサーバと
を含み、
前記複数のコンピューティングデバイスはそれぞれ、
複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報を前記サーバに送信するステップと
を含む動作を実行するように構成されたプロセッサを含み、
前記サーバは、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップと、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する情報を前記複数のコンピューティングデバイスに送信するステップと
を含む動作を実行するように構成されたプロセッサを含み、
前記複数のコンピューティングデバイスの各々の前記プロセッサは、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する前記情報を前記サーバから受信するステップと、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する前記情報を使用して、ウェブページにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップと、
予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップと
を含む動作を実行するようにさらに構成される、通信システム。
【請求項４４】
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、前記サーバにおいて総合ウェブページ要素情報を生成するステップを含む、請求項43に記載の通信システム。
【請求項４５】
ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップは、前記受信された総合ウェブページ要素情報に対して実行された機械学習分析に基づいてサブツリー独立性を予測するように、前記複数のコンピューティングデバイスにおいて動作する分類子をトレーニングするステップを含む、
請求項43に記載の通信システム。
【請求項４６】
複数のウェブページを処理し、ウェブページ要素情報を収集するための手段と、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するための手段と、
前記収集したウェブページにおける要素情報に対して行った前記機械学習分析に基づいてサブツリー独立性を予測するための手段と、
予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するための手段と
を含むコンピューティングデバイス。
【請求項４７】
前記予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するための手段は、
前記ウェブページにおける前記ウェブページ要素情報に基づいてサブツリーがアプリオリに独立していると予測するための手段と、
DOMツリーのアプリオリ独立部分からのタスクを形成するための手段と
を含む、請求項46に記載のコンピューティングデバイス。
【請求項４８】
前記ウェブページにおける前記ウェブページ要素情報に基づいて、一定の情報が特定された場合にサブツリーが条件付きで独立したものであると予測するための手段と、
前記一定の情報を取得するためのタスクを実行するための手段と、
前記取得された一定の情報を使用して、DOMツリーの前記条件付き独立部分からのタスクを実行するための手段と
をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項４９】
前記一定の情報を取得するためのタスクを実行するための手段は、前記一定の情報を迅速に計算するための手段を含む、請求項48に記載のコンピューティングデバイス。
【請求項５０】
前記一定の情報を取得するためのタスクを実行するための手段は、推測に基づいて前記一定の情報を特定するための手段を含む、請求項48に記載のコンピューティングデバイス。
【請求項５１】
ウェブページ要素のレイアウトサイズ、位置、CSSスタイル属性、サブツリーのサイズ、HTMLタグ、親のHTMLタグ、およびウェブページ特徴情報のうちの少なくとも1つを含むウェブページ要素情報を収集するための手段をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項５２】
前記予測サブツリー独立性を使用して、前記ウェブページのDOMツリーのサブツリーが独立しておらず、前記サブツリーを同時に処理することはできないと判断するための手段をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項５３】
単一のウェブブラウザを使用して、前記機械学習分析を実行し、サブツリー独立性を予測して、前記ウェブページの部分を同時に処理するための手段をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項５４】
分類子を更新するための手段をさらに含み、前記分類子を更新するための前記手段は、
複数の更新されたウェブページを処理するための手段と、
更新されたウェブページ要素情報を収集するための手段と、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性の追加のパターンを識別するように機械学習分析を実行するための手段と
を含む、請求項46に記載のコンピューティングデバイス。
【請求項５５】
複数のウェブページを処理し、ウェブページ要素情報を収集するための手段は、前記コンピューティングデバイスで動作するインストゥルメントブラウザを使用するための手段を含む、請求項46に記載のコンピューティングデバイス。
【請求項５６】
スケジューリングアルゴリズムにサブツリー独立性データを提供するための手段をさらに含み、サブツリー独立性データを提供するための前記手段は、ウェブページスクリプトにおける前記ウェブページ要素情報に基づいてサブツリー独立性を予測するための手段を含む、請求項46に記載のコンピューティングデバイス。
【請求項５７】
前記スケジューリングアルゴリズムが前記予測サブツリー独立性を使用して、前記ウェブページの部分を同時に処理する、請求項56に記載のコンピューティングデバイス。
【請求項５８】
前記収集されたウェブページ要素情報に対して、所定のスタイルシート言語コーディングにおけるプレゼンテーションセマンティクスと相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するための手段をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項５９】
前記予測サブツリー独立性を使用して、DOMツリーの第1の独立サブツリーを、前記DOMツリーの第2の従属サブツリーをレンダリングする前にレンダリングするための手段をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項６０】
連続的にインターネットからの複数のウェブページを処理し、ウェブページ要素情報を収集するための手段と、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を連続的に実行するための手段と、
ウェブページスクリプトにおける要素情報および前記識別されたパターンに基づいてサブツリー独立性を予測するように分類子を更新するための手段と
をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項６１】
第1のウェブページセットを処理し、前記第1のウェブページセットに関連するウェブページ要素情報を収集し、前記収集されたウェブページ要素情報に対して、第1のパターンセットを識別するように機械学習分析を実行するための手段と、
前記第1のウェブページセットの前記予測サブツリー独立性に関連する前記第1のパターンセットを使用して、レンダリングされる部分を同時に処理するための手段と、
連続的に追加のウェブページ要素情報を収集し、前記第1のパターンセットを補完する追加のパターンを識別するように機械分析を実行することによって、前記第1のパターンセットを動的に連続的に更新するための手段と
をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項６２】
第2のウェブページセットを処理し、ウェブページ要素情報を収集して第2のパターンセットを識別し、前記第2のパターンセットを使用して前記第1のパターンセットを更新するための手段をさらに含む、請求項61に記載のコンピューティングデバイス。
【請求項６３】
前記収集されたウェブページ要素情報に対して、HTMLコーディングにおけるウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するための手段をさらに含む、請求項46に記載のコンピューティングデバイス。
【請求項６４】
HTMLコーディングは、並列処理能力を示すDOMツリーの第1のサブツリーを含み、HTMLコーディングはまた、第2のサブツリーの前記並列処理能力について沈黙している前記第2のサブツリーを含み、分類子は、ウェブページスクリプトにおける要素情報に基づいて、ウェブページ要素の前記第2のサブツリーのサブツリー独立性を予測する、請求項63に記載のコンピューティングデバイス。
【請求項６５】
通信ネットワークに接続された少なくとも1つのコンピューティングデバイスからウェブページ要素情報を受信するための手段であって、前記ウェブページ要素情報が前記少なくとも1つのコンピューティングデバイスによって、複数のウェブページを処理している間に収集される、手段と、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するための手段と、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する情報を前記少なくとも1つのコンピューティングデバイスに対して特定のフォーマットで送信するステップであって、前記フォーマットは、前記少なくとも1つのコンピューティングデバイスがウェブページにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングすること、および予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するものである手段と
を含むサーバ。
【請求項６６】
ウェブページを受信し、レンダリングするための通信システムであって、
通信ネットワークに結合された複数のコンピューティングデバイスと、
前記通信ネットワークに結合されたサーバと
を含み、
前記複数のコンピューティングデバイスはそれぞれ、
複数のウェブページを処理し、ウェブページ要素情報を収集するための手段と、
前記収集されたウェブページ要素情報を前記サーバに送信するための手段と
を含み、
前記サーバは、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するための手段と、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する情報を前記複数のコンピューティングデバイスに送信するための手段と
を含み、
前記複数のコンピューティングデバイスはさらに、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する前記情報を前記サーバから受信するための手段と、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する前記情報を使用して、ウェブページにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするための手段と、
予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するための手段と
を含む、通信システム。
【請求項６７】
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するための手段は、前記サーバにおいて総合ウェブページ要素情報を生成するための手段を含む、請求項66に記載の通信システム。
【請求項６８】
ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするための手段は、前記受信された総合ウェブページ要素情報に対して実行された機械学習分析に基づいてサブツリー独立性を予測するように、前記複数のコンピューティングデバイスにおいて動作する分類子をトレーニングするための手段を含む、請求項66に記載の通信システム。
【請求項６９】
プロセッサに、
複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップと、
前記収集したウェブページにおける要素情報に対して行った前記機械学習分析に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップと、
予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップと
を含む動作を実行させるように構成されたプロセッサ実行可能命令が記憶されているコンピュータ可読記憶媒体。
【請求項７０】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、前記予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップが、
前記ウェブページにおける前記ウェブページ要素情報に基づいてサブツリーがアプリオリに独立していると予測するステップと、
DOMツリーのアプリオリ独立部分からのタスクを形成するステップと
を含むような動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項７１】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、
前記ウェブページにおける前記ウェブページ要素情報に基づいて、一定の情報が特定された場合にサブツリーが条件付きで独立したものであると予測するステップと、
前記一定の情報を取得するためのタスクを実行するステップと、
前記取得された一定の情報を使用して、DOMツリーの前記条件付き独立部分からのタスクを実行するステップと
をさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項７２】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、前記一定の情報を取得するためのタスクを実行するステップが、前記一定の情報を迅速に計算するステップを含むような動作を実行させるように構成される、請求項71に記載のコンピュータ可読記憶媒体。
【請求項７３】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、前記一定の情報を取得するためのタスクを実行するステップが、推測に基づいて前記一定の情報を特定するステップを含むような動作を実行させるように構成される、請求項71に記載のコンピュータ可読記憶媒体。
【請求項７４】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、ウェブページ要素のレイアウトサイズ、位置、CSSスタイル属性、サブツリーのサイズ、HTMLタグ、親のHTMLタグ、およびウェブページ特徴情報のうちの少なくとも1つを含むウェブページ要素情報を収集するステップをさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項７５】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、前記予測サブツリー独立性を使用して、前記ウェブページのDOMツリーのサブツリーが独立しておらず、前記サブツリーを同時に処理することはできないと判断するステップをさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項７６】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、単一のウェブブラウザを使用して、前記機械学習分析を実行し、サブツリー独立性を予測して、前記ウェブページの部分を同時に処理するステップをさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項７７】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、複数の更新されたウェブページを処理することによって前記分類子を更新するステップと、更新されたウェブページ要素情報を収集するステップと、前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性の追加のパターンを識別するように機械学習分析を実行するステップとをさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項７８】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、複数のウェブページを処理し、ウェブページ要素情報を収集するステップが、コンピューティングデバイスで動作するインストゥルメントブラウザにおいて実現されるような動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項７９】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、ウェブページスクリプトにおける前記ウェブページ要素情報に基づいてサブツリー独立性を予測するステップが前記分類子によって実行されるような動作を実行させるように構成され、前記分類子がスケジューリングアルゴリズムにサブツリー独立性データを提供する、請求項69に記載のコンピュータ可読記憶媒体。
【請求項８０】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、スケジューリングアルゴリズムが前記予測サブツリー独立性を使用して、前記ウェブページの部分を同時に処理するような動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項８１】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、前記収集されたウェブページ要素情報に対して、所定のスタイルシート言語コーディングにおけるプレゼンテーションセマンティクスと相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項８２】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、前記予測サブツリー独立性を使用して、DOMツリーの第1の独立サブツリーを、前記DOMツリーの第2の従属サブツリーをレンダリングする前にレンダリングするステップをさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項８３】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、
連続的にインターネットからの複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を連続的に実行するステップと、
ウェブページスクリプトにおける要素情報および前記識別されたパターンに基づいてサブツリー独立性を予測するように前記分類子を更新するステップと
をさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項８４】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、
第1のウェブページセットを処理し、前記第1のウェブページセットに関連するウェブページ要素情報を収集し、前記収集されたウェブページ要素情報に対して、第1のパターンセットを識別するように機械学習分析を実行するステップと、
前記第1のウェブページセットの前記予測サブツリー独立性に関連する前記第1のパターンセットを使用して、レンダリングされる部分を同時に処理するステップと、
連続的に追加のウェブページ要素情報を収集し、前記第1のパターンセットを補完する追加のパターンを識別するように機械分析を実行することによって、前記第1のパターンセットを動的に連続的に更新するステップと
をさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項８５】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、第2のウェブページセットを処理し、ウェブページ要素情報を収集して第2のパターンセットを識別し、前記第2のパターンセットを使用して前記第1のパターンセットを更新するステップをさらに含む動作を実行させるように構成される、請求項84に記載のコンピュータ可読記憶媒体。
【請求項８６】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、前記収集されたウェブページ要素情報に対して、HTMLコーディングにおけるウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含む動作を実行させるように構成される、請求項69に記載のコンピュータ可読記憶媒体。
【請求項８７】
前記記憶されているプロセッサ実行可能命令は、プロセッサに、HTMLコーディングが、並列処理能力を示すDOMツリーの第1のサブツリーを含むような動作を実行させるように構成され、HTMLコーディングはまた、第2のサブツリーの前記並列処理能力について沈黙している前記第2のサブツリーを含み、前記分類子は、ウェブページスクリプトにおける要素情報に基づいて、ウェブページ要素の前記第2のサブツリーのサブツリー独立性を予測する、請求項86に記載のコンピュータ可読記憶媒体。
【請求項８８】
ネットワークに結合されたプロセッササーバに、
通信ネットワークに接続された複数のコンピューティングデバイスからウェブページ要素情報を受信するステップであって、前記ウェブページ要素情報が前記複数のコンピューティングデバイスによって、複数のウェブページを処理している間に収集される、ステップと、
前記収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップと、
ウェブページ要素情報と相関するレイアウト独立性の識別されたパターンに関する情報を少なくとも1つのコンピューティングデバイスに対して特定のフォーマットで送信するステップであって、前記フォーマットは、前記少なくとも1つのコンピューティングデバイスがウェブページにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングすること、および予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理することを可能にするものであるステップと
を含む動作を実行させるように構成されたプロセッサ実行可能命令が記憶されているコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、その内容全体が参照により本明細書に組み込まれる、2011年3月15日に出願した米国仮特許出願第61/452,694号、名称「Machine Learning Method to Identify Independent Tasks for Parallel Layout in Web Browsers」の優先権を主張する。
【０００２】
以下の説明は、一般的にコンピューティングデバイス通信に関し、より詳細には、ウェブページをレンダリングするための装置および方法に関する。
【背景技術】
【０００３】
コンピューティングデバイス上でのウェブベージなどのページのレンダリングは、ページのドキュメントオブジェクトモデル(DOM)ツリーを生成することを含む。DOMツリーは、親子関係にある1つまたは複数のノードを、それぞれのDOMノードの特性および/または属性ならびにウェブページのスタイル属性を含め、定義する。あるページが起動すると、そのページの.htmlファイルがネットワークから、またはローカルディスクキャッシュから読み取られ、解析され、DOMツリーが構築される。次いで、内蔵されているか、または外部にあるカスケーディングスタイルシート(CSS)が適用されて、DOMツリー内の各ノードのスタイルが計算され得る。ツリーの「スタイルが作られる」と、レイアウトアルゴリズムが作動して、スクリーン上のすべてのDOM要素の位置およびサイズを計算する。この情報により、ブラウザはページを表示することができる。これらの動作はページがロードされるたびに実行され得るが、その場合には相当な時間を要し、結果的にユーザエクスペリエンスは満足とは言えないものになる。
【０００４】
その上、モバイルコンピューティングデバイス、たとえば、モバイル電話、携帯情報端末(PDA)または他の比較的小さい、非モバイルコンピューティングデバイスと比較して処理能力、メモリおよび/もしくは通信スループットが比較的限定されているポータブルデバイスなどのリソース制約のある環境では、この時間量の問題が悪化する。したがって、ユーザエクスペリエンスは、モバイルコンピューティングデバイスの場合には一層悪化する。
【発明の概要】
【課題を解決するための手段】
【０００５】
以下で、1つまたは複数の態様の基本的理解を与えるために、そのような態様の簡略化された概要を提示する。この概要は、すべての企図された態様の包括的な概観ではなく、すべての態様の主要または重要な要素を識別するものでも、いずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示するより詳細な説明の導入として、1つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
【０００６】
一態様は、ウェブページを処理し、ウェブページ要素情報を収集するステップを含むウェブページのレンダリングを加速させるための方法に関する。本方法は、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行する。本方法は、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングし、本方法は、予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理し、ウェブページをレンダリングする。別の態様では、サブツリーは条件付きで独立していることがある。その場合、条件付き独立サブツリーは、サブツリーを独立したものにするデータを推測することによって、またはサブツリーを独立したものにする一定の情報を取得するためのタスクを実行することによって、独立したものになり得る。
【０００７】
別の態様では、(1つもしくは複数のコンピューティングデバイスにおいて、または非一時的記憶媒体に記憶されている実行可能命令において実施され得る)一方法は、複数のウェブページを処理し、ウェブページ要素情報を収集する動作と、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行する動作と、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングする動作と、予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理する動作とを含む。一態様では、予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理する動作は、ウェブページスクリプトにおけるウェブページ要素情報に基づいてサブツリーがアプリオリに独立していると予測するステップと、DOMツリーのアプリオリ独立部分からのタスクを形成するステップとを含むことができる。本態様方法は、ウェブページスクリプトにおける要素情報に基づいて、一定の情報が特定された場合にサブツリーが条件付きで独立したものであると予測するステップと、一定の情報を取得するためのタスクを実行するステップと、取得された一定の情報を使用して、DOMツリーの条件付き独立部分からのタスクを形成するステップとをさらに含むことができる。一態様では、一定の情報を取得するためのタスクを実行するステップは、一定の情報を迅速に計算するステップ、および/または推測に基づいて一定の情報を特定するステップを含むことができる。本態様方法は、インストゥルメントブラウザ(instrumented browser)を使用してウェブページ要素情報を収集するステップと、ウェブページ要素のレイアウトサイズ、位置、CSSスタイル属性、サブツリーのサイズ、HTMLタグ、親のHTMLタグ、およびウェブページ特徴情報のうちの少なくとも1つを含むウェブページ要素情報を収集するステップとをさらに含むことができる。本態様方法は、予測サブツリー独立性を使用して、ウェブページのDOMツリーのサブツリーが独立していないと判断し、サブツリーを同時に処理することはできないと判断するステップ、および/または単一のウェブブラウザを使用して機械学習分析を実行し、サブツリー独立性を予測してウェブページの部分を同時に処理するステップをさらに含むことができる。本態様方法は、第1のコンピューティングデバイスにおいて第1のプロセッサを使用して、機械学習分析を実行するステップと、第2の異なるコンピューティングデバイスにおいて第2のプロセッサを使用して、サブツリー独立性を予測してウェブページの部分を同時に処理するステップとをさらに含むことができる。本態様方法は、複数の更新されたウェブページを処理することによって分類子を更新するステップと、更新されたウェブページ要素情報を収集するステップと、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性の追加のパターンを識別するように機械学習分析を実行するステップとをさらに含むことができる。本態様方法は、第1の時間間隔でウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分���子をトレーニングするステップと、第2の異なる時間間隔で予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップとをさらに含むことができる。
【０００８】
さらなる態様では、上記の方法は、単一のコンピューティングデバイス内で実施可能であり、複数のウェブページを処理し、ウェブページ要素情報を収集するステップが、単一のコンピューティングデバイス上で動作するインストゥルメントブラウザにおいて実現され、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップが、同じコンピューティングデバイスにおいて実現される。
【０００９】
さらなる態様では、上記の方法は、コンピューティングデバイスおよびサーバのネットワークにおいて実施可能であり、複数のウェブページを処理し、ウェブページ要素情報を収集するステップが、複数のコンピューティングデバイスにおいて複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、収集されたウェブページ情報を複数のコンピューティングデバイスの各々からサーバに送信するステップと、複数のコンピューティングデバイスによって送信されたウェブページ情報をサーバにおいて受信し総合して、総合ウェブページ要素情報を生成するステップと、複数のコンピューティングデバイスのうちの少なくとも1つに総合ウェブページ要素情報を送信するステップと、送信された総合ウェブページ要素情報を複数のコンピューティングデバイスのうちの少なくとも1つにおいて受信するステップとを含む。さらにこの態様では、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、複数のコンピューティングデバイスのうちの少なくとも1つにおいて、受信された総合ウェブページ要素情報に対して実現され、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップは、受信された総合ウェブページ要素情報に対して実行された機械学習分析に基づいてサブツリー独立性を予測するように、複数のコンピューティングデバイスのうちの少なくとも1つにおいて動作する分類子をトレーニングするステップを含む。
【００１０】
さらなる態様では、上記の方法は、コンピューティングデバイスおよびサーバのネットワークにおいて実施可能であり、複数のウェブページを処理し、ウェブページ要素情報を収集するステップが、複数のコンピューティングデバイスにおいて複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、収集されたウェブページ情報を(たとえば、インターネット経由で)複数のコンピューティングデバイスの各々からサーバに送信するステップと、複数のコンピューティングデバイスによって送信されたウェブページ情報をサーバにおいて受信して、総合ウェブページ要素情報を生成するステップとを含むことができる。この態様では、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、サーバにおいて、複数のコンピューティングデバイスによって送信された受信ウェブページ情報に対して、レイアウト独立性のパターンを識別するように実現可能であり、本方法は、レイアウト独立性の識別されたパターンを(たとえば、インターネット経由で)サーバから複数のコンピューティングデバイスのうちの少なくとも1つに送信するステップと、レイアウト独立性の識別されたパターンを複数のコンピューティングデバイスのうちの少なくとも1つにおいて受信するステップとをさらに含むことができる。さらに、この態様では、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップは、レイアウト独立性の受信された識別されたパターンに基づいてサブツリー独立性を予測するように、複数のコンピューティングデバイスのうちの少なくとも1つにおいて動作する分類子をトレーニングするステップを含むことができる。
【００１１】
さらなる態様では、上記の方法は、所定のブラウザに固有の複数のウェブページを処理し、所定のブラウザ上にレンダリングされるウェブページに固有のウェブページ要素情報を収集するステップと、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップであって、所定のブラウザ上にレンダリングされるウェブページにパターンが対応する、ステップと、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップと、予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するステップであって、所定のブラウザを使用してウェブページがレンダリングされる、ステップとをさらに含むことができる。さらなる態様では、上記の方法は、分類子においてウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するステップであって、分類子がスケジューリングアルゴリズムにサブツリー独立性データを提供する、ステップをさらに含むことができる。さらなる態様では、上記の方法は、スケジューリングアルゴリズムが予測サブツリー独立性を使用して、ウェブページの部分を同時に処理するステップと、収集されたウェブページ要素情報に対して、所定のスタイルシート言語コーディングにおけるプレゼンテーションセマンティクスと相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップとをさらに含むことができる。さらなる態様では、上記の方法は、収集されたウェブページ要素情報に対して、CSSコーディングにおけるウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含むことができる。さらなる態様では、上記の方法は、予測サブツリー独立性を使用して、DOMツリーの第1の独立サブツリーを、DOMツリーの第2の従属サブツリーをレンダリングする前にレンダリングするステップをさらに含むことができる。さらなる態様では、上記の方法は、入力としてのノード特徴および出力としてのレイアウト独立性を含むデータセットに対して分類子をトレーニングするステップをさらに含むことができる。さらなる態様では、上記の方法は、連続的にインターネットからの複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を連続的に実行するステップと、ウェブページスクリプトにおける要素情報および識別されたパターンに基づいてサブツリー独立性を予測するように分類子を更新するステップとをさらに含むことができる。
【００１２】
さらなる態様では、上記の方法は、第1のウェブページセットを処理し、第1のウェブページセットに関連するウェブページ要素情報を収集し、収集されたウェブページ要素情報に対して、第1のパターンセットを識別するように機械学習分析を実行するステップと、第1のウェブページセットの予測サブツリー独立性に関連する第1のパターンセットを使用して、レンダリングされる部分を同時に処理するステップと、第1のパターンセットを動的に、連続的に追加のウェブページ要素情報を収集し、第1のパターンセットを補完する追加のパターンを識別するように機械分析を実行することによって、連続的に更新するステップとをさらに含むことができる。この態様は、第2のウェブページセットを処理し、ウェブページ要素情報を収集して第2のパターンセットを識別し、第2のパターンセットを使用して第1のパターンセットを更新するステップをさらに含むことができる。
【００１３】
さらなる態様では、上記の方法は、収集されたウェブページ要素情報に対して、HTMLコーディングにおけるウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップをさらに含むことができ、この場合にHTMLコーディングは、並列処理能力を示すDOMツリーの第1のサブツリーを含み、HTMLコーディングはまた、第2のサブツリーの並列処理能力について沈黙している第2のサブツリーを含み、分類子は、ウェブページスクリプトにおける要素情報に基づいて、ウェブページ要素の第2のサブツリーのサブツリー独立性を予測する。
【００１４】
別の態様は、上記の方法を使用してウェブページのレンダリングを加速させるためのコンピューティングデバイスに関する。本コンピューティングデバイスは、メモリおよびメモリに結合されたプロセッサを含む。本プロセッサは、複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップとを含む動作を実行するためのプロセッサ実行可能命令で構成され得る。分類子が、ウェブページスクリプトにおけるウェブページ要素情報に基づいてサブツリー独立性を予測するようにトレーニングされ得る。予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理することができる。
【００１５】
さらに別の態様は、上記の方法の動作を実現するための手段を含むコンピューティングデバイスに関し、かかる手段は、複数のウェブページを処理するための手段と、ウェブページ要素情報を収集するための手段と、収集されたウェブページ要素情報に対して、レイアウト独立性のパターンを識別するように機械学習分析を実行するための手段とを含む。パターンは、ウェブページ要素情報と相関し得る。本コンピューティングデバイスは、ウェブページスクリプトにおけるウェブページ要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするための手段と、予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理するための手段とを有する。
【００１６】
また別の態様は、コンピューティングデバイスのプロセッサに上記の方法の動作を実行させるように構成されたプロセッサ実行可能命令が記憶されている非一時的コンピュータ可読記憶媒体に関する。
【００１７】
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な態様を示す。上記の概略的な説明および下記の発明を実施するための形態とともに、図面は、開示する態様を限定するのではなく、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１８】
【図１Ａ】DOMツリーの概略図である。
【図１Ｂ】DOMツリーの概略図である。
【図２】一態様によるウェブページを受信しレンダリングするための通信システムの機能ブロック図である。
【図３】一態様とともに使用するのに好適なコンピューティングデバイスの機能ブロック図である。
【図４】ページをレンダリングするための一態様方法のプロセスフロー図である。
【図５】ウェブコンテンツを受信して、同時に処理され得るサブツリーを判断するのに有用なウェブコンテンツのパターンを認識するための一態様方法のプロセスフロー図である。
【図６】同時に処理され得るサブツリーを判断するのに有用なパターンを認識し、パターンを参照してDOMサブツリーを同時に処理し、ウェブページをレンダリングするための一態様方法のプロセスフロー図である。
【図７】一定の情報が推論される場合にDOMツリーのサブツリーが独立したものであり得るかどうかを判断するための一態様方法のプロセスフロー図である。
【図８】ページをレンダリングするための一態様装置のブロック図である。
【図９】DOMツリーを分析し、機械学習パターンを参照して、DOMツリーのいくつかのサブツリーがブラウザの第1の実行および/またはウェブページの第1の発生により同時に処理され得るかどうかを判断するための一態様方法のプロセスフロー図である。
【図１０】DOMツリーを分析し、一定の機械学習パターンを参照して、DOMツリーのいくつかのサブツリーが独立しているかどうか、またウェブブラウザ実行により同時に処理され得るかどうかを判断するための一態様方法のプロセスフロー図である。
【図１１】DOMツリーを分析し、一定の機械学習パターンを参照して、DOMツリーのいくつかのサブツリーが独立しているかどうか、また同時に処理され得るかどうか、あるいは一定の情報が供給、計算または推論された場合に処理され得るかどうかを判断し、機械トレーニングされた分類子が周期的に更新され得るかどうかを判断するための別の態様方法のプロセスフロー図である。
【図１２】サーバにおいて機械学習アルゴリズムによりウェブページ処理データを処理して、ウェブブラウザをトレーニングするのに使用され得るパターンおよびトレーニングデータを識別するための一態様方法のプロセスフロー図である。
【図１３】様々な態様とともに使用するのに好適な例示的な受信機デバイスの構成要素ブロック図である。
【図１４】様々な態様とともに使用するのに好適な例示的なサーバの構成要素ブロック図である。
【発明を実施するための形態】
【００１９】
様々な態様が、添付の図面を参照して詳細に説明される。可能な場合はいつでも、同じまたは同様の部分を指すのに、図面全体にわたって同じ参照番号を使用する。具体的な例および実装形態への言及は、説明を目的とし、本発明の範囲または本特許請求の範囲を限定するものではない。
【００２０】
「例示的」という語は、「例、実例、または具体例としての役割を果たすこと」を意味するように本明細書において用いられている。本明細書に「例示的」と記載されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
【００２１】
本明細書で使用する「コンピューティングデバイス」および「モバイルコンピューティングデバイス」という用語は、セルラー電話、パーソナルテレビジョン受信機、携帯情報端末(PDA)、パームトップコンピュータ、ノートブックコンピュータ、パーソナルコンピュータ、ワイヤレス電子メール受信機およびセルラー電話受信機(たとえば、Blackberry(登録商標)およびTreo(登録商標)デバイス)、マルチメディアインターネット対応セルラー電話(たとえば、Blackberry Storm(登録商標))、ならびにプログラマブルプロセッサ、メモリ、およびディスプレイを含む類似の電子デバイスのうちのいずれか1つまたはすべてを指す。
【００２２】
本出願で使用される場合、「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなど、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してよく、1つの構成要素を1つのコンピュータに局在化すること、および/または2つ以上のコンピュータ間に分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。これらの構成要素は、信号によって、ローカルシステム、分散システム内の別の構成要素と対話し、かつ/またはインターネットなどのネットワークを介して他のシステムと対話する1つの構成要素からのデータのような1つまたは複数のデータパケットを有する信号に従うことなどによって、ローカルプロセスおよび/またはリモートプロセスによって通信し得る。
【００２３】
説明する態様は、ウェブリソースおよびデータ項目を有するウェブページなどの情報の表示ページをフェッチしレンダリングすることに関する。加えて、説明する態様は、ウェブページ間を移行するバーチャル効果をもたらし、たとえば、ユーザがウェブページ間で先に進んだり前に戻ったりするためのリンクを提供する。ウェブベージは、本明細書ではDOMツリーと呼ぶ、対応するドキュメントオブジェクトモデル(DOM)に従ってレンダリングされ、このDOMツリーは、構成要素、相対的構造、関係、およびページを定義するそれぞれの構成要素の行動を識別するためのウェブページのレンダリングの一環として生成される。DOMツリーは、HTML文書、XHTML文書およびXML文書内のオブジェクトを表し、これらのオブジェクトと対話するためのクロスプラットフォームおよび言語独立型の約束(cross-platform and language-independent convention)である。図1Aに、DOMツリー1の例が示されている。DOMツリー構造1は、ノード2、3、4、5、および6のような複数のノードによって定義され、さらに、ウェブページの様々なインスタンスを表す。ノード4および5によって定義される第1のサブツリーならびにノード4および6によって定義される第2のサブツリーが示されている。
【００２４】
図1Bは、HTMLスクリプトによって定義されたウェブページに表示される様々な要素にノードがどのように対応し得るかを示すDOMツリー1の別の図を提示している。図1Bは、所望のウェブページのHTMLコードを解析するブラウザによって生成されたDOMツリー1のサンプル部分を示している。図1Bに示すように、HTMLコードを解析するとき、ブラウザはウェブページをレンダリングする過程においてヘッディングごとにDOM要素および/またはノードを作成することができる。ウェブベージ要素情報は、テキスト情報、非テキスト情報、静止画像(GIF画像、JPEG画像、PNG、SVG、Flash)、動画(アニメーションGIF、SVG、Flash、Shockwave、Java(登録商標)アプレット)、オーディオデータ(MP3、OGGなど)、ビデオデータ(WMV、RM、FLV、MPG、MOVデータ)、対話型テキスト、ボタン、対話型図、ハイパーリンク、フォーム、内部データまたは隠しデータ(コメント、リンクされているファイル、メタデータ)、図情報、スタイル情報、スクリプトおよび他のデータを含み得る。図示の例では、HTMLコードは、ヘッダセクション(たとえば、<HEAD>…</HEAD>)および本体セクション(たとえば、<BODY>…</BODY>)を含む。本体セクションは、DOMツリー1においてDivノードおよびSpanノードによって示されるように、少なくとも1つのDivセクションおよび少なくとも1つのSpanセクションを含む。また、Divセクションのパラグラフセクションによって示されるように、DivノードおよびSpanノードの各々はサブセクションを含むことができる。ページをレンダリングするための計算を実現する過程において、DOMツリー要素(たとえば、Body、Div、Paragraphなど)をトラバースして、様々なページ構成要素のプロパティおよび特性を計算することができる。たとえば、所望のページのレイアウトを計算するために、DOMツリーをトラバースして、各要素の高さ、幅、および位置の絶対値(たとえば、h=50、w=50、x=500、y=10)を抽出することができ、これらは通常、実行時間および環境要因(たとえば、ウィンドウのサイズ)に依存し、前もって判断することができない。
【００２５】
DOMツリーは、ページを識別し構成するための単純かつ効率的な仕組みを提供するページコンテンツ(データ)要素間の関係、スタイルおよびフォーマッティング情報、ならびに位置特定情報を定義する。ノードのサブツリーは独立したもの、従属したもの、あるいは一定の情報が推測もしくは計算されるか、または推論されてサブツリーが独立したものになる場合における条件付きで独立したものであり得る。
【００２６】
ウェブブラウザにおいて、レイアウト計算は、HTML仕様、ウェブ要素の他のウェブ要素に対する関係、およびカスケーディングスタイルシート(CSS)ルールに基づいて各ページ要素の位置を判断する。カスケーディングスタイルシート(CSS)は、マークアップ言語で書かれた文書の1つまたは複数のプレゼンテーションセマンティクスを説明するために使用されるスタイルシート言語である。CSSは、HTMLおよびXHTMLで書かれたウェブページのスタイルを作るために使用でき、XML文書に適用され得る。ウェブページ要素の位置を特定するためのレイアウト計算は、いくつかの現在の推定に基づくウェブページをロードする時間の15〜20%を占める。ユーザはウェブページに関して高速のロード時間を選好する。ウェブページをロードし表示するのに必要な時間量のこの漸増により、ユーザはそのようなブラウジングエクスペリエンスが嫌いになることがある。これは特に、処理能力および以前にレンダリングされたページをキャッシュするためのメモリが限定的であり得るモバイル通信デバイスでのブラウジングに当てはまる。
【００２７】
ウェブページの計算のレイアウトは、並列化を通じてウェブページの部分を同時に処理することによって速めることができる。独立サブツリーをDOMツリーの他の部分と同時に処理することによって、DOMツリー全体をより速く処理し、ウェブページをより迅速にレンダリングすることができる。ただし、この同時処理を実現するには、DOMツリーの独立セクションを識別しなければならない。DOMツリーのウェブ要素を、使用中のプログラミング言語の構文内で処理し操作することができる。DOMツリーのセクションは、レイアウト計算が同時進行できる第1のセクション(DOMツリーの第1のサブツリー)およびレイアウト計算が同時進行できない他のセクション(DOMツリーの第2のサブツリー)に集められ得る。DOMサブツリーが独立しているか、それとも従属しているかを判断することは、同時に処理できるスクリプトを定義するページの部分を識別する際の重要なステップである。
【００２８】
様々な態様は、1つまたは複数の機械学習アルゴリズムを利用して、DOMツリーのそのような独立サブツリーを識別する。独立サブツリーが識別されると、その独立サブツリーを同時に処理して、ウェブページのローディングを速めることができる。同様に、他のサブツリーは従属していることがあり、その場合には同時に処理することはできない。他のサブツリーは他の要因に基づいて独立したものになり得る。同時処理を増やすために、一態様方法を実施するプロセッサは推測に依拠し得る。そのような推測は、いくつかのサブツリーの強く結び付けられた構成要素間の従属性を事前に除去することができる。これにより、サブツリーは処理目的で独立したものになり、その結果、同時処理が可能になって、ウェブページのローディングを速めることができる。別の態様では、サブツリーを分析して、一定の取得された情報に基づいてサブツリーが条件付きで独立したものであり得ると判断することがある。
【００２９】
HTML処理のページレイアウトステップは、DOMツリーおよびDOMノードごとのCSSスタイルに基づいて、可視のページ要素に位置および寸法を割り当てる。ウェブブラウザは表示要素のDOMツリーをトラバースし、各要素を、計算されたサイズおよび当該要素の子の位置に基づいてレイアウトする。場合によっては、ウェブ要素のレイアウトは、兄弟姉妹や親など、子ではない他の要素に依存することもある。他の場合には、所与の要素のレイアウトは、当該要素の子のレイアウトのみに依存する。レイアウトが子にのみ依存する場合、並列処理の機会が存在する。そのような独立要素のサブツリーのレイアウトルーチンは、DOMツリーの残り部分のレイアウトと並列に実行され得る。
【００３０】
HTML標準は、ウェブ要素が独立レイアウトを有するいくつかのケースを定義している。たとえば、浮動型および絶対的位置特定型のウェブ要素は独立レイアウトを有し、独立して処理され得る。一方、他の場合には、独立サブツリーまたはレイアウトはDOMツリーまたはウェブ要素から明らかではないことがある。時には、いくつかのウェブ要素はそのような独立レイアウトを指定しない。
【００３１】
様々な態様は、レイアウトが独立したものであり得るウェブ要素を識別して、DOMツリーの残り部分と並列してそれらのウェブ要素を推測的に処理する。様々な態様は、タスクベースであり得る並列レイアウト計算を含む。DOMツリーの様々な部分のレイアウトは同時に計算され得る。DOMツリーのいくつかのサブツリーは、CSSおよびHTML仕様に基づいて独立したものである。
【００３２】
同時処理に際してより多くの独立サブツリーを識別するために、様々な態様は、親ノードから子ノードへのレイアウト情報フローに基づいてDOMツリーを区分するための、また強く結び付けられた構成要素を発見するための1つまたは複数の機械学習アルゴリズムを適用する。ウェブブラウザは、レイアウトステップ後、子ではない他のノードからの各要素のレイアウトの必要なサイズおよび位置情報を報告するようにインストゥルメントされ得る。インストゥルメントブラウザはまた、各ノードに関する様々な情報(「特徴」)(たとえば、そのCSSスタイル属性、サブツリーのサイズ、HTMLタグ、親のHTMLタグなど)を出力することができる。この特徴およびレイアウト独立性データは、同時処理する独立サブツリーを識別するために使用され得るパターンを認識するために、機械学習アルゴリズムが適用され得る多数の既存のウェブページについて収集され得る。
【００３３】
ウェブページデータの収集およびパターンを識別するためのそのようなデータに対する機械学習アルゴリズムの適用は、コンピューティングデバイス内において、またはウェブブラウザが情報を報告する相手であるサーバなど、集中型コンピューティングデバイス内において実現され得る。ウェブページデータがキャプチャされ、ローカルに処理される態様では、機械学習アルゴリズムの使用により、ユーザによって通常アクセスされるタイプのウェブページをコンピューティングデバイスがより効率的にレンダリングすることが可能になり得る。それによって経時的に、システムは、ユーザのインターネットアクセス習慣からパターンを学習し、その情報を使用して、ウェブページがアクセスされたときの当該ウェブページの同時処理を促進できるようにブラウザをトレーニングすることができる。
【００３４】
インターネットに結合されたサーバのように、ウェブページデータが中心的に収集され処理される態様では、多数のユーザからのウェブページレンダリングデータを分析して、広範囲のインターネットで適用可能な認識されたパターンをロードすることができる。パターンを学習するそのような機械は、開発者による現在のウェブページ開発手法を反映し得る。そのようなコミュニティベースのパターンデータにより、特定のユーザによってアクセスされるウェブページにとどまらない多種多様なウェブページに適用可能な、同時処理され得るウェブページスクリプトの部分を認識するようにウェブブラウザをトレーニングするのに使用され得るトレーニングデータの開発が可能になり得る。
【００３５】
ウェブページレンダリング情報に機械学習アルゴリズムを適用することによって取得された認識されたパターンおよびトレーニングデータを利用するために、ブラウザは、そのようなパターンのデータセットに対してトレーニングされ得るか、またはトレーニングされることになる分類子で構成され得る。この態様では、機械学習アルゴリズムによって生成され、トレーニング可能な分類子に適用されるトレーニングデータは、入力としてノード特徴を含み、出力として、独立しているサブツリー、条件付きで独立したものであり得るサブツリー、および推測的処理において独立したものとみられるサブツリーなど、レイアウト独立性に関する結論を提供することができる。ページレイアウト処理中に、トレーニングされた分類子は、機械学習されたパターンにアクセスして、そのような情報を使用して、新しいDOMツリー(すなわち、レンダリングされる新しいページ)について、DOMツリーの各サブツリーが独立してレイアウトすることができ、ひいては同時に処理され得るかどうか、またはサブツリーが独立してレイアウトすることができない従属サブツリーであるかどうかを予測することができる。
【００３６】
一態様では、トレーニングされた分類子は、サブツリーがアプリオリに独立していると正確に予測し得る。これは、ウェブページスクリプトにおけるウェブページ要素情報に基づき得る。サブツリーがアプリオリに独立していると判断されると、アルゴリズムはDOMツリーの独立部分からのタスクを形成する。
【００３７】
別の態様では、トレーニングされた分類子は、一定の情報が推論され得る場合にサブツリーが独立したものであると予測し、それにより親子の従属性を除去し得る。一定の情報が推論されると、そのサブツリーは独立サブツリーとして扱われることになり、ウェブページレンダリング中に同時に処理され得る。
【００３８】
別の態様では、トレーニングされた分類子は、一定の情報が計算によって取得され得る場合にサブツリーが独立したものであると予測し得る。アルゴリズムは、従属性を断ち切る情報を迅速に計算するためのタスクをスケジュールすることができる。タスクが完了すると、必要な情報が取得され、サブツリーを同時に処理することができ、ウェブページをレンダリングすることができる。
【００３９】
別の態様では、トレーニングされた分類子は、一定の情報を予測できる場合にサブツリーが独立したものであると予測し得る。システムは、予測独立サブツリーを推測的にスケジュールし、同時処理を可能にするためにDOMサブツリーが必要とする情報を予測することができる。推測的レイアウトタスクは、子ではないノードに対する従属性について監視し、何かが発生し、従属情報が正確に予測されない場合に、正しい情報でタスクを再始動することがある。
【００４０】
随意に、いくつかの態様では、機械学習アルゴリズムは、ウェブブラウザに統合されてよく、または代替的に、機械学習アルゴリズムは、ウェブブラウザとは別個の処理モジュールにおいて実施されてよい。別の態様では、機械学習アルゴリズムは、ウェブブラウザに固有のページに対する従属性に対してトレーニングされてよく、または代替的に、機械学習アルゴリズムは、インターネットからアクセスされるウェブページからの従属性に対してトレーニングされてよい。機械学習アルゴリズムは従属性のパターンを観察し、従属性または同時に処理され得る予想される独立サブツリーに関連するか、もしくはかかる独立サブツリーを示すDOMツリーパターンを分類することができる。この態様では、機械学習アルゴリズムは「オフライン」または「オンライン」で実施可能であり、ウェブブラウザに第1のパターンセットを提供することができる。機械学習アルゴリズムは、統合されたブラウザ内で動作することができ、または周期的に更新され得るリモートエンティティから第1のパターンセットを提供することができる。
【００４１】
機械学習アルゴリズムによって認識されたパターンは、レイアウト属性、CSS属性およびDOMツリーにおいて観察されたパターンを含むHTMLコードにおけるパターンのセットの形態であり得る。ウェブページコードにおいて認識されたパターンは、将来においては観察される可能性があって、現在においては明確に定義できないウェブページスタイルからのものであり得ることを諒解されたい。機械学習アルゴリズムは、パターンを収集し、フォーマッティングして、ウェブブラウザ内のスケジューリングアルゴリズムに提供できるようにすることができる。ウェブブラウザ内のそのようなスケジューリングアルゴリズムは、トレーニングされた分類子と連携して、認識されたパターンを利用することで、予測独立サブツリーに対応するウェブページの部分を同時に処理することができる。
【００４２】
予測サブツリー独立性を使用してウェブページの部分を同時に処理し、機械学習分析を使用してサブツリー独立性を使用してページをレンダリングすることで、ページのインスタンスをレンダリングする速度を上げることができる。このようにページをレンダリングする速度を上げることで、あるページから別のページに移行するときのユーザエクスペリエンスを改善することができ、その理由は、DOMツリーの部分はより高速に並列処理され得るので、DOMツリー全体が処理されるのをブラウザが待つ必要がないことにある。
【００４３】
図2は、ウェブサーバ16およびデータサーバ18上でホストされ、インターネットなどの通信ネットワーク17を介して通信されるウェブページをコンピュータ10がレンダリングできるようにする通信システムを示している。上述のように、機械学習アルゴリズムの態様は、ローカルコンピューティングデバイス10上または通信ネットワーク17を介してコンピューティングデバイス10に結合されたリモートサーバ60上のいずれかにおいて実施され得る。説明しやすいように、図2は両方の態様を示しており、コンピューティングデバイス10とリモートサーバ60の両方に含まれる機械学習アルゴリズムモジュールを示している。
【００４４】
図2のコンピューティングデバイス10を参照すると、コンピューティングデバイス10のプロセッサ内にモジュールとして機械学習アルゴリズムが実装されている一態様では、コンピューティングデバイス10は、ディスプレイ15上にウェブページなどのページの1つまたは複数のインスタンス13を提示することを可能にするために、コンピューティングデバイスによりプロセッサ上で作動するウェブエンジンモジュール14と対話するポータル構成要素12で構成され得る。たとえば、表示ページ13は、ウェブサーバ16および/またはデータサーバ18から通信ネットワーク17を介して取得され得る。ウェブサーバ16とデータサーバ18とは、別個の構成要素または統合された構成要素であってよく、ウェブリソース20および22とデータ項目24および26とをそれぞれ記憶し、これらは、第1のページインスタンス28および第2のページインスタンス30をそれぞれ定義する。たとえば、ウェブリソース20および22が、データで充填され得る空のページテンプレートのような、ページの静的部分を構成するのに必要な任意のものを含むことができる一方、データ項目24および26は、ページの1つまたは複数の動的部分のような、ページを充填するのに使用される任意のコンテンツを含むことができる。したがって、ウェブリソース20および22の全部または一部が、第1のページインスタンス28と第2のページインスタンス30の両方に共通であり得る一方、データ項目24および26の全部または一部は、それぞれのページインスタンスに固有であり得る。
【００４５】
コンピューティングデバイス10において、ポータル構成要素12は、ウェブエンジン14に対してページの所望のインスタンスを識別する受信要求32を、たとえばユーザ入力またはポータル構成要素12の起動に基づいて通信することができる。たとえば、受信要求32は、ユニバーサルリソースロケータ(URL)のようなウェブリソースを定義する第1の部分、およびクエリストリング36のようなフェッチする固有のデータを定義する第2の部分を含むことができる。ウェブエンジン14またはポータル構成要素12は、通信ネットワークを介してウェブサーバ16および/またはデータサーバ18に要求を送信し、ウェブサーバ16および/またはデータサーバ18は通信ネットワークを介して、所望のページ構成要素を返信する。次いで送信されたページ構成要素は、コンピューティングデバイス10内のウェブエンジン構成要素14によって受信され処理される。受信されたページのレンダリング中に、ウェブエンジン14は、当該ページのドキュメントオブジェクトモデル(DOM)38を生成する。上記で説明したように、DOM38は、それぞれのDOMノードのプロパティおよび/または属性ならびにそのスタイル属性を含め、親子関係にある1つまたは複数のノードのツリーまたは階層を定義し、それによりレンダリングが可能になる。
【００４６】
ウェブエンジン14が機械学習アルゴリズムモジュール40を含む態様では、そのモジュールは、いくつかの処理されたウェブページに関連するデータをウェブエンジン14から受信して、ウェブページ要素情報を収集する。機械学習アルゴリズム40は、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行する。機械学習アルゴリズム40は、インターネットからのデータ、または通信ネットワーク17から受信されたデータの例を利用して、重要な特性または文脈に基づくウェブページ内の独立サブツリーの基礎的な確率分布を捕捉することができる。機械学習アルゴリズム40は、観察された変数間の関係を形成し、自動的に学習して、複雑なパターンを認識し、所与の収集されたウェブページから一般化されたパターンを作成することで、有用な出力を生成できるようにする。機械学習アルゴリズムモジュール40によって認識または生成されたタイプのパターンにより、ウェブエンジン14は、受信されたウェブページスクリプトから、DOM38について、独立しているサブツリー構成要素34を識別または予測し、いくつかの機械学習された例に基づいて独立していないDOMサブツリー構成要素48を識別または予測することが可能になる。認識または生成されたタイプのパターンにより、ウェブエンジン14は、受信されたウェブページスクリプトから、DOM38について、条件付きで独立しているサブツリーを識別または予測することも可能になる。認識または生成されたタイプのパターンにより、ウェブエンジン14は、受信されたウェブページスクリプトから、DOM38について、ウェブページスクリプトにおけるウェブページ要素情報に基づいてアプリオリに独立しているサブツリーを識別または予測することも可能になる。一態様では、収集されるウェブページ要素は、特定のブラウザに固有であるか、または特定のユーザに固有であり得る。別の態様では、収集されるウェブページ要素はインターネットから導出されて、周期的に更新され得る静的パターンのセットが形成され得る。別の態様では、機械学習アルゴリズム40は、ウェブエンジン14およびコンピューティングデバイス10とは別個のものであり得る。別の態様では、機械学習アルゴリズム40は、ウェブエンジン14、ブ
ラウザ、ウェブサーバ16、データサーバ18、ウェブリソース20もしくは22またはコンピューティングデバイス10の中に組み込まれ得る。
【００４７】
別の態様では、機械学習アルゴリズムモジュールは、多数のコンピューティングデバイスからのウェブページレンダリングデータを受信できるように、通信ネットワーク17に結合されたリモートサーバ60のような、リモートコンピューティングデバイス内で実施され得る。そのような態様では、サーバは、そのようなコンピューティングデバイスからウェブページレンダリング情報を受信することを含め、通信ネットワークを介してコンピューティングデバイス10なしで通信するためのネットワーク通信モジュール62を含むことができる。サーバはまた、複雑なパターンを認識し、所与の収集されたウェブページレンダリング情報から一般化されたパターンを作成するために、受信されたウェブページレンダリング情報を処理する機械学習アルゴリズムを実施するように構成された機械学習モジュール64で構成され得る。上記で説明したように、そのようなパターンは、ウェブページスクリプトのパターンに基づいて、独立しているか、条件付きで独立しているか、または推測的に独立しているサブツリー構造を予測することに関係し得る。そのようなパターンは、コンピューティングデバイスのウェブエンジンによって使用可能なフォーマットでパターンデータベース66に記憶され得る。機械学習モジュール64は、単一のパターンデータセットを生成するために、すべてのコンピューティングデバイスから受信されたすべてのウェブページ情報のパターンデータを生成するように構成され得る。代替的に、機械学習モジュール64は、選択されたタイプのウェブページ、さらには固有のURLのパターンデータを生成するように構成され得る。サーバ60は、コンピューティングデバイス内のウェブエンジン14がページをより効率的にレンダリングできるように、そのような生成されたパターンデータを(たとえば、ネットワーク通信モジュール62を介して)通信ネットワーク17経由でコンピューティングデバイス10に通信するようにさらに構成され得る。そのようなパターンデータは、通信ネットワーク17経由でコンピューティングデバイス(たとえば、パターンデータサービスに登録または加入しているコンピューティングデバイス)に直接送信され得る。代替的に、そのようなパターンデータは、たとえば、通信ネットワーク17を閲覧するウェブサーバ16および/またはデータサーバ18に情報を送って通信することによって、ウェブページをホストする会社に提供され得る。この態様により、ウェブページをホストする会社は、ウェブブラウザがそれらのウェブページをより効率的にレンダリングできるように、たとえば、メタデータとしてパターンデータを供給することによって、それらのウェブページのパターン情報を提供することが可能になる。
【００４８】
コンピューティングデバイス10に戻ると、ウェブエンジンモジュール14は、スケジューリングアルゴリズムモジュール42を含むことができる。スケジューリングアルゴリズムモジュール42は、システムを効果的に負荷分散するように、スレッド、プロセス、またはデータフローにシステムリソースへのアクセス権を付与することを可能にし得る。代替的に、スケジューリングアルゴリズム42は、目標とするサービス品質を実現することができる。スケジューリングアルゴリズム42は好ましくは、ウェブエンジン14が、一度に2つ以上のプロセスを実行すること、およびウェブページをレンダリングするためにスクリプト記述エンジン50とレンダリングエンジン52とに対し同時に複数のデータフローを送信することを許容する。スケジューリングアルゴリズム42は好ましくは予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理する。
【００４９】
ウェブエンジンモジュール14はまた、分類子モジュール44を含むことができる。分類子モジュール44は、DOM38のサブツリー34のうちのどれが独立していて、DOM38のサブツリー48のうちのどれが従属していているかを予測するようにトレーニングされ得る。分類子モジュール44は、ウェブページスクリプトにおける要素情報を、機械学習アルゴリズムによって提供されたパターンデータのパターンと比較して、条件付きまたは無条件のいずれかで同時に処理され得るドッグトレイの部分に関する予測を行うことができる。分類子モジュール44は、DOM38からの共通の行動特徴および構造特徴を有するインスタンスのセットを記述するいくつかのプログラム命令を含むことができる。
【００５０】
上記で説明したように、DOM38は、いくつかのサブツリーを含むツリー構造を有する。分類子モジュール44は、いくつかのサブツリーを独立型34に分類し、いくつかのサブツリーを従属型48に分類するために、DOM38およびウェブページ要素情報を調べることができる。DOM38の構造に応じて、分類子モジュール44は、サブツリー34はアプリオリに独立していると予測することがあり、その場合、スクリプト記述エンジン50またはレンダリングエンジン52は、DOMツリー38のアプリオリ独立部分からのタスクを形成することができる。
【００５１】
場合によっては、分類子モジュール44はサブツリー48を、条件付きで独立していると識別することがある。そのような場合、分類子44は、ウェブページスクリプトにおける要素情報に基づいて、一定の情報が特定され得る場合にサブツリーが独立したものであると予測することができる。この特定により、ウェブエンジン14は、サブツリーを独立したものにするために必要な一定の情報を取得するためのタスクを実行することが可能になる。ウェブエンジン14が一定の情報を提供するための計算を迅速に実行することによって、DOM38の条件付き独立部分は、独立サブツリー34として処理でき、したがって、同時に処理できる。
【００５２】
場合によっては、分類子モジュール44はサブツリー48を、推測的に独立していると識別することがあり、その場合、ウェブエンジン14は、情報がサブツリーを独立したものにすると判断するように推測し得る。次いでウェブエンジン14は、このサブツリーを、同時に処理され得る独立したものにすることができる。この推測は、ウェブエンジン14を構成するソフトウェアの一部であり得るスケジューリングアルゴリズムモジュール42によって実現され得る。
【００５３】
ウェブエンジン14はまた、レンダリングエンジンモジュール52を支援し、従属サブツリー48と独立サブツリー34との並列計算を行う並列計算レイアウトエンジンモジュール39を含むことができ、これにより、ウェブページをレンダリング52する間にDOMツリー38の部分を同時に処理することができる。別の態様では、計算エンジンモジュール39はまた、ウェブページのレンダリングを支援するためにインデックスなどを参照することができる。好ましくは、計算エンジンモジュール39はDOM38のウェブ要素を使用して、使用中のプログラミング言語の構文内でウェブ要素を処理し操作する。一態様では、並列レイアウト計算エンジンモジュール39は、レンダリングエンジン52内に組み込まれ得る。
【００５４】
様々な態様は、機械学習アルゴリズムによって認識されたパターンを活用して、ウェブページのレンダリングの高速化を可能にする。これは、ウェブエンジン14が、DOM構造全体が処理されるのを待つことなく、データの塊を並列処理することによって実現され得る。これにより、ページの所望のインスタンス32に対応するDOM38の第2の部分と同時にDOM38の第1の部分をウェブエンジン14が処理することが可能になり得る。
【００５５】
加えて、コンピューティングデバイス10は、スクリプト記述機能を実行するように動作可能なスクリプト記述エンジンモジュール50で構成され得る。たとえば、ウェブエンジンモジュール14は、ページに対応するスクリプトをロードするために、スクリプト記述エンジン50と対話することができ、スクリプト記述エンジン50はこれを、対応するスクリプト機能を登録するために実行する。ウェブエンジン14から受信されたオンロードイベントに応答して、スクリプト記述エンジン50は、さらにページスクリプトを実行し、ウェブページのインスタンスに関する対応する動的データのフェッチを開始するために送信呼(send call)を生成することができる。さらに、動的データを受信した後、スクリプト記述エンジン50は、たとえば、DOMアプリケーションプログラムインターフェース(API)を介してデータを適用し、対応するDOMにデータを書き込むことができる。
【００５６】
加えて、コンピューティングデバイス10は、ウェブエンジン14と対話するレンダリングエンジン52を含むことができる。たとえば、ウェブエンジン14からの要求に応答して、レンダリングエンジン52は、1つもしくは複数の独立DOMサブツリー部分34に対応するそれぞれのページの1つもしくは複数の部分、および/または1つもしくは複数の従属DOMサブツリー部分48に対応するそれぞれのページの1つもしくは複数の部分を、ページのそれぞれのインスタンスにつきペイントすることができる。さらに、レンダリングエンジン52はディスプレイ15と対話して、ページのペイントされた部分を提示し、それによりページのそれぞれのインスタンスを提示することができる。
【００５７】
このようにして、機械学習アルゴリズムモジュール40、64を使用して収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行することによって、またウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングすることによって、説明した態様はウェブページのレンダリングを速めることができる。
【００５８】
図3に、モバイル電話またはセルラー電話のようなコンピューティングデバイス10の機能モジュールが示されている。そのような機能モジュールは、本明細書で説明するモジュールおよび機能のうちの1つまたは複数に関連する処理機能を実現するために、プロセッサ実行可能命令を実行するプロセッサ150を含むことができる。プロセッサ150は、プロセッサまたはマルチコアプロセッサの単一または複数のセットを含むことができ、統合処理システムおよび/または分散処理システムとして実装され得る。
【００５９】
コンピュータデバイス10は、プロセッサ150によって実行されるアプリケーションのローカルバージョンを記憶するため、かつ/またはプロセッサ150によって現在実行もしくは利用されていないデータ、命令、および/もしくはアプリケーションの長期記憶のためなどのメモリ152をさらに含むことができる。一態様では、メモリ152はいくつかのウェブページ153を記憶することができる。収集されたウェブページ153は、処理され、メモリ152に記憶され得る。好ましくは、収集されたウェブページ153内のウェブコンテンツのパターンを観察するにあたり、収集されたウェブページ153はインターネットからのものであり得る。別の態様では、収集されたウェブページ153は、インターネットからのページのサブセットであるか、または特定のウェブブラウザにおいて閲覧されるいくつかのページに固有のものであるか、もしくはパターンの集中的探索のための別のパラメータに固有のものであり得る。一態様では、メモリ152は、機械学習分析から導出された、収集されたウェブページにおいて観察されたパターン155および学習されたコンテンツ157をさらに含むことができる。コンピューティングデバイス10はさらに、収集されたウェブページ153から導出されたパターン155を受信すると、メモリ152にパターン155を記憶することができる。上述のように、この処理は、DOMツリー38のうち、独立したサブツリー、条件付きで独立したサブツリー、および従属した(すなわち、同時処理できない)サブツリーをウェブエンジンが識別できるように、パターン155から従属性を分類することを伴い得る。
【００６０】
上記で説明したように、コンピューティングデバイス10は、本明細書で説明するように、ハードウェア、ソフトウェア、およびサービスを利用して、1つまたは複数のエンティティとの通信を確立し、維持することを管理する通信モジュール154を含み得る。通信モジュール154はまた、コンピューティングデバイス10内の機能モジュールと構成要素との間、ならびにコンピューティングデバイス10と、通信ネットワーク17上に位置するデバイス、および/またはコンピューティングデバイス10に直列もしくはローカルに接続されたデバイスなどの外部デバイスとの間でデータを送信することができる。たとえば、通信モジュール154は、1つまたは複数のバスを含むことができ、外部デバイスとインターフェースするように動作可能なインターフェース、1つまたは複数の送信機または送信チェーン構成要素、および1つまたは複数の受信機または受信チェーン構成要素をさらに含むことができる。たとえば、そのような送信機および受信機は、1つまたは複数の技術またはプロトコルに従って、ワイヤード通信またはワイヤレス通信を可能にし得る。
【００６１】
コンピューティングデバイス10は、さらに、コンピューティングデバイス10のユーザから入力158を受信するように動作可能であり、ユーザへの提示のための出力160を生成するようにさらに動作可能であるユーザインターフェース構成要素156を含み得る。ユーザインターフェース構成要素156は、限定はしないが、キーボード、ナンバーパッド、マウス、タッチセンシティブディスプレイ、ナビゲーションキー、ファンクションキー、マイクロフォン、音声認識構成要素、画像キャプチャデバイス、ユーザからの入力を受信することが可能な任意の他の機構、またはそれらの任意の組合せを含む1つまたは複数の入力デバイスを含み得る。さらに、ユーザインターフェース構成要素156は、限定はしないが、ディスプレイ、スピーカー、触覚フィードバック機構、タッチスクリーン、プリンタ、ユーザに出力を提示することが可能な任意の他の機構、またはそれらの任意の組合せを含む1つまたは複数の出力デバイスを含み得る。
【００６２】
加えて、上述のように、コンピューティングデバイス10はポータル構成要素モジュール12を含むことができ、ポータル構成要素モジュール12は、ウェブブラウザ、ウィジェットもしくはモバイルウィジェット、またはウェブアプリケーションのうちの1つまたは任意の組合せであってよい。ポータル構成要素モジュール12は、ウェブページのレンダリングを可能にするために、コンピューティングデバイス10のユーザと、かつコンピューティングデバイス10の他の構成要素とインターフェースするように動作可能であり得る。
【００６３】
随意に、いくつかの態様では、ウェブエンジン14は、フェッチ動作のタイミングおよびパフォーマンスを管理するように構成されたフェッチマネージャ162を含むことができる。たとえば、フェッチマネージャ162は、ちょうど参照ページからクリックされたリンクを有するページのコンテンツのプリフェッチを可能にすることができ、この場合に参照ページはプリフェッチを実行するURLを含む。
【００６４】
たとえば、フェッチマネージャ162は、参照ページのJavaScript(登録商標)においてプリフェッチ発見呼を実行することができる。別の例として、フェッチマネージャ162は、ページ上にフェッチするURLのタグを付けるか、またはかかるURLを順序付けることができ、そのため、それぞれのページを求める要求を受信する前にページレンダリングにおいてこれらのタグまたはURLが処理され得る。たとえば、フェッチマネージャ162は、何をプリフェッチするか、またいつプリフェッチするかを決定するために、ページ、たとえばリスト内で隣接するページ、階層内で隣接するページなどの間の関係を判断するアルゴリズムまたは機能を含むことができる。他の態様では、説明した装置および方法は、現在のページのHTMLヘッド内に、プリフェッチするためにフェッチマネージャ162によって分析されることになる既知のURLの明示(manifest)を含むことができる。別の態様では、説明した装置および方法は、参照ページのHTMLヘッド内に、到達可能ページごとのプリフェッチを実行するためにフェッチマネージャ162によって分析されることになる、到達可能ページごとのURLの構造化された明示を含むことができる。
【００６５】
コンピューティングデバイス10のウェブエンジン14は、コンテンツの処理を支援するためのコンテンツハンドラモジュール166をさらに含むことができる。一態様では、コンテンツハンドラモジュール166は、機械学習されたコンテンツ157を生成するかどうかをコンピューティングデバイス102が判断できるようにする。さらに、コンテンツハンドラモジュール166は、通信ネットワーク17から処理命令168を受信することができる。そのような態様では、通信ネットワークは、コンピューティングデバイス102に記憶されるコンテンツとともに処理命令168を提供することができる。たとえば、処理命令168は、画像とともに送信されてよく、画像ピクセルを再マッピングするための命令を提供することができる。したがって、処理命令とともに転送されるコンテンツのサイズは小さいことがある。小さいサイズの未加工コンテンツおよび処理命令がコンピューティングデバイス102によって受信されると、処理命令168はコンテンツをよりリッチな画像またはよりリッチなコンテンツセットに拡大することを促進する。コンテンツハンドラモジュール166は、受信されたコンテンツの処理を支援するための構造参照169をさらに含むことができる。
【００６６】
随意に、いくつかの態様では、コンテンツハンドラモジュール166は、ページのそれぞれのインスタンスを求める要求の前に、DOMまたはDOMの部分を事前導出する導出マネージャ164を含むことができる。導出マネージャ164は、ウェブページが必要とされるときにDOMへのウェブページの導出を管理する際の層を提供するアルゴリズムまたは機能を含むことができる。導出マネージャ164は、おそらく最初に明示による指令を介してダウンロードされるときではなく、そのような導出が機敏に生じることを可能にし得る。たとえば、導出マネージャ164のアルゴリズムまたは機能は、何を事前導出するか、またいつ1つまたは複数のページを事前導出するかを決定するために、ページ(たとえば、リスト内で隣接するページ、階層内で隣接するページなど)の間の関係を判断することができる。導出マネージャ164は、コンテンツのある部分は、すでに同一物を見ているので処理する必要はないと推論し得る。フェッチマネージャ162および導出マネージャ164を同じウェブエンジン14またはコンテンツハンドラモジュール166に結合して、セッションにおけるページのファーストランのパフォーマンスを改善することができる点に留意されたい。
【００６７】
JavaScript(登録商標)エンジンなどのスクリプト記述エンジン50は、スクリプト機能の登録およびページの所与のインスタンスのスクリプトの実行を管理する。レンダリングエンジン52は、ページの所与のインスタンスの全部または一部を生成またはペイントし、ユーザインターフェース156の構成要素に、(図2に示す)ディスプレイ15上に提示された表示ページインスタンス13のような結果を通信する。
【００６８】
図4に、ページをレンダリングするための態様方法400が示されている。方法400では、ブロック402において、コンピューティングデバイスはページの所望のインスタンスを求める要求を受信することができる。ブロック404において、コンピューティングデバイスのプロセッサは、DOMを生成することによって、またはメモリに記憶されている所望のページに関するDOMを呼び出すことによって、ページをレンダリングするプロセスを開始することができる。ブロック406において、コンピューティングデバイスのプロセッサは、メモリに記憶され得る予測サブツリー独立性パターンを参照することができる。一態様では、トレーニングされた分類子は、この動作において入力および出力レイアウト独立性に関する結論としてノード特徴を比較することができる。
【００６９】
ブロック408において、プロセッサは、メモリに記憶されている参照された予測サブツリー独立性パターンを、所望のページの生成されたDOMと比較することができる。ブロック410において、次いで、独立しているか、または条件付きで独立していると識別されるサブツリーのフローが、ページのレンダリングの一環として同時に処理され得る。最後に、ブロック412において、コンピューティングデバイスのディスプレイ上に所望のページがレンダリングされる。
【００７０】
図5に、ウェブページ要素情報と相関するレイアウト独立性のパターンを観察するための機械学習分析のための態様方法500が示されている。方法500は、多数のウェブページレンダリングについて、たとえばウェブページ情報のデータ記憶を処理することによって、一度に実現され得る。代替的に、方法500は、ウェブページのレンダリング中に実施されるようにウェブブラウザ内に統合されてよく、それにより、ウェブページがレンダリングされるときにパターンを学習することができる。
【００７１】
方法500では、ブロック502において、ウェブコンテンツが受信され、これは、HTML、CSS、JavaScript(登録商標)、または上記の参照されたウェブページ要素のいずれかの形態であってよく、処理命令を伴い得る。判断ブロック504において、コンピューティングデバイスのプロセッサは、受信データが機械学習分析の候補であるかどうか、またそれがパターンを学習する機械読取りアルゴリズムへの入力に適した形態であるかどうかを判断することができる。プロセッサが、コンテンツが機械可読ではなく、機械学習の候補ではないと判断した場合(すなわち、判断ブロック504=「NO」)、プロセッサはブロック506において受信データを処分することができ、または随意に、ブロック510においてデータをインデックス付けし、記憶することができる。プロセッサが、コンテンツが機械学習の候補であると判断した場合(すなわち、判断ブロック504=「YES」)、ブロック508において、受信コンテンツからウェブページ要素情報と相関するレイアウト独立性のパターンを検出するように、機械学習が実行され得る。ブロック510において、いくつかの認識されたパターンが、分類子をトレーニングする際に使用するのに適した方法で、またはスケジューリングアルゴリズムによってアクセスされるように、メモリに記憶され得る。
【００７２】
図6に、ウェブページ要素情報と相関するレイアウト独立性のパターンを観察し、並列処理を使用してウェブページをレンダリングするための機械学習分析のための態様方法600が示されている。方法600では、ブロック602において、コンピューティングデバイスは1つまたは複数のウェブページからのコンテンツを要求することができ、ブロック604において、コンピューティングデバイスはコンテンツを受信することができる。判断ブロック606において、方法600を実施しているプロセッサは、受信コンテンツが機械学習処理の候補であるかどうかを、当該ウェブコンテンツを分析することによって判断することができる。プロセッサが、コンテンツが機械学習の候補ではないと判断した場合(すなわち、判断ブロック606=「NO」)、ブロック608において、受信コンテンツは処分され得る。プロセッサが、コンテンツが機械学習の候補であると判断した場合(すなわち、判断ブロック606=「YES」)、プロセッサは、パターンを識別し、レイアウト独立性と相関させるためにウェブページ要素情報の機械学習分析を実行することができる。ブロック612において、識別されたパターンはメモリに記憶され得る。ブロック614において、独立サブツリーを同時に処理し、新しいウェブページをレンダリングするために、パターンが参照され得る。
【００７３】
図7に、条件付き独立サブツリーを識別するための態様方法700が示されている。方法700では、ブロック702において、DOMツリー38の意味的従属サブツリーが受信され得る。意味的従属サブツリーは、以前に検出されたパターンから推論されるか、または実際のサブツリーもしくはDOMツリー38から読み取られ得る。判断ブロック704において、方法700を実施しているプロセッサは、受信サブツリーの従属性を解決できるかどうかを判断することができる。プロセッサが、サブツリーを解決できると判断した場合(すなわち、判断ブロック704=「YES」)、ブロック706において、プロセッサは、従属性を除去するためのタスクをスケジュールすることができる。従属性を除去するためのこのタスクは、サブツリーの同時処理を可能にするために迅速に生じるようにスケジュールされ得る。ブロック714において、従属性が解決されたサブツリーが、ウェブページをレンダリングするためにウェブページ処理の他の部分と同時に処理され得る。
【００７４】
プロセッサが、サブツリーの従属性を解決できないと判断した場合(すなわち、判断ブロック704=「NO」)、判断ブロック708において、方法700を実施しているプロセッサは、従属性を予測できるかどうかを判断することができる。プロセッサが、従属性を予測できると判断した場合(すなわち、判断ブロック708=「YES」)、ブロック712において、プロセッサは、特定のサブツリーを独立したものにするためにノードの従属性を除去するのに必要な情報を予測し、それにより、推測(すなわち、従属性を除去する情報についての推測)に基づく同時処理を可能にすることができる。ブロック714において、サブツリーが、ウェブページをレンダリングするためにウェブページの他の部分と同時に推測に基づいて処理され得る。一方、プロセッサが、従属性を予測できないと判断した場合(すなわち、判断ブロック708=「NO」)、ブロック710において、受信データは、ページをレンダリングするために標準的な直列方式で処理され得る。
【００７５】
図8は、ウェブサーバおよびデータサーバからコンテンツプロバイダを介して受信されたウェブページなどのページをレンダリングする装置(たとえば、コンピューティングデバイス)800の構成要素を示している。装置800は、ソフトウェアおよび/またはファームウェアで構成されたプロセッサの形態による機能構成要素を含むことができる。装置800は、ページに対応するウェブリソースおよびデータを受信し、当該ページのインスタンスをレンダリングすることを容易にする電気的構成要素の論理グルーピング802を含むことができる。電気的構成要素の論理グルーピング802は、たとえばコンピューティングデバイスにおいて、ページの所望のインスタンスを求める要求を受信するための手段804を含むことができる。さらに、電気的構成要素の論理グルーピング802は、ページの所望のインスタンスが、メモリに記憶されている予測サブツリー独立性のドキュメントオブジェクトモデル(DOM)パターンに対応するかどうかを判断するための手段806を含むことができ、この場合に、メモリに記憶されているパターンは、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測する。
【００７６】
また、電気的構成要素の論理グルーピング802は、メモリに記憶されている予測サブツリー独立性を参照するための手段808を含むことができる。加えて、電気的構成要素の論理グルーピング802は、参照された予測サブツリー独立性を、所望のページのドキュメントオブジェクトモデル38と比較するための手段を含むことができる。随意に、電気的構成要素の論理グルーピング802は、ページの所望のインスタンスをレンダリングし、所望のページのDOMの独立サブツリー部分を同時に処理するための手段812を含むことができる。このようにして、装置800は、パターンから学習された予測サブツリー独立性を効率的に使用して、レンダリングされるウェブページの部分を同時に処理し、迅速な方法でウェブページをレンダリングすることができる。
【００７７】
さらに、装置800は、電気的構成要素804、806、808、810、および随意の812に関連付けられた機能を実行するための命令を保持するメモリ814を含み得る。電気的構成要素804、806、808、810、および随意の812は、メモリ814の外部にあるものとして示されているが、これらはメモリ814の内部に存在してよく、またはメモリ814の部分を包含してよいことを理解されたい。
【００７８】
様々な態様において、独立していると識別または予測され得るサブツリーもあれば、従属していると予測され得るサブツリーもあり、さらには条件付きで独立していると予測され得るサブツリーもある。このようにして、機械学習分析を使用してパターンを識別することで、いくつかのサブツリーを独立していると予測することができ、同時に処理することができる。他の条件付き独立サブツリーは、独立サブツリーになり得る。これは、サブツリーを同時処理または並列処理することによって、DOMツリー38をより迅速に処理することを可能にし得る。一態様では、第1のプロセッサは、第1の独立サブツリーを処理することができ、第2のプロセッサは、第2の独立サブツリーまたはDOMツリーを同時に処理することができ、それにより複数の計算スレッドを実行することができる。
【００７９】
図9は、ブラウザの第1の実行および識別されていないDOM構造を有する特定のウェブページの第1の表現でDOMツリーを処理するための態様方法900を示している。方法900では、ブロック902において、ブラウザは、所望のウェブページに対応するリモートサーバまたはローカルサーバからHTMLコードを受信することができる。ブロック904において、ブラウザは、受信したHTMLを解析し、DOMツリーを作成することができる。ブロック906において、ブラウザは、DOMツリーを分析して、少なくとも1つのサブツリーが独立して処理され得るかどうかを判断することができる。ブロック908において、ブラウザは、機械学習され、参照しやすいようにインデックスなどで提供された、いくつかのパターンを参照することができる。ブロック910において、DOMツリーの識別された独立サブツリーは、ディスプレイに出力するためのHTMLコードとともに、同時に処理され得る。ブロック912において、ブラウザは、組み立てられ処理されたHTMLコードを、すべての関連画像およびファイルとともに、ブラウザが作動しているコンピューティングデバイスの電子ディスプレイに表示することができる。
【００８０】
図10に、DOMツリーを処理するための態様方法1000が、追加の機能の詳細および特性とともに示されている。方法1000では、ブロック1002において、コンピューティングデバイスのプロセッサは、ウェブブラウザアプリケーションにおいてサーバからHTMLコードを受信し、かつ/またはキャッシュメモリからHTMLコードを呼び出すことができる。ブロック1004において、ブラウザは、HTMLコードを解析し、受信したHTMLコードについてDOMツリーの少なくとも一部分を作成することができる。
【００８１】
判断ブロック1006において、プロセッサは、DOMツリーの少なくとも1つのサブツリーが、それが独立して処理され得ることを示す任意の機械学習されたパターンと合致するかどうかを判断することができる。様々な態様では、プロセッサはこの判断を、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測する分類子モジュールの出力を評価することによって行うことができる。様々な態様では、プロセッサは、生成されたDOMツリーの部分が、機械学習アルゴリズムからメモリに記憶されているパターンのうちのいずれかと合致するかどうかを判断する1つまたは複数のアルゴリズムを実行するか、またはかかるアルゴリズムの実行を開始することができる。判断ブロック1006において、プロセッサは、生成されたDOMツリーの部分が、メモリに記憶されている独立DOMサブツリーのパターンと構造的に同一かつ/または構造的に同様であるかどうかを判断することができる。プロセッサは判断ブロック1006において、ノードおよびノード関係をさらに調べて、どのサブツリーが独立して処理され得るかを判断することができる。
【００８２】
プロセッサが、DOMサブツリーの部分が、メモリに記憶されているパターンのうちのいずれかの構造と合致しないと判断した場合(すなわち、判断ブロック1006=「NO」)、ブロック1008において、プロセッサは、DOMツリーの生成された部分を処理し、関連する計算を実行する(たとえば、要素の絶対位置、スタイルを計算する、CSSマッチングを実行する、など)ことができる。ブロック1010において、プロセッサは計算結果を、DOMツリーの実行部分にインデックス付けられた結果とともに記憶することができる。
【００８３】
プロセッサが、DOMツリーの少なくとも1つのサブツリーが、メモリに記憶されているパターンと構造的に同一かつ/または構造的に同様であると判断した場合(すなわち、判断ブロック1006=「YES」)、ブロック1012において、機械トレーニングされた分類子モジュールを使用して、同時に処理できるサブツリーを予測することができる。
【００８４】
判断ブロック1014において、プロセッサは、サブツリーを独立したものにするために情報が推論され、サブツリーに提供された場合にサブツリーを同時に処理できるかどうかを判断することができる。できると判断した場合(すなわち、判断ブロック1014=「YES」)、ブロック1016において、プロセッサは、必要な情報を推論し、サブツリーの同時処理のために処理はブロック1008に戻る。
【００８５】
プロセッサが、推論された情報を使用してサブツリーを同時に処理することはできないと判断した場合(すなわち、判断ブロック1014=「NO」)、判断ブロック1018において、プロセッサは、推測に基づいて情報が予測または供給された場合にサブツリーを独立したものにして同時に処理できるかどうかを判断することができる。できると判断した場合(すなわち、判断ブロック1018=「YES」)、ブロック1020において、推測に基づいて必要な情報が供給され、サブツリーの同時処理のために処理はブロック1008に戻る。
【００８６】
プロセッサが、推測された情報を使用してサブツリーを同時に処理することはできないと判断した場合(すなわち、判断ブロック1018=「NO」)、判断ブロック1022において、プロセッサは、サブツリーを独立したものにする計算を実行することによって情報が取得され得る場合にサブツリーを同時に処理できるかどうかを判断することができる。そのような計算はタスクにカプセル化でき(すなわち、判断ブロック1022=「YES」)、プロセッサは、ブロック1024において必要な計算タスクをスケジュールし、ブロック1026において必要な情報を受信することができる。この時点で、サブツリーの同時処理のために、処理はブロック1008に戻る。
【００８７】
ブロック1008においてDOMツリーの処理および計算が完了すると、ブロック1010において計算結果がメモリに記憶され得る。判断ブロック1028において、プロセッサは、すべての必要な計算が完了しているかどうかを判断することができる。すべての計算が完了してはいない場合(すなわち、判断ブロック1028=「NO」)、ブラウザは、ブロック1004に戻ることによって、HTMLコードの別のセクションを解析して、DOMツリーの追加部分を生成することができる。すべての計算が完了している場合(すなわち、判断ブロック1028=「YES」)、ブラウザは、ブロック1030において、データを確認し、レンダリングのためにページを組み立て、ブロック1032において、コンピューティングデバイスの電子ディスプレイ上にページを表示することができる。
【００８８】
図11に、DOMツリーの部分を処理するための代替態様方法1100が示されている。態様方法1100において、機械トレーニングされた分類子が、新しい収集されたウェブ要素情報などに基づいてサブツリー独立性予測の精度を高めるために追加のパターンを認識するように更新され得る。方法1100では、ブロック1102において、ブラウザアプリケーションを動作させるプロセッサは、HTMLコードをキャッシュメモリおよび/またはリモートサーバから受信することができる。ブロック1104において、プロセッサは、受信されたHTMLを解析し、受信されたHTMLに基づいてDOMツリーの1つまたは複数の部分を生成することができる。ブロック1108において、プロセッサは、処理し、レンダリングされるDOMツリーとパターンを比較することができる。判断ブロック1110において、プロセッサは、DOMツリーがメモリ内のいずれかのパターンと合致するかどうかを判断することができる。プロセッサが、DOMツリーの部分がメモリ内のパターンのいずれとも合致しないと判断した場合(すなわち、判断ブロック1110=「NO」)、ブロック1120において、ブラウザはDOMツリーをトラバースし、通常の形でDOMツリーをレンダリングするための関連する計算を実行することができる。
【００８９】
プロセッサが、DOMツリーの部分が1つまたは複数のパターンおよびメモリと合致すると判断した場合(すなわち、判断ブロック1110=「YES」)、プロセッサは、サブツリーは独立しているか、または条件付きで独立していると判断することができる。ブロック1112において、プロセッサは、スケジューリングアルゴリズムを使用して同時に処理され得るDOMサブツリーを識別することができる。判断ブロック1114において、プロセッサは、たとえばメモリに記憶されているパターンとサブツリーとの比較に基づいて、条件付き独立サブツリーを識別し得る。識別された場合(すなわち、判断ブロック1114=「YES」)、推測、予測、推論によって、または条件付き独立サブツリーを独立したものにする情報を特定することによって、条件付き独立サブツリーを独立したものにすることができる。
【００９０】
条件付き独立サブツリーがまったく識別されない場合(すなわち、判断ブロック1114=「NO」)、ブロック1120で上述したように、ブラウザはDOMツリーをトラバースし、関連する計算を実行することによって、HTML計算の生成された部分を処理することができる。条件付き独立サブツリーがレンダリングされる場合(すなわち、判断ブロック1114=「YES」)、ブラウザは、ブロック1116においてページを組み立て、ブロック1118において電子ディスプレイ上に得られたHTMLウェブページを表示することができる。
【００９１】
ブロック1108における動作中、ブロック1106において、プロセッサは機械学習アルゴリズムおよび分類子にアクセスすることができる。一態様では、分類子は、所定の期間後もしくは動的に、またはサーバ、ブラウザもしくはユーザの要求により更新され得るいくつかの静的パターンを有し得る。判断ブロック1105において、プロセッサは、機械トレーニングされたアルゴリズムおよび分類子を更新すべきかどうかを判断することができる。更新すべきと判断した場合(すなわち、判断ブロック1105=「YES」)、ブロック1104において、プロセッサは、いくつかのウェブページからウェブページ要素情報を受信および収集し、サブツリー独立性を予測するパターンを認識するように機械学習分析を実行することができる。たとえば、分類子1106は、パターンの第1のセットを有することがあり、第1のセットを補完するパターンの第2のセットで更新され得る。別の態様では、第2のセットは第1のセットに取って代わってもよい。ブロック1103において、プロセッサは、認識されたパターンを記憶することができ、これはブロック1108において更新され、使用されて、新しいDOMツリーと比較され得る。
【００９２】
代替態様では、パターンは動的に、自動的に、かつ/または周期的に更新され得る。ウェブベージが処理されてよく、機械学習分析を実行するためにウェブページ要素情報が収集されて、ウェブページ要素情報と相関するレイアウト独立性のパターンが識別され得る。ウェブページは時間とともに進化することがあり、ウェブページ要素情報は新しいパターンの観察に基づいて変化し進化することがあり、機械学習分析は新しいデータにおけるパターンを捕捉することを諒解されたい。
【００９３】
上記で説明したように、いくつかの態様では、いくつかのコンピューティングデバイスのウェブページ処理を使用して様々なインターネットウェブページに関するパターン情報を生成できるように、集中型サーバにおいてウェブページ情報への機械学習アルゴリズムの適用が実現され得る。図12に、中央サーバにおいてウェブページ処理情報を分析するための態様方法1200が示されている。方法1200では、ブロック1202において、インターネットなどの通信ネットワークに結合されたサーバが、ネットワークに結合されたいくつかのコンピューティングデバイス上のインストゥルメントウェブブラウザによって報告されたウェブページ処理データを受信し得る。ウェブページ処理データの誤報は、インターネット通信分野では周知の様々なデータ構造およびデータ報告方法のうちのいずれかを使用し得る。受信されたウェブページ処理データは、分析用に処理データのデータベースを構築するためにサーバ内に記憶され得る。ブロック1204において、サーバは受信されたウェブ処理データに機械学習アルゴリズムを適用することができる。上述のように、そのようなアルゴリズムは、サブツリーの独立性または条件付き独立性と相関するウェブページスクリプトまたは下位ツリー(down tree)内のパターンを識別するように構成され得る。ブロック1206において、サーバは、受信されたウェブ処理データを処理することから識別されたパターンデータを、データベース内に記憶されている他の機械学習パターンデータと統合することができる。この動作において、以前に生成されたパターンデータを現在のパターンデータと結合またはマージして、パターンの更新または置換されたデータセットをもたらすことができる。ブロック1208において、得られたパターンデータを使用して、コンピューティングデバイスのウェブブラウザアプリケーション内に含まれるトレーニング可能な分類子のような、コンピューティングデバイスのウェブブラウザをトレーニングするのに適したトレーニングデータまたはパターンを生成することができる。ブロック1210において、この生成されたトレーニングデータは、インターネットのような通信ネットワークを介するなどして、コンピューティングデバイスに送信され得る。そのような送信またはトレーニングデータは、サーバと契約したコンピューティングデバイスのみが当該情報を受信するように、サービスまたはサブスクリプションとして提供され得る。さらなる態様では、トレーニングデータまたはパターンデータは、ウェブホスティング会社のウェブページのHTMLスクリプトにメタデータとして情報を含めることができるように、ウェブホスティング会社に提供され得る。態様方法1200により、そのような中央サーバは、数千でないとしても数百のコンピューティングデバイスのウェブページベースのレンダリング演算から恩恵を受けることが可能になり、その結果、インターネットで利用できるウェブページの広いクロスセクションに関係するパターン認識およびトレーニングデータセットの開発が可能になり得る。
【００９４】
上記の説明からわかるように、ウェブページレンダリングに関する情報を収集し、ウェブページレンダリング情報から要素データを生成し、要素データに対して機械学習分析を実行し、機械学習分析の結果を使用するようにブラウザをトレーニングする動作は、様々な実装形態において様々なコンピューティングデバイスで実現され得る。たとえば、各種態様は、単一のコンピューティングデバイスブラウザ(たとえば、インストゥルメントブラウザ)内でのみ、複数のコンピューティングデバイスおよび1つまたは複数のサーバ内で部分的に、また複数のコンピューティングデバイスからウェブページレンダリング情報を受信する1つまたは複数のサーバ内で実質的に、実施可能である。具体的には、様々な態様は、一方法(本方法を実行する実行可能命令で構成されたコンピューティングデバイスで実施され得る)を含み、本方法は、複数のウェブページを処理し、ウェブページ要素情報を収集する動作と、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行する動作と、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングする動作と、予測サブツリー独立性を使用して、レンダリングされるウェブページの部分を同時に処理する動作とを含む。
【００９５】
第1の例示的な態様では、この方法は、単一のコンピューティングデバイス内で実施可能であり、複数のウェブページを処理し、ウェブページ要素情報を収集するステップが、単一のコンピューティングデバイス上で動作するインストゥルメントブラウザにおいて実現され、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップが、同じコンピューティングデバイスにおいて実現される。
【００９６】
第2の例示的な態様では、この方法は、コンピューティングデバイスおよびサーバのネットワークにおいて実施可能であり、複数のウェブページを処理し、ウェブページ要素情報を収集するステップが、複数のコンピューティングデバイスにおいて複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、収集されたウェブページ情報を複数のコンピューティングデバイスの各々からサーバに送信するステップと、複数のコンピューティングデバイスによって送信されたウェブページ情報をサーバにおいて受信し総合して、総合ウェブページ要素情報を生成するステップと、複数のコンピューティングデバイスのうちの少なくとも1つに総合ウェブページ要素情報を送信するステップと、送信された総合ウェブページ要素情報を複数のコンピューティングデバイスのうちの少なくとも1つにおいて受信するステップとを含む。さらにこの態様では、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、複数のコンピューティングデバイスのうちの少なくとも1つにおいて、受信された総合ウェブページ要素情報に対して実現され、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップは、受信された総合ウェブページ要素情報に対して実行された機械学習分析に基づいてサブツリー独立性を予測するように、複数のコンピューティングデバイスのうちの少なくとも1つにおいて動作する分類子をトレーニングするステップを含む。
【００９７】
第3の例示的な態様では、複数のウェブページを処理し、ウェブページ要素情報を収集するステップは、複数のコンピューティングデバイスにおいて複数のウェブページを処理し、ウェブページ要素情報を収集するステップと、収集されたウェブページ情報を(たとえば、インターネット経由で)複数のコンピューティングデバイスの各々からサーバに送信するステップと、複数のコンピューティングデバイスによって送信されたウェブページ情報をサーバにおいて受信して、総合ウェブページ要素情報を生成するステップとを含むことができる。この第3の例示的な態様では、収集されたウェブページ要素情報に対して、ウェブページ要素情報と相関するレイアウト独立性のパターンを識別するように機械学習分析を実行するステップは、サーバにおいて、複数のコンピューティングデバイスによって送信された受信ウェブページ情報に対して、レイアウト独立性のパターンを識別するように実現可能であり、本方法は、レイアウト独立性の識別されたパターンを(たとえば、インターネット経由で)サーバから複数のコンピューティングデバイスのうちの少なくとも1つに送信するステップと、レイアウト独立性の識別されたパターンを複数のコンピューティングデバイスのうちの少なくとも1つにおいて受信するステップとをさらに含むことができる。さらに、この例示的な態様では、ウェブページスクリプトにおける要素情報に基づいてサブツリー独立性を予測するように分類子をトレーニングするステップは、レイアウト独立性の受信された識別されたパターンに基づいてサブツリー独立性を予測するように、複数のコンピューティングデバイスのうちの少なくとも1つにおいて動作する分類子をトレーニングするステップを含むことができる。
【００９８】
図13は、前述の態様のうちのいずれかとともに使用するのに好適なモバイルコンピューティングデバイスのシステムブロック図である。一般的なモバイルコンピューティングデバイス1300は、内部メモリ1302と、ディスプレイ1303と、スピーカー1354とに結合された、プロセッサ1301を含み得る。プロセッサ1301は、マルチコアプロセッサであってよく、または2つ以上のプロセッサが、ウェブページの部分を同時に処理できるようにモバイルコンピューティングデバイス1300に含まれ得る。加えて、モバイルコンピューティングデバイス1300は、プロセッサに結合されたワイヤレスデータリンクおよび/またはセルラー電話送受信機1305ならびにプロセッサ1301に結合されたモバイルコンピューティングデバイス1324に接続され得る、電磁放射を送信および受信するためのアンテナ1304を含み得る。モバイルコンピューティングデバイス1300は、一般に、ユーザ入力を受信するためのメニュー選択ボタンまたはロッカースイッチ1308をも含む。
【００９９】
上記で説明した態様は、たとえば図14に示されるラップトップコンピュータ1400など、様々なコンピューティングデバイス内で実施することもできる。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドタッチ面を含み、したがって、タッチスクリーンディスプレイを備えたモバイルコンピューティングデバイス上で実施されるものと同様のドラッグ、スクロール、およびフリックジェスチャーを受信することができる。ラップトップコンピュータ1400は通常、揮発性メモリ1402と、ディスクドライブ1403のような大容量の不揮発性メモリとに結合されたプロセッサ1401を含む。プロセッサ1401は、マルチコアプロセッサであってよく、または2つ以上のプロセッサが、ウェブページの部分を同時に処理できるようにコンピュータ1400に含まれ得る。コンピュータ1400はまた、プロセッサ1401に結合された、フレキシブルディスクドライブ1404およびコンパクトディスク(CD)ドライブ1405も含み得る。コンピューティングデバイス1400はまた、USBもしくはFireWire(登録商標)コネクタソケット、または、プロセッサ1401をネットワークに結合するための他のネットワーク接続回路1406のような、データ接続を確立し外部メモリデバイスを受け入れるための、プロセッサ1401に結合されたいくつかのコネクタポートを含み得る。ノートブック構成において、コンピュータハウジングは、プロセッサ1401にすべて結合されるタッチパッド1407、キーボード1408、およびディスプレイ1409を含む。コンピューティングデバイスの他の構成は、周知であるように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含み得る。
【０１００】
プロセッサ1301、1401は、以下で説明する様々な態様の機能を含む、様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。上述のように、プロセッサ1301、1401は、マルチコアプロセッサであってよく、またはウェブページの同時処理を可能にするために同じコンピューティングデバイス内で複数のプロセッサと連携するように構成され得る。いくつかのモバイル受信機デバイスでは、1つのプロセッサをワイヤレス通信機能専用とし、1つのプロセッサを他のアプリケーションの実行専用とするなど、複数のプロセッサ1401を設けることができる。一般的には、ソフトウェアアプリケーションは、それらがアクセスされ、プロセッサ1301、1401にロードされる前に、内部メモリ1302、1402、および1403内に記憶され得る。プロセッサ1301、1401は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。
【０１０１】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供したものであり、様々な態様のステップを提示された順序で実行しなければならないことを要求または暗示するものではない。当業者が諒解するように、上記の態様におけるステップの順序は、どのような順序で実行されてもよい。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、方法の説明において読者を案内するために使用される。さらに、たとえば、冠詞「1つの(a、an)」または「その(the)」などの使用による単数形での請求要素への言及は、その要素を単数に限定するものとして解釈されるべきではない。
【０１０２】
本明細書で開示された態様に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【０１０３】
本明細書で開示される態様に関して説明される様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別のハードウェアコンポーネント、または、本明細書に記載の機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサは、マイクロプロセッサでもよいが、代替として、そのプロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。代替的に、いくつかのステップまたは方法が、所与の機能に固有の回路によって実行され得る。
【０１０４】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令もしくはコードとしてコンピュータ可読媒体上に記憶され、または、コンピュータ可読媒体を介して送信され得る。本明細書で開示した方法またはアルゴリズムのステップは、有形の非一時的コンピュータ可読記憶媒体上に常駐し得るプロセッサ実行可能ソフトウェアモジュールにおいて具現化され得る。有形の非一時的コンピュータ可読記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく、例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスされ得る、任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せも非一時的コンピュータ可読媒体の範囲内に含めるべきである。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、有形の非一時的機械可読媒体および/またはコンピュータ可読媒体上のコードおよび/または命令の1つまたは任意の組合せ、もしくはそのセットとして常駐し得る。
【０１０５】
開示された態様の上記の説明は、当業者が本発明を製作または使用できるように提供されたものである。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義する一般的な原理は、本発明の趣旨や範囲を逸脱することなく他の態様に適用され得る。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。
【符号の説明】
【０１０６】
1  DOMツリー、DOMツリー構造
2  ノード
3  ノード
4  ノード
5  ノード
6  ノード
10  コンピュータ、ローカルコンピューティングデバイス、コンピューティングデバイス
12  ポータル構成要素、ポータル構成要素モジュール
13  ページの1つまたは複数のインスタンス、表示ページ、表示ページインスタンス
14  ウェブエンジン、ウェブエンジン構成要素、ウェブエンジンモジュール
15  ディスプレイ
16  ウェブサーバ
17  通信ネットワーク
18  データサーバ
20  ウェブリソース
22  ウェブリソース
24  データ項目
26  データ項目
28  第1のページインスタンス
30  第2のページインスタンス
32  受信要求、ページの所望のインスタンス
34  サブツリー構成要素、サブツリー、独立型、独立サブツリー、独立DOMサブツリー部分
36  クエリストリング
38  ドキュメントオブジェクトモデル、DOM、DOMツリー
39  並列計算レイアウトエンジンモジュール、計算エンジンモジュール、並列レイアウト計算エンジンモジュール
40  機械学習アルゴリズムモジュール、機械学習アルゴリズム
42  スケジューリングアルゴリズムモジュール、スケジューリングアルゴリズム
44  分類子モジュール、分類子
48  DOMサブツリー構成要素、サブツリー、従属型、従属サブツリー、従属DOMサブツリー部分
50  スクリプト記述エンジン、スクリプト記述エンジンモジュール
52  レンダリングエンジン、レンダリング、レンダリングエンジンモジュール
60  リモートサーバ、サーバ
62  ネットワーク通信モジュール
64  機械学習モジュール、機械学習アルゴリズムモジュール
66  パターンデータベース
102  コンピューティングデバイス
150  プロセッサ
152  メモリ
153  ウェブページ、収集されたウェブページ
154  通信モジュール
155  収集されたウェブページにおいて観察されたパターン、パターン
156  ユーザインターフェース構成要素、ユーザインターフェース
157  学習されたコンテンツ、機械学習されたコンテンツ
158  入力
160  出力
162  フェッチマネージャ
164  導出マネージャ
166  コンテンツハンドラモジュール
168  処理命令
169  構造参照
800  装置
802  電気的構成要素の論理グルーピング
804  電気的構成要素
806  電気的構成要素
808  電気的構成要素
810  電気的構成要素
812  電気的構成要素
814  メモリ
1300  モバイルコンピューティングデバイス
1301  プロセッサ
1302  内部メモリ
1303  ディスプレイ
1304  アンテナ
1305  ワイヤレスデータリンク、セルラー電話送受信機
1308  メニュー選択ボタン、ロッカースイッチ
1324  モバイルコンピューティングデバイス
1354  スピーカー
1400  ラップトップコンピュータ、コンピュータ、コンピューティングデバイス
1401  プロセッサ
1402  揮発性メモリ、内部メモリ
1403  ディスクドライブ、内部メモリ
1404  フレキシブルディスクドライブ
1405  コンパクトディスク(CD)ドライブ
1406  他のネットワーク接続回路
1407  タッチパッド
1408  キーボード
1409  ディスプレイ
【図１Ａ】
0005819995.tif 000002
【図１Ｂ】
0005819995.tif 000003
【図２】
0005819995.tif 000004
【図３】
0005819995.tif 000005
【図４】
0005819995.tif 000006
【図５】
0005819995.tif 000007
【図６】
0005819995.tif 000008
【図７】
0005819995.tif 000009
【図８】
0005819995.tif 000010
【図９】
0005819995.tif 000011
【図１０】
0005819995.tif 000012
【図１１】
0005819995.tif 000013
【図１２】
0005819995.tif 000014
【図１３】
0005819995.tif 000015
【図１４】
0005819995.tif 000016