(57)【要約】  アプリケーションへの状態リンク（３６４）を含む検索結果（３６０）を生成する方法。本方法は、遠隔コンピュータデバイス（２００）から検索問合せ（２６２）を受信する段階、検索問合せに基づいてネイティブアプリケーション（２１８）の状態への状態リンクを生成する段階、及び状態リンクを遠隔コンピュータデバイスに提供する段階を含み、全てが処理デバイス（３１０）によるものである。状態リンクは、第三者アプリケーションへの１つ又はそれよりも多くの他のリンクと共に提供される。ネイティブアプリケーションは、第三者ネイティブアプリケーションである。ネイティブアプリケーションは、１つ又はそれよりも多くのバージョンを有する第三者アプリケーションに対応する。状態リンクは、ネイティブアプリケーションに対応するアプリケーションリソース識別子（３６５ｂ）を含み、かつ第三者アプリケーションのネイティブアプリケーションバージョン内の状態にアクセスするのに使用される。【選択図】      図１Ｂ
2016513827.tif 000002
【特許請求の範囲】
【請求項１】
処理デバイス（３１０）により、遠隔コンピュータデバイス（２００）から検索問合せ（２６２）を受信する段階と、
前記処理デバイス（３１０）により、前記検索問合せ（２６２）に基づいてネイティブアプリケーション（２１８）の状態への状態リンク（３６４）を生成する段階と、
前記処理デバイス（３１０）により、前記状態リンク（３６４）を前記遠隔コンピュータデバイス（２００）に提供する段階と、
を含む、方法。
【請求項２】
前記ネイティブアプリケーション（２１８）は、第三者ネイティブアプリケーション（２１８）である、請求項１に記載の方法。
【請求項３】
前記ネイティブアプリケーション（２１８）は、１つ又はそれよりも多くのバージョンを有する第三者アプリケーションに対応し、前記状態リンク（３６４）は、該ネイティブアプリケーション（２１８）に対応しかつ該第三者アプリケーションの該ネイティブアプリケーション（２１８）バージョンの前記状態にアクセスするのに使用されるアプリケーションリソース識別子（３６５ｂ）を含む、請求項１に記載の方法。
【請求項４】
前記状態リンク（３６４）は、前記第三者アプリケーションの同じ状態での該第三者アプリケーションに対応するウェブアプリケーションにアクセスするのに使用されるウェブリソース識別子（３６５ａ）を更に含む、請求項３に記載の方法。
【請求項５】
前記状態リンク（３６４）は、１つ又はそれよりも多くの他のアプリケーションリソース識別子（３６５ｂ）を含む、請求項３に記載の方法。
【請求項６】
前記状態リンク（３６４）を決定する段階が、
前記検索問合せ（２６２）に基づいてアプリケーションリソース識別子（３６５ｂ）を決定する段階と、
前記アプリケーションリソース識別子（３６５ｂ）を前記状態リンク（３６４）に埋め込む段階と、
を含む、請求項１に記載の方法。
【請求項７】
前記ネイティブアプリケーション（２１８）は、該ネイティブアプリケーション（２１８）を含む１つ又はそれよりも多くのバージョンを有する第三者アプリケーションに対応し、
前記アプリケーションリソース識別子（３６５ｂ）を決定する段階は、
前記検索問合せ（２６２）に基づいて前記第三者アプリケーションに関連付けられたサーバへの要求を生成する段階と、
前記第三者アプリケーションに関連付けられた前記サーバから応答を受信する段階と、
前記応答に基づいて前記アプリケーションリソース識別子（３６５ｂ）を生成する段階と、
を含む、請求項６に記載の方法。
【請求項８】
前記応答は、前記状態の前記第三者アプリケーションのウェブアプリケーションバージョンにアクセスするためのウェブリソース識別子（３６５ａ）を含み、前記アプリケーションリソース識別子（３６５ｂ）を生成する段階は、変換規則を使用して該ウェブリソース識別子（３６５ａ）を該アプリケーションリソース識別子（３６５ｂ）に変換する段階を含む、請求項７に記載の方法。
【請求項９】
前記アプリケーションリソース識別子（３６５ｂ）を決定する段階は、
前記ネイティブアプリケーション（２１８）に対応する指令テンプレート（３４６）を識別する段階であって、該指令テンプレート（３４６）が、該ネイティブアプリケーション（２１８）を示し、かつ状態パラメータを受信する１つ又はそれよりも多くのパラメータフィールドを含む、前記識別する段階と、
前記指令テンプレート（３４６）及び前記検索問合せ（２６２）に基づいて前記アプリケーションリソース識別子（３６５ｂ）を生成する段階と、
を含む、請求項６に記載の方法。
【請求項１０】
前記状態リンク（３６４）は、第三者アプリケーションへの１つ又はそれよりも多くの他の状態リンクと共に前記遠隔コンピュータデバイス（２００）に提供される、請求項１に記載の方法。
【請求項１１】
検索サーバ（３００）であって、
ネットワークインタフェースデバイス（２５０）と、
処理デバイス（３１０）と、
を含み、
前記処理デバイス（３１０）は、該処理デバイス（３１０）によって実行された時に該処理デバイス（３１０）をして
前記ネットワークインタフェースデバイス（２５０）を通じて遠隔コンピュータデバイス（２００）から検索問合せ（２６２）を受信させ、
前記検索問合せ（２６２）に基づいてネイティブアプリケーション（２１８）の状態への状態リンク（３６４）を生成させ、かつ
前記ネイティブアプリケーション（２１８）への前記状態リンク（３６４）を前記遠隔コンピュータデバイス（２００）に提供させる、
コンピュータ可読命令を実行する、特徴とする検索サーバ（３００）。
【請求項１２】
前記ネイティブアプリケーション（２１８）は、第三者ネイティブアプリケーション（２１８）である、請求項１１に記載の検索サーバ（３００）。
【請求項１３】
前記ネイティブアプリケーション（２１８）は、１つ又はそれよりも多くのバージョンを有する第三者アプリケーションに対応し、前記状態リンク（３６４）は、該ネイティブアプリケーション（２１８）に対応して該第三者アプリケーションの該ネイティブアプリケーション（２１８）バージョンの状態にアクセスするのに使用されるアプリケーションリソース識別子（３６５ｂ）を含む、請求項１１に記載の検索サーバ（３００）。
【請求項１４】
前記状態リンク（３６４）は、前記第三者アプリケーションの同じ状態での該第三者アプリケーションに対応するウェブアプリケーションにアクセスするのに使用されるウェブリソース識別子（３６５ａ）を更に含む、請求項１３に記載の検索サーバ（３００）。
【請求項１５】
前記状態リンク（３６４）は、１つ又はそれよりも多くの他のアプリケーションリソース識別子（３６５ｂ）を含む、請求項１３に記載の検索サーバ（３００）。
【請求項１６】
前記コンピュータ可読命令は、
前記検索問合せ（２６２）に基づいてアプリケーションリソース識別子（３６５ｂ）を決定し、かつ
前記アプリケーションリソース識別子（３６５ｂ）を前記状態リンク（３６４）に埋め込む、
ことにより、前記処理デバイス（３１０）をして前記状態リンク（３６４）を決定させる、請求項１１に記載の検索サーバ（３００）。
【請求項１７】
前記ネイティブアプリケーション（２１８）は、該ネイティブアプリケーション（２１８）を含む１つ又はそれよりも多くのバージョンを有する第三者アプリケーションに対応し、
前記コンピュータ可読命令は、
前記検索問合せ（２６２）に基づいて前記第三者アプリケーションに関連付けられたサーバへの要求を生成し、
前記第三者アプリケーションに関連付けられた前記サーバから応答を受信し、かつ
前記応答に基づいて前記アプリケーションリソース識別子（３６５ｂ）を生成する、
ことにより、前記処理デバイス（３１０）をして前記アプリケーションリソース識別子（３６５ｂ）を決定させる、請求項１６に記載の検索サーバ（３００）。
【請求項１８】
前記応答は、前記状態での前記第三者アプリケーションのウェブアプリケーションバージョンにアクセスするためのウェブリソース識別子（３６５ａ）を含み、
前記コンピュータ可読命令は、変換規則を使用して該ウェブリソース識別子（３６５ａ）を前記アプリケーションリソース識別子（３６５ｂ）に変換することにより、前記処理デバイス（３１０）をして該アプリケーションリソース識別子（３６５ｂ）を生成させる、請求項１７に記載の検索サーバ（３００）。
【請求項１９】
前記コンピュータ可読命令は、
前記ネイティブアプリケーション（２１８）に対応する指令テンプレート（３４６）であって、該ネイティブアプリケーション（２１８）を示し、かつ状態を受信する１つ又はそれよりも多くのパラメータフィールドを含む前記指令テンプレート（３４６）を識別し、かつ
前記指令テンプレート（３４６）及び前記検索問合せ（２６２）に基づいて前記アプリケーションリソース識別子（３６５ｂ）を生成する、
ことにより、前記処理デバイス（３１０）をして前記アプリケーションリソース識別子（３６５ｂ）を決定させる、請求項１６に記載の検索サーバ（３００）。
【請求項２０】
前記状態リンク（３６４）は、第三者アプリケーションへの１つ又はそれよりも多くの他の状態リンクと共に前記遠隔コンピュータデバイス（２００）に提供される、請求項１１に記載の検索サーバ（３００）。
【請求項２１】
方法であって、
処理デバイス（３１０）により、遠隔コンピュータデバイス（２００）から１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）を含む問合せを受信する段階と、
前記処理デバイス（３１０）により、前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）に対応する第三者アプリケーションのセットを識別する段階と、
を含み、
各第三者アプリケーションに対して、
前記処理デバイス（３１０）により、前記第三者アプリケーションに関連付けられたサーバに前記１つ又はそれよりも多くの問合せパラメータ（２６２，２６４）の少なくとも部分集合を送信する段階と、
前記処理デバイス（３１０）により、前記第三者アプリケーションに関連付けられた前記サーバから応答を受信する段階と、
前記処理デバイス（３１０）により、前記応答に基づいて前記第三者アプリケーションのネイティブアプリケーション（２１８）バージョンへの状態リンク（３６４）を生成する段階であって、該状態リンク（３６４）が、該第三者アプリケーションのネイティブアプリケーション（２１８）バージョンの状態へのアクセスを提供する、前記生成する段階と、
を含み、
方法が、更に
前記処理デバイス（３１０）により、前記状態リンク（３６４）を前記遠隔コンピュータデバイス（２００）に提供する段階、
を含む、方法。
【請求項２２】
前記状態リンク（３６４）は、前記ネイティブアプリケーション（２１８）バージョンへの参照と前記状態にアクセスするために該ネイティブアプリケーション（２１８）によって使用される該状態に対応する１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子（３６５ｂ）を含む、請求項２１に記載の方法。
【請求項２３】
前記状態リンク（３６４）は、前記第三者アプリケーションに関連付けられて該第三者アプリケーションのウェブアプリケーションバージョンをホストするウェブサーバ（１３０）のドメイン名と前記１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子（３６５ａ）を更に含む、請求項２２に記載の方法。
【請求項２４】
前記問合せパラメータ（２６２、２６４）を送信する段階は、前記第三者アプリケーションのウェブアプリケーションバージョンであるウェブアプリケーションをホストするウェブサーバ（１３０）に該１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）の少なくとも部分集合を送信する段階を含む、請求項２１に記載の方法。
【請求項２５】
前記問合せパラメータ（２６２、２６４）を送信する段階は、
複数の指令テンプレート（３４６）から前記第三者アプリケーションに対応する指令テンプレート（３６４）を選択する段階と、
前記指令テンプレート（３４６）と前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）の少なくとも部分集合とに基づいて、発信される要求をフォーマット設定する段階と、
前記発信される要求を前記ウェブサーバ（１３０）に送信する段階と、
を更に含む、請求項２４に記載の方法。
【請求項２６】
前記応答を受信する段階は、前記第三者アプリケーションに関連付けられたウェブサーバ（１３０）のドメイン名と前記ウェブアプリケーションの状態に対応して該状態にアクセスするために該ウェブアプリケーションによって使用される１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子（３６５ａ）を受信する段階を含む、請求項２５に記載の方法。
【請求項２７】
前記ネイティブアプリケーション（２１８）への前記状態リンク（３６４）を決定する段階は、前記ウェブリソース識別子（３６５ａ）を前記第三者アプリケーションの該ネイティブアプリケーション（２１８）バージョンへの参照と前記１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子（３６５ｂ）に変換する段階を含み、
前記遠隔コンピュータデバイス（２００）は、前記アプリケーションリソース識別子（３６５ａ）を使用して前記１つ又はそれよりも多くの状態パラメータによって示される状態に前記ネイティブアプリケーション（２１８）を起動するように構成される、請求項２６に記載の方法。
【請求項２８】
前記遠隔コンピュータデバイス（２００）は、前記状態リンク（３６４）を受信し、かつ前記ウェブリソース識別子（３６５ａ）を使用して前記ウェブアプリケーションバージョンにアクセスを試みる前に前記アプリケーションリソース識別子（３６５ｂ）を使用して前記ネイティブアプリケーション（２１８）バージョン上の状態にアクセスを試みるように構成される、請求項２７に記載の方法。
【請求項２９】
前記状態リンク（３６４）は、該状態を示すスクリーンショットを含む、請求項２１に記載の方法。
【請求項３０】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、１つ又はそれよりも多くの質問語を含む検索問合せ（２６２）を含む、請求項２１に記載の方法。
【請求項３１】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、前記遠隔コンピュータデバイス（２００）の地理位置情報、該遠隔コンピュータデバイス（２００）のオペレーティングシステム（２１２）、又は該遠隔コンピュータデバイス（２００）のユーザの識別子のうちの１つ又はそれよりも多くを更に含む、請求項２１に記載の方法。
【請求項３２】
検索サーバ（３００）であって、
ネットワークインタフェースデバイス（２５０）と、
処理デバイス（３１０）と、
を含み、
前記処理デバイス（３１０）は、該処理デバイス（３１０）によって実行された時に該処理デバイス（３１０）をして
遠隔コンピュータデバイス（２００）から１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）を含む問合せを受信させ、
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）に対応する第三者アプリケーションのセットを識別させ、かつ
各第三者アプリケーションに対して、
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）の少なくとも部分集合を前記第三者アプリケーションに関連付けられたサーバまで送信させ、
前記第三者アプリケーションに関連付けられた前記サーバから応答を受信させ、
前記第三者アプリケーションのネイティブアプリケーション（２１８）バージョンの状態へのアクセスを提供する該第三者アプリケーションのネイティブアプリケーション（２１８）バージョンへの状態リンク（３６４）を前記応答に基づいて生成させ、
更に、前記処理デバイス（３１０）をして
前記状態リンク（３６４）を前記遠隔コンピュータデバイス（２００）まで提供させる、
コンピュータ可読命令を実行する、検索サーバ（３００）。
【請求項３３】
前記状態リンク（３６４）は、前記ネイティブアプリケーション（２１８）バージョンへの参照と前記状態にアクセスするために該ネイティブアプリケーション（２１８）によって使用される該状態に対応する１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子（３６５ｂ）を含む、請求項３２に記載の検索サーバ。
【請求項３４】
前記状態リンク（３６４）は、前記第三者アプリケーションに関連付けられて該第三者アプリケーションのウェブアプリケーションバージョンをホストするウェブサーバ（１３０）のドメイン名と前記１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子（３６５ａ）を更に含む、請求項３３に記載の検索サーバ。
【請求項３５】
前記コンピュータ可読命令は、
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）の少なくとも部分集合を前記第三者アプリケーションのウェブアプリケーションバージョンであるウェブアプリケーションをホストするウェブサーバ（１３０）に送信することにより、
前記処理デバイス（３１０）をして前記問合せパラメータ（２６２、２６４）を送信させる、請求項３２に記載の検索サーバ。
【請求項３６】
前記コンピュータ可読命令は、
複数の指令テンプレート（３４６）から前記第三者アプリケーションに対応する指令テンプレート（３４６）を選択し、
前記指令テンプレート（３４６）と前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）の少なくとも部分集合とに基づいて、発信される要求をフォーマット設定し、かつ
前記発信される要求を前記ウェブサーバ（１３０）に送信する、
ことにより、更に前記処理デバイス（３１０）をして前記問合せパラメータ（２６２、２６４）を送信させる、請求項３５に記載の検索サーバ。
【請求項３７】
前記コンピュータ可読命令は、
前記第三者アプリケーションに関連付けられたウェブサーバ（３１０）のドメイン名と前記ウェブアプリケーションの状態に対応して該状態にアクセスするために該ウェブアプリケーションによって使用される１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子（３６５ａ）を受信する、
ことにより、前記処理デバイス（３１０）をして前記応答を受信させる、請求項３６に記載の検索サーバ。
【請求項３８】
前記コンピュータ可読命令は、
前記ウェブリソース識別子（３６５ａ）を前記第三者アプリケーションの前記ネイティブアプリケーション（２１８）バージョンへの参照と前記１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子（３６５ｂ）に変換することであって、前記遠隔コンピュータデバイス（２００）が、該アプリケーションリソース識別子（３６５ｂ）を使用して該１つ又はそれよりも多くの状態パラメータによって示される状態に該ネイティブアプリケーション（２１８）を起動するように構成される、前記変換すること、
により、前記処理デバイス（３１０）をして前記ネイティブアプリケーション（２１８）への前記状態リンク（３６４）を決定させる、請求項３７に記載の検索サーバ。
【請求項３９】
前記遠隔コンピュータデバイス（２００）は、前記状態リンク（３６４）を受信し、かつ前記ウェブリソース識別子（３６５ａ）を使用して前記ウェブアプリケーションバージョンにアクセスを試みる前に前記アプリケーションリソース識別子（３６５ｂ）を使用して前記ネイティブアプリケーション（２１８）バージョン上の状態へのアクセスを試みるように構成される、請求項３８に記載の検索サーバ。
【請求項４０】
前記状態リンク（３６４）は、該状態を示すスクリーンショットを含む、請求項３２に記載の検索サーバ。
【請求項４１】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、１つ又はそれよりも多くの質問語を含む検索問合せ（２６２）を含む、請求項３２に記載の検索サーバ。
【請求項４２】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、前記遠隔コンピュータデバイス（２００）の地理位置情報、該遠隔コンピュータデバイス（２００）のオペレーティングシステム（２１２）、又は該遠隔コンピュータデバイス（２００）のユーザの識別子のうちの１つ又はそれよりも多くを更に含む、請求項３２に記載の検索サーバ。
【請求項４３】
方法であって、
処理デバイス（３１０）により、遠隔コンピュータデバイス（２００）から１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）を含む問合せを受信する段階と、
前記処理デバイス（３１０）により、前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）に対応する第三者アプリケーションのセットを識別する段階と、
各第三者アプリケーションに対して、
前記処理デバイス（３１０）により、複数の指令テンプレート（３４６）から前記第三者アプリケーションに対応する指令テンプレート（３４６）を選択する段階と、
前記処理デバイス（３１０）により、前記指令テンプレート（３４６）と前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）の少なくとも部分集合とに基づいて前記第三者アプリケーションに対応するリソース識別子（３６５）を生成する段階と、
前記処理デバイス（３１０）により、前記リソース識別子（３６５）に基づいて状態リンク（３６４）を生成する段階と、
を含み、
方法が、更に
前記処理デバイス（３１０）により、前記状態リンク（３６４）を前記遠隔コンピュータデバイス（２００）に提供する段階、
を含む、方法。
【請求項４４】
前記遠隔コンピュータデバイス（２００）は、前記状態リンク（３６４）を使用して前記第三者アプリケーションにアクセスするように構成される、請求項４３に記載の方法。
【請求項４５】
前記リソース識別子（３６５）は、前記第三者アプリケーションのウェブアプリケーションバージョンをホストするウェブサーバ（１３０）のドメイン名を示すウェブリソース識別子（３６５ａ）であり、
前記ウェブリソース識別子（３６５ａ）は、前記問合せパラメータ（２６２、２６４）の前記少なくとも前記部分集合に対応する１つ又はそれよりも多くの状態パラメータを更に含む、請求項４４に記載の方法。
【請求項４６】
前記ウェブリソース識別子（３６５ａ）は、ユニフォームリソースロケータである、請求項４５に記載の方法。
【請求項４７】
前記リソース識別子（３６５）は、前記第三者アプリケーションのネイティブアプリケーション（２１８）バージョンを示すアプリケーションリソース識別子（３６５ｂ）であり、
前記アプリケーションリソース識別子（３６５ｂ）は、前記問合せパラメータ（２６２、２６４）の前記少なくとも前記部分集合に対応する１つ又はそれよりも多くの状態パラメータを更に含む、請求項４４に記載の方法。
【請求項４８】
前記指令テンプレート（３４６）は、前記問合せに含意された機能性に基づいて選択される、請求項４３に記載の方法。
【請求項４９】
前記指令テンプレート（３４６）は、前記第三者アプリケーションの特定の機能性を利用するようにフォーマット設定される、請求項４８に記載の方法。
【請求項５０】
前記状態リンク（３６４）は、少なくとも１つのアプリケーションリソース識別子（３６５）及び少なくとも１つのウェブリソース識別子（３６５ａ）を含み、
前記遠隔コンピュータデバイス（２００）は、前記状態リンク（３６４）を受信し、かつ前記ウェブリソース識別子（３６５ａ）を使用して前記ウェブアプリケーションバージョンにアクセスを試みる前に前記アプリケーションリソース識別子（３６５ｂ）を使用して前記ネイティブアプリケーション（２１８）バージョン上の状態にアクセスを試みるように構成される、請求項４３に記載の方法。
【請求項５１】
前記状態リンク（３６４）は、該状態を示すスクリーンショットを含む、請求項４３に記載の方法。
【請求項５２】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、１つ又はそれよりも多くの質問語を含む検索問合せ（２６２）を含む、請求項４３に記載の方法。
【請求項５３】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、前記遠隔コンピュータデバイス（２００）の地理位置情報、該遠隔コンピュータデバイス（２００）のオペレーティングシステム（２１２）、又は該遠隔コンピュータデバイス（２００）のユーザの識別子のうちの１つ又はそれよりも多くを更に含む、請求項４３に記載の方法。
【請求項５４】
検索サーバ（３００）であって、
ネットワークインタフェースデバイス（２５０）と、
処理デバイス（３１０）と、
を含み、
前記処理デバイス（３１０）は、該処理デバイス（３１０）によって実行された時に該処理デバイス（３１０）をして
遠隔コンピュータデバイス（２００）から１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）を含む問合せを受信させ、
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）に対応する第三者アプリケーションのセットを識別させ、かつ
各第三者アプリケーションに対して、
複数の指令テンプレート（３４６）から前記第三者アプリケーションに対応する指令テンプレート（３４６）を選択させ、
前記指令テンプレート（３４６）と前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）の少なくとも部分集合とに基づいて前記第三者アプリケーションに対応するリソース識別子（３６５）を生成させ、
前記リソース識別子（３６５）に基づいて状態リンク（３６４）を生成させ、
更に、前記処理デバイス（３１０）をして
前記状態リンク（３６４）を前記遠隔コンピュータデバイス（２００）に提供させる、
コンピュータ可読命令を実行する、特徴とする検索サーバ（３００）。
【請求項５５】
前記遠隔コンピュータデバイス（２００）は、前記状態リンク（３６４）を使用して前記第三者アプリケーションにアクセスするように構成される、請求項５４に記載の検索サーバ。
【請求項５６】
前記リソース識別子（３６５）は、前記第三者アプリケーションのウェブアプリケーションバージョンをホストするウェブサーバ（１３０）のドメイン名を示すウェブリソース識別子（３６５ａ）であり、
前記ウェブリソース識別子（３６５ａ）は、前記問合せパラメータ（２６２、２６４）の前記少なくとも前記部分集合に対応する１つ又はそれよりも多くの状態パラメータを更に含む、請求項５５に記載の検索サーバ。
【請求項５７】
前記リソース識別子（３６５）は、前記第三者アプリケーションのネイティブアプリケーション（２１８）バージョンを示すアプリケーションリソース識別子（３６５ｂ）であり、
前記アプリケーションリソース識別子（３６５ｂ）は、前記問合せパラメータ（２６２、２６４）の前記少なくとも前記部分集合に対応する１つ又はそれよりも多くの状態パラメータを更に含む、請求項５５に記載の検索サーバ。
【請求項５８】
前記指令テンプレート（３４６）は、前記問合せに含意された機能性に基づいて選択される、請求項５４に記載の検索サーバ。
【請求項５９】
前記指令テンプレート（３４６）は、前記第三者アプリケーションの特定の機能性を利用するようにフォーマット設定される、請求項５８に記載の検索サーバ。
【請求項６０】
前記状態リンク（３６４）は、少なくとも１つのアプリケーションリソース識別子（３６５）及び少なくとも１つのウェブリソース識別子（３６５ａ）を含み、
前記遠隔コンピュータデバイス（２００）は、前記状態リンク（３６４）を受信し、かつ前記ウェブリソース識別子（３６５ａ）を使用して前記ウェブアプリケーションバージョンにアクセスを試みる前に前記アプリケーションリソース識別子（３６５ｂ）を使用して前記ネイティブアプリケーション（２１８）バージョン上の状態にアクセスを試みるように構成される、請求項５４に記載の検索サーバ。
【請求項６１】
前記状態リンク（３６４）は、該状態を示すスクリーンショットを含む、請求項５４に記載の検索サーバ。
【請求項６２】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、１つ又はそれよりも多くの質問語を含む検索問合せ（２６２）を含む、請求項４３に記載の検索サーバ。
【請求項６３】
前記１つ又はそれよりも多くの問合せパラメータ（２６２、２６４）は、前記遠隔コンピュータデバイス（２００）の地理位置情報、該遠隔コンピュータデバイス（２００）のオペレーティングシステム（２１２）、又は該遠隔コンピュータデバイス（２００）のユーザの識別子のうちの１つ又はそれよりも多くを更に含む、請求項４３に記載の検索サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
〔優先権主張〕
この米国特許出願は、２０１３年３月１日出願の米国特許仮出願第６１／７７１，６１４号及び２０１４年１月６日出願の米国特許仮出願第６１／９２４，０３２号に対する優先権を主張するものであり、これらの開示は、本出願の開示の一部と見なされ、かつこれによりその全体が引用によって組み込まれる。
【０００２】
本発明の開示は、コンピュータ環境における検索の分野に関する。特に、本発明の開示は、アプリケーションへの状態リンクを含む検索結果の生成に関する。
【背景技術】
【０００３】
「ワールド・ワイド・ウェブ」（「ウェブ」）は、果てしない情報を収容し、それは、情報の爆発的な成長を体験し続けている。ユーザは、情報を収容するウェブページをユーザが閲覧することを可能にするウェブブラウザを通じて情報にアクセスする。急増するウェブページの数のために、ウェブ検索エンジンが、特定の情報をユーザが見出すことを助けるために利用可能になった。多くの検索エンジンは、３つの主な機能：巡回、指標付け、及び検索を実行する。ウェブ巡回プログラムは、ウェブページから情報を取り出すのに使用される自動ウェブブラウザである。ウェブ巡回プログラムが各ウェブページ上の情報を収集すると、この情報は、次に、検索エンジンデータベース内で指標付けされる。指標付けは、ウェブ巡回プログラムによって収集された情報を構文解析及び格納し、情報の取り出しを促進させる。検索処理は、ユーザが検索エンジンに検索問合せを入力した時に開始される。検索エンジンは、その索引を参照し、提供された問合せに従って最良適合ウェブページの結果を提供する。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の開示の１つの態様は、アプリケーションへの状態リンクを含む検索結果を生成する方法を提供する。本方法は、遠隔コンピュータデバイスから検索問合せを受信する段階、検索問合せに基づいてネイティブアプリケーションの状態への状態リンクを生成する段階、及び状態リンクを遠隔コンピュータデバイスに提供する段階を含み、全てが処理デバイスによるものである。一部の実施では、状態リンクは、第三者アプリケーションへの１つ又はそれよりも多くの他の状態リンクと共に遠隔コンピュータデバイスに提供される。一部の実施では、ネイティブアプリケーションは、第三者ネイティブアプリケーションである。ネイティブアプリケーションは、１つ又はそれよりも多くのバージョンを有する第三者アプリケーションに対応することができる。状態リンクは、ネイティブアプリケーションに対応するアプリケーションリソース識別子を含むことができ、かつ第三者アプリケーションのネイティブアプリケーションバージョン内の状態にアクセスするのに使用される。
【０００５】
本発明の開示の実施は、以下の特徴の１つ又はそれよりも多くを含むことができる。一部の実施では、状態リンクは、第三者アプリケーションの同じ状態での第三者アプリケーションに対応するウェブアプリケーションにアクセスするのに使用されるウェブリソース識別子を更に含む。状態リンクは、１つ又はそれよりも多くの他のアプリケーションリソース識別子を含むことができる。
【０００６】
一部の例では、状態リンクを決定する段階は、検索問合せに基づいてアプリケーションリソース識別子を決定する段階及び状態リンクにアプリケーションリソース識別子を埋め込む段階を含む。これに加えて又はこれに代えて、ネイティブアプリケーションは、第三者アプリケーションに対応することができる。第三者アプリケーションは、ネイティブアプリケーションを含む１つ又はそれよりも多くのバージョンを有する。アプリケーションリソース識別子を決定する段階は、検索問合せに基づいて第三者アプリケーションに関連付けられたサーバへの要求を生成する段階、第三者アプリケーションに関連付けられたサーバからの応答を受信する段階、及び応答に基づいてアプリケーションリソース識別子を生成する段階を含むことができる。この応答は、この状態での第三者アプリケーションのウェブアプリケーションバージョンにアクセスするためのウェブリソース識別子を含むことができる。アプリケーションリソース識別子を生成する段階は、変換規則を使用してウェブリソース識別子をアプリケーションリソース識別子に変換する段階を含むことができる。
【０００７】
一部の実施では、アプリケーションリソース識別子を決定する段階は、ネイティブアプリケーションに対応する指令テンプレートを識別する段階及び指令テンプレート及び検索問合せに基づいてアプリケーションリソース識別子を生成する段階を含む。指令テンプレートは、ネイティブアプリケーションを示し、かつ状態パラメータを受け入れる１つ又はそれよりも多くのパラメータフィールドを含む。
【０００８】
本発明の開示の別の態様は、検索サーバを提供する。検索サーバは、ネットワークインタフェースデバイス及び処理デバイスを含む。処理デバイスは、コンピュータ可読命令を実行する。命令が処理デバイスによって実行された時に、この命令は、処理デバイスをしてネットワークインタフェースデバイスを通じて遠隔コンピュータデバイスから検索問合せを受信させ、検索問合せに基づいてネイティブアプリケーションの状態への状態リンクを生成させ、かつネイティブアプリケーションへの状態リンクを遠隔コンピュータデバイスに提供させる。状態リンクは、第三者アプリケーションへの１つ又はそれよりも多くの他の状態リンクと共に遠隔コンピュータデバイスに提供することができる。ネイティブアプリケーションは、第三者ネイティブアプリケーションである。ネイティブアプリケーションは、１つ又はそれよりも多くのバージョンを有する第三者アプリケーションに対応する。状態リンクは、ネイティブアプリケーションに対応するアプリケーションリソース識別子を含み、かつ第三者アプリケーションのネイティブアプリケーションバージョンの状態にアクセスするのに使用される。状態リンクは、第三者アプリケーションの同じ状態での第三者アプリケーションに対応するウェブアプリケーションにアクセスするのに使用されるウェブリソース識別子を更に含む。状態リンクは、１つ又はそれよりも多くの他のアプリケーションリソース識別子を含む。
【０００９】
一部の実施では、コンピュータ可読命令は、検索問合せに基づいてアプリケーションリソース識別子を決定し、かつアプリケーションリソース識別子を状態リンクに埋め込むことにより、処理デバイスをして状態リンクを決定させる。ネイティブアプリケーションは、第三者アプリケーションに対応することができる。第三者アプリケーションは、ネイティブアプリケーションを含む１つ又はそれよりも多くのバージョンを有することができる。一部の実施では、コンピュータ可読命令は、検索問合せに基づいて第三者アプリケーションに関連付けられたサーバへの要求を生成し、第三者アプリケーションに関連付けられたサーバから応答を受信し、かつ応答に基づいてアプリケーションリソース識別子を生成することにより、処理デバイスをしてアプリケーションリソース識別子を決定させる。
【００１０】
一部の例では、この応答は、その状態での第三者アプリケーションのウェブアプリケーションバージョンにアクセスするためのウェブリソース識別子を含む。一部の実施では、コンピュータ可読命令は、変換規則を使用してウェブリソース識別子をアプリケーションリソース識別子に変換することにより、処理デバイスをしてアプリケーションリソース識別子を生成させる。コンピュータ可読命令は、ネイティブアプリケーションに対応する指令テンプレートを識別し、かつ指令テンプレート及び検索問合せに基づいてアプリケーションリソース識別子を生成することにより、処理デバイスをしてアプリケーションリソース識別子を決定させる。指令テンプレートは、ネイティブアプリケーションを示し、かつ状態パラメータを受け入れる１つ又はそれよりも多くのパラメータフィールドを含む。
【００１１】
本発明の開示の別の態様は、アプリケーションへの状態リンクを含む検索結果を生成する方法を提供する。本方法は、遠隔コンピュータデバイスから１つ又はそれよりも多くの問合せパラメータを含む問合せを受信する段階及び１つ又はそれよりも多くの問合せパラメータに対応する第三者アプリケーションのセットを識別する段階を含み、全てが処理デバイスによるものである。各第三者アプリケーションに対して、本方法は、１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合を第三者アプリケーションに関連付けられたサーバに送信する段階、第三者アプリケーションに関連付けられたサーバからの応答を受信する段階、及び応答に基づいて第三者アプリケーションのネイティブアプリケーションバージョンへの状態リンクを生成する段階を含む。本方法は、遠隔コンピュータデバイスに状態リンクを提供する段階を更に含む。１つ又はそれよりも多くの問合せパラメータは、１つ又はそれよりも多くの質問語を含む検索問合せを含む。１つ又はそれよりも多くの問合せパラメータは、遠隔コンピュータデバイスの地理位置情報、遠隔コンピュータデバイスのオペレーティングシステム、又は遠隔コンピュータデバイスのユーザの識別子のうちの１つ又はそれよりも多くを更に含む。
【００１２】
一部の例では、状態リンクは、第三者アプリケーションのネイティブアプリケーションバージョンの状態へのアクセスを提供する。一部の実施では、状態リンクは、状態を示すスクリーンショットを含む。一部の実施では、状態リンクは、ネイティブアプリケーションバージョンへの参照と状態に対応する１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子を含む。１つ又はそれよりも多くの状態パラメータは、状態にアクセスするためにネイティブアプリケーションによって使用される。これに加えて又はこれに代えて、状態リンクは、第三者アプリケーションに関連付けられたウェブサーバのドメイン名と１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子を含むことができる。ウェブサーバは、第三者アプリケーションのウェブアプリケーションバージョンをホストする。
【００１３】
一部の例では、問合せパラメータを送信する段階は、１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合を第三者アプリケーションのウェブアプリケーションバージョンであるウェブアプリケーションをホストするウェブサーバに送信する段階を含む。問合せパラメータを送信する段階は、複数の指令テンプレートから第三者アプリケーションに対応する指令テンプレートを選択する段階、指令テンプレート及び１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合に基づいて、発信される要求をフォーマット設定する段階、及び発信される要求をウェブサーバに送信する段階を更に含むことができる。
【００１４】
一部の実施では、応答を受信する段階は、第三者アプリケーションに関連付けられたウェブサーバのドメイン名と状態にアクセスするためにウェブアプリケーションによって使用されるウェブアプリケーションの状態に対応する１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子を受信する段階を含む。ネイティブアプリケーションへの状態リンクを決定する段階は、ウェブリソース識別子を第三者アプリケーションのネイティブアプリケーションバージョンへの参照と１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子に変換する段階を含む。遠隔コンピュータデバイスは、アプリケーションリソース識別子を使用してネイティブアプリケーションを１つ又はそれよりも多くの状態パラメータによって示される状態に起動するように構成される。遠隔コンピュータデバイスは、状態リンクを受信し、かつウェブリソース識別子を使用してウェブアプリケーションバージョンにアクセスを試みる前にアプリケーションリソース識別子を使用してネイティブアプリケーションバージョン上の状態へのアクセスを試みるように構成される。
【００１５】
本発明の開示の更に別の態様は、アプリケーションへの状態リンクを含む検索結果を生成するための検索サーバを提供する。検索サーバは、ネットワークインタフェースデバイス及び処理デバイスを含む。処理デバイスは、コンピュータ可読命令が処理デバイスによって実行された時に処理デバイスをして遠隔デバイスからの１つ又はそれよりも多くの問合せパラメータを含む問合せを受信させ、かつ１つ又はそれよりも多くの問合せパラメータに対応する第三者アプリケーションのセットを識別させるコンピュータ可読命令を実行する。各第三者アプリケーションに対して、処理デバイスは、１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合を第三者アプリケーションに関連付けられたサーバに送信し、第三者アプリケーションに関連付けられたサーバから応答を受信し、かつ応答に基づいて第三者アプリケーションのネイティブアプリケーションバージョンへの状態リンクを生成する。処理デバイスは、状態リンクを遠隔コンピュータデバイスに提供する。１つ又はそれよりも多くの問合せパラメータは、１つ又はそれよりも多くの質問語を含む検索問合せを含む。１つ又はそれよりも多くの問合せパラメータは、遠隔コンピュータデバイスの地理位置情報、遠隔コンピュータデバイスのオペレーティングシステム、又は遠隔コンピュータデバイスのユーザの識別子のうちの１つ又はそれよりも多くを更に含むことができる。
【００１６】
一部の実施では、状態リンクは、第三者アプリケーションのネイティブアプリケーションバージョンの状態へのアクセスを提供し、かつ状態リンクを遠隔コンピュータデバイスに提供する。一部の実施では、状態リンクは、ネイティブアプリケーションバージョンへの参照と状態に対応する１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子を含む。１つ又はそれよりも多くの状態パラメータは、状態にアクセスするためにネイティブアプリケーションによって使用することができる。これに加えて又はこれに代えて、状態リンクは、第三者アプリケーションに関連付けられたウェブサーバのドメイン名と１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子を更に含むことができる。ウェブサーバは、第三者アプリケーションのウェブアプリケーションバージョンをホストする。コンピュータ可読命令は、１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合を第三者アプリケーションのウェブアプリケーションバージョンであるウェブアプリケーションをホストするウェブサーバに送信することにより、処理デバイスをして問合せパラメータを送信させる。一部の実施では、状態リンクは、状態を示すスクリーンショットを含む。
【００１７】
一部の例では、コンピュータ可読命令は、複数の指令テンプレートから第三者アプリケーションに対応する指令テンプレートを選択し、指令テンプレート及び１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合に基づいて発信される要求をフォーマット設定し、かつ発信される要求をウェブサーバに送信することにより、処理デバイスをして問合せパラメータを送信させる。これに加えて又はこれに代えて、コンピュータ可読命令は、第三者アプリケーションに関連付けられたウェブサーバのドメイン名と状態にアクセスするためにウェブアプリケーションによって使用されるウェブアプリケーションの状態に対応する１つ又はそれよりも多くの状態パラメータとを示すウェブリソース識別子を受信することにより、処理デバイスをして応答を受信させることができる。
【００１８】
一部の実施では、コンピュータ可読命令は、ウェブリソース識別子を第三者アプリケーションのネイティブアプリケーションバージョンへの参照と１つ又はそれよりも多くの状態パラメータとを示すアプリケーションリソース識別子に変換することにより、処理デバイスをしてネイティブアプリケーションへの状態リンクを決定させる。遠隔コンピュータデバイスは、アプリケーションリソース識別子を使用してネイティブアプリケーションを１つ又はそれよりも多くの状態パラメータによって示される状態に起動するように構成される。一部のシナリオでは、遠隔コンピュータデバイスは、状態リンクを受信し、かつウェブリソース識別子を使用してウェブアプリケーションバージョンにアクセスを試みる前にアプリケーションリソース識別子を使用してネイティブアプリケーションバージョン上の状態にアクセスを試みるように構成することができる。
【００１９】
本発明の開示の更に別の態様は、アプリケーションへの状態リンクを含む検索結果を生成する方法を提供する。本方法は、遠隔コンピュータデバイスから１つ又はそれよりも多くの問合せパラメータを含む問合せを受信する段階及び１つ又はそれよりも多くの問合せパラメータに対応する第三者アプリケーションのセットを識別する段階を含む。各第三者アプリケーションに対して、本方法は、複数の指令テンプレートから第三者アプリケーションに対応する指令テンプレートを選択する段階、指令テンプレート及び１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合に基づいて第三者アプリケーションに対応するリソース識別子を生成する段階、及びリソース識別子に基づいて状態リンクを生成する段階を含む。本方法は、状態リンクを遠隔コンピュータデバイスに提供する段階を更に含み、全てが処理デバイスによるものである。１つ又はそれよりも多くの問合せパラメータは、１つ又はそれよりも多くの質問語を含む検索問合せを含み、かつ遠隔コンピュータデバイスの地理位置情報、オペレーティングシステム、又は識別子のうちの１つ又はそれよりも多くを含むことができる。指令テンプレートは、問合せに含意された機能性に基づいて選択され、かつ第三者アプリケーションの特定機能を利用するようにフォーマット設定することができる。
【００２０】
遠隔コンピュータデバイスは、状態リンクを使用して第三者アプリケーションにアクセスするように構成することができる。一部の例では、リソース識別子は、第三者アプリケーションのウェブアプリケーションバージョンをホストするウェブサーバのドメイン名を示すウェブリソース識別子である。ウェブリソース識別子は、問合せパラメータの少なくとも部分集合に対応する１つ又はそれよりも多くの状態パラメータを含むことができる。一部の実施では、ウェブリソース識別子は、ユニフォームリソースロケータである場合がある。リソース識別子は、第三者アプリケーションのネイティブアプリケーションバージョンを示すアプリケーションリソース識別子である場合がある。アプリケーションリソース識別子は、問合せパラメータの少なくとも部分集合に対応する１つ又はそれよりも多くの状態パラメータを更に含むことができる。
【００２１】
一部の実施では、状態リンクは、少なくとも１つのアプリケーションリソース識別子及び少なくとも１つのウェブリソース識別子を含む。遠隔コンピュータデバイスは、状態リンクを受信し、かつウェブリソース識別子を使用してウェブアプリケーションバージョンにアクセスを試みる前にアプリケーションリソース識別子を使用してネイティブアプリケーションバージョン上の状態にアクセスを試みるように構成することができる。一部の実施では、状態リンクは、状態を示すスクリーンショットを含む。
【００２２】
本発明の開示の更に別の態様は、アプリケーションへの状態リンクを含む検索結果を生成するための検索サーバを提供する。検索サーバは、ネットワークインタフェースデバイス及びコンピュータ可読命令を実行する処理デバイスを含む。命令が実行された時に、処理デバイスは、遠隔コンピュータデバイスから１つ又はそれよりも多くの問合せパラメータを含む問合せを受信し、かつ１つ又はそれよりも多くの問合せパラメータに対応する第三者アプリケーションのセットを識別する。各第三者アプリケーションに対して、処理デバイスは、複数の指令テンプレートから第三者アプリケーションに対応する指令テンプレートを選択し、指令テンプレート及び１つ又はそれよりも多くの問合せパラメータの少なくとも部分集合に基づいて第三者アプリケーションに対応するリソース識別子を生成し、かつリソース識別子に基づいて状態リンクを生成する。処理デバイスは、状態リンクを遠隔コンピュータデバイスに提供する。指令テンプレートは、問合せに含意された機能性に基づいて選択することができ、かつ第三者アプリケーションの特定機能を利用するようにフォーマット設定することができる。遠隔コンピュータデバイスは、状態リンクを使用して第三者アプリケーションにアクセスするように構成することができる。
【００２３】
一部のシナリオでは、リソース識別子は、第三者アプリケーションのウェブアプリケーションバージョンをホストするウェブサーバのドメイン名を示すウェブリソース識別子である。ウェブリソース識別子は、問合せパラメータの少なくとも部分集合に対応する１つ又はそれよりも多くの状態パラメータを更に含むことができる。
【００２４】
一部のシナリオでは、リソース識別子は、第三者アプリケーションのネイティブアプリケーションバージョンを示すアプリケーションリソース識別子である。アプリケーションリソース識別子は、問合せパラメータの少なくとも部分集合に対応する１つ又はそれよりも多くの状態パラメータを更に含むことができる。
【００２５】
一部の実施では、状態リンクは、少なくとも１つのアプリケーションリソース識別子及び少なくとも１つのウェブリソース識別子を含むことができる。遠隔コンピュータデバイスは、状態リンクを受信し、かつウェブリソース識別子を使用してウェブアプリケーションバージョンにアクセスを試みる前にアプリケーションリソース識別子を使用してネイティブアプリケーションバージョン上の状態にアクセスを試みるように構成される。状態リンクは、状態を示すスクリーンショットを含むことができる。
【００２６】
様々な図面の同じ参照記号は、同じ要素を示している。
【図面の簡単な説明】
【００２７】
【図１Ａ】検索を実行するための例示的システムを示す図である。
【図１Ｂ】検索を実行するための例示的システムを示す図である。
【図２】遠隔コンピュータデバイスの構成要素の例示的セットを示す図である。
【図３】検索サーバの構成要素の例示的セットを示す図である。
【図４Ａ】問合せパラメータを１つ又はそれよりも多くの第三者アプリケーションに関連付けられたサーバに送信する方法のための作動の例示的セットを示す図である。
【図４Ｂ】問合せパラメータを１つ又はそれよりも多くの第三者アプリケーションに関連付けられたサーバに送信する方法のための作動の例示的セットを示す図である。
【図５】遠隔コンピュータデバイスからの問合せを処理する方法のための作動の例示的セットを示す図である。
【図６】遠隔コンピュータデバイスからの問合せを処理する方法のための作動の例示的セットを示す図である。
【図７Ａ】遠隔コンピュータデバイス上で実行することができる検索の様々な例を示す図である。
【図７Ｂ】遠隔コンピュータデバイス上で実行することができる検索の様々な例を示す図である。
【図８Ａ】遠隔コンピュータデバイス上で実行することができる検索の様々な例を示す図である。
【図８Ｂ】遠隔コンピュータデバイス上で実行することができる検索の様々な例を示す図である。
【図９Ａ】遠隔コンピュータデバイス上で実行することができる検索の様々な例を示す図である。
【図９Ｂ】遠隔コンピュータデバイス上で実行することができる検索の様々な例を示す図である。
【図１０】遠隔コンピュータデバイス上で実行することができる検索の様々な例を示す図である。
【図１１Ａ】問合せを処理する方法のための作動の例示的セットを示す図である。
【図１１Ｂ】問合せを処理する方法のための作動の例示的セットを示す図である。
【図１２Ａ】問合せを処理する方法のための作動の例示的セットを示す図である。
【図１２Ｂ】問合せを処理する方法のための作動の例示的セットを示す図である。
【図１３】機械可読媒体からの命令を読み取ってプロセッサ（又はコントローラ）内でそれらを実行することができる例示的機械の構成要素の一実施形態を示す図である。
【発明を実施するための形態】
【００２８】
図及び以下の説明は、単に例示的な好ましい実施形態に関するものである。以下の説明から、本明細書に開示する構造及び方法の代替実施形態は、主張する原理から逸脱することなく使用することができる実行可能な代替として容易に認識されることに注意しなければならない。
【００２９】
その例を添付の図に例示するいくつかの実施形態を詳しく参照する。実行可能であれば、類似又は同様の参照番号を図に使用することができ、類似又は同様の機能を示すことができることに注意されたい。図は、例示的な目的だけに開示するシステム（又は方法）の実施形態を示している。当業者は、本明細書に例示する構造及び方法の他の実施形態を本明細書に説明する原理から逸脱することなく使用することができることを以下の説明から容易に理解するであろう。
【００３０】
図１Ａ及び１Ｂは、検索を実行するための例示的システム１０を示している。システム１０は、ネットワーク１１０を通じて１つ又はそれよりも多くの遠隔コンピュータデバイス２００と通信する検索サーバ３００を含む。遠隔コンピュータデバイス２００は、例えば、移動コンピュータデバイス（例えば、スマートフォン２００ａ又はタブレットコンピュータ２００ｂ）、固定コンピュータデバイス２００ｃ（例えば、デスクトップコンピュータ又はラップトップデバイス）、ウェアラブルコンピュータ、ビデオゲームコンソール、スマート家電、及び／又はユーザインタフェース及びネットワークインタフェースデバイスを含むいずれかの他の適切なデバイスであって、ユーザインタフェースデバイス及びネットワークインタフェースデバイスを含むデバイスを指すことができる。検索サーバ３００は、ネットワーク１１０を通じてアプリケーションサーバ１２０及びウェブサーバ１３０と通信することができる。検索サーバ３００及び遠隔コンピュータデバイス２００を以下に説明する。「サーバ」という語は、遠隔コンピュータデバイス２００のようなクライアントデバイス又は他のサーバに主としてサービスを提供するコンピュータデバイスを指すことができる。図１Ａ及び１Ｂは独立型（standalone）サーバを示しているが、検索サーバ３００を１つ又はそれよりも多くのデータセンターのデバイスの集合にすることができる。これらのデバイスは、独立して又は分散方式で作動させることができる。図１Ａ及び１Ｂは、各それぞれのデバイスタイプの１つを示しているが、システム１０は、デバイスのいずれの数及び／又は組合せを含むことができる。
【００３１】
作動において、遠隔コンピュータデバイス２００は、ユーザが検索問合せ２６２を入力することを可能にするグラフィカルユーザインタフェース（ＧＵＩ）２５０を表示する検索アプリケーション２１４を少なくとも一部実行することができる。検索問合せ２６２は、遠隔コンピュータデバイス２００が検索サーバ３００に提供する問合せパラメータであり、検索サーバ３００が検索結果３６０を決定するために使用する。例えば、ユーザは、タッチスクリーンキーパッド、機械的キーパッドを使用して、及び／又は音声認識を通じてＧＵＩ２５０の検索バー２５２（検索ボックスなど）に検索問合せ２６２を入力することができる。検索問合せ２６２は１つ又はそれよりも多くの質問語を含むことができる。質問語は、検索問合せ２６２におけるワード、数字、及び／又は記号を指すことができる。ユーザは、検索アプリケーション２１４のＧＵＩ２５０と対話して検索問合せ２６２を検索サーバ３００に送信することができる。例えば、図１Ｂに関して、ユーザは、検索問合せ２６２（すなわち、「深夜の夕食」）を入力し、検索問合せ２６２を検索サーバ３００に送信するためにＧＵＩ２５０の検索ボタン２５４を選択（例えば、タッチ又はクリック）することができる。
【００３２】
一部の例では、遠隔コンピュータデバイス２００（検索アプリケーション２１４など）は、追加の問合せパラメータ２６４を検索問合せ２６２と共に検索サーバ３００に送信することができる。追加の問合せパラメータ２６４は、例えば、プラットフォームデータ（例えば、デバイスタイプ、オペレーティングシステムバージョン、ウェブブラウザバージョン、遠隔コンピュータデバイス２００にインストールされているネイティブアプリケーションのリスト）、地理位置情報データ（遠隔コンピュータデバイス２００の位置など）、遠隔コンピュータデバイス２００のユーザのアイデンティティ（ユーザ名など）、ユーザプリファレンス（ユーザの言語プリファレンス、ユーザの位置プリファレンス、ユーザが無料アプリケーション又は有料アプリケーションを好むか否か、ユーザの閲覧履歴など）、パートナー固有のデータ、及び／又は他の適切なデータを含むことができる。一部の実施では、検索アプリケーション２１４は、検索問合せ２６２及び追加の検索パラメータ２６４を問合せラッパー２６０にまとめることができる。問合せラッパー２６０は、検索サーバ３００によって実施される方式によって定義されるフォーマットで問合せパラメータ２６２、２６４を含むことができる。一部の実施では、追加の問合せパラメータ２６４の１つ又はそれよりも多くは、検索サーバ３００のキャッシュに格納することができ、それによって追加の問合せパラメータ２６４を問合せラッパー２６０の受信に応答して探すことができる。検索サーバ３００は、問合せラッパー２６０に含まれる問合せパラメータ２６２、２６４の１つ又はそれよりも多くを使用して検索結果３６０を生成することができる。
【００３３】
検索アプリケーション２１４は、クライアントウェブアプリケーション（例えば、ウェブブラウザなど）、ネイティブアプリケーション、及び／又はオペレーティングシステムの一部として実行することができる。「ネイティブアプリケーション」は、遠隔コンピュータデバイス２００の処理デバイスによって少なくとも一部実行されるアプリケーションである。「ウェブアプリケーション」は、ウェブサーバ１３０によって少なくとも一部実行され、遠隔コンピュータデバイス２００のウェブブラウザを通じて遠隔コンピュータデバイス２００によってアクセスされるアプリケーションである。一部の例では、検索アプリケーション２１４は、検索サーバ３００に関連付けられるか又は検索サーバ３００によってアフィリエイトされた当事者が検索サーバ３００の検索機能へのアクセスを遠隔ユーザコンピュータデバイス２００に提供するために開発されたアプリケーションである。
【００３４】
一部の実施では、検索アプリケーション２１４は、パートナーデバイス１４０と通信するように構成される。パートナーデバイス１４０は、遠隔コンピュータデバイス２００から問合せパラメータ２６２、２６４を受信して検索サーバ３００に提供する。検索サーバ３００は、検索結果３６０をパートナーデバイス１４０に提供する。パートナーデバイス１４０は、検索結果３６０を遠隔コンピュータデバイス２００に通信することができる。パートナーデバイス１４０は、検索結果３６０を処理するか又はコンテンツ（広告、視覚的指示子、及び／又は追加の結果オブジェクト３６２など）を検索結果３６０に追加することができる。
【００３５】
検索サーバ３００は、検索問合せ２６２及び／又は他の問合せパラメータ２６４を受信し、検索問合せ２６２及び／又は他の問合せパラメータ２６４に対応する検索結果３６０のセットを決定する。検索結果３６０は、１つ又はそれよりも多くの結果オブジェクト３６２を含むことができる。結果オブジェクト３６２は、遠隔コンピュータデバイス２００によって表示することができる遠隔コンピュータデバイス２００に提供されるデータを指すことができる。第三者アプリケーションに対応する結果オブジェクト３６２は、第三者アプリケーションの状態への１つ又はそれよりも多くの状態リンク３６４、第三者アプリケーションに対応する１つ又はそれよりも多くの視覚的指示子３６６（例えば、第三者アプリケーションのアイコン、第三者アプリケーションの状態に対応するエンティティのロゴ又は画像、及び／又は第三者アプリケーションのスクリーンショットなど）、及び第三者アプリケーションに対応する他のデータ３６８（第三者アプリケーションに対応するランキング、格付け、及び／又は説明、及び／又は第三者アプリケーションの状態に対応するエンティティなど）を含むことができる。
【００３６】
状態リンク３６４は、遠隔コンピュータデバイス２００のユーザインタフェースを通じてユーザが選択すること（例えば、タッチ）ができるテキスト及び／又は画像を含むオブジェクトを指すことができる。遠隔コンピュータデバイス２００は、状態リンク３６４を表示し、一部の実施では状態リンク３６４を描画する。各ユーザ選択可能状態リンク３６４は、第三者アプリケーションの特定の状態にアクセスするための１つ又はそれよりも多くのリソース識別子３６５を含むことができる。リソース識別子３６５は、第三者アプリケーションの特定の状態を指すことができる文字、数字、及び／又は符号（character）の一連の列である。リソース識別子のタイプは、ウェブリソース識別子３６５ａ及びアプリケーションリソース識別子３６５ｂを含む。ウェブリソース識別子３６５ａ（ＵＲＬなど）は、ウェブアプリケーションの状態にアクセス可能とするように使用される。ウェブリソース識別子３６５ａは、ウェブアプリケーションを提供するウェブサーバ１３０のドメインへの参照及びウェブサーバ１３０がアプリケーションの特定の状態にアクセスするために使用する１つ又はそれよりも多くの状態パラメータの参照を含むことができる。アプリケーションリソース識別子３６５ｂは、ネイティブアプリケーションの状態にアクセス可能となるように使用される。アプリケーションリソース識別子３６５ｂは、遠隔コンピュータデバイス２００によって起動されるネイティブアプリケーションの参照及びアプリケーションの特定の状態にアクセスするために遠隔コンピュータデバイス２００によって使用することができる１つ又はそれよりも多くの状態パラメータの参照を含むことができる。
【００３７】
状態リンク３６４は、１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂ及びウェブリソース識別子３６５ａを含むことができ、それによって、ユーザが状態リンク３６４を選択した時に、遠隔コンピュータデバイス２００は、アプリケーションリソース識別子３６５ｂで参照される状態にネイティブアプリケーションを起動する及び／又はウェブリソース識別子３６５ａによって示される状態のウェブアプリケーションにアクセス可能である。ユーザに表示される状態リンク３６４のテキスト及び／又は画像は、状態リンク３６４の選択に応答してアクセスされるアプリケーションの状態を示すことができる。例えば、状態リンク３６４が音楽再生アプリケーションの曲へのリンクである場合に、テキスト及び／又は画像は、ユーザが状態リンク３６４を選択した時に音楽再生アプリケーションによって再生される曲を識別することができる。
【００３８】
図１Ｂの例では、ユーザが検索問合せ「深夜の夕食」を入力したところである。検索問合せ２６２及び可能であれば１つ又はそれよりも多くの追加のパラメータ２６４（例えば、遠隔コンピュータデバイス２００の地理位置情報、オペレーティングシステムタイプ、ユーザ名、遠隔コンピュータデバイスにインストールされたネイティブアプリケーションのリスト、及び／又はユーザの言語プリファレンスなど）に応答して、検索サーバ３００は、ＹＥＬＰ（登録商標）アプリケーションに対応する第１結果オブジェクト３６２ａを含む検索結果３６０を戻す。ＹＥＬＰ（登録商標）アプリケーションは、クラウド発信のレビュー及び様々な施設の格付け、並びに施設に固有の情報（営業の時間、コンタクト情報、及び位置など）を提供するアプリケーションである。各施設は、アプリケーション内にエントリを有することができ、それによってユーザは、格付け、レビュー、及び施設を検索することによって又は位置によって施設に関するいずれかの他の情報を閲覧することができる。結果オブジェクト３６２ａは、ＹＥＬＰ（登録商標）ネイティブアプリケーションの３つの異なる状態への状態リンク３６４を含む。状態リンク３６４は、ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＨＯＵＳＥ  ＯＦ  ＰＡＮＣＡＫＥＳ（登録商標）レストラン又はＩＨＯＰ（登録商標）の第１エントリに対応する状態への第１状態リンク３６４ａ、ＤＥＮＮＹ’Ｓ（登録商標）レストランの第２のエントリに対応する状態への第２の状態リンク３６４ｂ、及びＴＡＣＯ  ＢＥＬＬ（登録商標）レストランの第３のエントリに対応する状態への第３の状態リンク３６４ｃを含む。各状態リンク３６４は、遠隔コンピュータデバイス２００が１つ又はそれよりも多くのリソース識別子３６５によって示される状態のＹＥＬＰ（登録商標）アプリケーションにアクセスすることを可能にする１つ又はそれよりも多くのリソース識別子３６５を含むことができる。例えば、ＩＨＯＰ（登録商標）に対応する状態リンク３６４ａは１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂを含むことができ、それによって各アプリケーションリソース識別子３６５ｂは、ＹＥＬＰ（登録商標）アプリケーションの異なるネイティブアプリケーションバージョン（ｉＯＳバージョン及びＡＮＤＲＯＩＤ（登録商標）バージョンなど）に対応するが、同じ状態（ＩＨＯＰ（登録商標）レストランのエントリなど）に対応する。状態リンク３６４ａは、ＹＥＬＰ（登録商標）アプリケーションのウェブアプリケーションバージョンに対応するウェブリソース識別子３６５ａを含むことができ、同じ状態（ＩＨＯＰ（登録商標）レストランのエントリ）に対応する。
【００３９】
ユーザは、状態リンク３６４の１つを選択することができ（例えば、押下又はタッチ）、選択に応答して、遠隔コンピュータデバイス２００は、状態リンク３６４に埋め込まれたリソース識別子３６５によって示される状態にアクセス可能である。一部のシナリオでは、遠隔コンピュータデバイス２００は、アプリケーションリソース識別子３６５ｂによって示される状態の状態リンク３６４に埋め込まれたアプリケーションリソース識別子３６５ｂによって示されるネイティブアプリケーションを起動することができる。例えば、ユーザが第１状態リンク３６４ａを選択した場合に、遠隔コンピュータデバイス２００は、ＹＥＬＰ（登録商標）ネイティブアプリケーションの起動を試み、状態リンク３６４ａに埋め込まれたアプリケーションリソース識別子３６５ｂを使用して状態リンクによって示されるＩＨＯＰ（登録商標）のエントリ（例えば、遠隔コンピュータデバイス２００の地理位置情報の近くに位置するＩＨＯＰ（登録商標）レストランのエントリ）にアクセス可能である。遠隔コンピュータデバイス２００がＹＥＬＰ（登録商標）ネイティブアプリケーションを起動できない（例えば、ネイティブアプリケーションが遠隔コンピュータデバイス２００にインストールされていない）場合に、遠隔コンピュータデバイス２００は、状態リンク３６４ａに埋め込まれたウェブリソース識別子３６５ａを使用して遠隔コンピュータデバイス２００のウェブブラウザアプリケーションを通じてＹＥＬＰ（登録商標）ウェブアプリケーションにアクセス可能である。図１Ｂの検索結果３６０及び検索結果３６０が表示される方法は、一例としてのみ提供している。
【００４０】
作動において、検索サーバ３００は、検索問合せ２６２及び／又は問合せパラメータ２６４を受信し、検索問合せ２６２及び／又は問合せパラメータ２６４に関連する１つ又はそれよりも多くの第三者アプリケーションを識別する。検索サーバ３００は、検索問合せ２６２及び／又は問合せパラメータ２６４に関連する場合がある第三者アプリケーションの固有の状態へのリソース識別子３６５を生成する。結果オブジェクト３６２に含まれる状態リンク３６４は、検索サーバ３００によって生成されるリソース識別子３６５に基づいている。
【００４１】
第三者アプリケーションは、検索サーバ３００にアフィリエイトしていない当事者によって開発されたアプリケーションを指すことができる。一部の実施では、第三者アプリケーションは、全てが同じか又は類似の機能を提供する１つ又はそれよりも多くのネイティブアプリケーション及び１つ又はそれよりも多くのウェブアプリケーションを含むことができる。例えば、ユーザが再生リスト及び曲の推薦を共有することを可能にする音楽プレーヤの第三者アプリケーションは、ＡＰＰＬＥ（登録商標）ｉＯＳオペレーティングシステムのネイティブアプリケーションの「有料」バージョン、ＡＰＰＬＥ（登録商標）ｉＯＳオペレーティングシステムのネイティブアプリケーションの「無料」バージョン、ＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムのネイティブアプリケーションの「有料」バージョン、及びＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムのネイティブアプリケーションの「無料」バージョンを含むことができる。第三者アプリケーションは、移動遠隔コンピュータデバイス２００ａ及び／又はデスクトップ遠隔コンピュータデバイス２００ｃのウェブブラウザによってアクセス可能な移動ウェブアプリケーション及びフルバージョンウェブアプリケーションを含むことができる。異なるバージョンの全ては、重なり合う機能を有することができ、第三者アプリケーションに分類することができる。
【００４２】
検索サーバ３００は、問合せラッパー２６０を構文解析及び処理して問合せパラメータ２６２、２６４に関連する第三者アプリケーションを識別することができる。本明細書に説明するように、検索問合せ２６２は、第三者アプリケーションの名前、望ましい機能、又はエンティティを識別又は他にこれらに関連する質問語を含むことができる。検索サーバ３００は、１つ又はそれよりも多くのタイプの検索を実行し、問合せパラメータ２６２、２６４に基づいて第三者アプリケーションのセットを決定することができる。例えば、検索サーバ３００が「午後７時にフレンチランドリの予約をする」という問合せを受信した場合に、検索サーバ３００は、「フレンチランドリ」がレストランのエンティティタイプを有することを識別し、質問語の残りを処理してユーザが予約することを可能にする機能を欲していると決定することができる。次に、検索サーバ３００は、レストランの予約をするために利用することができる第三者アプリケーションのセットを識別することができる。
【００４３】
一部の実施では、検索サーバ３００は、問合せパラメータ２６２、２６４の１つ又はそれよりも多くを第三者アプリケーションに関連付けられたサーバに転送するように構成される。より具体的には、検索サーバ３００は、問合せパラメータ２６２、２６４の１つ又はそれよりも多くを第三者アプリケーションに関連付けられたサーバに送信して第三者アプリケーションの特定機能を利用することができる。第三者アプリケーションの機能は、第三者アプリケーションが実行するように構成された特定のタスク、又は第三者アプリケーションが提供するように構成された特定の情報を指すことができる。例えば、第三者アプリケーションの機能は、地図上の地理座標を提供し、第三者アプリケーションの音楽ライブラリの特定の曲を検索し、出発位置から目的地までの航空機チケットの価格を見出し、航空機チケットを予約し、又は最寄りのレストランのレビューを検索することである。従って、第三者アプリケーションが、検索プラットフォームを軸として展開するレビューアプリケーションである場合（例えば、第三者アプリケーションが様々な施設の情報及びクラウド発信レビューを戻す場合）、検索サーバ３００は、問合せパラメータ２６２、２６４の１つ又はそれよりも多くをウェブサーバ１３０又はレビューアプリケーションのアプリケーションサーバ１２０に提供し、１つ又はそれよりも多くの問合せパラメータ２６２、２６４に対応するレビューを受信することができる。検索サーバ３００は、問合せパラメータ２６２、２６４を転送し、第三者の機能に関連する第三者によって実施される方式を使用して第三者アプリケーションの機能を利用することができる。
【００４４】
検索サーバ３００が、問合せ２６２に関連する第三者アプリケーションのセットを決定した状態で、検索サーバ３００は、各第三者アプリケーションの方式に従って要求を生成することができ、各それぞれの第三者アプリケーション（例えば、ウェブサーバ１３０又はアプリケーションサーバ１２０）に送信することができる。第三者アプリケーションは、要求に対する応答を検索サーバ３００に提供することができる。この応答は、要求されたデータを示す情報（例えば、検索結果を表示する１つ又はそれよりも多くのウェブページ）、要求されたデータにアクセス可能な場所を示す１つ又はそれよりも多くのリソース識別子３６５、及び／又は要求されたデータにアクセス可能な第三者アプリケーションの１つ又はそれよりも多くの状態をそれぞれに示す１つ又はそれよりも多くの状態パラメータを含むことができる。従って、問合せを繰り返す必要なく、示された状態には後の時間にアクセス可能である。本明細書で使用する時に、第三者アプリケーションの状態は、第三者アプリケーションの特定のページ又は画面（例えば、ウェブアプリケーションの特定のページ又はネイティブアプリケーションの特定の画面）を指すことができる。また、第三者アプリケーションの状態は、状態パラメータのセットに依存する。例えば、第三者アプリケーションが質問語の特定のセットの検索結果を表示する場合に、第三者アプリケーションの状態は、質問語の少なくとも一部の機能である。従って、ウェブアプリケーションの状態は、ウェブアプリケーションのドメイン名及び特定の状態に対応する状態パラメータによって参照することができる。ネイティブアプリケーションの状態は、第三者アプリケーションの名前及び状態に対応する状態パラメータを使用してアクセスされ得る。
【００４５】
一部の実施では、検索サーバ３００は、第三者アプリケーションの状態の実行後ビューを提供するように更に構成される。一部の実施では、実行後ビューは、状態のネイティブアプリケーション又はウェブアプリケーションのいずれかのスクリーンショットである。結果オブジェクト３６２における状態リンク３６４は、スクリーンショットに提供され、それによってユーザは、第三者アプリケーションの状態を見ることができる。一部の実施では、実行後ビューは、ユーザに表示されるグラフィカルユーザインタフェース２５０であり、それによってユーザは、その状態に定義された特定機能にアクセス可能である。
【００４６】
図２は、遠隔コンピュータデバイス２００の構成要素の例示的セットを示している。遠隔コンピュータデバイス２００は、処理デバイス２１０、ネットワークインタフェース２２０、ストレージデバイス２３０、及びユーザインタフェースデバイス２４０を含むことができる。遠隔コンピュータデバイス２００は、図２に示されていない追加の構成要素（例えば、加速度計、センサ、ＧＰＳモジュール）を含むことができる。
【００４７】
処理デバイス２１０は、コンピュータ可読命令を格納するメモリ（例えば、ＲＡＭ及び／又はＲＯＭ）とコンピュータ可読命令を実行する１つ又はそれよりも多くのプロセッサを含む。処理デバイス２１０が１つよりも多いプロセッサを含む実施例では、プロセッサは分散方式又は個々の方式で実行することができる。処理デバイスは、オペレーティングシステム２１２、検索アプリケーション２１４、ウェブブラウザアプリケーション２１６、及び１つ又はそれよりも多くの他のネイティブアプリケーション２１８を実行することができる。オペレーティングシステム２１２は、よりハイレベルのアプリケーション２１４、２１６、２１８と処理デバイス２１０との間のインタフェースとして作用する。
【００４８】
ネットワークインタフェース２２０は、ネットワーク１１０と通信するように構成された１つ又はそれよりも多くのデバイスを含む。ネットワークインタフェース２２０は、有線又は無線通信を実行するための１つ又はそれよりも多くの送受信機を含むことができる。ネットワークインタフェース２２０の例は、以下に限定されるものではないが、セルラー通信（例えば、第３世代（３Ｇ）又は第４の世代（４Ｇ）通信規格を使用した通信）を実行するように構成された送受信機、「ＩＥＥＥ  ８０２．１１」無線規格を使用して通信を実行するように構成された送受信機、イーサネットポート、無線送信機、及びユニバーサルシリアルバス（ＵＳＢ）ポートを含むことができる。
【００４９】
ストレージデバイス２３０は、データを格納する１つ又はそれよりも多くのコンピュータ可読媒体を含むことができる。ストレージデバイス２３０は、検索アプリケーション２１４、ウェブブラウザアプリケーション２１６、及び１つ又はそれよりも多くの他のネイティブアプリケーション２１８を定義するコンピュータ可読命令の一部又は全てを格納することができる。ストレージデバイス２３０は、同様に他のデータ（例えば、媒体コンテンツ、アプリケーションデータ、コンタクト、文書）を格納することができる。
【００５０】
ユーザインタフェースデバイス２４０は、ユーザが遠隔コンピュータデバイス２００と対話することを可能にする１つ又はそれよりも多くのデバイスを含むことができる。ユーザインタフェースデバイス２４０は、例えば、タッチスクリーン、ＱＷＥＲＴＹキーボード、ディスプレイデバイス、スピーカ、タッチパッド、及びマイクロフォンの１つ又はそれよりも多くを含むことができる。ユーザインタフェースデバイス２４０は、ユーザから入力を受信し、この入力を処理デバイス２１０に提供する。ユーザインタフェースデバイス２４０は、処理デバイス２１０から出力を受信し、この出力をユーザに出力する。
【００５１】
ウェブブラウザアプリケーション２１６は、ウェブブラウザからウェブデータを要求してユーザインタフェースデバイス２４０にこのデータを表示するアプリケーションである。ウェブブラウザアプリケーション２１６は、ウェブアプリケーションにアクセスするために使用され得る。一部の実施では、ウェブリソース識別子３６５ｂのドメイン部分に位置するウェブサーバ１３０にアクセスし、ウェブリソース識別子３６５ｂの経路部分に示される状態パラメータを使用して要求をウェブサーバ１３０に提供することにより、ウェブブラウザアプリケーション２１６は、ウェブアプリケーションの特定の状態にアクセス可能である。ウェブアプリケーションは、いずれの適切な機能も提供することができる。
【００５２】
ネイティブアプリケーション２１８は、処理デバイス２１０によって部分的に実行されるアプリケーションである。ネイティブアプリケーション２１８は、第三者によって開発することができ、様々な方式で消費者に利用可能にすることができる。例えば、ユーザが、アプリケーション小売ストアから（例えば、Ｇｏｏｇｌｅ社によって開発されたＧＯＯＧＬＥＰＬＡＹ（登録商標）、Ａｐｐｌｅ社によって開発されたＡＰＰ  ＳＴＯＲＥ（登録商標）から）又は第三者に関連付けられたウェブサイトから遠隔コンピュータデバイス２００にネイティブアプリケーションをダウンロードすることができる。これに加えて又はこれに代えて、ユーザは、ネイティブアプリケーションをＣＤ−ＲＯＭのような取外し可能媒体から遠隔コンピュータデバイス２００のストレージデバイス２３０にロードすることができる。ネイティブアプリケーション２１８は、いずれの適切な機能も提供することができる。ネイティブアプリケーションの例は、以下に限定されるものではないが、ワードプロセッサアプリケーション、メッセージングアプリケーション、媒体ストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、ｅ読取器アプリケーション、及びゲームを含むことができる。
【００５３】
検索アプリケーション２１４は、ユーザが検索問合せ２６２を入力することを可能にして検索結果３６０を表示するグラフィカルユーザインタフェース２５０（ＧＵＩ）を提示する。一部の実施では、ＧＵＩ２５０は、検索バー２５２を表示することができ、それによってユーザは、テキスト及び／又は音声入力を検索バー２５２に提供することができる。これに加えて又はこれに代えて、遠隔コンピュータデバイス２００のオペレーティングシステム２１２は、遠隔コンピュータデバイス２００のホームスクリーン上に検索バー２５２を表示することができ、それによってユーザは、ホームスクリーンから直接に検索問合せ２６２を入力することができる。これらの実施例では、ユーザがホームスクリーンに表示された検索バー２５２に検索問合せ２６２を入力して検索を実行した時に、遠隔コンピュータデバイス２００のオペレーティングシステム２１２は、検索アプリケーション２１４を起動することができる。
【００５４】
ユーザが検索問合せ２６２を実行した時に（例えば、検索ボタン２５４を押下することにより）、検索アプリケーション２１４は、検索問合せ２６２及びいずれかの他の問合せパラメータ２６４を含む問合せラッパー２６０を生成することができる。検索アプリケーション２１４は、いずれかの適切な方式で他の問合せパラメータ２６４を取得することができる。例えば、検索アプリケーション２１４は、ストレージデバイス２３０又は処理デバイス２１０のメモリ内のファイルからデバイスに関する情報（デバイスタイプ、オペレーティングシステムタイプ、オペレーティングシステムバージョンなど）を取得することができる。これに加えて又はこれに代えて、検索アプリケーション２１４は、遠隔コンピュータデバイス２００のセンサ又は構成要素からデバイスに関する情報を取得することができる（例えば、遠隔コンピュータデバイス２００のＧＰＳモジュールから地理位置情報を取得することができる）。検索アプリケーション２１４は、提供された検索問合せ２６２及び取得した問合せパラメータ２６４に基づいて問合せラッパー２６０を生成することができる。
【００５５】
検索アプリケーション２１４は、検索結果３６０によって応答する検索サーバ３００に問合せラッパー２６０を送信する。検索アプリケーション２１４は、検索アプリケーション２１４のＧＵＩ２５０に検索結果３６０を表示する。上述のように、検索アプリケーション２１４は、状態リンク３６４を表示し、問合せパラメータ２６２、２６４に関連するリソースにアクセスすることができる。状態リンク３６４は、第三者アプリケーションを起動して第三者アプリケーション内の特定の状態にアクセスするように使用することができるアプリケーションリソース識別子３６５ｂを含むことができる。ユーザが状態リンク３６４を選択した時に、検索アプリケーション２１４は、特定の状態の第三者アプリケーションのアクセスを開始することができる。一部の実施例では、検索アプリケーション２１４は、第三者アプリケーションのネイティブアプリケーション２１８のバージョンの起動を試みる。特定の状態へのネイティブアプリケーション２１８の起動を開始するために、検索アプリケーション２１４は、状態リンク３６４で提供された情報を使用して第三者アプリケーションを起動する命令をオペレーティングシステム２１２に提供する。オペレーティングシステム２１２は、状態リンク３６４のアプリケーションリソース識別子３６５ｂによって示されるネイティブアプリケーション２１８の起動を試みることができ、起動が成功しなかった場合に、ウェブブラウザアプリケーション２１６を通じて第三者アプリケーションへのアクセスを試みることができる（すなわち、第三者アプリケーションのウェブアプリケーションバージョンを利用することができる）。
【００５６】
図３は、検索サーバ３００の構成要素の例示的セットを示している。検索サーバ３００は、処理デバイス３１０、ネットワークインタフェース３２０、及びストレージデバイス３３０を含むことができる。検索サーバ３００は、図３に明示的に示していない追加の構成要素を含むことができる。検索サーバ３００は、単一デバイス又はデバイスの集合（例えば、ラック据え付けサーバ）として実装することができる。検索サーバ３００は、単一位置（例えば、単一データセンター）に又は複数の位置（例えば、複数のデータセンター）に配置することができる。
【００５７】
処理デバイス３１０は、コンピュータ可読命令を格納するメモリ（ＲＡＭ及び／又はＲＯＭなど）及びコンピュータ可読命令を実行する１つ又はそれよりも多くのプロセッサを含む。処理デバイス３１０が１つよりも多いプロセッサを含む実施例では、プロセッサは、分散又は個々の方式で実行することができる。処理デバイスは、検索モジュール３１２、転送モジュール３１４、リンキングモジュール３１６、ビューイングモジュール３１８、及び結果モジュール３１９のうちの１つ又はそれよりも多くを実行することができる。処理デバイス３１０は、１つ又はそれよりも多くのモジュール３１２、３１４、３１６、３１８、３１９と処理デバイス３１０との間のインタフェースとして作用するオペレーティングシステム（図示せず）を更に実行することができる。
【００５８】
ネットワークインタフェース３２０は、有線及び／又は無線（ＷｉＦｉ又はセルラーなど）通信を実行することができる１つ又はそれよりも多くのデバイスを含む。ネットワークインタフェースデバイス３２０の例には、以下に限定されるものではないが、「ＩＥＥＥ  ８０２．１１」無線規格、イーサネットポート、無線送信機、及びユニバーサルシリアルバス（ＵＳＢ）ポートを使用して通信を実行するように構成された送受信機が含まれる。
【００５９】
ストレージデバイス３３０は、データを格納する１つ又はそれよりも多くのコンピュータ可読媒体を含むことができる。ストレージデバイス３３０は、コンピュータ可読命令及び他の適切なデータの一部又は全てを格納することができる。一部の実施例では、ストレージデバイスは、アプリケーションデータストア３３２、エンティティデータストア３３４、及び指令テンプレートデータストア３３６のうちの１つ又はそれよりも多くを格納する。
【００６０】
アプリケーションデータストア３３２は、１つ又はそれよりも多くのデータベース、索引（逆索引など）、ファイル、又はこのデータを格納する他のデータ構造を含むことができる。アプリケーションデータストア３３２は、異なる第三者アプリケーションのアプリケーションデータを含む。アプリケーションのアプリケーションデータは、アプリケーションに関連付けられたキーワード、アプリケーションに関連付けられたレビュー、アプリケーションの開発者の名前、アプリケーションのプラットフォーム、アプリケーションの価格、アプリケーション統計（アプリケーションのダウンロード数及び／又はアプリケーションの格付けの数字など）、アプリケーションのカテゴリなどの情報や他の情報の１つ又はそれよりも多くを含むことができる。アプリケーションデータストア３３２は、様々なオペレーティングシステムで利用することができる様々な異なるアプリケーションのメタデータを含むことができる。検索モジュール３１２は、アプリケーション検索を実行して検索結果３６０を提供するために、アプリケーションデータストア３３２からアプリケーションデータを検索して分析することができる。
【００６１】
一部の実施例では、アプリケーションデータストア３３２は、アプリケーション記録３４０にアプリケーションデータを格納する。各アプリケーション記録３４０は、第三者アプリケーションに対応することができ、かつ第三者アプリケーションに関するアプリケーションデータを含むことができる。例示的なアプリケーション記録３４０は、アプリケーション名、アプリケーション識別子、及び他のアプリケーション特徴を含む。アプリケーション記録３４０は、一般的に、第三者アプリケーションに関連付けられたアプリケーションデータストア３３２に格納されたアプリケーションデータを表すことができる。
【００６２】
アプリケーション名は、アプリケーション記録３４０のデータによって表される第三者アプリケーションの名前とすることができる。例示的なアプリケーション名は、「ＦＡＣＥＢＯＯＫ（登録商標）」、「ＴＷＩＴＴＥＲ（登録商標）」、「ＭＩＣＲＯＳＯＦＴ（登録商標）Ｗｏｒｄ」、又は「ＡＮＧＲＹＢＩＲＤＳ（登録商標）」を含むことができる。アプリケーション識別子（以下「アプリケーションＩＤ」）は、アプリケーションデータストア３３２に含まれる他のアプリケーション記録３４０内のアプリケーション記録３４０を識別する。一部の実施例では、アプリケーションＩＤは、アプリケーション記録３４０を固有に識別することができる。アプリケーションＩＤは、アプリケーション記録３４０によって表された第三者アプリケーションを固有に識別するアルファベット、数字、及び／又は記号（句読点など）の文字列とすることができる。一部の実施例では、アプリケーションＩＤは、アプリケーションを供給するリテールサイト（ＡＰＰ  ＳＴＯＲＥ（登録商標）又はＧＯＯＧＬＥ  ＰＬＡＹ（登録商標）など）によってアプリケーションに割り当てられたＩＤである。他の実施例では、第三者アプリケーションのアプリケーション記録３４０を生成する時に、検索サーバ３００は、各第三者アプリケーションにアプリケーションＩＤを割り当てる。
【００６３】
第三者アプリケーションのアプリケーション特徴は、アプリケーション記録３４０によって表された第三者アプリケーションに関連付けることができるあらゆるタイプのデータを含むことができる。アプリケーション特徴は、様々な異なるタイプのメタデータを含むことができる。例えば、アプリケーション特徴は、構造化、半構造化、及び／又は未構造化データを含むことができる。アプリケーション特徴は、他のデータソース（アプリケーションリテールサイト、アプリケーション開発者、ブログ、及びアプリケーションのレビューなど）から取り出された文書から抽出又は推測され、又はマニュアルで生成された（例えば、人間によって入力された）情報を含むことができる。
【００６４】
アプリケーション特徴は、アプリケーションの開発者の名前、アプリケーションのカテゴリ（ジャンルなど）、アプリケーションの説明（開発者によって提供される説明など）、アプリケーションのバージョン、アプリケーションが構成されるオペレーティングシステム、及びアプリケーションの価格を含むことができる。アプリケーション特徴は、アプリケーションに提供されるフィードバックユニットを更に含む。フィードバックユニットは、アプリケーションのレビューによって提供される格付け（例えば、５つ星のうちの４つ星）及び／又は文字のレビュー（「このアプリはすごい」など）を含むことができる。アプリケーション特徴は、アプリケーション統計を含むことができる。アプリケーション統計は、アプリケーションに関連付けられた数字データを指すことができる。例えば、アプリケーション統計は、以下に限定されるものではないが、ダウンロードの数、ダウンロード率（１カ月当たりのダウンロードなど）、及び／又はフィードバックユニットの数（格付けの数及び／又はレビューの数）を含むことができる。アプリケーション特徴は、アプリケーションに関連付けられたコメント、アプリケーションに関連付けられた記事（ウィキ記事など）、又は他の情報のようなウェブサイトから取り出された情報を含むことができる。アプリケーション特徴は、画像（例えば、アプリケーションに関連付けられたアイコン及び／又はアプリケーションのスクリーンショット）又は映像（アプリケーションのサンプルビデオなど）のようなアプリケーションに関連付けられたデジタル媒体を含むことができる。
【００６５】
一部の実施では、アプリケーション記録３４０は、標準アプリケーション構造の下に１つ又はそれよりも多くのアプリケーション版を分類することができる。標準アプリケーション構造という語は、類似のアプリケーション版の群を指すことができる。言い換えれば、標準アプリケーション構造は代表的なものとすることができ、又は１つ又はそれよりも多くのアプリケーション版をその下にまとめることができる包括的なものとすることができる。同じ標準アプリケーション構造の下にまとめられるアプリケーション版の群の各アプリケーション版は、それぞれ、標準アプリケーション構造の下にまとめられる第三者アプリケーション版の他のバージョンに機能的に類似の第三者アプリケーションのバージョンを示す。換言すると、アプリケーション版は、同じ第三者アプリケーションの異なるバージョンを表すことができる。版アプリケーションの例は、アプリケーションの異なる公開バージョン（例えば、ベータ、１．０、又は２．０）、アプリケーションの異なる言語バージョン（例えば、英語、ロシア語、又は中国語）、アプリケーションの異なるプラットフォームバージョン（例えば、ｉＯＳ又はＡＮＤＲＯＩＤ（登録商標）など）、異なる機能的特性（ライトバージョン、上級ユーザバージョンなど）、異なる審美的特性（例えば、休日をテーマにしたバージョン）、及び異なるアプリケーションの解像度バージョン（例えば、標準的な鮮明度又は高鮮明度）である。関連付けられるが類似ではない第三者アプリケーション（例えば、一連のゲームの続編又は連続アプリケーションの異なる公開）は、一般的に、同じ標準アプリケーションの下に分類されない。例えば、ＡＮＧＲＹＢＩＲＤＳ（登録商標）は、ＡＮＧＲＹＢＩＲＤＳ（登録商標）ＳＴＡＲ  ＷＡＲＳ（登録商標）とは別の標準アプリケーションとすることができる。アプリケーションは同じ元になる概念を有することができるが、アプリケーションは別のゲーム（すなわち、第三者アプリケーション）として扱われる。
【００６６】
エンティティデータストア３３４は、１つ又はそれよりも多くのデータベース、索引（例えば、逆索引）、ファイル、又は他のデータ構造を含むことができる。エンティティデータストア３３４は、１つ又はそれよりも多くのエンティティ索引３４２を格納する。各エンティティ索引３４２は、複数のエンティティ記録３４４に索引を付ける。各エンティティ記録３４４は、エンティティタイプを有する。エンティティタイプは、エンティティデータストア３３４で参照される複数の様々なカテゴリの１つを定義する。エンティティタイプの非制限的な例は、「空港」、「映画」、「ＴＶ番組」、「俳優」、「ミュージシャン」、「バンド」、「曲」、「アルバム」、「レストラン」、「都市」、「国」、「人」、「医薬」、「症状」、及び「時間」を含む。各エンティティ記録３４４は、異なるエンティティを表している。各エンティティは、特定のエンティティタイプの種を表している。例えば、「トイストーリー」という語は、エンティティタイプ「映画」とすることができ、ＭＣＤＯＮＡＬＤＳ（登録商標）をエンティティタイプ「レストラン」及び／又は「ファーストフードレストラン」とすることができ、「ビートルズ」をエンティティタイプ「バンド」とすることができる。一部の実施例では、各エンティティタイプは、対応するエンティティ索引３４２を有する。エンティティデータストア３３４は、オフラインで構築することができ、及び／又は継続して更新することができる。一部の例では、エンティティ索引３４２は、人間の手が加えられ、ＦＲＥＥＢＡＳＥ（登録商標）又はＷＩＫＩＰＥＤＩＡ（登録商標）のような既存のデータソースを使用してエンティティデータストア３３４を構築することができる。管理人は、マニュアルでエンティティタイプを定義することができ、データソースをクロールして様々なエンティティの全てに索引を付けることができる。各エンティティタイプは、それに応じた特定の記録フォーマットを有することができる。例えば、レストランエンティティのエンティティ記録３４４は、｛エンティティタイプＩＤ：１、タイプ名：「レストラン」、フィールド：［「名前」、「フードタイプ」］｝とすることができる。この場合に、レストランがエンティティタイプ名である。エンティティデータストア３３４は、各エンティティがサポートするアプリケーション（第三者アプリケーションなど）のアプリケーション参照記録を含むアプリケーション構成データベース（図示せず）を更に含むことができる。各アプリケーション参照記録は、第三者アプリケーションの名前又はアプリケーションＩＤ、及び特定の第三者アプリケーションがサポートする１つ又は複数のエンティティタイプを含む。例えば、ＩＭＤＢ（登録商標）（インターネットムービーデータベース）に対応するアプリケーション参照記録は、映画のエンティティ、ＴＶ番組のエンティティ、及び俳優エンティティをサポートすることができる。同様に、ＹＥＬＰ（登録商標）アプリケーションのアプリケーション参照記録は、レストランエンティティ、リテールストアエンティティ、又は他の施設に関するエンティティをサポートすることができる。
【００６７】
指令テンプレートデータストア３３６は、異なる第三者アプリケーションの複数の指令テンプレート３４６を格納する。指令テンプレート３４６は、第三者アプリケーションによって１つ又はそれよりも多くの状態パラメータが受け入れられる方式を定義するテンプレートとすることができる。一部の実施例では、第三者アプリケーションの指令テンプレート３４６は、第三者アプリケーションに関連付けられたサーバに送信される要求を生成するのに使用される要求指令テンプレート３４６ｃを含む。要求は、特定機能を要求するリソース（ウェブサーバ１３０又はアプリケーションサーバ１２０など）に提供される通信を指すことができる。これに加えて又はこれに代えて、第三者アプリケーションのための指令テンプレート３４６は、リソース識別子３６５を生成するための指令テンプレート３４６ａ、３４６ｂを含むことができる。指令テンプレート３４６は、人間が手を加えることができ、又は第三者アプリケーションの開発者によって提供することができる。さらに、一部の実施例では、第三者アプリケーションによって実装される指令テンプレート３４６は、第三者アプリケーションのコード（ウェブアプリケーションのＨＴＭＬコードなど）を構文解析及び分析することによって決定することができ、第三者アプリケーションによって実装される方式及び第三者アプリケーションによって受け入れられる様々なパラメータを識別する。
【００６８】
一部の実施例により、特定の第三者アプリケーションのウェブアプリケーション指令テンプレート３４６ａは、ウェブアプリケーションの特定の状態又は複数の状態にアクセスするためのウェブリソース識別子３６５ａ（ＵＲＬなど）を生成するためのテンプレートである。一部の実施例では、ウェブリソース識別子３６５ａは、第三者アプリケーションのウェブアプリケーションバージョンを実行するウェブサーバ１３０のドメイン名及びウェブアプリケーションの状態を定義する１つ又はそれよりも多くの状態パラメータを示すことができる。例えば、ウェブリソース識別子３６５ａは、ユニフォームリソースロケータ（ＵＲＬ）とすることができ、それによってＵＲＬの第一部分はドメイン名であり、ＵＲＬの第２の部分は、ウェブアプリケーションの指定された状態にアクセスするために使用することができる１つ又はそれよりも多くの状態パラメータを定義する経路を示すテールである。ウェブブラウザは、ウェブリソース識別子３６５ａを使用して、ドメイン名によって参照されるウェブサーバ１３０にウェブ要求を送信することによってそこに示された第三者アプリケーションの状態にアクセスすることができ、それによってウェブ要求は、ウェブアプリケーション指令テンプレート３４６ａに定義された方式及び／又は様式から構成される状態パラメータを含む。例えば、ＵＲＬに対応するウェブ要求：「ｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｆｉｎｄ？ｑ＝ａｌ＋ｐａｃｉｎｏ＆ｓ＝ａｌｌ」をｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍに対応するアドレスに位置するサーバにＨＴＴＰ要求で送信することができ、状態パラメータをテール部分：「ｆｉｎｄ？ｑ＝ａｌ＋ｐａｃｉｎｏ＆ｓ＝ａｌｌ」に含むことができる。この例では、ウェブリソース識別子３６５ａに対する応答は、質問語「Ａｌ  Ｐａｃｉｎｏ」から生じる検索結果（３６０）を表示するウェブページを含む。ウェブアプリケーション指令テンプレート３４６ａは、ウェブアプリケーションのウェブサーバ１３０のドメイン名（例えば、「ｗｗｗ．ｄｏｍａｉｎ．ｃｏｍ」）及びパラメータを受信するパラメータフィールドを識別する経路及びパラメータがウェブサーバ１３０によって受け入れられる順序（例えば、“／＜ｐａｒａｍ_ｔｙｐｅ_１＞＆＜ｐａｒａｍ_ｔｙｐｅ_２”＞、ここでｐａｒａｍ_ｔｙｐｅ_１及びｐａｒａｍ_ｔｙｐｅ_２は、ｈｔｔｐ：／／ｗｗｗ．ｄｏｍａｉｎ．ｃｏｍに位置するウェブサーバ１３０によって受け入れられるパラメータのタイプである）を定義することができる。各ウェブアプリケーションは、１つ又はそれよりも多くの対応するウェブ指令テンプレート３４６ａを有することができる。別の例では、第三者アプリケーションのためのウェブアプリケーション指令テンプレート３４６ａは、形式：「ｈｔｔｐ：／／ｗｗｗ．ｄｏｍａｉｎ．ｃｏｍ／ｓｅａｒｃｈ？ｆｉｎｄ_ｄｅｓｃ≦ｑｕｅｒｙ_ｔｅｒｍｓ＞＆ｆｉｎｄ_ｌｏｃ＜ｌｏｃ＞を取ることができる。この例では、ウェブ指令テンプレート３６４ａは、２つのパラメータフィールド、検索質問語を取る＜ｑｕｅｒｙ_ｔｅｒｍｓ＞と場所（市、州、及び／又は国など）を受け入れる＜ｌｏｃ＞を含む。
【００６９】
一部の実施例により、特定の第三者アプリケーションのネイティブアプリケーション指令テンプレート３４６ｂは、アプリケーションリソース識別子３６５ｂを生成するためのテンプレートである。アプリケーションリソース識別子３６５ｂは、ネイティブアプリケーション２１８の状態に対応する文字、数字、及び／又は記号の文字列である。ネイティブアプリケーション２１８は、アプリケーションリソース識別子３６５ｂを構文解析してアプリケーションの状態へのアクセスを提供することができる。アプリケーションリソース識別子３６５ｂは、ネイティブアプリケーション２１８を識別する。一部のシナリオでは、アプリケーションリソース識別子３６５ｂは、アプリケーションの状態に対応する１つ又はそれよりも多くの状態パラメータを含む。状態にアクセスするためにネイティブアプリケーション２１８によって１つ又はそれよりも多くの状態パラメータは、使用され得る。アプリケーションリソース識別子３６５ｂは、遠隔コンピュータデバイス２００のオペレーティングシステム２１２に命令し、ネイティブアプリケーション２１８を参照するアプリケーションリソース識別子３６５ｂのドメイン部分に基づいてネイティブアプリケーション２１８を起動し、ネイティブアプリケーション２１８の状態を定義する１つ又はそれよりも多くの状態パラメータを含むテール部分に基づいてネイティブアプリケーション２１８の特定の状態にアクセス可能である。アプリケーションリソース識別子３６５ｂが遠隔コンピュータデバイス２００のユーザによって選択された時に、遠隔コンピュータデバイス２００は、アプリケーションを起動してその状態にアクセスする。ネイティブアプリケーション指令テンプレート３４６ｂは、ネイティブアプリケーション２１８を識別するドメイン部分（例えば、「ｅｘａｍｐｌｅ_ａｐｐ」）とパラメータを受け入れるパラメータフィールドを識別するテール部分及びパラメータがネイティブアプリケーション２１８及び／又はアプリケーションサーバ１２０によって受け入れられる順序を含むことができる（例えば、：：＜ｐａｒａｍ_ｔｙｐｅ_１＞：＜ｐａｒａｍ_ｔｙｐｅ_２”＞、ここでｐａｒａｍ_ｔｙｐｅ_１及びｐａｒａｍ_ｔｙｐｅ_２は、ネイティブアプリケーション２１８によって受け入れられるパラメータのタイプ「ｅｘａｍｌｅ_ａｐｐ」である）。各ネイティブアプリケーション２１８は、１つ又はそれよりも多くの対応するネイティブアプリケーション指令テンプレート３４６ｂを有することができる。別の例では、第三者ネイティブアプリケーションのためのネイティブアプリケーション指令テンプレート３４６ｂは、形式「ｅｘａｍｐｌｅ_ａｐｐ：：ｓｅａｒｃｈ？ｆｉｎｄ_ｄｅｓｃ≦ｑｕｅｒｙ_ｔｅｒｍｓ＞＆ｆｉｎｄ_ｌｏｃ＜ｌｏｃ＞を取ることができる。この例では、ネイティブアプリケーション指令テンプレート３４６ｂは、２つのパラメータフィールド、すなわち、検索質問語を取る＜ｑｕｅｒｙ_ｔｅｒｍｓ＞と場所（市、州、及び／又は国など）を入れる＜ｌｏｃ＞を含む。
【００７０】
指令テンプレートデータストア３３６は、指令テンプレートデータストア３３６に格納された指令テンプレート３４６を有する各第三者アプリケーションのための関連表を更に格納することができる。第三者アプリケーションの関連表は、エンティティデータストア３３４に格納された異なるエンティティタイプを第三者アプリケーションが受け入れるパラメータフィールドに関連付けることができる。例えば、第三者アプリケーションが、＜ｌｏｃ＞及び＜ｒｅｓｔ_ｎａｍｅ＞の形式でそれぞれ位置及びレストランエンティティの問合せを受け入れた場合に、関連表は、位置エンティティを＜ｌｏｃ＞にレストランエンティティを＜ｒｅｓｔ_ｎａｍｅ＞に関連付けることができる。
【００７１】
作動において、検索モジュール３１２は、問合せパラメータ２６２、２６４を受け入れ、問合せパラメータ２６２、２６４に対応する第三者アプリケーションのセットを識別する。検索モジュール３１２は、あらゆるタイプの適切な検索も実行するように構成される。一部の実施では、検索モジュール３１２は、機能的検索、エンティティ検索、及び名前検索のうちの１つ又はそれよりも多くを実行することができる。
【００７２】
機能的検索は、特定機能を提供するアプリケーションの検索である。機能的検索は、機能的検索が、通常は特定のキーワードの代わりに望ましいタスク、機能、又は特徴（例えば、レストランを見つけよ、私をダウンタウンに連れて行け、ベストバーガーを見出す場所はどこか）を提供するアプリケーションの識別を目的としている点で、名前検索又はキーワード検索とは異なる。例えば、機能的検索語は、「ＳＫＹＰＥ（登録商標）」の名前検索と比較して、「海外の友達にビデオコールする」とすることができる。この例では、問合せは、語「ＳＫＹＰＥ（登録商標）」を含まず、ＳＫＹＰＥ（登録商標）アプリケーションの説明は、「友達」又は「海外」というワードに言及しない。従って、従来のキーワード検索は、関連するものとしてＳＫＹＰＥ（登録商標）アプリケーションを識別しない。ＳＫＹＰＥ（登録商標）アプリケーションは、ユーザが世界中にビデオ及び音声を送れるようにするので、機能的検索は、「海外の友達にビデオコールする」という問合せパラメータ２６２に応答してＳＫＹＰＥ（登録商標）アプリケーションを識別することができる。
【００７３】
機能的検索は、複数のプラットフォームにわたるか又は特定のプラットフォーム（例えば、ＡＮＤＲＯＩＤ（登録商標）のみ）に制限される第三者アプリケーションの検索を含むことができる。一例として、一実施形態において、プラットフォームは、ハードウエアアーキテクチャ及び／又はソフトウエアフレームワークとすることができ、その組合せは、ソフトウエアの実行を可能にする。プラットフォームの一部の例は、以下に限定されるものではないが、ＡＮＤＲＯＩＤ（登録商標）、ＢＬＡＣＫＢＥＲＲＹ（登録商標）ＯＳ、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）Ｍｏｂｉｌｅ、ＡＰＰＬＥ  ＭＡＣ  Ｓ（登録商標）、ＡＰＰＬＥ  ｉＯＳ（登録商標）を含む。機能的検索は、アプリケーションデータストア３３２によってサポートすることができる。アプリケーションデータストア３３２は、以下に限定されるものではないが、ブログ、アプリケーションレビューサイト、アプリケーションカタログ、及び／又はアプリケーション開発者のような複数の第三者ソースからのデータを含む。機能的データベースに含まれる異なるソースに起因して、機能的検索は、複数のデータソースを利用し、文字及び文字以外の特徴を分析し、ユーザにユーザが入力した質問語に基づいて最も利用され得るアプリケーションのリストを提供する。アプリケーションデータストア３３２は、異なるソースから収集した情報を統合し、同じアプリケーションの異なるバージョン又は版に基づいて情報を結合し、より網羅的な分析を提供する。アプリケーションデータストア３３２は、データエントリのより高速な取り出しに関して索引が付けられる。
【００７４】
作動的には、検索モジュール３１２は、遠隔コンピュータデバイス２００から問合せラッパー２６０を受信することができる。検索モジュール３１２は、問合せラッパー２６０に関わっている問合せパラメータ２６２、２６４を処理することができる。検索モジュール３１２は、問合せパラメータ２６２、２６４に様々な処理作動を実行することができる。例えば、検索モジュール３１２によって実行される分析作動は、以下に限定されるものではないが、問合せパラメータ２６２、２６４のトークン化、問合せパラメータ２６２、２６４のフィルタリング、検索問合せ２６２のステミング、問合せパラメータ２６２、２６４の同義語化、及びストップワード除去を含むことができる。一部の実施例では、検索モジュール３１２は、問合せパラメータ２６２、２６４に基づいて１つ又はそれよりも多くの副問合せを更に生成することができる。副問合せは、検索問合せ２６２及び他の問合せパラメータ２６４の何らかの副組合せに基づく検索問合せである。
【００７５】
検索モジュール３１２は、問合せパラメータ２６２、２６４、及び一部の実施例では副問合せに基づいてアプリケーションの考慮セット（例えば、アプリケーションのリスト）を識別する。一部の例では、検索モジュール３１２は、問合せパラメータ２６２、２６４（及び／又は副問合せ）の語とアプリケーションのアプリケーションデータの語（例えば、アプリケーションのアプリケーション記録２６２内）との間の適合に基づいて、問合せパラメータ２６２、２６４又は副問合せに対応するアプリケーションを識別することによって考慮セットを識別することができる。例えば、検索モジュール３１２は、問合せパラメータ２６２、２６４を表す語又はトークンとアプリケーションのアプリケーション記録３４０に含まれる語又はトークンとの間の適合に基づいて、アプリケーションデータストア３３２に表される１つ又はそれよりも多くのアプリケーションを識別することができる。考慮セットは、アプリケーションＩＤのリスト及び／又はアプリケーション名のリストを含むことができる。
【００７６】
検索モジュール３１２は、考慮セットに様々な異なる処理作動を実行する。一部の実施例では、検索モジュール３１２は、考慮セットに含まれるアプリケーションの各々に対する結果スコアを生成することができる。一部の例では、検索モジュール３１２は、関わっているアプリケーションの結果スコアに基づいて考慮セットを抜粋することができる。例えば、部分集合は、最も高い結果スコアを有するアプリケーションとすることができ、又は閾値を超える結果スコアを有することができる。検索結果３６０に含まれる結果オブジェクト３６２は、検索モジュール３１２が結果スコアを計算する方法に依存する。例えば、結果スコアは、問合せパラメータ２６２、２６４に対するアプリケーションの関連性、市場におけるアプリケーションの人気、アプリケーションの格付け、及びアプリケーションの他の特性のいずれかの組合せに依存する。
【００７７】
検索モジュール３１２は、様々な異なる方法でアプリケーションの結果スコアを生成することができる。一般的に、検索モジュール３１２は、１つ又はそれよりも多くのスコアリング特徴に基づいてアプリケーションの結果スコアを生成することができる。スコアリング特徴は、アプリケーション及び／又は問合せパラメータ２６２、２６４に関連付けることができる。アプリケーションスコアリング特徴は、アプリケーションに関連付けられたあらゆるデータを含むことができる。例えば、アプリケーションスコアリング特徴は、アプリケーション記録３４０に含まれるアプリケーション特徴のいずれか、又はアプリケーションの人気を示すデータ（ダウンロードの数など）及びアプリケーションに関連付けられた格付け（例えば、星の数など）のようなアプリケーションに関するいずれの追加の特徴を含むことができる。問合せスコアリング特徴は、問合せパラメータ２６２、２６４に関連付けられたあらゆるデータを含むことができる。例えば、問合せスコアリング特徴は、以下に限定されるものではないが、検索問合せ２６２における語の数、検索問合せ２６２の人気、及び検索問合せ２６２における語の予想される頻度を含むことができる。アプリケーション−問合せスコアリング特徴は、アプリケーション及び問合せパラメータ２６２、２６４（例えば、検索モジュール３１２によってアプリケーション記録３４０の識別をもたらした問合せパラメータ２６２、２６４）の両方に関連付けられたデータに基づいて生成することができるあらゆるデータを含むことができる。例えば、アプリケーション−問合せスコアリング特徴は、以下に限定されるものではないが、問合せの語が、識別されたアプリケーション記録３４０の語にどれだけ適合するかを示すパラメータを含むことができる。検索モジュール３１２は、アプリケーションスコアリング特徴、問合せスコアリング特徴、及びアプリケーション−問合せスコアリング特徴のうちの少なくとも１つに基づいてアプリケーションの結果スコアを生成することができる。
【００７８】
検索モジュール３１２は、本明細書に列挙するスコアリング特徴及び／又は明示的には列挙していない追加のスコアリング特徴のうちの１つ又はそれよりも多くに基づいて結果スコアを決定することができる。一部の例では、検索モジュール３１２は、１つ又はそれよりも多くのスコアリング特徴を受け入れるように構成された１つ又はそれよりも多くの機械学習モデル（例えば、管理された学習モデル）を含むことができる。１つ又はそれよりも多くの機械学習モデルは、アプリケーションスコアリング特徴、問合せスコアリング特徴、及びアプリケーション−問合せスコアリング特徴のうちの少なくとも１つに基づいて結果スコアを生成することができる。例えば、検索モジュール３１２は、問合せパラメータ２６２、２６４と各アプリケーションを対にして、各対（問合せ、アプリケーション）の特徴のベクトルを計算することができる。特徴のベクトルは、アプリケーションスコアリング特徴、問合せスコアリング特徴、及びアプリケーション−問合せスコアリング特徴を含むことができる。検索モジュール３１２は、特徴のベクトルを機械学習回帰モデルに入力し、考慮セットのアプリケーションをランク付けるために使用することができる結果スコアを計算することができる。次に、検索モジュール３１２は、結果スコアに基づいて考慮セットに示されたアプリケーションをランク付けることができる。これに加えて又はこれに代えて、検索モジュール３１２は、結果スコアに基づいて考慮セットに示されたアプリケーションを選り分けることができる。機能的検索の出力は、考慮セットに基づく第三者アプリケーションのセットである。以上は、結果スコアが計算される方法の例である。一部の実施例は、異なる方式で結果スコアを計算することができる。
【００７９】
これに加えて又はこれに代えて、検索モジュール３１２は、エンティティ検索を実行する。エンティティ検索は、問合せで参照されたエンティティのタイプの識別、及び一部の例ではエンティティに関連する第三者アプリケーションの識別を試みる検索である。検索モジュール３１２は、第三者アプリケーションのセットにエンティティ検索の結果を含むことができ、及び／又は結果を利用して機能的検索によって生成された結果を拡張することができる。エンティティ検索は、エンティティデータストア３３４によってサポートされる。
【００８０】
作動において、検索モジュール３１２は、問合せパラメータ２６２、２６４を受信してエンティティ検索を開始する。検索モジュール３１２は、問合せパラメータ２６２、２６４の語の１つ又はそれよりも多くを含むデータベース要求をエンティティデータストア３３４に提供する。１つ又はそれよりも多くの語がエンティティデータストア３３４に列挙されている時に、エンティティデータストア３３４は適合した語のエンティティタイプを戻す。次に、検索モジュール３１２は、アプリケーション参照記録に基づいて戻されたエンティティタイプに関連する第三者アプリケーションを決定することができる。検索モジュール３１２は、エンティティの適合が良い適合であるか否かの確率を推定することにより、各エンティティタイプ／第三者アプリケーションの適合をスコアリングするように構成することができる。検索モジュール３１２は、ヒューリスティック技術を使用してエンティティタイプ／第三者アプリケーションの適合をスコアリングすることができる。検索モジュール３１２は、計算されたスコアに基づいて適合したアプリケーションをランク付けることができる。適合したアプリケーションは、第三者アプリケーションのセットに含むことができる。これに加えて又はこれに代えて、検索モジュール３１２がアプリケーションをスコアリングすると、エンティティ検索の結果（アプリケーションのリスト及びそれに対応するスコアなど）は、信号として機能的検索処理に提供することができる。これらの実施例では、機能的検索処理は、考慮セットのアプリケーションの結果スコアを決定するための信号としてエンティティ検索結果（３６０）を使用することができる。
【００８１】
エンティティ検索の例では、問合せパラメータ２６２、２６４は、「トイストーリー」という語を含むことができる。検索モジュール３１２は、１つ又はそれよりも多くのエンティティタイプに関連付けることができるエンティティデータストア３３４の「トイストーリー」を識別することができる。例えば、「トイストーリー」は、映画のエンティティとして識別することができる。次に、検索モジュール３１２は、映画のエンティティに関連付けられた第三者アプリケーションを識別することができる。この例では、検索モジュール３１２は、ＩＭＤＢ（登録商標）アプリケーション、ＮＥＴＦＬＩＸ（登録商標）アプリケーション、及びＲＯＴＴＥＮ  ＴＯＭＡＴＯＥＳ（登録商標）アプリケーションを映画のエンティティをサポートする第三者アプリケーションとして識別することができる。従って、これらの第三者アプリケーションは、第三者アプリケーションのセットに示すことができ、及び／又は機能的検索処理中に識別された考慮セットに示されるアプリケーションの結果スコアを計算するために使用することができる。
【００８２】
一部の実施例では、検索モジュール３１２は、問合せパラメータ２６２、２６４の識別したエンティティを後で使用するために格納することができる。これらの実施例では、格納したエンティティを使用して、ウェブサーバ１３０又はアプリケーションサーバ１２０に要求を送信するか又は１つ又はそれよりも多くのリソース識別子３６５を生成することができる。
【００８３】
一部の実施例では、検索モジュール３１２は、名前検索を実行するように更に構成される。名前検索は、質問語に明示的に含まれる名前を有する第三者アプリケーションの検索である。検索モジュール３１２は、検索問合せ２６２の語のいずれかがアプリケーションデータストア３３２に表されたアプリケーションの名前に適合するか否かを決定することができる。適合する場合に、検索モジュール３１２は、アプリケーションの表現によって定義される第三者アプリケーションを第三者アプリケーションのセットに含むことができる。上述の検索技術は、例としてのみ提供している。
【００８４】
転送モジュール３１４は、問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くを検索モジュール３１２によって識別された第三者アプリケーションのサーバに転送するように構成される。一部の実施例では、転送モジュール３１４は、各第三者アプリケーションに関連付けられたウェブサーバ１３０及び／又はアプリケーションサーバ１２０を決定する。これらの実施例では、転送モジュール３１４は、要求をウェブサーバ１３０及び／又はアプリケーションサーバ１２０に送信するための第三者アプリケーションに対応する要求指令テンプレート３４６ｃを取得することができる。転送モジュール３１４は、指令テンプレートデータストア３３６から第三者アプリケーションの要求指令テンプレート３４６ｃを取得することができる。要求指令テンプレート３４６ｃ及び１つ又はそれよりも多くの問合せパラメータ２６２、２６４に基づいて、転送モジュール３１４は、発信される要求をフォーマット設定する。要求指令テンプレート３４６ｃは、要求を受信及び処理するために特定の第三者アプリケーションによって実装される方式に基づくことができる。各第三者アプリケーションは、第三者アプリケーションに提供される要求のパラメータを表現するための異なるパラメータタイプ及び異なる構文を受け入れることができる。従って、第三者アプリケーションによって実施される方式は、要求を受信することを予想する方法を定義することができ、それによって第三者アプリケーションの特定機能を利用するために各指令テンプレートを定義することができる。
【００８５】
転送モジュール３１４は、問合せラッパー２６０から抽出された問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くを指令テンプレート３４６ｃに挿入することによって発信される要求を生成することができる。上述のように、検索モジュール３１２は、問合せパラメータ２６２、２６４の少なくとも部分集合のエンティティタイプを決定することができる。さらに、特定の第三者アプリケーションの指令テンプレート３４６ｃを識別することにより、転送モジュール３１４は、第三者アプリケーションの各特定の指令テンプレート３４６ｃに含まれるパラメータタイプを理解することができる。転送モジュール３１４は、エンティティタイプとパラメータタイプとの間の関連表を利用して、発信される要求に含む問合せパラメータを決定することができる。例えば、レストランの予約をするための第三者アプリケーションは、以下の指令テンプレートを受け入れることができる：
「ｈｔｔｐ：／／ｗｗｗ．ｅｘ_ｒｅｓ_ａｐｐ．ｃｏｍ／ｅｘ．ａｓｐｘ？ｄ≦ｄａｔｅ＞＆ｔ≦ｔｉｍｅ＞＆ｒ≦ｎａｍｅ＞」及び問合せは、以下の質問語：「Ｆｒｅｎｃｈ  Ｌａｕｎｄｒｙ」、現在の日付、及び「午後９時」を含むことができる。この例では、検索モジュール３１２は、「Ｆｒｅｎｃｈ  Ｌａｕｎｄｒｙ」が最も可能性の高いレストランエントリであり、現在の日付は日付エンティティの可能性が高く、「午後９時」は最も可能性の高い時間エンティティであると決定する。従って、転送モジュール３１４は、上記に引用した指令テンプレート３４６ｃに基づいて要求ＵＲＬ「ｈｔｔｐ：／／ｗｗｗ．ｅｘ_ｒｅｓ_ａｐｐ．ｃｏｍ／ｅｘ．ａｓｐｘ？ｄ≦ＦＥＢ２８＞＆ｔ≦２１００＞＆ｒ≦Ｆｒｅｎｃｈ  Ｌａｕｎｄｒｙ＞」を生成することができる。転送モジュール３１４は、この要求を第三者アプリケーションに対応するウェブサーバ１３０（又はアプリケーションサーバ１２０）に送信することができる。従って、転送モジュール３１４は、第三者アプリケーションの予約機能を利用する。要求ＵＲＬが上述の例に示されているが、要求は、第三者アプリケーションのサーバへのＡＰＩ呼出しのようないずれかの他の適切なフォーマットを有することができる。
【００８６】
第三者アプリケーションは、遠隔コンピュータデバイス２００からのいずれの他の要求も処理し、要求に対応する応答を戻す。例えば、第三者アプリケーションが、衣料品の銘柄又はタイプを消費者が検索することを可能にするオンライン小売業者である場合に、第三者アプリケーションは、第三者アプリケーションに関連付けられた小売業者によって販売される衣料品の項目を示す応答を戻すことができ、それによって応答に示される項目は、要求に含まれるパラメータに対応する。
【００８７】
第三者アプリケーションからの応答は、リソース識別子３６５を含むことができる。例えば、ウェブサーバ１３０は、ウェブ要求に応答することができる。この応答は、要求されたデータ及びウェブリソース識別子３６５ａ及び／又は要求されたデータを見出すことができる場所を示すアプリケーションリソース識別子３６５ｂを含むことができる。例えば、第三者アプリケーションがレストランの予約をするためのアプリケーションである場合に、第三者アプリケーションのサーバは、レストラン名、時間、及び日にちを示す要求を受信することができる。それに応じて、サーバ１２０、１３０は、指定された日付及び時間にレストランの予約が可能か否かを示す応答及び／又はユーザが予約することを可能にする第三者アプリケーションの状態へのリソース識別子３６５（例えば、ウェブリソース識別子３６５ａ又はアプリケーションリソース識別子３６５ｂ）を戻すことができる。
【００８８】
リンキングモジュール３１６は、第三者アプリケーションから（すなわち、第三者アプリケーションのウェブサーバ１３０及び／又はアプリケーションサーバ１２０から）応答を受信して、各それぞれの第三者アプリケーションから受信した応答に基づいて第三者アプリケーションへの状態リンク３６４を生成する。リンキングモジュール３１６は、検索結果３６０の一部として遠隔コンピュータデバイス２００に提供される結果オブジェクト３６２に状態リンク３６４を含む。一部の実施例では、リンキングモジュール３１６は、第三者アプリケーションの各々に関連付けられたウェブサーバ１３０からウェブリソース識別子３６５ａを受信する。各ウェブリソース識別子３６５ａでは、リンキングモジュール３１６が、１つ又はそれよりも多くのウェブリソース識別子３６５ａ及び／又は１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂを含む状態リンク３６４を生成することができる。リンキングモジュール３１６は、ウェブリソース識別子３６５ａをアプリケーションリソース識別子３６５ｂに変換するように構成することができる。例えば、リンキングモジュール３１６は、ウェブリソース識別子３６５ａからアプリケーションリソース識別子３６５ｂに変換するための変換規則を利用することができる。変換規則は、特定の第三者アプリケーションに固有とすることができる（例えば、第１の変換規則は第１の第三者アプリケーションに適用することができ、第２の変換規則は第２の第三者アプリケーションに適用することができる）。変換規則は、ウェブリソース識別子３６５ａのドメイン名をアプリケーションリソース識別子３６５ｂに含まれるネイティブアプリケーション２１８の参照に変換する方法を定義することができる。変換規則は、ウェブリソース識別子３６５ａに現れる状態パラメータをアプリケーションリソース識別子３６５ｂに含まれる状態パラメータに変換する方法を更に定義することができる。
【００８９】
これに加えて又はこれに代えて、リンキングモジュール３１６は、第三者アプリケーションのセットに示される（検索モジュール３１２によって識別される）第三者アプリケーションに対応する１つ又はそれよりも多くの指令テンプレート、問合せパラメータ２６２、２６４に関わっている語の１つ又はそれよりも多く、及び場合によっては検索モジュール３１２によって識別される１つ又はそれよりも多くのエンティティ及びエンティティタイプを使用して、第三者アプリケーションの特定の状態への状態リンク３６４を生成することができる。一部の実施例では、リンキングモジュール３１６は、第三者アプリケーションのセットに示された各第三者アプリケーションのための指令テンプレートデータストア３３６からの１つ又はそれよりも多くの指令テンプレート３４６、及び場合によっては検索モジュール３１２によって決定されたエンティティタイプを取得する。例えば、ユーザがレストランを予約することを可能にする第三者アプリケーションでは、第三者アプリケーションに対応する指令テンプレート３４６は、ウェブリソース識別子３６５ａ及びアプリケーションリソース識別子３６５ｂを生成するための指令テンプレート３４６を含むことができる。各指令テンプレート３４６は、受信するパラメータのタイプを示すことができる。エンティティタイプを第三者アプリケーションによって受け入れられるパラメータタイプに関連付ける関連表を使用して、リンキングモジュール３１６は、どのエンティティを各指令テンプレート３４６のどのパラメータフィールドに入力することができるかを決定する。次に、リンキングモジュール３１６は、指令テンプレート３４６のパラメータフィールドのための識別されたエンティティを置換する。従って、第三者アプリケーションのセットで識別された各第三者アプリケーションに対して、リンキングモジュール３１６は、第三者アプリケーションのウェブサーバ１３０又はアプリケーションサーバ１２０に要求を送信する必要なく第三者アプリケーションの１つ又はそれよりも多くの機能を利用する１つ又はそれよりも多くのウェブリソース識別子３６５ａ及び／又はアプリケーションリソース識別子３６５ｂを生成することができる。
【００９０】
リンキングモジュール３１６は、特定の状態に対応するリソース識別子３６５の各セットに対して、状態リンク３６４に第三者アプリケーションに対応するリソース識別子３６５のセットを埋め込むことができる。状態リンク３６４が１つよりも多いリソース識別子３６５（例えば、１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂ及びウェブリソース識別子３６５ａ）を含む実施例では、リンキングモジュール３１６は、リソース識別子３６５にアクセスするための順番を示す状態リンクを備えた命令セットを更に含むことができる。例えば、命令セットは、まず、アプリケーションリソース識別子３６５ｂによって示されるネイティブアプリケーション２１８の起動をまず試みるように遠隔コンピュータデバイス２００に命令することができ、成功しなかった場合に、遠隔ユーザコンピュータデバイス２００のウェブブラウザを通じてウェブアプリケーションへのアクセスを試みるように命令することができる。一部の実施では、命令セットはスクリプトである。
【００９１】
ビューイングモジュール３１８は、遠隔コンピュータデバイス２００に提供することができる第三者アプリケーションの状態のビューを決定することができる。第三者アプリケーションの状態のビューは、例えば、第三者アプリケーションのネイティブアプリケーションバージョン又はウェブアプリケーションバージョンのいずれかのグラフィカルユーザインタフェース（ＧＵＩ）２５０とすることができる。一部の実施例では、ビューイングモジュール３１８は、例えば、決定された状態のウェブアプリケーションにアクセスしてその状態のウェブアプリケーションのグラフィカルユーザインタフェース２５０のスクリーンショットを取り込むことができる。これらの実施例では、ビューイングモジュール３１８は、リンキングモジュール３１６にスクリーンショットを提供することができ、リンキングモジュール３１６は、スクリーンショットに状態リンクを提供する。一部の実施例では、スクリーンショットは、問合せに含意された機能に対応するスクリーンの一部だけから取られる。
【００９２】
一部の実施例では、ビューイングモジュール３１８は、遠隔コンピュータデバイス２００に実際の第三者アプリケーション（例えば、第三者アプリケーションのネイティブアプリケーションバージョン又はウェブアプリケーションバージョン）へのアクセスを提供するように構成される。これらの実施例では、ビューイングモジュール３１８は、ウェブアプリケーション又はネイティブアプリケーション２１８のコードを分析してアプリケーションの特定の状態の望ましい機能に関するコードの特定のセグメントを識別する。コードの識別された部分は、次に、ウェブサーバ１３０、検索サーバ３００、又は遠隔コンピュータデバイス２００のいずれかで実行することができ、ユーザに問合せに含意された機能を提供する。これらの実施をサポートするために、モジュラーブロックにおける挙動（例えば、特定機能）及び関連付けられた挙動に関連する呈示をセグメント化するプログラミング言語でウェブアプリケーションを書くことができる。従って、ビューイングモジュール３１８は、特定機能又は状態に対応するモジュラーブロックを効率的に識別することができ、それによってビューイングモジュール３１８は、１つ又はそれよりも多くの問合せパラメータ２６２、２６４をモジュラーブロックに提供することができ、モジュラーブロックが、１つ又はそれよりも多くの問合せパラメータ２６２、２６４を使用して実行される。これは、遠隔コンピュータデバイス２００が、望ましい状態でウェブアプリケーション又はネイティブアプリケーション２１８の特定機能のビューを受信し、かつウェブ又はネイティブアプリケーション２１８と対話する（例えば、追加の入力を提供する及び／又は追加の出力を受信する）ことを可能にする。
【００９３】
結果モジュール３１９は、検索結果３６０を生成し、かつ問合せを提供した遠隔コンピュータデバイス２００に検索結果（３６０）を提供する。第三者アプリケーションのセットの各第三者アプリケーションに対して、結果モジュール３１９は、第三者アプリケーションの結果オブジェクト３６２を生成することができる。結果オブジェクト３６２は、第三者アプリケーションの異なる状態への１つ又はそれよりも多くの状態リンク３６４を含むことができる。上述のように、各状態リンク３６４は、アプリケーションリソース識別子３６５ｂ及び／又はウェブリソース識別子３６５ａを含むことができる。これに加えて又はこれに代えて、結果モジュール３１９は、第三者アプリケーションに対応する視覚的指示子３６６を取得することができ、結果オブジェクト３６２に視覚的指示子３６６を含むことができる。第三者アプリケーションの結果オブジェクト３６２に含むことができる視覚的指示子３６６の例は、第三者アプリケーションのアイコン、第三者アプリケーションの状態に対応するエンティティのロゴ又は画像、及び／又は第三者アプリケーションのスクリーンショットを含む。これに加えて又はこれに代えて、結果モジュール３１９は、第三者アプリケーションに対応する他のデータ３６８を取得することができ、結果オブジェクト３６２に他のデータ３６８を含むことができる。第三者アプリケーションに対応する他のデータ３６８の例は、第三者アプリケーションに対応するランク付け、格付け、及び／又は説明、及び／又は第三者アプリケーションの状態に対応するエンティティを含むことができる。結果モジュール３１９は、結果オブジェクト３６２を検索結果３６０に結合して検索結果３６０を遠隔コンピュータデバイス２００に送信することができる。
【００９４】
図４Ａは、１つ又はそれよりも多くの第三者アプリケーションにパラメータを提供する方法４００の作動の例示的セットを示している。解説の目的で、方法４００は、検索サーバ３００の構成要素によって実行されるものとして説明している。
【００９５】
作動４１０では、検索モジュール３１２は、遠隔コンピュータデバイス２００から問合せ（問合せラッパー２６０など）を受信する。一部の実施例では、問合せは、パートナーデバイス１４０を通じて遠隔コンピュータデバイス２００から提供することができる。上述のように、問合せは、検索問合せ２６２、及び、遠隔コンピュータデバイス２００の位置及び／又は遠隔コンピュータデバイス２００のオペレーティングシステム２１２のような他のパラメータ２６４を含む問合せパラメータ２６２、２６４を含むことができる。検索モジュール３１２は、検索問合せ２６２を構文解析して質問語を識別する。検索モジュール３１２は、質問語の特徴を抽出するために更に自然言語処理を実行することができる。作動４１２では、検索モジュール３１２は、問合せパラメータ２６２、２６４及び／又は質問語の特徴に基づいて問合せに対応する１つ又はそれよりも多くの第三者アプリケーションのセットを識別することができる。上述のように、検索モジュール３１２は、機能的検索、エンティティ検索、及び名前検索のうちの１つ又はそれよりも多くを実行して第三者アプリケーションのセットを識別することができる。
【００９６】
作動４１４では、転送モジュール３１４は、問合せパラメータ２６２、２６４を第三者アプリケーションのセットに示された第三者アプリケーションの各々に関連付けられたサーバに送信する。図４Ｂは、問合せパラメータ２６２、２６４を第三者アプリケーションのサーバに送信するための例示的な方法４３０を示している。方法４３０は、第三者アプリケーションのセットに示された各第三者アプリケーションに対して繰り返すことができる。
【００９７】
作動４４０では、転送モジュール３１４は、第三者アプリケーションに対応する指令テンプレート３４６を選択する。転送モジュール３１４は、第三者アプリケーションによって索引を付けることができる指令テンプレートデータストア３３６から要求を生成するための１つ又はそれよりも多くの要求指令テンプレート３４６ｃを取得することができる。上述のように、要求指令テンプレート３４６ｃは、人間が手を加えることができ、第三者アプリケーションのアプリケーション開発者によって提供することができ、又は第三者アプリケーションのコードから学習することができる。転送モジュール３１４は、第三者アプリケーション内の特定の要求指令テンプレート３４６ｃを選択するように更に要求することができ、それによって特定の要求指令テンプレート３４６ｃは、問合せに含意された機能に対応する。例えば、ユーザがレストランのレビューを要求してレストランの予約をすることを第三者アプリケーションが可能にする場合に、第三者アプリケーションは、２つの異なる要求指令テンプレート３４６ｃに対応する要求を少なくとも受信するように構成することができる。一部のシナリオでは、転送モジュール３１４は、問合せのエンティティタイプに基づいて要求指令テンプレート３４６ｃのうちの１つ又はそれよりも多くを選択することができる。例えば、問合せパラメータ２６２、２６４が、レストランの名前、日付、及び時間を含む場合に、転送モジュール３１４は、レストランを予約するための指令テンプレート３４６を選択することができる。これに代えて、転送モジュール３１４は、問合せパラメータ２６２、２６４によって含意されたエンティティタイプに対応するパラメータフィールドを定義する第三者アプリケーションのいずれの指令テンプレート３４６も選択することができる。
【００９８】
作動４４２では、転送モジュール３１４は、指令テンプレート３４６及び問合せパラメータ２６２、２６４に基づいて発信される要求をフォーマット設定する。転送モジュール３１４は、関連の問合せパラメータ２６２、２６４を指令テンプレート３４６に定義されたパラメータフィールドに挿入して発信される要求を生成することができる。転送モジュール３１４は、エンティティタイプと要求指令テンプレート３４６ｃのパラメータフィールドのパラメータタイプとの間の定義された関連性を利用してパラメータフィールドを埋めることができる。例えば、質問語のエンティティタイプがパラメータタイプに関連付けられる場合に、転送モジュール３１４は、パラメータフィールドに質問語を投入する。
【００９９】
作動４４４では、転送モジュール３１４は、発信される要求をサーバ、例えば、第三者アプリケーションに関連付けられたウェブサーバ１３０又はアプリケーションサーバ１２０に送信することができる。第三者アプリケーションに関連付けられたサーバは、要求を処理して結果を検索サーバ３００に提供する。
【０１００】
図４Ａ及び４Ｂの方法４００及び４３０は、例示のために提示しており、本発明の開示の範囲を制限するものではない。方法の変形は、本発明の開示の範囲にあると考えられる。
【０１０１】
図５は、遠隔コンピュータデバイス２００からの問合せを処理する方法５００の作動の例示的セットを示している。解説の目的で、方法５００は、検索サーバ３００の構成要素によって実行されるものとして示されている。
【０１０２】
作動５１０では、検索モジュール３１２は、遠隔コンピュータデバイス２００から問合せ（問合せラッパー２６０など）を受信する。単に解説の目的で、遠隔コンピュータデバイス２００は、遠隔コンピュータデバイス２００であるとして説明している。一部の実施では、問合せは、パートナーデバイス１４０を通じて遠隔コンピュータデバイス２００から提供することができる。上述のように、問合せは、検索問合せ２６２及び遠隔コンピュータデバイス２００の位置及び／又は遠隔コンピュータデバイス２００のオペレーティングシステム２１２のような他のパラメータ２６４を含む問合せパラメータ２６２、２６４を含むことができる。検索モジュール３１２は、検索問合せ２６２を構文解析して検索問合せ２６２の質問語を識別する。検索モジュール３１２は、質問語の特徴を抽出するために更に自然言語処理を実行することができる。
【０１０３】
作動５１２では、検索モジュール３１２は、問合せパラメータ２６２、２６４及び／又は質問語の特徴に基づいて問合せに対応する１つ又はそれよりも多くの第三者アプリケーションのセットを識別することができる。上述のように、検索モジュール３１２は、機能的検索、エンティティ検索、及び名前検索のうちの１つ又はそれよりも多くを実行して第三者アプリケーションのセットを識別することができる。
【０１０４】
作動５１４では、転送モジュール３１４は、問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くを第三者アプリケーションのセットの各々に関連付けられたサーバに送信する。一部の実施例では、転送モジュール３１４は、１つ又はそれよりも多くの問合せパラメータ２６２、２６４を送信する時に図４Ｂに関して説明した方法４３０を実行することができる。
【０１０５】
作動５１６では、リンキングモジュール３１６は、第三者アプリケーションの各々から応答を受信する。この応答は、例えば、第三者アプリケーションのウェブアプリケーションバージョンを実行するウェブサーバ１３０から受信することができる。このシナリオでは、応答は、１つ又はそれよりも多くのウェブリソース識別子３６５ａを含むことができ、この各々は、ウェブサーバ１３０と第三者アプリケーションのウェブアプリケーションバージョンの状態を示す１つ又はそれよりも多くの状態パラメータを識別する。例えば、応答は、ウェブサーバ１３０のドメイン名及び第三者アプリケーションの特定の状態にアクセスするために使用することができる１つ又はそれよりも多くの状態パラメータを各々が示す１つ又はそれよりも多くのＵＲＬを含むことができる。別の例では、応答は、第三者アプリケーションのネイティブアプリケーションバージョンをサポートするアプリケーションサーバ１２０から受信することができる。このシナリオでは、アプリケーションサーバ１２０は、各々がネイティブアプリケーション２１８及び第三者アプリケーションのネイティブアプリケーションバージョンの状態を示す１つ又はそれよりも多くの状態パラメータを識別する１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂを戻すことができる。
【０１０６】
作動５１８では、リンキングモジュール３１６は、第三者アプリケーションのサーバから受信したそれぞれの応答に基づいて第三者アプリケーションの各々に対する１つ又はそれよりも多くの状態リンク３６４を生成する。上述のように、状態リンク３６４は、第三者アプリケーションのネイティブアプリケーションバージョンの状態及び／又は第三者アプリケーションのウェブアプリケーションバージョンの状態にアクセスするための機構を提供することができる。応答が第三者アプリケーションのウェブサーバ１３０から受信されウェブリソース識別子３６５ａを含む実施では、リンキングモジュール３１６は、１つ又はそれよりも多くの変換規則に基づいてウェブリソース識別子３６５ａを１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂに変換することができる。リンキングモジュール３１６は、第三者アプリケーションが１つよりも多いネイティブアプリケーションバージョンを含む時にウェブリソース識別子３６５ａを複数のアプリケーションリソース識別子３６５ｂに変換することができる。他の実施例では、第三者アプリケーションに関連付けられたウェブサーバ１３０又はアプリケーションサーバ１２０は、応答で１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂ及び１つ又はそれよりも多くのウェブリソース識別子３６５ａを提供することができる。
【０１０７】
リンキングモジュール３１６は、状態リンク３６４に１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂを埋め込む。リンキングモジュール３１６は、更に、ウェブリソース識別子３６５ａを状態リンク３６４及びアプリケーションにアクセスするための命令セットに埋め込むことができる。命令セットは、遠隔コンピュータデバイス２００にウェブ走査検索アプリケーション２１６を使用してウェブアプリケーションにアクセスする前にネイティブアプリケーション２１８へのアクセスを試みるように命令することができる。これに加えて又はこれに代えて、命令セットは、遠隔コンピュータデバイス２００に状態リンク３６５に示されたネイティブアプリケーション２１８を起動するように命令することができ、かつ遠隔コンピュータデバイス２００に、ネイティブアプリケーション２１８のグラフィカルユーザインタフェース２５０に状態パラメータを入力するように命令することができる。
【０１０８】
作動５２０では、結果モジュール３１９は、第三者アプリケーションの各々に対する状態リンク３６４を遠隔コンピュータデバイス２００に送信する。一部の実施例では、結果モジュール３１９は、第三者アプリケーションに対応する結果オブジェクト３６２に１つ又はそれよりも多くの状態リンク３６４を含む。結果処理モジュール３１９は、１つ又はそれよりも多くの視覚的指示子３６６及び／又は他のデータ３６８のような追加のデータを各結果オブジェクト３６２に含むことができる。結果モジュール３１９は、検索結果３６０にリソースオブジェクト３６２を含むことができ、検索結果３６０を遠隔コンピュータデバイス２００に送信することができる。
【０１０９】
遠隔コンピュータデバイス２００は、状態リンク３６４を受信し、状態リンク３６４によって示されたネイティブアプリケーション２１８の起動をまず試みることによって第三者アプリケーションにアクセス可能である。これを実行する場合に、遠隔コンピュータデバイス２００は、１つ又はそれよりも多くの状態パラメータをネイティブアプリケーション２１８に提供し、ネイティブアプリケーション２１８は、状態パラメータをアプリケーションサーバ１２０に提供することができる。ネイティブアプリケーション２１８の起動に成功しなかった場合に、遠隔コンピュータデバイス２００は、状態リンク３６４のウェブリソース識別子３６５ａによって示されたウェブアプリケーションにそのウェブブラウザアプリケーション２１６を使用してアクセス可能である。
【０１１０】
以上の説明は、「各第三者アプリケーション」に対して説明したものであるが、「各第三者アプリケーション」への参照は、必ずしも全ての識別された第三者アプリケーションを要求しないが、関連の応答を提供する各第三者アプリケーションを要求するものである。図５の方法５００は、例示のために示されており、本発明の開示の範囲を制限するものではない。本方法の変形は、本発明の開示の範囲内であると見なされる。例えば、ビューイングモジュール３１８は、１つ又はそれよりも多くの状態パラメータによって示された状態のアプリケーション（ウェブアプリケーション又はネイティブアプリケーション２１８）のスクリーンショットを取り込むことができる。リンキングモジュール３１６は、結果オブジェクト３６２にスクリーンショットを含むことができる。
【０１１１】
図６は、遠隔コンピュータデバイス２００からの問合せを処理する方法６００の作動の例示的セットを示している。解説の目的で、方法６００は、検索サーバ３００の構成要素によって実行されるものとして説明される。図６の実施例によると、検索サーバ３００は、発信される要求を第三者アプリケーションに関連付けられたサーバに提供する必要なく、第三者アプリケーションへの１つ又はそれよりも多くのリソース識別子３６５及びリソース識別子３６５を含む状態リンク３６４を生成する。
【０１１２】
作動６１０では、検索モジュール３１２は、問合せパラメータ２６２、２６４を含む遠隔コンピュータデバイス３００からの問合せを受信する。作動６１２では、検索モジュール３１２は、問合せパラメータ２６２、２６４に基づいて問合せに対応する１つ又はそれよりも多くの第三者アプリケーションのセットを識別する。検索モジュール３１２は、機能的検索、エンティティ検索、及び名前検索のうちの１つ又はそれよりも多くを実行して第三者アプリケーションのセットを識別することができる。
【０１１３】
作動６１４では、リンキングモジュール３１６は、第三者アプリケーションのセットの各第三者アプリケーションのための１つ又はそれよりも多くの指令テンプレート３４６を決定することができる。上述のように、第三者アプリケーションの指令テンプレート３４６は、指令テンプレートデータストア３３６から取得することができる。リンキングモジュール３１６は、１つ又はそれよりも多くのウェブアプリケーション指令テンプレート３４６ａ及び１つ又はそれよりも多くのネイティブアプリケーション指令テンプレート３４６ｂを取得することができる。一部の実施例では、リンキングモジュール３１６は、問合せパラメータ２６２、２６４によって含意されたエンティティタイプに基づいて指令テンプレート３４６を選択することができる。一部の実施例では、リンキングモジュール３１６は、第三者アプリケーションに対応する関連表を使用して、第三者アプリケーションによってパラメータとして受け入れることができるエンティティタイプ（すなわち、第三者アプリケーションによって受け入れられるパラメータタイプ）を識別する。問合せパラメータ２６２、２６４によって含意されたエンティティタイプ及び第三者アプリケーションによって受け入れられるパラメータタイプに基づいて、リンキングモジュール３１６は、指令テンプレートデータストア３３６から１つ又はそれよりも多くの指令テンプレート３４６を選択することができる。従って、リンキングモジュール３１６は、第三者アプリケーションの特定機能を利用する１つ又はそれよりも多くの指令テンプレート３４６を取り出す。例えば、リンキングモジュール３４６は、問合せパラメータ２６２、２６４によって含意された機能性に基づいて第三者アプリケーションに対応する複数の指令テンプレート３４６から１つ又はそれよりも多くの指令テンプレート３４６を選択することができる。この例では、選択された指令テンプレート３４６は、第三者アプリケーションの異なるバージョン（例えば、ｉＯＳネイティブアプリケーションバージョンの指令テンプレート３４６ｂ、ＡＮＤＲＯＩＤ（登録商標）ネイティブアプリケーションバージョンの指令テンプレート３４６ｂ、及びウェブアプリケーションバージョンの指令テンプレート３４６ａ）に対応することができる。各第三者アプリケーションに対して、リンキングモジュール３１６は、複数の指令テンプレート３４６を選択して第三者アプリケーションの異なる機能を利用することができる。
【０１１４】
作動６１６では、リンキングモジュール３１６は、取り出された指令テンプレート３４６及び問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くに基づいて第三者アプリケーションの各々の１つ又はそれよりも多くのリソース識別子３６５を生成する。各指令テンプレート３４６では、リンキングモジュール３１６は、上述のように指令テンプレート３４６に定義されたパラメータフィールドを指令テンプレート３４６に関連した問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くで置換することができる。一部のシナリオでは、リンキングモジュール３１６は、それぞれの指令テンプレート３４６ａ、３４６ｂに定義されたパラメータフィールドを問合せパラメータ２６２、２６４の識別されたエンティティ又は全検索問合せ２６２自体で置換することができる。従って、リンキングモジュール３１６は、各第三者アプリケーションに対応する１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂ及び／又は１つ又はそれよりも多くのウェブリソース識別子３６５ａを生成することができる。一部のシナリオでは、複数のアプリケーションリソース識別子３６５ｂ及び／又は複数のウェブリソース識別子３６５ａは、第三者アプリケーションの同じ状態に対応することができる。言い換えれば、複数のリソース識別子３６５は、第三者アプリケーションの異なるバージョン（例えば、ＩＯＳ（登録商標）バージョン、ＡＮＤＲＯＩＤ（登録商標）バージョン、フリーバージョン、及び／又はペイバージョン）を参照することができるが、全てが第三者アプリケーションの同じ状態にアクセス可能である。
【０１１５】
作動６１８では、リンキングモジュール３１６は、各第三者アプリケーションのための１つ又はそれよりも多くの状態リンク３６４を生成することができる。リンキングモジュール３１６は、生成されたリソース識別子３６５に基づいて第三者アプリケーションへの状態リンク３６４を生成する。リンキングモジュール３１６は、状態リンク３６４にアプリケーションリソース識別子３６５ｂを挿入することができる。リンキングモジュール３１６は、状態リンク３６４内のウェブリソース識別子３６５ａと、アプリケーションにアクセスする（例えば、ウェブブラウジングアプリケーション２１６を使用してウェブアプリケーションにアクセスする前にネイティブアプリケーション２１８にアクセスを試みる）ための命令セットとを更に含むことができる。
【０１１６】
作動６２０では、第三者アプリケーションの各々に対して、リンキングモジュール３１６は、状態リンク３６４を遠隔コンピュータデバイス２００に通信する。一部の実施例では、結果モジュール３１９は、第三者アプリケーションに対応する結果オブジェクト３６２内に第三者アプリケーションに対応する各状態リンク３６４を含む。結果処理モジュール３１９は、１つ又はそれよりも多くの視覚的指示子３６６及び／又は他のデータ３６８のような追加のデータを各結果オブジェクト３６２に含むことができる。結果処理モジュール３１９は、検索結果３６０内に第三者アプリケーションのセットの各第三者アプリケーションのためのリソースオブジェクト３６２を含むことができ、かつ検索結果３６０を遠隔コンピュータデバイス２００に送信することができる。
【０１１７】
以上の説明は「各第三者アプリケーション」に対して説明したものであり、「各第三者アプリケーション」への参照は、必ずしも全ての識別された第三者アプリケーションを要求しないが、リソース識別子３６５（ウェブリソース識別子３６５ａ及び／又はアプリケーションリソース識別子３６５ｂ）を受け入れる各第三者アプリケーションを要求するものである。図６の方法６００は、例示として提供され、本発明の開示の範囲を制限するものではない。方法６００の変形は、本発明の開示の範囲にあるように意図している。
【０１１８】
図７Ａ−７Ｂは、遠隔コンピュータデバイス２００で実行される検索の例を示している。図７Ａでは、ユーザが検索問合せ２６２を検索アプリケーション２１４のＧＵＩ２５０に入力したところである。特に、ユーザは、検索問合せ２６２「トイストーリー」をＧＵＩ２５０の検索ボックス２５２に入力したところである。検索問合せ２６２に応答して、検索アプリケーション２１４は、検索問合せ２６２及びいずれかの他のパラメータ２６４を含む問合せラッパー２６０を生成し、問合せラッパー２６０を検索サーバ３００に送信する。例えば、検索サーバ３００への問合せラッパー２６０の送信を開始するために、ユーザは、ＧＵＩ２５０の検索ボタン２５４を選択することができる（例えば、タッチ又はクリック）。
【０１１９】
検索サーバ３００は、問合せラッパー２６０を受信し、これに基づいて検索結果３６０を生成する。検索サーバ３００は、第三者アプリケーションのセットに対応する結果オブジェクト３６２を含む検索結果３６０を送信することができる。例示的な実施例では、結果オブジェクト３６２は、「ＩＭＤＢ（登録商標）」（ネイティブ及び／又はウェブアプリケーションなど）、「ＦＡＮＤＡＮＧＯ（登録商標）」、「ＣＲＡＣＫＬＥ（登録商標）」、「ＦＬＩＸＳＴＥＲ（登録商標）」、及び「ＲＯＴＴＥＮ  ＴＯＭＡＴＯＥＳ（登録商標）」に対応する。各結果オブジェクト３６２は、検索結果３６０に示されたアプリケーションの関連の状態に対応する１つ又はそれよりも多くの状態リンク３６４を含むことができる。ユーザは、状態リンク３６４の１つを選択して（例えば、タッチ又はクリック）、状態リンク３６４に示されたリソースにアクセス可能である。このようなユーザ選択に応答して、検索アプリケーション２１４は、オペレーティングシステム２１２に命令して選択された第三者アプリケーションを起動し、状態リンク３６４に示された第三者アプリケーションの状態にアクセス可能である。
【０１２０】
図７Ａの例では、ユーザは、ＩＭＤＢ（登録商標）状態リンク３６４ａを選択する。ＩＭＤＢ（登録商標）アプリケーションの場合に、アプリケーションの様々な状態は、ＩＭＤＢ（登録商標）データベースの異なるエントリに対応することができる。例示するＩＭＤＢ（登録商標）状態リンク３６４ａは、映画「トイストーリー」のエントリに対応する状態を示すアプリケーションリソース識別子３６５ｂを含むことができる。従って、ＩＭＤＢ（登録商標）状態リンク３６４ａの選択は、検索アプリケーション２１４に遠隔コンピュータデバイス２００のオペレーティングシステム２１２にＩＭＤＢ（登録商標）ネイティブアプリケーション２１８を起動させ、状態リンク３６４ａに埋め込まれたアプリケーションリソース識別子３６５ｂに基づいてＩＭＤＢ（登録商標）ネイティブアプリケーション上の「トイストーリー」エントリにアクセスさせる。図７Ｂは、ＩＭＤＢ（登録商標）状態リンク３６４ａの選択に応答して起動された選択されたネイティブアプリケーション２１８のＧＵＩ２５０を示している。この例では、選択されたネイティブアプリケーションは、「トイストーリー」の例示的なエントリを表示する。
【０１２１】
図８Ａ−８Ｂは、遠隔コンピュータデバイス２００で実行される検索の別の例を示している。図８Ａでは、ユーザは、検索アプリケーション２１４のＧＵＩ２５０に検索問合せ２６２を入力したところである。特に、ユーザは、検索問合せ「自分の夜遅い食事」をＧＵＩ２５０の検索バー２５２に入力したところである。検索問合せ２６２に受信に応答して、検索アプリケーション２１４は、検索問合せ２６２及び他の問合せパラメータ２６４（例えば、デバイスの地理位置情報）を含む問合せラッパー２６０を生成し、問合せラッパー２６０を検索サーバ３００に送信する。
【０１２２】
検索サーバ３００は、問合せラッパー２６０を受信し、これに基づいて検索結果３６０を生成する。検索サーバ３００は、結果オブジェクト３６２のセットを含む検索結果３６０を遠隔コンピュータデバイス２００に送信することができる。例示した実施例では、結果オブジェクト３６２は、「ＹＥＬＰ（登録商標）」、「ＯＰＥＮＴＡＢＬＥ（登録商標）」、「ＴＲＩＰＡＤＶＩＳＯＲ（登録商標）」、及び「ＵＲＢＡＮＳＰＯＯＮ（登録商標）」アプリケーションを識別する。ＧＵＩ２５０は、アプリケーションへの状態リンク３６４を検索結果３６０に含むことができる。ユーザは、状態リンク３６４を選択して（例えば、タッチ又はクリック）、状態リンク３６４に示されたリソースにアクセス可能である。例えば、ユーザは、ＯＰＥＮＴＡＢＬＥ（登録商標）アイコンを含むＧＵＩ２５０のエリアを選択し、かつＯＰＥＮＴＡＢＬＥ（登録商標）アプリケーションへの状態リンク３６４を選択することができる。別の例では、検索エンジン結果ページに列挙する１つ又はそれよりも多くのアプリケーションのための１つ又はそれよりも多くの状態リンク３６４を提供することができる。
【０１２３】
図８ＡのＧＵＩ２５０は、複数の異なる状態リンク３６４を含む。３つの状態リンク３６４ａ、３６４ｂ、３６４ｃは、ＹＥＬＰ（登録商標）アプリケーションの異なる状態へのアクセスを提供する。ＹＥＬＰ（登録商標）の場合に、各状態は、異なるエンティティに対応することができる。例えば、状態リンク３６４ａ、３６４ｂ、３６４ｃは、それぞれに対してＹＥＬＰ（登録商標）アプリケーションにおける「ＩＨＯＰ（登録商標）」、「ＤＥＮＮＹ’Ｓ（登録商標）」、及び「ＴＡＣＯ  ＢＥＬＬ（登録商標）」のエントリへのアクセスを提供することができる。図８Ａの例では、ユーザは、ＤＥＮＮＹ’Ｓ（登録商標）状態リンク３６４ｂを選択する。ＤＥＮＮＹ’Ｓ（登録商標）状態リンク３６４ｂは、ＹＥＬＰ（登録商標）ネイティブアプリケーションにおけるレストラＤＥＮＮＹ’Ｓ（登録商標）のエントリへのアプリケーションリソース識別子３６５ｂを含むことができる。従って、ＤＥＮＮＹ’Ｓ（登録商標）状態リンク３６４ｂを選択することで、状態リンク３６４ａに埋め込まれたアプリケーションリソース識別子に基づいてＹＥＬＰ（登録商標）ネイティブアプリケーションを起動してＤＥＮＮＹ’Ｓ（登録商標）のエントリにアクセスするようにオペレーティングシステム２１２に検索アプリケーション２１４が命令する。図８Ｂは、ＤＥＮＮＹ’Ｓ（登録商標）状態リンク３６４ｂの選択に応答してオペレーティングシステム２１２が起動された選択されたアプリケーションの例示的なＧＵＩ２５０を示している。
【０１２４】
図９Ａ及び９Ｂは、遠隔コンピュータデバイス２００で実行することができる検索の別の例を示している。図９Ａでは、ユーザは、検索問合せ「ｔｈａｉ」をＧＵＩ２５０の検索バー２５２に入力し、例えば、ＧＵＩ２５０の検索ボタン２５４を選択することによって検索を実行したところである。検索問合せ２６２に応答して、検索アプリケーション２１４は、検索問合せ２６２及びいずれかの他の問合せパラメータ２６４（例えば、遠隔コンピュータデバイス２００の地理位置情報及び／又はオペレーティングシステム）を含む問合せラッパー２６０を生成し、問合せラッパー２６０を検索サーバ３００に送信する。
【０１２５】
検索サーバ３００は、問合せラッパー２６０を受信し、これに基づいて検索結果３６０を生成する。検索サーバ３００は、結果オブジェクト３６２のセットを含む検索結果３６０を遠隔コンピュータデバイス２００に送信することができる。結果オブジェクト３６２のセットは、ＹＥＬＰ（登録商標）及びＯＰＥＮＴＡＢＬＥ（登録商標）アプリケーションに対応する結果オブジェクト３６２を含む。各結果オブジェクト３６２は、それぞれのアプリケーションへの複数の状態リンク３６４を含む。ユーザは、状態リンク３６４を選択して状態リンク３６４に示されたエントリにアクセス可能である。例えば、ユーザは、Ｂａｎｇｋｏｋ  Ｂｉｓｔｒｏに対応する状態リンク３６４ａを選択してＹＥＬＰ（登録商標）アプリケーションのＢａｎｇｋｏｋ  Ｂｉｓｔｒｏエントリを閲覧することができる。
【０１２６】
図９ＡのＧＵＩ２５０は、ＹＥＬＰ（登録商標）アプリケーションのエントリへのアクセスを提供する３つの状態リンク３６４ａ、３６４ｂ、３６４ｃを含む。例えば、状態リンク３６４ａ、３６４ｂ、３６４ｃは、ＹＥＬＰ（登録商標）アプリケーションにおける「Ｂａｎｇｋｏｋ  Ｂｉｓｔｒｏ」、「Ｂｕｄａ  Ｔｈａｉ」、及び「Ｓｈａｎａ  Ｔｈａｉ  Ｒｅｓｔａｕｒａｎｔ」のエントリへのアクセスを提供することができる。図９ＡのＧＵＩは、ＯＰＥＮＴＡＢＬＥ（登録商標）アプリケーションのエントリへのアクセスを提供する３つの状態リンク３６４ｄ、３６４ｅ、３６４ｆを含む。例えば、状態リンク３６４ｄ、３６４ｅ、３６４ｆは、ＯＰＥＮＴＡＢＬＥ（登録商標）アプリケーションの「Ｂａａｎ  Ｔｈａｉ  Ｈｏｕｓｅ＆Ｗｉｎｅ  Ｂａｒ」、「Ｂａｓｉｌ  Ｃａｎｔｅｅｎ＠１１thＳｔｒｅｅｔ」、及び「Ｂｌａｃｋｗｏｏｄ」のエントリへのアクセスを提供することができる。「Ｂａａｎ  Ｔｈａｉ  Ｈｏｕｓｅ＆Ｗｉｎｅ  Ｂａｒ」、「Ｂａｓｉｌ  Ｃａｎｔｅｅｎ＠１１thＳｔｒｅｅｔ」、及び「Ｂｌａｃｋｗｏｏｄ」の状態リンク３６４ｄ、３６４ｅ、３６４ｆのそれぞれは、利用可能な予約時間に予約をすることに関するＯＰＥＮＴＡＢＬＥ（登録商標）アプリケーションＧＵＩ９１０ａ、９１０ｂ、９１０ｃの一部分を含む。従って、ユーザは、検索アプリケーション２１４のＧＵＩ２５０から直接にＯＰＥＮＴＡＢＬＥ（登録商標）アプリケーションの機能にアクセス可能である。
【０１２７】
図９ＡのＧＵＩ２５０は、ＹＥＬＰ（登録商標）及びＯＰＥＮＴＡＢＬＥ（登録商標）のネイティブアプリケーションが遠隔コンピュータデバイス２００に現在インストールされているか否かを示すアイコン９０２ａ、９０２ｂを含む。「オープン」アイコン９０２ａは、ＹＥＬＰ（登録商標）ネイティブアプリケーションが遠隔コンピュータデバイス２００によって起動することができることを示し、これは、ＹＥＬＰ（登録商標）ネイティブアプリケーションが遠隔コンピュータデバイス２００上にインストールされていることを含意する。ユーザは、「オープン」アイコン９０２ａを選択し（例えば、タッチ）、ＹＥＬＰ（登録商標）ネイティブアプリケーションをデフォルト状態（例えば、ＹＥＬＰ（登録商標）ネイティブアプリケーションの「ホームスクリーン」）にすることができる。「フリー」アイコン９０２ｂは、ＯＰＥＮＴＡＢＬＥ（登録商標）ネイティブアプリケーションを遠隔コンピュータデバイス２００にダウンロードすることができ、そこにインストールはされていないことを示す。一部の例では、ユーザは、「フリー」アイコン９０２ｂを選択し、ＯＰＥＮＴＡＢＬＥ（登録商標）ネイティブアプリケーションを遠隔コンピュータデバイス２００にダウンロードするか又は自動的にダウンロードを開始するためのＯＰＥＮＴＡＢＬＥ（登録商標）ネイティブアプリケーションを提供するアプリケーション市場（ＧＯＯＬＥＰＬＡＹ（登録商標）又はＡＰＰ  ＳＴＯＲＥ（登録商標））を起動することができる。Ｂａａｎ  Ｔｈａｉ  Ｈｏｕｓｅ  ＆  Ｗｉｎｅ  Ｂａｒ状態リンク３６４ｄを選択することで、検索アプリケーションは、ＯＰＥＮＴＡＢＬＥ（登録商標）ネイティブアプリケーションの起動を試みることができる。試みが成功しなかったと遠隔コンピュータデバイス２００が決定した時に、検索アプリケーション２１４は、状態リンク３６４ｄに埋め込まれたウェブリソース識別子３６５ａに基づいてＯＰＥＮＴＡＢＬＥ（登録商標）ウェブアプリケーションのＢａａｎ  Ｔｈａｉ  Ｈｏｕｓｅ  ＆  Ｗｉｎｅ  Ｂａｒのエントリにアクセスするようにオペレーティングシステム２１２に命令することができる。図９Ｂは、Ｂａａｎ  Ｔｈａｉ  Ｈｏｕｓｅ  ＆  Ｗｉｎｅ  Ｂａｒ状態リンク３６４ｄの選択に応答して遠隔コンピュータデバイス２００のウェブブラウザによって表示されるＯＰＥＮＴＡＢＬＥ（登録商標）ウェブアプリケーションのＧＵＩ２５０を示している。
【０１２８】
図１０は、遠隔コンピュータデバイス２００で実行される検索の別の例を示している。図１０では、ユーザは、ＧＵＩ２５０の検索バー２５２に検索問合せ「ｔａｘｉ」を入力したところである。上述のように、検索サーバ３００は、遠隔コンピュータデバイス２００から検索問合せ２６２及び他の問合せパラメータ２６４（遠隔コンピュータデバイス２００の地理位置情報など）を含む問合せラッパー２６０を受信し、問合せラッパー２６０に基づいて検索結果３６０を生成する。図１０の例では、検索サーバ３００は、地理位置情報問合せパラメータ２６４を要求でＧＥＴＴ（登録商標）アプリケーションに関連付けられたサーバに転送することができる。それに応じて、ＧＥＴＴ（登録商標）アプリケーションに関連付けられたサーバは、遠隔コンピュータデバイス２００に対する様々なタクシー運転者の推定距離及びタクシー運転者がユーザに到達するのにかかる推定時間のような動的データを戻すことができる。検索サーバ３００は、状態リンク３６４に動的データを埋め込むことができ、それによってＧＵＩ２５０は、状態リンク３６４に追加のデータ３６８として動的データを表示する。ユーザがタクシーの予約をしたい場合に、ユーザは、状態リンク３６４の１つを選択してタクシーの予約をすることができる。状態リンク３６４の選択は、ＧＥＴＴ（登録商標）ネイティブアプリケーションを起動することができ、それによってタクシーの予約を開始する。
【０１２９】
図７Ａ−１０に関して説明した検索は、例示として示すものであり、実行することができる検索のタイプを制限するものではない。検索の結果も例示的に示すだけであり、様々な検索結果３６０は、いずれかの他の適切な方式で表示することができる。
【０１３０】
図１１Ａ及び１１Ｂは、遠隔コンピュータデバイス２００から受信した問合せを処理するための検索サーバ３００によって実行される例示的な作動を示している。本明細書に説明する作動１１００は、検索サーバ３００の処理デバイス３１０によって実行することができる。
【０１３１】
作動１１１０では、検索サーバ３００は、遠隔コンピュータデバイス２００から問合せを受信する。一部の実施例では、問合せは、問合せパラメータ２６４を含む問合せラッパー２６０に収容される。問合せパラメータ２６２、２６４は、検索問合せ２６２（すなわち、１つ又はそれよりも多くの質問語）を含むことができる。一部の実施例では、問合せパラメータ２６２、２６４は、追加の問合せパラメータ２６４（遠隔コンピュータデバイス２００の地理位置情報、遠隔コンピュータデバイス２００のオペレーティングシステム２１２、遠隔コンピュータデバイス２００のデバイスタイプ、及び／又は遠隔コンピュータデバイス２００のユーザのユーザ名など）を更に含むことができる。
【０１３２】
作動１１１２では、検索サーバ３００は、問合せに対応する第三者アプリケーションのセットを識別する。検索サーバ３００は、問合せラッパー２６０で受信した問合せパラメータ２６２、２６４を使用して機能的検索、エンティティ検索、又は名前検索のうちの１つ又はそれよりも多くを実行することができる。１つ又は複数の検索の結果は、遠隔コンピュータデバイス２００によって問合せラッパーで提供された問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くに関連する第三者アプリケーションのセットである。
【０１３３】
作動１１１４では、検索サーバ３００は、第三者アプリケーションのセットに示された第三者アプリケーションのための１つ又はそれよりも多くのリソース識別子３６５を生成する。第三者アプリケーションに対して、検索サーバ３００は、問合せパラメータ２６２、２６４と第三者アプリケーションに対応する指令テンプレート３４６とに基づいてリソース識別子３６５を生成する。検索サーバ３００は、問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くのエンティティタイプに基づいて指令テンプレートデータストア３３６から関連する指令テンプレート３４６を識別することができる。例えば、問合せパラメータ２６２、２６４が映画の名前及び時間を含み、アプリケーションのセットが、遠隔コンピュータデバイス２００の近くの映画館の上映時間を見出すためのアプリケーションを含む場合に、検索サーバ３００は、これらのパラメータのタイプを受信する１つ又はそれよりも多くの指令テンプレート３４６を識別することができる。検索サーバ３００は、第三者アプリケーションに対応する関連表を利用して、問合せパラメータ２６２、２６４に含まれていた関連のパラメータを識別することができる。検索サーバ３００は、第三者アプリケーションのためのウェブアプリケーション指令テンプレート３４６ａ及び／又はネイティブアプリケーション指令テンプレート３４６ｂを識別することができる。検索サーバ３００は、リソース識別子３６５を生成する度に、関連の問合せパラメータ２６２、２６４を指令テンプレート３４６に定義されたパラメータフィールド内に置換することができる。
【０１３４】
作動１１１６では、検索サーバ３００は、生成されたリソース識別子３６５に基づいて第三者アプリケーションのための１つ又はそれよりも多くの状態リンク３６４を生成する。検索サーバ３００は、生成されたアプリケーションリソース識別子３６５ｂ及び／又はウェブリソース識別子３６５ａを状態リンク３６４に埋め込むことができる。一部のシナリオでは、検索サーバ３００は、１つよりも多いリソース識別子３６５を選択して状態リンク３６４に埋め込むことができる。例えば、第三者アプリケーションが、アプリケーションリソース識別子３６５ｂ（第三者アプリケーションのネイティブアプリケーション２１８を指定された状態に起動するための）及びウェブリソース識別子３６５ａ（指定された状態の第三者アプリケーションのウェブアプリケーションにアクセスするための）の両方を受け入れる場合に、検索サーバ３００は、リソース識別子３６５が同じ状態に対応する（例えば、同じ情報を提供する）場合に状態リンク３６４に含むための複数のリソース識別子３６５を選択することができる。状態リンク３６４が１つよりも多いリソース識別子を含む時には、検索サーバ３００は、リソース識別子を選択することができる順序を示す命令のセットを更に含むことができる。例えば、命令のセットは、状態リンク３６４に含まれたアプリケーションリソースを使用してネイティブアプリケーション２１８の起動を試みるように遠隔コンピュータデバイス２００に命令することができ、成功しなかった場合に、状態リンク３６４に含まれたウェブリソース識別子３６５ａを使用してウェブアプリケーションにアクセスするように命令することができる。一部の実施例では、検索サーバ３００は、状態リンク３６４に追加のデータを含む。例えば、検索サーバ３００は、状態リンク３６４に視覚的指示子３６６（第三者アプリケーションのアイコン、ロゴ、スクリーンショット、ＧＵＩ２５０要素など）及び／又はメタデータ（説明、格付け、ランキング、及び動的データなど）を含むことができる。追加のデータは、第三者アプリケーションに関連付けられたサーバ、アプリケーションデータストア３３２、及び／又はエンティティデータストア３３４を含むいずれかの適切なソースから取得することができる。
【０１３５】
作動１１１８では、検索サーバ３００は、生成された状態リンク３６４に基づいて検索結果３６０を生成する。第三者アプリケーションのセットの各第三者アプリケーションに対して、検索サーバ３００は、第三者アプリケーションの状態リンク３６４を一緒に分類することができる。次に、検索サーバ３００は、分類された状態リンク３６４に基づいて第三者アプリケーションの結果オブジェクト３６２を生成することができる。検索結果３６０は、第三者アプリケーションの各々に対応する結果オブジェクト３６２を含む。
【０１３６】
作動１１２０では、検索サーバ３００は、検索結果３６０を遠隔コンピュータデバイス２００に送信する。遠隔コンピュータデバイス２００は、そのユーザインタフェースデバイス２４０を通じて検索結果３６０を表示することができる。ユーザは、検索結果３６０に含まれた状態リンク３６４を選択することにより、検索結果（３６０）に示された第三者アプリケーションの状態にアクセス可能である。
【０１３７】
図１２Ａ及び１２Ｂは、遠隔コンピュータデバイス２００から受信した問合せを処理する検索サーバ３００によって実行される例示的な作動１２００を示している。本明細書に説明する作動１２００は、検索サーバ３００の処理デバイス３１０によって実行することができる。
【０１３８】
作動１２１０では、検索サーバ３００は、遠隔コンピュータデバイス２００から問合せを受信する。一部の実施例では、問合せは、問合せパラメータ２６２、２６４を含む問合せラッパー２６０に含まれる。問合せパラメータ２６２、２６４は、検索問合せ２６２（すなわち、１つ又はそれよりも多くの質問語）を含むことができる。一部の実施例では、問合せパラメータ２６２、２６４は、追加の問合せパラメータ２６４（遠隔コンピュータデバイス２００の地理位置情報、遠隔コンピュータデバイス２００のオペレーティングシステム、遠隔コンピュータデバイス２００のデバイスタイプ、及び／又は遠隔コンピュータデバイス２００のユーザのユーザ名など）を更に含むことができる。
【０１３９】
作動１２１２では、検索サーバ３００は、問合せに対応する第三者アプリケーションのセットを識別する。検索サーバ３００は、問合せで受信した問合せパラメータ２６２、２６４を使用して機能的検索、エンティティ検索、又は名前検索のうちの１つ又はそれよりも多くを実行することができる。１つ又は複数の検索の結果は、遠隔コンピュータデバイス２００によって問合せで提供された問合せパラメータ２６２、２６４のうちの１つ又はそれよりも多くに関連する第三者アプリケーションのセットである。
【０１４０】
作動１２１４では、検索サーバ３００は、第三者アプリケーションに対応する要求指令テンプレート３４６ｃに基づいて要求を生成する。各関連の第三者アプリケーションに対して、検索サーバ３００は、指令テンプレートデータストア３３６から１つ又はそれよりも多くの要求指令テンプレート３４６ｃを取り出す。検索サーバ３００は、問合せに含まれたエンティティタイプに基づいて、取り出す要求指令テンプレート３４６ｃを決定することができる。一部の実施例では、検索サーバ３００は、関連表を利用して関連する要求指令テンプレート３４６ｃを識別する。検索サーバ３００は、問合せからの識別されたエンティティを要求指令テンプレート３４６ｃのパラメータフィールドに挿入して要求を生成することができる。
【０１４１】
作動１２１６では、検索サーバ３００は、第三者アプリケーションのセットに示された第三者アプリケーションのサーバに要求を送信する。一部の実施例では、特定の第三者アプリケーションに対する要求を第三者アプリケーションのウェブサーバ１３０に送信することができる。作動１２１８では、検索サーバ３００は、第三者アプリケーションのサーバから応答を受信する。サーバがウェブサーバ１３０である実施例では、応答は、要求に含まれたパラメータに対応する状態のウェブリソース識別子３６５ａを含むことができる。検索サーバ３００は、複数のサーバから複数の応答を受信することができる。
【０１４２】
作動１２２０では、検索サーバ３００は、応答に基づいて状態リンク３６４を生成する。一部の実施例では、検索サーバ３００は、応答で受信したウェブリソース識別子３６５ａを各それぞれの第三者アプリケーションに対応する変換規則に基づいてアプリケーションリソース識別子３６５ｂに変換することができる。一部のシナリオでは、変換規則は、ウェブリソース識別子３６５ａから変換される複数のアプリケーションリソース識別子３６５ｂをもたらすことができる（例えば、ネイティブアプリケーション２１８の複数のバージョンの場合）。検索サーバ３００は、第三者アプリケーションの同じ状態に対応するアプリケーションリソース識別子３６５ｂ及びウェブリソース識別子３６５ａを一緒に分類することができる。検索サーバ３００は、分類されたアプリケーションリソース識別子３６５ｂ及びウェブリソース識別子３６５ａを状態リンク３６４に埋め込むことができる。従って、検索サーバ３００は、第三者アプリケーションのための複数の状態リンク３６４を生成することができ、第三者アプリケーションのセットに示された第三者アプリケーションの各々の１つ又はそれよりも多くの状態リンク３６４を生成することができる。状態リンク３６４が１つよりも多いリソース識別子３６５（例えば、１つ又はそれよりも多くのアプリケーションリソース識別子３６５ｂ及びウェブリソース識別子３６５ａ）を含む時は、検索サーバ３００は、リソース識別子３６５を選択することができる順序を示す命令のセットを更に含むことができる。例えば、命令のセットは、状態リンク３６４に含まれたアプリケーションリソース識別子３６５ｂを使用してネイティブアプリケーション２１８の起動を試みるように遠隔コンピュータデバイス２００に命令することができ、成功しなかった場合に、状態リンク３６４に含まれたウェブリソース識別子３６５ａを使用してウェブアプリケーションにアクセスするように命令することができる。一部の実施例では、検索サーバ３００は、状態リンク３６４に追加のデータを含む。例えば、検索サーバ３００は、状態リンク３６４に視覚的指示子３６６（例えば、第三者アプリケーションのアイコン、ロゴ、スクリーンショット、ＧＵＩ２５０要素）及び／又はメタデータ（例えば、説明、格付け、ランキング、動的データ）を含むことができる。追加のデータは、第三者アプリケーションに関連付けられたサーバ、アプリケーションデータストア３３２、及び／又はエンティティデータストア３３４を含むいずれかの適切なソースから取得することができる。
【０１４３】
作動１２２２では、検索サーバ３００は、状態リンク３６４に基づいて検索結果３６０を生成する。少なくとも１つの状態リンク３６４を生成させた各第三者アプリケーションに対して、検索サーバ３００は、第三者アプリケーションの状態リンク３６４を一緒に分類することができる。次に、検索サーバ３００は、分類された状態リンク３６４に基づいて第三者アプリケーションの結果オブジェクト３６２を生成することができる。検索結果３６０は、第三者アプリケーションの各々に対応する結果オブジェクト３６２を含む。
【０１４４】
作動１２２４では、検索サーバ３００は、検索結果３６０を遠隔コンピュータデバイス２００に送信する。次に、遠隔コンピュータデバイス２００は、そのユーザインタフェースデバイス２４０を通じて検索結果３６０を表示することができる。ユーザは、検索結果３６０に含まれる状態リンク３６４を選択することにより、検索結果３６０に示された第三者アプリケーションの状態にアクセス可能である。
【０１４５】
コンピュータ機械アーキテクチャ
図１３は、例えば、持続性機械可読媒体から命令を読み取り、１つ又はそれよりも多くのプロセッサ（又はコントローラ）で命令を実行することができる例示的機械の構成要素を示すブロック図である。特に、図１３は、コンピュータシステム１３００の例示的形態での機械の概略図を示しており、その内部で機械に本明細書に説明する方法のいずれか１つ又はそれよりも多くを実施させるための命令１３２４（例えば、ソフトウエア又はプログラムコード）を実行することができる。本方法は、図３Ａ、３Ｂ、４、５、及び６に関して説明した方法を含む。代替の実施形態において、この機械は、独立デバイスとして作動するか又は他の機械に接続することができる（例えば、ネットワーキングされる）。ネットワーキングされた配備では、この機械は、サーバ−クライアントネットワーク環境におけるサーバ機械又はクライアント機械として作動することができ、又はピアツーピア（又は分散型）ネットワーク環境におけるピア機械として作動することができる。
【０１４６】
この構成のための機械は、タブレットコンピュータ、ウルトラブック（又はネットブック）コンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、スマートフォン、ウェブ家電、又はその機械によって行われる作動を指定する命令１３２４を（連続して又はそれ以外で）実行することができる類似の機械のような移動コンピュータデバイスとすることができる。また、単一機械だけが示されているが、「機械」という語は、本明細書に説明する方法のいずれか１つ又はそれよりも多くを実行するために命令１３２４を個別に又は一緒に実行する機械のあらゆる集合を含むものとする。
【０１４７】
例示的コンピュータシステム１３００は、１つ又はそれよりも多くのプロセッサ１３０２（中央演算処理装置（ＣＰＵ）など）を含み、図形処理ユニット（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、１つ又はそれよりも多くの特定用途向け集積回路（ＡＳＩＣ）、１つ又はそれよりも多くの無線周波数集積回路（又はチップセット）（ＲＦＩＣ）、無線フィデリティ（ＷｉＦｉ）チップセット、全地球測位システム（ＧＰＳ）チップセット、加速度計（１、２、又は３次元）、又はこれらのいずれかの組合せを含むことができる。コンピュータシステム１３００はまた、主メモリ１３０４及び静的メモリ１３０６を含む。コンピュータシステムの構成要素は、バス１３０８を通じて互いに通信するように構成される。コンピュータシステム１３００は、ディスプレイ１３１０を通じてソフトウエアユーザインタフェースとの直接対話を可能にするために容量性又は誘導性タッチセンサ方式として構成することができるグラフィックディスプレイユニット１３１０（例えば、プラズマディスプレイパネル（ＰＤＰ）、液晶ディスプレイ（ＬＣＤ）、ガラスディスプレイ）を更に含むことができる。コンピュータシステム１３００は、英数字入力デバイス１３１２（キーボードなど）、カーソル制御デバイス１３１４（マウス、トラックボール、ジョイスティック、動きセンサ、又は他のポインティング器具など）、ストレージユニット１３１６、信号生成デバイス１３１８（スピーカなど）、及びネットワークインタフェースデバイス１３２０を含むことができ、これらはまた、バス１３０８を通じて通信するように構成される。
【０１４８】
ストレージユニット１３１６は、本明細書に説明する方法又は機能のいずれか１つ又はそれよりも多くを具現化する命令１３２４（ソフトウエアなど）が格納された機械可読媒体１３２２を含む。命令１３２４（ソフトウエアなど）はまた、コンピュータシステム１３００によるその実行中に主メモリ１３０４内又はプロセッサ１３０２内（例えば、プロセッサのキャッシュメモリ内）に完全に又は少なくとも部分的に存在することができ、主メモリ１３０４及びプロセッサ１３０２はまた、機械可読媒体を構成する。命令１３２４（ソフトウエアなど）は、ネットワークインタフェースデバイス１３２０を通じてネットワーク１３２６上で送信又は受信することができる。
【０１４９】
機械可読媒体１３２２は、例示的な実施形態では単一媒体として示されているが、「機械可読媒体」という語は、命令（命令１３２４など）を格納することができる単一媒体又は複数の媒体（例えば、集中化又は分散型データベース、又は関連付けられたキャッシュ及びサーバ）を含むものと捉えるべきである。「機械可読媒体」という語は、機械によって実行される命令（命令１３２４など）を格納でき、機械に本明細書で開示する方法のいずれか１つ又はそれよりも多くを実行させるあらゆる媒体を含むものと捉えるべきである。「機械可読媒体」という語は、以下に限定されるものではないが、半導体メモリ、光学媒体、及び磁気媒体の形態のデータリポジトリを含む。
【０１５０】
追加の構成の考察
本明細書を通じて、複数の事例は、単一事例として説明した構成要素、作動、又は構造を実施することができる。１つ又はそれよりも多くの方法の個々の作動が示され、個別の作動として説明されているが、個々の作動のうちの１つ又はそれよりも多くは、同時に実行することができ、作動を示された順序で実行する必要はない。例示的な構成における個別の構成要素として示された構造及び機能は、結合された構造又は構成要素として実施することができる。同様に、単一構成要素として示された構造及び機能は、個別の構成要素として実施することができる。これら及び他の変形、変更、追加、及び改良は、本明細書の主題の範囲に入る。
【０１５１】
本明細書に説明するシステム及び方法の様々な実施例は、デジタル電子及び／又は光学回路、集積回路、特別設計ＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウエア、ファームウエア、ソフトウエア、及び／又はその組合せに実現することができる。これらの様々な実施は、ストレージシステム、少なくとも１つの入力デバイス、及び少なくとも１つの出力デバイスからデータ及び命令を受信し、かつそこにデータ及び命令を送信するために結合された専用又は汎用とすることができる少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能及び／又は解釈可能である１つ又はそれよりも多くのコンピュータプログラムにおける実施を含むことができる。
【０１５２】
これらのコンピュータプログラム（プログラム、ソフトウエア、ソフトウエアアプリケーション、スクリプト、又はプログラムコードとしても公知）は、例えば１３０２のプログラマブルプロセッサのための例えば１３２４の機械命令を含み、ハイレベル手順及び／又はオブジェクト指向プログラミング言語、及び／又はアセンブリ／機械言語に実施することができる。コンピュータプログラムは、例えば、図２に示すように「モジュール」として参照されたユニットにおける構造化された機能とすることができる。本明細書で使用する「機械可読媒体」及び「コンピュータ可読媒体」という語は、機械可読信号として機械命令を受信する機械可読媒体を含むプログラマブルプロセッサに機械命令及び／又はデータを提供するのに使用されるあらゆるコンピュータプログラム製品、持続性コンピュータ可読媒体、装置及び／又はデバイス（磁気ディスク、光学ディスク、メモリ、プログラマブル論理デバイス（ＰＬＤ）など）を指す。「機械可読信号」という語は、機械命令及び／又はデータをプログラマブルプロセッサに提供するのに使用されるあらゆる信号を指す。
【０１５３】
本明細書に説明する主題及び機能的作動の実施は、デジタル電子回路に、又は本明細書で開示する構造及びその構造的均等物を含むコンピュータソフトウエア、ファームウエア、又はハードウエアに、又はこれらの１つ又はそれよりも多くの組合せに実施することができる。本明細書に説明する主題は、１つ又はそれよりも多くのコンピュータプログラム製品、すなわち、データ処理装置による実行又はデータ処理装置の作動を制御するためにコンピュータ可読媒体で符号化されるコンピュータプログラム命令のうちの１つ又はそれよりも多くのモジュールとして実施することができる。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号に影響を与える物質の合成物、又はこれらのうちの１つ又はそれよりも多くの組合せとすることができる。「データ処理装置」、「コンピュータデバイス」、及び「コンピュータプロセッサ」という語は、一例としてプログラマブルプロセッサ、コンピュータ、又はマルチプロセッサ又はコンピュータを含むデータを処理するための全ての装置、デバイス、及び機械を網羅する。装置は、ハードウエアに加えて、このようなコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウエア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はこれらのうちの１つ又はそれよりも多くの組合せを構成するコードを含むことができる。伝播信号は、人工的に生成された信号、例えば、適切な受信機装置に送信するために情報を符号化するために生成される機械生成式電気、光、又は電磁信号である。
【０１５４】
コンピュータプログラムは、コンパイル又は解釈言語を含むプログラミング言語のいずれの形態でも書くことができ、それは、独立型プログラムとして、又はモジュール、構成要素、サブルーチン、又はコンピュータ環境で使用するのに適する他のユニットとしてを含むいずれの形態でも配備することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応しない。プログラムは、このようなプログラム専用の単一ファイルに又は複数の共同ファイル（例えば、１つ又はそれよりも多くのモジュール、サブプログラム、又はコードの一部分を格納するファイル）に他のプログラム又はデータ（例えば、マークアップ言語文書に格納された１つ又はそれよりも多くのスクリプト）を保持するファイルの一部分に格納することができる。コンピュータプログラムは、１つのコンピュータ上で又は１つのサイトに位置するか又は複数のサイトにわたって分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように配備することができる。
【０１５５】
本明細書に説明する処理及び論理の流れは、１つ又はそれよりも多くのコンピュータプログラムを実行する１つ又はそれよりも多くのプログラマブルプロセッサによって実施することができ、入力データを操作して出力を生成することによって機能を実行する。処理及び論理の流れは、専用論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）によって実施することができ、装置は、専用論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）として実施することができる。
【０１５６】
コンピュータプログラムを実行するのに適するプロセッサは、一例として、汎用及び専用マイクロプロセッサの両方、及びあらゆるタイプのデジタルコンピュータのうちの１つ又はそれよりも多くのいずれかのプロセッサを含む。一般的に、プロセッサは、読取専用メモリ又はランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの基本的な要素は、命令を実行するためのプロセッサと命令及びデータを格納するための１つ又はそれよりも多くのメモリデバイスとである。一般的に、コンピュータは、データを格納するための１つ又はそれよりも多くの大容量ストレージデバイス、例えば、磁気、磁気光学ディスク、又は光学ディスクを含むか、又はこれらからデータを受信又はこれらにデータを転送するように作動させることができるように結合される。しかし、コンピュータは、これらのデバイスを有する必要はない。更に、コンピュータは、別のデバイス、例えば２、３の例を挙げると、移動電話、携帯情報端末（ＰＤＡ）、移動オーディオプレーヤ、全地球測位システム（ＧＰＳ）受信機に埋め込むことができる。コンピュータプログラム命令及びデータを格納するのに適するコンピュータ可読媒体は、例示的に、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスク又は取外し可能ディスク、磁気光学ディスク、及びＣＤ  ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含め、不揮発性メモリ、媒体、及びメモリデバイスの全ての形態を含む。プロセッサ及びメモリは、専用論理回路によって補足されるか、又はそこに組み込むことができる。
【０１５７】
ユーザとの対話を提供するために、本発明の開示の１つ又はそれよりも多くの態様は、ディスプレイデバイス、例えば、ＣＲＴ（ブラウン管）、ＬＣＤ（液晶ディスプレイ）モニタ、又は情報をユーザに表示するためのタッチスクリーン、及び任意的にキーボード及びポインティングデバイス、例えば、ユーザがコンピュータに入力を提供することを可能にするマウス又はトラックボールを有するコンピュータに実施することができる。他のタイプのデバイスを使用して同様にユーザとの対話を提供することができ、例えば、ユーザに提供されるフィードバックは、知覚フィードバックのあらゆる形態、例えば、視覚的フィードバック、聴覚的フィードバック、又は蝕知性フィードバックとすることができ、ユーザからの入力は、音響、音声、又は触知性入力を含むいずれの形態でも受信することができる。これに加えて、文書をユーザによって使用されるデバイスに送信してそこから文書を受信することにより、例えば、ウェブブラウザから受信した要求に応答してユーザのクライアントデバイスのウェブブラウザにウェブページを送信することにより、コンピュータは、ユーザと対話することができる。
【０１５８】
本発明の開示の１つ又はそれよりも多くの態様は、バックエンド構成要素を例えばデータサーバとして含むか、又はミドルウェア構成要素、例えば、アプリケーションサーバを含むか、又はフロントエンド構成要素、例えば、ユーザがそれを通じて本明細書に説明する主題の実施と対話することができるグラフィカルユーザインタフェース又はウェブブラウザ、又は１つ又はそれよりも多くのこのようなバックエンド、ミドルウェア、又はフロントエンド構成要素のあらゆる組合せを含むコンピュータシステムに実施することができる。本発明のシステムの構成要素は、デジタルデータ通信のあらゆる形態又は媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、インターネットワーク（インターネットなど）、及びピアツーピアネットワーク（アドホックピアツーピアネットワークなど）を含む。
【０１５９】
コンピュータシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般的に互いから遠隔にあり、通常は通信ネットワーク上で対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行されてクライアント−サーバ関係を互いに有するコンピュータプログラムに基づいて生じる。一部の実施例では、サーバは、データ（ＨＴＭＬページなど）をクライアントデバイスに送信する（例えば、クライアントデバイスと対話するユーザにデータを表示してユーザからユーザ入力を受信するために）。クライアントデバイスで生成されたデータ（例えば、ユーザ対話の結果）は、サーバでクライアントデバイスから受信することができる。
【０１６０】
本明細書は多くの詳細を含むが、これらは、本発明の開示の範囲又は主張することができるものにおける制限として解釈すべきではなく、むしろ本発明の開示の特定の実施に固有の特徴の説明として解釈しなければならない。個別の実施の状況での本明細書に説明するある一定の特徴は、単一実施における組み合わせで実施することもできる。対照的に、単一実施の状況で説明した様々な特徴は、複数の実施で別々に又はいずれかの適切な副組合せに実施することができる。更に、特徴は、ある一定の組合せで作用し、最初からそのように主張されるものとして上記に説明しているが、主張される組合せからの１つ又はそれよりも多くの特徴は、場合によっては、組合せから削除することができ、主張する組合せは、副組合せ又は副組合せの変形に向けることができる。
【０１６１】
同様に、作動は特定の順序で図面に示されているが、これは、このような作動が示される特定の順序又は連続した順序で実行され、又は望ましい結果を達成するために全ての例示した作動を実行しなければならないことを要求するものとして理解すべきではない。ある状況では、マルチタスク及び並行処理が有利になる。また、上述の実施形態の様々なシステム構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解すべきではなく、説明したプログラム構成要素及びシステムは、一般的に単一ソフトウエア製品に互いに統合することができ、又は複数のソフトウエア製品にパッケージ化することができることを理解しなければならない。
【０１６２】
いくつかの実施を説明した。それにも関わらず、様々な修正を本発明の開示の精神及び範囲から逸脱することなく行うことができることは理解されるであろう。従って、他の実施は、特許請求の範囲の範囲にある。例えば、特許請求の範囲に説明するアクションは、異なる順序で実施することができ、依然として望ましい結果を達成する。
【０１６３】
本発明の開示を読むと、当業者は、本明細書に開示する原理を通じてコンピュータ環境での深い検索のためのシステム及び処理の追加の代替の構造的及び機能的設計を認めるであろう。すなわち、特定の実施形態及び用途を図示かつ説明したが、開示した実施形態は、本明細書に開示した構成及び構成要素の通りに制限されないことは理解されるものとする。当業者に明らかであろう様々な修正、変更、及び変形は、添付の特許請求の範囲に定める精神及び範囲から逸脱することなく本明細書に開示する方法及び装置の配置、作動、及び細部に行うことができる。
【符号の説明】
【０１６４】
２００  遠隔コンピュータデバイス
２５０  グラフィカルユーザインタフェース
２６２  検索問合せ
３００  検索サーバ
３６４ａ、３６４ｂ、３６４ｃ  状態リンク
【図１Ａ】
2016513827.tif 000003
【図１Ｂ】
2016513827.tif 000004
【図２】
2016513827.tif 000005
【図３】
2016513827.tif 000006
【図４Ａ】
2016513827.tif 000007
【図４Ｂ】
2016513827.tif 000008
【図５】
2016513827.tif 000009
【図６】
2016513827.tif 000010
【図７Ａ−７Ｂ】
2016513827.tif 000011
【図８Ａ−８Ｂ】
2016513827.tif 000012
【図９Ａ−９Ｂ】
2016513827.tif 000013
【図１０】
2016513827.tif 000014
【図１１Ａ】
2016513827.tif 000015
【図１１Ｂ】
2016513827.tif 000016
【図１２Ａ】
2016513827.tif 000017
【図１２Ｂ】
2016513827.tif 000018
【図１３】
2016513827.tif 000019
【国際調査報告】
2016513827.tif 000020
2016513827.tif 000021