系统级搜索的用户界面的制作方法

文档序号:6438536阅读:247来源:国知局
专利名称:系统级搜索的用户界面的制作方法
系统级搜索的用户界面
背景技术
由于计算机越来越普遍,用户可用的电子数据的数量也变得非常巨大。尽管访问如此大量的电子数据对用户非常有益,它也存在其问题。一个这样的问题就是,用户难于找到他们正在寻找的特定电子数据。例如,为了找到他们正在寻找的特定电子数据,用户可能遇到访问多个不同应用程序的情况。这典型的包括了用户请求执行这些不同的应用程序、导航至不同应用程序的搜索界面以及在这些不同应用程序的每一个中输入相同的检索词。这可能会导致用户的繁琐和令人沮丧的经历。发明概述
提供了此概述以简化形式来介绍概念的选择,其将在下面的详细描述中进一步描述。 此概述既非用于确定所要求保护的主题的关键特征或必要特征,也非用于限定所要求保护的主题的范围。根据一个或多个方面,显示包括数据输入部分以及应用程序识别部分的系统级搜索用户界面。用户数据输入作为检索词而被显示在数据输入部分,在计算装置上的多个应用程序中可以使用检索词来搜索的一个或多个应用程序的每一个的标识符被显示在应用程序识别部分。检索词被提供给多个应用程序中的一个应用程序,以便这个应用程序基于检索词生成和显示搜索结果。根据一个或多个方面,显示搜索用户界面。搜索用户界面包括第一部分和第二部分,借助第一部分显示作为检索词的用户数据输入,以及借助第二部分显示在计算装置上可使用检索词来搜索的一个或多个应用程序的标识符。检索词被提供给计算装置上的多个应用程序中的一个,以使该应用程序基于至少一个检索词来显示搜索结果,并且当应用程序显示搜索结果的时候,包括至少第一部分的搜索用户界面的显示被保持在当前的显示位置上。附图的简要描述
在附图中使用相同的数字来指示相似特征。

