信息呈现系统转让专利

申请号 : CN201180020014.4

文献号 : CN103189862B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : V·米塔尔B·C·贝克曼

申请人 : 微软技术许可有限责任公司

摘要 :

一种基于在给定用户的当前上下文的情况下标识与用户相关的任务来标识用户感兴趣的信息的信息呈现系统。可以向用户呈现用于从相关任务和/或完成该任务的目标中进行选择的选项。对于每一所选任务和目标,该系统可以生成与完成该任务相关的一个或多个项集合。可以向用户呈现用于从项集合中进行选择或在各项集合之间导航的选项。这样的系统可被用来在便携式计算设备上提供易于使用的界面来支持购物应用。

权利要求 :

1.一种向用户呈现信息的方法,所述方法包括:用至少一个处理器:

基于与所述用户相关联的上下文信息来标识一个或多个准则集合,其中所述一个或多个准则集合包括多个准则集合;

基于所标识的一个或多个准则集合来选择多个数据集;以及响应于用户输入,选择所述多个数据集中的一数据集来呈现给所述用户,其中所述用户输入包括标识所述多个准则集合中的所选准则集合的用户输入,选择所述多个数据集中的一数据集包括选择基于所选准则集合所生成的数据集,并且其中生成数据集包括求解表示任务的任务模型的一组等式和一组不等式中的至少一个,其中所生成的数据集完成所述任务。

2.如权利要求1所述的方法,其特征在于:所述用户输入包括第一用户输入;

被选择来呈现的所述数据集包括第一数据集;以及所述方法还包括,响应于第二用户输入,选择所述多个数据集中的第二数据集来呈现给所述用户。

3.如权利要求1所述的方法,其特征在于:所述用户输入包括第一用户输入;

基于所选准则集合来生成多个数据集;以及选择基于所选准则集合所生成的数据集包括响应于第二用户输入,在不同的时间呈现所述多个数据集中的不同数据集。

4.一种信息呈现系统,包括:

包括与用户相关联的上下文信息的至少一个第一计算机存储介质;

包括多个任务模型的至少一个第二计算机存储介质;

包括映射的至少一个第三计算机存储介质,所述映射定义所述上下文信息内的多个数据模式中的每一个与一个或多个任务模型之间的关联;

用于将所述映射应用于所述上下文信息以标识基于所述上下文信息适用的任务模型中的一个或多个的第一引擎;

用于基于任务模型来生成一个或多个数据集的第二引擎;

至少一个用户界面组件,用于:

向用户界面设备发送由所述第一引擎标识的一个或多个适用的任务模型的指示;

从所述用户界面设备接收对所述一个或多个适用的任务模型中的所选任务模型的用户选择;

向所述用户界面设备发送由所述第二引擎基于所选任务模型所生成的至少一个数据集。

5.如权利要求4所述的系统,其特征在于:所述系统还包括耦合到所述第二引擎的搜索引擎;

所述第二引擎通过向所述搜索引擎发送搜索查询来生成所述一个或多个数据集中的至少一部分,所述搜索查询基于所选任务模型。

6.如权利要求5所述的系统,其特征在于,还包括:用于接收与所述用户相关联的数据并更新所述上下文信息的上下文管理组件。

7.如权利要求6所述的系统,其特征在于,与所述用户相关联的数据包括来自与所述用户相关联的便携式电子设备的传感器数据。

8.如权利要求4所述的系统,其特征在于,所述多个任务模型中的每一个与所标识的任务相关联,并且包括共同定义适用于完成所标识的任务的数据集中的数据的特性的多个规则、等式、约束、和/或计算。

说明书 :

信息呈现系统

背景技术

[0001] 计算机网络的广泛可用性使得人们能够访问大量信息。计算机网络,如因特网,可潜在地将计算机用户连接到众多信息源中的任何一个。以此方式,人们可获得关于包括产品、服务、或事件在内的任何数量的事物的信息。这些信息可能出于个人原因或业务原因而被访问,使得这些信息的现成可用性通过固定计算机或便携式电子设备变得有用。
[0002] 通过计算机网络访问信息的常规方法是使用搜索引擎。在用户提交对信息的请求之前,搜索引擎发展出了传达通过计算机网络可用的信息的各项目的索引。这些项目是如下格式:在被计算机用户请求时,它们传达信息。这些项目例如可以是包含信息的文件或可通过计算机网络访问的网页。在搜索引擎接收到表示用户对关于一主题的信息的请求的查询时,该搜索引擎通过将索引中的项与搜索查询进行匹配来选择一个或多个项目并将这些项目提供给用户。
[0003] 制定搜索查询的常规方法是接收用户输入的文本串。该文本串可包含项和定义各项之间的关系的算子,这些项和算子表征用户可能感兴趣的项目。例如,对关于相机附件的信息的搜索可包括诸如“相机”、“三脚架”、“闪光灯”等项。这样的查询还可包含能更精确地将该查询聚焦于用户感兴趣的项目的项,如品牌名或型号。这些附加项可被包括在初始搜索查询中或可被添加到一系列迭代中,如用户查看查询结果并随后基于所返回的结果来修改该查询。
[0004] 为提高响应于搜索查询所返回的项目提供用户感兴趣的信息的概率,可以结合搜索来使用过滤。使用了过滤,查询或查询所返回的结果集可被搜索引擎自动修改。过滤可以基于先前获得的与提交该搜索的用户有关的信息,并揭示用户感兴趣的类别。搜索引擎可以应用该信息来朝向包含与被确定为用户感兴趣的类别有关的信息的项目对搜索结果进行加权。

发明内容

[0005] 相对于常规搜索系统,通过定义各准则集合,用户在获得数据时的体验得到改进。基于用户上下文信息,可以选择一个或多个准则集合。通过向用户提供基于上下文信息被确定为相关的各准则集合的指示并且接受标识相关的准则集合中的一个或多个的用户输入,该选择可以基于用户输入。
[0006] 在一些实施例中,每一准则集合可被表达为表征要响应于搜索查询来提供的信息的模型。可以通过基于用户上下文信息从模型集中选择模型来选择准则集合,用户上下文信息诸如来自用户的搜索查询和/或由搜索引擎响应于该搜索查询所标识的数据。所选择的模型可被用来生成一个或多个数据集。每一数据集可包含多个项目,该多个项目在它们共同被选择来满足所选择的模型方面是相关的。
[0007] 在一些实施例中,各数据集中的每一个可以与一项目集合相关。一模型可包含一组等式和/或一组不等式或约束,使得可通过对该组等式和/或该组不等式或约束进行求解来生成各数据集。
[0008] 可以用允许用户导航通过这些数据集的方式来将这些数据集呈现给用户,从而一次只显示这些可能的数据集的一部分。此外,可以向用户呈现关于将各数据集呈现给用户的不同选项。
[0009] 在一些实施例中,每一准则集合可以与以用户为中心的任务相关联。所选的准则集合可被用来构建包含完成该任务的数据的一个或多个数据集,如与该任务相关联的准则集合所定义的。在用户导航通过各数据集时,用户可以在不同的时间查看不同的项目集合,这些项目集合中的每一个都完成所选任务。
[0010] 在一些实施例中,取决于基于用户上下文所标识的目标,可以不同地完成任务。目标可被定义为与用户相关的特定特性,如用户的专业化水平、完成该任务的目的,等等。
[0011] 该系统如上所返回的项目集合中的一些可完全满足所选任务,但另一些可能只在该任务的一些方面或方式上满足该任务但并非完全满足。在一些实施例中,可以用表示任务被完成得有多好的度量的一组数据属性来定义任务。任务还可包含在所返回的项目集合的各数据属性上操作的表达式,并且可产生每一集合事实上将该任务完成得有多好的优点分数。
[0012] 在一些实施例中,用户可以查看每一项目集合在不同方面对所选任务满足得有多好的排名。
[0013] 这样的系统可结合便携式电子设备来使用。这一设备具有有限的显示面积和有限的输入机制,但该系统仍然能以对该设备的用户而言高度相关的格式来获得信息。该系统首先标识用户可能感兴趣的任务。同样,可基于用户上下文来标识目标。该系统可通过简单地显示各选择来将所标识的任务并可任选地将目标呈现给用户,该用户可以通过提供简单的输入来作出对任务和/或目标的选择。该系统随后可提供在给定所选目标的情况下与完成所选任务的数据集有关的信息,并且用户还可使用简单的输入来导航通过完成该任务的各集合。
[0014] 该便携式电子设备还可向该系统提供定义用户上下文的输入。这些输入可以是明确的用户输入,但作为替换或补充,也可以是从传感器导出的,如指示该设备的位置或该设备的用户所参与的活动的输入。
[0015] 以上是对由所附权利要求定义的本发明的非限定性的概述。

附图说明

[0016] 附图不旨在按比例绘制。在附图中,各个附图中示出的每一完全相同或近乎完全相同的组件由同样的附图标记来表示。出于简明的目的,不是每一个组件在每张附图中均被标号。在附图中:
[0017] 图1是示出可在其中实现本发明的某些实施例的计算环境的高级框图;
[0018] 图2是根据某些实施例的搜索栈的概念框图;
[0019] 图3是根据某些实施例的搜索栈的体系结构框图;
[0020] 图4是根据本发明的一些实施例的响应于用户输入来生成各数据集的过程的流程图;
[0021] 图5是根据一些实施例导航通过结合图4所示出的所生成的并显示在图形用户界面上的各数据集的过程的流程图;
[0022] 图6A、6B和6C是示出从用户接收对信息的请求并显示响应于该对信息的请求所生成的数据集的用户界面的示例性示图;
[0023] 图7A、7B、7C和图8是示出用户导航通过响应于对信息的请求所生成的各数据集的示例的示图;
[0024] 图9A和9B是示出接收对信息的请求并显示响应于该对信息的请求所生成的数据集的示例性用户界面的示图;
[0025] 图9C和9D是示出示例性用户界面的示图,其中用户可通过该用户界面导航通过响应于对信息的请求所生成的各数据集;以及
[0026] 图10A和10B是示出便携式电子设备的示例性用户界面的示图,其中用户可通过该用户界面导航通过响应于对信息的请求所生成的各数据集。

具体实施方式

