(57)【要約】  システムが、レコードを記憶するように構成された第１のデータストアを含み、上記レコードは、各々がモバイル装置のアプリケーションに対応し、アプリケーションの使用を通してモバイルデバイスユーザに利用可能なアクションを識別するメタデータを含む。識別されたアクションは、オントロジーから選ばれる。クエリモジュールが、ユーザ装置にインストールされたアプリケーションのセットを示すアプリケーション推奨要求を処理する。セット生成モジュールが、ユーザ装置アプリケーションに関連付けられた利用可能アクションのセットを識別し、利用可能アクションとは相互排他的な利用不能アクションのセットを選択する。セット生成モジュールは、アプリケーションの検討セットを決定し、これにおいて、各アプリケーションは、利用不能アクションのうち少なくとも１つを実装する。セット処理モジュールが、検討セットからアプリケーションの選ばれたサブセットを選択する。結果生成モジュールが、選ばれたサブセット内の各アプリケーションを識別するアプリケーション推奨応答で上記要求に応答する。
2018516401.tif 000002
【特許請求の範囲】
【請求項１】
複数のレコードを記憶するように構成された第１のデータストアであって、前記複数のレコードの各々は、
モバイル装置のアプリケーションに対応し、
前記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含み、前記識別されたアクションはオントロジーから選ばれる、
第１のデータストアと、
ユーザ装置に対応するアプリケーション推奨要求を処理するように構成されたクエリモジュールであって、前記アプリケーション推奨要求は、前記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む、クエリモジュールと、
前記第１のデータストアを用いて、前記ユーザ装置にインストールされた前記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別し、
利用不能アクションのセットを選択することであって、前記利用不能アクションのセットは前記利用可能アクションのセットと相互排他的であり、
前記第１のデータストアからアプリケーションの検討セットを決定することであって、前記検討セット内の各アプリケーションは、前記利用不能アクションのセットのうち少なくとも１つを実装する、
ように構成されたセット生成モジュールと、
前記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択するように構成されたセット処理モジュールと、
前記アプリケーション推奨要求にアプリケーション推奨応答で応答するように構成された結果生成モジュールであって、前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションの識別データを含む、結果生成モジュールと、
を含むシステム。
【請求項２】
前記第１のデータストアは、前記複数のレコードの各々について、前記アプリケーションに対するアクセスメカニズムのデータを含み、
前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションについて、前記アクセスメカニズムを含む、
請求項１に記載のシステム。
【請求項３】
前記複数のレコードの各々について、前記アクセスメカニズムの前記データは、デジタル配信プラットフォーム内の前記アプリケーションに対するリンクである、
請求項２に記載のシステム。
【請求項４】
前記セット処理モジュールは、
前記検討セット内の前記アプリケーションの各々について、スコアを決定し、
前記選ばれたサブセットとして、前記アプリケーションの検討セットから、最も高いスコアを有する所定数のアプリケーションを選択する
ように構成される、請求項１に記載のシステム。
【請求項５】
アプリケーションの前記スコアは、前記アプリケーションのレビューと前記アプリケーションについてのダウンロード統計とに基づく、請求項４に記載のシステム。
【請求項６】
アプリケーションの前記スコアは、前記アプリケーションの使用を通して前記ユーザ装置に利用可能なアクションの総数に反比例的に関連する、請求項４に記載のシステム。
【請求項７】
アプリケーションの前記スコアは、前記アプリケーションの使用を通して前記ユーザ装置に利用可能な、前記利用可能アクションのセット内でないアクションの数に正比例的に関連する、請求項４に記載のシステム。
【請求項８】
前記セット処理モジュールは、前記選ばれたサブセットから、前記ユーザ装置にインストールされた前記アプリケーションのセットを除外するように構成される、請求項１に記載のシステム。
【請求項９】
前記セット処理モジュールは、前記選ばれたサブセットから、前記ユーザ装置からアンインストールされたアプリケーションを除外するように構成される、請求項１に記載のシステム。
【請求項１０】
前記利用可能アクションのセットは、前記ユーザ装置にインストールされた前記アプリケーションのセットのうちすべての使用を通して前記ユーザ装置に利用可能である前記オントロジー内のすべてのアクションを包含する、請求項１に記載のシステム。
【請求項１１】
前記ユーザ装置にインストールされた前記アプリケーションのセットは、前記ユーザ装置にインストールされたすべてのアプリケーションを包含する、請求項１に記載のシステム。
【請求項１２】
前記アプリケーション推奨要求は、前記第１のデータストア内のレコードに対応しなかった前記オントロジーの第１のアクションについて、新しいレコードが前記第１のデータストアに追加され、かつ前記第１のアクションに対応することに応答してトリガされる、請求項１に記載のシステム。
【請求項１３】
前記第１のデータストアは、前記複数のレコードの各々について、前記レコードの地理的関連に関するデータを含み、
前記アプリケーション推奨要求は、前記ユーザ装置が第１の地理的エリアから第２の地理的エリアに移動することに応答してトリガされる、
請求項１に記載のシステム。
【請求項１４】
前記複数のレコードのうち第１のレコードに対応する前記アプリケーションが前記ユーザ装置からアンインストールされているとき、前記第１のレコードの前記メタデータがさらなるアクションを追加するように更新されることに応答して前記アプリケーション推奨要求を生成するように構成された監視モジュール、をさらに含む請求項１に記載のシステム。
【請求項１５】
（ｉ）前記複数のレコードのうち第１のレコードに対応する前記アプリケーションが前記ユーザ装置からアンインストールされており、かつ（ｉｉ）さらなるアクションが前記利用可能アクションのセットの範囲外であるとき、前記第１のレコードの前記メタデータが前記さらなるアクションを追加するように更新されることに応答して前記アプリケーション推奨要求を生成するように構成された監視モジュール、をさらに含む請求項１に記載のシステム。
【請求項１６】
前記ユーザ装置にインストールされた前記アプリケーションのセットからのアプリケーションに対応する前記第１のデータストアの第１のレコードについて、前記アプリケーション推奨要求は、前記メタデータがさらなるアクションを追加するように更新されることに応答してトリガされる、請求項１に記載のシステム。
【請求項１７】
前記第１のデータストアの第１のレコードが、第１のアプリケーションの複数のバージョンに対応し、
当該システムは、（ｉ）前記第１のアプリケーションの新しいバージョンの前記メタデータが、前記第１のアプリケーションの前のバージョンに含まれない前記オントロジーからのアクションを含み、かつ（ｉｉ）前記第１のアプリケーションの前記前のバージョンのうち１つが前記ユーザ装置にインストールされているとき、前記新しいバージョンが前記第１のレコードに追加されることに応答して前記ユーザ装置のための前記アプリケーション推奨要求を生成するように構成された監視モジュール、を含む、
請求項１に記載のシステム。
【請求項１８】
前記監視モジュールは、前記ユーザ装置が所定期間の時間を超えて前記第１のアプリケーションの前記新しいバージョンをインストールするのに失敗するまで、前記アプリケーション推奨要求を遅延させる、請求項１７に記載のシステム。
【請求項１９】
前記第１のデータストアの第１のレコードが、第１のアプリケーションの第１のバージョンに対応し、
当該システムは、（ｉ）前記第１のアプリケーションの第２のバージョンの前記メタデータが、前記第１のアプリケーションの前記第１のバージョンに含まれない前記オントロジーからのアクションを含み、かつ（ｉｉ）前記第１のアプリケーションの前記第１のバージョンが前記ユーザ装置にインストールされているとき、前記第２のバージョンが第２のレコードとして前記第１のデータストアに追加されることに応答して前記ユーザ装置のための前記アプリケーション推奨要求を生成するように構成された監視モジュール、を含む、
請求項１に記載のシステム。
【請求項２０】
前記オントロジーは、前記アクションの各々が葉ノードである階層ツリーにグループ化され、
前記セット生成モジュールは、
前記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、
前記識別された親ノードの残りのアクションを前記利用不能アクションのセットとして選択する
ように構成される、
請求項１に記載のシステム。
【請求項２１】
前記オントロジーは、前記アクションの各々が葉ノードである階層ツリーにグループ化され、
前記セット処理モジュールは、
前記アプリケーションの検討セットの各々にスコアを割り当て、
前記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、
前記識別された親ノードの残りのアクションを実装するアプリケーションについて、前記スコアを増加し、
前記検討セットから最も高いスコアを有する前記アプリケーションを前記選ばれたサブセットとして選択する
ように構成される、
請求項１に記載のシステム。
【請求項２２】
複数のレコードを記憶するように構成された第２のデータストア、をさらに含み、前記複数のレコードの各々は、
ユーザ装置に対応し、
前記ユーザ装置からアンインストールされたアプリケーションを識別するデータを記憶する、
請求項１に記載のシステム。
【請求項２３】
複数のユーザレコードを記憶するように構成された第２のデータストア、をさらに含み、
前記複数のユーザレコードの各々は、（ｉ）ユーザ装置に対応し、（ｉｉ）対応するユーザ装置のユーザにより所望されないとして識別されたアプリケーションを識別するデータを記憶し、
前記セット処理モジュールは、前記第２のデータストアに従い前記選ばれたサブセットからアプリケーションを除外するように構成される、
請求項１に記載のシステム。
【請求項２４】
複数のユーザレコードを記憶するように構成された第２のデータストア、をさらに含み、
前記複数のユーザレコードの各々は、（ｉ）ユーザ装置に対応し、（ｉｉ）対応するユーザ装置のユーザにより所望されないとして識別されたアクションを識別するデータを記憶し、
前記セット生成モジュールは、前記第２のデータストアに従い前記利用不能アクションのセットからアクションを削除するように構成される、
請求項１に記載のシステム。
【請求項２５】
前記セット生成モジュールは、前記アプリケーションの検討セット内に、前記利用可能アクションのセットからのアクションを複製する第１のアプリケーションを選択的に含むように構成される、請求項１に記載のシステム。
【請求項２６】
前記第１のアプリケーションは、前記オントロジーの第１のアクションを前記ユーザ装置に利用可能にし、
前記セット生成モジュールは、前記ユーザ装置の使用量データが前記第１のアクションの高い使用量を示すことに応答して、前記アプリケーションの検討セット内に前記第１のアプリケーションを含めるように構成される、
請求項２５に記載のシステム。
【請求項２７】
前記セット生成モジュールは、前記第１のアクションの前記使用量が所定の閾値を上回ることに応答して、前記第１のアクションの前記使用量が高いと決定するように構成され、
前記所定の閾値は、前記利用可能アクションのセットの平均使用量に基づく、
請求項２６に記載のシステム。
【請求項２８】
前記アプリケーション推奨要求は、前記ユーザ装置から直接受信される、請求項１に記載のシステム。
【請求項２９】
前記アプリケーション推奨要求は、検索プラットフォームが前記ユーザ装置からアプリケーション検索要求を受信することに応答して、前記検索プラットフォームから受信される、請求項１に記載のシステム。
【請求項３０】
前記アプリケーション推奨要求は、推奨が前記アプリケーション検索要求の範囲をターゲットにするべきであると示すデータを含む、請求項２９に記載のシステム。
【請求項３１】
前記アプリケーション推奨応答は、前記アプリケーション検索要求の範囲から独立である、請求項２９に記載のシステム。
【請求項３２】
前記複数のレコードの各々は、対応するアプリケーションを説明するさらなるメタデータを含み、
前記さらなるメタデータは、前記対応するアプリケーションのジャンルを含む、
請求項１に記載のシステム。
【請求項３３】
前記さらなるメタデータは、（ｉ）前記対応するアプリケーションについてのユーザ提供されたレビューデータと、（ｉｉ）前記対応するアプリケーションについてのダウンロード統計とを含む、請求項３２に記載のシステム。
【請求項３４】
複数のレコードを第１のデータストアに記憶することであって、前記複数のレコードの各々は、
モバイル装置のアプリケーションに対応し、
前記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含み、前記識別されたアクションはオントロジーから選ばれる、
ことと、
ユーザ装置に対応するアプリケーション推奨要求を処理することであって、前記アプリケーション推奨要求は、前記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む、ことと、
前記第１のデータストアを用いて、前記ユーザ装置にインストールされた前記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別することと、
利用不能アクションのセットを選択することであって、前記利用不能アクションのセットは前記利用可能アクションのセットと相互排他的である、ことと、
前記第１のデータストアからアプリケーションの検討セットを決定することであって、前記検討セット内の各アプリケーションは、前記利用不能アクションのセットのうち少なくとも１つを実装する、ことと、
前記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択することと、
前記アプリケーション推奨要求にアプリケーション推奨応答で応答することであって、前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションの識別データを含む、ことと、
を含む方法。
【請求項３５】
プロセッサ実行可能命令を記憶した非一時的コンピュータ読取可能媒体であって、前記命令は、
複数のレコードを第１のデータストアに記憶することであって、前記複数のレコードの各々は、
モバイル装置のアプリケーションに対応し、
前記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含み、前記識別されたアクションはオントロジーから選ばれる、
ことと、
ユーザ装置に対応するアプリケーション推奨要求を処理することであって、前記アプリケーション推奨要求は、前記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む、ことと、
前記第１のデータストアを用いて、前記ユーザ装置にインストールされた前記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別することと、
利用不能アクションのセットを選択することであって、前記利用不能アクションのセットは前記利用可能アクションのセットと相互排他的である、ことと、
前記第１のデータストアからアプリケーションの検討セットを決定することであって、前記検討セット内の各アプリケーションは、前記利用不能アクションのセットのうち少なくとも１つを実装する、ことと、
前記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択することと、
前記アプリケーション推奨要求にアプリケーション推奨応答で応答することであって、前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションの識別データを含む、ことと、
を含む、非一時的コンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に推奨システムに関し、より詳細には、コンピューティング装置上のアプリケーションのための自動化された推奨システムに関する。
【背景技術】
【０００２】
本明細書において提供される背景技術記載は、本開示の前後関係を一般に提示する目的のものである。本背景技術セクションに説明される範囲での、現在名前を挙げられている発明者の業績と、出願時における従来技術として別段資格を有し得ない説明の態様とは、本開示に対する従来技術として明示的にも黙示的にも認められない。
【０００３】
近年、インターネット接続された装置、例えばスマートフォン及びタブレットなどの使用は、指数関数的に増大している。こうした装置のための利用可能ソフトウェアアプリケーションの数及び多様性が、数桁単位で同様に増大している。現在、任意の所与のインターネット接続された装置上で、多くの多様な機能を実行することができ、多くの多様なデータセットを解析することができる。例えば、アプリストア（本明細書において、デジタル配信プラットフォームと呼ばれる）、例えば、Ｇｏｏｇｌｅ（登録商標）社によるＧｏｏｇｌｅ  ＰＬＡＹプラットフォーム、Ａｐｐｌｅ（登録商標）社によるＡＰＰ  ＳＴＯＲＥ（登録商標）プラットフォーム、Ａｍａｚｏｎ．ｃｏｍ社によるＡｍａｚｏｎ（登録商標）  ＡＰＰＳＴＯＲＥプラットフォーム、Ｍｉｃｒｏｓｏｆｔ（登録商標）社からのＷＩＮＤＯＷＳ（登録商標）  ＰＨＯＮＥ  ＳＴＯＲＥプラットフォーム及びＷＩＮＤＯＷＳ  ＳＴＯＲＥプラットフォーム、ＧｅｔＪａｒ社によるＧＥＴＪＡＲプラットフォームなどは、合わせて数百万のアプリケーションをオファーしている。
【０００４】
こうした幅広い利用可能アプリケーションについて、インターネット接続された装置の多くのユーザは、関心のあるアクションを実行し、かつ／あるいはユーザに関心のあるデータを提供することができるアプリケーションの可用性に、気付いていない。アプリ開発者でさえ、アプリ開発者が専門に扱わないアプリケーションマーケットのセグメント内で価値ありとユーザが見出す可能性があるアプリケーションのすべてについていくことはできない。
【発明の概要】
【０００５】
システムが、複数のレコードを記憶するように構成された第１のデータストアを含む。上記レコードの各々は、モバイル装置のアプリケーションに対応し、上記アプリケーションの使用を通してモバイルユーザ装置に利用可能なアクションを識別するメタデータを含む。上記識別されたアクションは、オントロジーから選ばれる。当該システムは、ユーザ装置に対応するアプリケーション推奨要求を処理するように構成されたクエリモジュールを含む。上記アプリケーション推奨要求は、上記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む。当該システムは、上記第１のデータストアを用いて、上記ユーザ装置にインストールされた上記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別するように構成されたセット生成モジュールを含む。上記セット生成モジュールは、利用不能アクションのセットを選択するように構成される。上記利用不能アクションのセットは、上記利用可能アクションのセットと相互排他的である。上記セット生成モジュールは、上記第１のデータストアからアプリケーションの検討セットを決定するように構成される。上記検討セット内の各アプリケーションは、上記利用不能アクションのセットのうち少なくとも１つを実装する。当該システムは、上記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択するように構成されたセット処理モジュールを含む。当該システムは、上記アプリケーション推奨要求にアプリケーション推奨応答で応答するように構成された結果生成モジュールを含む。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションの識別データを含む。
【０００６】
他の特徴において、上記第１のデータストアは、上記レコードの各々について、上記アプリケーションに対するアクセスメカニズムのデータを含む。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションについて、上記アクセスメカニズムを含む。他の特徴において、上記レコードの各々について、上記アクセスメカニズムの上記データは、デジタル配信プラットフォーム内の上記アプリケーションに対するリンクである。他の特徴において、上記セット処理モジュールは、上記検討セット内の上記アプリケーションの各々について、スコアを決定し、かつ、上記選ばれたサブセットとして、上記アプリケーションの検討セットから、最も高いスコアを有する所定数のアプリケーションを選択するように構成される。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションのレビューと上記アプリケーションについてのダウンロード統計とに基づく。
【０００７】
他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能なアクションの総数に反比例的に関連する（inversely  related  to）。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能な、上記利用可能アクションのセット内でないアクションの数に正比例的に関連する（directly  related  to）。他の特徴において、上記セット処理モジュールは、上記選ばれたサブセットから、上記ユーザ装置にインストールされた上記アプリケーションのセットを除外するように構成される。他の特徴において、上記セット処理モジュールは、上記選ばれたサブセットから、上記ユーザ装置からアンインストールされたアプリケーションを除外するように構成される。他の特徴において、上記利用可能アクションのセットは、上記ユーザ装置にインストールされた上記アプリケーションのセットのうちすべての使用を通して上記ユーザ装置に利用可能である上記オントロジー内のすべてのアクションを包含する。
【０００８】
他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットは、上記ユーザ装置にインストールされたすべてのアプリケーションを包含する。他の特徴において、上記アプリケーション推奨要求は、上記第１のデータストア内のレコードに対応しなかった上記オントロジーの第１のアクションについて、新しいレコードが上記第１のデータストアに追加され、かつ上記第１のアクションに対応することに応答してトリガされる。他の特徴において、上記第１のデータストアは、上記レコードの各々について、上記レコードの地理的関連に関するデータを含む。上記アプリケーション推奨要求は、上記ユーザ装置が第１の地理的エリアから第２の地理的エリアに移動することに応答してトリガされる。
【０００９】
他の特徴において、当該システムは、上記レコードのうち第１のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされているとき、上記第１のレコードの上記メタデータがさらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成するように構成された監視モジュールを含む。他の特徴において、当該システムは、（ｉ）上記レコードのうち第１のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされており、かつ（ｉｉ）さらなるアクションが上記利用可能アクションのセットの範囲外であるとき、上記第１のレコードの上記メタデータが上記さらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成するように構成された監視モジュールを含む。
【００１０】
他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットからのアプリケーションに対応する上記第１のデータストアの第１のレコードについて、上記アプリケーション推奨要求は、上記メタデータがさらなるアクションを追加するように更新されることに応答してトリガされる。他の特徴において、上記第１のデータストアの第１のレコードが、第１のアプリケーションの複数のバージョンに対応する。当該システムは、（ｉ）上記第１のアプリケーションの新しいバージョンの上記メタデータが、上記第１のアプリケーションの前のバージョンに含まれない上記オントロジーからのアクションを含み、かつ（ｉｉ）上記第１のアプリケーションの上記前のバージョンのうち１つが上記ユーザ装置にインストールされているとき、上記新しいバージョンが上記第１のレコードに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成するように構成された監視モジュールを含む。
【００１１】
他の特徴において、上記監視モジュールは、上記ユーザ装置が所定期間の時間を超えて上記第１のアプリケーションの上記新しいバージョンをインストールするのに失敗するまで、上記アプリケーション推奨要求を遅延させる。他の特徴において、上記第１のデータストアの第１のレコードが、第１のアプリケーションの第１のバージョンに対応し、当該システムは、監視モジュールを含む。上記監視モジュールは、（ｉ）上記第１のアプリケーションの第２のバージョンの上記メタデータが、上記第１のアプリケーションの上記第１のバージョンに含まれない上記オントロジーからのアクションを含み、かつ（ｉｉ）上記第１のアプリケーションの上記第１のバージョンが上記ユーザ装置にインストールされているとき、上記第２のバージョンが第２のレコードとして上記第１のデータストアに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成するように構成される。
【００１２】
他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。上記セット生成モジュールは、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、かつ、上記識別された親ノードの残りのアクションを上記利用不能アクションのセットとして選択するように構成される。他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。上記セット処理モジュールは、上記アプリケーションの検討セットの各々にスコアを割り当て、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、上記識別された親ノードの残りのアクションを実装するアプリケーションについて、上記スコアを増加し、かつ、上記検討セットから最も高いスコアを有する上記アプリケーションを上記選ばれたサブセットとして選択するように構成される。
【００１３】
他の特徴において、当該システムは、複数のレコードを記憶するように構成された第２のデータストアを含む。上記レコードの各々は、ユーザ装置に対応し、上記ユーザ装置からアンインストールされたアプリケーションを識別するデータを記憶する。他の特徴において、当該システムは、複数のユーザレコードを記憶するように構成された第２のデータストアを含む。上記ユーザレコードの各々は、（ｉ）ユーザ装置に対応し、（ｉｉ）対応するユーザ装置のユーザにより所望されないとして識別されたアプリケーションを識別するデータを記憶する。上記セット処理モジュールは、上記第２のデータストアに従い上記選ばれたサブセットからアプリケーションを除外するように構成される。
【００１４】
他の特徴において、当該システムは、複数のユーザレコードを記憶するように構成された第２のデータストアを含む。上記ユーザレコードの各々は、（ｉ）ユーザ装置に対応し、（ｉｉ）対応するユーザ装置のユーザにより所望されないとして識別されたアクションを識別するデータを記憶する。上記セット生成モジュールは、上記第２のデータストアに従い上記利用不能アクションのセットからアクションを削除するように構成される。他の特徴において、上記セット生成モジュールは、上記アプリケーションの検討セット内に、上記利用可能アクションのセットからのアクションを複製する（duplicates）第１のアプリケーションを選択的に含むように構成される。
【００１５】
他の特徴において、上記第１のアプリケーションは、上記オントロジーの第１のアクションを上記ユーザ装置に利用可能にする。上記セット生成モジュールは、上記ユーザ装置の使用量データが上記第１のアクションの高い使用量を示すことに応答して、上記アプリケーションの検討セット内に上記第１のアプリケーションを含めるように構成される。
【００１６】
他の特徴において、上記セット生成モジュールは、上記第１のアクションの上記使用量が所定の閾値を上回ることに応答して、上記第１のアクションの上記使用量が高いと決定するように構成される。上記所定の閾値は、上記利用可能アクションのセットの平均使用量に基づく。他の特徴において、上記アプリケーション推奨要求は、上記ユーザ装置から直接受信される。他の特徴において、上記アプリケーション推奨要求は、検索プラットフォームが上記ユーザ装置からアプリケーション検索要求を受信することに応答して、上記検索プラットフォームから受信される。
【００１７】
他の特徴において、上記アプリケーション推奨要求は、推奨が上記アプリケーション検索要求の範囲をターゲットにする（be  targeted  to）べきであると示すデータを含む。他の特徴において、上記アプリケーション推奨応答は、上記アプリケーション検索要求の範囲から独立である。他の特徴において、上記レコードの各々は、対応するアプリケーションを説明するさらなるメタデータを含む。上記さらなるメタデータは、上記対応するアプリケーションのジャンルを含む。他の特徴において、上記さらなるメタデータは、（ｉ）上記対応するアプリケーションについてのユーザ提供されたレビューデータと、（ｉｉ）上記対応するアプリケーションについてのダウンロード統計とを含む。
【００１８】
方法が、複数のレコードを第１のデータストアに記憶することを含む。上記レコードの各々は、モバイル装置のアプリケーションに対応し、上記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含む。上記識別されたアクションはオントロジーから選ばれる。当該方法は、ユーザ装置に対応するアプリケーション推奨要求を処理することを含む。上記アプリケーション推奨要求は、上記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む。当該方法は、上記第１のデータストアを用いて、上記ユーザ装置にインストールされた上記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別することを含む。当該方法は、利用不能アクションのセットを選択することを含む。上記利用不能アクションのセットは上記利用可能アクションのセットと相互排他的である。当該方法は、上記第１のデータストアからアプリケーションの検討セットを決定することを含む。上記検討セット内の各アプリケーションは、上記利用不能アクションのセットのうち少なくとも１つを実装する。当該方法は、上記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択することを含む。当該方法は、上記アプリケーション推奨要求にアプリケーション推奨応答で応答することを含む。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションの識別データを含む。
【００１９】
他の特徴において、上記レコードの各々について、上記アプリケーションに対するアクセスメカニズムのデータが、上記第１のデータストアに記憶される。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションについて、上記アクセスメカニズムを含む。他の特徴において、上記レコードの各々について、上記アクセスメカニズムの上記データは、デジタル配信プラットフォーム内の上記アプリケーションに対するリンクである。他の特徴において、当該方法は、上記検討セット内の上記アプリケーションの各々について、スコアを決定することと、上記選ばれたサブセットとして、上記アプリケーションの検討セットから、最も高いスコアを有する所定数のアプリケーションを選択することとを含む。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションのレビューと上記アプリケーションについてのダウンロード統計とに基づく。
【００２０】
他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能なアクションの総数に反比例的に関連する。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能な、上記利用可能アクションのセット内でないアクションの数に正比例的に関連する。他の特徴において、当該方法は、上記選ばれたサブセットから、上記ユーザ装置にインストールされた上記アプリケーションのセットを除外することを含む。他の特徴において、当該方法は、上記選ばれたサブセットから、上記ユーザ装置からアンインストールされたアプリケーションを除外することを含む。
【００２１】
他の特徴において、上記利用可能アクションのセットは、上記ユーザ装置にインストールされた上記アプリケーションのセットのうちすべての使用を通して上記ユーザ装置に利用可能である上記オントロジー内のすべてのアクションを包含する。他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットは、上記ユーザ装置にインストールされたすべてのアプリケーションを包含する。他の特徴において、上記アプリケーション推奨要求は、上記第１のデータストア内のレコードに対応しなかった上記オントロジーの第１のアクションについて、新しいレコードが上記第１のデータストアに追加され、かつ上記第１のアクションに対応することに応答してトリガされる。他の特徴において、上記レコードの各々について、上記レコードの地理的関連に関するデータが、上記第１のデータストアに記憶される。上記アプリケーション推奨要求は、上記ユーザ装置が第１の地理的エリアから第２の地理的エリアに移動することに応答してトリガされる。
【００２２】
他の特徴において、当該方法は、上記レコードのうち第１のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされているとき、上記第１のレコードの上記メタデータがさらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成することを含む。他の特徴において、当該方法は、（ｉ）上記レコードのうち第１のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされており、かつ（ｉｉ）さらなるアクションが上記利用可能アクションのセットの範囲外であるとき、上記第１のレコードの上記メタデータが上記さらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成することを含む。
【００２３】
他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットからのアプリケーションに対応する上記第１のデータストアの第１のレコードについて、上記アプリケーション推奨要求は、上記メタデータがさらなるアクションを追加するように更新されることに応答してトリガされる。他の特徴において、上記第１のデータストアの第１のレコードが、第１のアプリケーションの複数のバージョンに対応する。当該方法は、（ｉ）上記第１のアプリケーションの新しいバージョンの上記メタデータが、上記第１のアプリケーションの前のバージョンに含まれない上記オントロジーからのアクションを含み、かつ（ｉｉ）上記第１のアプリケーションの上記前のバージョンのうち１つが上記ユーザ装置にインストールされているとき、上記新しいバージョンが上記第１のレコードに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成することを含む。
【００２４】
他の特徴において、当該方法は、上記ユーザ装置が所定期間の時間を超えて上記第１のアプリケーションの上記新しいバージョンをインストールするのに失敗するまで、上記アプリケーション推奨要求を遅延させることを含む。他の特徴において、上記第１のデータストアの第１のレコードが、第１のアプリケーションの第１のバージョンに対応する。当該方法は、（ｉ）上記第１のアプリケーションの第２のバージョンの上記メタデータが、上記第１のアプリケーションの上記第１のバージョンに含まれない上記オントロジーからのアクションを含み、かつ（ｉｉ）上記第１のアプリケーションの上記第１のバージョンが上記ユーザ装置にインストールされているとき、上記第２のバージョンが第２のレコードとして上記第１のデータストアに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成することを含む。
【００２５】
他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。当該方法は、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別することと、上記識別された親ノードの残りのアクションを上記利用不能アクションのセットとして選択することとを含む。他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。当該方法は、上記アプリケーションの検討セットの各々にスコアを割り当てることと、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別することと、上記識別された親ノードの残りのアクションを実装するアプリケーションについて、上記スコアを増加することと、上記検討セットから最も高いスコアを有する上記アプリケーションを上記選ばれたサブセットとして選択することとを含む。他の特徴において、当該方法は、複数のレコードを第２のデータストアに記憶することを含む。上記レコードの各々は、ユーザ装置に対応し、上記ユーザ装置からアンインストールされたアプリケーションを識別するデータを記憶する。
【００２６】
他の特徴において、当該方法は、複数のユーザレコードを第２のデータストアに記憶することを含む。上記ユーザレコードの各々は、（ｉ）ユーザ装置に対応し、（ｉｉ）対応するユーザ装置のユーザにより所望されないとして識別されたアプリケーションを識別するデータを記憶する。当該方法は、上記第２のデータストアに従い上記選ばれたサブセットからアプリケーションを除外することを含む。他の特徴において、当該方法は、複数のユーザレコードを第２のデータストアに記憶することを含む。上記ユーザレコードの各々は、（ｉ）ユーザ装置に対応し、（ｉｉ）対応するユーザ装置のユーザにより所望されないとして識別されたアクションを識別するデータを記憶する。当該方法は、上記第２のデータストアに従い上記利用不能アクションのセットからアクションを削除するように構成される。他の特徴において、当該方法は、上記アプリケーションの検討セット内に、上記利用可能アクションのセットからのアクションを複製する第１のアプリケーションを選択的に含むことを含む。
【００２７】
他の特徴において、上記第１のアプリケーションは、上記オントロジーの第１のアクションを上記ユーザ装置に利用可能にする。当該方法は、上記ユーザ装置の使用量データが上記第１のアクションの高い使用量を示すことに応答して、上記アプリケーションの検討セット内に上記第１のアプリケーションを含めることを含む。他の特徴において、当該方法は、上記第１のアクションの上記使用量が所定の閾値を上回ることに応答して、上記第１のアクションの上記使用量が高いと決定することを含む。上記所定の閾値は、上記利用可能アクションのセットの平均使用量に基づく。他の特徴において、上記アプリケーション推奨要求は、上記ユーザ装置から直接受信される。他の特徴において、上記アプリケーション推奨要求は、検索プラットフォームが上記ユーザ装置からアプリケーション検索要求を受信することに応答して、上記検索プラットフォームから受信される。
【００２８】
他の特徴において、上記アプリケーション推奨要求は、推奨が上記アプリケーション検索要求の範囲をターゲットにするべきであると示すデータを含む。他の特徴において、上記アプリケーション推奨応答は、上記アプリケーション検索要求の範囲から独立である。他の特徴において、上記レコードの各々は、対応するアプリケーションを説明するさらなるメタデータを含む。上記さらなるメタデータは、上記対応するアプリケーションのジャンルを含む。他の特徴において、上記さらなるメタデータは、（ｉ）上記対応するアプリケーションについてのユーザ提供されたレビューデータと、（ｉｉ）上記対応するアプリケーションについてのダウンロード統計とを含む。
【００２９】
他の特徴において、上記で説明された方法は、非一時的コンピュータ読取可能媒体に記憶されたプロセッサ実行可能命令により実施できる。
【００３０】
本開示の適用可能性のさらなるエリアが、詳細な説明、請求項、及び図面から明らかになるであろう。詳細な説明及び具体的な例は単に例示の目的を意図され、本開示の範囲を限定するようには意図されない。
【図面の簡単な説明】
【００３１】
本開示は、詳細な説明及び添付の図面からさらに十分理解されるであろう。図面において、参照番号は、同様の及び／又は同一の要素を識別するために再使用されることがある。
【図１Ａ】本開示の原理に従い推奨されるアプリを表示する例示的なグラフィカルユーザインターフェースである。
【図１Ｂ】本開示の原理に従い推奨されるアプリを表示する例示的なグラフィカルユーザインターフェースである。
【図２】一例示的なアクションオントロジーの小サブセットのグラフィカル表現である。
【図３】本開示の原理がアプリケーションエコシステム内で如何にして使用できるかを表す高レベル機能ブロック図である。
【図４Ａ】推奨要求の例示的なコンテンツを表す。
【図４Ｂ】推奨応答の例示的なコンテンツを表す。
【図５】推奨システムの一例示的な実装の高レベル機能ブロック図である。
【図６】推奨システムの別の例示的な実装の高レベル機能ブロック図である。
【図７Ａ】一例示的な推奨レコードフォーマットのグラフィカル表現である。
【図７Ｂ】別の例示的な推奨レコードフォーマットのグラフィカル表現である。
【図７Ｃ】図７Ａのフォーマットに従う一例示的な推奨レコードのグラフィカル表現である。
【図８】推奨システムの高レベル動作のフローチャートである。
【図９Ａ】推奨応答の準備及び送信の例示的動作のフローチャートである。
【図９Ｂ】推奨応答を準備及び送信する別の例示的動作のフローチャートである。
【図１０】推奨システムが如何にしてアプリケーション検索システムと相互運用することができるかの１つの例を表す高レベル機能ブロック図である。
【図１１】検索システムの一例示的実装の機能ブロック図である。
【図１２Ａ】一例示的なアプリケーションレコードフォーマットのグラフィカル表現である。
【図１２Ｂ】図１２Ａのフォーマットに従う一例示的なアプリケーションフォーマットレコードのグラフィカル表現である。
【図１３】検索システムと推奨システムとの間の例示的な相互運用のフローチャートである。
【発明を実施するための形態】
【００３２】
従前の推奨システムは、単に、特定ジャンル内におけるアプリの全体的人気に基づいて、あるいは他のユーザ、例えばソーシャルネットワークに従う１つ又は２つの分離度内のユーザなどからのデータに基づいて、アプリを推奨していた。一方、本開示は、ユーザ装置に現在インストールされているアプリによってどのアクションを実行できるかを識別し、さらなるアクションを実行すること及び／又は既存のアクションの動作を向上させることができるアプリを推奨する。
【００３３】
アプリケーションは、ユーザが様々な異なるアクションを実行することを可能にすることができる。例えば、レストラン予約アプリケーションは、ユーザが１つ以上のレストランでの予約を行うことを可能にすることができる。別の例において、インターネットメディアプレーヤアプリケーションは、ユーザがデジタルメディア（例えば、歌又は映画など）をインターネットからストリーミングすることを可能にすることができる。しばしば、単一のアプリケーションが、ユーザが２つ以上のアクションを実行することを可能にする。例えば、レストラン予約アプリケーションは、ユーザが予約を行うことに追加で、レストランに関するビジネス情報（例えば、営業の時間など）を取り出し、レストランのレビューを読むことをさらに可能にする。別の例として、インターネットメディアプレーヤアプリケーションは、ユーザがストリーミングのための新しい音楽を検索及び発見することをさらに可能にすることができる。
【００３４】
本開示に従う推奨システムは、定義されたアクションオントロジーに基づくことができる。オントロジー（その一例が図２に示される）は、アクションの階層ツリーを定義することができる。アプリにより提供される機能性は、アクションオントロジーから１つ以上のアクションを選択することによって説明できる。例えば、アクション「レストランレビューを提供する」は、レストランのレビューを含むアプリに割り当てできる。このレストランレビューアクションは、アクションオントロジー内の他のレストラン関連アクション（例えば、予約を行うこと及び指図を得ることなど）と共にグループ化できる。アクションオントロジーの別の例において、レビュー指向のアクションが一緒にグループ化されてもよい。例えば、レストランレビューアクションと医療提供者レビューアクションとが一緒にグループ化できる。
【００３５】
別のアプリについて、このアプリケーションに「ナビゲート」アクションを割り当てることができ、なぜならば、該アプリケーションが、ユーザが宛先にナビゲートすることを可能にするからである。アクションオントロジーは、推奨システムの設計に従い、任意の特定エリアにおいて、より大きい又はより小さい粒状であり得る。例えば、「ナビゲート」は、単一のアクションであってもよく、あるいは「車でナビゲートする」、「徒歩でナビゲートする」、「自転車でナビゲートする」、及び「公共輸送機関でナビゲートする」を含むアクションのグループを記述してもよい。
【００３６】
さらなる例として、アクションには、（例えば、カーサービス又はタクシーを注文することによってなどで）ある場所に対する輸送機関を見つけること、レストランからの食べ物を注文すること、食べ物の写真を見ること、レストランメニューを見ること、ビジネスについて検索すること、ビジネスのレビューを読むこと、食べ物のレシピを探すこと、テキスト通信を交換すること、株式をチェックすること、天候をチェックすること、スポーツスコアをチェックすること、音楽を再生すること、映画を再生すること、ラジオ局を聴くこと、ビデオを記録すること、及び商品又はサービスの値引きを識別することを含むことができる。
【００３７】
推奨システム開発者（又は、他の組織若しくは人）は、アプリケーションを見る、かつ／あるいは使用すると、手動でアプリケーションにアクションを割り当てることができる。開発者は、１以上のレビューアと契約して、デジタル配信プラットフォーム内で利用可能ないくつか又はすべてのアプリケーションについてのアクションを識別してもよい。
【００３８】
コストを制御するために、様々な実装において、アクションは、特定の閾値基準に合致するアプリケーションに対してのみ手動で割り当てられる。例えば、ひとたびアプリケーションが閾数を超える総ダウンロード数を有し、あるいは異なる閾値を上回るダウンロードレート（例えば、ひと月あたりのダウンロードなど）を有すると、アプリケーションのアクションコンテンツがレビューされてもよい。アプリ開発者が、上記基準に合致する１つのアプリケーションを既に有するとき、その開発者からの他のアプリケーションがレビューアによってさらに解析されてもよい。
【００３９】
機械学習アルゴリズムが、アプリを解析し、アプリが実行することができるアクションを推論してもよい。例えば、各々が機械学習アルゴリズムがレストラン名として認識する名前に固有である様々な状態を含むアプリが、レストランアプリであり得る。機械学習アルゴリズムは、さらに、アプリのユーザインターフェース要素を解析して、各レストランに関してどのアクションが行えるかを決定してもよい。
【００４０】
機械学習アルゴリズムは、アクションの予備セットを識別するのに使用されてもよく、上記アクションの予備セットは、次いで、人間のレビューアにより検証される。さらに、ソーシャルフィードバックが、機械学習アルゴリズムからの推論を補正するのに使用されてもよい。例えば、実行されるべき特定のアクションをアプリが提供するかどうかに関して、ユーザフィードバックが請求されてもよい。ある時間にわたり、ユーザフィードバックは、アプリを用いて上記アクションが実際に実行できるかどうかの正確な指示を提供することができる。ユーザフィードバックが、アクションが実行できないと圧倒的に示唆する場合、機械学習アルゴリズムは、そのアプリについての識別されたアクションのリストから上記アクションを削除することができる。
【００４１】
ユーザの装置にインストールされたアプリケーションに対応するアクションに基づいて、推奨システムは、さらなるアプリの推奨をユーザに対して行うことができる。例えば、推奨システムは、ユーザの装置にすでにインストールされているアプリからさもなければ利用可能でないアクションを提供するアプリを、ユーザに推奨することができる。
【００４２】
推奨システムは、ユーザの装置にインストールされた１つ以上のアプリによりすでに提供されており、しかし異なるアプリによってより良く実行されるアクションを、さらに識別することができる。推奨システムは、推奨システムに前に知られていなかった新たに利用可能なアクションを提供するアプリケーションをさらに推奨することができる。例えば、前に知られていなかったアクションをアプリが提供するため、新しいアクションがアクションオントロジーに追加されるとき、推奨システムは、前にアプリが実行していなかったアクションを上記アプリが提供するため、上記アプリを推奨することができる。
【００４３】
推奨システムは、さらに、ユーザがアプリを更新してさらなる機能性にアクセスするように促すことができ、前にアンインストールされたアプリの新しいバージョンがさらなる機能を提供するため、該アプリをユーザが再インストールすることを推奨してもよい。いくつかの例において、機能の不足がアプリのアンインストールにつながった可能性があり、そのアクションの導入がアプリを新たにユーザに関連させることになる。
【００４４】
図１Ａにおいて、簡素なユーザインターフェースが、ユーザ装置、例えばスマートフォン１０４などにおける、推奨されたアプリの表示１００を示す。この推奨アプリ表示１００は、推奨をオファーするスタンドアロンアプリの一部であり得る。別の実装において、推奨アプリ表示１００は、別のアプリの特徴として表示されてもよい。
【００４５】
様々な実装において、システムレベル又はランチャレベルソフトウェアプログラムが、様々な時間に推奨アプリ表示１００を表示することができる。例えば、推奨アプリ表示１００は、推奨システムからのプッシュ通知に応答して示されてもよい。さらに、オペレーティングシステムインターフェースの様々な場所、例えばアプリリスティングなどの中に、さらなるアプリを見つけるために選択できるアイコン、ボタン、又はテキストリンクがあってもよい。対応するテキストは、例えば、「さらなるアプリを見つける」、「さらなるアプリを入手する」、又は「推奨されるアプリ」であり得る。ユーザインターフェース要素を選択することが、推奨アプリ表示１００が示されることにつながってもよい。いくつかのオペレーティングシステムについて、及び推奨システムのいくつかの特徴セットについて、ルートレベルアクセスが使用されてもよい。
【００４６】
推奨は、別法として、又はさらに、帯域外通信を通して、例えば電子メール、テキストメッセージ、ＴＷＩＴＴＥＲ（登録商標）メッセージングプラットフォームメッセージ等を用いてなどで、ユーザに提供されてもよい。装置ベースの通知（例えば、通知バー、通知トレイ、ステータスバー等においてなど）、又はさらには一時的ポップアップメッセージ（時にトーストと呼ばれる）が表示されて、推奨されたアプリの可用性を示し、あるいは特定アプリを推奨してもよい。
【００４７】
アプリ（実際には、アプリに対応するアイコン）は、カテゴリ単位でフォルダにまとめることができる。例えば、１つのフォルダが音楽リスニングに関連することがあり、別のフォルダが輸送機関に関連する。関連する推奨されたアプリは、フォルダのカテゴリに従って表示できる。例えば、ユーザが輸送機関フォルダを見ているとき、推奨された輸送機関アプリが表示されてもよい。フォルダ内の推奨されたアプリの可用性は、テキスト又はアイコン、例えばプラス符号などによって示すことができる。この指示を選択することで、推奨されたアプリのリストを上に持ってくることができる。
【００４８】
さらに、推奨されたアプリの可用性は、インストールされたアプリの完全なリストが（例えば、ランチャプログラム又はオペレーティングシステムによってなどで）どこに表示されようと、テキスト又はアイコンで示されてもよい。さらに、完全なアプリリスト内に、あるいは他の場所に、例えばホーム画面上又はフォルダ内に、推奨されたアプリのアイコンが示されてもよい。アプリが推奨され、実際にインストールされていないという事実は、グラフィカルに、例えばアイコンをゴースト化すること（透過性を増加すること及び／又はグレースケールにコンバートすること）によってなどで、示すことができる。
【００４９】
推奨されたアプリは、デジタル配信プラットフォームアプリ、例えば、ＧＯＯＧＬＥ  ＰＬＡＹ配信プラットフォームにアクセスするアプリなどの中にさらに示されてもよい。例えば、装置固有の推奨を有するタブが追加されてもよい。別法として、デジタル配信プラットフォーム内のアプリについて検索及び閲覧することが、推奨されるアプリを示させてもよく、推奨が、ユーザが閲覧又は検索している配信プラットフォームのエリアに合わせらてもよい。
【００５０】
任意の個々のインストールされたアプリについて、推奨されるアプリを識別することができる。推奨されたアプリは、インストールされたアプリより多くのアクション又はインストールされたアプリとは異なるアクションを実行することができ、あるいは恐らくアクションのうち１つをより良く実行することができる。インストールされたアプリに対する推奨されたアプリの可用性は、インストールされたアプリ内の視覚的合図、又は、ランチャ又はホーム画面からなどでアプリにアクセスするのに使用されるアイコン又はウィジェットに関連付けられた視覚的合図によって示すことができる。例えば、小さいグラフィック、例えば宝石などが、アイコンの一部にオーバーレイされて、推奨されたアプリが利用可能であると示すことができる。推奨されたアプリにアクセスすることは、アイコンを押下又は保持することによって、あるいは上記宝石にタッチすることによって達成できる。
【００５１】
推奨アプリ表示１００の第１の部分に、「運転指図」と呼ばれるアクションのためのアプリが表示される。例えば、推奨されたアプリは、１１２‐１、１１２‐２、及び１１２‐３に表示される。推奨されたアプリ１１２は、対応するテキスト及びアイコンと共に示すことができる。推奨アプリ表示１００の第２の部分１１６は、インストールされたアプリからすでに利用可能であり得る「映画レビュー」と呼ばれるアクションのための代替的なアプリケーションを試すことを示唆する。１２０‐１及び１２０‐２に、例示的な映画レビューアプリが示される。推奨アプリ表示１００の第３の部分１２４は、「レストランレビュー」と呼ばれるアクションのための推奨されたアプリ１２８‐１を含む。
【００５２】
矢印１３２に示されるように、ユーザがさらなるアプリ、例えばレストランレビューについてのさらなる推奨されたアプリなどを見ることを、垂直スクローリングが可能にすることができる。各アクションが、「Ｘ」１３４などのユーザインターフェース要素に関連付けられて、ユーザが該アクションに関連した推奨を受信することに関心がないと示すことができる。さらに、「Ｘ」１３６などのユーザインターフェース要素が、ユーザが特定のアプリに関心がないと示すことができる。手が、１４０においてグラフィカルに表される（平均の人間の手と比較して小型化されて、図面のより多くを遮ることを回避する）。手１４０の位置は、ユーザインターフェース要素１３６の（例えば、指タップによってなどの）選択を実演して、アプリ「Ｍｏｖｉｅｓ  ｂｙ  Ｆｌｉｘｓｔｅｒ」がユーザには関心がないものと示すことができる。
【００５３】
図１Ｂにおいて、推奨されたアプリの表示１５０が、ユーザ装置、例えばスマートフォン１５４などに示される。「運転指図」のための推奨されたアプリが、第１の部分１５８に示される。各アプリは、アイコンとテキストとを含むことができる。テキストには、アプリケーションのタイトル、アプリケーションのレビュー、アプリケーションの説明等を含むことができる。
【００５４】
交差する矢印１６２により示されるように、垂直の及び水平のスクローリングが、さらなるアクションが表示されることと、さらなる推奨されたアプリが所与のアクションについて示されることとを可能にすることができる。例えば、小型化された手１６６が、推奨アプリ表示１５０の第２の部分１７０が左にスワイプされたと示すことができる。結果として、最も左のアプリ（ＩＭＤｂ  Ｍｏｖｉｅｓ  ＆  ＴＶ）が部分的に遮られ、同時に、最も右のアプリ（Ｆａｎｄａｎｇｏ）が今やフルに示されている。再びになるが、ユーザインターフェース要素は、ユーザが特定のアクション又は特定のアプリにおける無関心を示すことを可能にすることができる。
【００５５】
図１Ａ又は図１Ｂのいずれかにおいて（例えば、Ｘユーザインターフェース要素でない、アプリの任意の部分をクリック又はタップすることによってなどで）アプリのうち１つを選択することが、上記アプリに関するさらなる情報につながってもよく、あるいは上記アプリのためのアクセスメカニズムに直接つながってもよい。例えば、アクセスメカニズムは、デジタル配信プラットフォーム内の上記アプリに対する直接リンクであり得る。
【００５６】
図２において、一例示的なアクションオントロジーが、ルートノード２０４と、２つのサンプル分岐ノード、すなわちビデオ（video）２０８‐１及びレストラン（restaurants）２０８‐２とを有する。レストラン分岐ノード２０８‐２は、葉ノードのナビゲーション（navigation）２１２‐１、レビュー（reviews）２１２‐２、ビジネス情報（business  info）２１２‐３、及び予約（reservations）２１２‐４の、親ノードである。
【００５７】
ビデオ分岐ノード２０８‐１は、ビデオ購入（buy  video）分岐ノード２１６‐１及びビデオ賃借（rent  video）分岐ノード２１６‐２の親ノードであり得る。図２に示されるように、アクションオントロジーの葉ノードは、異なる深さ（ルートノード２０４からのホップ数）であり得る。例えば、ビデオ分岐ノード２０８‐１は、チケット購入（buy  tickets）２２０‐１及びショータイム（showtimes）２２０‐２の親ノードであり得る。一方、ビデオ購入分岐ノード２１６‐１は、ダウンロード（download）アクション２２４‐１及びストリーミング（stream）アクション２２４‐２に対する親ノードであり得る。同様に、賃借分岐ノード２１６‐２は、ダウンロード及びストリーミングそれぞれについて、葉ノード２２８‐１及び２２８‐２を含むことができる。
【００５８】
上述されたように、アクションオントロジーは、複数の方法で定義できる。単に例として、ダウンロードノード２２４‐１及び２２８‐１は、代わりに、ダウンロード購入（buy  download）及びダウンロード賃借（rent  download）の葉ノードを有する「ダウンロード」分岐ノードとして組み合わせられてもよい。同様に、ストリーミングノード２２４‐２及び２２８‐２は、代わりに、葉ノードとしてストリーミング購入（buy  streaming）及びストリーミング賃借（rent  streaming）を有する共通の分岐ノードであってもよい。
【００５９】
さらに、粒度のレベルが、推奨システムの必要に依存して変化してもよい。例えば、推奨システムは、２１６‐２におけるビデオレンタルについて、ダウンローディングとストリーミングとの間の区別をつける必要がない可能性があり、ゆえに、賃借ノード２１６‐２を葉ノードにし、ノード２２８‐１及び２２８‐２を消去することができる。例えば、このことは、ユーザが賃借物をダウンロードすることを可能にするあらゆるアプリが、ユーザが賃借物をストリーミングすることをさらに可能にするとき、行うことができる。このマージングは、さらに、ユーザが賃借を行うことを可能にするアプリの数がかなり小さくて細分割が必要でないとき、行われてもよい。
【００６０】
アプリが実行できる各アクションは、アプリの１つ以上の状態からアクセス可能であり得る。状態は、アプリの画面、例えば、ホーム画面又は特定のレストランのレストランレビューに特化した画面などを参照することができる。アプリの状態は、ＵＲＬ（ユニフォームリソースロケータ）に関連付けられてもよい。アプリのＵＲＬが特定のパターンに従い、各パターンが異なるアクションに対応してもよい。ゆえに、異なるＵＲＬパターンの数は、アプリによりサポートされる異なるアクションの数の下限を示すことができ、ＵＲＬパターンの集合は、サポートされるアクションの集合に変換することができる。
【００６１】
図３に、システム全体の高レベルの概観が示される。ユーザ装置３０４が、ネットワーク３１２、例えばインターネットなどを介して、デジタル配信プラットフォーム３０８に接続する。ユーザ装置３０４は、デジタル配信プラットフォーム３０８からアプリケーション（図３において「アプリＡ」と呼ばれる）を受信する。ユーザ装置３０４により実行されるとき、アプリＡは、ユーザインターフェース要素３１６、例えば、推奨されたアプリのボタンなどを提示することができる。
【００６２】
ユーザインターフェース要素３１６が作動させられるとき、推奨要求が推奨システム３２０に送信される。推奨システム３２０は、推奨応答を用いてユーザ装置３０４に応答する。推奨応答は、表示、例えば図１Ａ又は図１Ｂに示される表示などにつながり得る。
【００６３】
データソース３２４は、推奨システム３２０による使用のためのソースデータを提供することができる。データソース３２４は、アプリケーション開発者からのデータ、例えば、アプリケーション開発者のウェブサイト及び開発者により提供されるデータフィードなどを含むことができる。データソース３２４は、デジタル配信プラットフォーム、例えばデジタル配信プラットフォーム３０８などを含むことができる。データソース３２４は、他のウェブサイト、例えばブログ、アプリケーションレビューウェブサイト、及びソーシャルネットワーキングサイトなどをさらに含むことができる。データソース３２４は、映画、テレビジョン番組、音楽、レストラン、場所等に関連したデータのオンラインデータベースを含むことができる。
【００６４】
データソース３２４の各々は、独立のデータ構造を有することができ、異なるレートで更新できる。ゆえに、推奨システム３２０は、異なるレートでデータ構造３２４から更新できる。さらに、データの信用性及び正確さは、複数のデータソース３２４にわたり異なることがあり、このことが、データソース３２４のうちいずれがデータを提供したかに依存してデータを別様に重み付けすることに用いられてもよい。
【００６５】
図４Ａに、一例示的な推奨要求４０４が示される。推奨要求４０４は、推奨システムの公開鍵を用いて暗号化できる。このことは、推奨システムが推奨要求４０４を解読することを可能にし、秘密鍵を所有していない誰もそうできないようにする。
【００６６】
推奨要求４０４は、インストールされたアプリ４０４‐１のリスティングを含むことができる。インストールされたアプリ４０４‐１には、すべてのインストールされたアプリケーションの網羅的なリストを含むことができ、あるいはインストールされたアプリケーションを概算した縮小された表現を含むことができる。単に例として、ブルームフィルタ表現が使用されてもよい。ブルームフィルタは、アプリの予め定義されたセットからの一アプリが可能性として装置にインストールされているか、あるいは明確にインストールされていないかを指定する。換言すると、圧縮を達成するために、ブルームフィルタの出力は、特定のアプリが存在すると決定的に明言せず、ブルームフィルタ出力は、特定のアプリが存在しないかどうかのみ決定的に明言する。
【００６７】
使用量（Usage）データ４０４‐２は、インストールされたアプリの使用量を示す。例えば、ユーザ装置上の挙動モニタが、スタンドアロンアプリケーションであり得、あるいはオペレーティングシステム、検索アプリケーション、ウェブブラウザ、及び／又は他のネイティブアプリケーションに組み込まれてもよい。挙動モニタは、ユーザ装置の使用を監視して、使用量データを収集することができる。例えば、挙動モニタは、バックグラウンドプロセスとして実行してもよい。
【００６８】
例えば、挙動モニタは、毎回、アプリが呼び出されたことと、ユーザが別のアプリに切り替える前にどれほど長く上記アプリに従事して費やしたかとを記録することができる。挙動モニタは、さらに、アプリのいずれの状態にユーザが時間を費やしたかを決定することができる。各アプリケーション状態は、特定のアクションに対応することができる。ゆえに、挙動モニタは、ユーザが特定のアプリを使用するときにどのアクションに関心があるかを弁別することが可能であり得る。
【００６９】
挙動モニタは、上記使用量データを記憶し、該データを推奨要求４０４の一部として提供することができる。単に例として、使用量データ４０４‐２の一部として提供される統計データには、アプリケーションが使用される頻度（例えば、ひと月あたりの回数など）と、全体としてユーザ装置上でと比較してアプリケーション内でユーザが費やす時間のパーセンテージとを含むことができる。ゆえに、使用量データ４０４‐２を使用して、いずれのアクション及びアプリケーションがユーザに最も関心のあるものであるかを識別することができる。
【００７０】
推奨要求４０４には、装置情報４０４‐３を含むことができ、装置情報４０４‐３は、装置のオペレーティングシステム及びオペレーティングシステムバージョン番号、装置のジオロケーションデータ、推奨要求４０４を生成したアプリのアイデンティティ、アプリのアプリ開発者のアイデンティティ、装置の画面解像度、装置の向き（縦方向又は横方向）、センサ能力（例えば、加速度計の位置、又は心拍センサの存在など）等を含むことができる。装置情報４０４‐３を使用して、ユーザ装置の画面解像度又はオペレーティングシステムバージョンに対して互換性がないか又は準最適であるアプリが推奨されることを防止することができる。
【００７１】
図４Ｂにおいて、一例示的な推奨応答４２０が、アプリリスト４２４‐１を含む。例えば、アプリリスト４２４‐１には、各ストリングがアプリ名を記憶したストリングのアレイを含むことができる。アレイの順序は、最も関連あるものから最も関連ないものへであり得る。アプリリスト４２４‐１内に提供されるアプリの数は、ユーザ装置の解像度に従って選ばれてもよい。例えば、より大きい画面及び／又はより高い解像度を有する装置は、より多数のアプリを受信することができる。
【００７２】
イメージフィールド４２４‐２は、アプリリスト４２４‐１内のアプリの各々についてのエンコードされたイメージを含むことができる。イメージは、アプリを視覚的に識別するようにアプリ名の隣に表示できる。アプリアクセスメカニズム４２４‐３は、インストールのためにアプリをダウンロードするためのデジタル配信プラットフォームに対するリンクを含むことができる。様々な実装において、推奨されたアプリは、ウェブベースであって、ユーザ装置上のブラウザ内で起動することができる。こうしたアプリのためのアクセスメカニズムには、ブラウザによりオープンされるＵＲＬを含むことができる。
【００７３】
さらなるメタデータ４２４‐４には、各アプリの星格付け、各アプリのテキスト説明、レビューテキスト及びメトリクス（例えば、レビューの数など）、並びに各アプリにより有効にされるアクションのリスティングを含むことができる。アクションのリスティングには、各アプリにより有効にされるすべてのアクション、又は、各アプリにより有効にされる、ユーザ装置上にすでにインストールされたアプリにより提供されていなかったアクションのみのリスティングを含むことができる。他の実装において、アクションリスティングは、各アプリが最も適するアクションをリストにしてもよい。
【００７４】
図５において、推奨システム５００の一例示的な実装のブロック図が、クエリモジュール５０４を含み、クエリモジュール５０４は、推奨要求を受信し、推奨要求からのデータをセット生成モジュール５０８に提供する。セット生成モジュール５０８は、推奨データストア５１２から、推奨レコードの検討セット（consideration  set）を識別する。推奨データストア５１２は、図７Ａ〜７Ｃに説明されるレコードなどのレコードを含む。
【００７５】
レコード生成モジュール５１６は、アプリにより有効にされるアクションを用いて該アプリにタグ付けすることを含め、レコードを作り出す。レコード生成モジュール５１６は、アプリに対するアクションの手動の割り当てを可能にして、推奨データストア５７２内にレコードを作成することができる。さらに、レコード生成モジュール５１６は、上記で説明されたように機械学習アルゴリズムを実施して、対応するアクションを用いてアプリに自動的にタグ付けすることができる。レコード生成モジュール５１６は、さらに、指定されたアクションオントロジーを推奨システム５００の開発者が更新することを可能にすることができる。
【００７６】
アプリの検討セットは、セット処理モジュール５２０により処理される。セット処理モジュール５２０は、検討セットの各レコードをスコア付けすることができ、これにおいて、スコアは、推奨要求の要素に基づくことができる。複数の最も高くスコア付けされた検索結果が、その対応する複数のスコアと共に、結果生成モジュール５２４に提供される。
【００７７】
スコア付けは、さらに格付けとして参照されることがあり、フィルタリング（検討セットからアプリを削除することであって、このことは、スコアをゼロなどの最小値に設定することにより達成できる）を伴うことができる。スコア付けは、アプリ人気（ダウンロードの数、平均格付け、前月におけるダウンロードの数）、アプリの現在のバージョンがどれほど最近のものであるか、及びアプリ品質スコア（これは、アプリがどれほど頻繁に更新されているかと、各々の新しいバージョンで平均ユーザレビューが増加しているか、あるいは減少しているかとに基づくことができる）に基づくことができる。
【００７８】
スコア付けは、さらに、検討セット内のアプリにより提供されるアクションがユーザ装置上ですでに利用可能なアクションとどれほど調和するかに基づくことができる。例えば、アクションオントロジー内の同じ親ノード下の複数の葉ノードがユーザ装置上ですでに利用可能であるとき、セット処理モジュール５２０は、同じ親ノード下の残りのアクションを提供するアプリに、より高いスコアを割り当てることができる。一例として図２を用いて、ユーザ装置上にインストールされたアプリがアクション２１２‐２（レストランレビュー）及び２１２‐３（ビジネス情報）を可能にする場合、親ノード２０８‐１（レストラン）下の他のアクションが、より高いスコアに貢献し得る。すなわち、レストランナビゲーション２１２‐１及び／又はレストラン予約２１２‐４を可能にするアプリが、より高いスコアを受けることができる。
【００７９】
セット処理モジュール５２０は、推奨要求により示される、ユーザ装置上にすでにインストールされているアプリを、フィルタ除去（filter  out）することができる。さらに、セット処理モジュール５２０は、推奨要求内に指定されるオペレーティングシステムバージョン及び解像度などの属性と互換性のないアプリをフィルタ除去することができる。さらに、セット処理モジュール５２０は、ユーザ装置のジオロケーションに対するアプリの地理的関連（geographical  relevance）に基づいて、該アプリをフィルタ除去し、あるいは該アプリの格付けを変えることができる。
【００８０】
結果生成モジュール５２４は、上位のスコア付けされた結果を含む推奨応答を準備し、これにおいて、各結果に関連付けられたデータには、テキスト、アイコン、及び１つ以上のアクセスメカニズムを含むことができる。結果生成モジュール５２４は、準備された推奨応答を、推奨要求の送信者に送信する。
【００８１】
図６において、推奨システム５５０の別の例示的な実装が、監視モジュール５５４を含み、監視モジュール５５４は、ユーザデータストア５５８内にレコードを作成する。監視モジュール５５４は、ユーザデータストア５５８に、ユーザ装置からのフィードバックを記録することができ、上記フィードバックには、ユーザ装置内におけるアプリ及びアクションの使用量データが含まれる。監視モジュール５５４は、さらに、いずれのアプリケーションがユーザ装置上にインストールされているかをユーザデータストア５５８内で追跡することができ、ゆえに、アプリがユーザ装置からいつアンインストールされたかを決定することが可能であり得る。
【００８２】
セット生成モジュール５６２、セット処理モジュール５６６、及び結果生成モジュール５７０は、図５のセット生成モジュール５０８、セット処理モジュール５２０、及び結果生成モジュール５２４と同様に機能することができる。セット生成モジュール５６２は、特定の動作及び／又はアプリがより関心のないものであることをユーザが示したかどうかを考慮することができる。これらアプリは検討セットからフィルタ除去でき、さらに、ユーザにとって関心のないアクションのみ実行するアプリが検討セットからさらにフィルタ除去されてもよい。
【００８３】
セット処理モジュール５６６は、ユーザにより軽視されるいかなるアクションも実行しない結果に対して、より高いスコアを割り当てることができる。セット処理モジュール５６６は、さらに、ユーザがより頻繁にアクションを実行していることを使用量データが示すところの該アクションを実行するアプリのスコアを高めることができる。結果生成モジュール５７０は、アプリ又はアクションにおける関心のなさをユーザが前に示していたかどうかに依存して、別様に結果を順序付けることができる。
【００８４】
例えば、ユーザがアクションにおける無関心を示した第１の場合の後、結果生成モジュール５７０は、そのアクションを有する推奨されたアプリに、特定量の透過性を適用することができる。ユーザからの無関心についての第２の指示の後、そのアクションに対応する推奨された結果はすべて一緒に削除できる。無関心についてのユーザ指示の、単一の場合は、一般に、アクションにおける完全かつ永続的な無関心として解釈できない。代わりに、ユーザは、単にその瞬間に無関心を示していた可能性があり、あるいは、無関心に関連したユーザインターフェース要素を不注意に作動させていた可能性がある。ゆえに、結果生成モジュール５７０は、ユーザにとって価値ある推奨を提示する可能性を排除することなく、ユーザの前の選択が確認されていることを視覚的に示すことができる。
【００８５】
図７Ａにおいて、推奨レコード６００の一例示的なフォーマットが、アプリケーション名６０４‐１、アプリケーション識別子（ＩＤ）６０４‐２、アクションリスト６０４‐３、及びアプリケーション属性６０４‐４を含む。推奨レコード６００は、特定のアプリケーションのための、推奨データストア５１２に記憶できるデータを一般に表す。推奨データストア５１２は、図７Ａにより指定される構造を有する数千の又は数百万のレコードを含むことができる。
【００８６】
アプリケーションＩＤ６０４‐２は、推奨データストア５１２内のアプリケーションを一意に識別する。様々な実装において、アプリケーションＩＤ６０４‐２は、アプリケーションのすべてのバージョンにわたり、及び該アプリケーションのすべてのエディションにわたり同じであり得る。この意味において、エディションは、異なるオペレーティングシステム（例えば、Ａｐｐｌｅ社のＩＯＳ（登録商標）オペレーティングシステム及びＧｏｏｇｌｅ社のＡＮＤＲＯＩＤ（登録商標）オペレーティングシステムなど）のためのアプリのバージョンと、アプリのウェブベースエディションとを参照する。
【００８７】
アプリケーションＩＤは、推奨システム自体により割り当てでき、例えばデジタル配信プラットフォームにより割り当てられるいかなるＩＤからも独立であり得る。アクションリスト６０４‐３は、アプリケーションにより実行できるアクションオントロジーからのアクションを示す。様々な実装において、別個の推奨レコードが、アプリケーションの各バージョンについて、及び各エディションについて存在し得る。こうして、アクションリスト６０４‐３は、アプリの指定されたエディション及びバージョンに対して固有であり得る。
【００８８】
アプリケーション属性６０４‐４は、アプリケーションＩＤ６０４‐２により指定されたアプリに関連付けできる任意タイプのデータを含むことができる。例えば、アプリケーション属性６０４‐４は、アプリケーションの開発者の名前、アプリケーションの発行者、アプリケーションのカテゴリ（さらにジャンルとしても知られる）、アプリケーションのテキスト説明（これは、開発者から受けることができる）、アプリケーションのバージョン番号、アプリケーションに対するオペレーティングシステム要件、及びアプリケーションの価格を含むことができる。
【００８９】
アプリケーション属性６０４‐４は、アプリケーションに関するセキュリティ及びプライバシーデータ、アプリケーションのバッテリ使用量、並びにアプリケーションの帯域幅使用量をさらに含むことができる。アプリケーション属性６０４‐４は、アプリケーション統計、例えば、ダウンロードの総数、月あたりのダウンロード、数値的格付けの総数、テキストレビューの総数、アプリの最新バージョンの格付け及びレビューの数等をさらに含むことができる。アプリケーション属性６０４‐４は、アプリに関連したデジタルメディア、例えば、アイコン及びスクリーンショットなどをさらに含むことができる。
【００９０】
アプリケーション属性６０４‐４は、アプリの地理的関連を含むことができる。例えば、地理的関連は、アプリが最も関連する地理的エリアを指定することができる。アプリケーション属性６０４‐４は、関連のある層化（tiered）システムを指定することができ、１つの地理的エリアは、アプリがどこに最も高く関連があるかを示し、第２の地理的エリアは、アプリがどこにわずかにより少なく関連があるかを示し、第３の地理的エリアは、アプリがどこにいくらか関連があるかを示す。アプリは、これらエリアの範囲外で、わずかな関連を有するか、あるいは関連を有さない可能性がある。
【００９１】
地理的エリアは、様々な方法で、例えば、ＧＰＳ座標、ＺＩＰコード、セルフォンタワーカバレッジエリア、Ｗｉ‐Ｆｉアクセスポイントカバレッジエリア等によってなどで指定できる。単に例として、地理的エリアは、中心点及び半径により、あるいは多角形を定義する縁により指定できる。様々な実装において、地理的エリアは、２つ以上の不連続の地域を含むことができる。
【００９２】
図７Ｂにおいて，アプリケーションレコード６２０の別の例示的なフォーマットが、アプリケーション名６２４‐１、アプリケーションＩＤ６２４‐２、アクションリストのアレイ６２４‐３、及びアプリケーション属性６２４‐４を含む。推奨レコード６２０が、アプリの複数のバージョン（これは、アプリの複数のエディションをさらに包含することがある）に適用されるとき、アレイ６２４‐３は、アプリの各バージョンについて、別個のアクションリストを含むことができる。アレイデータ構造が指定されるが、他のデータ構造が使用されてもよく、他のデータ構造は、より記憶効率の良いものであり得る。
【００９３】
図７Ｃにおいて、“Ｙｅｌｐ”と名付けられたアプリケーション６４４‐１の一例示的な推奨レコード６４０が、３ＦＦ８Ｄ４０７の架空ＩＤ６４４‐２を有する。アクションリスト６４４‐３は、ＹＥＬＰアプリケーションがレストランレビュー（rest_reviews）レストランナビゲーション指図（rest_navigation）、レストランビジネス情報（rest_businfo）、及びレストラン予約（rest_reservs）と名付けられたアクションオントロジーからのアクションを実行することができることを示す。アクションは、この例において人間が読取可能な略語を用いて表示されるが、実際の推奨レコードは、アプリに適用されるアクションオントロジーのノードをよりコンパクトに説明する１６進又はビットフィールド表現を含むことができる。アプリケーション属性の例が６４４‐４に表示され、開発者、レビュー、格付け、ジャンル、ダウンロードの数、地理的関連、装置情報、及びアプリに対するアクセスメカニズムを含む。
【００９４】
図８において、フローチャートが、本開示に従う推奨システムの様々なファセットを包含する。制御は７０４において始まり、７０４において推奨要求が受信される場合、制御は７０８に移り、そうでない場合、制御は７１２に移る。７０８において、制御は、推奨要求に対する推奨応答を準備し、送信する。このことは、図９Ａ又は図９Ｂに従い実行できる。次いで、制御は７１２において継続する。
【００９５】
７１２において、制御は、新しいアクションが推奨データストアに追加されたかどうかを決定する。そうである場合、制御は７１６に移り、そうでない場合、制御は７２０に移る。７１６において、前に利用可能でなかった新しいアクションが、今や利用可能である。このことは、アクションオントロジーの葉ノードが前はいかなるアプリケーションにもマッピングされていなかったことを意味する可能性がある。他の状況において、アクションは、具体的にこのアプリケーションの新しい機能性のために、アクションオントロジーに追加された可能性がある。
【００９６】
７１６において、制御は、新しいアクションに関する更新に対して会員登録されている（subscribed  to）ユーザ装置を識別する。ユーザ装置は、推奨システムにアクセスすると自動的に会員登録されてもよい。ユーザ装置のユーザは、関心のないいかなる推奨からも単に会員登録解除する（unsubscribe）ことができ、あるいは、推奨システム更新から完全に会員登録解除してもよい。７２４において、制御は、更新に対して会員登録しているユーザ装置に対して通知をプッシュする。これらプッシュ通知は、ユーザ装置上のアプリ又はバックグラウンドプロセスによってであってもよく、あるいは、他の配信メカニズム、例えば電子メール又はＴＷＩＴＴＥＲメッセージングプラットフォームメッセージなどを用いてもよい。次いで、制御は７２０において継続する。
【００９７】
７２０において、制御は、ユーザ装置が新しい地理的エリアに入ったかどうかを決定する。そうである場合、制御は７２８に移り、そうでない場合、制御は７３２に移る。７２８において、制御は、インストールされたアプリケーションからユーザ装置に利用可能であるアクションを識別し、７３６において継続する。７３６において、制御は、新しい地理的エリアに対してより大きい関連を有するが利用可能なアクションのうち１つ以上をオファーするアプリを識別する。７４０において、制御は、より大きい地理的関連を有するアプリに基づいて、ユーザ装置に対して通知をプッシュする。次いで、制御は７３２において継続する。
【００９８】
７３２において、制御は、ユーザ装置から前にアンインストールされたアプリが新たに追加された機能性を有するかどうかを決定する。そうである場合、制御は７４４に移り、そうでない場合、制御は７４８に移る。７４４において、制御は、更新に対して会員登録されたユーザ装置を識別し、７５２において、制御は、こうしたユーザ装置に対して通知をプッシュする。上記で論じられたように、通知は多くの形式をとることができる。ひとたび通知がユーザ装置に対してプッシュされると、制御は７４８に移る。
【００９９】
７４８において、インストールされたアプリの新しいバージョンが新しい機能性を有する場合、制御は７５６に移り、そうでない場合、制御は７０４に戻る。７５６において、制御は、新しいアクションの主体であるインストールされたアプリが、少なくとも所定期間の時間の間、ユーザ装置上で更新されていなかったかどうかを決定する。アプリがこの期間の時間内に更新されていなかった場合、制御は７６０に移り、そうでない場合、制御は７０４に戻る。７６０において、制御は、ユーザ装置にアプリ更新の通知をプッシュして、アプリを更新してさらなる機能性を受けるようにユーザに促す。次いで、制御は７０４に戻る。
【０１００】
図９Ａにおいて、推奨応答を準備及び送信する例示的な動作が示され、この動作は、図８により呼び出されている可能性がある。制御は８０４において始まり、８０４において、利用可能アクションのセットが、ユーザ装置上にインストールされたアプリから識別される。８０８において、制御は、利用可能アクションと相互排他的である利用不能アクションのセットを選択する。いくつかの実装において、利用不能アクションは、インストールされたアプリから利用可能でないすべての他のアクションであり得る。
【０１０１】
８１２において、制御は、利用不能アクションのうち少なくとも１つを各アプリがオファーするアプリの検討セットを決定する。８１６において、スコアが検討セット内の各アプリに割り当てられる。８２０において、制御は、検討セット内の最も高くスコア付けされたアプリを選択する。８２４において、制御は、選択されたアプリに基づいて応答を準備し、アプリのアイデンティティ、メタデータ（例えば、説明、格付け、及びアイコンなど）、及び選択されたアプリの各々に対するアクセスメカニズム（例えば、ダウンロードリンクなど）を含める。８２８において、制御は応答を送信し、制御は終了する。
【０１０２】
図９Ｂにおいて、ユーザデータに基づいて推奨応答を準備及び送信する別の制御が提示される。制御は９０４において始まり、９０４において、制御は、推奨要求により指定されるインストールされたアプリに基づいて、ユーザレコードを更新する。９０８において、制御は、いずれかの前にインストールされたアプリが今見当たらないかどうかを決定する。そうである場合、制御は９１２に移り、そうでない場合、制御は９１６に移る。９１２において、制御は、ユーザ装置について、上記前にインストールされたアプリをアンインストールされているとして注記する（notes）。制御は９１６において継続する。
【０１０３】
９１６において、制御は、図９Ａの８０４と同様に、インストールされたアプリから利用可能アクションのセットを識別する。９２０において、制御は、図９Ａの８０８と同様に、利用不能アクションのセットを選択する。９２４において、制御は、図９Ａの８１２と同様に、利用不能アクションのうち１つ以上をオファーするアプリの検討セットを決定する。図９Ａ及び図９Ｂの８１２と９２４との双方において、それぞれ、制御は、検討セットから、装置上にすでにインストールされているアプリを削除することができる。
【０１０４】
９２８において、制御は、アプリがアンインストールされているとき、該アプリを検討セットから選択的に削除する。様々な実装において、アプリの削除は、アンインストールされたアプリがアンインストールの時以後にさらなる特徴で補足されていることに応答して、スキップできる。
【０１０５】
９３２において、制御は、検討セット内の各アプリをスコア付けする。アプリをスコア付けすることは、ユーザデータ、例えば特定アクションの使用量データなどに基づくことができる。例えば、ユーザにより頻繁に使用されるアクションをオファーするアプリが、そのスコアを増加されてもよい。９３６において、制御は、検討セット内の最も高くスコア付けされたアプリを選択する。９４０において、制御は、選択されたアプリの情報を有する応答を準備する。９４４において、制御は、準備された推奨応答を送信し、制御は終了する。
【０１０６】
図１０において、推奨システム３２０は、検索システム１０００と統合される。アプリケーション、例えば「アプリＢ」などが、デジタル配信プラットフォーム３０８からユーザ装置３０４にダウンロードされる。アプリＢは、検索システム１０００からのアプリについて検索するユーザインターフェース要素１００２を有する。単に例として、テキストボックス（図示されていない）が、アプリＢのユーザがテキストクエリを入力することを可能にすることができ、ユーザインターフェース要素１００２は、テキストクエリをクエリラッパーにおいて検索システム１０００に送信する。
【０１０７】
図１０に示されるように、検索システム１０００は、次いで、推奨システム３２０に推奨要求を送信し、推奨応答を返しで受信する。検索システム１０００は、データソース３２４と同様の又は同一のものから投入されたデータストアを含むことができる。
【０１０８】
図１１において、アプリケーション検索モジュール７００の一例示的な実装が、クエリラッパーを受信するクエリ解析モジュール１００４を含む。クエリ解析モジュール１００４は、クエリラッパーからテキストクエリを解析する。例えば、クエリ解析モジュール１００４は、クエリテキストをトークン化し、クエリテキストをフィルタし、ワードステミング（word  stemming）、シノニム化（synonymization）、及びストップワード削除を実行することができる。クエリ解析モジュール１００４は、さらに、クエリラッパー内に記憶されたさらなるデータを解析することができる。クエリトークンが、クエリ解析モジュール１００４によりセット生成モジュール１００８に提供される。
【０１０９】
クエリ解析モジュール１００４は、さらに、推奨要求を推奨システム５００に送信することができる。セット生成モジュール１００８は、クエリトークンに基づいて、アプリケーションレコードの検討セットを識別する。アプリケーションデータストア１０１０のレコードのコンテンツのいくつか又はすべてが、逆索引（inverted  indices）において索引化できる。いくつかの実装において、セット生成モジュール１００８は、アパッチソフトウェアファウンデーションによるアパッチルシーン（ＡＰＡＣＨＥ（登録商標）  ＬＵＣＥＮＥ）ソフトウェアライブラリを使用して、逆索引からレコードを識別する。
【０１１０】
セット生成モジュール１００８は、逆索引を検索して、クエリトークンのうち１つ以上を含むレコードを識別することができる。セット生成モジュール１００８がマッチングレコードを識別するとき、セット生成モジュール１００８は、各々の識別されたレコードの一意ＩＤを検討セット内に含めることができる。さらに、いくつかの実装において、セット生成モジュール１００８は、検索クエリに関してレコードの初期スコアを決定することができる。初期スコアは、レコードのコンテンツがどれほど良くクエリトークンにマッチしたかを示すことができる。例えば、初期スコアは、それぞれのクエリ単語の単語頻度‐逆文書頻度（term  frequency-inverse  document  frequency）（ＴＦ‐ＩＤＦ）値の関数であり得る。
【０１１１】
セット処理モジュール１０１２は、セット生成モジュール１００８から一意ＩＤを受信し、さらに、推奨システム５００から推奨されたアプリのＩＤを受信する。換言すると、推奨されたアプリは、検討セットの一部として単に含まれることがある。他の実装において、推奨されたアプリは、特別なステータスを保有することができ、そのため、何らかの数の推奨されたアプリを、推奨されたアプリの相対スコアにかかわらず検索結果内に含むことができる。
【０１１２】
推奨システム５００に送信される推奨要求は、どの種類のアプリが検索されているかを示すことができ、このことが、推奨されるアプリのセットを変えてもよい。別法として、推奨要求は、ユーザ装置上のインストールされたアプリのリストを単に識別することができ、次いで、推奨応答が、ユーザにより要求されているアプリ検索から独立して生成されてもよい。こうして、ユーザが別のエリア内で検索しているときでさえ、価値ある推奨が行える。
【０１１３】
セット処理モジュール１０１２は、ＩＤのうちいくつか又はすべてのための結果スコアを決定する。結果スコアは、クエリトークン及びコンテキストパラメータを所与として、アプリの関連を示し、より高いスコアはより大きい把握された関連を示す。例えば、クエリラッパー内の他のアイテムが、コンテキストパラメータの役割を果たすことができる。ジオロケーションデータが、ユーザ装置の場所に関係しないアプリのスコアを制限し（あるいは、単に完全に削除し）てもよい。クエリリスト内のブラックリストが、セット処理モジュール１０１２に、ブラックリスト内の基準にマッチするアプリを検討セットから削除すること、又はそのスコアをゼロに設定することをさせてもよい。
【０１１４】
セット処理モジュール１０１２は、１つ以上のスコア付け特徴、例えばレコードスコア付け特徴、クエリスコア付け特徴、及びレコードクエリスコア付け特徴などに基づいて、結果スコアを生成することができる。例示的なレコードスコア付け特徴は、レコードに関連付けられた測定、例えば、どれほどしばしばレコードが検索の間に取り出されるか、及び、どれほどしばしばレコードに基づいて生成されたリンクがユーザにより選択されるかなどに基づくことができる。クエリスコア付け特徴には、これらに限られないが、検索クエリ内のワードの数、検索クエリの人気、及び検索クエリ内のワードの予期された頻度を含むことができる。レコードクエリスコア付け特徴には、検索クエリの単語が対応するＩＤにより示されるレコードの単語にどれほど良くマッチするかを示すパラメータを含むことができる。
【０１１５】
セット処理モジュール１０１２は、１つ以上のスコア付け特徴を受信するように構成された１つ以上の機械学習（machine  learned）モデル（例えば、教師あり（supervised）学習モデルなど）を含むことができる。１つ以上の機械学習モデルは、ファンクションＩＤスコア付け特徴、レコードスコア付け特徴、クエリスコア付け特徴、及びレコードクエリスコア付け特徴のうち少なくとも１つに基づいて、結果スコアを生成することができる。
【０１１６】
例えば、セット処理モジュール１０１２は、検索クエリを各ＩＤとペアにし、各｛クエリ，ＩＤ｝ペアについて、特徴のベクトルを算出することができる。特徴のベクトルは、１つ以上のレコードスコア付け特徴、１つ以上のクエリスコア付け特徴、及び１つ以上のレコードクエリスコア付け特徴を含むことができる。いくつかの実装において、セット処理モジュール１０１２は、特徴ベクトル内のスコア付け特徴を正規化する。セット処理モジュール１０１２は、無関係の特徴をヌル値又はゼロに設定することができる。
【０１１７】
セット処理モジュール１０１２は、次いで、アプリケーションＩＤのうち１つのための特徴ベクトルを機械学習回帰モデルに入力して、該ＩＤの結果スコアを算出することができる。いくつかの例において、機械学習回帰モデルは、決定木（例えば、勾配ブースト決定木など）のセットを含むことができる。さらに、又は別法として、機械学習回帰モデルは、ロジスティック確率式を含むことができる。いくつかの実装において、機械学習タスクは、半教師あり学習タスクとして組み立てでき、これにおいて、訓練データのうち少数部分は、人間によりキュレートされた（human-curated）スコアでラベル付けされ、データの残りは、人間のラベルなく用いられる。
【０１１８】
機械学習モデルは、ＩＤの結果スコアを出力する。セット処理モジュール１０１２は、セット処理モジュール１０１２が受信するＩＤの各々について、結果スコアを算出することができる。セット処理モジュール１０１２は、結果スコアをそれぞれのＩＤに関連付け、最も関連あるスコア付けされたＩＤを出力する。
【０１１９】
結果生成モジュール１０１６は、最も関連あるスコア付けされたＩＤから、例えば、対応するアプリのテキスト及び絵の指示とダウンロードリンクなどのアクセスメカニズムとを組み合わせることによってなどで、検索応答を構築する。様々な実装において、結果生成モジュール１０１６は、検索応答内に含めるために、所定数の推奨されたアプリを選択することができる。これら推奨されたアプリは、検索により導出されることと対照的に、推奨されたとして識別できる。
【０１２０】
図１２Ａにおいて、アプリケーションレコード１１００の一例示的なフォーマットが、アプリケーション名１１０４‐１、アプリケーション識別子（ＩＤ）１１０４‐２、及びアプリケーション属性１１０４‐３を含む。アプリケーションレコード１１００は、特定のアプリケーションのための、アプリケーションデータストア１０１０に記憶できるデータを一般に表す。アプリケーションデータストア１０１０は、アプリケーションレコード１１００により指定される構造を有する数千の又は数百万のレコードを含むことができる。アプリケーションＩＤ１１０４‐２は、アプリケーションデータストア１０１０内のアプリケーションを一意に識別する。アプリケーションＩＤ１１０４‐２は、検索システム１０００により割り当てでき、ゆえに、例えばデジタル配信プラットフォームにより割り当てられるいかなるＩＤからも独立であり得る。
【０１２１】
アプリケーションＩＤ１１０４‐２の単一の値が、複数のアプリケーションエディションをカバーすることができる。上記で説明されたように、用語「エディション」は、単一のアプリの複数のバージョンに対して、さらに、別のオペレーティングシステムに対してリリースされた該アプリのバージョンに対して適用されることがある。単に例として、（図１２Ｂに示される）アングリーバード（Angry  Birds）は、ＡＮＤＲＯＩＤ及びＩＯＳオペレーティングシステムプラットフォームで利用可能であり得、各プラットフォームについて、バグフィックスがリリースされるとき、及び、アプリケーションがオペレーティングシステムのより新しいバージョンの利点を活用するよう、及び該新しいバージョンに適合するように更新されるとき、一連のバージョンを有することがある。
【０１２２】
図１２Ｂにおいて、例示的なアプリケーションレコード１１２０が、“Ａｎｇｒｙ  Ｂｉｒｄｓ”の名前１１２４‐１と、０ｘ３ＦＦ８Ｄ４０７として１６進で表された一意ＩＤ１１２４‐２とを含む。ＡＮＧＲＹ  ＢＩＲＤＳアプリの属性１１２４‐３は、Ａｎｇｒｙ  Ｂｉｒｄｓの開発者の名前（ロビオエンターテインメント（Rovio  Entertainment）社）、Ａｎｇｒｙ  Ｂｉｒｄｓのテキストレビュー、Ａｎｇｒｙ  Ｂｉｒｄｓのジャンルインジケータ（例えば、「ゲーム」、又はサブジャンル「物理学ベースのゲーム」など）、Ａｎｇｒｙ  Ｂｉｒｄｓの格付け（例えば、星格付けなど）、テキスト説明（これは、開発者により提供できる）、ダウンロードの数（これは、最も最近のエディションに限定されてもよく、あるいはすべてのエディションについてであってもよい）、アクセスメカニズム（すでにインストールされているときにＡｎｇｒｙ  Ｂｉｒｄｓを開く方法、又は、まだインストールされていないときにＡｎｇｒｙ  Ｂｉｒｄｓをインストールする方法）、及び装置情報（例えば、最良動作のためのオペレーティングシステム、ハードウェア、及び解像度の最小限の要件）を含むことができる。
【０１２３】
図１３において、検索システムと推奨システムとの間の相互作用が示される。制御が１２０４において始まり、１２０４において、検索クエリが受信される場合、制御は１２０８に移り、そうでない場合、制御は１２０４にとどまる。１２０８において、制御は、検索クエリを処理することを開始し、推奨システムに推奨要求を送信する。１２１２において、制御は、推奨システムから応答を受信し、１２１６において、制御は、推奨応答からの推奨されたアプリを検索検討セットに組み込む。
【０１２４】
１２２０において、制御は、検索検討セット内のアプリの検索システムスコアを決定する。１２２４において、制御は、検索結果内に含めるために、最も高いスコア付けの推奨されたアプリのうち所定数を選択する。１２２８において、制御は、検索クエリに応答する。次いで、制御は１２０４に戻る。
【０１２５】
前述の説明は事実上単に例示であり、本開示、その適用、又は使用を制限するようには意図されない。本開示の広範な教示は、様々な形式で実装できる。ゆえに、本開示は具体的な例を含むが、本開示の真の範囲はそのように限定されるべきでなく、なぜならば、図面、明細書、及び別記の請求項を検証すると他の修正が明らかになるであろうからである。本明細書において用いられるとき、フレーズＡ、Ｂ、及びＣのうち少なくとも１つは、非排他的論理ＯＲを用いて論理的（Ａ  ＯＲ  Ｂ  ＯＲ  Ｃ）を意味するようみなされるべきであり、「Ａのうち少なくとも１つ、Ｂのうち少なくとも１つ、及びＣのうち少なくとも１つ」を意味するようみなされるべきではない。方法内の１つ以上のステップは、本開示の原理を変えることなく異なる順序で（又は同時に）実行できることが理解されるべきである。
【０１２６】
下記の定義を含む本出願において、用語「モジュール」又は用語「コントローラ」は、用語「回路」と置換されてもよい。用語「モジュール」は、特定用途向け集積回路（ＡＳＩＣ）；デジタル、アナログ、又は混合アナログ／デジタルディスクリート回路；デジタル、アナログ、又は混合アナログ／デジタル集積回路；組み合わせ論理回路；フィールドプログラマブルゲートアレイ（ＦＰＧＡ）；コードを実行するプロセッサ回路（共有、専用、又はグループ）；プロセッサ回路により実行されるコードを記憶するメモリ回路（共有、専用、又はグループ）；説明された機能性を提供する他の適切なハードウェアコンポーネント；又は、例えばシステムオンチップなどにおける、上記のうちいくつか又はすべての組み合わせを参照し、あるいはこれらの一部であり、あるいはこれらを含むことができる。
【０１２７】
モジュールは、１つ以上のインターフェース回路を含むことができる。いくつかの例において、インターフェース回路は、ローカルエリアネットワーク（ＬＡＮ）、インターネット、ワイドエリアネットワーク（ＷＡＮ）、又はこれらの組み合わせに接続される有線又は無線のインターフェースを含むことができる。本開示の任意の与えられたモジュールの機能性は、インターフェース回路を介して接続された複数のモジュール間で分散できる。例えば、複数のモジュールが、ロードバランシングを可能にすることができる。さらなる一例において、サーバ（さらに、リモート又はクラウドとして知られる）モジュールが、クライアントモジュールの代わりに何らかの機能性を達成してもよい。
【０１２８】
上記で用いられた用語のコードは、ソフトウェア、ファームウェア、及び／又はマイクロコードを含むことができ、プログラム、ルーチン、ファンクション、クラス、データ構造、及び／又はオブジェクトを参照することができる。用語の共有プロセッサ回路は、複数のモジュールからのいくつか又はすべてのコードを実行するシングルプロセッサ回路を包含する。用語のグループプロセッサ回路は、さらなるプロセッサ回路との組み合わせで、１つ以上のモジュールからのいくつか又はすべてのコードを実行するプロセッサ回路を包含する。複数のプロセッサ回路に対する参照は、別個のダイ上の複数のプロセッサ回路、単一ダイ上の複数のプロセッサ回路、シングルプロセッサ回路の複数のコア、シングルプロセッサ回路の複数のスレッド、又は上記の組み合わせを包含する。用語の共有メモリ回路は、複数のモジュールからのいくつか又はすべてのコードを記憶する単一メモリ回路を包含する。用語のグループメモリ回路は、さらなるメモリとの組み合わせで、１つ以上のモジュールからのいくつか又はすべてのコードを記憶するメモリ回路を包含する。
【０１２９】
用語のメモリ回路は、用語のコンピュータ読取可能媒体のサブセットである。用語のコンピュータ読取可能媒体は、本明細書において用いられるとき、媒体を通して（例えば、搬送波上などで）伝搬する一時的電気又は電磁信号を包含しない。用語のコンピュータ読取可能媒体は、ゆえに、有形かつ非一時的であると考えることができる。非一時的な、有形のコンピュータ読取可能媒体の、非限定的な例は、不揮発メモリ回路（例えば、フラッシュメモリ回路、消去可能プログラマブル読取専用メモリ回路、又はマスク読取専用メモリ回路など）、揮発メモリ回路（例えば、スタティックランダムアクセスメモリ回路、又はダイナミックランダムアクセスメモリ回路など）、磁気記憶媒体（例えば、アナログ若しくはデジタル磁気テープ、又はハードディスクドライブなど）、及び光学記憶媒体（例えば、ＣＤ、ＤＶＤ、又はＢｌｕ−ｒａｙ（登録商標）ディスクなど）である。
【０１３０】
本出願に説明される装置及び方法は、コンピュータプログラムにおいて具現化された１つ以上の特定の機能を実行するように汎用目的コンピュータを構成することにより作成される特別目的コンピュータにより部分的に又はフルに実施できる。上記で説明された機能ブロック又はフローチャート要素はソフトウェア仕様の役割を果たし、上記ソフトウェア使用は、熟練した技術者又はプログラマのルーチンワークによりコンピュータプログラムに翻訳できる。
【０１３１】
コンピュータプログラムは、少なくとも１つの非一時的な有形のコンピュータ読取可能媒体上に記憶されたプロセッサ実行可能命令を含む。コンピュータプログラムは、さらに、記憶されたデータを含み、あるいは該データに依存してもよい。コンピュータプログラムは、特別目的コンピュータのハードウェアと相互作用する基本入力／出力システム（ＢＩＯＳ）、特別目的コンピュータの特定装置と相互作用するデバイスドライバ、１つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーション等を包含することができる。
【０１３２】
コンピュータプログラムは、（ｉ）パースされる記述的テキスト、例えばＨＴＭＬ（ハイパーテキストマークアップ言語）又はＸＭＬ（拡張マークアップ言語）、（ｉｉ）アセンブリコード、（ｉｉｉ）コンパイラによりソースコードから生成されたオブジェクトコード、（ｉｖ）インタプリタによる実行のためのソースコード、（ｖ）ジャストインタイムコンパイラによるコンパイル及び実行のためのソースコード等を含むことができる。単に例として、ソースコードは、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ‐Ｃ、Ｈａｓｋｅｌｌ、Ｇｏ、ＳＱＬ、Ｒ、Ｌｉｓｐ、Ｊａｖａ（登録商標）、Ｆｏｒｔｒａｎ、Ｐｅｒｌ、Ｐａｓｃａｌ、Ｃｕｒｌ、ＯＣａｍｌ、Ｊａｖａｓｃｒｉｐｔ（登録商標）、ＨＴＭＬ５、Ａｄａ、ＡＳＰ（ａｃｔｉｖｅ  ｓｅｒｖｅｒ  ｐａｇｅｓ）、ＰＨＰ、Ｓｃａｌａ、Ｅｉｆｆｅｌ、Ｓｍａｌｌｔａｌｋ（登録商標）、Ｅｒｌａｎｇ、Ｒｕｂｙ、Ｆｌａｓｈ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｌｕａ、及びＰｙｔｈｏｎ（登録商標）を含む言語からのシンタックスを用いて書くことができる。
【０１３３】
請求項に列挙される要素のいずれも、要素がフレーズ「ミーンズフォー」を用いて、あるいは方法の請求項の場合にはフレーズ「オペレーションフォー」又は「ステップフォー」を用いて明示的に列挙されない限り、米国特許法第１１２条（ｆ）の意味におけるミーンズプラスファンクション要素であるようには意図されない。
【図１Ａ】
2018516401.tif 000003
【図１Ｂ】
2018516401.tif 000004
【図２】
2018516401.tif 000005
【図３】
2018516401.tif 000006
【図４Ａ】
2018516401.tif 000007
【図４Ｂ】
2018516401.tif 000008
【図５】
2018516401.tif 000009
【図６】
2018516401.tif 000010
【図７Ａ】
2018516401.tif 000011
【図７Ｂ】
2018516401.tif 000012
【図７Ｃ】
2018516401.tif 000013
【図８】
2018516401.tif 000014
【図９Ａ】
2018516401.tif 000015
【図９Ｂ】
2018516401.tif 000016
【図１０】
2018516401.tif 000017
【図１１】
2018516401.tif 000018
【図１２Ａ】
2018516401.tif 000019
【図１２Ｂ】
2018516401.tif 000020
【図１３】
2018516401.tif 000021
【国際調査報告】
2018516401.tif 000022
2018516401.tif 000023