图1显示了根据一个或多个实施例实现系统级搜索用户界面的示例性系统。图2、3、4、5和6显示了根据一个或多个实施例包括系统级搜索用户界面的示例性
屏幕显示。图7是显示根据一个或多个实施例的示例性系统级搜索模块的框图。图8是显示根据一个或多个实施例在系统级搜索模块上注册应用程序的示例性注册过程的流程图。图9显示根据一个或多个实施例包括系统级搜索用户界面的另一个示例性屏幕显不。图10是显示根据一个或多个实施例用于建议检索词的支持语言备选 (linguistic alternative)的示例性系统的框图。图11是显示根据一个或多个实施例使用系统级搜索用户界面的示例性过程的流程图。
图12是显示根据一个或多个实施例在系统级搜索用户界面的应用程序识别部分中显示应用程序标识符的示例性过程的流程图。图13显示根据一个或多个实施例配置为实现系统级搜索用户界面的示例性计算
直ο详细描述
此处讨论了系统级搜索用户界面。系统级搜索用户界面(UI)提供了允许用户输入检索词以及在多个不同应用程序中搜索那个检索词的集中式UI。用户能够使用系统级搜索UI 来搜索的特定应用程序在系统级搜索UI上注册,提供关于这些应用程序的各种信息。系统级搜索UI使用该注册信息来确定这些不同应用程序如何被用户识别,这些应用程序如何被启动到它们的搜索结果显示视图中等等。系统级搜索UI基于各种标准确定这些不同应用程序的排名,并且根据这个排名显示应用程序的标识符。然后用户选择这些不同应用程序中要针对该检索词进行搜索的一个或多个应用程序,作为响应,系统级搜索UI将检索词提供给所选应用程序,并且所选应用程序接下来显示它的搜索结果。图1显示了根据一个或多个实施例实现系统级搜索用户界面的示例性系统100。 系统100包括能够通过网络106与一个或多个(X)其他装置104(1),…,104(m)可选地进行通信的计算装置102。网络106可以是各种不同的网络,包括互联网、局域网(LAN)、公共电话或其他电话网络、内联网、其他公共和/或专有网络、它们的组合等等。计算装置102 可以是各种不同类型的装置。例如,计算装置102可以是台式计算机、笔记本或平板计算机、上网本或膝上型计算机、服务器计算机、移动站、娱乐设备、通信地耦合至显示装置的机顶盒、电视机、蜂窝或其他无线电话、游戏机和汽车计算机等等。此外,尽管被示例为单个装置102,应该指出的是,计算装置102的各组件或模块可以作为多个装置的一个系统来实现,这些组件或模块在该系统中分布在这些不同的装置中。装置104可以是各种能够与计算装置102通信的不同的计算装置。正如下面更详细讨论的,计算装置102可选地访问一个或多个装置104以获得各种信息。与计算装置102 的讨论类似,装置104可以是各种不同类型的装置。装置104可以是与计算装置102相同类型的装置或备选地是不同类型的装置。在系统100中,计算装置102被示例为通过网络 106与装置104通信。备选地,计算装置102还可以通过其他类型的通信机制或连接与装置 104通信,例如各种有线和/或无线连接(例如,通用串行总线(USB)连接,无线USB连接,蓝牙连接,IEEE 1394连接等等)。计算装置102包括操作系统110和一个或多个应用程序112。操作系统110管理计算装置102上的应用程序112的启动和运行。每个应用程序112可以是各种不同类型的应用程序,例如生产力(productivity)应用程序(例如,电子邮件应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序等)、娱乐应用程序(例如,游戏应用程序、音频和 /或视频回放应用程序等)、社交联网应用程序等等。应用程序112可以访问本地数据,访问在计算装置102 (或者与计算装置102耦合的存储装置)上的数据,而不是通过网络106访问装置104上的数据。例如,应用程序112可以是在本地访问数据的文字处理应用程序。除了本地访问数据之外,或者可替代的,应用程序可以通过网络106访问一个或多个装置104 的数据。例如,应用程序112可以是提供电影服务的装置104的界面应用程序,允许计算装置102的用户通过应用程序112从装置104中访问电影。
操作系统110包括输入模块114、显示模块116和系统级搜索模块118。操作系统典型的在软件和/或固件中实现,尽管操作系统110中的至少某些部分可备选地在硬件中实现。输入模块114从计算装置102的用户处接收用户输入。用户输入可以用各种不同方式提供,例如按压装置102的小键盘或键盘的一个或多个按键,按压装置102的控制器 (例如,遥控装置、鼠标、触控板等)的一个或多个按键,按压装置102的触摸板或触摸屏的特定部分,在装置102的触摸板或触摸屏上做出特定手势,和/或在装置102的控制器(例如, 遥控装置、鼠标、触控板等)上做出特定手势。用户输入还可以通过其他物理反馈输入提供给装置102,例如轻击装置102的任意部分,可由装置102(例如震动装置102、旋转装置102 等)的运动检测组件所识别的动作,等等。用户输入还可以通过其他方式提供,例如通过麦克风的可闻输入,通过图像捕捉装置观测到的手或其他身体部位的运动,等等。这些用户输入允许用户与计算装置102互动,例如通过输入特定字符或符号,选择特定按钮或菜单选项,拖放各种描述或图像,等等。显示模块116在计算装置102的屏幕上生成、管理和/或输出显示。此显示包括各种信息,例如由应用程序112提供的信息、由系统级搜索模块118或操作系统110的其他模块提供的信息,等等。显示给用户的信息包括可由输入模块114接收的用户输入。显示模块116显示信息的屏幕可由各种不同方式实现,例如使用液晶显示器(LCD)技术、等离子屏幕技术、图像投影技术等等。可以包括屏幕作为计算装置102的一部分,或者显示模块116 可以生成一个或多个信号,该一个或多个信号被输出至包括一个或多个屏幕的一个或多个其他显示装置。尽管此处的讨论涉及在一个或多个屏幕上显示信息,然而应该明白的是,信息也可以由显示模块116以其他方式呈现给用户,例如以可闻方式。系统级搜索模块118提供系统级搜索UI,其是允许计算装置102的用户输入检索词以及在不同应用程序112中搜索那个检索词的集中式UI。检索词可以是字母、字符、符号等等的任意组合,例如一个或多个字、字的一部分等等。系统级搜索UI包括数据输入部分以及应用程序识别部分,用户通过数据输入部分输入检索词,不同的应用程序112通过应用程序识别部分识别。正如下文所具体讨论的,在应用程序识别部分中识别的某些特定应用程序112是已经在系统级搜索模块118上注册的那些应用程序112。系统级搜索模块118提供的系统级搜索UI允许计算装置102的用户在集中式UI 中输入一次他或她所需的检索词,然后选择一个或多个不同的应用程序112来搜索那个检索词。响应于通过系统级搜索UI选择应用程序112,检索词被提供给所选的应用程序112, 接下来,所选应用程序基于那个检索词确定和显示(通过显示模块116)搜索结果。用户只需通过借助系统级搜索UI选择应用程序就可以使不同应用程序112搜索那个相同的检索词。因此,用户可以在单次就将检索词输入至系统级搜索UI,而不需要用户与操作系统110 交互来请求执行不同应用程序112、导航至那些不同应用程序112中的每一个的搜索界面、 以及将同一检索词输入至那些不同应用程序的每一个中。然后用户可以选择(例如,通过单个用户输入,例如击键、在触摸屏上轻击应用程序标识符、当指针或其他光标在应用程序标识符上时点击该应用程序标识符等)一个或多个应用程序112,当应用程序被选择时依赖于操作系统110来自动执行那些应用程序112,以及依赖于系统级搜索模块118来提供检索词给所选应用程序112。
6
系统级搜索UI可以在不同时间激活。当系统级搜索UI被激活时,系统级搜索UI 由显示模块116显示。系统级搜索模块118能够保持系统级搜索UI激活以及持续显示。或者,系统级搜索模块118能够响应于特定请求(例如,执行搜索的用户请求、来自应用程序 112的执行搜索的请求等等)激活系统级搜索UI,保持系统级搜索UI隐藏直至其被激活。 应用程序112能够利用系统级搜索UI,调用系统级搜索模块118或者将用户导向至已经由模块118显示的系统级搜索UI。因为它们可以依赖于系统级搜索UI,应用程序112不需要提供它们自己的搜索用户界面。因此,应该指出的是,可以用不同方式来使用系统级搜索UI。用户可以将检索词输入至系统级搜索UI,并且之后经由系统级搜索UI来选择一个或多个应用程序112以搜索那个检索词。或者,用户可以经由应用程序112输入请求以输入检索词。作为响应,显示该系统级搜索UI (或者用户被导向至已经被显示的系统级搜索UI ),借助于该系统级搜索UI用户能够输入他或她的检索词来搜索该应用程序112。或者,用户可以选择一个或者多个应用程序112而无需输入检索词。响应于此,将用户选择通知给所选的应用程序,并且所选应用程序显示它的搜索结果显示视图。由于用户还没有输入检索词,所以所选应用程序不会显示搜索结果。然而,输入检索词以后,所选应用程序将会显示它的搜索结果。图2显示了根据一个或多个实施例包括系统级搜索用户界面的示例性屏幕显示 202。屏幕显示202包括工具栏(或者任务栏)204。工具栏204包括各种不同信息,例如当前时间(显示为上午10:10)。系统级搜索UI被示例为包括两部分数据输入部分206和应用程序识别部分 208。用户可以输入各种单词、字母、符号、字符等等作为检索词(例如通过如上所述的图1 中的输入模块114)。此用户输入在数据输入部分206中显示。在所示例的这个例子中,用户已经输入了字符“Ha”。在屏幕显示202所示例出的时间点上,“Ha”是检索词。然而,应该指出的是,用户可以继续输入其他字符,形成不同的检索词。应用程序识别部分208包括不同应用程序的标识符。这些标识符在示例性显示 202上被示例为“应用程序1的名字”、“应用程序2的名字”、“应用程序3的名字”、“应用程序4的名字”和“应用程序5的名字”。应用程序识别部分208中的这些标识符的每一个是一个可被用户选择以搜索在数据输入部分206中显示的检索词的应用程序。用户以各种不同方式来选择在应用程序识别部分208中识别的应用程序之一(例如,通过图1的输入模块 114),例如用手写笔或手指触摸应用程序的标识符,在应用程序的标识符上移动指针并按压光标控制装置(例如鼠标)的按钮等等。应用程序识别部分208可以在用户将数据输入至数据输入部分206中时被自动显示,或者,备选地,响应于显示应用程序识别部分208的用户请求而被显示。例如,用户以各种不同方式(例如通过图1的输入模块114)选择菜单图标210,例如通过用手写笔或手指触摸菜单图标210,在菜单图标210上移动指针并按压光标控制装置(例如鼠标)的按钮,按压键盘的某个键等等。响应于菜单图标210的用户选择,显示应用程序识别部分208。此外,与菜单图标210的选择类似,系统级搜索UI包括可用各种不同方式(例如通过图1的输入模块114)来选择的搜索按钮212。响应于搜索按钮212的用户选择,在数据输入部分206中当前被输入的检索词被发送至应用程序以进行搜索。可用不同方式来确定向其发送检索词的应用程序,例如当前活动的应用程序、应用程序识别部分208中的当前高亮的应用程序、在应用程序识别部分208的顶部列出的应用程序等等。当前活动的应用程序指的是当前在前台运行的应用程序并且是用户能够交互的应用程序(例如,图1的应用程序112中的一个(操作系统以外的应用程序))。虽然多个应用程序可以同时在计算装置上运行,但是只有一个是当前活动的应用程序。应用程序识别部分208通常不包括当前活动的应用程序,尽管备选地,应用程序识别部分208也可以包括当前活动的应用程序。应该指出的是,在附图中示出的系统级搜索UI的数据输入部分206和应用程序识别部分208的位置是示例性的,并且系统级搜索UI可以在屏幕显示202的任意处显示。例如,数据输入部分206和应用程序识别部分208可以作为菜单栏的一部分、图标栏或停靠栏的一部分等等在屏幕显示202的顶端、沿着屏幕显示202的左侧或右侧、在屏幕显示器202 的中心显示。图3显示根据一个或多个实施例包括系统级搜索用户界面的另一个示例性屏幕显示302。屏幕显示302类似于图2的屏幕显示202。然而,屏幕显示302将应用程序识别部分304示例为包括了代表应用程序的图标或符号,而不是如图2的应用程序识别部分208 所示例的应用程序名字。这些图标或符号可以被用户选择,类似于以上针对应用程序识别部分208所讨论的应用程序的名字的选择。图4显示根据一个或多个实施例包括系统级搜索用户界面的另一个示例性屏幕显示402。屏幕显示402类似于图2的屏幕显示202。然而,屏幕显示402还显示一个名为 “电影应用程序”的当前活动的应用程序的窗口 404。窗口 404可以显示各种不同信息的任一信息,例如文本(在窗口 404中显示为水平线)和图像(在窗口 404中显示为框)。在一个或多个实施例中,在应用程序识别部分208中识别的应用程序不包括在窗口 404中显示的当前活动的应用程序。或者,在应用程序识别部分208中识别的应用程序包括在窗口 404中显示的当前活动的应用程序。在一个或多个实施例中,响应于对搜索按钮212的用户选择,当前输入进数据输入部分206的检索词(在所示的例子中的“Ha”)被发送至当前活动的应用程序。如果用户要选择搜索按钮212,则作为响应,当前输入进数据输入部分206的检索词被发送给窗口 404 中所显示的应用程序。如果用户要选择在应用程序识别部分208中识别的应用程序之一而不是搜索按钮212,则作为响应,当前输入进数据输入部分206的检索词被发送至所选应用程序。图5显示根据一个或多个实施例包括系统级搜索用户界面的另一个示例性屏幕显示502。屏幕显示502类似于图2的屏幕显示402,显示了一个用于名为“电影应用程序” 的当前活动的应用程序的窗口 404。然而,屏幕显示502显示在已经将检索词发送给当前活动的应用程序之后的窗口 404。窗口 404可以显示任意各种不同信息作为搜索结果,例如文本(在窗口 404中显示为水平线)和图像。正如在示例性的屏幕显示502中所示,被选择用于搜索该检索词的应用程序显示搜索结果。此外,数据输入部分206和应用程序识别部分208被保持显示在屏幕显示502 上。图6显示根据一个或多个实施例包括系统级搜索用户界面的另一个示例性屏幕显示602。屏幕显示602类似于图2的屏幕显示402,显示一个用于名为“电影应用程序”的应用程序的窗口 404。然而,屏幕显示602还示例了窗口 604,窗口 604包括了来自一个不同于窗口 404中显示的应用程序的应用程序的搜索结果。在应用程序识别部分208中识别的应用程序被选择后,显示窗口 604。假设,例如,“应用程序3的名字”标识电子书(E-book) 阅读器应用程序。响应于对“应用程序3的名字”的用户选择,当前输入至数据输入部分 206中的检索词(在所示的例子中为“Ha”)被发送至所选应用程序。所选应用程序被启动 (如果还没有运行的话),搜索该检索词“Ha”,并且生成要在窗口 604中显示的信息作为搜索结果。窗口 604可以显示任意各种不同信息作为搜索结果,例如文本(在窗口 604中显示为水平线)和图像。在示例性的屏幕显示602中,生成在窗口 604中显示的信息的应用程序是当前活动的应用程序。仍然显示窗口 404,其显示作为之前的当前活动的应用程序的应用程序的信息。或者,响应于部分208中对“应用程序3的名字”的用户选择,或者响应于启动所选应用程序,窗口 404可以被关闭(例如,在窗口 404中显示信息的应用程序也被关闭)或者改变其外观(例如不再显示,缩小为任务栏或工具栏的图标)。图7是显示根据一个或多个实施例的示例性系统级搜索模块700的框图。系统级搜索模块700可以是,例如图1的系统级搜索模块118。系统级搜索模块700包括用户界面模块702,应用程序排名模块704、应用程序注册模块706以及应用程序注册存储区(store) 708。应用程序注册模块706管理系统级搜索模块700的应用程序注册,允许注册的应用程序被显示在系统级搜索UI的应用程序识别部分中。此注册还涉及允许已注册的应用程序使用系统级搜索UI。关于已注册的应用程序的信息在应用程序注册存储区708中保存。应用程序排名模块704确定注册应用程序的排名,根据它们的排名,注册应用程序被显示在系统级搜索UI的应用程序识别部分中。用户界面模块702生成作为系统级搜索UI显示的信息,并且提供信息给系统级搜索模块700所处的计算装置的显示模块(例如提供给图1的显示模块116)。UI模块702还与应用程序(例如图1的应用程序112)交互,包括启动用户选择的应用程序,将检索词传送至应用程序,以及接收来自作为系统级搜索UI的一部分而显示的应用程序的信息。为了在系统级搜索UI的应用程序识别部分中被显示,应用程序在系统级搜索模块700上注册。应用程序注册模块706管理系统级搜索模块700的注册过程,与应用程序通信,并且在应用程序注册存储区708中保存适当的注册信息。应用程序可以在不同的时间在系统级搜索模块700上注册,例如,当应用程序在与系统级搜索模块700相同的计算装置上安装时,当在与系统级搜索模块707相同的计算装置上安装应用程序的升级时,响应于用户在系统级搜索模块700上注册的请求,响应于另一个模块或装置在系统级搜索模块 700上注册的请求,等等。此外,应用程序本身可以执行注册过程以在系统级搜索模块700上注册它自己, 或者,备选地,另一个应用程序或模块可以执行注册过程以在系统级搜索模块700上注册该应用程序。例如,当在包括了系统级搜索模块700的计算装置上安装应用程序时,安装器应用程序或模块可以执行注册过程以在系统级搜索模块700上注册该应用程序。作为注册过程的一部分,所注册的应用程序的注册信息被提供给应用程序注册模块706。各种不同注册信息可以提供给应用程序注册模块706。在一个或多个实施例中,注册信息包括正注册的应用程序如何由UI模块702启动以及如何提供检索词给该应用程序的指示。UI模块702如何启动应用程序的指示可因应用程序而变,并且可以包括,例如要被运行的可执行文件的指示,要在开始运行文件时使用的一个或多个参数或在运行后要被传送给该应用程序的一个或多个参数的指示,为了向该应用程序传送一个或者多个参数而调用的该应用程序的一个或多个应用程序编程接口(API)的指示,等等。类似的,模块702如何将检索词提供给应用程序的指示可以因应用程序而变,并且可以包括,例如在开始运行应用程序时将如何把检索词(以及其他可选的上下文信息)提供给该应用程序的指示,为了向该应用程序传送检索词(以及其他可选的上下文信息)而调用该应用程序的一个或多个 API的指示,等等。在注册信息中可包括各种其他信息。例如,注册信息可包括描述应用程序的元数据,例如该应用程序被分类为的特定应用程序类别(例如游戏、音乐、电影、出版物、购物、 生产力、社交联网等等),应用程序供给的内容的特定类型(例如电影、电子书、游戏、音乐等等),应用程序所使用的网域(例如在网络上访问的装置或服务的网域),等等。作为另一个示例,注册信息可以包括表明应用程序如何在系统级搜索UI的应用程序识别部分中被识别的信息(例如,要使用的一个或多个图标、要使用的一个或多个名字、要使用的一个或多个颜色或字体、要显示的一个或多个动画,等等)。作为另一个示例,注册信息可以包括描述该应用程序的要求的信息(例如,该应用程序是否依赖于到另一个装置或服务的互联网或其他网络访问)。还应该指出的是,注册信息可由正注册的应用程序提供,或者备选地由另一个装置、组件或模块提供。例如,该注册信息中的至少一些可由该应用程序的零售商或制造商提供。作为另一个示例,应用程序具有包括了注册信息的相关清单(manifest)或其他元数据, 并且安装该应用程序的安装器应用程序或模块能够代表该应用程序来提供注册信息。应用程序注册模块706在应用程序注册存储区708中存储作为应用程序的注册过程的一部分而被接收的注册信息。注册信息被存储为与该应用程序关联或对应于该应用程序,例如存储具有相应的应用程序标识符的注册信息。应用程序标识符可以是各种不同形式,例如应用程序名和制造商的组合,由应用程序制造商或系统级搜索模块700分配给该应用程序的标识符,等等。应用程序注册存储区708可以是数据库、列表或者存储不同应用程序的注册信息的其他数据结构。应用程序注册存储区708可随后被用户界面模块702访问,以识别作为系统级搜索UI的应用程序识别部分的一部分而被显示的应用程序。应用程序排名模块704为每个在应用程序注册存储区708中注册的应用程序分配排名。此排名用于确定应用程序在系统级搜索UI的应用程序识别部分中显示的顺序。此外,可能出现以下情形,在系统级搜索模块700上已经注册的应用程序多于该系统级搜索 UI所能显示的应用程序。在这种情况下,排名被用来确定哪些应用程序由系统级搜索UI显示。备选地,可用不同方式来确定应用程序的显示顺序和/或显示哪些应用程序,例如按应用程序名字的字母顺序,随机方式,根据其他规则或标准等等。应用程序排名模块704可使用各种不同标准来排名应用程序,例如描述应用程序 (并且被包括作为应用程序的注册信息)的元数据和应用程序的使用数据。应用程序排名模块704可以响应于不同事件来确定排名,例如系统级搜索UI的激活,显示系统级搜索UI的应用程序识别部分的用户请求(例如,通过选择图2的菜单图标210),正由用户输入的检索词等等。或者,应用程序排名模块704可以预先确定应用程序的排名,并且当显示系统级搜
10索UI的应用程序识别部分时,使用预先确定的排名。预先确定的排名可以定期或不定期的生成(例如,大约每天或每周更新,当新的应用程序在应用程序注册模块706上注册时,等等)。这些预先确定的排名可以被保存在应用程序注册存储区708中(例如,应用程序排名可以与注册信息一起存储)或者备选地在别处存储。应用程序排名模块704所确定的排名可以是特定的分数(例如,一个范围从1到 100的值),或者可以是应用程序从最高排名到最低排名的排序,这样可以很容易地确定某个特定应用程序的排名是高于还是低于任何其他应用程序。具有较高分数或较高排名的应用程序通常被认为比具有较低分数或较低排名的应用程序更相关于用户输入的检索词,尽管备选地,具有较低分数或较低排名的应用程序可以被认为比具有较高分数或较高排名的应用程序更相关于用户输入的检索词。在一个或多个实施例中,为了确定某个特定应用程序的排名,应用程序排名模块 704识别该特定应用程序的特征。该特定应用程序的各种特征可被用于确定这个特定应用程序的排名。多个特征可被用于确定某个特定应用程序的排名,或者单个特征可被用于确定某个特定应用程序的排名。对于用于确定排名的这些特征中的每一个,生成特定的相关度分数,并且这些相关度分数被输入到一个或多个排名算法中。所述一个或多个排名算法组合所输入的相关度分数(例如,通过将这些分数相加、给每个相关度分数分配权重以及将加权的相关度分数相加等等)来生成该应用程序的排名。应用程序的相关度分数的组合可以是该应用程序的排名。或者,可以生成所有被注册的应用程序的组合的相关度分数,以及基于它们的组合的相关度分数来排序这些被注册的应用程序(例如,从最高的组合相关度分数到最低的组合相关度分数),并且此排序可以是应用程序的排名。可被用于确定应用程序排名的一个特征是描述该应用程序的元数据。如上所述, 提供描述该应用程序的元数据作为应用程序的注册信息。应用程序排名模块704识别当前的活动应用程序的应用程序类别(例如,可从操作系统中获得当前活动的应用程序的标识符,并且在应用程序注册存储区708中将其用来查找以确定那个应用程序的注册信息)。如果该应用程序与当前活动的应用程序属同一类别,那么给该应用程序分配一个较高的相关度分数(例如,值1),如果该应用程序与当前活动的应用程序不属同一类别,那么给该应用程序分配一个较低的相关度分数(例如,值0)。可用于确定应用程序排名的另一个特征是该应用程序的使用数据。关于应用程序之使用的信息可由系统级搜索模块700监控和维护。由于用户选择了要被搜索的应用程序和使用系统级搜索模块700的检索词,关于选为被搜索的应用程序和输入用于搜索的检索词的信息可以被轻易识别,并且信息的记录被系统级搜索模块700所维护。关于应用程序之使用的信息可以是,例如,应用程序有多频繁的被选为要经由系统级搜索UI而被搜索的应用程序,应用程序有多近期的被选为经由系统级搜索UI而被搜索的应用程序,应用程序有多频繁的被选为经由系统级搜索UI来搜索当前检索词的应用程序,应用程序有多近期的被选为经由系统级搜索UI来搜索当前检索词的应用程序,等等。此外,如果应用程序支持能够与系统级搜索UI分开搜索的搜索用户界面,那么那些应用程序就可以监控使用数据,而且还将这些使用数据提供给应用程序排名模块704。使用信息可用于生成应用程序的相关度分数的数值。例如,应用程序被选为经由系统级搜索UI而被搜索的应用程序的频率的数值可通过将该应用程序被选择的次数除以应用程序选择的总次数来生成(例如,经过某时间段,例如上周,上个月等)。作为另一个示例,应用程序被选为经由系统级搜索UI来搜索当前检索词的应用程序的最近期的数值可通过识别多久之前(例如,分钟、小时、天等)该应用程序最后一次被选为经由系统级搜索UI 而搜索当前检索词的应用程序来生成。可用于确定应用程序排名的另一个特征是应用程序的网域。如上所述,提供应用程序的注册信息作为应用程序网域。应用程序排名模块704将用户输入的当前检索词传送至互联网搜索引擎,分析该互联网搜索引擎返回的结果,并且基于互联网搜索引擎返回的结果中的网域出现之处给应用程序分配相关度分数。可以例如通过识别互联网搜索引擎返回的结果中的网域有多高或多早,生成基于应用程序网域的应用程序相关度分数的数值。 例如,如果互联网搜索引擎返回的结果将该应用程序的网域列为第一结果,那么该应用程序的相关度分数为1 (或者为特定的值减去1)。作为另一个示例,如果互联网搜索引擎返回的结果将该应用程序的网域列为从头或从第一搜索结果开始数的第五结果,则该应用程序的相关度分数为5 (或者为特定的值减去5)。或者,如果互联网搜索引擎返回的结果表明没有获得包括该网域的结果,则可以从系统级搜索UI的应用程序识别部分中所显示的应用程序中排除该应用程序。例如,应用程序排名模块704可以向用户界面模块702表明该应用程序要被排除,响应于此,用户界面模块702不会将该应用程序的标识符包括在系统级搜索UI的应用程序识别部分中。或者,应用程序排名模块704可以将应用程序网域传送至返回了应用程序相关度分数的网络服务。网络服务确定相关度分数的方式可以有多种并且由网络服务确定。在可替换的实施例中,应用程序排名模块704维护用户指定(以及能够用各种不同方式输入)的应用程序排名。用户因而能够根据他或她的期望来定制应用程序的排名。 应用程序排名模块704不需要使用任何其他标准来确定应用程序的排名,并且可以只使用用户指定的排名作为应用程序排名模块704生成或确定的排名。这些用户指定的应用程序排名可以与其他关于被注册的应用程序的信息一起在应用程序注册存储区708中维护,或者备选地可以在其他地方维护。用户界面模块702使用在应用程序注册存储区708中的信息和由应用程序排名模块704生成的排名来确定包括在系统级搜索UI的应用程序识别部分中的应用程序,和/或包括在系统级搜索UI的应用程序识别部分中的应用程序的排序。在一个或多个实施例中, 系统级搜索UI的应用程序识别部分可以显示不多于阈值数量的应用程序。如果超过阈值数量的应用程序在系统级搜索模块700上注册,那么用户界面模块702选择在系统级搜索模块700上注册并具有最高排名(或者备选地最低排名)的阈值数量的应用程序。例如,如果系统级搜索UI的应用程序识别部分只可以显示5个应用程序标识符,那么用户界面模块 702选择5个排名最高的应用程序(例如,具有5个最大组合相关度分数的应用程序,基于它们的组合相关度分数的应用程序排序的最开始或最末尾处的5个应用程序,等等),并且包括在系统级搜索UI的应用程序识别部分中的那5个排名最高的应用程序的标识符。应用程序的阈值数量可以随意的由用户或系统级搜索模块700的管理者来配置。用户界面模块702还可使用在应用程序注册存储区708中的信息来确定包括在系统级搜索UI的应用程序识别部分中的应用程序。在一个或多个实施例中,应用程序提供的注册信息包括如上所述的应用程序需求。用户界面模块702检查这些需求是否得到满足,如果这些需求未得到满足,则在系统级搜索UI的应用程序识别部分中不包括该应用程序。用户界面模块702确定应用程序需求是否得到满足的方式可以基于特定的需求而改变。例如,注册信息可以表明需要互联网连接(例如,为了访问在例如图1的计算装置 104的远程计算装置上的数据存储)。用户界面模块702需要组件或模块(例如,与系统级搜索模块700在相同的计算装置上的操作系统的)来确定计算装置当前是否具有互联网连接。如果计算装置当前具有互联网连接,那么需求得到满足,并且该应用程序可以被包括在系统级搜索UI的应用程序识别部分中。然而,如果计算装置当前不具有互联网连接,那么该需求未得到满足,并且该应用程序不可以包括在系统级搜索UI的应用程序识别部分中。 或者,如果计算装置当前不具有互联网连接,那么该应用程序可以在应用程序识别部分中用不同的外观(例如,阴影化以表明该应用程序不能用于搜索该检索词)或用文本、图标或者一些其他表明该应用程序不能用于搜索该检索词的指示来显示。此外,在一个或多个实施例中,用户界面模块702基于排名确定包括在系统级搜索UI的应用程序识别部分中的应用程序的排序。在系统级搜索UI的应用程序识别部分中, 根据应用程序排名来顺序显示应用程序标识符。根据它们的排名来显示应用程序标识符的方式随着实现方式而变化。例如,应用程序标识符可以在系统级搜索UI的应用程序识别部分中从上到下的,按照从最高排名到最低排名的顺序来显示。例如,参考图2,用“应用程序 1的名字”来标识的应用程序会具有比用“应用程序3的名字”来标识的应用程序更高的排名。作为另一个示例,应用程序标识符可以在系统级搜索UI的应用程序识别部分中从左到右的,按照从最高排名到最低排名的顺序来显示。例如,参考图3,用信封来标识的应用程序具有比用咖啡杯来标识的应用程序更高的排名,而具有比用字母“M”来标识的应用程序更低的排名。用户界面模块702还可以基于排名对应用程序标识符做出各种其他修改。例如, 较高排名应用程序(例如,一个或多个最高排名应用程序,具有阈值之上的排名的应用程序)的应用程序标识符可以使用不同的字体、不同的颜色、带有动画、用更大的尺寸等等来显示。作为另一个示例,应用程序标识符可以用不同大小来显示,且排名较高的应用程序的应用程序标识符会是比排名较低的应用程序的应用程序标识符更大的图标、符号、字体大小等。因此,用户界面模块702基于应用程序排名在系统级搜索UI的应用程序识别部分中显示应用程序标识符。用户界面模块702显示的应用程序标识符是从应用程序注册存储区708中获得的(在应用程序注册过程中提供)。当用户选择特定的应用程序标识符,用户界面模块702访问应用程序注册存储区708来识别如何启动该应用程序。用户界面模块 702从应用程序注册存储区708中检索这个信息,并且将此信息提供给操作系统,其接下来启动所选应用程序。此外,用户界面模块702将用户在系统级搜索UI的数据输入部分中输入的检索词提供给所选应用程序。然后,所选应用程序搜索那个检索词,并且显示适当的结果。检索词使用在由所选应用程序之前提供的注册信息中、由所选应用程序指示的方式提供给所选应用程序。用户界面模块702还可以将各种附加上下文信息提供给执行搜索(如上所述,其可以是所选应用程序或者当前活动应用程序)的应用程序。上下文信息指的是关于计算装置的用户和/或被请求的搜索的信息(检索词本身可被称为该搜索的上下文信息)。上下文信息包括例如,计算装置的用户的标识符(例如,从操作系统的另一个组件或模块中获得), 用户登录到计算装置中的指示(例如,允许应用程序本身识别用户),当前活动应用程序的指示,当前活动应用程序的类型的指示,之前已被用户选择用于搜索该检索词的一个或多个应用程序的指示,之前已被用户选择用于搜索该检索词的一个或多个应用程序中的每一个的类别的指示,等等。接收用于搜索的上下文信息的应用程序可以利用该应用程序所期望的任何方式来使用上下文,并且可以使用所有上下文信息或只使用一些上下文信息。例如,应用程序使用检索词来生成搜索结果,但是忽略任何其他用于搜索的上下文信息。作为另一个示例,应用程序使用检索词来生成搜索结果,并且还生成用户之前已选的用于搜索该检索词的应用程序的类别,以生成包括同一类别的数据(例如为电影文件,如果用户之前搜索的应用程序类别是电影的话)的搜索结果。图8是显示根据一个或多个实施例在系统级搜索模块上注册应用程序的示例性注册过程800的流程图。过程800可在软件、固件、硬件或它们的组合中实现。在图8左侧显示的过程800的动作由系统级搜索模块执行,例如图7的系统级搜索模块700。在图8右侧显示的过程800的动作由应用程序和/或代表了应用程序来执行,例如图1的应用程序 112。右侧显示的过程800的动作可由应用程序本身执行,或者由代表了该应用程序的另一个组件或模块来执行(例如,由应用程序安装器,由应用程序的零售商或制造商,等等)。过程800显示为一组动作,并且不局限于所示的执行不同动作的操作顺序。过程800为在系统级搜索模块上注册应用程序的示例性过程;在此处还包括引用不同附图而对在系统级搜索模块上注册应用程序的额外讨论。在过程800中,识别应用程序的系统级搜索UI注册信息(动作802)。系统级搜索 UI注册信息包括应用程序如何被系统级搜索模块启动的指示。如上所述,各种附加信息还可被识别为系统级搜索UI注册信息。所识别的系统级搜索UI注册信息被传送至系统级搜索模块(动作804)。如上所述,此注册信息可以被传送至系统级搜索模块的应用程序注册模块。系统级搜索模块从该应用程序接收系统级搜索UI注册信息(动作806),并且将所接收的系统级搜索UI注册信息添加至注册存储区(动作808)。该应用程序作为可选为使用系统级搜索UI来搜索的应用程序而被包括(动作 810)。如上所述,该应用程序(其包括在由应用程序提供的系统级搜索UI注册信息中)的标识符显示给用户,允许该用户选择该应用程序来搜索一个或多个检索词。返回至图7,如上所述,用户界面模块702生成作为系统级搜索UI显示的信息,还与应用程序交互,包括启动用户所选应用程序。用户界面模块702还具有与当前活动应用程序的额外交互,提供信息给当前活动应用程序以及从当前活动应用程序接收信息。如上所述,当前活动应用程序指的是当前在前台运行的应用程序(例如,图1的应用程序112中的一个)并且是用户能够与之交互的应用程序。操作系统的模块保留当前活动应用程序的指示,并且该指示由用户界面模块702从操作系统的这个模块中获得。应当指出的是,当前活动应用程序响应于用户输入和/或来自在计算装置上运行的另一个应用程序或模块的请求,其随着时间而变化。例如,用户从系统级搜索UI的应用程序识别部分中选择应用程序识别符,并且作为响应,与所选应用程序标识符相对应的应
14用程序成为当前活动应用程序。作为另一个示例,与系统级搜索UI分开,用户选择启动应用程序或者选择一个应用程序进行交互,并且作为响应,所选应用程序成为当前活动应用程序。在一个或多个实施例中,用户界面模块702将接收到的用户输入提供给当前活动应用程序。响应于正输入的字符或符号,用户输入的每个字符或符号被提供给当前活动应用程序。响应于该用户输入,当前活动应用程序基于那个输入来生成零个或更多个建议检索词。当前活动应用程序能够用各种不同方式生成零个或更多个建议检索词,例如基于用户之前输入的数据,基于应用程序维护的可搜索的数据或字典,等等。所述零个或更多个建议检索词被返回至用户界面模块702,其将建议检索词作为系统级搜索UI的一部分显示。 所述建议检索词在不同的位置上显示,例如在临近系统级搜索UI的数据输入部分的菜单项目列表中显示。用户可以选择建议检索词中的一个,并且作为响应,用户界面模块702在系统级搜索UI的数据输入部分中显示该建议检索词。例如,如果用户正输入检索词并且用户输入的第一个字符是字母“H”,则用户界面模块702将用户已经输入字母“H”的指示传送给当前活动应用程序。当前活动应用程序生成零个或更多个建议检索词(例如Home,House, Hydrogen, Hello等),并且将那些建议检索词返回给用户界面模块702。用户界面模块702将那些建议检索词作为系统级搜索UI的一部分显示。然后,用户用各种不同方式(例如,通过图1的输入模块114)来选择那些建议检索词中的一个作为用户所需要的检索词的至少一部分,例如用手写笔或手指触摸建议检索词,在建议检索词上移动指针并按压光标控制装置(例如鼠标)的按钮等等。响应于对建议检索词的用户选择,用户界面模块702在系统级搜索UI的数据输入部分中显示所选的建议检索词。继续这个例子,如果用户不选择所选的检索词中的一个,而是输入字母“e”,那么到目前为止,用户的输入为“He”,用户界面模块702将用户已经输入字母“He”的指示传送给当前活动应用程序。当前活动应用程序生成零个或更多个建议检索词(例如Help,Hello, Henry等),并且将那些建议检索词返回给用户界面模块702。用户界面模块702将这些新建议的检索词作为系统级搜索UI的一部分显示。此过程可以一直持续,直到用户选择了搜索他或她已输入的检索词的应用程序。尽管此处讨论的建议检索词为文本检索词,但是各种其他内容和/或内容类型可以被返回给用户界面模块702。除了所返回的建议检索词,或者备选地取而代之,此其他内容和/或内容类型可被用户界面模块702显示或者呈现。例如,与一个或多个建议检索词相关的一个或多个图像可被返回和显示,与一个或多个建议检索词相关的额外的描述性文本可被返回和显示,与一个或多个建议检索词相关的音频内容可被返回和回放,等等。图9显示了根据一个或多个实施例包括系统级搜索用户界面的另一个示例性屏幕显示902。屏幕显示902类似于图4的屏幕显示402。然而,屏幕显示902还将多个建议检索词显示作为建议列表904。在所示的例子中,用户已经输入字符“Ha”,并且当前活动应用程序已经提供了建议检索词Handle,Harry, Hasty和Halibut。建议列表904被示例为在数据输入部分206之上并且临近数据输入部分206。然而,应该明白的是,建议列表904 可在屏幕显示202的任意地方显示(尽管典型的为不覆盖数据输入部分206、应用程序识别部分208、搜索按钮212或菜单图标210)。例如,建议列表904可在屏幕显示902上部,沿着屏幕显示902的左侧或右侧,在屏幕显示902的中央,在不临近数据输入部分206的位置处显示,等等。参考图7,在一个或多个实施例中,用户界面模块702还可以为在应用程序识别部分中识别的一个或多个应用程序来显示一个或多个搜索结果。用户界面模块702提供用户输入并传送至要进行搜索的应用程序的检索词(例如,响应于对例如图2-6和9的搜索按钮 212的搜索按钮的用户选择,或者在应用程序识别部分中对另一个应用程序的选择)给在应用程序识别部分中识别的一个或多个应用程序中的每一个,并且那些一个或多个应用程序中的每一个基于检索词将一个或多个搜索结果返回给模块702。之后,用户界面模块702在与返回搜索结果的应用程序相关的应用程序识别部分中显示那些一个或多个搜索结果(例如,临近应用程序的标识符并且在应用程序的标识符之下,临近应用程序的标识符并且在应用程序的标识符之上,具有识别该应用程序的图标或文本,等等)。因此,可以给予用户如果该用户选择该应用程序的话在应用程序识别部分中的应用程序将会返回的那些结果的预览。或者,除了向在应用程序识别部分中识别的一个或多个应用程序提供由用户输入并被发送给应用程序进行搜索的检索词之外,或者取而代之,用户界面模块702可以将接收到的用户输入提供给应用程序识别部分中识别的一个或多个应用程序中的每一个。那些一个或多个应用程序中的每一个基于接收的用户输入来返回一个或多个搜索结果,并且每一个可以基于检索词将一个或多个搜索结果返回给模块702。如上所述,用户界面模块702 之后在与返回搜索结果的应用程序相关的应用程序识别部分中显示那些一个或多个搜索结果。此外,在一个或多个实施例中,用户界面模块702支持显示具有某些语言的语言备选的建议检索词。某些语言,例如东亚语言(例如日语、汉语和韩语)由多个与键盘的单个按键不对应的字符构成。其他语言,例如俄语,使用多个不同字母来呈现(例如,在俄语的情况下的拉丁语或西里尔字母)。用户界面模块702支持显示具有这些语言的语言备选的检索词。图10是一个框图,示例了根据一个或多个实施例支持建议检索词的语言备选的示例性系统1000。系统1000包括用户界面模块1002、应用程序1004和语言备选生成模块 1006。用户界面模块1002可以是,例如图7的用户界面模块702。应用程序1004可以是, 例如图1的应用程序112。当用户界面模块1002接收用户输入时,模块1002将接收的用户输入提供给语言备选生成模块1006。语言备选生成模块1006可以用各种不同方式来识别用于用户输入的语言备选,并且将那些语言备选返回给用户界面模块1002。语言备选生成模块1006典型的识别一个或多个用于用户输入的语言备选,并且将那些一个或多个语言备选返回给用户界面模块1002。但是,应该指出的是,语言备选生成模块1006典型的不需要(然而,需要也是可以的)返回语言备选。因此,会出现这样的情形,语言备选生成模块1006针对特定用户输入识别并且不返回语言备选。在一个或多个实施例中,语言备选生成模块1006通过将用户输入从一种字母翻译成另一种来识别用于用户输入的语言备选。例如,在俄语的情况下,如果用户输入是拉丁字母字符,那么语言备选生成模块1006将拉丁字母字符翻译成西里尔字母字符。语言备选生成模块1006将用户输入(使用西里尔字母字符)的翻译作为一个或多个语言备选返回。此外,在一个或多个实施例中,语言备选生成模块1006识别一个或多个可由语音音节表示的字符。在某些情况下,例如某些东亚语言,为了输入特定的字符,用户输入语音音节作为多个拉丁字母字符。例如,用户使用拉丁字母“bei”输入语音音节,这些拉丁字母可以与多个不同的中文字符相对应。语言备选生成模块1006识别可与特定的用户输入相对应的零个或多个不同字符,并且将那些识别的字符作为语言备选返回给用户界面模块 1002。例如,如果用户输入为“bei”,那么语言备选生成模块1006识别可用“bei”表示的不同的中文字符,并且将那些中文字符作为语言备选返回给用户界面模块1002。作为另一个示例,如果用户输入为“h”,那么语言备选生成模块1006识别可用“h”表示的不同的中文字符(其将会包括以“h”开头的多个不同语音音节),并且将那些中文字符作为语言备选返回给用户界面模块1002。语言备选生成模块1006可被配置用于特定语言,或者备选地用于多种语言。例如,用于识别语言备选生成模块1006将向其提供备选的语言的配置设置可由包括系统 1000的计算装置的用户、由应用程序1004、由用户界面模块1002等等提供。作为另一个示例,不同的语言备选生成模块1006可被包括在系统1000中,每一个用于一种不同的语言(例如,一个模块1006用于俄语,另一个模块1006用于汉语,另一个模块1006用于日语等)。用户界面模块1002根据语言备选被预期用于的语言,将用户输入提供给这些不同模块1006的一个或多个(例如,如由包括系统1000的计算装置的用户、由应用程序1004、由用户界面模块1002等等指示的那样)。用户界面模块1002从语言备选生成模块1006中接收语言备选,并且将用户输入和语言备选都提供给应用程序1004。如果没有从语言备选生成模块1006中接收到语言备选,那么用户界面模块1002仅仅将用户输入提供给应用程序1004。应用程序1004之后基于用户输入、语言备选、或用户输入和语言备选二者来确定零个或更多个建议检索词。应用程序1004本身确定用户输入和语言备选的特定组合,基于其来确定建议检索词。所述建议检索词被返回给用户界面模块1002,其将建议检索词作为系统级搜索UI的一部分来显示。 由于建议检索词可以基于语言备选,那么所述建议检索词可以使用各种不同的字母表和/ 或语言。例如,建议检索词可以包括由“bei”开始的英语单词,也可以包括由“bei”表示的汉字。返回至图7,除了提供建议检索词以外,或者代替提供建议检索词,当前活动应用程序可以随着该用户输入每个字母或其他符号来提供搜索结果。当前活动应用程序基于用户输入的字符或其他符号生成搜索结果,并且使用那些字符或符号作为检索词(即使用户可能还没有完全输入他或她期望作为检索词的内容)。这些搜索结果由当前活动应用程序提供(例如,在图5的窗口 404中),并且每次用户输入一个额外的字符或者符号时由当前活动应用程序来升级。此外,在一个或多个实施例中,当前活动应用程序可选地将数据输入提示提供给用户界面模块702。此数据输入提示可以是帮助文档、图像、动画等等来帮助用户。例如,数据输入提示可以是文本“在此处输入检索词”或“在此处输入电影名称”。如果由当前活动应用程序提供,数据输入提示由用户界面模块702来显示以帮助用户确定他或她可在哪里输入检索词。数据输入提示可以在系统级搜索UI的数据输入部分中显示(例如,并且当用
1户输入第一字符或符号时,数据输入提示的显示可以停止),或者备选地在另一个位置处显示,例如临近系统级搜索UI的数据输入部分处。在当前活动应用程序和用户界面模块702之间的通信可用多种不同方式来实现。 在一个或多个实施例中,每个应用程序创建促进当前的活动应用程序和用户界面模块702 之间的通信的分类对象。由应用程序创建的分类对象使得该应用程序能够接收来自用户界面模块702的通信(例如用户输入),以及将数据(例如数据输入提示、建议检索词)提供给用户界面模块702。用户界面模块702仅将数据传送给当前活动应用程序的分类对象,并且仅接受来自当前活动应用程序的分类对象的通信。或者,在当前活动应用程序和用户界面模块702之间的通信可以用其他的传统方式来实现,而不是使用此种分类对象,例如实现用户界面模块702和应用程序之间的界面,用户界面模块702暴露一个可由应用程序调用的 API,等等。图11是示例根据一个或多个实施例、用于使用系统级搜索用户界面的示例性过程1100的流程图。过程1100由系统级搜索用户界面执行,例如图7的系统级搜索模块700, 并且可以被实施为软件、固件、硬件或它们的组合。过程1100显示为一组动作,并且不局限于为执行不同动作的操作而示出的顺序。过程1100为使用系统级搜索用户界面的示例性过程;在此处还参考不同附图包括了使用系统级搜索用户界面的附加讨论。在过程1100中,显示了系统级搜索UI,其包括数据输入部分和应用程序识别部分 (动作1102)。如上所述,系统级搜索UI可在屏幕显示的各种不同位置上显示。在系统级搜索UI的数据输入部分中显示用户输入的数据(动作1104)。如上所述, 用户可用各种不同方式输入数据。在应用程序识别部分中显示可以使用用户输入的数据来进行搜索的一个或多个应用程序的标识符(动作1106)。这些标识符可以是各种不同形式,例如如上所述的名字、图标、动画等等。在动作1106中显示的标识符是已在该系统级搜索UI中被注册使用的一个或多个应用程序的标识符,并且可用如上所述的不同方式来选择。用户输入的数据被提供给在实现系统级搜索UI的装置上的多个应用程序中的一个(动作1108)。如上所述,数据输入被提供给当前活动应用程序(例如,如上所述,通过选择搜索按钮),或者提供给与应用程序识别部分中所显示并且被用户选择的应用程序标识符相关的应用程序。由用户输入的数据被提供至的该应用程序基于用户输入的数据获得并显示搜索结果,同时系统级搜索UI显示被保留(动作1110)。如上所述,当系统级搜索UI保持被显示时,该应用程序管理搜索结果的显示(例如,在该应用程序的窗口中)。图12是显示根据一个或多个实施例在系统级搜索用户界面的应用程序识别部分中显示应用程序标识符的示例性过程1200的流程图。过程1200由系统级搜索模块执行, 例如图7的系统级搜索模块700,并且可实现为软件、固件、硬件或它们的组合。过程1200 被示为一组动作,并且不局限于为执行不同动作的操作而示出的顺序。过程1200为在系统级搜索用户界面的应用程序识别部分中显示应用程序标识符的示例性过程;参考不同附图在此处还包括了在系统级搜索用户界面的应用程序识别部分中显示应用程序标识符的附加讨论。在过程1200中,识别能够使用系统级搜索UI来搜索的多个应用程序(动作1202)。如上所述,这些多个应用程序是已被注册为使用系统级搜索UI的应用程序。对于多个应用程序的每一个,生成排名(动作1204)。如上所述,这些排名可用各种不同方式生成,包括可选地使用用户指定的排名。这些排名可以是,例如如上所述的特定分数或者应用程序从最高到最低的排序。至少部分的基于排名选择在系统级搜索UI中要被识别的多个应用程序中的一个或多个(动作1206)。如果有多于能够在系统级搜索UI中识别的应用程序,那么如上所述, 基于它们的排名选择这些应用程序中的一个或多个。所选的一个或多个应用程序的标识符按照排名作为系统级搜索UI的一部分显示 (动作1208)。如上所述,这些应用程序标识符按照他们的排名而被显示的方式随着实现方式而变化,例如,从上到下的按照从最高排名(在上部)到最低排名(在下部)的顺序、从左到右的按照从最高排名(在左端)到最低排名(在右端)的顺序等等来显示应用程序标识符。应该指出的是,任何各种不同类型的信息都可由用户来搜索,例如其他用户的联系信息、电影、游戏、书或其他出版物等等。此外,在一个或多个实施例中,在系统级搜索UI 上注册的一个应用程序是在计算装置上索引应用程序的应用程序或模块。例如,图1的应用程序112中的一个可以是能够在计算装置102上搜索其他应用程序112的应用程序。因此,用户可以搜索其他应用程序112,以及借助那些应用程序所保留的或者可访问的内容。在此处的讨论中,参考了启动用户所选应用程序和所选应用程序搜索该检索词。 应该指出的是,也会出现这样的情形,所选应用程序已经运行(例如在后台),因而不需要启动。在这种情况下,系统级搜索模块(例如,图7的模块700)将请求传送给所选应用程序以搜索该检索词。作为响应,所选应用程序搜索该检索词,并且显示它的搜索结果。在一个或多个实施例中,该应用程序包括系统级搜索模块如何请求应用程序搜索该检索词的指示, 作为其提供给系统级搜索模块的注册信息的一部分。例如,注册信息包括为了将检索词(以及其他任意的上下文信息)传送给应用程序而调用的应用程序的一个或多个API的指示。或者,也可以使用其他技术,例如当应用程序开始运行时,该应用程序通知系统级搜索模块, 其如何请求该应用程序来搜索该检索词,系统级搜索模块通过预先建立的通信信道或者遵循已知的协议将该请求传送给该应用程序以及该系统级搜索模块,等等。如上所述,此处讨论的系统级搜索UI允许用户一次输入检索词并且选择不同的应用程序来搜索该检索词。每个单独的应用程序执行它自己的搜索,并且不需要了解被用户选择进行搜索的其他应用程序(并且典型的不具备这些知识)。应用程序执行它的搜索的方式,以及在执行它的搜索过程中由应用程序访问数据存储区的方式,可随着应用程序而改变。该应用程序搜索本地数据存储区(位于与系统级搜索UI相同的计算装置上的数据存储区),和/或远程数据存储区(位于另一个计算装置上的数据存储区,例如图1的装置 104)。应用程序生成的搜索结果由生成那些搜索结果的应用程序显示。搜索结果典型的 (但不必是)在分开的窗口中显示,例如图5的窗口 404或者图6的窗口 604。因此,每个应用程序都能够以它期望的任何方式来定制它的搜索结果的显示。尽管这些用于搜索结果的显示和/或窗口是不同的,但是,系统级搜索UI的数据输入部分和应用程序识别部分仍然是相同的。系统级搜索UI被保持在相同的位置,并且其外观并不基于搜索结果而改变(如上所述,尽管数据输入提示和建议检索词可以基于当前活动应用程序而改变)。
图13显示根据一个或多个实施例可被配置为实现系统级搜索用户界面的示例性计算装置1300。计算装置1300可以是,例如图1的计算装置102或104。计算装置1300包括一个或多个处理器或者处理单元1302,包括一个或多个存储器和/或存储组件1306的一个或多个计算机可读介质1304,一个或多个输入/输出(I/ 0)装置1308,以及允许各种组件和装置彼此通信的总线1310。计算机可读介质1304和/ 或一个或多个I/O装置1308可以作为计算装置1300的一部分被包括,或者备选地可以与计算装置1300相耦合。总线1310代表了总线结构的若干类型的一个或多个,包括使用各种不同总线结构的存储器总线或存储器控制器,外围总线、加速图形端口、处理器或本地总线,等等。总线1310包括有线和/或无线总线。存储器/存储组件1306代表了一个或多个计算机存储介质。组件1306包括易失性介质(例如随机存取存储器(RAM))和/或非易失性介质(例如只读存储器(ROM)、闪存、光盘、磁盘等等)。组件1306包括固定的介质(例如RAM、ROM、固定硬盘等)以及可移动的介质 (例如,闪存驱动、可移动硬盘驱动、光盘等等)。此处讨论的技术可以在软件中使用一个或多个处理单元1302执行的指令实现。 应该明白的是,不同的指令可以在计算装置1300的不同组件中存储,例如在处理单元1302 中、在处理单元1302的各种缓存中、在装置1300中的其他缓存中(未示出)、在其他计算机可读介质上,等等。此外,应该明白的是,在计算装置1300中存储指令的位置可随时间变化。一个或多个输入/输出装置1308允许用户将命令和信息输入计算装置1300,并且还允许将信息呈现给用户和/或其他组件或装置。输入装置的例子包括键盘、光标控制装置(例如鼠标)、麦克风、扫描仪等等。输出装置的例子包括显示装置(例如,监视器或投影仪)、扬声器、打印机、网卡等等。此处描述了在软件或程序模块的一般语境中的各种技术。通常,软件包括执行某个特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构等等。这些模块和技术的实现可以在某些形式的计算机可读介质上存储,或者在某些形式的计算机可读介质上传送。计算机可读介质可以是任何可由计算装置访问的可用介质或媒介。作为示例而非限制,计算机可读介质包括“计算机存储介质”和“通信介质”。“计算机存储介质”包括用于存储信息的任意方法或技术实现的易失性和非易失性、可移动和不可移动介质,该信息包括计算机可读指令、数据结构、程序模块或其他数据。 计算机存储介质包括,但不局限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD )或其他光存储器、磁性录音带、磁带、磁盘存储器或其他磁存储装置、或任何其他可用于存储所需信息以及可由计算机访问的介质。“通信介质”通常在调制数据信号中嵌入计算机可读指令、数据结构、程序模块或其他数据,例如载波或其他传输机制。通信介质还包括任何信息传递介质。词“调制数据信号”指的是其一个或多个特征用某种方式来设置或改变以在该信号中编码信息的信号。作为示例而非限制,通信介质包括有线介质,例如有线网络或直接有线连接,以及无线介质, 例如声波、RF、红外和其他无线介质。上述介质的任何组合也包括在计算机可读介质的范围内。通常,此处描述的任意功能或技术可以使用软件、固件、硬件(例如,固定的逻辑电
20路)、手工处理或者这些实现方式的组合来实现。此处使用的术语“模块”和“组件”通常代表软件、固件、硬件或者它们的组合。在软件实现的情况下,模块和组件代表当在处理器上 (例如,CPU)执行时用于实现指定任务的程序代码。程序代码可以在一个或多个计算机可读存储装置中存储,其进一步的描述可参考图13找到。此处描述的系统级搜索用户界面技术的特征是独立于平台的,意思是该技术可在具有各种处理器的各种商业计算平台上实现。
尽管用语言描述的主题具体到了结构特征和/或方法动作,然而应该理解的是, 在附加的权利要求中限定的主题并不一定限于上述的具体特征或动作。而是,上述的具体特征和动作作为实现权利要求的示例性形式而被公开。
权利要求
1.一种在计算装置中实现的方法,该方法包括显示(1102)系统级搜索用户界面,其包括数据输入部分和应用程序识别部分; 在数据输入部分中显示(1104)作为检索词的用户数据输入; 在应用程序识别部分中显示(1106)在计算装置上可以使用检索词来搜索的多个应用程序的一个或多个应用程序的每一个的标识符;将检索词提供(1108)给多个应用程序中的一个应用程序,以便该一个应用程序基于该检索词生成和显示搜索结果。
2.如权利要求1的方法,进一步包括在应用程序识别部分中接收对于所述一个或多个标识符中的一个标识符的用户选择;其中所述提供包括,响应于该用户选择,将该检索词提供给由用户所选标识符所识别的应用程序;以及其中该一个应用程序包括由用户所选标识符所识别的应用程序。
3.如权利要求2的方法,进一步包括在应用程序识别部分中接收对于所述一个或多个标识符中的第二个的用户选择;以及响应于对于所述一个或多个标识符中的第二个的用户选择,将检索词提供给由所述一个或多个标识符中的第二个所识别的应用程序,以便由一个或多个标识符中的第二个所识别的应用程序基于检索词生成和显示搜索结果。
4.如权利要求1的方法,进一步包括在数据输入部分中显示从多个应用程序中的当前活动的应用程序接收到数据输入提示,直到接收到用户数据输入。
5.如权利要求1的方法,进一步包括在接收每一个字符时,将用户数据输入的字符提供给多个应用程序中的当前活动的应用程序,以便于所述当前活动的应用程序基于用户数据输入中已被接收的字符来生成和显示搜索结果。
6.如权利要求1的方法,进一步包括当接收每个字符时,将用户数据输入的字符提供给语言备选生成模块; 接收字符的一个或多个语言备选;当接收每个字符时,将所述用户数据输入的字符和所述一个或多个语言备选提供给多个应用程序中当前活动的应用程序;从当前活动的应用程序中接收基于所述用户数据输入和所述一个或多个语言备选的一个或多个建议检索词;以及显示所述一个或多个建议检索词。
7.一种计算装置,包括一个或多个处理器(1302);以及一个或多个其上存储有多条指令的计算机可读介质(1304),当由一个或多个处理器执行时,该指令导致一个或多个处理器显示(1102,1104,1106)搜索用户界面,该搜索用户界面包括第一部分以及第二部分, 经由第一部分显示作为检索词的用户数据输入,经由第二部分来显示在计算装置上可使用检索词来搜索的一个或多个应用程序的标识符;将检索词提供(1108)给计算装置上的多个应用程序中的一个,以便该应用程序至少基于该检索词来显示搜索结果;以及当该应用程序显示搜索结果时,在当前的显示位置上维持(1110)至少包括该第一部分的搜索用户界面的显示。
8.如权利要求7的计算装置,其中多个应用程序中的一个是在所述第二部分中所识别的一个或多个应用程序中用户所选择的一个,并且其中所述多条指令进一步导致一个或多个处理器当接收每个字符时,将用户数据输入的字符提供给多个应用程序中当前活动的应用程序;从当前活动的应用程序中接收一个或多个建议检索词;以及在第二部分中显示所述一个或多个应用程序的标识符的同时显示一个或多个建议检索词。
9.如权利要求7的计算装置,其中多个应用程序中的一个是在第二部分中识别的所述一个或多个应用程序中用户所选择的一个,并且其中所述多条指令进一步导致一个或多个处理器当接收每个字符时,将用户数据输入的字符提供给语言备选生成模块; 接收字符的一个或多个语言备选;当接收每个字符时,将所述用户数据输入的字符和所述一个或多个语言备选提供给多个应用程序中当前活动的应用程序;从当前活动的应用程序接收基于所述用户数据输入和所述一个或多个语言备选的一个或多个建议检索词;以及显示所述一个或多个建议检索词。
10.如权利要求7的计算装置,其中,对于一个或多个应用程序中的每一个,应用程序的标识符包括应用程序的名字和代表该应用程序的图标这两者中的一个,或者包括这两者ο
全文摘要
显示包括数据输入部分和应用程序识别部分的系统级搜索用户界面。作为检索词的用户数据输入在数据输入部分中显示,在计算装置上可使用检索词来搜索的多个应用程序的一个或多个应用程序中的每一个的标识符在应用程序识别部分中显示。所述检索词被提供给多个应用程序中的一个应用程序,以便该应用程序基于检索词生成和显示搜索结果同时维持至少该系统级搜索用户界面的数据输入部分的显示。
文档编号G06F17/30GK102426511SQ20111036301
公开日2012年4月25日 申请日期2011年11月16日 优先权日2010年11月16日
发明者古鲁纳桑 A., D. 埃利奥特 B., H. 佩多克 B., 萨卡 D., B. 阿弗里特 E., C. 萨特菲尔德 J., K. 梁 K., J. 吉尔摩尔 M., 沃捷 M., 米什拉 M., 维亚纳桑 P., A. 埃贝林 R., J. 惠特 R., M. 蒙克 S. 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1