(57)【特許請求の範囲】
【請求項１】
データ通信において、1つまたは複数のコンピュータを含むデータ処理装置によって実行されるコンピュータ実装方法であって、
各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める、前記ネイティブアプリケーションに関する発行者関連データを受信するステップと、
1組のネイティブアプリケーションの各ネイティブアプリケーションに関して、前記発行者関連データに基づいて、前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうかを判定するステップと、
前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると判定された、前記ネイティブアプリケーションのみに関して、
前記ネイティブアプリケーションに関するURIパターンに基づいてURIを選択するステップと、
前記ネイティブアプリケーションに関する前記URIによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスでインデックス付けを行うステップとを含み、
前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しないと判定した場合において、前記URIによってアクセス可能なコンテンツの前記インデックス付けを行わない、コンピュータ実装方法。
【請求項２】
前記発行者関連データに基づいて、ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされるコンテンツを提供する発行者と関連しているかどうかを判定するステップが、
前記ネイティブアプリケーションに関するURIパターンを決定するステップと、
前記URIパターンが、前記発行者関連データによって指定される前記ネイティブアプリケーションに関する関連発行者と一致する、前記ネイティブアプリケーションに関する関連発行者を定めているかどうかを判定するステップと、
前記ネイティブアプリケーションに関する前記URIパターンが、前記発行者関連データによって指定される前記ネイティブアプリケーションに関する関連発行者と一致する、前記ネイティブアプリケーションに関する関連発行者を定めているときのみ、前記ネイティブアプリケーションは前記発行者と関連していると判定するステップと
を含む、請求項1に記載のコンピュータ実装方法。
【請求項３】
前記ネイティブアプリケーションに関する前記URIパターンを決定するステップが、前記URIパターンを記述するデータに対するネイティブアプリケーションマニフェストファイルを処理するステップを含む、請求項2に記載のコンピュータ実装方法。
【請求項４】
各ネイティブアプリケーションに関する前記発行者関連データが、発行者のドメインと、ネイティブアプリケーションのネイティブアプリケーション識別子との間の関連を定める、請求項2に記載のコンピュータ実装方法。
【請求項５】
前記URIパターンが前記ネイティブアプリケーションに関する関連発行者を定めるかどうかを判定する前記ステップが、前記URIが前記発行者の前記ドメインに一致するホスト名を有しているかどうか判定するステップを含み、前記URIのホスト名と前記発行者の前記ドメインの一致が肯定の決定をもたらし、前記URIの前記ホスト名と前記発行者の前記ドメインの不一致が否定の決定をもたらす、請求項4に記載のコンピュータ実装方法。
【請求項６】
前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択するステップが、前記URIパターンを含むURIをインデックスから選択するステップを含む、請求項2に記載のコンピュータ実装方法。
【請求項７】
前記URIがユニフォームリソースロケータ(URL)である、請求項6に記載のコンピュータ実装方法。
【請求項８】
前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択するステップが、
前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成するステップと、
前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理するステップであって、反復ごとに、
前記アプリケーションページから、第1のアプリケーションページに含むアウトバウンドURIを決定するステップと、
1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成するステップと
を含む、反復処理するステップと、
を含む、請求項2に記載のコンピュータ実装方法。
【請求項９】
データ通信において、1つまたは複数のコンピュータを含むデータ処理装置によって実行されるコンピュータ実装方法であって、
ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(URI)パターンを決定するステップと、
前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成するステップと、
前記アプリケーションページのアプリケーションページデータに、検索エンジンによって検索可能なインデックスでインデックス付けを行うステップと、
前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理するステップであって、反復ごとに、
前記アプリケーションページから、第1のアプリケーションページに含むアウトバウンドURIを決定するステップと、
1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成するステップと、
前記1つまたは複数の後続のアプリケーションページのそれぞれに対する前記アプリケーションページデータに、インデックスでインデックス付けを行うステップと
を含む、反復処理するステップと
を含む、コンピュータ実装方法。
【請求項１０】
1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成するステップが、
各アウトバウンドURIに対して、前記アウトバウンドURIが前記URIパターンに一致するかどうか判定するステップと、
前記URIパターンに一致する前記アウトバウンドURIのみを選択するステップと
を含む、請求項9に記載のコンピュータ実装方法。
【請求項１１】
前記アウトバウンドURIが前記URIパターンに一致するかどうか判定するステップが、前記アウトバウンドURIが前記URIパターンを含むかどうか判定するステップを含む、請求項10に記載のコンピュータ実装方法。
【請求項１２】
データ処理装置と、
前記データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体に記憶されたソフトウェアと
を備え、前記ソフトウェアが実行されると前記データ処理装置に、
各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める前記ネイティブアプリケーションに関する発行者関連データを受信することと、
1組のネイティブアプリケーションの各ネイティブアプリケーションに関して、前記発行者関連データに基づいて、前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうか判定することと、
前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると判定された、前記ネイティブアプリケーションのみに関して、
前記ネイティブアプリケーションに関するURIパターンに基づいてURIを選択することと、
前記ネイティブアプリケーションに関する前記URIによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと
を含む動作を実行させ、
前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しないと判定した場合において、前記URIによってアクセス可能なコンテンツの前記インデックス付けを行わない、システム。
【請求項１３】
前記発行者関連データに基づいて、ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうか判定することが、
前記ネイティブアプリケーションに関するURIパターンを決定することと、
前記URIパターンが、前記発行者関連データによって指定された前記ネイティブアプリケーションに関する関連発行者と一致する前記ネイティブアプリケーションに関する関連発行者を定めているかどうか判定することと、
前記ネイティブアプリケーションに関する前記URIパターンが、前記発行者関連データによって指定される前記ネイティブアプリケーションに関する関連発行者と一致する前記ネイティブアプリケーションに関する関連発行者を定めているときのみ、前記ネイティブアプリケーションが前記発行者と関連していると判定することと
を含む、請求項12に記載のシステム。
【請求項１４】
前記ネイティブアプリケーションに関する前記URIパターンを決定することが、前記URIパターンを記述するデータに対するネイティブアプリケーションマニフェストファイルを処理することを含む、請求項13に記載のシステム。
【請求項１５】
各ネイティブアプリケーションに関する前記発行者関連データが、発行者のドメインと、ネイティブアプリケーションのネイティブアプリケーション識別子との間の関連を定める、請求項13に記載のシステム。
【請求項１６】
前記URIパターンが前記ネイティブアプリケーションに関する関連発行者を定めるかどうかを前記判定することが、前記URIが前記発行者の前記ドメインに一致するホスト名を有しているかどうか決定することを含み、前記URIのホスト名と前記発行者の前記ドメインの一致が肯定の決定をもたらし、前記URIの前記ホスト名と前記発行者の前記ドメインの不一致が否定の決定をもたらす、請求項15に記載のシステム。
【請求項１７】
前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択することが、前記URIパターンを含むURIをインデックスから選択することを含む、請求項13に記載のシステム。
【請求項１８】
前記URIがユニフォームリソースロケータ(URL)である、請求項17に記載のシステム。
【請求項１９】
前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択することが、
前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成することと、
前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、反復ごとに、
前記アプリケーションページから、第1のアプリケーションページに含むアウトバウンドURIを決定することと、
1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成することと
を含む、反復処理することと
を含む、請求項18に記載のシステム。
【請求項２０】
データ処理装置と、
前記データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体に記憶されたソフトウェアと
を備え、前記ソフトウェアが実行されると前記データ処理装置に、
ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(URI)パターンを決定することと、
前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成することと、
前記アプリケーションページのアプリケーションページデータに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと、
前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、反復ごとに、
前記アプリケーションページから、第1のアプリケーションページに含むアウトバウンドURIを決定することと、
1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成することと、
前記1つまたは複数の後続のアプリケーションページのそれぞれに対する前記アプリケーションページデータに、インデックスでインデックス付けを行うことと
を含む、反復処理することと
を含む動作を実行させる、システム。
【請求項２１】
データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体であって、実行されると前記データ処理装置に、
各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める前記ネイティブアプリケーションに関する発行者関連データを受信することと、
1組のネイティブアプリケーションの各ネイティブアプリケーションに関して、前記発行者関連データに基づいて、前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうか判定することと、
前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると判定された、前記ネイティブアプリケーションのみに関して、
前記ネイティブアプリケーションに関するURIパターンに基づいてURIを選択することと、
前記ネイティブアプリケーションに関する前記URIによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと
を含む動作を実行させ、
前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しないと判定した場合において、前記URIによってアクセス可能なコンテンツの前記インデックス付けを行わない、非一時的なコンピュータ可読記憶媒体。
【請求項２２】
データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体であって、実行されると前記データ処理装置に、
ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(URI)パターンを決定することと、
前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成することと、
前記アプリケーションページのアプリケーションページデータに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと、
前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、反復ごとに、
前記アプリケーションページから、第1のアプリケーションページに含むアウトバウンドURIを決定することと、
1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成することと、
前記1つまたは複数の後続のアプリケーションページのそれぞれに対する前記アプリケーションページデータに、インデックスでインデックス付けを行うことと
を含む、反復処理することと
を含む動作を実行させる、非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本出願は、2014年6月25日出願の米国特許出願第62/017,193号に対する米国特許法第119条(e)の優先権を主張し、その内容全体を参照により本明細書に組み込む。
【０００２】
本開示は、ネイティブアプリケーションのディープリンキングに関し、より詳細には、ネイティブアプリケーションのディープリンクを自動的に生成するためのシステムおよび方法に関する。
【背景技術】
【０００３】
インターネットにより、多種多様な情報へのアクセスが可能となる。たとえば、デジタルイメージファイル、ビデオおよび/またはオーディオファイル、ならびに、特定の主題または特定のニュース記事に対するウェブページリソースが、インターネットを介してアクセス可能である。ウェブページリソースに関して、これらのリソースの多くは、銀行業務、ホテル予約業務、ショッピングなど特定の機能の実行を容易にする、または、オンライン百科事典、映画データベースなど構造化情報を提供するように設計されている。
【０００４】
様々な検索エンジンが、インターネットを介してアクセス可能な、特定のウェブページリソースを識別するために利用可能である。タブレットコンピュータおよびスマートフォンの出現とともに、ウェブページリソースの使用によって容易になった同一の機能の性能を促進するネイティブアプリケーションが、現在、大量に提供されつつある。
【０００５】
したがって、ユーザの情報ニーズは、ウェブページリソースによって容易になった同一の機能の性能を促進する、または、ウェブページリソースと同一もしくは極めて似ている情報を提供する、特定のウェブページリソースまたはネイティブアプリケーションのうちの一方(または両方)を識別する、検索結果を提供することによって満足され得る。
【発明の概要】
【課題を解決するための手段】
【０００６】
一般に、本明細書に記載の本主題の1つの革新的な態様は、ネイティブアプリケーションに関する発行者関連データを受け取るアクションを含む方法において具体化され得る。この発行者関連データは、各ネイティブアプリケーションに関しては、ネイティブアプリケーションの関連発行者を定めし、1組のネイティブアプリケーションの各ネイティブアプリケーションに関しては、発行者関連データに基づいて、ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうかを規定し、ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると規定されたネイティブアプリケーションのみに関しては、ネイティブアプリケーションに関するURIパターンに基づいてURIを選択し、検索エンジンによって検索可能なインデックスで、ネイティブアプリケーションに関するURIによってアクセス可能なコンテンツにインデックス付けを行う。この態様の他の実施形態は、コンピュータの記憶デバイスに符号化された方法のアクションを実行するように構成された、対応するシステム、装置およびコンピュータプログラムを含む。
【０００７】
本明細書に記載の本主題の別の革新的な態様は、ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(uniform resource identifier:URI)パターンを決定することと、ネイティブアプリケーションをインスタンス生成し、URIパターンに基づいて第1のURIを選択してネイティブアプリケーション表示環境においてアプリケーションページを生成することと、検索エンジンによって検索可能なインデックスで、アプリケーションページのアプリケーションページデータにインデックス付けを行うことと、ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、その反復処理が反復ごとに、アプリケーションページから、第1のアプリケーションページに含むアウトバウンドURIを決定すること、1つまたは複数のアウトバウンドURIを選択して、ネイティブアプリケーション表示環境において1つまたは複数の後続のアプリケーションページを生成すること、1つまたは複数の後続のアプリケーションページのそれぞれについて、アプリケーションページデータにインデックスでインデックス付けを行うことを含む、反復処理することと、等のアクションを含む方法において具体化され得る。この態様の他の実施形態は、コンピュータの記憶デバイスに符号化された方法のアクションを実行するように構成された、対応するシステム、装置およびコンピュータプログラムを含む。
【０００８】
本明細書に記載の本主題の特別な実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。ディープリンクの生成により、アプリケーション開発者がネイティブアプリケーションインデックス付けに参加するのが容易となり、同時に、彼らのアプリケーションのドライブ使用および再使用(re-engagement)の助けとなる。システムはまた、参加の障壁も低める。
【０００９】
本明細書に記載の本主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に述べる。本主題の他の機能、態様および利点は、記述、図面および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００１０】
【図１】ネイティブアプリケーションに関するディープリンクが生成される環境の一例のブロック図である。
【図２】アプリケーションクローリングおよびインデキシングシステムのブロック図である。
【図３】ネイティブアプリケーションに関するディープリンクを生成するためのプロセスの一例の流れ図である。
【図４】ネイティブアプリケーションに関するディープリンクを生成するプロセスの別の例の流れ図である。
【発明を実施するための形態】
【００１１】
いくつかの図面において同様の参照番号および名称は同様の要素を示す。
【００１２】
システムはネイティブアプリケーション検索結果を提供する。本明細書で使用される場合、ネイティブアプリケーションは、ユーザデバイス上のブラウザアプリケーションとは独立して動作する。ネイティブアプリケーションは、ブラウザ内ではなく、特別なユーザデバイスのオペレーティングシステムおよびマシンのファームウェア上で実行するように特別に設計されたアプリケーションである。したがって、ネイティブアプリケーションは、ブラウザ、ブラウザベースのアプリケーション、およびブラウザのレンダリングリソースとは異なる。後者は、インスタンス生成またはレンダリングされるたびごとに、ウェブサーバからダウンロードされたすべてまたは少なくとも一部の要素または命令が必要である。さらに、ブラウザベースのアプリケーションおよびブラウザのレンダリングリソースは、ブラウザ内のすべてのウェブ対応の携帯デバイスによって処理することができ、したがって、ネイティブアプリケーションのようにオペレーティングシステム固有のものではない。さらに、本明細書で使用される場合、ネイティブアプリケーション検索結果は、特定のネイティブアプリケーションに対応する検索結果であり、したがって、選択されるとき、特定のネイティブアプリケーションを呼び出す。
【００１３】
ネイティブアプリケーションの例としては、テキスト文書作成、写真編集、音楽演奏、リモートバンキングシステムとのインタフェース等のアプリケーションがある。モバイルネイティブアプリケーションは、スマートフォン、タブレット等の携帯デバイス上で動作するように設計されている。ウェブネイティブアプリケーションは、ウェブブラウザソフトウェア内(視覚的にも機能的にも)で実行するように設計されている。極めて高いレベルで、ネイティブアプリケーション、または単に「アプリ」により、ユーザはコンテンツおよび/または機能へアクセスすることができる。
【００１４】
インターネット検索エンジンは、インターネット上に存在するインデックス付きのウェブページの一群を検索する機能を提供する。典型的な検索エンジンは、クエリに応答して、しばしばユーザが対象の結果に迅速にナビゲートすることが可能なハイパーリンクを有する、クエリに関連する結果リストを提供する。ユーザはリンク付けられた結果を選択することができ、それによりタレント、製品、ビジネス等についてのコンテンツを含むウェブページを提供される。リンクはサイトの「ホームページ」(たとえば、レシピなどクッキング情報を集約したサイトに対するウエルカムおよび検索ページ)に対するもの、または、サイトのホームページからナビゲートしたときユーザがアクセスすることができる「コンテンツページ」(たとえば、クッキング情報サイトにおける特定のレシピ)とすることができる。コンテンツページへのリンクは、ホームページへのリンクに対する対語として、「ディープリンク」と呼ばれる(これらのコンテンツページをクローリングし、インデックス付けし、サービスするプロセスは同様に「ディープリンキング」と呼ばれる)。
【００１５】
ページへナビゲートする機能、ならびに、そのページが提供するコンテンツのアクセス可能性および機能性は、公開されたページの性質によって部分的に規定される。たとえば、あるページは、クローリングおよび検索が困難または不可能な動的コンテンツ(たとえば、非同期ジャバスクリプトおよびXML(AJAX)、Adobe Flash等)を含むことができる。その結果、これらのページは、検索しても利用することはできないことがあり、ユーザはブックマークなどでページを保存することができないことがあり、また、ブラウザ制御によるページナビゲーション(たとえば、履歴を進むおよび戻る)は意図通りには動作しないことがある。
【００１６】
一部のネイティブアプリケーションは、リンクするときに、ウェブサイトのいくつかの基本的な特性を欠く。第1に、検索エンジンがネイティブアプリケーションをクローリングするとき、ページに対する既存のリンクを全く調査することができず、ウェブページのHTMLを調査することによって可能であるかのように、ページのアウトバウンドリンクを調査する。第2に、多くのネイティブアプリケーションは、ウェブサイトが本質的に行うようには互いにリンクしない。そのため、検索エンジンは、ウェブリンクを発見するようにはアプリのディープリンクを発見するためにウェブのクローリングに頼ることはできない。このため、ネイティブアプリケーションがサポートするリンクを発見することが、はるかに困難であるという点において、このことはネイティブアプリケーション検索エンジンにとって困難である。ネイティブアプリケーション検索エンジンがリンクを発見できない場合は、それらのリンクにインデックス付けを行うこと、検索すること、およびユーザに提供することができなくなる。
【００１７】
さらに、一部のネイティブアプリケーションは、ネイティブアプリケーションがアクセスするURIに対して対応するウェブページを有しているが、他のネイティブアプリケーションは有していない。対応するウェブページを有しているもののうち、一部のネイティブアプリケーションは、ネイティブアプリケーションとウェブプラットフォームの間に二重または対応するコンテンツおよび機能性を保持するが、他のネイティブアプリケーションは、モバイルとウェブプラットフォームの間に、わずかなまたは大きな程度の差異を有する。
【００１８】
一部のシステムは、ネイティブアプリケーションにインデックス付けするために開発者を頼り、自らのネイティブアプリケーションディープリンクを、HTMLマークアップとしてウェブページ上に、または、既存のサイトマップ中に、発行する。すなわち、ネイティブアプリケーションプロバイダは、ウェブプラットフォームを有し、かつ、少なくともウェブサイトにネイティブアプリケーションページをマッピングしなければならない。ネイティブアプリケーションディープリンキングを提供する一部のサービスも、開発者に頼って、彼らのウェブページ上にネイティブアプリケーションディープリンクを発行する。
【００１９】
本開示によれば、ネイティブアプリケーションディープリンクは、インデックス付けを行う目的で自動的に生成することができる。ネイティブアプリケーションディープリンクを生成する方法は、ネイティブアプリケーションディープリンクの性質に応じて多数ある。たとえば、いくつかのネイティブアプリケーションは、http://www.example.comなどウェブベースのユニフォームリソースロケータ(URL)に一致するURIを有するディープリンクをサポートする。他のネイティブアプリケーションは、特定のHTTPプロトコルに必ずしも一致しないカスタムURIを使用する。
【００２０】
ウェブベースのURLに基づいて、ディープリンキングをサポートするネイティブアプリケーションの場合は、ネイティブアプリケーションディープリンクを生成するプロセスは以下を含む。
1)ネイティブアプリケーション開発者は、集中型索引作成サービスを用いて公式ウェブサイトを確認する。次いで、そのサービスは、ウェブクローリングによって発見したすでにインデックス付けされたウェブURLに基づいて、ネイティブアプリケーションにインデックス付けを行う。
2)ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、マニフェストファイルなどネイティブアプリケーションの登録情報を調査して、それがウェブサイトの適切なURL構造をサポートしているかどうか判定する。
3)ネイティブアプリケーションが適切なURL構造をサポートしている場合には、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、評判などの基準に基づいてリンクを決定し、優先順位を付けることができる。ネイティブアプリケーションデータクローリングおよびインデキシングシステムはまた、どのURL経路にインデックス付けをすべきではないかを指定する、登録情報内の任意のインデックスのないタグも重視する。
【００２１】
本開示の第2の態様によれば、カスタムディープリンキングをサポートするネイティブアプリケーションの場合は、システムは以下のステップを含む方法を実装する。
1)ネイティブアプリケーションの開発者は、特定のネイティブアプリケーション文書のURIアドレス、その対応するウェブURL(もしあれば)、ならびに、文書上のすべてのアウトバウンドアプリディープリンクおよび関連するウェブURL(もしあれば)を指定することができるネイティブアプリケーションインデキシングAPIを実装する。
2)ネイティブアプリケーションがデジタル配付元で更新されると、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、ネイティブアプリケーションを調査して、それがネイティブアプリケーションインデキシングAPIを使用しているかどうか判定する。もし使用している場合には、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、ネイティブアプリケーションを起動し、ネイティブアプリケーション「ホームページ」へのリンクを捜す。ネイティブアプリケーションデータクローリングおよびインデキシングシステムはまた、アプリケーションページ上の任意のアウトバウンドURIリンクを捜す。アウトバウンドURIがある場合、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、これらのリンクのそれぞれ(または関連するリンクのみ)にインデックス付けを行い、次に、アウトバウンドURIに対しても同様に、後続のネイティブアプリケーションページの処理を行う。このようにして、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、自動的にリンクを発見することができる。各ステップにおいて、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、認証方法として、元のリンクに対してアプリケーションページの現在のリンクをチェックすることができる。
3)ネイティブアプリケーションデータクローリングおよびインデキシングシステムを使用して、ネイティブアプリケーション内のユーザによって実際に見られているリンクのリストを保守し、そのリストをネイティブアプリケーションデータクローリングおよびインデキシングシステムに提供することができる。ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、前のステップで説明した自動発見に加えて、追加的なリンク源としてこのリストを使用する。さらに、実際に見られているリンクのリストは、リンクの評判を判断するのに使用することができ、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、次いで、リンクの評判に基づいて、クローリングの優先順位を付けることができる。
【００２２】
したがって、本明細書に記載のシステムおよび方法は、ネイティブアプリケーションディープリンクの自動的なインデックス付けを提供することができる。このシステムおよび方法はさらに、実際のユーザ活動からリンクの優先順位付けを決定し、使用することができる。優先順位付けによりとりわけ、検索リソースの使用が最適化される。最後に、対応するウェブページを介してリンクを発行するためにアプリを必要とする既存の技術の限界を克服して、対応するウェブページを有するアプリにも有していないアプリにも対応することができるシステムおよび方法が開示される。
【００２３】
図1は、ネイティブアプリケーションに関するディープリンクが生成される、例示の環境100のブロック図である。インターネットなどのコンピュータネットワーク102が、リソース発行者ウェブサイト104、アプリケーション発行者106、ユーザデバイス108および検索エンジン120を接続している。
【００２４】
リソース発行者ウェブサイト104は、ドメインに関連付けられ、1つまたは複数の場所の1つまたは複数のサーバによってホスティングされた1つまたは複数のウェブリソース105を含む。一般に、リソース発行者ウェブサイトは、テキスト、画像、マルチメディアコンテンツおよびプログラミングエレメントを含むことができる、ハイパーテキストマークアップ言語(HTML)によってフォーマットされたウェブページの集合体である。各ウェブサイト104は、ウェブサイト104を制御し、管理し、かつ/または所有するエンティティであるコンテンツ発行者によって保守される。
【００２５】
ウェブページリソースは、発行者ウェブサイト104によってネットワーク102を介して提供され得る任意のデータであり、リソースのアドレス、たとえばユニフォームリソースロケータ(URL)を有する。ウェブリソースには2〜3例を挙げると、HTMLページ、画像ファイル、ビデオファイル、音声ファイルおよびフィードソースなどがあり得る。リソースは、埋め込み情報、たとえばメタ情報およびハイパーリンク、および/または埋め込み命令、たとえばクライアントサイドスクリプトを含むことができる。
【００２６】
アプリケーション発行者ウェブサイト106はまた、1つまたは複数のウェブリソース105を含み、またネイティブアプリケーション107を提供することができる。ネイティブアプリケーション107は、特定のユーザデバイスのオペレーティングシステムおよびマシンのファームウェア上で実行するように特に設計されたアプリケーションである。ネイティブアプリケーション107は、様々なプラットフォーム上で実行するように設計された多数のバージョンを含むことができる。たとえば、映画データベースウェブサイトに対応するネイティブアプリケーションは、第1のタイプのスマートフォン上で実行する第1のネイティブアプリケーション、第2のタイプのスマートフォン上で実行する第2のネイティブアプリケーション、第1のタイプのタブレット上で実行する第3のネイティブアプリケーション等を含むことができる。
【００２７】
アプリケーションページは、ネイティブアプリケーション内の特別の表示環境であり、その中にテキスト、画像などのコンテンツが表示される。アプリケーションページは、特定のネイティブアプリケーションに特有であり、ネイティブアプリケーションは、ユーザデバイス108の特別なオペレーティングシステムに特有である。アプリケーションページは、ネイティブアプリケーション内で生成されかつそれに特有であるという点で、レンダリングされたウェブリソースと異なり、一方、ウェブリソースは、ウェブページリソースが互換性のある任意のブラウザ内にレンダリングすることが可能であり、ユーザデバイスのオペレーティングシステムから独立している。
【００２８】
一部の発行者104、106は、同一の発行者で、ウェブリソースおよびネイティブアプリケーションの両者に同一のコンテンツを提供してもよい。こうしたコンテンツの配付の管理は、発行者バックエンド130によって取り扱いされる。発行者バックエンド130は、発行者が提供するコンテンツを記憶する発行者ストア132、ウェブリソース(たとえば、ウェブページ)として発行者ストアからコンテンツを提供するウェブサーバ134、およびネイティブアプリケーションからの要求を取り扱うネイティブアプリケーションサーバ136を備える。ウェブページは、ネイティブアプリケーションページに対応し、したがって、多くのネイティブアプリケーションURIに対して、対応するウェブページURIが存在する。一部のネイティブアプリケーションもまた、対応するウェブページとして、単純に同一のURLを使用する。発行者ストア132のコンテンツは、ウェブリソースおよび対応するネイティブアプリケーションページの両方を表すものとしてアクセス可能である。したがって、こうしたコンテンツは「同期した」コンテンツと呼ばれる。
【００２９】
こうした発行者の例にはニュース発行者があり、モバイルデバイス上でニュースコンテンツを読むための「モバイルニュースアプリ」を有することができる。ウェブリソース105によって提供されたニュースコンテンツ(たとえば、ニュース記事のテキスト)は、ネイティブアプリケーション107の対応するアプリケーションページによって提供される同一のコンテンツである。
【００３０】
ユーザデバイス108は、ネットワーク102を介してウェブページリソース105およびネイティブアプリケーション107を要求し、受信することができる電子デバイスである。例示のユーザデバイス108は、パーソナルコンピュータ、携帯通信デバイスおよびタブレットコンピュータを含む。
【００３１】
ウェブインデックス116は、発行者コンテンツのインデックスであり、これは、たとえば、発行者ウェブサイト104からデータフィードを受信することにより、または、他の適切なデータ収集およびインデックス付け方法により、発行者ウェブサイト104をクローリングすることから作成されたものである。
【００３２】
ネイティブアプリケーションインデックス114は、ネイティブアプリケーション107関連のデータを記憶する。アプリケーションインデックス114は、たとえば、発行者104によって提供されたネイティブアプリケーションのリスト、および、ネイティブアプリケーションを識別する識別子を記憶する。さらに、いくつかの実装形態においては、発行者104は、あるネイティブアプリケーション107を使用して、同期したデータにアクセスしそれを表示することを指定することができ、この情報はアプリケーションインデックス中に記憶することができる。たとえば、ニュース発行者は、提供するニュース読み出しアプリケーションがニュース発行者のウェブサイト上に表示された同期したコンテンツを表示するように指定することができる。
【００３３】
ユーザデバイス108は、検索クエリを検索エンジン110に提出する。各クエリに応答して、検索エンジン110は、ウェブインデックス116およびアプリケーションインデックス114にアクセスして、クエリに関連するコンテンツを識別する。検索エンジン110は、たとえば、検索結果ジェネレータ116を使用することによって、ウェブリソース検索結果およびネイティブアプリケーション検索結果の形式で、それぞれリソースおよびアプリケーションを識別することができる。一度生成されると、検索結果はクエリが受信されたユーザデバイス108に提供される。
【００３４】
ウェブリソース検索結果は、特定の検索クエリを満足するリソースのコンテンツに基づいて、ウェブリソースを識別する検索エンジン110によって生成されたデータである。リソースに対するウェブリソース検索結果は、ウェブページのタイトル、リソースから抽出されたテキストの抜粋、およびリソースに対するユニフォームリソースアイデンティファイア(URI)、たとえば、ウェブページのユニフォームリソースロケータ(URL)を含むことができる。ユーザデバイスにおいて選択されると、ウェブリソース検索結果によって、ユーザデバイスがURLに配置されたリソースに対する要求を生成する。受信されたウェブリソースは、次いで、ブラウザアプリケーション中に表示される。
【００３５】
ネイティブアプリケーション検索結果は、ネイティブアプリケーションを指定し、以下でより詳細に説明するように、アプリケーションインデックス114およびウェブインデックス116の検索に応答して生成される。ユーザデバイスにおいて選択されると、ネイティブアプリケーション検索結果によって、ユーザデバイス上にインストールされたネイティブアプリケーションが同期されたコンテンツを要求する。ネイティブアプリケーションは、一度要求されたコンテンツを受信すると、そのコンテンツをネイティブアプリケーションのユーザインタフェース内に表示する。
【００３６】
アプリケーションインデックス114を生成するために、検索システムはアプリケーションクローリングおよびインデキシングシステム120を使用する。図2はアプリケーションクローリングおよびインデキシングシステム120のブロック図である。URLを使用するネイティブアプリケーションのもとでのシステム120の動作は、図3を参照して説明する。カスタムURIを使用するネイティブアプリケーションの動作の変更例は、図4を参照して説明する。
【００３７】
図3は、ネイティブアプリケーションに関するディープリンクを生成するための例示の方法300の流れ図である。方法300は、1つまたは複数のコンピュータのデータ処理装置に実装される。
【００３８】
方法300は、データコレクタ204において、各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める、ネイティブアプリケーションに関する発行者関連データ202を受信する(302)。たとえば、発行者は、ネイティブアプリケーション識別子と発行者のサイト識別子の関連など、特定のネイティブアプリケーションが発行者と関連しているというデータを提供する。サイト識別子の一例はドメイン名であるが、発行者とネイティブアプリケーションの関連を定めるための他のタイプのデータも使用され得る。
【００３９】
ネイティブアプリケーションに関して、プロセス300は、発行者関連データに基づいて、ネイティブアプリケーションが、ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうかを判定する(304)。たとえば、アプリケーションパッケージクローラ206は、アプリケーションマニフェストファイル109(または、同様なアプリケーション仕様を定義する他のデータ)から、ネイティブアプリケーションに関するURIフォーマットのスキーム、ホストおよびパスを抽出する。たとえば、Androidマニフェストの場合、以下がインテントフィルタセクションから抽出される。
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/gizmos" />
【００４０】
ここで、スキームは"http"、ホストは"example.com"、パスは"/gizmos"である。ネイティブアプリケーションに関するURIパターンを決定するプロセス、および、URIパターンがネイティブアプリケーションに関する関連発行者に一致するネイティブアプリケーションに関する関連発行者を定めるかどうかは、発行者関連データ202によって指定される。上述の例示のデータを説明すると、関連データ202がネイティブアプリケーションに関する"http"のスキーム、および"example.com"のホストを定め、ネイティブアプリケーション107のマニフェスト109が同じスキームおよびホストを定める場合、そのネイティブアプリケーションはホストと関連することとなる。
【００４１】
判定が肯定の場合、URIスキームジェネレータ208は、ネイティブアプリケーションに関するデータをURIスキームテーブル210に記憶し、次いで、プロセス300は、ネイティブアプリケーションに関するURIパターンに基づいて、URIを選択する(306)。たとえば、いくつかの実装形態において、URIセレクタ212はURIスキームテーブル210からURIパターンを検索する。セレクタ212は、次いで、URIパターンを含むURLのウェブインデックスを求めて、ウェブインデックス116を検索する。上述の例において、http://example.co m/gizmos/を有する候補URLは、セレクタ212によって処理されることになる。セレクタ212は、クローリングされていないという指標を含み得るURL、最近検索されネイティブアプリケーションに関してインデックス付けされたURL、削除されているまたは非活動状態であると示されたURL、または、いくつかの他の除外基準に合致したURLを廃棄することができる。
【００４２】
選択された残りのURLはURIプロセッサ214に提供され、このプロセッサは次いでURLによってアクセス可能なコンテンツからデータを収集する。プロセス300は、次いで、ネイティブアプリケーションに関するURLによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスによってインデックス付けを行う(308)。データの収集およびインデックス付けは、任意の適切なプロセスによって行うことができる。1つの例示の実装形態において、システム120は、ユーザデバイス用のオペレーティングシステムをエミュレートするバーチャルマシンをインスタンス生成する。バーチャルマシンは、いくつかの実装形態において、オペレーティングシステムの変更バージョンとすることができ、以下でより詳細に説明するように、アプリケーションページからデータを抽出するエクストラクタを含む。
【００４３】
システム120はまた、ユーザデバイス上で表示するためのアプリケーションページをネイティブアプリケーション107内で生成するネイティブアプリケーション107をバーチャルマシン内でインスタンス生成し、次いで、選択されたURLの処理に応答して生成された、ネイティブアプリケーションのアプリケーションページに、バーチャルマシン内でアクセスする。各アプリケーションページに対して、システム110は、アプリケーションページのコンテンツを説明するアプリケーションページデータを生成する。ページのコンテンツは、たとえば、アプリケーションページ上に表示されたテキスト、アプリケーションページ上に表示された画像、他のアプリケーションページまたは他のウェブリソースへのアプリケーションページ上のリンク、およびインデックス付けに適切な他のコンテンツを含むことができる。
【００４４】
いくつかの実装形態において、バーチャルマシンは、インデックス付けのためのコンテンツデータを抽出するエクストラクタを含む。抽出されたコンテンツデータは、たとえば、ネイティブアプリケーションのレンダリングプロセスに提供されるデータである。レンダリングプロセスでは、ユーザデバイス上に表示するためのデータに基づいて、コンテンツをレンダリングする。エクストラクタを使用することにより、アプリケーションページの様々なコンテンツをより正確に識別することが可能となる。たとえば、テキストエクストラクタは、ネイティブアプリケーションのレンダリングプロセスに提供されたテキストデータを抽出する。テキストデータは、アプリケーションページにおいてレンダリングされるテキストを指定する。したがってバーチャルマシンは、アプリケーションページの画像を処理する、または、ディスプレイのバイナリデータを処理するのではなく、ネイティブアプリケーション107の環境においてレンダリングされる実際のテキストを受信する。
【００４５】
画像エクストラクタおよびリストエクストラクタなど、他のエクストラクタも同様に使用することができる。画像エクストラクタは、ネイティブアプリケーション107の環境においてレンダリングされる画像の画像データを提供し、リストエクストラクタは、ネイティブアプリケーション107の環境においてレンダリングされる、スクロール可能な項目のリストのリストデータを提供する。別のアプリケーションページにリンクする、アプリケーションページ内のリンクを記述するアプリケーションページリンクデータ、ユニフォームリソースロケータによって参照されるウェブリソースにリンクし、選択されるとき、ネイティブアプリケーションとは分離したブラウザ環境において、リソースをレンダリングするブラウザアプリケーションをインスタンス生成する、アプリケーションページ内のリンクを記述するウェブページリンクデータなど、他のデータもまた抽出することができる。
【００４６】
上述のエクストラクタおよび他の適切なデータエクストラクタは、特定のオペレーティングシステムのための適切なデータハンドラを使用して、実装することができる。たとえば、Android(商標)オペレーティングシステムの場合、エクストラクタは、TextViewオブジェクト、ImageViewオブジェクト、およびListViewオブジェクトをそれぞれ使用することにより実装することができる。バーチャルマシンはオブジェクトを処理して、たとえば、バーチャルマシンに、レンダリングするために提供された対応するデータにインデックス付けするために記憶させる命令を含むことによって、対応するデータを抽出する。
【００４７】
再び304を参照すると、判定が否定の場合、プロセス300は発行者のURIを処理しない(310)。これにより、発行者と関連のある(たとえば、発行者によって発行される、または発行者コンテンツの表示が発行者によって承認される)ネイティブアプリケーションのみに関する発行者コンテンツのインデックス付けが容易になる。
【００４８】
必ずしもウェブサイトとは一致しないカスタムディープリンキングをサポートするネイティブアプリケーションの場合、異なるプロセスを使用してディープリンクを生成する。図4は、ネイティブアプリケーションに関するディープリンクを生成するための、別の例示のプロセスの流れ図である。プロセス400は、1つまたは複数のコンピュータのデータ処理装置に実装される。
【００４９】
プロセス400は、ネイティブアプリケーションに関するURIパターンを決定する(402)。たとえば、アプリケーションマニフェスト109は、URIスキームを決定するためにアクセスされ得る。URIスキームは、「トップレベル」のネイティブアプリケーションURIリソースを定めるために使用することができ、または、ネイティブアプリケーションに関してすでにインデックス付けされたURIを選択するために使用することができる。
【００５０】
プロセス400は、ネイティブアプリケーションをインスタンス生成し、URIパターンに基づいて第1のURIを選択し、ネイティブアプリケーション表示環境においてアプリケーションページを生成する(404)。たとえば、バーチャルマシンがインスタンス生成され、そのバーチャルマシン上でネイティブアプリケーションもまたインスタンス生成される。URIはネイティブアプリケーションに提供され、アプリケーションページがレンダリングされる。
【００５１】
プロセス400は、反復発見(iterative discovery)プロセスを開始する(406)。このプロセスは、URIの完全なセットが処理されるまで続く。
【００５２】
プロセス400は、アプリケーションページから、第1のアプリケーションページ中に含むアウトバウンドURIを決定する(408)。たとえば、ネイティブアプリケーションAPIは、アプリケーションページデータから、他のネイティブアプリケーションURIにリンクするURIを決定する。この決定は、たとえば、マニフェスト109から生成されたURIパターンに一致するように、アプリケーションページから抽出されたテキストを処理することにより、または、送出URI(outgoing URI)を定義するマークアップテキストを選択するAPIに基づいて、行われ得る。
【００５３】
プロセス400は、1つまたは複数のアウトバウンドURIを選択し、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成する(410)。いくつかの実装形態においては、すべての送出URIが選択される。他の実装形態においては、ネイティブアプリケーションのURIパターンに一致するアウトバウンドURIのみが選択される。
【００５４】
プロセス400は、1つまたは複数の後続のアプリケーションページのそれぞれに対して、アプリケーションページデータにインデックスでインデックス付けを行う(412)。上述のように、システム110は、バーチャルマシンまたは何らかの他の構成要素を使用して、インデックス付けするためにアプリケーションページデータを抽出することができる。
【００５５】
プロセス400は、反復発見プロセスが終了したかどうか判定する(414)。反復発見プロセスが終了した場合、方法400はネイティブアプリケーションのアプリケーションインデックス付けを終了する(416)。終了していない場合には、プロセス400はステップ406に戻り、新たな反復を開始する。
【００５６】
いくつかの実装形態において、実際のユーザがネイティブアプリケーション内のコンテンツを見るとき、ネイティブアプリケーションAPIを使用することにより、アプリケーションクローリングおよびインデキシングシステム120に、ユーザによって実際に見られているリンクを知らせることができる。アプリケーションクローリングおよびインデキシングシステム120は、上述の組織的な発見に加えて、この情報を追加のリンク源として使用することができる。さらに、アプリケーションクローリングおよびインデキシングシステム120はまた、リンクの人気に基づいてクローリングの優先順位付けを行うことができる。
【００５７】
主題に関する実施形態および本明細書に記載の動作は、デジタル電子回路、または、本明細書で開示した構造体およびその構造的同等物を含む、コンピュータソフトウェア、ファームウェアもしくはハードウェア、またはそれらのうちの1つまたは複数の組合せによって実装され得る。本明細書に記載の主題に関する実施形態は、データ処理装置によって実行されるかまたはそれらの動作を制御する、コンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。別法として、またはこれに加えて、プログラム命令は、データ処理装置によって実行するために、適切な受信装置に送信する情報を符号化するために生成される人工的に生成された伝搬信号、たとえば、機械生成された電気的、光学的または電磁的信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶回路基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せとすることができ、またはそれらに含まれてもよい。さらに、コンピュータ記憶媒体は伝搬信号ではないのに対して、コンピュータ記憶媒体は、人工的に生成された伝搬信号中に符号化されたコンピュータプログラム命令の発信元または宛先とすることができる。コンピュータ記憶媒体もまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数枚のCD、ディスク、または他の記憶デバイス)とすることができるか、またはそれらに含まれていてもよい。
【００５８】
本明細書に記載の動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されたまたは他のソースから受信されたデータに対して、データ処理装置によって実行された動作として実装され得る。
【００５９】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、またはこれらの複数もしくは組合せを含む、あらゆる種類のデータ処理用の装置、デバイスおよびマシンを包含する。装置はまた、ハードウェアに加えて、当該のコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、またはそれらのうちの1つもしくは複数の組合せ、を構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなど様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００６０】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタープリタ型言語、宣言型または手続き型言語を含む任意のプログラミング言語形式で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに適切な他のユニットとしての形式を含む、任意の形式において展開することができる。コンピュータプログラムは、ファイルシステム中のファイルに対応してもよいが、対応する必要はない。プログラムは、当該プログラムに割り当てられた単一ファイル、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)中の他のプログラムまたはデータ(たとえば、マークアップ言語文書中に記憶された1つまたは複数のスクリプト)を保持するファイルの一部に記憶され得る。コンピュータプログラムは、1つのサイトに配置された、または、複数のサイトにわたって分散され通信ネットワークによって相互に接続された、1つのコンピュータまたは複数のコンピュータ上で実行するために展開することができる。
【００６１】
本明細書に記載のプロセスフローおよび論理フローは、1つまたは複数のプログラマブルプロセッサが、1つまたは複数のコンピュータプログラムを実行して、入力データに作用し出力を生成することによってアクションを行うことにより実施され得る。コンピュータプログラムを実行するのに適切なプロセッサとしては、一例として、汎用マイクロプロセッサおよび特殊用途のマイクロプロセッサの両者、ならびに、任意の種類のデジタルコンピュータのうちのいずれか1つまたは複数のプロセッサが挙げられる。一般に、プロセッサは、リードオンリメモリまたはランダムアクセスメモリまたは両者から、命令およびデータを受け取る。コンピュータの重要な要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、たとえば、磁気ディスク、光磁気ディスク、または光ディスクなどデータを記憶するための1つまたは複数の大量記憶デバイスを含むか、または、それとの間でデータを受け取り、送信し、またはその両方を行うために、動作可能なようにそれに結合される。しかし、コンピュータはこうしたデバイスを有する必要はない。さらに、コンピュータは、ほんの少し名前を挙げるだけでも、たとえば、携帯電話、携帯情報端末(PDA)、携帯オーディオプレーヤもしくは携帯ビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または携帯記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)など、別のデバイスに埋め込むことができる。コンピュータプログラム命令およびデータを記憶するのに適切なデバイスとしては、一例として、たとえば、EPROM、EEPROMなど半導体メモリデバイス、ならびにフラッシュメモリデバイス、たとえば、内蔵ハードディスクまたはリムーバブルディスクなど磁気ディスク、光磁気ディスク、ならびに、CD-ROMおよびDVD-ROMディスクを含む、あらゆる形式の不揮発性メモリ、メディアおよびメモリデバイスが挙げられる。プロセッサおよびメモリは、特殊目的の論理回路によって追加され、またはその中に組み込むことができる。
【００６２】
ユーザとの対話操作を提供するために、本明細書に記載の本主題の実施形態は、情報をユーザに表示するための、たとえば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタなど表示デバイス、ならびに、ユーザがそれによって入力をコンピュータに提供することができる、キーボードおよびたとえばマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。同様に、ユーザとの対話操作を提供するために、他の種類のデバイスも使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形式の感覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信した要求に応答して、ウェブページをユーザのユーザデバイス上のウェブブラウザに送信するなど、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによってユーザと対話することができる。
【００６３】
本明細書に記載の本主題の実施形態は、たとえば、データサーバとしてのバックエンドコンポーネント、または、たとえばアプリケーションサーバなどミドルウェアコンポーネント、または、たとえば、それを通してユーザが本明細書に記載の本主題の実装形態と対話することができるグラフィカルユーザインタフェースもしくはウェブブラウザを有するユーザコンピュータなどフロントエンドコンポーネント、または、1つまたは複数のこれらのバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントのうちの任意の組合せを含む、コンピューティングシステムに実装され得る。システムのコンポーネントは、たとえば、通信ネットワークなどデジタルデータ通信の任意の形式または媒体によって、相互に接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、および、ピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)が挙げられる。
【００６４】
コンピューティングシステムは、ユーザおよびサーバを含むことができる。ユーザおよびサーバは、一般的には相互に離れており、通常は通信ネットワークを介して対話する。ユーザとサーバの関係は、それぞれのコンピュータ上で実行し、相互にユーザ/サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態において、サーバはデータ(たとえば、HTMLページ)をユーザデバイスに送信する(たとえば、ユーザデバイスと対話するユーザにデータを表示する、および、ユーザデバイスと対話するユーザからユーザ入力を受け取る目的で)。ユーザデバイスにおいて生成されるデータ(たとえば、ユーザ対話の結果)は、サーバにおいてユーザデバイスから受信され得る。
【００６５】
本明細書は、多くの特定の実装形態の詳細を含んでいるが、これらは、任意の発明の範囲、または特許請求の範囲を制限するものと解釈されるべきではなく、特定の発明の特定の実施形態に固有の特徴を説明したものと解釈されるべきである。本明細書において、別個の実施形態との関連で説明されたある特徴も、1つの実施形態において組み合わせて実装され得る。反対に、1つの実施形態との関連で説明された様々な特徴も、別個の複数の実施形態、または任意の適切な副結合において実装され得る。さらに、特徴が上にてある組合せにおいて動作すると説明され、そのように最初は特許請求され得るとしても、特許請求された組合せからの1つまたは複数の特徴は、いくつかの場合には組合せから実行され、その特許請求された組合せは、副結合または副結合の変形を対象とすることができる。
【００６６】
同様に、動作は図面において特定の順序で記載されているが、望ましい結果を達成するために、こうした動作が示された特定の順序または順番通りに実行される、または示されたすべての動作が実行されることが必要であると考えるべきではない。ある状況においては、マルチタスキングおよび並列処理が有利なことがある。さらに、上述の実施形態において、様々なシステムコンポーネントの区別は、すべての実施形態においてこうした区別が必要であると理解すべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、1つのソフトウェア製品に共に統合され、または複数のソフトウェア製品にパッケージ化され得ると理解されたい。
【００６７】
上述のとおり、本主題の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲内にある。いくつかの場合において、特許請求の範囲で述べられるアクションは、異なる順序で実行することができ、なお望ましい結果を達成することができる。さらに、添付の図面に記載したプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序または順番を必要とはしない。ある実装形態においては、マルチタスキングおよび並列処理が有利なことがある。
【符号の説明】
【００６８】
100  例示の環境
102  コンピュータネットワーク
104  リソース発行者ウェブサイト
105  ウェブリソース
106  アプリケーション発行者
107  ネイティブアプリケーション
108  ユーザデバイス
109  アプリケーションマニフェストファイル
110  検索エンジン
114  ネイティブアプリケーションインデックス
116  ウェブインデックス、検索結果ジェネレータ
120  検索エンジン、アプリケーションクローリングおよびインデキシングシステム
130  発行者バックエンド
132  発行者ストア
134  ウェブサーバ
136  ネイティブアプリケーションサーバ
202  発行者関連データ
204  データコレクタ
206  アプリケーションパッケージクローラ
208  URIスキームジェネレータ
210  URIスキームテーブル
212  URIセレクタ
214  URIプロセッサ
300  プロセス
400  プロセス
【図１】
0006370408.tif 000002
【図２】
0006370408.tif 000003
【図３】
0006370408.tif 000004
【図４】
0006370408.tif 000005