IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ イーベイ インク.の特許一覧

<>
  • 特許-クラウド支援型クエリシステム 図1
  • 特許-クラウド支援型クエリシステム 図2
  • 特許-クラウド支援型クエリシステム 図3
  • 特許-クラウド支援型クエリシステム 図4
  • 特許-クラウド支援型クエリシステム 図5
  • 特許-クラウド支援型クエリシステム 図6
  • 特許-クラウド支援型クエリシステム 図7
  • 特許-クラウド支援型クエリシステム 図8
  • 特許-クラウド支援型クエリシステム 図9
  • 特許-クラウド支援型クエリシステム 図10
  • 特許-クラウド支援型クエリシステム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-07
(45)【発行日】2022-04-15
(54)【発明の名称】クラウド支援型クエリシステム
(51)【国際特許分類】
   G06F 16/9035 20190101AFI20220408BHJP
   G06F 16/907 20190101ALI20220408BHJP
【FI】
G06F16/9035
G06F16/907
【請求項の数】 11
(21)【出願番号】P 2021011820
(22)【出願日】2021-01-28
(62)【分割の表示】P 2019523759の分割
【原出願日】2017-11-07
(65)【公開番号】P2021077394
(43)【公開日】2021-05-20
【審査請求日】2021-02-26
(31)【優先権主張番号】15/345,627
(32)【優先日】2016-11-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506151501
【氏名又は名称】イーベイ インク.
【氏名又は名称原語表記】EBAY INC.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ハイネ、ルーク リチャード-アイバー
(72)【発明者】
【氏名】キアプル、モハンマドハディ
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特表2015-529908(JP,A)
【文献】特開2013-088906(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する方法であって、
少なくとも1つのプロセッサによって、クライアントデバイスからアイテムの特定に関する要求を含むクエリを受信するステップと、
前記クエリに応答したユーザから前記クエリにおいて示された前記アイテムに対応する説明提示を受信するステップと、
機械学習データベース内で前記説明提示を前記クエリにおいて示された前記アイテムに関連付けるステップと、
前記アイテムに基づくアイテムカテゴリを特定するべく、前記機械学習データベースに基づいて人工知能(AI)モジュールをトレーニングするステップと、を含むコンピュータが実行する方法。
【請求項2】
前記クエリに応答した、前記クエリにおいて示された前記アイテムに対応する複数の説明提示を受信するステップと、
前記アイテムに関する前記複数の説明提示を前記クライアントデバイスに送信するステップと、をさらに含む、請求項1に記載のコンピュータが実行する方法。
【請求項3】
前記クエリは、前記アイテムに対応する音声入力、画像データ、または前記音声入力および前記画像データの両方のうちの少なくとも1つを含む少なくとも1つのデータオブジェクトを含む、請求項1に記載のコンピュータが実行する方法。
【請求項4】
前記ユーザに関連するユーザの専門分野データを取得するステップと、
前記ユーザのユーザ専門分野データに基づいて前記ユーザに関連する信頼性スコアを決定するステップと、
前記信頼性スコアに少なくとも部分的に基づいて前記説明提示をランク付けするステップと、をさらに含む、請求項1に記載のコンピュータが実行する方法。
【請求項5】
システムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合された非一時的な機械可読記憶媒体と、を備え、前記非一時的な機械可読記憶媒体は、命令を含み、前記命令は、前記1つまたは複数のプロセッサによる実行時に、前記システムに、
クライアントデバイスからアイテムの特定に関する要求を含むクエリを受信すること、
前記クエリに応答したユーザから前記クエリにおいて示された前記アイテムに対応する説明提示を受信すること、
機械学習データベース内で前記説明提示を前記クエリにおいて示された前記アイテムに関連付けること、
前記アイテムに基づくアイテムカテゴリを特定するべく、前記機械学習データベースに基づいて人工知能(AI)モジュールをトレーニングすること、を含む動作を実行させる、システム。
【請求項6】
前記命令は、前記1つまたは複数のプロセッサによる実行時に、前記システムに、
前記クエリに応答した、前記クエリにおいて示された前記アイテムに対応する複数の説明提示を受信すること、
前記アイテムに関する前記複数の説明提示を前記クライアントデバイスに送信することと、を含む動作を実行させる、請求項に記載のシステム。
【請求項7】
前記クエリは、前記アイテムに対応する音声入力、画像データ、または前記音声入力および前記画像データの両方のうちの少なくとも1つを含む少なくとも1つのデータオブジェクトを含む、請求項に記載のシステム。
【請求項8】
前記命令は、前記1つまたは複数のプロセッサによる実行時に、前記システムに、
前記ユーザに関連するユーザの専門分野データを取得すること、
前記ユーザのユーザ専門分野データに基づいて前記ユーザに関連する信頼性スコアを決定すること、
前記信頼性スコアに少なくとも部分的に基づいて前記説明提示をランク付けすること、を含む動作を実行させる、請求項に記載のシステム。
【請求項9】
コンピュータが実行可能な命令を含む非一時的な機械可読記憶媒体であって、前記命令は、マシンのプロセッサによる実行時に、前記マシンに、
クライアントデバイスからアイテムの特定に関する要求を含むクエリを受信すること、
前記クエリに応答したユーザから前記クエリにおいて示された前記アイテムに対応する説明提示を受信すること、
機械学習データベース内で前記説明提示を前記クエリにおいて示された前記アイテムに関連付けること、
前記アイテムに基づくアイテムカテゴリを特定するべく、前記機械学習データベースに基づいて人工知能(AI)モジュールをトレーニングすること、を含む動作を実行させる、非一時的な機械可読記憶媒体。
【請求項10】
前記命令は、実行時に、前記マシンに、
前記クエリに応答した、前記クエリにおいて示された前記アイテムに対応する複数の説明提示を受信すること、
前記アイテムに関する前記複数の説明提示を前記クライアントデバイスに送信することと、を含む動作を実行させる、請求項に記載の非一時的な機械可読記憶媒体。
【請求項11】
前記命令は、実行時に、前記マシンに、
前記ユーザに関連するユーザの専門分野データを取得すること、
前記ユーザのユーザ専門分野データに基づいて前記ユーザに関連する信頼性スコアを決定すること、
前記信頼性スコアに少なくとも部分的に基づいて前記説明提示をランク付けすること、を含む動作を実行させる、請求項に記載の非一時的な機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の主題は、概してクライアント装置のユーザインターフェースに関する。特に、例示的な実施形態は、クラウド支援型(crowd assisted)の検索クエリを容易にするためにデータオブジェクトを受信および表示するためのユーザインターフェースに関する。
【背景技術】
【0002】
ネットワークシステムやネットワーク市場に電子的に保存されるデータの量は、非常に大きなものとなっている。電子的に保存されたデータの増加の大部分は、膨大な数の個人が販売用のアイテムを代表するアイテムリストを作成して投稿したことによる直接の結果である。これらネットワークシステムへの検索を試みた人であれば分かるように、電子的に保存されたデータは、利便性が良くかつ正確に検索できない限り実用的には役に立たない。電子データの量が膨大であることやアイテムリストの命名規則が矛盾することが多いことにより、標準の検索方法で特定のアイテムを見つけることが不可能ではないにしても困難となっている。
【図面の簡単な説明】
【0003】
図1】例示的な実施形態による、ネットワークを介してクラウド支援型クエリシステムとデータをやり取りするように構成されたクライアントサーバアーキテクチャを有するネットワークシステムを示すネットワーク図である。
図2】例示的な実施形態による、ネットワークシステムの一部として提供されるクラウド支援型クエリシステムの種々の機能コンポーネントを示すブロック図である。
図3】例示的な実施形態による、トレーニングデータベースを埋めて人工知能モジュールをトレーニングするための方法を示すフローチャートである。
図4】例示的な実施形態による、クラウド支援型クエリシステムによってユーザにより提供された説明提示をランク付けするための方法を示すフローチャートである。
図5】例示的な実施形態による、説明提示によってクエリ要求の未特定アイテムを特定することと引き換えに提供される、クエリ要求に関連付けられた報酬値を受け取るための方法を示すフローチャートである。
図6】例示的な実施形態による、要求ユーザおよび提示ユーザのイベントフローを示す図である。
図7】例示的な実施形態による、クエリ要求を受け取るためのユーザインターフェースを示すインターフェース図である。
図8】例示的な実施形態による、クエリ要求を受け取るためのクエリ要求インターフェースを示すインターフェース図である。
図9】例示的な実施形態による、クエリ提示を受け取るための提示インターフェースを示すインターフェース図である。
図10】例示的な実施形態による、クエリ提示を受け取るように構成された提示インターフェースを示すインターフェース図である。
図11】本明細書に記載された方法のうちの1つ以上をマシンに実行させるための命令セットを実行可能なコンピュータシステムの例示的な形態におけるマシンの概略図である。
【発明を実施するための形態】
【0004】
添付の図面の種々のものは、本開示の例示的な実施形態を単に例示するものであり、本開示の範囲を例示された実施形態に限定することを意図するものではない。むしろ、これらの例は、本開示の範囲内に含まれ得る代替形態、変形形態、および等価物を網羅することを意図する。
【0005】
本開示の発明の主題を実施するための特定の例示的な実施形態を詳細に説明する。以下では、主題の完全な理解を提供するために具体的な詳細を説明するが、これらの具体的な詳細の一部または全部がなくても実施形態を実施できることが理解され得る。
【0006】
本開示の態様は、ネットワークベースのクラウド支援型クエリシステムに関する。このネットワークベースのクラウド支援型クエリシステムは、ネットワークを介してクラウド支援型クエリシステムを実行するアプリケーションサーバと通信するクライアント装置を含む。例えば、クラウド支援型クエリシステムは、1つまたは複数のサーバマシンのグループであり得るか、またはそのグループを含み得る。クラウド支援型クエリシステムのユーザには、データオブジェクトを含むクエリを受け取るように構成されたグラフィックユーザインターフェース(GUI)が提示される。データオブジェクトは、ユーザに関心のある未特定アイテムの表現を含む。データオブジェクトは、グラフィック画像やオーディオデータなどのメディアコンテンツを含み得る。さらに、いくつかの例示的な実施形態は、未特定アイテムを説明するテキストデータを含み得る。
【0007】
クラウド支援型クエリシステムは、少なくとも2つの異なるGUI、すなわち、クライアント装置からクエリ要求を受け取るための第1のGUIと、クライアント装置からクエリに関する説明提示を受け取るための第2のGUIとをクライアント装置において生成して表示させるように構成されている。例えば、クライアント装置からクエリ要求を受け取るための第1のGUIは、クエリに付加されるメディアコンテンツ(例えば、グラフィック画像、写真、オーディオコンテンツ)やそのメディアコンテンツの特徴をさらに説明するテキストデータなどのデータオブジェクトをユーザが提供(例えば、アップロード)できるようにする1つまたは複数のフィールドを含み得る。メディアコンテンツは、ユーザは特定することができないがユーザに関心のあるアイテムを表し得る。例えば、ユーザによってアップロードされるメディアコンテンツは、椅子の写真および/または「革張りのラウンジチェア」を説明したテキスト文字列を含み得る。いくつかの例示的な実施形態では、GUIは、「家具」、「宝石類」、または「衣服」など、クエリのデータオブジェクトを分類するためのユーザ選択可能オプションをさらに含み得る。単一のデータオブジェクトは、1つまたは複数の関連するデータカテゴリを有し得る。
【0008】
第2のGUIは、ユーザによってアップロードされたクエリにおけるデータオブジェクトの表現の提示を含み、カテゴリによって編成され得るとともに、データオブジェクトによって表された未特定アイテムに詳しいユーザからの説明提示を受け取るためのフィールドを含むように構成され得る。例えば、説明提示は、データオブジェクトによって表された未特定オブジェクトを説明するテキストの文字列(例えば、「イームズチェア(Eames Chair)」)とともにそのデータオブジェクトの説明に適合するアイテムへの参照(例え
ば、類似アイテムのアイテムリストへのリンク)を含み得る。提示ユーザは、第2のGUI内に表示されたデータオブジェクトの表現を閲覧し、第2のGUIへのユーザ入力を介して説明提示を提供することができる。
【0009】
クラウド支援型クエリシステムは、要求ユーザからのデータオブジェクトを含むクエリを第1のクライアント装置から第1のGUIを介して受信する。データオブジェクトは、要求ユーザにとって興味のある未特定アイテムを表すメディアコンテンツを含む。クエリを受信すると、クラウド支援型クエリシステムは、そのクエリからデータオブジェクトを解析し、データオブジェクトの属性に基づいてそのデータオブジェクトをアイテムカテゴリに割り当てる。例えば、この属性は、データオブジェクト自体の特徴(例えば、画像の画像データ)や、要求ユーザによって行われたアイテムカテゴリの選択(例えば、「衣服」、「家具」など)を含み得る。
【0010】
クエリからデータオブジェクトを受信して分類すると、クラウド支援型クエリシステムは、提示ユーザから説明提示を受け取るために、クエリを表示するための要求を第2のGUI内にて受け付けることができる。例えば、提示ユーザは、指定されたカテゴリ(例えば、「服」、「家具」)のクエリからのデータオブジェクトの表現をクラウド支援型クエリシステムに表示させるように要求するユーザ入力を第2のGUI内に行い得る。このデータオブジェクトの表現は、説明提示を提供するためのフィールドを含む。提示ユーザは、データオブジェクトを閲覧して、テキスト文字列を含む説明提示とともに、存在するアイテムリストへの参照を提供し得る。
【0011】
クラウド支援型クエリシステムは、要求ユーザのクライアント装置に対して通知を表示するとともに、クエリに対して受け取った説明提示のセットの表現を表示させ得る。これにより、要求ユーザは、利用可能な説明提示をレビューし、所望の未特定アイテムに一致する「最良の」説明を選択することができる。要求ユーザは、提示ユーザによって提供された説明提示を閲覧し、画像内に示された未特定アイテムに最もよく一致する説明提示を選択することができる。例えば、要求ユーザは、ユーザ入力を介して説明提示を明示的に選択することができる。あるいは、いくつかの実施形態では、クラウド支援型クエリシステムは、要求ユーザにより行われた、説明提示を含む検索要求または購入取引を検出することができる。
【0012】
いくつかの例示的な実施形態では、要求ユーザから受け付けたクエリは、要求ユーザによって割り当てられた報酬値を含む。この報酬値は、説明提示と引き換えに提示ユーザに提供される。これにより、要求ユーザは、クエリに対して提供された説明提示をレビューして「最良の」一致を選択することができる。この選択を受け付けることに応答して、報酬値が、対応する提示ユーザにクラウド支援型クエリシステムによって与えられる。
【0013】
要求ユーザによる説明提示の選択を受け付けると、クラウド支援型クエリシステムは、データオブジェクトに関連付けられた説明提示をランク付けする。例えば、要求ユーザによって選択された説明提示は、要求ユーザによって選択されなかった説明提示よりも高くランク付けされ得る。いくつかの例示的な実施形態では、要求ユーザは、特定の説明提示がクエリと一致しないことを示すユーザ入力を行ってもよく、また任意で、その説明提示を削除すべきであることを示すユーザ入力を行ってもよい。
【0014】
さらなる例示的な実施形態では、説明提示はさらに、提示ユーザの属性に基づきランク付けされてもよい。ユーザ属性には、提示ユーザが説明提示を投稿する頻度や、提示ユーザの説明提示が選択される割合や、提示ユーザの専門分野(例えば、「衣服」、「家具」、「技術」)などが含まれ得る。例えば、頻繁に選択される説明提示を投稿する提示ユーザからの説明提示は、初めての提示ユーザによる説明提示よりも高くランク付けされ得る。
【0015】
ユーザの観点による実例として、以下の例について検討する。ユーザは、自分が好きなアイテム、例えば椅子を見る場合、そのアイテムを見つけるためにネットワーク市場内で何を検索すべきかを判断できない。ユーザは、モバイルデバイスで椅子の写真を撮り、その椅子の画像をクラウド支援型検索システムのGUIにアップロードする。また、ユーザは、椅子の写真をアップロードする際に、椅子のアイテムカテゴリ(例えば、家具)や自分が探しているものをさらに表すための説明情報(例えば、「革張りで60年代のモダンなラウンジチェア」)を示すユーザ入力を行い得る。ユーザは、椅子の写真に「報奨金」(例えば、報酬値)を付ける。この報奨金は、ユーザがまさに探しているものを特定する説明提示を提供する提示ユーザのグループと引き換えに提供される。例えば、説明提示が要求ユーザによって選択された場合に、その報奨金が提示ユーザに与えられる。
【0016】
椅子の写真をGUIにアップロードした後、クラウド支援型クエリシステムは(例えば、アイテムカテゴリに基づき)他の類似アイテムが入れられているフィード内に椅子の表現を表示させる。提示ユーザは、フィードを閲覧して、アイテムについてそれらを特定可能な説明提示を提供し得る。例えば、提示ユーザは、要求ユーザによってアップロードされた椅子の写真へと移動し、その写真および説明情報に基づいて、何を検索しているのかを知ることができる。そして、提示ユーザは、写真内の椅子に一致するテキスト文字列あるいはその椅子に一致するアイテムまたはアイテムリストへの参照を含む説明提示を提供することができる。提示ユーザは、「イームズチェア」を示すテキスト文字列、または一致するアイテムに関するアイテムリストへと導くユニフォームリソースロケータ(URL)を提供し得る。こうして、提示ユーザは、要求ユーザから受け取った椅子の写真の表現に対する説明提示を提供する。
【0017】
クラウド支援型クエリシステムは、1つまたは複数の説明提示を提示ユーザから受け取ったことを要求ユーザに通知する。要求ユーザは、自身が探していたアイテムに最も緊密に一致する利用可能な「最良の」説明を選択するために、利用可能な説明提示をレビューする。要求ユーザは、説明提示が間違っている場合を示す入力や、説明提示が正しい場合を示す入力を提供することができる。クラウド支援型クエリシステムは、説明提示のうちの1つ以上を要求ユーザが選択することに応答して、ネットワーク市場の検索または検索エンジンを実行し得る。そして、クラウド支援型クエリシステムは、要求ユーザが探していたアイテムに「イームズチェア」に関する説明提示が一致すると判断すると、対応する提示ユーザに報奨金を与える。
【0018】
クラウド支援型クエリシステムは、椅子の写真が「イームズチェア」であることを説明提示が示していると判断すると、人工知能(AI)データベース内でその説明提示を椅子の写真に関連付ける。このように、クラウド支援型クエリシステムは、説明提示とデータオブジェクト(例えば、要求ユーザから要求された写真やメディアアイテム)をAIデータベース内に入力する。最終的に、クラウド支援型クエリシステムは、十分な入力(例えば、要求および提示)を用いて画像検索AIをトレーニングすることにより、視覚検索のみに基づいてアイテムを特定できるようになり、これにより、ユーザがアイテムの画像を提供すると、システムは画像のみに基づいてアイテムが何であるかを、単に「椅子」または「シャツ」とするよりもはるかに優れた特定性で特定できるようになる。
【0019】
図1は、例示的な実施形態による、ネットワーク102を介してアプリケーションサーバ104とデータをやり取りするように構成されたクライアントサーバアーキテクチャを有するネットワークシステム100を示すネットワーク図である。図示されたネットワークシステム100は、クライアントサーバアーキテクチャを有するが、本発明の主題は、勿論そのようなアーキテクチャに限定されず、例えば、イベント駆動型、分散型、またはピアツーピアのアーキテクチャシステムなどにも同様に適用することができる。さらに、不必要な詳細で本発明の主題を不明瞭にすることを避けるために、本発明の主題の理解を伝えることに密接に関係しない種々の機能コンポーネントは図1から省略されている。また、ネットワークシステム100の種々の機能コンポーネントを単数で説明するが、種々の機能コンポーネントのうちの任意の1つを複数として採用することができる。
【0020】
図示されるように、ネットワークシステム100は、ネットワーク102を介してクライアント装置106および第三者サーバ105と通信するアプリケーションサーバ104を含む。アプリケーションサーバ104は、ネットワークシステム100およびそのユーザに関連付けられた種々の機能および特徴に関連するネットワークシステム100内のエンティティと通信してデータを交換する。これらのデータ交換は、ネットワークシステム100のコンテンツやユーザに関するデータの送受信(通信)や処理を含み得る。
【0021】
アプリケーションサーバ104は、ネットワーク102(例えば、インターネット)を介して、クライアント装置106,108などのクライアント装置にサーバ側機能を提供するためのクラウド支援型クエリシステム110を含む。
【0022】
クライアント装置106,108は、コンテンツを表示するとともにユーザ入力を受け取るための入出力コンポーネント(例えば、タッチスクリーン)と、アプリケーションサーバ104と相互作用するように特別に設計されたクラウド支援型クエリアプリケーション112とを含む任意の種類のモバイルデバイス(例えば、スマートフォン、タブレットコンピュータ、またはウェアラブルデバイス)とすることができる。例えば、ユーザ107またはユーザ109は、クライアント装置106,108上で実行するクラウド支援型クエリアプリケーション112を使用して、アプリケーションサーバ104により生成されたGUIを介して、クエリまたはそのクエリに対する提示をアップロードすることができる。いくつかの実施形態では、クラウド支援型クエリアプリケーション112は、クライアント装置106によって実行されたときに本明細書に記載の方法のうちのいずれかを実行するようにクライアント装置106を構成することができる。
【0023】
アプリケーションサーバ104に注目すると、アプリケーションサーバ104は、クラウド支援型クエリシステム110およびデータベース120を含む。いくつかの実施形態では、アプリケーションサーバ104は、アプリケーションプログラミングインターフェース(API)サーバ、および/または、クラウド支援型クエリシステム110に(例えば、有線または無線インターフェースを介して)結合されクライアント装置106,108にそれぞれプログラムインタフェースおよび/またはウェブインターフェースを提供するウェブサーバを含み得る。いくつかの実施形態では、アプリケーションサーバ104は、クラウド支援型クエリシステム110に結合されデータベース120へのアクセスを支援するデータベースサーバも含み得る。データベース120は、アプリケーションサーバ104の内部または外部に位置し得る複数のデータベースを含み得る。
【0024】
クラウド支援型クエリシステム110は、アプリケーションサーバ104にアクセスするユーザ(例えば、ユーザ107)に対してナビゲーションサービスを提供するサーバ側ナビゲーションメニューアプリケーションなどの1つまたは複数のアプリケーションをホストする。例えば、ユーザ107は、クライアント装置106で実行されるクラウド支援型クエリアプリケーション112を使用して、データオブジェクトのセット(例えば、メディアコンテンツ、報酬値など)を含むクエリ要求をアップロードするためのインターフェースを表示させることができる。ユーザ107は、例えば、クライアント装置106のインターフェースを介して画像や説明情報などをアップロードすることができる。ユーザ109は、クライアント装置108で実行されるクラウド支援型クエリアプリケーション112を使用して、ユーザから受け取ったクエリ要求を表示するように構成されたインターフェースを介して説明提示を提供することができる。例えば、インターフェースは、閲覧可能なフィード内の1つまたは複数のクエリ要求の提示を含み得る。
【0025】
データベース120は、ネットワークシステム100およびそのユーザに関連付けられた種々の機能および特徴に関連するデータを記憶する。例えば、データベース120は、アイテムリストおよびネットワーク市場の在庫情報を記憶するデータベースとともに、クラウド支援型クエリシステム110のAIモジュールをトレーニングするためのトレーニングデータを含むAIデータベースを含み得る。各ユーザアカウントのレコードは、特定のユーザの特徴を記述した情報を含むデータ構造である。
【0026】
図1はさらに、クラウド支援型クエリシステム110またはクライアント装置106のユーザに情報またはサービスを提供可能な第三者サーバ105で実行される第三者アプリケーション124を示す。例えば、第三者アプリケーション124は、ネットワークベースの市場などのクライアント装置106のユーザと取引を行うかまたはそれらのユーザにサービスを提供する任意の組織と関連付けられ得る。いくつかの実施形態では、ユーザに提供された報奨金は償還されてもよいし、あるいは第三者アプリケーション124とともに使用されてもよい。
【0027】
図2は、クラウド支援型クエリシステム110の複数のコンポーネントを示すブロックである。いくつかの例示的な実施形態によれば、これらのコンポーネントは、データオブジェクトを含むクエリ要求を受け取るためのクエリ要求インターフェースをクライアント装置106に提供し、クライアント装置108の提示インターフェース内にクエリ要求のフィードを生成して表示させ、説明提示を受け取って、その説明提示をデータベース120内のデータオブジェクトに関連付け、画像ベース検索を行うためのAIモジュールをトレーニングするようにクラウド支援型クエリシステム110を構成する。図示されるクラウド支援型クエリシステム110は、通信モジュール205と、分類化モジュール210と、提示モジュール215と、人工知能(AI)モジュール220と、ランク付けモジュール225とを含み、これらはすべて(例えば、バス、共有メモリ、またはスイッチを介して)互いに通信するように構成されている。これらのモジュールの任意の1つ以上は、1つまたは複数のプロセッサ230を使用して(例えば、そのような1つまたは複数のプロセッサをそのモジュールについて説明された機能を実現するように構成することによって)実装され得る。したがって、これらのモジュールの任意の1つ以上は、複数のプロセッサ230のうちの1つ以上を含み得る。
【0028】
上記したモジュールのうちの任意の1つ以上は、専用ハードウェアのみ(例えば、マシンの複数のプロセッサ230のうちの1つ以上)か、またはハードウェアとソフトウェアとの組み合わせを使用して実装され得る。例えば、クラウド支援型クエリシステム110の上記したモジュールは、そのモジュールについて本明細書に説明する動作を実行するように構成された複数のプロセッサ230のうちの1つ以上(例えば、マシンの1つまたは複数のプロセッサによるサブセットか、またはマシンの1つまたは複数のプロセッサ内のもの)の構成を物理的に含み得る。別の例として、クラウド支援型クエリシステム110のモジュールは、そのモジュールについて本明細書で説明する動作を実行する1つまたは複数のプロセッサ230(例えば、マシンの1つまたは複数のプロセッサ内のもの)の構成を実現するソフトウェア、ハードウェア、またはその両方を含み得る。したがって、クラウド支援型クエリシステム110の異なるモジュールは、異なる時点においてそのようなプロセッサ230の異なる構成またはそのようなプロセッサ230の単一の構成を含み得るか構成し得る。さらには、クラウド支援型クエリシステム110の任意の2つ以上のモジュールを単一のモジュールに組み合わせてもよいし、あるいは単一のモジュールについて本明細書で説明する機能を複数のモジュールに細分化してもよい。さらに、種々の例示的な実施形態によれば、本明細書に記載のモジュールは、単一のマシン、単一のデータベース、または単一のデバイス内に実装されているが、複数のマシン、複数のデータベース、または複数のデバイスに分散されていてもよい。
【0029】
図3は、例示的な実施形態による、トレーニングデータベースを埋めてAIモジュールをトレーニングするための方法300を示すフローチャートである。方法300は、この方法300のステップがクライアント装置106またはクラウド支援型クエリシステム110の機能コンポーネント(例えば、モジュール)によって部分的にまたは全体的に実行され得るように1つまたは複数のプロセッサ(例えば、図2のプロセッサ230)が実行するためのコンピュータ可読命令で具現化され得る。以下では、参照による例として方法300を説明するが、方法300は他の種々のハードウェア構成に展開することができ、クライアント装置106またはクラウド支援型クエリシステム110の機能コンポーネントに限定されることを意図していない。
【0030】
動作305において、通信モジュール205は、クライアント装置106からのクエリ要求を受信する。クエリ要求は、要求ユーザにとって関心のあるアイテムを表す1つまたは複数のデータオブジェクトを含み得る。関心のあるアイテムとは、ユーザは検索したいがどのように検索してよいか分からない未特定アイテムであり得る。例えば、関心のあるアイテムとは、ユーザ107が見て写真を撮る椅子であり得る。クラウド支援型クエリシステム110は、クライアント装置106にクエリ要求インターフェースを表示させる。クエリ要求インターフェースは、アイテムを表すデータオブジェクトをアップロードするためのフィールドを含む。例えば、データオブジェクトは、画像やテキスト文字列とともにアイテムカテゴリの選択を含み得る。いくつかの例示的な実施形態では、ユーザ107は、クエリ要求に割り当てられ、そのクエリ要求に示されたアイテムが提示ユーザによって特定されたことと引き換えに提供される報酬値をさらに提供し得る。
【0031】
動作310において、分類化モジュール210は、クエリ要求のデータオブジェクトに基づいてクエリ要求をアイテムカテゴリに割り当てる。例えば、分類化モジュール210は、画像およびオブジェクト認識技術をもとに(例えば、ユーザ107がアイテムカテゴリを提供していない場合は)画像データのみに基づいてクエリ要求を割り当て得る。例えば、AIモジュール220は、ユーザ107によって提供された画像に示されたアイテムに最も良く一致するアイテムカテゴリを特定するために畳み込みニューラルネットワークを適用し得る。いくつかの実施形態では、分類化モジュール210は、ユーザ107によって選択されたカテゴリ、またはユーザ107によって提供されたテキスト記述に基づいてクエリ要求を単純に分類化し得る。
【0032】
動作315において、提示モジュール215は、クライアント装置108に提示インターフェースを表示させる。ユーザ109は、例えば、要求ユーザからの1つまたは複数のクエリ要求に対して説明提示を提供することを希望する提示者であり得る。ユーザ109は、クエリ要求カテゴリを選択し得る。この選択に応答して、提示モジュール215は、選択されたクエリ要求カテゴリに割り当てられた1つまたは複数のクエリ要求の表現を含むフィードを表示させる。クエリ要求の表現は、各クエリ要求に関連付けられた画像と、対応する報酬値と、要求ユーザがクエリ要求で提供した任意のテキスト情報とを含み得る。ユーザ109は、フィードをスクロールして、説明提示を行いたい1つまたは複数のクエリ要求を選択し得る。
【0033】
動作320において、通信モジュール205は、ユーザ109からの説明提示を受信する。例えば、ユーザ109は、クライアント装置108の提示インターフェースに提示されたクエリ要求のセットの中から1つのクエリ要求を選択し得る。クエリ要求のセットの中からクエリ要求を選択したことに応答して、提示モジュール215は、そのクエリ要求に示されたアイテムを特定する説明提示を提供するための1つまたは複数のフィールドをユーザ109に対して表示する。この説明提示は、テキスト文字列や、第三者サーバ105におけるアイテムへの参照(例えば、URL)を含み得る。
【0034】
動作325において、分類化モジュール210は、ユーザ109により提供された説明提示をデータベース(例えば、データベース120)内のクエリ要求のデータオブジェクトと関連付ける。例えば、データベース120は、テキストまたはオーディオ入力(例えば、自然言語音声)に基づいて、あるいは画像データのみに基づいてアイテムを正確に特定するためにAIモジュール220をトレーニングするのに使用可能なAIデータベースを含み得る。動作330において、クラウド支援型クエリシステム110は、データベース120に基づいてAIモジュール220をトレーニングする。例えば、クラウド支援型クエリシステム110は、データベース120を使用して、説明提示と画像データとの間の相関関係を決定し得る。これにより、その相関関係を適用してAIモジュール220をトレーニングすることができる。
【0035】
図4は、例示的な実施形態による、クラウド支援型クエリシステム110によってユーザ109により提供された説明提示をランク付けするための方法400を示すフローチャートである。方法400は、この方法400のステップがクライアント装置106またはクラウド支援型クエリシステム110の機能コンポーネント(例えば、モジュール)によって部分的にまたは全体的に実行され得るように1つまたは複数のプロセッサ(例えば、プロセッサ230)が実行するためのコンピュータ可読命令により具現化され得る。以下では、参照による例として方法400を説明するが、方法400は他の種々のハードウェア構成に展開することができ、クライアント装置106またはクラウド支援型クエリシステム110の機能コンポーネントに限定されることを意図していない。
【0036】
方法400の1つまたは複数の動作405,410,415は、いくつかの例示的な実施形態によれば、クラウド支援型クエリシステム110がAIモジュール220をトレーニングする方法300の一部(例えば、先行タスク、サブルーチン、または一部分)として実行することができる。
【0037】
動作405において、図3で説明した動作320においてユーザ109から説明提示を受信することに応答して、通信モジュール205は、ユーザ109に関連付けられたユーザプロファイルにアクセスしてユーザプロファイルデータを取得する。ユーザプロファイルデータは、ユーザ109が説明提示を提供したクエリ要求カテゴリのリスト、要求者によって選択されたユーザ109の説明提示の数、およびユーザ109の専門分野を含み得る。
【0038】
動作410において、ランク付けモジュール225は、ユーザプロファイルデータに基づいて、クエリ要求に対してユーザ109によって提供された説明提示の信頼性スコアを計算する。ランク付けモジュール225は、ユーザ109による説明提示の数、要求者によって選択されたユーザ109の説明提示の数、およびユーザ109の専門分野に基づいて、信頼性スコアを計算し得る。例えば、ユーザ109が有する専門分野は、そのユーザ109が経験または知識を有するアイテムカテゴリを示す。専門分野は、ユーザ109による明示的な選択または指示に基づいて決定されてもよいし、あるいはユーザフィードバックに基づいて決定されてもよい(例えば、ユーザは特定のアイテムカテゴリでユーザ109を宣伝してもよい)。
【0039】
説明提示の信頼性スコアを計算した後、動作415において、ランク付けモジュール225は、クエリ要求に関連付けられている1つまたは複数の説明提示に対して説明提示をランク付けする。例えば、多数の提示ユーザが任意の1つのクエリ要求に対して説明提示を提供し得る。クラウド支援型クエリシステム110は、ランク付けモジュール225によって計算された信頼性スコアに基づいて説明提示をランク付けすることで、正確な説明提示を表面化してより迅速に特定することが可能となる。いくつかの例示的な実施形態では、提示モジュール215は、ランク付けモジュール225によるランク付けに基づいた順序で説明提示をユーザ107に表示させる。
【0040】
図5は、例示的な実施形態による、説明提示によってクエリ要求の未特定アイテムを特定することと引き換えに提供される、クエリ要求に関連付けられた報酬値を受け取るための方法500を示すフローチャートである。方法500は、この方法500のステップがクライアント装置106またはクラウド支援型クエリシステム110の機能コンポーネント(例えば、モジュール)によって部分的にまたは全体的に実行され得るように1つまたは複数のプロセッサ(例えば、プロセッサ230)が実行するためのコンピュータ可読命令により具現化され得る。以下では、参照による例として方法500を説明するが、方法500は他の種々のハードウェア構成に展開することができ、クライアント装置106またはクラウド支援型クエリシステム110の機能コンポーネントに限定されることを意図していない。
【0041】
方法500の1つまたは複数の動作505,510,515は、いくつかの例示的な実施形態によれば、クラウド支援型クエリシステム110がクライアント装置106においてナビゲーションメニューを生成して表示させる方法300の一部(例えば、先行タスク、サブルーチン、または一部分)として実行することができる。
【0042】
動作505において、通信モジュール205は、クライアント装置106からクエリ要求とともに報酬値を受信する。クエリ要求は、ユーザ107によって指定された報酬値を含む1つまたは複数のデータオブジェクトを含み得る。報酬値は、クエリ要求に関連付けられたアイテム(またはサービス)の特定と引き換えにユーザ107によって提示される量である。例えば、ユーザ107は、ユーザ107からのクエリ要求で表されたアイテムを特定することができるユーザに対して、またはユーザ107からのクエリ要求で表されたアイテムと一致する説明提示を提供することができるユーザに対して1ドルを提示し得る。
【0043】
動作510において、ユーザ107は、ユーザ109を含むユーザから受信した1つまたは複数の説明提示の中から1つの説明提示を選択する。例えば、提示ユーザは、説明提示を提供するためにクラウド支援型クエリシステム110によって表示された提示インターフェース内でユーザ107からのクエリ要求を見ることができる。クラウド支援型クエリシステム110は、受信した説明提示を要求ユーザ(ユーザ107)に通知して、その説明提示の表示を含み得る通知をクライアント装置106に表示させる。これにより、ユーザ107は、受信した説明提示をレビューして、クエリ要求に一致する「最良の」説明提示を選択することができる。
【0044】
いくつかの例示的な実施形態では、ユーザ107による選択は、提示モジュール215によって提供されるインターフェースを介した説明提示の明示的な選択に基づくものとすることができる。例えば、提示モジュール215は、ユーザ107が選択可能な1つまたは複数の説明提示のセットを含むインターフェースをクライアント装置106に表示させ得る。さらなる実施形態では、この選択は、ユーザ107による検索要求または取引に基づくものであってもよい。例えば、ユーザ107は、説明提示のセットの中の1つの説明提示に基づいて検索要求を行ったり、またはそれら説明提示の中の1つの説明提示(例えば、その説明提示を含むタイトルまたは説明を含む)によって特定されたアイテムを購入したりしてもよい。
【0045】
動作515において、ユーザ107から説明提示の選択を受信すると、クラウド支援型クエリシステム110は、選択された説明提示に基づいて適切なユーザに報酬値を与える。例えば、クラウド支援型クエリシステム110は、選択された説明提示を提供したユーザに報酬値を与え得る。クラウド支援型クエリシステム110は、例えば、要求ユーザに関連付けられた金融口座にアクセスして報酬値を取得し、選択された説明提示を提供したユーザにその報酬値を送信し得る。
【0046】
図6は、例示的な実施形態による、要求ユーザ(例えば、ユーザ107)および提示ユーザ(例えば、ユーザ109)のイベントフロー600を示す図である。イベントフロー600は、クライアント装置106,108を介してユーザ107,109により実行され得る。
【0047】
要求ユーザ(例えば、ユーザ107)は、クラウド支援型クエリシステム110にクエリ要求を申請する。このクエリ要求を申請するために、動作605において、ユーザ107は、アイテムの写真を撮り(または選択して)、その写真を(例えば、クライアント装置106を介して)クラウド支援型クエリシステム110にアップロードする。いくつかの実施形態では、ユーザ107は、写真および/またはそのアイテムを示すまたは説明するメディアアイテムをアップロードすることができる。例えば、写真の代わりに(あるいは補充として)、ユーザ107は、アイテムを説明する音声またはテキストデータ(例えば、「赤いパティオチェア(patio chair)で脚が3つのもの」と説明するテキストまた
は音声)を提供することができる。
【0048】
クエリ要求とともに写真をアップロードした後、動作615において、ユーザ107は要求の詳細を編集する。この要求の詳細は、アイテムカテゴリ情報と、アイテムの説明を含むテキストデータとを含む。例えば、ユーザ107は、クエリ要求に関するアイテムカテゴリ(例えば、「家具」)を選択し得る。
【0049】
動作620において、提示ユーザ(例えば、ユーザ109)は、クライアント装置108でクラウド支援型クエリアプリケーション112を起動する。提示ユーザが動作625においてカテゴリを選択すると、動作630においてクラウド支援型クエリシステム110は、ユーザ109によって選択されたアイテムカテゴリに関連付けられたクエリ要求のフィードを表示させる。いくつかの実施形態では、提示ユーザは、複数のアイテムカテゴリを選択してフィード内でそれらを同時に見ることができる。
【0050】
動作635において、提示ユーザは、要求ユーザ(例えば、ユーザ107)によって申請されたクエリ要求などのクエリ要求を選択する。クラウド支援型クエリシステム110は、この選択を受け付けると、要求ユーザによってアップロードされた写真の表現や説明情報などの追加のアイテム詳細を含むアイテム詳細ページを表示させる。動作640において、提示ユーザは、クエリ要求に対する提示を開始するための入力を行う。動作645において、提示ユーザは、選択されたクエリ要求に関連付けられた提示を入力してアップロードする。この提示は、テキスト文字列や、第三者サーバ105に位置するアイテムへの参照を含み得る。動作650において、提示ユーザ109は提示プロセスを終了する。いくつかの実施形態では、動作655において、提示ユーザは、選択されたクエリ要求に関連付けられた他の提示ユーザからの1つまたは複数の提示を閲覧することができる。提示プロセスの終了に応答して、クラウド支援型クエリシステム110は、クライアント装置106に提示される通知を介して要求ユーザに提示を通知する。
【0051】
動作660において、要求ユーザは、アップロードされたクエリ要求に関連付けられたすべての提示を閲覧することができる。これらの提示は、要求ユーザが提示を「好む」または「好まない」を示すことができるようなフィードで要求ユーザに表示され得る。例えば、動作665において、要求ユーザは提示を「好まない」を示し得る。この場合、その提示は提示セットから削除される。あるいは、動作670において、要求ユーザは、提示を「好む」を示し得る。この場合、その提示がクエリ要求の写真にリンク付けされる。
【0052】
図7は、例示的な実施形態による、クエリ要求を受け取るためのユーザインターフェース700を示すインターフェース図である。ユーザインターフェース700は、クライアント装置106などのタッチ対応モバイルデバイス上に提示され得る。図示されたユーザインターフェース700は、検索要求フィールド705と、自動クエリ提示710と、ユーザ107からクエリ要求を受け取るためのグラフィックアイコン715とを含む。
【0053】
ユーザ107は、ユーザインターフェース700の検索要求フィールド705内に検索要求を提供することができる。検索要求が提供されると、クラウド支援型クエリシステム110は、その検索要求に基づいてクエリ提示710のセットを表示し得る。クエリ提示710のセットは、ユーザ107の取引履歴と、検索要求フィールド705に入力された検索要求とに基づき得る。これに代えて、ユーザ107は、グラフィックアイコン715への入力を介してクエリ要求を開始することを選択してもよい。
【0054】
図8は、例示的な実施形態による、クエリ要求を受け取るためのクエリ要求インターフェース800(例えば、クライアント装置106に表示される)を示すインターフェース図である。図示されたクエリ要求インターフェース800は、要求ユーザ(例えば、ユーザ107)によってアップロードされた画像805と、クエリ要求に割り当てる報酬値を受け付けるための報酬入力フィールド810と、クエリ要求に関連付けられたアイテムカテゴリの選択を受け付けるためのカテゴリ選択メニュー815との表示を含む。
【0055】
いくつかの例示的な実施形態では、クエリ要求インターフェース800は、例えば図7のグラフィックアイコン715を介してクエリ要求を開始するユーザ入力を受け付けたことに応答してクライアント装置106に表示される。クエリ要求インターフェース800は、クエリ要求を受け付けるように構成されている。クエリ要求は、画像805、オブジェクトカテゴリ、テキストデータ、報酬値などのデータオブジェクトを含む。例えば、ユーザ107は、アップロードする画像を選択した後、その画像(またはその画像の特定の特徴)を説明する追加のテキストデータを提供することができる。ユーザ107は、報酬入力フィールド810内に報酬値を提供し、カテゴリ選択メニュー815を介してアイテムカテゴリを指定することができる。クラウド支援型クエリシステム110は、例えば、カテゴリ選択メニュー815の選択を受け付けると、ユーザ107が1つ以上選択可能なオブジェクトカテゴリのセットを表示し得る。
【0056】
図9は、例示的な実施形態による、クエリ提示を受け取るように構成された提示インターフェース900(例えば、クライアント装置108に表示される)を示すインターフェース図である。図9に示されるように、図示された提示インターフェース900は、アイテムカテゴリ905を代表するグラフィック要素のセットを含む。提示ユーザ(例えば、ユーザ109)は、アイテムカテゴリ905のセットの中から1つのアイテムカテゴリを選択することができる。アイテムカテゴリが選択されると、クラウド支援型クエリシステム110は、選択されたアイテムカテゴリに割り当てられた対応するクエリ要求のセットを表示させる。これにより、提示ユーザは、クエリ要求のセットを見て、対応する報酬値との引き換えにクエリ提示を提供することができる。
【0057】
図10は、例示的な実施形態による、クエリ提示を受け取るように構成された提示インターフェース900を示すインターフェース図である。図示された提示インターフェース900は、要求ユーザ(例えば、ユーザ107)によって申請されたクエリ要求の画像805の描写を含む。提示ユーザ(例えば、ユーザ109)は、テキストデータ1005を提供することにより、提示インターフェース900を介してクエリ提示を提供することができる。いくつかの例示的な実施形態では、ユーザ109は、第三者サーバ105に位置するアイテムへの参照を提供することができる。ユーザ109は、テキストデータ1005を提供した後、提示アイコン1010に対する入力を行うことができ、この入力に応答して、クラウド支援型クエリシステム110は、クエリ要求に関連付けられたメモリ位置におけるクエリ提示と、画像805とをデータベース120内でインデックス付けすることができる。
【0058】
いくつかの例示的な実施形態では、クラウド支援型クエリシステム110は、提示アイコン1010に対する入力を受け取ることに応答して、要求ユーザ(例えば、ユーザ107)にクエリ提示を通知するためにクライアント装置106に通知を表示させる。これにより、要求ユーザは、クエリ提示を見て、「好む」を示したり、「好まない」を示したり、またはデータベース120からクエリ提示を削除したりすることができる。
【0059】
[マシンアーキテクチャ]
図11は、いくつかの例示的な実施形態による、機械可読媒体(例えば、機械可読記憶媒体)から命令を読み取り、本明細書に記載する方法のうちの任意の1つ以上を実行可能なマシン1100のコンポーネントを示すブロック図である。具体的には、図11は、本明細書に記載する方法のうちの任意の1つ以上をマシン1100に実行させるための命令1116(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、または他の実行可能コード)が実行され得るコンピュータシステムの例示的な形態によるマシン1100の概略図を示している。これらの命令は、プログラムされていない一般的なマシンを、本明細書に記載され図示された機能を実行するようにプログラムされた特定のマシンに変換する。マシン1100は、いくつかの実施形態と一致するように、クライアント装置106またはクラウド支援型クエリシステム110に対応し得る。
【0060】
マシン1100は、スタンドアロン装置として動作してもよいし、または他のマシンに結合(例えば、ネットワーク接続)されてもよい。ネットワーク化されたデプロイメントにおいて、マシン1100は、サーバクライアントネットワーク環境でサーバマシンまたはクライアントマシンの能力にて動作し、ピアツーピア(または分散)ネットワーク環境ではピアマシンとして動作し得る。非限定的な例として、マシン1100は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、エンターテイメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えば、スマートウォッチ)、スマートホームデバイス(例えば、スマート電化製品)、その他のスマートデバイス、ウェブ電化製品、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、またはマシン1100が取るべき動作を指定する命令1116を順次にまたは他の方法で実行可能な任意のマシンを含み得るかまたはそれに対応し得る。さらに、単一のマシン1100のみが示されているが、「マシン」という用語は、本明細書に記載する方法のうちの任意の1つ以上を実行するために個別にまたは共同で命令1116を実行するマシン1100の集合も含むものと解釈されるべきである。
【0061】
マシン1100は、プロセッサ1110、メモリ1130、および入出力(I/O)コンポーネント1150を含み得る。これらはバス1102を介するなどして互いに通信するように構成され得る。例示的な実施形態では、プロセッサ1110(例えば、中央処理装置(CPU)、縮小命令セット計算(RISC)プロセッサ、複合命令セット計算(CISC)プロセッサ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、他のプロセッサ、またはそれらの任意の適切な組み合わせ)は、例えば、命令1116を実行することができるプロセッサ1112およびプロセッサ1114を含み得る。「プロセッサ」という用語は、命令を同時に実行することができる2つ以上の独立したプロセッサ(「コア」とも呼ばれる)を含み得るマルチコアプロセッサを含むことを意図している。図11は複数のプロセッサ1110を示しているが、マシン1100は、単一のコアを有する単一のプロセッサ、複数のコア(例えば、マルチコアプロセス)を有する単一のプロセッサ、単一のコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはそれらの任意の組み合わせを含み得る。
【0062】
メモリ/ストレージ1130は、メインメモリなどのメモリ1132もしくは他のメモリストレージと、ストレージユニット1136とを含み得る。これらは両方ともバス1102を介するなどしてプロセッサ1110にアクセス可能である。ストレージユニット1136とメモリ1132は、本明細書に記載する方法または機能のうちの任意の1つ以上を具現化する命令1116を記憶する。命令1116は、マシン1100によるその実行中に、メモリ1132内か、ストレージユニット1136内か、プロセッサ1110のうちの少なくとも1つの内部(例えば、プロセッサのキャッシュメモリ内)か、またはそれらの任意の適切な組み合わせ内に、完全にまたは部分的に存在し得る。したがって、メモリ1132、ストレージユニット1136、およびプロセッサ1110のメモリは、機械可読媒体の例である。
【0063】
本明細書で使用される「機械可読媒体」は、命令およびデータを一時的または永続的に記憶可能なデバイスを意味し、これらに限定されないが、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、バッファメモリ、フラッシュメモリ、光学メディア、磁気メディア、キャッシュメモリ、他の種類の記憶装置(例えば、消去可能プログラマブル読み出し専用メモリ(EEPROM))および/またはそれらの任意の適切な組み合わせを含み得る。「機械可読媒体」という用語は、命令1016を記憶可能な単一の媒体または複数の媒体(例えば、集中型または分散型データベース、または関連するキャッシュおよびサーバ)を含むと解釈されるべきである。また、「機械可読媒体」という用語は、マシン(例えば、マシン1100)が実行するための命令(例えば、命令1116)を記憶可能な任意の媒体、または複数の媒体の組み合わせを含むものと解釈されるものであり、これらの命令は、マシン1100の1つまたは複数のプロセッサ(例えば、プロセッサ1110)によって実行されるときに本明細書に記載の方法のうちの任意の1つ以上をマシン1100に実行させる。したがって、「機械可読媒体」は、単一の記憶装置またはデバイスだけでなく、複数の記憶装置またはデバイスを含む「クラウドベース」の記憶システムまたは記憶ネットワークも指す。「機械可読媒体」という用語それ自体は信号を除外する。
【0064】
I/Oコンポーネント1150は、入力を受信し、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を取り込むなどのための多種多様な構成要素を含み得る。特定のマシンに含まれる特定のI/Oコンポーネント1150は、マシンの種類に依存する。例えば、携帯電話などのポータブルマシンはタッチ入力デバイスまたは他のそのような入力機構を含む可能性があるが、ヘッドレスサーバマシンはそのようなタッチ入力デバイスを含まない可能性が高い。I/Oコンポーネント1150は図11に示されていない他の多くの構成要素を含み得ることが理解され得る。I/Oコンポーネント1150は、単に以下の説明を単純化するために機能に従ってグループ化されているが、このようなグループ化は決して限定的なものではない。種々の例示的な実施形態では、I/Oコンポーネント1150は、出力コンポーネント1152と、入力コンポーネント1154とを含み得る。出力コンポーネント1152は、視覚コンポーネント(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、または陰極線管(CRT)などのディスプレイ)や、音響コンポーネント(例えば、スピーカ)や、触覚コンポーネント(例えば、振動モータ、抵抗機構)や、その他の信号発生器などを含み得る。入力コンポーネント1154は、英数字入力コンポーネント(例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、フォトオプティカルキーボード、または他の英数字入力コンポーネント)や、ポイントベースの入力コンポーネント(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、または他のポインティングデバイス)や、触覚入力コンポーネント(例えば、物理ボタン、タッチまたはタッチジェスチャの位置および/または力を提供するタッチスクリーン、またはその他の触覚入力コンポーネント)や、オーディオ入力コンポーネント(例えば、マイク)などを含み得る。
【0065】
さらなる例示的な実施形態では、I/Oコンポーネント1150は、種々のコンポーネントの中でもとりわけ、バイオメトリックコンポーネント1156、モーションコンポーネント1158、環境コンポーネント1160、または、位置コンポーネント1162を含み得る。例えば、バイオメトリックコンポーネント1156は、表情(例えば、手の表情、顔の表情、声の表情、身体のジェスチャ、または目の動き)を検出し、生体信号(例えば、血圧、心拍数、体温、発汗、または脳波)を測定し、人物の識別(例えば、音声識別、網膜識別、顔識別、指紋識別、または脳波に基づく識別)などを行うための構成要素を含み得る。モーションコンポーネント1158は、加速度センサ部品(例えば、加速度計)や、重力センサ部品や、回転センサ部品(例えば、ジャイロスコープ)などを含み得る。環境コンポーネント1160は、例えば、照度センサ部品(例えば、光度計)や、温度センサ部品(例えば、周囲温度を検出する1つまたは複数の温度計)や、湿度センサ部品や、圧力センサ部品(例えば、気圧計)や、音響センサ部品(例えば、背景雑音を検出する1つまたは複数のマイクロフォン)や、近接センサ部品(例えば、近くの物体を検出する赤外線センサ)や、ガスセンサ(例えば、安全のために有害ガスの濃度を検出したり大気中の汚染物質を測定したりするためのガス検出センサ)や、あるいは、周囲の物理的環境に対応する指標、測定値、または信号を提供可能な他の構成要素を含み得る。位置コンポーネント1162は、位置センサ部品(例えば、GPS受信機部品)や、高度センサ部品(例えば、高度が導出され得る気圧を検出する高度計または気圧計)や、方位センサ部品(例えば、磁力計)などを含み得る。
【0066】
通信は、多種多様な技術を使用して実装され得る。I/Oコンポーネント1150は、カップリング1182およびカップリング1172をそれぞれ介してマシン1100をネットワーク1180またはデバイス1170に結合するように動作可能な通信コンポーネント1164を含み得る。例えば、通信コンポーネント1164は、ネットワーク1180とインターフェースするためのネットワークインターフェース構成要素または他の適切なデバイスを含み得る。さらなる例では、通信コンポーネント1164は、有線通信構成要素、無線通信構成要素、セルラ通信構成要素、近距離無線通信(NFC)構成要素、Bluetooth(登録商標)構成要素(例えば、Bluetooth(登録商標)LowEnergy)、Wi-Fi(登録商標)構成要素、および他のモダリティを介して通信を提供するための他の通信構成要素を含み得る。デバイス1170は、他のマシンまたは多種多様な周辺デバイス(例えば、ユニバーサルシリアルバス(USB)を介して結合された周辺デバイス)のうちのいずれかとすることができる。
【0067】
さらに、通信コンポーネント1164は、識別子を検出するか、または識別子を検出するように動作可能な構成要素を含み得る。例えば、通信コンポーネント1164は、無線周波数識別(RFID)タグリーダ構成要素、NFCスマートタグ検出構成要素、光学式リーダ構成要素(例えば、ユニバーサルプロダクトコード(UPC)バーコードなどの1次元バーコードや、QuickResponse(QR)コード(登録商標)、Aztecコード、DataMatrix、Dataglyph、MaxiCode、PDF417、UltraCode、UCC RSS-2Dバーコードなどの多次元バーコード、およびその他の光学コードを検出するための光学センサ)、または音響検出コンポーネント(例えば、タグ付きオーディオ信号を識別するためのマイク)を含み得る。さらには、インターネットプロトコル(IP)ジオロケーションによる位置、Wi-Fi(登録商標)信号三角測量による位置、特定の位置を示すことができるNFCビーコン信号を検出することによる位置などの種々の情報が通信コンポーネント1164を介して導出され得る。
【0068】
[伝送媒体]
種々の例示的な実施形態では、ネットワーク1180の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、無線WAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネット、インターネットの一部、公衆交換電話網(PSTN)の一部、一般電話サービス(POTS)ネットワーク、携帯電話ネットワーク、無線ネットワーク、Wi-Fi(登録商標)ネットワーク、他の種類のネットワーク、または2つ以上のそのようなネットワークの組み合わせであり得る。例えば、ネットワーク1180またはネットワーク1180の一部が無線またはセルラネットワークを含み得るものであり、カップリング1182が、符号分割多元アクセス(CDMA)接続、移動体通信用グローバルシステム(GSM(登録商標))接続、またはセルラまたはワイヤレスカップリングの他のタイプのものであり得る。この例では、カップリング1182は、シングルキャリア無線伝送技術(1xRTT)、エボリューションデータ最適化(EVDO)技術、汎用パケット無線サービス(GPRS)技術、GSMエボリューション高速データレート(EDGE)技術、3Gを含む第3世代パートナーシッププロジェクト(3GPP(登録商標))、第4世代ワイヤレス(4G)ネットワーク、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、高速パケットアクセス(HSPA)、マイクロ波アクセスのための世界規模相互運用性(WiMAX)、ロングタームエボリューション(LTE)規格、その他の種々の規格設定機関によって規定されたもの、他の長距離プロトコル、または他のデータ転送技術などの種々のタイプのデータ転送技術のうちの任意のものを実装し得る。
【0069】
命令1116は、ネットワークインターフェースデバイス(例えば、通信コンポーネント1164に含まれるネットワークインターフェース構成要素)を介して伝送媒体を使用するとともに、複数の周知の伝送プロトコル(例えば、ハイパーテキスト転送プロトコル(HTTP))のうちの任意の1つを利用して、ネットワーク1180を介して送信または受信され得る。同様に、命令1116は、カップリング1172(例えば、ピアツーピアカップリング)を介して伝送媒体を使用してデバイス1170に送信または受信され得る。「伝送媒体」という用語は、マシン1100による実行のための命令1116を記憶し、符号化し、または搬送することが可能な任意の無形媒体を含むと解釈されるべきであり、そのようなソフトウェアの通信を容易にするためのデジタルまたはアナログ通信信号または他の無形媒体を含む。
【0070】
[モジュール、コンポーネント、およびロジック]
本明細書に記載されるいくつかの実施形態は、ロジック、あるいは多数のコンポーネント、モジュール、または機構を含む。モジュールは、ソフトウェアモジュール(例えば、機械可読媒体上または伝送信号内に具現化されたコード)またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、いくつかの動作を実行可能な有形のユニットであり、何らかの方法で構成または配置され得る。例示的な実施形態では、1つまたは複数のコンピュータシステム(例えば、スタンドアロン、クライアント、またはサーバコンピュータシステム)、またはコンピュータシステムの1つまたは複数のハードウェアモジュール(例えば、プロセッサまたはプロセッサ群)は、本明細書に記載されるいくつかの動作を実行するように動作するハードウェアモジュールとしてソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって構成され得る。
【0071】
種々の実施形態において、ハードウェアモジュールは機械的または電子的に実装され得る。例えば、ハードウェアモジュールは、いくつかの動作を実行するように永続的に構成された専用回路またはロジックを(例えば、フィールドプログラマブルゲートアレイ(FPGA)またはASICなどの専用プロセッサとして)含み得る。また、ハードウェアモジュールは、いくつかの動作を実行するようにソフトウェアによって一時的に構成された(例えば、汎用プロセッサまたは他のプログラマブルプロセッサ内に含まれる)プログラマブルロジックまたは回路を含み得る。なお、ハードウェアモジュールを機械的に実装するか、永続的に構成された専用回路で実装するか、または一時的に構成された(例えば、ソフトウェアによって構成された)回路で実装するかの判断は、コストおよび時間を考慮して行われ得ることが理解され得る。
【0072】
したがって、「ハードウェアモジュール」という用語は、何らかの方法で動作するようにおよび/または本明細書に記載されるいくつかの動作を実行するように、物理的に構成されるか、永続的に構成(例えば、ハードワイヤード)されるか、または一時的に構成(例えば、プログラム)される有形エンティティを含むと理解されるべきである。ハードウェアモジュールが一時的に構成(例えば、プログラム)される実施形態を考慮した場合、それらハードウェアモジュールの各々はいずれか1つの時間インスタンスで構成またはインスタンス化される必要はない。例えば、ハードウェアモジュールが、ソフトウェアを使用して構成された汎用プロセッサを含む場合、汎用プロセッサは異なる時間でそれぞれ異なるハードウェアモジュールとして構成され得る。このように、ソフトウェアは、例えば、ある時間インスタンスで特定のハードウェアモジュールを構築し、異なる時間インスタンスで異なるハードウェアモジュールを構築するようにプロセッサを構成し得る。
【0073】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受信し得る。したがって、上記ハードウェアモジュール同士は通信可能に結合されていると見なすことができる。このような複数のハードウェアモジュールが同時に存在する場合、通信は信号伝送を介して(例えば、ハードウェアモジュールを接続する適切な回路およびバスを介して)実現され得る。複数のハードウェアモジュールが異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、それら複数のハードウェアモジュールがアクセスするメモリ構造内の情報の記憶および取得を通じて実現され得る。例えば、1つのハードウェアモジュールが動作を実行し、その動作の出力をそれと通信可能に結合されているメモリデバイスに記憶し得る。そして、後の時点で、別のハードウェアモジュールがメモリデバイスにアクセスし、記憶されている出力を取得して処理し得る。また、ハードウェアモジュールは、入力デバイスまたは出力デバイスとの通信を開始してもよく、リソース(例えば、情報の集まり)上で動作することが可能である。
【0074】
本明細書に記載される例示的な方法の各種動作は、関連する動作を実行するように一時的に(例えば、ソフトウェアによって)構成されるかまたは永続的に構成される1つまたは複数のプロセッサによって少なくとも部分的に実行され得る。一時的に構成されているか永続的に構成されているかによらず、そのようなプロセッサは、1つまたは複数の動作または機能を実行するように動作するプロセッサ実装モジュールを構成し得る。本明細書で言及するモジュールは、いくつかの例示的な実施形態では、プロセッサ実装モジュールを含み得る。
【0075】
同様に、本明細書に記載される方法は、少なくとも部分的にプロセッサにより実施され得る。例えば、ある方法の動作のうちの少なくともいくつかは、1つまたは複数のプロセッサまたはプロセッサ実装モジュールによって実行され得る。複数の動作のうちある動作の実行を1つまたは複数のプロセッサ間で分散させてもよく、その実行を単一のマシン内に常駐させるだけでなく、複数のマシンにわたってデプロイさせてもよい。いくつかの例示的な実施形態では1つまたは複数のプロセッサは単一の場所(例えば、家庭環境、オフィス環境、またはサーバファーム内)に配置され得るが、他の実施形態ではプロセッサはいくつかの場所にわたって分散され得る。
【0076】
また、1つまたは複数のプロセッサは、「クラウドコンピューティング」環境において、または「サービス型ソフトウェア」(SaaS)として、関連する動作の実行をサポートするように動作し得る。例えば、動作のうちの少なくともいくつかは、これらの動作がネットワーク(例えば、インターネット)を介して、さらには1つまたは複数の適切なインターフェース(例えば、API)を介してアクセス可能な一群のコンピュータによって(例えば、プロセッサを含むマシンの例として)実行され得る。
【0077】
[電子装置およびシステム]
例示的な実施形態は、デジタル電子回路で実装さるか、コンピュータハードウェア、ファームウェア、もしくはソフトウェアで実装されるか、またはそれらの組み合わせで実装され得る。例示的な実施形態は、コンピュータプログラム製品を使用して実施され得る。例えば、例示的な実施形態は、データ処理装置(例えば、プログラマブルプロセッサ、コンピュータ、または複数のコンピュータ)による実行のために、またはデータ処理装置の動作を制御するために、情報キャリア内、例えば、機械可読媒体内に有形に具現化されたコンピュータプログラムを使用して実施され得る。
【0078】
コンピュータプログラムは、コンパイル言語またはインタプリタ言語を含む任意の形態のプログラミング言語で記述することができ、スタンドアロンプログラムとして含むか、あるいはモジュール、サブルーチン、またはコンピューティング環境での使用に適した他のユニットとして含む任意の形態でデプロイすることができる。コンピュータプログラムは、1つのサイトにおける1つまたは複数のコンピュータ上で実行されるようにデプロイされ得るか、あるいは、複数のサイトにわたって分散されるとともに通信ネットワークによって相互接続され得る。
【0079】
例示的な実施形態において、動作は、入力データを処理し出力を生成することによって機能を実行するようにコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。また、方法の動作は、特定用途ロジック回路(例えば、FPGAまたはASIC)によって実行することが可能であり、例示的な実施形態の装置は特定用途ロジック回路として実装され得る。
【0080】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントとサーバは一般には互いに離れており、通常は通信ネットワークを介して相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行されて互いにクライアント-サーバの関係を有するコンピュータプログラムによって生じる。プログラマブルコンピューティングシステムをデプロイする実施形態では、ハードウェアアーキテクチャとソフトウェアアーキテクチャとの両方を考慮することが有益であることが理解され得る。特定の機能を永続的に構成されたハードウェア(例えば、ASIC)で実装するか、一時的に構成されたハードウェア(例えば、ソフトウェアとプログラマブルプロセッサとの組み合わせ)で実装するか、または永続的に構成されたハードウェアと一時的に構成されたハードウェアとの組み合わせで実装するかの選択は設計上の選択であり得ることが理解され得る。種々の例示的な実施形態では、デプロイ可能なハードウェア(例えば、マシン)アーキテクチャとソフトウェアアーキテクチャが説明されている。
【0081】
本発明の実施形態を特定の例示的な実施形態を参照して説明したが、本発明の主題のより広い範囲から逸脱することなくこれらの実施形態に種々の変形および変更を加えることができることは明らかである。したがって、明細書および図面は限定的な意味ではなく例示的な意味で見なされるべきである。本明細書の一部を形成する添付の図面は、限定ではなく例示として、本主題を実施することができる特定の実施形態を示す。例示された実施形態は、当業者が本明細書に開示された教示を実施することを可能とするのに十分に詳細に記載されている。本開示の範囲から逸脱することなく構造的および論理的な置換や変更を行うことができるように他の実施形態を使用したり他の実施形態から派生させたりすることができる。したがって、この詳細な説明は限定的な意味で解釈されるべきではなく、種々の実施形態の範囲は添付の特許請求の範囲とそのような特許請求の範囲により権利が与えられる等価物の全範囲によってのみ定義される。
【0082】
本発明の主題のそのような実施形態は、本明細書において、個別におよび/またはまとめて「発明」という用語によって言及され得るが、この用語は単に便宜上のものであり、2つ以上の発明が実際に開示されている場合に、本出願の範囲を任意の単一の発明または発明概念に自発的に限定することを意図するものではない。したがって、本明細書において特定の実施形態を例示して説明したが、同じ目的を達成するために作られた任意の構成を図示された特定の実施形態の代わりに使用できることが理解され得る。本開示は、種々の実施形態のあらゆる適応または変形を網羅することを意図している。上記した実施形態と本明細書に具体的に記載されていない他の実施形態との組み合わせは、上記した説明を検討すれば当業者には明らかである。
【0083】
本明細書で言及されるすべての刊行物、特許、および特許文書は、個々に参照により組み込まれるのと同様に、その全体が参照により本明細書に組み込まれる。本明細書と参照によりそのように組み込まれるそれらの文書との間で矛盾した用法がある場合には、組み込まれた参考文献における用法は本明細書のそれに対する補足と考えられるべきである。相いれない矛盾については、本明細書における使用法が支配する。
【0084】
本明細書では、特許文献において一般的であるように、「1つ」という用語は、他の事例あるいは「少なくとも1つ」または「1つまたは複数」の用法とは独立して、1つまたは複数を含むように使用される。本明細書において、「または」という用語は非排他的な「または」を指すように使用され、「AまたはB」は、特に明記しない限りは、「AであるがBではない」、「BであるがAではない」、ならびに「AおよびB」を含む。添付の特許請求の範囲において、「含む」という用語は、「備える」という用語の等価物として使用される。また、添付の特許請求の範囲において、「含む」および「備える」はオープンエンドの用語であり、ある請求項においてそのような用語の後に列挙されているものに加えてさらなる要素を含むシステム、装置、物品、またはプロセスも、依然としてその請求項の範囲内にあると見なされる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11