[0027] 发明人认识到并明白,尤其是对于便携式电子设备的用户而言,当前的信息呈现系统通常不以与用户直接相关的格式来提供信息或者难以使用。这些系统基于通过显式的或在一些情况下通过隐式的用户输入来连续缩小的搜索查询,不能交付与用户兴趣相一致的结果。例如,用户可能不知道与他们的当前兴趣相对应的信息的性质,并且因此不能制定适当的搜索查询来返回该信息。此外,连续缩小搜索查询的输入可能需要比小型的便携式电子设备的用户所能易于提供或有兴趣提供的输入更复杂的输入。
[0028] 与任务相关联的准则集合可被记录在可跨多个用户共享的模型中。通过使用这样的任务模型,用户不必能够创建返回感兴趣的信息的搜索查询。任务模型可以例如由信息呈现系统的管理员、由其他用户、或由第三方来定义,例如有兴趣帮助用户搜索信息的商家。在该信息检索和呈现系统选择并应用一模型时,即使没有明确的用户输入,该系统也可以生成与用户相关的一个或多个数据集。
[0029] 发明人已认识到并且明白,搜索系统的功能和实用性可以通过向信息检索和呈现系统的搜索栈并入以下组件来扩展:所述组件可以选择并且应用表征要在用户上下文中提供给用户的数据的一个或多个模型。响应于搜索查询或标识用户上下文的其他输入,该系统可以标识在为用户生成信息时应用的模型。可基于用户上下文信息来选择该模型,用户上下文信息可包括搜索查询本身、或搜索引擎基于用户上下文或可定义用户的上下文的其他数据检索到的与该搜索查询相关的数据。
[0030] 一旦选择了模型,则模型应用引擎可以应用该模型来生成要提供给用户的信息。模型可以包括一个或多个元素,这些元素中的至少某些定义了要基于为用户的上下文动态地标识的数据来执行的计算。例如,模型的应用可以造成具有与搜索查询中的项或由应用该搜索查询的搜索引擎生成的数据相关的输入的计算。该计算的输出(或者单独或者与由搜索引擎定位的数据或其他动态地生成的数据结合)可被提供给用户作为搜索查询的结果。
[0031] 在某些实施例中,该计算可以基于模型中所表示的等式。该等式可以指定要对由搜索引擎动态地标识的数据执行的数学运算。这一数学运算可以包括诸如从用户简档获得的用户数据或基于上下文信息的用户数据等其他数据。将模型应用于搜索栈中可以大大扩展可返回给用户且可应用在许多不同的上下文中的信息的类型。
[0032] 结果,在生成搜索结果时有用的知识可以在模型中被捕捉,并且可以跨各搜索系统来共享。此外,通过允许在搜索系统的搜索栈中应用各模型,这些模型可以基于仅在该搜索系统内可用的数据来执行计算或其他操作。
[0033] 不管在信息检索和呈现系统内如何实现各准则集,发明人认识到并明白,通过经由网络从诸如服务器等实体检索包含根据用户的上下文被确定为相关的多个数据集的信息,电子设备的用户的体验可得到改进。检索到的信息可被临时存储在用户的设备上。尽管一次可只将检索到的信息的各数据集中的一个或一些呈现给用户,但可响应于相对于检索到的数据集的用户输入呈现来自检索到的信息的不同数据集。
[0034] 在设备经由网络连接(尤其是无线连接)向诸如服务器等实体请求信息时,可能要花时间才能获得该信息。通过检索基于上下文来选择的数据集,可预测用户提供指示对该多个数据集的兴趣的明确输入,来检索这些数据集中的一些或全部。
[0035] 在本发明的一些实施例中,信息作为一个或多个数据集被呈现给用户,每一数据集包含与被推断为用户感兴趣的任务相关的项目。数据集中的这些项目也可与关联于该任务的一个或多个目标相关。例如,在上下文信息指示用户正寻找信息以购买相机时,任务可以是找出与相机有关的信息。完成该任务的目标可包括找出与适于拍摄特写照片的相机有关的信息,这定义了完成任务的信息(并且在适用的情况下,定义完成目标的信息)。可以应用这些准则来从一个或多个信息源中选择数据集。用户上下文信息可被用来选择适当的准则集合,该准则集合被定义为模型。在许多情况下,存在与针对用户上下文的所选准则相匹配的多个数据集。在多个数据集与该模型的准则匹配得足够紧密使得所有这些数据集可被认为满足该准则时,可生成多个数据集。但是,可以用其他方式来生成多个数据集。在一些情况下,可基于用户的上下文来标识多个任务。
[0036] 在一些实施例中,取决于被标识来完成一任务的目标,可不同地完成该任务。如果多个任务被标识为是相关的,则可通过使用用于完成一任务的每一目标的不同的准则集合来生成与多个目标相关联的多个数据集。
[0037] 该系统可以用任何合适的方式来选择要应用的适当的准则集合。在一些实施例中,信息呈现系统可维护与用户相关联的、为每一用户定义该用户的上下文的信息。用户上下文中的任何合适信息,如用户的先前搜索、购买、所存储的数据、访问的位置、以及其他,可被用来标识一个或多个任务和相关联的目标,以生成与搜索查询相关的数据集。例如,响应于与数码相机相关的搜索查询,与不同的数码相机有关的信息可被呈现给用户。在该示例中,该系统可以标识与所呈现的项相关的或更多的任务,如“比较”、“找出相似”、“完成”、以及其他。如果用户从所呈现的项中选择某一个项并选择任务“找出类似的”来完成该任务,则可检索包含与类似于所选项的多个类似的数码相机有关的信息的数据集。“比较”任务可以与以下准则相关联:在该准则被应用于数据源中的信息时,生成包含示出在应用这些准则时基于用户的上下文所标识的项之间的比较的数据的一个或多个数据集。同样,“找出相似”任务可以与以下准则相关联:在该准则被应用于数据源中的信息时,生成包含与用户所选的感兴趣的一个或多个项相似的项的一个或多个数据集。可以使用任何合适的相似度度量,包括对于项的类型、价格、制造商的相似度以及任何其他合适的相似度度量。“完成”任务可以与以下准则相关联:该准则生成包括与所选项相关的项的数据集,使得用户可以完成对项的选择(例如,以进行购买)。
[0038] 生成多个数据集的信息呈现系统可包括允许用户查看基于用户的上下文所生成的数据集中的信息的用户界面。用户界面可以支持允许用户导航通过数据集的功能,从而一次查看数据集的全部或部分或查看从不同的数据集中选择的项的组合。例如,用户界面可以标识被标识为相关的任务。用户可以通过该用户界面来选择任务。作为响应,该用户界面可以显示来自通过应用与所选任务相关联的准则所生成的一个或多个数据集的数据。
[0039] 连同所呈现的任务一起,可以呈现相关联的目标。这些目标可以从用户上下文中推断出来。因而,可以基于所选目标来向用户呈现不同的数据集。例如,如果目标被选择为“专业”,则可以呈现与职业摄影师会使用的数码相机相类似的数码相机有关的信息。然而,如果目标被定义为“新手”,则与较不复杂的易于使用的相机有关的信息可被呈现给用户。
[0040] 作为另一示例,如果用户选择诸如“全体”或“完成”等任务,则可以显示包括与关于感兴趣的项的不同附件有关的信息的数据集以完成该任务。例如,如果感兴趣的项是数码相机,则关于三脚架、相机包、摄影媒体、指导书的数据以及许多其他数据可被显示。可以按允许将所呈现的信息与该用户感兴趣的项进行关联的任何合适的格式(例如,文本、图形、图像、或其组合)来向用户呈现这些数据集并接收相对于数据集的用户输入。
[0041] 图1是示出可在其中实现本发明的某些实施例的计算环境100的高级框图。计算环境100包括与计算设备105交互的用户102。计算设备105可以是任何合适的计算设备,诸如台式计算机、膝上型计算机、移动电话、或PDA。计算设备105可以在任何合适的计算体系结构下操作,并且包括诸如由微软 公司开发的 操作系统的变体等任何合适的操作系统。
[0042] 计算设备105可以具有经由任何合适的有线或无线通信介质来与服务器106通信的能力。在计算设备105与服务器106之间的通信可以经由计算机网络108,该计算机网络108可以是诸如因特网、公司内联网、或蜂窝网络等任何适当数量或类型的电信网络。服务器106可以使用任何合适的计算体系结构来实现,并且可以被配置有诸如由微软
公司开发的 操作系统的变体等任何合适的操作系统。此
外,虽然服务器106在图1中被示为单个计算机,但它可以是被配置成作为相干系统来操作的任何合适的数量的计算机。
[0043] 在图1的示例中,服务器106执行搜索引擎的功能,允许用户102检索与搜索查询相关的信息。用户可以诸如以任何合适的方式(诸如经由键盘、键区、鼠标或语音输入)通过将查询项输入到计算设备105来显式地指定查询。另外地和/或另选地,用户可以提供隐式查询。例如,计算设备105可以配备有(或经由有线或无线连接来连接到)数码相机110。拍摄自数码相机110的诸如对象、场景、条形码扫描等的图像可以用作隐式查询。
[0044] 无论由触发生成查询的用户102所提供的输入的类型是什么,计算设备105可以将该查询发送给服务器106以获得与该查询相关的信息。服务器106可以存储或以其他方式与关于任何合适的感兴趣对象的不同类型的信息相关联。例如,服务器106可包括与市场上的数码相机和相关附件有关的信息。但是,服务器106可包括关于任何合适的项目、服务、主题、地点、以及任何其他感兴趣实体的信息。
[0045] 搜索查询是可触发服务器106生成与用户的上下文相关联的一个或多个数据集的输入的示例。但是,可以使用任何合适的触发事件。不论触发的形式如何,服务器106都可通过将一个或多个准则集合应用于服务器106可访问的数据存储来作出响应。数据存储可包含响应于用户搜索查询所标识的信息,但本发明不限于此。在所示实施例中,每一准则集合被存储为声明性模型。服务器106可将所标识的声明性模型应用于该数据以生成要返回给用户102的数据集。由服务器106生成的信息可以经由计算机网络108来发送,并且在计算设备105的显示器104上显示。显示器104可以是任何合适的显示器,包括LCD或CRT显示器,并且可以是内置或外置于计算设备105。计算设备105可从用户102接收与呈现在显示器104上的信息有关的任何合适的输入。
[0046] 图2是根据一些实施例的提供信息检索和呈现系统200的各组件的一般概览的体系结构图。在一些实施例中,图2中示出的各组件可由图1的服务器106来实现。但是,系统200的各组件中的一些可被实现在计算设备105(图1)中。另外,某些计算能以任何合适的方式在服务器106和计算设备105之间分配。
[0047] 无论系统200的具体配置和实现是什么,可以将用户输入202作为输入经由计算机联网通信介质来从由用户操作的便携式电子设备提供给系统200,并且可以是隐式的或显式的,如结合图1讨论的。例如,用户输入202可包括文本、图像、产品条形码、或任何其他合适的输入。用户输入200可被变换成可由搜索引擎处理来生成可对其应用各准则集合的数据体的任何合适格式的搜索查询。但是,输入并非必须是查询的形式。
[0048] 在该示例中,用户输入202可被提供给搜索引擎203以添加到用户感兴趣的数据体。在根据本发明的一些实施例的信息检索和呈现系统中,搜索引擎203可被部分或完全实现为任何合适的搜索引擎,如微软 公司所开发的必应 搜索引擎。在信息检索和呈现系统200中,搜索引擎所生成的数据是可为用户生成并存储的上下文信息206的一个示例。更一般地,上下文信息206可包含在标识与该用户的上下文中的用户相关的任务或目标时有用的任何信息。另外,上下文信息可包含在基于所标识的任务或目标来生成数据集时有用的任何信息。图2示出了上下文管理器204,上下文管理器204能访问诸如搜索引擎203的输出等信息源,使得上下文管理器204可获得并存储用户的上下文信息。
[0049] 上下文信息206按照任何合适的组织存储在任何合适的位置。在图2的示例中,上下文信息被示为“云”,指示上下文信息206可按照任何合适的组织被存储在任何一个或多个合适的位置。例如,上下文信息206可被存储在与服务器106或计算设备105相关联的计算机存储器中或任何其他合适的计算机存储器中。同样,虽然图2中未明确示出,但信息检索和呈现系统200可对来自多个用户的信息请求作出响应。因此,可为每一用户或一组用户单独地维护上下文信息206。
[0050] 在用户从用户界面上显示的各项目中选择项目以使该项目被添加到用户上下文206中时,用户上下文206包括可显式获得的信息。同样,用户上下文206可包括通过经由检查用户最近或当前在用户界面上探查的信息和可由合适的传感器搜集的关于用户周围的环境的信息来收集用户的上下文所获得的信息。这些传感器可以感测用户周围的环境状况,并且在一些实施例中,可被链接到计算设备105。但是,其他类型的传感器是可能的。例如,传感器可以标识用户所访问的计算机应用程序或可以访问数据源(如用户日历),以生成可由上下文管理器204存储为用户的上下文信息206的一部分的信息。
[0051] 如图2所示,用户上下文206可包括用户简档207、最近搜索结果208、当前位置210、最近访问的位置212、以及检查过的产品214等信息。但是,应当明白,用户上下文206可包括任何其他合适的信息。例如,取决于应用程序,可以存储与用户的“朋友”(例如,该用户与其通信并共享数据的其他用户)有关的信息、用户和/或用户的“朋友”所购买的产品有关的信息以及与用户上下文有关的任何其他信息。
[0052] 采用根据本发明的一些实施例的信息检索和呈现系统的便携式电子设备,如计算设备105,可配备有便于获得与用户活动和用户周围的环境有关的信息的各种传感器。例如,计算设备105可配备有跟踪计算设备105的位置的位置传感器(例如,GPS)。因此,因而可获得关于当前位置210和最近访问的位置212的信息。应当明白,计算设备105可包括任何其他合适的传感器。此外,在一些实施例中,除了经由合适的传感器跟踪计算设备105的位置之外,用户能够手动地输入关于当前位置210和/或最近访问的位置212的信息。另外,计算设备105可配备有诸如话筒、指南针、运动检测器、加速度计等传感器中的一个或多个以及任何其他传感器。
[0053] 作为传感器的另一示例,计算设备105可配备有数码相机110,如图2所示。数码相机110可被用来检查产品。例如,可使用数码相机110获得产品的条形码的图像,并可通过使用该条形码作为搜索查询来接收关于该产品的附加信息。但是,可以用任何合适的方式来获得关于检查过的产品214的信息。例如,用户可根据本发明的一些实施例执行与产品相关的搜索,并且这一信息可被存储为用户上下文206的一部分。
[0054] 最近搜索结果208可以是搜索引擎203响应于使用用户输入202作为搜索查询而获得的数据。搜索引擎203可以用任何合适的方式并通过访问任何合适的数据体来获得最近搜索结果208。数据体可包括可被存储在合适的存储介质中的一个或多个中的任何合适类型的数据,包括内部、本地、联网附连介质、或其任何组合。应当明白,本发明的各实施例被限于获得信息并将其存储为用户上下文206的一部分的具体方式。
[0055] 在图2中,用户上下文206包括用户简档207,它可包含基于职业、爱好、偏好、用户当前参与的一个或多个活动、已参与或将参与的一个或多个活动来表征用户的信息或者任何其他合适的信息。例如,用户简档207可将用户表征为体育摄影师、业余摄影师、高尔夫球手、旅行者、或鸟类观察者。但是,应当明白,用户简档207可以用任何合适的方式来表征用户。
[0056] 不论获得用户上下文信息206的具体方式如何,它可用指示该信息与用户之间的关联的方式来被存储在合适的存储中。在一些实施例中,用户上下文206可以位于计算设备105、服务器106上,以任何合适的方式在计算设备105和服务器106之间分配,或存储在任何其他合适的位置。
[0057] 不管存储上下文信息206的位置如何,上下文管理器204可以在生成信息时就存储它或在使用时访问该信息。另外,上下文管理器204可以执行与维护上下文信息206相关的功能。由上下文管理器204所执行的功能可包括删除过期信息或者从传感器输出或其他数据源中导出有用的值来作为上下文信息。导出的值可包括例如平均值或趋势。
[0058] 不论上下文信息206被如何存储,它都可被信息检索和呈现系统200用来标识根据用户的上下文可能与该用户相关的一个或多个任务并生成用于完成所标识的任务的各数据集。在图2所示的实施例中,基于应用与所标识的任务相关联的准则集合来生成各数据集。该准则可被应用于上下文信息206。上下文信息206可包括例如由搜索引擎203生成的结果。但是,各数据集可从任何合适的信息源生成。
[0059] 在图2所示的实施例中,与每一任务相关联的准则集合可被存储为作为任务模型池的一部分的任务模型。图2示出包含任务模型2161、2162、……、216N的任务模型池。在操作中,基于用户输入202或任何其他合适的触发,任务选择器218基于上下文信息206确定任务模型2161、2162、……、216N中的相关的任务模型。任务选择器218包括既选择又应用任务模型的合适组件。在一些实施例中,任务选择器218可包括一个以上组件,其中一个或多个组件可执行任务选择并且一个或多个不同的组件可应用所选任务。
[0060] 在一些场景中,任务可根据两个或更多个目标之一来完成。与任务相关联的目标可以用任何合适的方式来反映。在图2所示的实施例中,可以提供分开的模型来生成用于根据多个目标中的每一个来完成任务的数据集。在图2所示的示例中,可根据被指定为目标1和目标2的两个目标之一来完成任务2162。生成用于根据每一目标来完成任务的数据可由分开的模型来表示,在此分开的模型被示为用于分别根据目标1和目标2来完成任务2的模型2221和2222。因此,在任务选择器218选择相关任务模型时,它可从包括与特定目标相关联的各任务模型(如任务模型2221和2222)的整个池中进行选择。
[0061] 不论所选的任务模型如何,所选任务模型可被应用于数据存储中的信息以生成与关联于所选任务模型之一的一组准则相一致的数据集。在图2所示的示例中,任务选择器218标识了任务2和任务N在用户的上下文中是相关的。如图所示,任务2具有与其相关联的目标,使得选择任务2还需要选择目标中的一个或多个(如果基于用户上下文信息206这些目标中的一个或多个是相关的)。在该示例中,与任务2相关联的目标1和目标2被选择为是相关的。应用与目标1相关联的任务模型2221造成了一个或多个数据集的生成。在该示例中,通过应用任务模型2221,生成了数据集2261A、2261B和2261C。类似地,与目标2相关联的任务模型2222可被应用以生成数据集2262A、2262B和2262C。以类似的方式,与任务N相关联的任务模型216N也被任务选择器218标识。应用任务模型216N也可生成一个或多个数据集。在该示例中,生成了六个数据集2263A、2263B、2263C、……、2263F。
[0062] 除了包含指定数据集的一组准则之外,任务模型可包含标识在满足一个或多个准则的情况下要执行的动作的信息。这些动作可包括搜索进一步信息。因此,图2示出了任务选择器218可耦合到搜索引擎203。以此方式,任务选择器218在应用任务模型时可发起获得最终被包括在数据集226中的数据的动作。在该示例中,这样的动作可包括向搜索引擎203提供搜索查询。然而,在任务模型中指定的动作可以是可由任务选择器218执行的任何形式。
[0063] 作为选择并应用一个或多个任务模型的结果所生成的数据可通过用户界面224提供给用户。用户界面224可位于计算设备105中或能以任何合适的方式分布在系统200上。在一些实施例中,作为选择并应用一个或多个任务模型的结果所生成的多个数据集可连同对与用于生成每一数据集的任务模型相关联的任务和/或目标的指定一起传递给用户界面224。用户界面224可以管理与用户的交互以呈现来自这些数据集中的一个或多个的数据。
基于用户输入,用户界面可以在不同的时间呈现来自不同数据集或数据集组合的数据。用户界面224可以提供用户可导航通过该数据集以探索系统200所生成的数据的机制。在一些实施例中,通过选择并应用任务模型所生成的多个数据集可通过预测用户提供输入以请求来自这些数据集中的一个或多个的数据来传递给用户界面224。但是,在其他实施例中,用户界面224可以与任务选择器218进行交互,使得用户输入可影响任务的选择和应用以产生其他数据集。
[0064] 在其中用户通过经由网络(该网络可包括一个或多个有限带宽或高等待时间的无线链路)连接到服务器的便携式电子设备访问系统200的实施例中,如果通过选择并应用多个任务模型所生成的多个数据集在用户请求来自这些数据集的信息之前被传送到用户界面224,则可以获得改进的响应性。在用户请求的信息可从用户界面224所维护的高速缓存中呈现时,与向服务器发送请求并等待响应相关联的等待时间可被消除,从而使得即使便携式电子设备通过低带宽或高等待时间连接来连接到数据源,通过该便携式电子设备进行实时交互也是可能的。
[0065] 不论数据集何时被传送到用户界面224,用户界面224可提供用户可以标识数据集(其中来自该数据集的数据被显示)的一个或多个机制。例如,用户界面224可向用户呈现与由任务选择器218基于用户上下文信息206标识为相关于该用户的任务或目标有关的信息。用户随后可以指定该用户希望接收其有关信息的任务和/或目标。响应于这样的输入,用户界面224可基于通过应用与该用户所标识的任务和/或目标相关联的任务模型所生成的数据集来呈现显示。与任务和/或目标有关的信息可由用户以任何合适的方式来输入,并且可基于用户与用户界面224之间的一个或多个交互来输入。作为特定示例,用户界面224可以首先向用户呈现用于选择在用户的当前上下文中被认为相关的任务的选项。在作出这样的选择之后,随后可向用户提供用于选择所选任务的目标的选项。
[0066] 用户界面224还可提供用户导航通过数据集的机制。作为具体示例,在其中针对任务和目标生成多个数据集的场景中,用户界面224可接受用于选择或改变被用于向用户呈现显示的数据集的用户输入。响应于这样的用户输入,用户界面224可以选择不同的数据集或可以组合来自多个数据集的各元素。
[0067] 各数据集226中的每一数据集可包含在以下方面相关的多个项:该多个项被共同选择来满足所选模型并使用户能够完成与该模型相关联的任务。可以用允许用户导航通过这些数据集的方式来将这些数据集226呈现给用户,从而一次只显示这些可能的数据集的一部分。在一些实施例中,用户可以用不同的方式来导航数据集226。例如,用户可以提供用于选择不同任务的输入和/或用于选择完成该任务的不同目标的输入。此外,用户可通过选择数据集226的要呈现在用户界面224上的不同数据来导航通过数据集226。此外,相对于将各数据集226呈现给用户,可以向用户呈现不同的选项。
[0068] 任务选择器218可以用任何合适的方式来标识任务模型。在一些实施例中,任务选择器218可以包含将特定模式的上下文信息与特定任务进行相关的索引或其他合适的数据结构。在这样的场景中,任务选择器218可以通过在用户上下文信息206检测与任务模型相关的特定数据模式来将一任务模型标识为用户上下文中相关的。将数据模式与任务模型进行相关的信息可以用任何合适的方式来开发。这样的相关信息可以由生成该任务模型的实体来提供。但是,在其他实施例中,数据模式与任务模型之间的相关可以按自动或半自动的方式来生成。在图2中所示的实施例中,系统200包括用于创建或更新用户上下文信息206中的数据模式与可用任务模型中的特定一个之间的关联的学习组件228。学习组件228可根据本领域已知的的机器学习原理来操作。应用这样的机器学习技术可基于用户反馈来更改数据模式与特定任务模型之间的相关。作为具体示例,任务选择器218可以基于用户的上下文来将特定任务模型标识为与该用户相关并随后基于所标识的任务模型来生成数据集。如果在将该数据集显示给用户之后,用户提供了指示该数据在该用户的上下文中不相关的输入,则在被用来标识特定任务模型的任务选择器218内维护的相关信息可被更新以降低同一任务模型在类似场景中被选中的可能性。这样的用户输入可以显式地提供,如响应于询问用户所生成的信息是否有用的提示,或可以根据用户动作来暗示。例如,如果用户快速删除或花极少时间查看任务模型所生成的数据,则学习组件225可推断该任务模型在用户的上下文中不是有用的并且相应地更新任务选择器218所维护的选择信息。
[0069] 图3是更详细地示出系统200的各组件的另一体系结构框图。所示出的各组件可位于计算设备105、服务器106、以任何合适的方式在计算设备105和服务器106之间分配、或可以位于任何其他合适的实体。
[0070] 在图3中,与图2类似,可以向搜索引擎203提供用户输入202,搜索引擎203耦合到上下文管理器204。在一些实施例中,搜索引擎203可以存储在服务器106上或以其他方式与服务器106相关联。
[0071] 搜索引擎203可以使用常规技术或按任何其他合适的方式来检索数据。搜索引擎203可以从任何合适的位置检索数据。在所示示例中,为了说明搜索引擎203可以访问任何合适的不同数据体来检索数据作为搜索结果,搜索引擎203被示为经由网络301耦合到数据源302和数据源304。网络301可以是任何合适的网络,并且可包括局域网或广域网,如企业网络或因特网。这些网络可以基于任何合适的技术并可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或光纤网络。数据源302和304可以是任何合适的数据集合。
[0072] 图3的系统还可包括用户上下文信息206。用户上下文信息206可包括搜索引擎203所执行的搜索的结果或可以是指示用户上下文的任何其他合适的信息,包括以上结合图2描述的各类信息。
[0073] 同样如图2一样,上下文管理器204可以添加、删除、以及组织存储在用户上下文信息206内的信息。同样,可以包括用户界面224以呈现该系统所生成的数据集226。
[0074] 在图3的示例中,示出了任务选择器218(图2)的附加细节。在图3的示例中,与任务选择器218相关联的功能被示为由模型选择引擎306、映射308以及任务执行引擎318来执行。这些组件进行交互来选择并应用来自任务模型池310的一个或多个任务模型以生成使得对用户可用的数据集226。
[0075] 相应地,在图3中,模型选择引擎306被示为与映射308相耦合,映射308包括一个或多个模式与任务模型之间的映射。在所示示例中,映射308包括分别与任务模型A、B、C以及D相关联的模式A、B、C以及D。应当明白,映射308可包括模式与任务模型之间的任何合适数量的映射。虽然示出了四个映射,但应当明白,映射308可包含用户上下文信息206中存在的数据模式与池310中的模型中的各个特定模型之间的多个映射。映射308可以在任何合适的存储介质上实现并且可以是任何合适的格式。
[0076] 模型选择引擎306可以访问映射308和用户上下文信息206以通过将与模型中的一个或多个相关联的模式与用户上下文信息206进行匹配来标识在用户上下文中相关的一个或多个任务模型。可以向任务执行引擎318指示每一所标识的任务模型。任务执行引擎318可以访问来自池310的所标识的任务模型并应用该任务模型以生成一个或多个数据集226。在其中模型选择引擎306标识了多个任务模型的场景中,任务执行引擎318可以通过应用所有所标识的模型来生成数据集226。
[0077] 在其中使用多个模型来生成数据集226的场景中,所有数据集随后可被存储在计算设备105上。因此,在数据集226被呈现在诸如用户界面224等用户界面上时,用户可以探索这些数据集,这可包括指令将数据集226的不同部分呈现在用户界面上,而不必访问除计算设备105中的存储数据集的位置之外的服务器106或任何其他组件。这可允许在等待时间很小的情况下将所请求的信息提供给用户,这改进了用户体验。此外,在便携式电子设备(例如,计算设备105)包括有限量的存储器的情况下(通常是这种情况),存储只包括大量可用数据的一部分的数据集226可能是有利的。因此,将与用户输入202相关的多个数据集226存储在计算设备105上可造成改进的用户体验,因为即时地向用户提供了基于用户上下文206生成的、用户感兴趣的、很好地匹配用户的期望的信息,并可向用户提供比原始用户查询更宽泛的建议。
[0078] 使用映射308标识的模型可以从模型存储组件获得,如存储多个模型的任务模型310,仅作为示例,这些模型中的每一个被称为模型309。应当明白,不同的任务模型310可以存储不同的模型。
[0079] 每一任务模型309(可被构建成一系列声明性语句)可包括等式312、规则314、约束316、以及计算318。任务模型的这些元素中的每一个可以按以下形式编码:使得它可由任务执行引擎318应用于用户上下文信息206。为了标识要被包括在数据集226中的数据或标识任何其他合适的动作。在某些实施例中,任务模型可被存储在文件中,并且可被当作网页。
但是,可以用任何合适的方式来存储任务模型309,因为本发明各实施例不限于这一方面。
[0080] 任务模型309可包括一个或多个元素,它们可以是用声明性语言编写的语句。在某些实施例中,声明性语言可以处于不是计算机编程者的人可理解并且创作的水平。例如,它可包含等式312的语句和基于对来自等式312的等式的求值的结果的形式。等式可以是对输入数据集的符号或数学计算。
[0081] 任务模型309还可包括一个或多个规则314的语句,其中每一规则可以与基于对等式的求值的规则结果的形式相关联。某种类型的规则的应用可以触发要执行的搜索,由此收集新信息。根据某些实施例,当诸如由任务执行引擎318应用包含规则的模型(诸如模型309)时,作为对模型进行应用的一部分来执行的对规则的求值可以生成搜索查询,并且触发要由数据搜索引擎(诸如搜索引擎203)执行的搜索。由此,在这些实施例中,因特网搜索可以基于通过应用模型所生成的搜索查询来触发。但是,规则可以指定任何合适的结果。例如,规则可以是条件语句以及取决于动态地求值的条件是真还是假而应用的结果。因此,规则的结果部分可以指定要有条件地执行的动作、或要返回的信息、或任何其他类型的信息。
[0082] 任务模型309还可以包括一个或多个约束(如约束316)的语句。约束可以定义被应用于在应用模型时产生的一个或多个值的限制。约束的示例可以是不等式语句,诸如以下指示:应用模型的结果是要生成包含大于所定义的值的参数值的数据集。
[0083] 任务模型309还可包括要对输入数据执行的一个或多个计算318的语句。每一计算还可具有相关联的结果,这可被包括在数据集226中或在选择数据集的数据时以其他方式使用。在一些实施例中,结果可以标记所指定的计算的结果,使得它可以在模型309内的其他语句中被引用,或以其他方式指定如何可将计算的结果在生成信息给用户中进一步应用。计算318中的一个或多个可以是表示具有数值作为结果的数字计算的表达式,或任何其他合适类型的计算,诸如带符号计算。在将模型309应用于合适的数据(如用户上下文206)时,任务执行引擎318可以对该数据执行在模型规范中指定的任何计算,包括尝试对该数据求解等式、不等式、以及约束。
[0084] 任务模型309还可包括一个或多个度量320的语句,度量320可被用来提供与模型309相关联的任务被完成得有多好的测量。度量320例如可以是在(在执行任务模型时返回的)每一所返回的项目集合的各数据属性上操作的表达式,并且可产生每一集合事实上将该任务完成得有多好的优点分数。度量320的示例可包括“距全体的目标价格的百分比差”、“距所需饭馆的位置的英里数”、“被指示为在模型中关键的所满足的约束的数量”、或评估完成该任务的质量的任何其他合适的方式。在一些实施例中,对传递给用户界面224的数据量进行限制是合乎需要的。在这样的场景中,度量320可被用来对通过应用任务模型所生成的数据集进行排名,使得对于每一任务模型而言,数据集226包括有限数量的数据集,其中所包括的数据集是基于对度量320的应用来选择的。
[0085] 在某些实施例中,表示模型内的等式、规则、约束、计算或度量的语句可以相互关联,使得作为一个语句的结果被生成的信息可以在模型309内的另一语句中被引用。在这一场景中,应用任务模型309可能需要确定这些语句的求值次序,使得可以一致地应用所有语句。在某些实施例中,应用一模型可能需要多次迭代,在所述多次迭代期间只应用其中的所有参数的值都可用的那些语句。在某些语句的应用生成用于应用其他语句的值时,可以在后续迭代中对这些其他语句求值。如果对迭代中的语句的应用改变了在应用另一语句时使用的参数值,则将基于其依赖的所改变的参数值再次应用该另一语句。对模型中的语句的应用可以按此方式迭代地继续,直到应用该模型中的所有语句的一致结果从一个迭代到另一个迭代中出现,达到稳定且一致的结果。然而,应当认识到,可以使用任何合适的技术来应用任务模型309。
[0086] 存储在与服务器106(图1)相关联的计算机可读介质上的任务模型的池可以用任何合适的方式来生成。在一些实施例中,任务模型可由操作搜索引擎的实体(如搜索栈200)来提供。但是,在其他实施例中,任务模型中的全部或部分可由与操作搜索系统的实体不同的各方来提供。在一些实施例中,任务模型可由第三方提供。这些第三方可以包括公司或组织,这些公司或组织具有专门的需求或能力以指定要响应于搜索查询来生成的信息的本质。例如,生成与购买TV相关的数据集的任务模型可由电子产品经销商来提供。因此,在用户搜索TV时,来自电子产品经销商的任务模型可以生成提供与相关于TV的其他产品有关的信息的数据集,该其他产品能例如以合适的组合用来搭建家庭影院系统。
[0087] 作为另一示例,生成与搜索书籍相关的数据集的任务模型可由书商来提供。类似地,具有对任何其他合适的产品和服务的专业知识的实体可以提供要用于生成数据集的任务模型。因此,应当明白,由不同的实体提供的任何数量或类型的任务模型可被包括在池310中。
[0088] 在图3中,示出了将任务模型应用于用户上下文信息206使得生成了数据集226。数据集226中的一个或多个可被显示在以下类型的合适的图形用户界面(如用户界面224)上:该类型的用户界面允许计算设备检测与所显示的数据集中的一个或多个相关的用户输入。
在一些实施例中,可以提供请求变化所显示的数据的用户输入。因而,响应于该相对于所显示的数据的用户输入,可以显示来自数据集226的另选的数据集。
[0089] 采用根据一些实施例的搜索系统的便携式电子设备(如计算设备105)可以接收以任何合适的方式提供的用户输入。例如,用户输入可包括在包括用户界面320的显示器上的扫掠运动。此外,接收用户输入可包括检测该便携式电子设备的摇动运动。也可接收任何其他用户输入,包括选择所显示的数据的常规方法。
[0090] 图3还示出生成或更新用户上下文信息206的各方式之一。如图3所示,用户界面224可与维护用户上下文206的上下文管理器204相耦合。因此,关于接收到的相对于在用户界面224上呈现的数据集的(各)部分的用户输入的信息可被存储为用户上下文信息206的一部分。例如,可以从用户的选择中标识用户偏好并随后将其存储在用户简档207中。如果用户购买和/或检查特定产品,则相关信息也可被记录在用户简档207中或记录为检查过的产品214。但是,基于用户输入或动作的信息能以任何合适的方式和格式被存储在用户上下文206中,因为本发明的实施例不限于此。
[0091] 图4示出了根据本发明的一些实施例的生成数据集的过程。图4的过程可由作为信息检索和呈现系统200(图2)的一部分的一个或多个处理器来控制。但是,该过程可以在任何合适的控制电路的控制下执行,该控制电路可被配置成通过存储在计算机可读存储介质上的计算机可执行指令来执行该过程或以任何其他合适的方式来执行该过程。过程400可以在任何适当的时间开始。例如,过程400可以在用户操作便携式电子设备(例如,计算设备105)时开始,并提供与对项、信息、服务的搜索或任何其他合适的搜索相关的用户输入。因而,在框402,诸如搜索引擎203(图2)等搜索引擎可以接收包括信息请求的用户输入。该用户输入可以按任何合适的形式来接收,并且可以是显式输入,如文本输入或相对于显示在图形用户界面上显示的项目的输入。在一些实施例中,用户输入可以是隐式的——例如,用户可以扫描店内产品的条形码、拍摄各项的照片、或提供可被解释为指示用户希望接收信息的任何其他合适的动作。
[0092] 不论用户输入是如何接收到的,它可以变成用户上下文信息的一部分,该用户上下文信息揭示用户希望为其接收信息的一个或多个任务。在框404,可以基于用户上下文信息来标识各准则集合。每一准则集合可被表达为表征要提供给用户的信息的模型。该模型可以基于用户上下文信息来从模型池中选择。可以用任何合适的方式将准则集合标识为模型。在一些实施例中,用户上下文信息206(图2和3)中的信息,如用户简档207、最近搜索结果208、当前位置210、最近访问的位置212、以及检查过的产品214可被用来标识这些准则。
[0093] 接着,在框406,基于所标识的准则集合来生成数据集(诸如数据集226)。所生成的各数据集中的一数据集内的项在以下意义上是相关的:它们允许用户执行或完成与如上下文信息206中表示的用户的上下文相关的一个或多个任务。因此,在一些实施例中,每一数据集包括与在完成任务时有用的项目的全体有关的信息。此外,如上所述,取决于目标,可以不同地完成任务。因此,所标识的准则集合并且因此所生成的数据集可与任务和目标相关。
[0094] 尽管全部或部分所选数据集可能与用户相关,但向用户呈现所有所生成的数据集可能是不切实际的或不是有用的。因此,完成任务的所生成的数据集中的一个或多个可被呈现给用户,如通过在图形用户界面上显示。因为取决于目标任务可被不同地完成或每一任务可生成多个数据集,或者因为可标识多个任务,所以可在图形用户界面上向用户呈现允许该用户指定数据集中的要被显示的数据的部分的各个控件。
[0095] 不论所生成的数据集226中的一个或多个被提供给用户的方式如何,在判定框408,还可确定是否检测到相对于数据集提供的用户输入。该用户输入可以请求对所显示的数据的变化。该用户输入可以用任何合适的方式来接收。例如,接收用户输入可包括检测显示器上的扫掠运动。在一些实施例中,接收用户输入可包括检测便携式电子设备(如计算设备105)的摇动运动。还可以用任何常规方式来提供用户输入,例如选择用户界面上的合适控件(例如,按钮、菜单域,等等)。在一些实施例中,可经由任何合适的输入设备(如指示笔)来提供用户输入。
[0096] 在框408,如果确定相对于数据集226提供了用户输入,则在框410,可将不同的项显示在图形用户界面上。例如,在形成来自各数据集226的一数据集的各项的全体被显示在显示器上时,响应于包括扫掠运动的用户输入,来自各数据集226的包含不同的各项全体的另选数据集可被显示在显示器上。在一些场景中,该另选的数据集可以与在检测到该扫掠运动之前显示的数据集没有交集。类似地,在形成来自数据集226的一数据集的各项全体被显示在显示器上并且在框检测到的用户输入包括计算设备105的摇动运动时,可以从数据集226中的多个数据集中选择另选的各项全体。在该场景中,该全体可包括在用户输入之前曾显示的项中的一些。
[0097] 在一些实施例中,可以呈现与显示在显示器上的项有关的任何合适的信息。例如,如果项包括感兴趣的产品,如数码相机,则可以显示诸如购买该数码相机的一个或多个地点和该相机在各个地点的销售价格等信息。在一些实施例中,可以显示与数码相机相关的附件,如三脚架、不同镜头、指导手册、案例以及任何其他合适的项。可以按允许请求与数码相机有关的信息的用户用容易且直观的方式来接收该信息的方式,使用任何合适的文本、图像以及图形表示及这些的任何组合来呈现各项。此外,可以用允许用户进一步探索该信息的方式来呈现所请求的信息,包括显示该信息的各另选部分以及以不同的形式来呈现该信息。应当明白,本发明的各实施例不限于在显示器上呈现所请求的信息的任何特定方式。
[0098] 在一些实施例中,可接收与保留显示在显示器上的一个或多个项有关的用户输入。例如,在显示器包括表示数码相机的一组附件的各项时,用户可以提供与所显示的项中的一个或多个有关的适当输入(例如,选中单选按钮或任何其他合适的输入)以“钉住”这些项。因此,在随后提供了另一用户输入时,被“钉住”的项保留在显示器上,而未被选中保留在显示器上的项被不同的项所替换,这些不同的项可以是来自同一全体或不同全体的项。在某些项被“钉住”之后提供的用户输入可被称为在显示器上“旋转”对项的当前选择,并可包括例如显示器上的扫掠运动、计算设备105的摇动运动、或任何其他合适的输入。在一些场景中,用户输入将造成改变显示,使得在完成任务和/或目标时有用的另选的项全体替换在完成该同一任务或目标时有用的另一项全体。但是,应当认识到,可包括供用户指示接收另选的项全体的需求的其他机制。在一些实施例中,用户输入可包括与“枢转”焦点项有关的合适输入(例如,扫掠运动),使得该项被另选的项所替换。在枢转后,与另选的焦点项相关的数据集可替换与先前焦点项相关的数据集。
[0099] 如图4所示,在响应于用户输入显示了一个或多个项后,在框410,过程400可分支回判定框408,在此,可再次确定是否提供了相对于所显示的项的用户输入。因此,过程400可以是迭代的,并且在用户探索响应于该用户的信息请求而提供的信息时可多次接收到用户输入。在框408,如果确定没有提供相对于数据集226的用户输入,则过程400可结束。在用户因为该用户已经完成了对信息的探索而不再想要查看在框406所生成的数据集时,过程400可结束。或者,在用户提供了指示接收未包括在框406所生成的数据集内的信息的期望的输入时,过程400可结束。在该场景中,在过程400结束之后,基于指示接收未包括在先前生成的数据集中的数据的期望的用户输入,该过程可以重复。
[0100] 图5示出了根据本发明的一些实施例的响应于指示用户期望接收信息的用户输入来生成数据集的另一过程500。过程500可以在根据本发明的一些实施例的信息检索和呈现系统的搜索栈中实现。但是,该过程可以在被配置成执行图5所示的功能的任何合适的控制电路的控制下执行。在图5中,在框502,在接收到与感兴趣的项相关的用户输入时,过程500开始。用户输入,诸如用户输入202(图2和3),可以按任何合适的形式并经由任何合适的手段来接收。在一些实施例中,用户输入可被用来制定针对搜索引擎(如搜索引擎203(图2和3))的搜索查询。该搜索查询随后可被用来在任何合适的数据体中搜索用户所请求的信息。
例如,搜索引擎203可经由网络301访问数据源302和304,如图3所示。搜索引擎203响应于该搜索查询所获得的数据可作为最近搜索结果208被存储在任何合适的存储组件中,如用户上下文信息206。
[0101] 如上所述,存储在用户上下文信息206中的数据可被用来在框504选择要向用户呈现与其相关的数据的一个或多个任务。可以选择这些任务以便生成与该用户的信息请求相关的数据集中的一个或多个,使得这些数据集完成该任务。任务模型可以便于解释和处理根据该用户输入所生成的搜索查询。仅为简明起见,结合图5讨论了单个任务。然而,应当明白,可在用户上下文206中标识被定义为任务模型的不同模式(如在映射308中示出的那些(图3))以生成用于完成多个任务的多个数据集。用户随后可通过在不同的时间查看不同的项目集合来导航通过各数据集,这些项目集合中的每一个都完成所选任务。
[0102] 在一些实施例中,可以向用户呈现关于将各数据集226呈现给用户的不同选项。因而,因为取决于目标,各数据集226可以不同地完成该任务,所以在判定框506,可以确定是否标识了用于完成该任务的备选目标。可以用任何合适的方式来标识目标,包括基于在任务模型中所包含的信息。在一些情况下,用户上下文信息206可被用来基于与该用户相关联的不同信息来确定完成任务的不同目标。例如,用户上下文206包括用户简档信息,如可包括标识该用户的用户简档的用户简档207。
[0103] 作为指定示例,简档可以基于职业、爱好、用户已参与或将参与的活动、或以任何其他合适的方式来表征用户。例如,用户简档可以将用户标识为新手摄影师、体育摄影师、职业摄影师、旅行者、鸟类观察者、或使用任何其他合适的特性。取决于目标,该任务可被不同地完成——即,完成该任务的不同的项全体可被显示在显示器上。因此,如果任务包括向用户提供与数码相机和相关附件有关的信息,则在目标包括完成针对新手摄影师的任务和目标包括完成针对职业摄影师的任务时,与不同的数码相机和附件有关的信息可被提供给用户。确实,新手摄影师将寻找与职业摄影师感兴趣的数码相机不同的数码相机中的特征。在一些实施例中,可以由信息检索和呈现系统200基于用户上下文信息206中的简档信息或其他信息来自动选择针对所标识的任务的目标。但是,在一些实施例中,可以提示用户从与在框504所选择的任务相关联的各目标中指定目标。
[0104] 在框506,如果确定标识了用于完成该任务的超过一个目标,则过程500可进行至框508,在此,与所标识的目标有关的信息可被呈现给用户,使得用户可以从所标识的目标中选择一目标以根据所选目标来完成该任务。可以用任何合适的方式将完成该任务的备选的目标显示在用户界面上,这些方式允许将目标与该任务相关联并接收与对所显示的目标中的一目标的选择有关的用户输入。
[0105] 接着,在框510,可接收与对所显示的完成该任务的目标中的一目标的选择有关的用户输入。该用户输入可以用任何合适的方式来接收。例如,用户输入可包括触摸、压下、或以其他方式激活用户界面的合适控件。
[0106] 在框506,如果确定没有标识完成该任务的备选目标,则过程可进行至框512,在此,基于所选目标(如果选择了目标的话),选择完成该任务的数据集266中的一个或多个并呈现给用户。所选数据集可在显示器(例如,计算设备105的显示器)上被显示给用户。同样,如果在框510接收到与对所显示的各目标中的目标的选择相关的用户输入,则过程500也继续至框512,在此,可以选择在给定所选目标的情况下完成该任务的数据集226中的一个或多个并呈现给用户。
[0107] 在一些实施例中,用户可以导航通过响应于用户输入202所生成的数据集226,如框514所示意性地示出的,在此,接收与导航通过数据集226相关的用户输入。用户可以用多种不同的方式来导航通过数据集226。例如,用户可选择完成该任务的备选目标。结果,可以显示在给定所选目标的情况下完成该任务的不同的项全体。此外,用户可以选择全体中的不同的项作为兴趣焦点,包括请求与感兴趣的项有关的附加信息。此外,用户可以提供指令根据本发明的一些实施例的信息检索和呈现系统以不同的次序来显示数据集226中的项的输入,该输入伴有附加信息(例如,项的不同特性、项的比较结果,等等)并可以是任何其他合适的变型。
[0108] 在图5中,过程500被示为在执行了框514处的处理之后结束。但是,应当明白,过程500可以是迭代的,使得用户可以在任何合适的时间段期间使用信息检索和呈现系统,在该段时间期间,用户可以提供包括信息请求的用户输入并探索响应于该请求所生成的结果(例如,数据集226)。对结果的探索可包括一次只显示结果的一部分。此外,如上所述,相对于将结果呈现给用户,可以向用户呈现不同的选项。另外,在查看(以及探索)响应于用户的信息请求所生成的数据集时,新的信息请求可包括对与不同的感兴趣的项有关的信息的请求。
[0109] 图6A、6B以及6C示出了包括图形用户界面600的显示器的示例,该图形用户界面在接收到用户的信息请求时呈现不同信息。用户的信息请求可通过用户界面或经由任何其他合适的手段来接收。用户界面600可以是例如计算设备105的显示器的用户界面。
[0110] 在图6A中,用户输入包括对与“书籍”有关的信息的请求,如在组件602中所示。该请求可经由任何合适的手段并以任何合适的方式来接收。例如,用户可以在用户界面600的一个域中键入单词“书”或“书籍”。应当明白,显示器可包括任何合适的控件,如滚轮、旋转轮、包括一个或多个触摸按钮的按钮和任何其他控件,但为简明起见,未示出这些控件。同样,用户界面可包括为简明起见未显示的任何其他合适信息。
[0111] 响应于接收到包括对与“书籍”有关的信息请求的用户输入,根据本发明的一些实施例的信息检索和呈现系统可生成各数据集(如数据集226),其中每一数据集可完成与该信息请求相关的一个或多个任务。通过基于用户上下文信息206选择适当的任务模型并应用所选任务模型来生成各数据集。
[0112] 在该示例中,用户上下文信息206可包含指示用户对特定作家(如Dan Brown)所写的书籍感兴趣的信息。因此,响应于对与书籍有关的信息的请求,该信息检索和呈现系统可以标识出它包含用于完成所标识的作家所写的一组书籍的任务模型,并使用这一任务模型用完成作家Dan Brown所写的一组书籍的信息来生成数据集。用户上下文信息206中的其他项可指示用户的其他兴趣,这些兴趣进而可被用来标识可生成用户感兴趣的数据集的任务。例如,用户上下文信息206可包含指示该用户是狂热影迷的信息。作为响应,信息检索和呈现系统可以标识可被用来生成描述与该用户最近查看的书籍有关的影片的数据集的任务模型。其他信息可被用来基于用户的上下文来标识该用户感兴趣的其他任务。
[0113] 所标识的任务可被显示在用户界面600上,如信息604(图6B),其中信息检索和呈现系统包含该所标识的任务的、可被用来生成数据集的任务模型。
[0114] 在图6B的示例中,用户界面列出用户可能感兴趣的任务,如找出DVD和影片的任务。任务中的每一个可根据一个或多个目标来完成,这些目标也可作为选项被指示给用户。在图6B的示例中,找出DVD和影片的任务可以根据以下目标来完成:在该目标中,只标识被分类成“最近发现”的DVD和影片。
[0115] 类似地,信息检索和呈现系统可以用使用户能够管理书籍集合的任务模型来编程。基于标识与用户的书籍集合相关的数据集的任务模型来生成数据集的选项。这样的任务可以与一个或多个目标相关联。例如,该任务可以与相关于“最近发现”的目标或“完成你的Dan Brown集合”的目标相关联。这些目标中的每一个本身可与任务模型相关联,使得如果被选中,则该任务模型所生成的数据集可被呈现给用户。
[0116] 作为最后一个示例,信息检索和呈现系统可以用生成相关于游戏的数据集的任务模型来编程,其中该游戏与在用户上下文信息206中标识的书籍有关。
[0117] 可响应于用户指示对与书籍有关的信息的兴趣来标识的任务和相关联的目标的数量和性质对本发明而言不是关键。响应于这样的请求所标识的任务和目标的具体数量和性质取决于在信息检索和呈现系统中编程的任务模型的数量和性质。然而,在该示例中,指示了显示在信息604内的三个任务,一个与DVD和影片相关联,一个与书籍集合相关联,以及一个与游戏相关联。在该示例中,与这些任务中的每一个相关联的数据集中的项的数量也被显示。例如,标识DVD和影片的任务模型被示为在它旁边具有数字“78”,这可指示与其有关的信息被包含在由相关联的任务模型所生成的数据集中的DVD和影片的数量。类似地,数字“2”指示DVD和影片的最近发现的数量。信息检索和呈现系统在用户的上下文中认为与用户相关的其他任务和目标包括其他数字。
[0118] 基于用户的当前上下文可获得其信息的任务和目标中的每一个可被显示为控件。响应于用户选择这样的控件,该系统可向用户呈现根据所选任务或目标所生成的附加信息。该信息可基于提供用户界面600的便携式电子设备的操作或这样的设备与信息检索和呈现系统的各部分所驻留的服务器之间的交互来呈现。在其中通过应用与所显示的任务和目标中的每一个相关联的任务模型所生成的数据集,连同这样的任务和目标可在用户的上下文中与该用户相关的标识被传送给便携式设备的实施例中,该便携式电子设备可以完全基于所高速缓存的信息来生成新显示画面。但是,在一些实施例中,便携式电子设备响应于指示对与任务或目标之一相关联的信息的请求的用户输入,该便携式电子设备可以向服务器(如服务器106(图1))发送通信,该服务器随后应用与所指示的任务或目标相关联的任务模型来生成数据集,该数据集随后可被传达给便携式电子设备。
[0119] 不管要响应于用户对任务的选择而被呈现给用户的数据集中的信息何时被传送给呈现用户界面600的计算设备,该数据集中的信息可被用来基于该数据集生成包含附加信息的新显示画面。
[0120] 作为示例,如果接收到指示选择了“完成你的Dan Brown集合”606的任务的用户输入,如在图6B中由箭头608示意性地示出的,用户界面600可以显示与Dan Brown所写的新书“失落的符号”有关的信息610,如图6C所示。信息610可包括关于该书的任何合适信息,如其书名和图像612。这一信息可由信息检索和呈现系统以任何合适的方式来生成。例如,它可能已经基于最近进行的搜索而被存储在用户上下文信息206中。但是,如上所述,应用任务模型可触发搜索引擎执行一个或多个搜索。因此,信息610可能在应用与完成相关于特定作家的一组书籍相关联的任务模型时已经由搜索引擎203获得。
[0121] 信息610的内容对本发明而言不是关键。此外,所显示的信息可包括允许用户进一步导航可用信息的一个或多个其他控件。在该示例中,信息610可包含允许用户请求与该书有关的进一步信息的控件。例如,在其中计算设备105连接到因特网的实施例中,信息610可作为到一个或多个网页的链接被呈现给用户,使得用户可访问这些网页并接收与该书有关的进一步信息。用户可提供相对于该新书的不同用户输入。例如,关于该新书的信息610可被添加到该用户的待购书籍列表中或者用户实际上可购买该书。
[0122] 图7A、7B和7C示出了可被呈现给用户的进一步信息,其中该用户提供了以上结合图6A-C描述的对与“书籍”有关的信息的请求,并且该进一步信息被导航到与特定书籍有关的信息被呈现给了该用户的点处。在该示例中,通过界面600显示给用户的信息610可被认为是用户上下文信息206的一部分。使用信息610,即用户上下文信息206的一部分,可以标识附加任务并且可以向用户呈现用于显示完成这些任务的信息的选项。
[0123] 如图7A所示,标识了任务614并将其呈现给了用户。在该示例中,任务614包括“完成”、“类似”和“朋友”。“完成”任务可以与向用户呈现相关于响应于用户请求提供的信息610的项集合相关。“朋友”任务可以与向用户呈现相关联于用户的相关于信息610的朋友的信息相关。与该用户的朋友有关的信息可被存储在例如用户上下文206中。此外,与用户的朋友有关的信息可由搜索栈从任何其他合适的数据源获得。
[0124] “类似”任务,如其名称所示,可包括向用户呈现类似于信息610的项,其中可以使用对搜索栈可用的数据与信息610的关系的任何合适的度量来确定“相似性”。在所示示例中,如图7A所示,可接收指示对任务“类似”的选择的用户输入,由箭头616示意性地示出。作为响应,可以呈现来自用户上下文206的与类似书籍有关的信息618,如图7B所示。仅作为示例,信息618包括书籍A、B、C、D和E,并且伴有短语“你的类似书籍”。在一些实施例中,所呈现的信息可以是文本串的列表,并且该列表可由用户滚动以在显示器上呈现感兴趣的文本串。但是,应当明白,当用户导航通过所生成的数据集时,不同的合适的文本、图像和图形格式的任何合适的信息可被显示在用户界面上。
[0125] 可接收到与呈现来自所生成的数据集的项或项全体的另选方式相关的不同的用户输入。如图7B所示,对类似任务的选择造成生成5本书的全体,标识为作为信息618的一部分显示的书A、B、C、D和E。在一些场景中,由与“类似”任务相关联的任务模型所生成的数据内可包含超过5本类似书籍。可以用任何合适的方式来接收查看另选的书籍全体的用户输入。在一些场景中,用户输入可以指定用新全体来替换整个全体。但是,设备可以支持以下用户界面机制:通过该机制,完成任务的项全体被包含该前一全体中的项中的一些和一些新项的全体所替换。可以提供用户输入以指定保留那些项以及替换哪些项。例如,可接收相对于各项中的要保留在用户界面上的一个或多个项的用户输入,而所显示的各项中的其余项被不同的项所替换。在该示例中,接收指示“钉住”书C的用户输入620。为了指示书C被“钉住”,表示书C的框被示意性地示出在图7B中,如黑体框所包围的。其余书(书A、B、D和E)未被“钉住”并且因而在接收到合适的用户输入时可被其他书所替换。指令“旋转”对“类似”书籍(除书C之外)的当前选择的用户输入,可以是摇动计算设备、跨显示器的扫掠运动、或任何其他合适的输入。
[0126] 图7C示出可接收指令“旋转”对“类似”书籍的当前选择的合适的用户输入。仅作为一个示例,可由计算设备105内的输出指示设备105的摇动的信号的加速度计接收这样的输入。作为响应,表示“类似”书籍E、F、C、G和H的另选集合的信息622可被呈现给用户。因为书C被“钉住”,如图7B所示,所以信息622在相同位置处包括书C,相对于替换先前呈现的信息618中的书的其他书。对项的“钉住”还在以下结合图10A和10B描述。
[0127] 作为在用户请求书籍的信息时可由信息检索和呈现系统呈现给用户的数据的另一非限制性示例,图8示出其中用户选择任务“朋友”的场景,如箭头624示意性地示出的。作为响应,该信息检索和呈现系统可以呈现信息626“朋友读过”,它指示用户的“朋友”中的“朋友”628已读过Dan Brown所写的小说“失落的符号”。在该示例中,用户的“朋友”628的列表包括该用户的各个“朋友”,示意性地示为朋友A、B和C。“朋友”A、B和C中的每一个标识某一人或另一实体,被示为(630)与该“朋友”所读的书相关联。每一“朋友”可以按任何合适的方式与该用户相关联。例如,与该用户一样,该用户的“朋友”也可以是根据本发明的一些实施例的信息检索和呈现系统用户,并且这两个用户可以共享某一信息。
[0128] 图9A、9B、9C和9D示出了采用该信息检索和呈现系统响应于用户对数码相机有关的信息的请求来在图形用户界面900上呈现信息的示例。
[0129] 这些示例可示出其中例如用户在搜索(例如,在购物时)相关产品时标识感兴趣的项(在该示例中是数码相机)的场景。该信息检索和呈现系统可以制定关于特定数码相机的搜索查询,将该查询发送给服务器(例如,服务器106)并收到与该特定数码相机有关的信息和类似数码相机和/或该数码相机的附件的集合。该信息可以从位于服务器或其他数据源上的大型数据体中选择。将其他数码相机标识为与该用户感兴趣的数码相机“相似”的方式可包括与一个或多个准则相关的相似度以及任何其他合适的方式,这些准则诸如价格、重量、电池寿命、具有类似用户简档(例如,体育摄影师、旅行者、鸟类观察者等)的其他用户所表达的偏好。
[0130] 在图9A中,显示用户感兴趣的项。这些项可以与被用户标识为“我的发现”902的产品相关。但是,该系统进入图9A所示的状态的方式对本发明而言并不是关键。在该示例中,这些项对应于两个不同的数码相机904和906,它们被示为相应的图像。用户的“我的发现”902项集合可包括用户以任何合适的方式“发现”的项。例如,用户可以通过键入产品名称来提供与项有关的信息。或者,用户可以获得产品的图像(例如,产品的实际图像或条形码扫描),其中该图像被存储为用户上下文信息206的一部分。但是,与“我的发现”902中的项有关的信息可以用任何其他合适的方式来获得。可以基于任何合适的特性来标识产品,如它的制造商、品牌、类型、物理参数、或任何其他特性。此外,与项有关的信息不限于与产品有关的信息,并且可以是与服务、地理位置有关的信息或任何其他合适的信息。
[0131] 可接收与对显示在用户界面900上的项的选择相关的不同用户输入。如图9A中的箭头908所示,可接收指示(在该示例中)对数码相机906的选择的用户输入。响应于该选择,可以制定搜索查询并将其提供给搜索引擎203,搜索引擎203随后将该搜索查询应用于该系统可用的数据,如通过因特网。以此,在所示示例中,响应于包括与数码相机906有关的信息的搜索查询,提供了结果912。
[0132] 在该示例中,结果912可表示由生成所标识的项的购买信息的任务模型所生成的数据集。以此,结果912可包括购买数码相机906和/或数码相机906的附件的地点(例如,店的名称和地址和/或网站)和数码相机的在这些地点中的每一处的对应价格。结果912可包括任何合适数量的条目,这些条目中的每一个可以是由该任务模型所生成的数据集。与数码相机906相关的任何其他信息也可作为结果912来呈现。例如,数码相机906的图像913和/或数码相机906的附件可连同与购买该数码相机的每一地点有关的信息一起呈现。
[0133] 用户界面900可包括便于用户与该用户界面进行交互的任何合适的控件或控制机制。例如,指示购买结果被显示的扫掠运动,如显示项910附近的触敏屏上的箭头913所示,可被计算设备105解释为示出可基于包括数码相机906在用户界面900上的显示的上下文而被执行的另选任务的用户输入。作为一个示例,元素910上的扫掠运动可造成向用户呈现任务选项,这些任务生成与将相机906与其他相机进行比较或完成自然地被一起使用的项全体(包括相机906)相关的信息。
[0134] 图9C示出了在用户作出诸如扫掠运动之后的用户界面900。可以按允许用户访问与结果912上的条目中的每一个有关的进一步信息并执行合适的动作的方式来将结果912呈现给用户。例如,可以使用户能够从所选地点购买数码相机906。该购买可以经由计算设备105(即,经由因特网)来执行。
[0135] 应当明白,该信息检索和呈现系统使得用户能够在用户与该系统交互的任何时间提供任何合适的输入。例如,用户可以在任何时间“枢转”数码相机906以选择不同的数码相机来作为该用户的兴趣焦点。
[0136] 因此,可以向用户呈现相对于数码相机906的另选任务914。任务914可包括例如“比较”任务916和“完成”任务918。但是,可以向用户呈现任何其他合适的任务。如果用户选择“比较”任务916,如箭头920示意性地示出的,与不同的数码相机有关的信息可被呈现在用户界面900上。这样的信息可由生成与相机的比较相关的数据的任务模型来生成,不论该比较是基于价格、性能、还是任何其他所需特性。
[0137] 或者,用户可选择“完成”,并且作为响应,该信息检索和呈现系统可以标识生成数据集的任务模型,每一数据集构成可结合相机906使用的项全体。
[0138] 如图9D所示,信息922可包括附件名称、它的购买地点和在该地点的价格、以及可以是分数的“匹配”923,其中该分数可以是表示由与该分数相关联的信息所表示的项和定义要处于所选数据集中的项的一组准则(在该示例中被反映为模型)的相似程度。
[0139] 作为选择“完成”任务的一部分,用户可具有选择目标的选项。可以向用户呈现完成该任务的备选目标。结果,在用户选择各备选目标中的一目标时,可以向用户呈现在给定所选目标的情况下完成该任务的不同的项全体。
[0140] 因此,如图9D所示,可向用户呈现完成任务“完成”918的备选目标924。在图9D中,目标924可包括指示新手摄影师的“新手”、指示体育摄影师的“体育”、以及指示职业摄影师的“职业”。用户可以提供指示对来自目标924的一目标的选择的合适输入。随后响应于对目标的选择,向用户呈现项全体。在该示例中,在用户选择了目标“职业”时,“匹配”分数可以指示根据与“职业”目标相关联的任务模型内包含的度量320(图3),适于由职业摄影师使用的程度。
[0141] 如上所述,在一些实施例中,用户可以导航通过响应于用户的信息请求所生成的数据集。例如,用户可以从所生成的数据集中选择不同的项集合来呈现在显示器上。这些项集合中的每一个可完成与该用户的信息请求相关的任务。
[0142] 在一些场景中,在响应于用户的信息请求来提供信息(如项全体或项全体的一部分)时,该用户可能对这些项中的一些感兴趣,而希望呈现另选或不同的项来代替某些项。因此,在一些实施例中,可接收与保留显示在显示器上的一个或多个项有关的用户输入。图
10A和10B示出了“钉住”显示在用户界面上的某些项并“旋转”来自所生成的数据集的可用项以替换当前显示的项中的其余项的示例。“旋转”可以按任何适合的方式执行。例如,包括随机化方面的技术可被用来随机选择项来替换当前显示的未被标记为“钉住”的项。此外,当前显示的项可由相同或不同类型的其他项替换。在“旋转”时替换当前显示的项的项满足所选任务和目标。
[0143] 图10A示出了示例性用户界面1000,如可在用户计算设备105(图1)上提供的用户界面。可以在任何合适的便携式电子设备(如计算设备105(图1))的显示器上呈现用户界面1000。
[0144] 在所示示例中,任务1002是“Complete(完成)”并且任务1002包括对与数码相机有关的信息的请求。例如,用户可能希望购买数码相机。如在所示示例中示出的,与数码相机有关的信息1004被显示在用户界面1000上。信息1004包括制造商(在该示例中是 )和数码相机的类型以及该相机的图像。在该示例中,信息1004是用来标识任务并用适当地选择的任务模型生成数据集的上下文信息的一部分。
[0145] 在一些实施例中,“Complete”任务可被用来呈现项的集合,其中对某一个项感兴趣的用户也可能对这些项感兴趣。应当明白,与数码相机有关的信息1004仅是作为示例示出在图10A中,因为可接收到相对于任何项、服务、或信息的用户输入。例如,用户输入可包括对与地理位置、医院中的病人、或购物相关数据有关的信息的请求。作为另一示例,“Complete”任务在不同的上下文中可具有不同的效果。在其中用户购买消费产品的上下文中,“Complete”任务可具有图10A中所示出的效果。在其他上下文中,“Complete”任务可被映射到不同的任务模型并且因此可具有不同的效果。例如,在一些场景中,处于某一地理位置的用户可请求基于该用户的地理位置和可能具有该用户感兴趣的物品的可用店铺的购物计划和路线。
[0146] 此外,图10A示出取决于完成任务的目标,可以用不同的方式来完成该任务。在该示例中,目标1006包括与数码相机和该数码相机的附件的价格相关的“Budget(预算)”。因此,取决于指定预算,可以向用户提供关于不同数码相机和相关附件的信息。此外,在一些实施例中,对数码相机的选择可被“固定”,并且取决于指定预算,可以向用户提供不同的附件。
[0147] 为了设置不同的预算,用户界面1000提供滑动刻度1008,使得能够接收相对于用户希望接收其信息的附件的价格范围的用户输入。通过控件1006输入的指定预算的信息可以用任何合适的方式来应用,以根据指定目标来生成项全体。例如,通过控件1006指定的不同的预算范围可以映射到适于选择不同价格范围的项的不同的任务模型。或者,通过控件1006所输入的信息可以变成用户上下文信息206的一部分,并可被访问以确定通过应用模型所生成的数据集是否与该模型中指定的准则相一致。
[0148] 用户界面1000可包括适于接受用户输入的任何附加控件,包括常规控件,如“OK(确定)按钮”、“Edit(编辑)按钮”、“Back(后退)按钮”、以及出于表示简明起见没有伴有数字附图标记的任何其他合适的控件。应当明白,可以在用户界面1000上提供其他控件,即使它们在该示例中未示出。例如,当在用户界面1000上显示的项全体中的项的列表超过计算设备105的屏幕的大小时,可以提供滚动条以向下滚动该全体。
[0149] 如图10A所示,与数码相机的附件1010、1012、1014以及1016有关的信息被显示在用户界面1000上,作为相应图像和附件的描述(即,名称和价格)。但是,应当明白,可以呈现与附件有关的任何合适的信息。
[0150] 被生成来实现或完成一任务的数据集可将该任务实现或完成到不同的程度。因此,在一些实施例中,数据集将任务完成得有多好的度量可连同该数据集一起呈现给用户。这可便于用户评估搜索结果,从而改善用户体验。
[0151] 如图10A所示,用户界面1000可包括指示包含附件1010、1012、1014以及1016(以及显示画面上放不下的任何其他附件)的项全体将“Complete”任务完成得有多好的度量1005。度量1005可包括可作为任何合适的属性的数据属性,并且可包括例如每一集合将该任务完成得有多好的优点分数。在所示示例中,度量1005中的数据属性的示例可包括“距全体的目标价格的百分差”、“在模型中表示为关键的要满足的多个约束”、或评估该任务的完成质量的任何其他合适的方式。
[0152] 在该示例中,被指示为度量1005的一部分的值可通过应用与所选任务模型相关联的度量320(图3)来计算得到。但是,可以按任何适合的方式来生成该值。
[0153] 可接收相对于各项中的要保留在用户界面1000上的一个或多个项的用户输入,而所显示的各项中的其余项被不同的项所替换。在该示例中,通过选择位于项1012和1014中的每一个附近的相应单选按钮,项1012和1014被示意性地示为“钉住”在用户界面1000上。但是,应当明白,可以用任何合适的方式来将显示在用户界面1000上的项选择为“钉住”,因为本发明不限于此。
[0154] 为“旋转”未通过“钉住”被选择的项——在该示例中是镜头1010和三脚架1016,计算设备105可接收任何合适的输入。例如,用户输入可以是显示器上的扫掠运动、计算设备105的摇动运动、或任何其他合适的输入。
[0155] 如图10B所示,在项1012和1014被“钉住”并且其余项1010和1016被“旋转”后,项1010和1016分别被不同的项1011和1017所替换。因而,镜头1010被相机包1011所替换,而三脚架1016被摄影手册1017所替换。在该示例中,没有提供相对于任务1002和/或目标1006的另选选择的用户输入。然而,应当明白,在一些场景中,在用户“钉住”某些所显示的项时,可接收到相对于对不同的任务和/或目标的选择的用户输入。
[0156] 应当明白,图10A和10B中的项仅是作为示例来示出的,并且可响应于包括信息请求的用户输入来显示任何合适的项全体。此外,在所示示例中,如图10A所示,未被“钉住”的项10110和1016被不同类型的项所替换。应当注意,在图10A中,项1014和1016被示为加了标记,连同数码相机的附件的类型(“三脚架”),并带有“选项1”或“选项2”。这些选项记法指示可以显示不同类型(例如,相对于制造商、物理尺寸、以及其他参数)的相同项。此外,如果某一个项在显示器上被替换,则可以用相同类型的项来替换它,这因而是被替换的项的另一“选项”。
[0157] 至此描述了本发明的至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。
[0158] 例如,描述了其中基于标识包含与求解出了一组约束的项有关的数据的数据集通过用户界面来呈现信息的各实施例。在一些实施例中,存在“反向求解”步骤,其中用户可选择项目的集合并且该系统——例如通过线性等式组的反向求解或通过本领域中已知的Newton-Raphson方法等爬山法——可提出可由这些所选项目所完全或部分完成的一个或多个任务。在其中该组约束由任务模型表示的实施例中,这一反向求解需要选择一个或多个任务模型,其中所标识的一组项目对该任务模型中表示的该组约束求解,至少求解到合适的程度。这样的解可被用来用任何合适的方式向用户呈现信息。例如,所标识的任务或基于以下认识所选择的其他信息可被建议给用户:用户对特定任务感兴趣。作为替换或补充,该系统可自动执行与用于执行这样的任务相关的动作或将这些动作建议给用户。
[0159] 这样的更改、修改和改进旨在是本发明的一部分,且旨在处于本发明的精神和范围内。从而,上述描述和附图仅用作示例。
[0160] 可以多种方式中的任一种来实现本发明的上述实施例。例如,可使用硬件、软件或其组合来实现各实施例。当使用软件实现时,该软件代码可在无论是在单个计算机中提供的还是在多个计算机之间分布的任何合适的处理器或处理器的集合上执行。
[0161] 此外,应当理解,计算机可以用多种形式中的任一种来具体化,如机架式计算机、台式计算机、膝上型计算机、或平板计算机。此外,计算机可以具体化在通常不被认为是计算机但具有合适的处理能力的设备中,包括个人数字助理(PDA)、智能电话、或任何其他适合的便携式或固定电子设备。
[0162] 同样,计算机可以具有一个或多个输入和输出设备。这些设备主要可被用来呈现用户界面。可被用来提供用户界面的输出设备的示例包括用于可视地呈现输出的打印机或显示屏和用于可听地呈现输出的扬声器或其他声音生成设备。可用于用户界面的输入设备的示例包括键盘,诸如鼠标、触摸垫、数字化图形输入板等定点设备,以及触摸响应显示屏;直接交互显示器;同时响应屏幕上的两个或更多个手指的多触摸显示器。作为另一示例,计算机可以通过语音识别或以其他可听格式来接收输入信息。
[0163] 这些计算机可以通过任何合适形式的一个或多个网络来互连,包括作为局域网或广域网,如企业网络或因特网。这些网络可以基于任何合适的技术并可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或光纤网络。
[0164] 而且,此处略述的各种方法或过程可被编码为可在采用各种操作系统或平台中任何一种的一个或多个处理器上执行的软件。此外,这样的软件可使用多种合适的程序设计语言和/或程序设计或脚本工具中的任何一种来编写,而且它们还可被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。
[0165] 就此,本发明可被具体化为用一个或多个程序编码的一个计算机可读介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、紧致盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、现场可编程门阵列或其他半导体器件中的电路配置、或其他非瞬态的有形计算机存储介质),当这些程序在一个或多个计算机或其他处理器上执行时,它们执行实现本发明的上述各个实施例的方法。计算机可读介质或媒体可以是便携的,使得其上存储的一个或多个程序可被加载到一个或多个不同的计算机或其它处理器上以实现本发明上述的各个方面。
[0166] 此处以一般的意义使用术语“程序”或“软件”来指可被用来对计算机或其他处理器编程以实现本发明上述的各个方面的任何类型的计算机代码或计算机可执行指令集。此外,应理解,根据本实施例的一个方面,当被执行时实现本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而是可以用模块化的方式分布在多个不同的计算机或处理器之中以实现本发明的各方面。
[0167] 计算机可执行指令可以具有可由一个或多个计算机或其他设备执行的各种形式,诸如程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以按需在各个实施例中进行组合或分布。
[0168] 而且,数据结构能以任何合适的形式存储在计算机可读介质上。为简化说明,数据结构可被示为具有通过该数据结构中的位置而相关的字段。这些关系同样可以通过对各字段的存储分配传达各字段之间的关系的计算机可读介质中的位置来得到。然而,可以使用任何合适的机制来在数据结构的各字段中的信息之间建立关系,例如通过使用指针、标签、或在数据元素之间建立关系的其他机制。
[0169] 本发明的各个方面可单独、组合或以未在前述实施例中特别讨论的各种安排来使用,从而并不将其应用限于前述描述中所述或附图形中所示的组件的细节和安排。例如,可使用任何方式将一个实施例中描述的各方面与其他实施例中描述的各方面组合。
[0170] 同样,本发明可被具体化为方法,其示例已经提供。作为该方法的一部分所执行的动作可以按任何合适的方式来排序。因此,可以构建各个实施例,其中各动作以与所示的次序所不同的次序执行,不同的次序可包括同时执行某些动作,即使这些动作在各说明性实施例中被示为顺序动作。
[0171] 在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与(若不是使用序数词则)具有同一名字的另一元素区分开的标签以区分各权利要求元素。
[0172] 同样,此处所使用的短语和术语是出于描述的目的而不应被认为是限制。此处对“包括”、“包含”、或“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其他项目。