文件类型相关的查询系统的制作方法

文档序号:14186879阅读:192来源:国知局

相关申请的交叉引用

本申请是2015年8月26日提交的美国专利申请no.14/836,893的pct国际申请。上面所引用的申请的整个公开内容通过引用的方式进行结合。

本公开涉及计算机搜索系统并且更具体地涉及用于应用状态的计算机搜索系统。



背景技术:

应用可以为用户执行各种不同的动作。作为一个示例,餐馆预订申请可以对餐馆进行预订。作为另一示例,互联网媒体播放器应用可以从互联网流式接收媒体(例如,歌曲或电影)。一些应用可以执行多于一个动作。作为一个示例,餐馆预订应用除了进行餐馆预订之外,还可以允许用户检索关于餐馆的信息并阅读用户对餐馆的评论。作为另一示例,互联网媒体播放器应用除了从互联网流式接收媒体之外,还可以允许用户执行对数字媒体的搜索并生成音乐播放列表。

应用的应用状态可以指代应用内的“屏幕”。一般而言,应用状态可以指代应用的配置,其中该应用向用户显示内容,诸如与由应用提供的或可经由应用访问的一个或更多个产品、服务或供应商有关的信息。应用状态也可以指代由应用提供的功能。作为一个示例,在线购物应用的应用状态可以对应于应用的描述(例如,使用文本和/或图像数据)通过该应用(例如,由与该应用相关联的一个或更多个供应商)销售的特定产品或服务的屏幕。

作为另一示例,音乐播放器应用的应用状态可以对应于应用的描述(例如,使用文本和/或图像数据)该应用可以给用户播放(例如,通过显示歌曲、专辑和/或音乐艺术家的名称)的特定歌曲的屏幕。

这里所提供的背景描述是为了总体呈现本公开的背景。相对于本公开,在此背景部分所描述的被提名的发明人目前的工作范围,以及本说明书的在提交时不能另外作为现有技术的各方面,既未明确地也未隐含地被承认为现有技术。



技术实现要素:

一种装置包括用户界面模块、文件类型确定模块、查询包装器构建模块、网络通信模块、结果呈现模块和访问模块。所述用户界面模块被配置为允许用户识别文件并输入查询。所述文件类型确定模块被配置为确定所识别的文件的类型数据。所述类型数据指示所识别的文件的文件类型。所述查询包装器构建模块被配置为基于所述类型数据和所输入的查询来创建查询包装器。所述网络通信模块被配置为向搜索系统发送所述查询包装器并从所述搜索系统接收结果集合。所述结果集合包括(i)第一应用的第一应用状态的标识和(ii)用于所述第一应用状态的第一访问机制。所述结果呈现模块被配置为向用户呈现所述结果集合,呈现所述结果集合的操作包括呈现与所述第一应用状态相对应的第一用户界面元素。所述访问模块被配置为响应于用户对所述第一用户界面元素的动作,(i)根据所述第一访问机制将所述第一应用打开到所述第一应用状态并且(ii)将所识别的文件提供给所述第一应用状态。

在其它特征中,所述类型数据包括(i)互联网号码分配机构媒体类型和(ii)mime(多用途互联网邮件扩展)类型中的一种。在其它特征中,所述文件类型确定模块被配置为基于所识别的文件的扩展名和所识别的文件的头部区域中的至少一种来确定所识别的文件的类型数据。在其它特征中,所述文件类型确定模块被配置为将所识别的文件的所述类型数据设定为等于所识别的文件的扩展名。

在其它特征中,所述访问模块被配置为响应于所述第一访问机制是web访问机制,将所识别的文件上传到托管所述第一应用状态的web服务器。在其它特征中,所述访问模块被配置为响应于所述第一访问机制是本机访问机制,将所识别的文件的位置参考提供给所述第一应用状态。在其它特征中,所述装置包括文件管理模块,所述文件管理模块被配置为在将所识别的文件提供给所述第一应用状态之前创建所识别的文件的副本。在其它特征中,所述文件管理模块被配置为响应于用户指示不需要对所识别的文件作出修改而用所述副本覆写所识别的文件。

在其它特征中,所述结果集合包括(i)第二应用的第二应用状态的标识和(ii)用于所述第二应用状态的第二访问机制。所述访问模块被配置为在所述第一应用状态修改了所识别的文件之后并且响应于用户对第二用户界面元素的动作,(i)根据所述第二访问机制将所述第二应用打开到所述第二应用状态并且(ii)将经修改的所识别的文件提供给所述第二应用状态。

在其它特征中,所述用户界面模块被配置为在用户修改了所识别的文件之后从所述第一应用状态退出之后,允许用户输入第二查询。所述查询包装器构建模块被配置为基于所述类型数据和输入的所述第二查询来创建第二查询包装器。所述网络通信模块被配置为向所述搜索系统发送所述第二查询包装器并从所述搜索系统接收第二结果集合。所述第二结果集合包括(i)第二应用状态的标识和(ii)用于所述第二应用状态的第二访问机制。所述第二应用状态来自所述第一应用和第二应用中的一个应用。所述结果呈现模块被配置为向用户呈现所述第二结果集合,呈现所述第二结果集合的操作包括呈现与所述第二应用状态相对应的第二用户界面元素。所述访问模块被配置为响应于由用户对所述第二用户界面元素的动作,(i)根据所述第二访问机制将所述第一应用和所述第二应用中的所述一个应用打开到所述第二应用状态并且(ii)将经修改的所识别的文件提供给所述第二应用状态。

在其它特征中,所述装置包括已安装应用数据存储装置,所述已安装应用数据存储装置对安装在所述装置上的应用进行跟踪。所述查询包装器构建模块被配置为将来自所述已安装应用数据存储装置的信息包括在所述查询包装器中。在其它特征中,所述装置包括账户数据存储装置,所述账户数据存储装置对通过所述装置的操作系统进行了注册的活动账户进行跟踪。所述查询包装器构建模块被配置为将来自所述账户数据存储装置的信息包括在所述查询包装器中。

一种对设备进行操作的方法包括向用户呈现用户界面,所述用户界面提供用于用户对文件的识别以及用户对查询的输入。所述方法包括确定所识别的文件的类型数据。所述类型数据指示了所识别的文件的文件类型。所述方法包括基于所述类型数据和所输入的查询来创建查询包装器。所述方法包括向搜索系统发送所述查询包装器。所述方法包括从所述搜索系统接收结果集合。所述结果集合包括(i)第一应用的第一应用状态的标识和(ii)用于所述第一应用状态的第一访问机制。所述方法包括将所述结果集合呈现给用户,包括呈现与所述第一应用状态相对应的第一用户界面元素。所述方法包括响应于用户对所述第一用户界面元素的动作,(i)根据所述第一访问机制将所述第一应用打开到所述第一应用状态并且(ii)将所识别的文件提供给所述第一应用状态。

在其它特征中,所述类型数据包括(i)互联网号码分配机构媒体类型和(ii)mime(多用途互联网邮件扩展)类型中的一种。在其它特征中,确定所述类型数据的步骤是基于所识别的文件的扩展名和所识别的文件的头部区域中的至少一种来执行的。在其它特征中,确定所述类型数据的步骤包括基于所识别的文件的名称的扩展名来设定所述类型数据。

在其它特征中,将所识别的文件提供给所述第一应用状态的步骤包括:响应于所述第一访问机制是web访问机制,将所识别的文件上传到托管所述第一应用状态的web服务器。在其它特征中,将所识别的文件提供给所述第一应用状态的步骤包括:响应于所述第一访问机制是本机访问机制,将所识别的文件的位置参考提供给所述第一应用状态。在其它特征中,所述方法包括:在将所识别的文件提供给所述第一应用状态之前创建所识别的文件的副本;以及响应于用户指示不需要对所识别的文件作出修改而用所述副本覆写所识别的文件。

在其它特征中,所述结果集合包括(i)第二应用的第二应用状态的标识和(ii)用于所述第二应用状态的第二访问机制。所述方法包括,在所述第一应用状态修改所识别的文件之后,呈现第二用户界面元素。所述方法包括响应于用户对所述第二用户界面元素的动作,(i)根据所述第二访问机制将所述第二应用打开到所述第二应用状态并且(ii)将经修改的所识别的文件提供给所述第二应用状态。

在其它特征中,所述方法包括在用户修改了所识别的文件之后从所述第一应用状态退出之后,允许用户输入第二查询。所述方法包括基于所述类型数据和输入的所述第二查询来创建第二查询包装器。所述方法包括向所述搜索系统发送所述第二查询包装器。所述方法包括从所述搜索系统接收第二结果集合。所述第二结果集合包括(i)第二应用状态的标识和(ii)用于所述第二应用状态的第二访问机制。所述第二应用状态来自所述第一应用和第二应用中的一个应用。所述方法包括向用户呈现所述第二结果集合,呈现所述第二结果集合的操作包括呈现与所述第二应用状态相对应的第二用户界面元素。所述方法包括:响应于用户对所述第二用户界面元素的动作,(i)根据所述第二访问机制将所述第一应用和所述第二应用中的所述一个应用打开到所述第二应用状态并且(ii)将经修改的所识别的文件提供给所述第二应用状态。

在其它特征中,所述方法包括识别安装在所述设备上的应用并且识别所述设备上的活动账户。所述查询包装器包括基于所识别的已安装应用的信息和所识别的活动账户的信息。在其它特征中,一种非暂时性计算机可读介质存储有执行上述方法的指令。

从详细描述、权利要求和附图中,本公开的其他可应用领域将变得显而易见。详细描述和特定实例仅意在用于说明的目的,而不旨在限制本公开的范围。

附图说明

从详细描述和附图中,本公开将被更充分地理解。

图1是根据本公开的原理的组合功能框图和图形用户界面示例。

图2a至图2h是根据本公开的原理的示例图形用户界面。

图3是应用生态系统中的搜索系统的高级功能框图。

图4a至图4c是发送到搜索系统的查询包装器的示例内容的图形描绘。

图5a和图5b是响应于查询包装器而返回的结果消息的示例内容的图形描绘。

图6是示例搜索系统和由该搜索系统挖掘的代表性数据源的高级框图。

图7a是示例应用状态记录格式的图形表示。

图7b是根据图7a的格式的示例应用状态记录的图形表示。

图8是搜索应用的示例实施方式的功能框图。

图9是搜索系统的搜索模块的示例实施方式的功能框图。

图10是搜索应用的示例操作的流程图。

图11是搜索系统的示例操作的流程图。

在附图中,附图标记可以再用于以标识相似和/或相同的元件。

具体实施方式

当计算设备(诸如智能电话)的用户想要使用他们的设备来执行动作时,他们可以通过使用搜索应用来搜索能够执行该动作的应用。用户可以告知搜索应用什么动作是期望的,并且搜索应用将返回可能能够执行该动作的应用的列表。实际上,搜索应用可以提供专用于该动作的应用的特定状态(或屏幕)。换句话说,对于正在搜索裁切图片的用户,不是简单地返回图像编辑应用,而是搜索应用可以返回用于裁切图片的图像编辑应用的状态。

特别是对于诸如图像的媒体文件,用户可以想到他们愿意对其执行动作的特定文件。根据本公开的原理,可以在搜索应用内指定感兴趣文件。搜索应用确定该文件是什么类型(例如,图像文件可以是jpeg图像),并且搜索应用将识别支持该文件类型的应用和应用状态。

在一些实施方式中,搜索应用可以仅返回确定能够对所指定的文件类型执行所期望的动作的应用。在其它实施方式中,搜索应用在清楚应用针对所期望的动作不支持该文件类型时可以简单地排除该应用。同时,与确定支持该文件类型的应用和应用状态相比,支持文件类型的能力是不清楚的应用可以不再强调(被置于结果列表的下部、被示出为在大小上较小等)。

一旦用户识别搜索应用的感兴趣文件,当用户选择搜索结果时,搜索应用就可以将该感兴趣文件提供给所选择的应用。搜索应用可能具有附加功能,诸如将感兴趣文件提供给多个搜索结果的能力。搜索应用可以允许对应用的功能的基本预览,从而防止对感兴趣文件进行改变直到用户指示对改变的批准为止。

搜索应用也可以支持一系列动作。例如,用户可能期望从图像中去除红眼,然后将经校正的图像上传到“云”。搜索应用可以为这些动作中的每一个提供应用,更具体地搜索应用可以提供应用的特定状态。搜索应用首先可以呈现用于去除红眼的应用状态,并且在用户批准红眼去除时,呈现用于图像上传的应用状态。当用户选择用于图像上传的应用状态之一时,搜索应用将经修改的(去除红眼的)图像提供给图像上传应用状态。

赞助系统可以与搜索系统集成在一起,使得开发者可以推广他们的应用或者甚至他们的应用的特定状态。这种赞助商(也被称为广告客户)将被激励以确保搜索系统完全且准确地了解在赞助商的应用的每种状态下支持的文件类型。

赞助应用和应用状态可以被包括在搜索应用结果中,并且可以被标记为赞助的或者可以被包括在有机(非赞助的)结果中。在其它实施方式中,应用或应用状态的赞助可以简单地强调已经包括在有机结果中的应用或应用状态。这种强调可以采取视觉增强的形式,诸如较大的文本、较大的图块大小或图像(例如,应用特定图像或诸如星形物的预定义图像)的添加,或者通过将赞助结果移至结果列表上部。赞助商可以指示应用或应用状态只有当在用户的搜索查询中存在某些关键词时才会被赞助。或者,赞助商可以期望在应用或应用状态出现在有机结果中的任何时候推广应用或应用状态。

赞助商可以承诺基于以下各项中的一种或更多种来支付:印象(用户看到赞助应用)、点击(用户点击、触摸或以其它方式选择正在呈现的赞助应用)、每个动作的成本(赞助商确定他们愿意付款的动作或业务,诸如后续应用内的购买)和安装(当赞助应用先前尚未被安装并且作为第一应用开发者的结果赞助应用正在由用户安装时)。赞助商可以对支付作出规定——例如,只有当状态被示出在某个位置中,诸如在结果的第一屏幕内。

然而不是应用的开发者的第三方可能期望赞助应用状态。例如,图像云托管服务(诸如雅虎公司的flickr社交摄影平台)可以对应于图像上传应用的特定状态。图像云托管服务因此可以赞助方便将图像上传到他们的云平台的应用状态。

在其它特征中,用户可以选择搜索结果中的另一结果,从而导致用户设备以如上所述的类似方式启动对应的应用,将该应用设定成由所选择的搜索结果指定的应用状态,并且将该状态配置为包括相同的指定文件。在一些示例中,每个显示的搜索结果可以在用户选择搜索结果时向用户指示对应的应用状态可以相对于所指定的文件执行的功能(例如,提供该功能的描述和/或预览)。

通过识别既执行通过用户的搜索查询描述的功能又相对于由用户指定的文件的文件类型这样做的应用的应用状态,与单独使用搜索查询生成的搜索结果相比,本公开的技术可以使得能够生成更多地响应于用户的搜索的搜索结果。附加地,通过使得用户能够与多个搜索结果交互(例如,预览所对应的应用状态,或者相对于所指定的文件执行由状态提供的功能)而无需用户相对于每个搜索结果(例如,在每个应用状态内)来指定文件,这些技术也可以简化并提高用户的体验。

作为特定示例,用户可以输入搜索查询“上传图像”并且从用户设备上的存储位置中选择图像文件。用户设备可以将搜索查询、图像文件的文件类型以及与用户和/或用户设备相关联的其它数据提交给搜索系统。搜索系统可以识别使得用户能够上传与图像文件相关联的文件类型的图像的应用(例如,社交媒体应用)的应用状态。

搜索系统可以向用户设备发送指定应用状态的搜索结果。在用户选择搜索结果中的任何搜索结果时,用户设备可以启动所对应的应用(例如,flickr社交摄影平台)并且将该应用设定成由所选择的搜索结果指定的应用状态。用户设备可以进一步将应用状态配置为包括图像文件。例如,状态可以被配置为立即上传图像文件或者在接收到用户确认或附加的用户输入之后再上传图像文件。

在图1中,示出了在诸如智能电话、平板或膝上型电脑的用户设备104上运行的简易的搜索应用100。用户设备104可以是任何适合的用户计算设备,诸如游戏设备、车辆信息娱乐设备、可穿戴设备或智能电器(诸如智能冰箱或智能电视)。在100-1处示出了搜索应用100的第一视图并且用户设备104的对应附图标记是104-1。另外,在用户设备104-2内示出了搜索应用的第二视图100-2并且演示所执行搜索的示例结果。

在搜索应用100中,文本框108允许用户输入搜索查询。用户界面元素116允许用户指定感兴趣文件。仅作为示例,用户界面元素116可以是具有回形针(用于附件的广泛认可的符号)的图标的按钮。

用户界面元素116可以基于文本框108和感兴趣文件来触发搜索。在各种实施方式中,用户界面元素116可以是具有文本的按钮和/或与搜索相对应的图标,诸如放大镜。文件显示区域120可以指示文件已被选择并且可以包括关于该文件的信息。在图1中,示出了文件名,但是可以包括其它信息或附加信息,诸如文件的源(例如,路径或源应用)、文件的所确定的文件类型、文件的大小、文件的时间戳(可以是修改时间戳、创建时间戳或访问时间戳)和/或文件的图形预览。

搜索应用100的结果区域124在搜索被执行之前可以是空的。如在下面更详细地示出的,可以在指定感兴趣文件的同时使用该结果区域124。当用户对用户界面元素116进行动作以执行搜索时(在图1中用手128来指示,所述手128被示出为比实际尺度小得多以避免使图变得模糊),搜索应用100与搜索系统132进行通信。

搜索应用100向搜索系统132发送查询包装器(querywrapper)136。在下面对查询包装器136的结构进行更详细的讨论。在图1中示出了查询包装器136的两个参数,并且包括查询对象136-1和文件类型136-2。查询对象136-1可以是明文字符串—在这种情况下,用户已输入“去除红眼”作为搜索查询。在该示例中,文件类型136-2是“图像/jpeg”的多用途互联网邮件扩展(mime)类型,该文件类型136-2是基于由用户识别的文件(在该示例中为“image001.jpg”)的文件类型。

尽管为了简单将在本公开中使用术语“mime类型”,但是现在将mime类型正式地称为媒体类型并且由互联网号码分配机构(iana)列举。mime类型也可以被称为内容类型。本公开不限于使用标准化的mime类型,而是可以使用文件类型的任何表示,只要该表示为以下系统所知即可:从文件确定文件类型的系统以及跟踪哪些文件类型被每个应用和应用状态支持的搜索系统。

搜索系统132识别可以对jpeg文件类型执行红眼去除并且向搜索应用100返回应用状态结果140的应用状态。在搜索应用100的第二视图100-2中示出了示例(和假想)结果的显示。换句话说,视图100-2来自同一搜索应用100,并且只不过在时间上晚于视图100-1。类似地,用户设备104-2只不过是在104-1处示出的在时间上比用户设备104更晚的视图。

示出了三种结果144-1、144-2和144-3。作为示例,针对“红眼去除器”应用的“去除红眼”状态的结果144-1包括与红眼去除器应用相关联的图像148、红眼去除器应用的标题152和各种其它元数据。在此示例中,元数据包括可以由红眼去除器应用的开发者提供的评级和评论数156以及文本描述160。

选择第一结果144-1可以通过点击与红眼去除器应用的“去除红眼”状态相对应的链接162来完成。或者,点击或触摸第一结果144-1内的任何地方可以使搜索应用100打开所识别的应用,并且如果可能的话,导航到允许红眼去除的结果应用的状态。然后搜索应用100可以向作为结果的应用状态指示感兴趣文件(image001.jpg)。

如图1中看到的,第三结果144-3包括“下载”用户界面元素(诸如链接或按钮)164。这指示了应用“phototouch-uplite”未被安装在用户设备104上。通过对用户界面元素164进行动作(或者,在一些实施方式中,通过点击或触摸第三结果144-3内的任何地方),搜索应用100将访问数字分发平台以允许phototouch-uplite应用被下载和安装,此后搜索应用100将导航到phototouch-uplite应用的适当的状态并且提供感兴趣文件。

在图2a至图2h中,示例图形用户界面200的各种视图从图2a中的200-l开始。如图2a中所示,用户已经键入(或者通过诸如语音辨识的另一机制输入)搜索查询“去除红眼”。手204(同样未按比例绘制)被示出为对用户界面元素208进行动作以指定期望进行红眼去除的文件。

对用户界面元素208进行动作导致图2b。在视图200-2中,呈现了潜在文件源的列表。这些源可以包括本地储存库,所述本地储存库可以基于用户设备操作系统而变化。例如,一些操作系统包括专用于图像、视频和音频的储存库或图库,并且也可以包括位置,诸如“下载”。

搜索应用200也可以提供从另一应用指定文件。另一应用可以是内置应用、由操作系统开发者开发的应用或第三方应用。例如,内置图库应用或拾音器应用可以提供感兴趣文件。在其它实施方式中,可以提供由操作系统开发者提供的照片应用。也可以提供本地存储储存库和/或云存储储存库,诸如dropbox云存储和同步系统或microsoftonedrive(未示出)云存储和同步系统。

手212被示出为选择图像储存库216。从图像储存库216内选择的图像未被示出,因为特定图形用户界面将根据设备的不同而变化。一旦从图像储存库216中选择了图像,就示出图2c的视图200-3。

在图2c中,所选择的图像(“image001.jpg”)被示出,诸如在不可编辑的文本框220中。在一些实施方式中,一旦文件被选择就可以隐藏用于选择文件的用户界面元素208。点击或触摸文本框220内的任何地方可以重新打开文件选择视图,诸如200-2。手224被示出为选择搜索用户界面元素228。

当接收到应用状态结果时,图2d的视图200-4被示出。与图1的视图100-2类似,示出了三种结果。手250例示了用户针对“去除红眼”动作而选择了应用“红眼去除器”。这使搜索应用200将红眼去除器应用打开到可能去除红眼的状态。此外,搜索应用200将所识别的图像提供给红眼去除器应用。

在图2e中,在300-1处示出了“红眼去除器”应用的示例图形用户界面。图标304和标题308形成红眼去除器应用的商标(有时被称作彩色元素(chrome))。在312处示出了所提供的文件(image001.jpg)的预览。手316被示出为对“去除红眼”按钮320进行动作,这将指示红眼去除器应用从图像中去除红眼。

在图2f中,应用300的视图300-2包括如果顺利的话已经去除任何红眼效果的图像的预览340。如果用户对红眼去除不满意,则用户可以诸如通过对后退按钮344进行动作而返回到搜索应用200。手348在图2f中被示出为对后退按钮344进行动作,这导致图2g中的搜索应用200的视图200-5。后退按钮344可以是内置操作系统软按钮。在各种实施方式中,这种按钮可以仅基于使按钮的操作系统行出现的某个用户交互而出现。仅作为示例,按钮的该操作系统行可以包括后退按钮、主页按钮和任务切换器按钮。

在图2g中,搜索应用200的视图200-5示出了与图2d相同的三种结果。现在,手360被示出为选择“免费照片编辑器”应用结果364。在各种实施方式中,视图200-5可以包括关于是否应当接受对由红眼去除器应用指定的文件执行的操作而给用户的查询。例如,对话框可以与关于是否应当接受由红眼去除器应用修改的文件的“是”或“否”的选择一起出现。如果用户指示不接受改变,则所指定的文件可以被回滚到它先前的状态(诸如通过恢复文件的备份副本)。或者,如果接受改变,则可以将经修改的文件提供给免费照片编辑器应用。

在图2h中,示出了免费照片编辑器应用的示例用户界面370。所指定的图像的预览374被显示,并且图像操纵选项被示出为包括裁切378、调整颜色382和去除红眼386。手390被示出为选择去除红眼386。这将使免费照片编辑器应用试图去除红眼并且潜在地更新预览374。然后用户可以使用免费照片编辑器内的特征(未示出)来保存经修改的图像,可以通过返回到搜索应用200来保存修改,或者除非采取了明确的动作来拒绝改变,否则可以自动地保存改变。

如图3中看到的,用户设备104可以从数字分发平台404接收搜索应用100。数字分发平台404可以向用户设备提供本机应用。示例数字分发平台包括google公司的googleplay数字分发平台、苹果公司的appstore数字分发平台以及微软公司的windowsphone数字分发平台。

虽然图3示出了搜索应用100被从数字分发平台404提供给用户设备104,但是实际上可以通过网络408来执行通信,如由虚线所指示的。网络408可以包含局域网、移动电话提供商网络和分布式通信网络,诸如互联网。

搜索应用100经由网络408与搜索系统132进行通信。具体地,如在下面更详细地讨论的,查询包装器可以包括文本查询以及文件类型的指示,并且从搜索应用100向搜索系统132发送该查询包装器。搜索系统132生成结果,所述结果可以包括应用以及应用的状态。搜索系统132将适合的应用和应用状态往回提供给搜索应用100。

作为示例,适合的应用状态可以包括被识别为“应用a”的应用的状态。如果用户设备104选择与应用a相对应的状态,并且应用a尚未被安装,则用户设备104可以从数字分发平台404中检索应用a。搜索系统132可以基于来自广告客户门户412的广告参数来适配应用状态结果。广告客户门户412可以允许广告客户416发出广告请求,诸如以推广应用或应用状态。广告客户门户412也可以允许广告客户416指定关键词、投标价格和其它广告参数。

在图4a中,在各种实施方式中,示例查询包装器504可以用搜索系统132的公用密钥来加密。此公用密钥可以被嵌入在搜索应用100中并且其使用阻止任何窃听者检查或修改查询包装器504。仅搜索系统132具有所对应的专用密钥。

查询包装器504包括查询对象504-1,所述查询对象504-1可以是由用户输入的明文字符串。文件类型504-2指示由用户指定的文件的文件类型并且可以是存储mime类型的名称的字符串。或者,文件类型504-2可以是在搜索应用100与搜索系统132之间预先布置的缩短表示。在其它实施方式中,文件类型504-2可以是感兴趣文件名的扩展名的文本字符串。

可以包括安装了的应用504-3的表示。例如,可以包括所有安装了的应用(其可以通过标题或唯一识别符来指定并且可以包括版本号)的详尽列表。在其它实施方式中,可以为一组最受欢迎的应用指定比特字段。在一个示例中,100个二进制数字对应于是否安装了100个最受欢迎的应用中的每一个。搜索应用100和搜索系统132都必须知道这100个最受欢迎的应用。如果最受欢迎的应用随着时间的推移而改变,则搜索系统132将需要向搜索应用100报警,使得比特字段被正确地解释。尽管使用100作为示例,然而可以为了更大的存储效率而使用二次幂(诸如128)。

用于使用有限数量的数据来指示安装了的应用的另一机制是布隆过滤器(bloomfilter)。布隆过滤器指定来自应用的预定义集合的应用是否被潜在地安装在设备上或是否的确未安装该应用。为了实现减少的存储空间,布隆过滤器的输出并不明确说明某个应用是否存在;仅说明应用是否确定不存在。

账户结构504-4指示哪些账户存在于用户设备上以及关于那些账户的任何相关细节,诸如账户是否是活动的。这可能影响应用状态有多相关,并且因此影响其在搜索结果排名中的位置或甚至是否存在于搜索结果排名中。例如,如果用户具有带有adobecreativecloud内容创建服务的活动帐户,则可以优先考虑与adobecreativesuite相对应的应用状态,并且反之亦然。设备信息数据结构504-5可以对以下数据进行编码:操作系统身份和版本号、用户设备的地理位置数据、屏幕分辨率、定向(纵向或横向)和传感器能力(诸如加速计的精确度或心率传感器的存在)。

在图4b中,查询包装器508可以与查询包装器504类似,除了代替文件类型之外,查询包装器508包括所指定的文件的一部分的副本,诸如文件头部的副本508-2。可以发送文件头部的副本508-2以允许搜索系统132作出关于文件类型的确定。在其它实施方式中,只有当搜索应用100不能确定文件类型时才可以发送文件头部。

在图4c中,查询包装器512与查询包装器504和查询包装器508类似,但是在512-2处包括整个文件的副本。可以包括整个文件的副本512-2以允许搜索系统132作出它自己对文件类型的确定。当发送文件头部的副本508-2或整个文件的副本512-2时,在一些实施方式中搜索应用100可以省略任何独立文件类型确定逻辑。

在图5a中,应用状态结果结构604包括应用列表604-1。例如,应用列表604-1可以包括字符串的数组,每个字符串存储应用名称。该数组通常可以按照最相关到最不相关来排序,但是可以基于赞助来调整顺序。可以根据发送查询包装器的设备的分辨率来选择应用列表604-1中提供的应用的数目。例如,具有较大屏幕和/或较高分辨率的设备可以接收更大数目的应用。

应用状态列表604-2包括对的数组,其中每一对的第一值对应于应用状态(其可以是标题,诸如“去除红眼”)并且每一对的第二值对应于关联应用(诸如“红眼去除器”应用)。

图像字段604-3可以包括应用列表604-1中的每个应用的图像,诸如图标。在其它实施方式中,图像字段604-3可以包括应用状态列表604-2中的每个应用状态的图像,诸如屏幕截图。

应用访问链接字段604-4为应用列表604-1中的每个应用的默认状态指定访问机制。例如,访问链接可以包括用于在应用被安装的情况下打开应用的命令和/或用以下载未安装的应用的到数字分发平台的链接。另一访问机制可以是通过浏览器来访问基于web的应用的url(统一资源定位符)。当应用状态结果结构604被返回时,应用内的代码可以基于每个应用的特定安装状态来确定打开和下载中哪一个是适当的动作。

应用状态访问链接字段604-5为应用状态列表604-2中的每个应用状态指定访问机制。如下所述,访问机制可以包括到web页面的链接或应用程序编程接口调用,以将应用直接打开到某一状态。访问机制可以替代地包括用于打开应用并导航到特定状态的脚本。访问机制也可以包括在打开应用之前从数字分发平台下载并安装应用的指令(诸如在脚本中)。

附加元数据604-6可以包括针对每个应用的评级(诸如星数)、针对每个应用的文本描述、评论文本和度量(诸如评论数)以及赞助的指定。赞助指定可以是简单的二进制标志或者可以包括赞助级别的指示。例如,与现有应用的使用相比,赞助商可能愿意为新安装付出更多。赞助商的这种兴趣级别可以允许搜索应用怀着确认该收益的希望而更显著地推广赞助应用。

附加元数据604-6可以包括应用的下载速度或趋势流行度的其它指标。新的且有价值的应用可能尚不具有大的安装基础,但是可以示出在下载数量方面的快速增长。因此,趋势流行度可以被用作对应用的显示进行排名的信号,其中趋势应用在结果列表中上移得更高。此外,趋势的视觉指示(诸如文本(“趋势”或与趋势相关的词,诸如“流行”)或图标)可以被示出为与应用的趋势度量高于阈值的应用极为接近。阈值可以是针对所有应用的绝对阈值,或者对于应用所在的市场区段而言或对于结果列表中的其它应用而言可以是相对的/归一化的。

在图5b中,应用状态结果608可以包括html(超文本标记语言)图像映射608-1。html图像映射608-1可以是被划分成单独的区域的单个图像,诸如jpeg(联合摄影专家组)或png(便携式网络图形)图像。每个区域对应一个应用或应用状态并且示出与该应用或应用状态相对应的文本和/或图标。当html图像映射被触发时,图像映射的对应部分激活针对在html图像映射608-1的该区域中显示的应用或状态的对应访问机制。

html图像映射608-1可以由搜索系统132根据请求设备的大小来调整大小。在其它实施方式中,搜索系统132可以提供不同大小的html图像映射并且可以根据设备的屏幕的分辨率和要专用于结果显示的版面的量,在用户设备处选择适当大小的html图像映射。搜索系统132可以创建将按某个范围的显示大小和分辨率工作的html图像映射,并且如果所指定的显示区域在该某个范围内,则html图像映射可以由设备按比例进行缩放。

图6例示了搜索系统132的示例环境。搜索系统132是经由网络408从用户设备接收搜索查询的计算设备的合集。在一些实施方式中,用户设备经由伙伴计算系统(未例示)与搜索系统132进行通信。伙伴计算系统可以是利用搜索系统132的搜索功能的第三方的计算系统。

伙伴计算系统可以由除了搜索系统132的运营商以外的公司或组织拥有。此类第三方的示例包括互联网服务提供商、聚合搜索门户和移动电话提供商。用户设备可以全部经由伙伴计算系统向搜索系统132发送搜索查询并从搜索系统132接收搜索结果。伙伴计算系统可以向用户设备提供定制用户界面和/或可以修改用户设备上提供的搜索体验。

图6中所示出的搜索系统132的示例实施方式包括搜索模块700,所述搜索模块700引用存储在搜索数据存储装置704中的应用状态数据和存储在文件类型数据存储装置708中的文件类型数据。可以从数据源712获得搜索数据存储装置704中的数据和文件类型数据存储装置708中的数据。搜索数据存储装置704和文件类型数据存储装置708可以由搜索系统132的搜索模块700和/或维护组件(未示出)来维护和更新。

搜索数据存储装置704和文件类型数据存储装置708可以用可以从数据源712填充的数据库、索引、表、文件和其它数据结构来更新。搜索数据存储装置704可以存储可以具有图7a中所示出的格式的应用状态记录。

解析器和其它etl(提取、变换和加载)过程可以适配来自数据源712的数据以便于存储在搜索数据存储装置704中。在一些实施方式中,数据可以被手动地输入和/或手动地变换成可由搜索数据存储装置704使用的格式。数据源712可以包括来自应用开发者的数据712-1,诸如应用开发者的网站和由开发者提供的数据馈源。

数据源712可以包括经由web或经由应用访问的数字分发平台712-2。数据源712也可以包括其它网站,诸如博客712-3、应用评论网站712-4和社交网站712-5,诸如facebook公司的facebook应用和网站以及twitter公司的twitter应用和网站。

数据源712也可以包括与电影、电视节目、音乐、餐馆等有关的数据的在线数据库7126。数据源712中的每一个均可以具有独立本体并且可以以不同的速率更新。因此,可以以不同的速率根据数据源712中的每一个来更新搜索数据存储装置704。此外,数据的可信性和准确性可以在数据源712之间不同。可靠性、及时性和准确性的量度可以被存储在搜索数据存储装置704中并且可以用于对从那些数据源712获得的搜索结果进行加权。

如上所述,搜索系统132基于搜索查询和从用户设备接收到的文件类型的指示并且基于包括在搜索数据存储装置中的数据来生成搜索结果。具体地,搜索模块700基于搜索查询和文件类型指示来识别包括在搜索数据存储装置704中的一个或更多个应用状态记录。搜索模块700使用识别所识别的应用状态记录的一个或更多个应用状态id来从所识别的记录中选择一个或更多个访问机制,并且将所选择的访问机制作为搜索结果发送到用户设备。在一些示例中,搜索模块700从用户设备接收文件类型的指示并且基于该指示来识别应用状态记录。

搜索数据存储装置704包括针对每个应用或针对每个应用状态的关于该应用或应用状态所支持的文件类型的信息。对于给定应用状态,搜索数据存储装置704可以存储绝对支持的文件类型的列表、绝对不支持的类型的列表、可以支持的文件类型的列表等。在一个示例中,搜索数据存储装置704可以包括文件类型元组的数组。每个元组可以包括mime类型和置信度值。该置信度值可以指示搜索系统132在应用状态处理该文件类型的能力方面有多少信心。

在一个实施方式中,置信度值1指示应用状态可以处理该文件类型的绝对置信度。置信度值-1指示应用状态不能处理该文件类型的绝对置信度。置信度值0可以指示没有关于应用状态是否可处理该文件类型的数据。

可以使用各种压缩方案来减少针对每个应用状态存储元组的此数组所需要的存储量。例如,许多图像程序可能能够处理某一组图像类型。这组图像类型可以被识别为组类型。然后应用状态仅需要添加指定该组和置信度值的元组来指代组中的每一文件类型。此外,对于给定应用状态,可以完全不存储几乎不存在信息(其可以对应于约为0的置信度值)的文件类型。

在各种实施方式中,可以通过咨询针对应用的清单文件来确定能够由应用状态处理的文件类型。清单文件可以指定哪些文件类型由该应用处理。在不存在其它信息的情况下,可以假定由应用执行的每个动作因此可以处理那些文件类型。在其它实施方式中,清单文件可以在每个状态的基础上指定所支持的文件类型。

清单文件中的数据标签的示例是“android:mimetype=image/jpeg”,其指示应用支持jpeg图像。当清单文件列举了所支持的文件类型时,可以作出不支持任何未列举的文件类型的推理。这可以通过指定“所有其它类型”具有置信度值-1被反映在应用状态的数据中。

来自清单文件的另一示例数据标签是“android:mimetype=image/*”,其传达了应用接受所有图像类型。搜索数据存储装置704可以定义包括搜索系统132感兴趣的所有图像类型的组。此应用的对应应用状态因此具有与所有图像的组和置信度值为1(或小于1)相对应的元组。置信度值可以小于1,因为声称接受所有图像类型的应用将很可能不能处理每一种罕见的图像类型。

反馈(诸如来自用户、搜索系统132的运营商)和应用反馈(诸如来自不能处理某些文件类型的应用的崩溃报告)可以用于更新搜索数据存储装置704中的应用状态记录。例如,声称接受所有图像类型的应用可以被确定为不能处理某个图像类型(诸如pgf或渐进式图形文件)。结果,另一元组将被添加到应用或应用状态以指示针对该文件类型的负置信度值。由于这个原因,当针对应用状态解析文件类型元组时,搜索系统132可以将更特定的元组(诸如针对单个文件类型的那些元组)看作是控制优于更通用的元组,诸如适用于一组图像类型的那些元组。

在图7a中,应用状态记录804的示例格式包括状态识别符(id)804-1、应用状态信息804-2、应用识别符(id)804-3、用于访问应用状态的一个或更多个访问机制804-4以及由应用状态处理的关联文件类型804-5。

状态id804-1可以用于在包括在搜索数据存储装置704中的其它应用状态记录当中唯一地标识应用状态记录804。在一些示例中,状态id804-1以人类可读形式描述功能和/或应用状态。例如,状态id804-1可以包括访问机制804-4中引用的应用的名称。

在特定示例中,用于互联网音乐播放器应用的状态id804-1可以包括互联网音乐播放器应用的名称,以及当该互联网音乐播放器应用被设定成由包括在应用状态记录804中的访问机制804-4所定义的状态时将播放的歌曲名称。在一些示例中,状态id804-1包括与统一资源定位符(url)类似地格式化的字符串,其可以包括应用的识别符和应用内的状态的识别符。在其它实施方式中,用作状态id804-1的url可以包括应用的识别符、要由应用提供的功能的识别符以及作为功能的目标的实体的识别符。

应用状态信息804-2可以包括描述应用根据应用状态记录804中的访问机制804-4被设定成的应用状态的数据。包括在应用状态信息804-2中的数据的类型可以取决于与应用状态相关联的信息的类型和由访问机制804-4指定的功能。应用状态信息804-2可以包括各种不同类型的数据,诸如结构化数据、半结构化数据和非结构化数据。可以基于从数据源712中检索到的文档自动地和/或手动地生成并更新应用状态信息804-2。

在一些示例中,应用状态信息804-2包括当处于与应用状态记录804相对应的应用状态下时,由应用呈现给用户的数据。例如,如果应用状态记录804与音乐播放器应用相关联,则应用状态信息804-2可以包括描述当音乐播放器应用被设定为所指定的应用状态时显示和/或播放的歌曲(例如,名称和艺术家)的数据。

当应用状态记录804对应于应用的默认状态时,应用状态信息804-2可以包括通常与应用而不与任何特定应用状态相关的信息。例如,应用状态信息804-2可以包括应用的开发者的姓名、应用的发布者、应用的类别(例如,流派)、应用的文本描述(其可以由应用的开发者来指定)和应用的价格。

应用状态信息804-2也可以包括关于应用的安全数据或隐私数据、应用的电池使用率和应用的带宽使用率。应用状态信息804-2也可以包括应用统计,诸如下载次数、下载速率(例如,每月平均下载量)、下载速度(例如,过去一个月内下载次数占应用的所有下载次数的百分比)、评级数和评论数。

应用id804-3唯一地标识与应用状态记录804相关联的应用。访问机制804-4指定由应用状态记录804指定的状态可以被访问的一种或更多种方式。对于任何给定用户设备,仅访问机制804-4中的一些访问机制可以是相关的。

为了例示,在图7b中,示例应用状态记录808包括形式为人类可读文本的状态id8081:“免费照片编辑器:编辑图像”。示例应用状态记录包括应用状态信息8082,该应用状态信息8082包括应用类别、状态名称、文本描述、用户评论(数字和/或文本)和可用功能。例如,针对此状态的可用功能可以包括裁切图像、使图像旋转和去除红眼。

应用id808-3唯一地标识免费照片编辑器应用。应用id808-3可以指代典型的免费照片编辑器软件产品,涵盖包括跨平台(例如,ios操作系统和android操作系统)的免费照片编辑器应用的所有本机版本以及免费照片编辑器应用的任何web版本的免费照片编辑器应用的所有版本。

示出了三种访问机制808-4:web访问机制、本机应用访问机制和本机下载访问机制。web访问机制可以采取与免费图片编辑器网站上的“编辑图像”的web页面相对应的url(统一资源定位符)的形式。

本机访问机制可以包括针对特定操作系统上的免费照片编辑器应用的本机版本的应用资源识别符以及针对编辑图像状态导航到免费照片编辑器应用中的状态的一个或更多个操作。在各种实施方式中,并且对于各种应用状态,访问机制可以能够直接访问状态(诸如通过使用android操作系统意图(intent))。如果免费照片编辑器:编辑图像应用状态在多个操作系统平台上可用,则通常将存在多种本机访问机制。

下载访问机制可以包括用于打开到数字分发平台的门户以下载和安装应用的指令,接着是打开该应用并导航到正确的状态,其中打开和导航可以与本机访问机制相同。换句话说,由下载访问机制采取的动作可以是本机访问机制的那些动作的超集。

在图8中,搜索应用900的示例实施方式的功能框图包括用户界面模块904。用户界面模块904允许用户指定查询,所述查询被发送到查询包装器构建模块908。

用户界面模块904也许可用户识别感兴趣文件。感兴趣文件被提供给文件类型确定模块912,所述文件类型确定模块912确定文件的类型并将该文件类型提供给查询包装器构建模块908。文件类型确定模块912可以基于以下信息确定文件的类型:文件的名称中的扩展名、文件的头部中的元数据、文件的头部和/或文件的主体的结构的分析,和/或根据来自操作系统的指示来确定文件的类型。

查询包装器构建模块908也可以从已安装应用数据存储装置916和活动账户数据存储装置920接收数据。可以根据由操作系统提供的关于哪些应用被安装的信息来填充已安装应用数据存储装置916。在其它实施方式中,操作系统可以简单地由查询包装器构建模块908按需查询以确定安装了什么应用。

活动账户数据存储装置920跟踪用户设备上的哪些账户是活动的。这种跟踪可以基于由操作系统提供的信息并且可能需要特殊权限。查询包装器构建模块908构建包括来自用户的文本查询和来自文件类型确定模块912的文件类型的查询包装器。

当用户搜索的意图(诸如通过用户点击或轻敲搜索图标)被识别时,查询包装器构建模块908将查询包装器提供给网络通信模块924以用于通过网络(诸如网络408)传输到搜索系统132。在其它实施方式中,甚至可以在用户请求之前发送查询包装器,使得如果用户确实作出搜索请求,则可立即渲染结果。

网络通信模块924从搜索系统132接收结果并且将那些结果提供给结果呈现模块928。结果呈现模块928经由用户接口模块904将结果呈现给用户。响应于用户对结果之一的选择,结果呈现模块928将对应的访问机制信息传递给应用状态访问模块932。

如在下面更详细描述的,应用状态访问模块932导航到所指定的应用的所指定的应用状态。同时文件管理模块936下载或以其它方式获取感兴趣文件的副本。文件管理模块936可以在期望还原改变的情况下制作备份副本并且/或者可以通过应用为用户制作临时副本。文件管理模块936将关于感兴趣文件的识别信息(诸如指针或链接)或感兴趣文件的临时版本传递给应用状态访问模块932。应用状态访问模块932将感兴趣文件的标识提供给应用状态以允许感兴趣文件在该应用状态下运行。

在图9中,搜索模块1000的示例实施方式的功能框图包括接收查询包装器的查询分析模块1004。查询分析模块1004分析来自查询包装器的文本查询。例如,查询分析模块1004可以对查询文本进行分词,对查询文本进行过滤,执行词干化、同义词化和停用词去除。查询分析模块1004也可以分析存储在查询包装器内的附加数据。查询分析模块1004将经分词的查询提供给集合生成模块1008。

集合生成模块1008基于查询分词来识别应用和应用状态记录的考虑集合。搜索数据存储装置704的记录的一些内容或全部内容可以用倒排索引来编索引。在一些实施方式中,集合生成模块1008使用apache软件基金会的apachelucene软件库来根据倒排索引识别记录。

集合生成模块1008可以搜索倒排索引以识别包含一个或更多个查询分词的记录。当集合生成模块1008识别匹配记录时,集合生成模块1008可以将每个识别出的记录的唯一id包括在考虑集合中。例如,集合生成模块1008可以将查询词与应用状态记录的应用名称和应用属性(诸如文本描述和用户评论)相比较。集合生成模块1008也可以将查询词与应用状态记录的应用状态信息(诸如应用名称及描述和用户评论)相比较。

此外,在一些实施方式中,集合生成模块1008可以确定记录相对于搜索查询的初始分数。初始分数可以指示记录的内容与查询匹配的程度。例如,初始分数可以是相应查询词的词频-逆向文件频率(tf-idf)值的函数。

集合处理模块1012从集合生成模块1008接收唯一id并且确定这些id中的一些或全部id的结果分数。结果分数指示应用或应用状态的相关性(给定经分词的查询和上下文参数),其中较高的分数指示较高的感知相关性。例如,查询包装器中的其它词可以用作上下文参数。地理位置数据可以限制与用户设备的位置不相干的应用的分数(或简单地完全去除)。

集合处理模块1012可以基于一个或更多个评分特征(诸如记录评分特征、查询评分特征和记录查询评分特征)来生成结果分数。示例记录评分特征可以基于与记录相关联的测量结果,诸如在搜索期间记录被检索的频率以及基于记录而生成的链接被用户选择的频率。查询评分特征可以包括但不限于搜索查询中的字数、搜索查询的流行度和搜索查询中的字的期望频率。记录查询评分特征可以包括指示搜索查询的词与通过对应id指示的记录的词的匹配程度的参数。

集合处理模块1012可以包括被配置为接收一个或更多个评分特征的一个或更多个机器学习模型(诸如监督学习模型)。一个或更多个机器学习模型可以基于应用状态id评分特征、记录评分特征、查询评分特征和记录查询评分特征中的至少一种来生成结果分数。

例如,集合处理模块1012可以使搜索查询与每个id配对并且针对每个{查询,id}对来计算特征向量。特征向量可以包括一个或更多个记录评分特征、一个或更多个查询评分特征和一个或更多个记录查询评分特征。在一些实施方式中,集合处理模块1012使特征向量中的评分特征归一化。集合处理模块1012可以将不相干特征设定为空值或零。

然后集合处理模块1012可以将应用或应用状态id中的一个的特征向量输入到机器学习回归模型中以计算该id的结果分数。在一些示例中,机器学习回归模型可以包括一组决策树(诸如梯度提升决策树)。附加地或可替代地,机器学习回归模型可以包括逻辑概率公式。在一些实施方式中,机器学习任务可以被构建为半监督学习任务,其中少数训练数据被标记有人类策划的分数并且其余训练数据在没有人类标签的情况下被使用。

机器学习模型输出id的结果分数。集合处理模块1012可以计算集合处理模块1012接收到的id中的每一个id的结果分数。集合处理模块1012使结果分数与相应的id相关联并且输出最相关评分的id。

文件类型映射模块1016接收查询包装器中指定的文件类型。文件类型映射模块1016将包含在查询包装器中的文件类型映射到文件类型的内部表示以供由集合生成模块1008使用。用于映射的信息被存储在文件类型数据存储装置708中。仅作为示例,来自查询包装器的文件类型可以是mime类型,然而搜索数据存储装置704中指定的文件类型可以是搜索数据存储装置704专有的十六进制数。

此外,诸如当图像/jpeg的传入文件类型映射到jpg、jpe和jpeg时,传入文件类型可以映射到多个内部(即,在搜索数据存储装置704内部)文件类型。在其它实施方式中,可以存在反向映射。例如,从查询包装器接收到的文件类型可以简单地是文件的扩展名的明文字符串。文件类型映射模块1016因此可以将扩展名映射到与搜索数据存储装置704一致的文件类型。例如,“jpeg”、“jpg”、“jpeg”和“jp2”扩展名可以全部映射到由搜索数据存储装置704辨识出的同一图像/jpeg类型。

经映射的文件类型被提供给集合生成模块1008和/或集合处理模块1012。如下面更详细描述的,集合生成模块1008可以在开始产生考虑集合之前,基于经映射的文件类型对应用状态进行过滤。集合处理模块1012使用经映射的文件类型来对考虑集合中的应用状态进行评分。

赞助模块1020接收查询包装器并且识别与对其的赞助已由广告客户指示的查询相关的应用和应用状态。例如,赞助模块1020可以从集合生成模块1008接收考虑集合并且识别考虑集合内期望对其赞助的应用和应用状态。例如,可以对考虑集合中具有对应的赞助出价的应用和/或应用状态进行排名。具有最高初始分数的那些应用或应用状态可以被选择为赞助链接并且被提供给集合处理模块1012以用于包括在搜索结果中。

集合处理模块1012可以对由赞助模块1020提供的id进行评分,并且如果结果分数足够高,则输出赞助的应用或应用状态作为经排序的搜索结果的一部分。在其它实施方式中,赞助模块1020可以给标签供应一个或更多个id,该一个或更多个id指示集合处理模块1012包括作为赞助结果的id,而不管它们的结果分数如何。

赞助模块1020可以根据各种目标参数来操作,所述目标参数可以由广告客户指定,诸如通过使用广告客户门户412来指定。例如,广告客户可能期望使他们的应用在类似应用被包括在考虑集合中时被示出。相似性可以由广告客户明确指定——例如,通过列举与广告客户的应用类似的应用。在其它实施方式中,搜索系统132可以包括评估两个应用彼此的相似性的相似性评估模块(未示出)。相似性评估模块可以确定考虑集合中的每一个应用与每一个潜在赞助应用之间的相似性。在各种实施方式中,广告客户可以选择使他们的应用在搜索查询包括某些关键词或文件类型时被示出。

赞助模块1020可以考虑赞助应用是否已经被安装在从其接收查询包装器的用户设备上。如果广告客户的应用已经被安装在该用户设备上,则广告客户可能仅愿意支付降低的价格(甚至不付任何费用)来推广他们的应用。

赞助模块1020可以基于由广告客户设定的投标价格来选择赞助应用。广告客户可以基于例如他们的应用是否已经被安装、他们的应用与结果集合中的其它应用的相似性等来设定不同的投标价格以推广他们的应用。赞助模块1020可以选择针对当前搜索具有最高投标价格的应用以包括在经排序的搜索结果中。

结果生成模块1024可以从由集合处理模块1012选择的应用记录和应用状态记录中选择特定访问机制。然后结果生成模块1024准备要返回给用户设备的结果集合。尽管被命名为“应用状态结果”,然而访问机制中的一些可以是应用的默认状态(诸如主页)——这些访问机制可以是应用状态记录的特例或者仅是应用记录。

结果生成模块1024可以基于正被发送结果的用户设备的操作系统身份和版本来选择访问机制。例如,通过结果生成模块1024可以针对特定操作系统充分地形成用于下载、安装、打开并导航到指定状态的脚本。

如果结果生成模块1024确定本机访问机制都不可能与用户设备兼容,则搜索模块1000可以向用户设备发送web访问机制。如果web访问机制不可用,或者由于某种原因(例如,如果web访问机制依靠未被安装在用户设备上的java编程语言解释器)而与用户设备不兼容,则结果生成模块1024可以省略该结果。

在图10中,搜索应用的示例操作在设备重新启动之后应用首次打开时开始或者可以在应用被安装之后首次打开时开始。或者,每当用户在不使用搜索应用的一段时间之后打开搜索应用时,图10的控制可以开始。在1104处,控制确定是否已从用户接收到查询。如果已经从用户接收到查询,则控制转移到1108;否则,控制保持在1104处。

在1108处,如果文件已由用户指定,则控制转移到1112;否则,控制返回到1104。在1112处,控制确定所指定的文件的文件类型。所确定的文件类型可以是mime类型或媒体类型,或者可以仅是文件扩展名。可以基于文件扩展名、对文件的头部的评论并且/或者基于对文件的头部和/或文件的主体的分析来确定mime类型或媒体类型。

控制在1116处继续,其中控制可以等待用户对与搜索有关的用户界面元素进行动作。或者,控制可以立即调用搜索但是等待显示结果,直到用户已经指示了他们期望搜索为止。在1120处,控制准备如上所述的查询包装器。查询包装器通常将包括1104处提及的查询和1112处确定的文件类型。

在1124处,控制向某个系统发送查询包装器。控制在1128处等待直到已经从搜索系统接收到搜索结果为止,然后转移到1132。在1132处,控制向用户显示搜索结果。在1136处,控制确定用户是否从结果中选择状态。如果确定从结果中选择了状态,则控制转移到1140;否则,控制转移到1144。对应用状态的选择可以通过用户触摸、轻敲或点击在其中显示结果之一的区域来指示。或者,为每种结果指定特定区域,并且仅对该特定区域的选择将指示用户对状态之一的选择。例如,加下划线的超链接可以由用户点击,然而周围的文本图像和其它元数据可以是惰性的。

在1144处,控制确定是否清除用户界面。如果清除了用户界面,则控制转移到1148;否则,控制返回到1132。仅作为示例,控制可以在一段时间不被使用之后清除界面,或者在搜索应用尚不具有焦点(作为后台任务运行)持续超过预定时间段之后清除界面。如果界面未被清除,则继续通过1132来显示搜索结果。用户也可以指示界面应当被清除。例如,可以存在可辨识为清除意图的图标,诸如“x”。

在1148处,控制清除搜索界面并返回到1104。在一些实施方式中,用户可能期望对同一文件执行另一动作,并且因此可以仅对查询而不对所指定的文件执行搜索界面清除。例如,用户界面手势或元件可以指示查询应当被清除而不清除所指定的文件。附加地或可替代地,可以存在表示用户期望执行另一动作的另一用户界面元素。对此用户界面元素进行动作可以表示当查询应当改变时应当保留所指定的文件。在这种情况下,在控制返回到1104之前仅查询被清除。这允许对同一文件执行第二(或第三等)操作。

在1140处,控制确定所选择的结果是否对应于web应用。如果确定所选择的结果对应于web应用,则控制转移到1152;否则,控制转移到1156。在1152处,控制导航到web应用的所选择的状态,该所选择的状态可以仅是指向web浏览器中的特定url(统一资源定位符)。然后控制在1160处继续。

在1156处,控制确定是否安装了应用(该应用不是web应用并且因此假定该应用为本机应用)。如果确定安装了应用,则控制转移到1164;否则,控制转移到1168。在1168处,控制过渡到数字分发平台(应用商店)以下载应用。控制在1164处继续。在1164处,控制将所选择的应用打开到所选择的状态。可以能够使用单个调用(诸如意图)来将所选择的应用打开到所选择的状态。在其它实施方式中,可以将应用打开到默认状态,诸如主屏幕,然后可以向所选择的应用发送导航命令以到达所选择的状态。然后控制在1160处继续。

在1160处,控制制作所指定的文件的副本,并且在1172处,控制将所指定的文件的副本提供给所选择的应用。对于本机应用,可以通过简单地传递引用或指针来提供副本。对于web应用,可以上传所指定的文件。控制在1176处继续,其中如果用户返回到搜索应用,则控制转移到1180;否则,控制保持在1176处。而在1176处,用户正在与所选择的应用交互,或者执行与搜索应用无关的某个其它动作。

在1180处,用户已返回到搜索应用并且控制确定所指定的文件的副本是否已被修改。如果确定所指定的文件的副本已被修改,则控制转移到1184;否则,控制转移到1144。在1184处,控制确定用户对修改是否满意。如果确定用户对修改满意,则控制转移到1188;否则,控制转移到1144。控制可以通过来自用户的肯定响应来确定用户对修改满意。在其它实施方式中,可以在不用在所选择的应用中执行保存或其它功能的情况下,通过对用于返回到搜索应用的后退按钮进行动作来指示用户对修改的不满。

在1188处,控制已确定了用户对修改满意。因此,控制用经修改的副本覆写所指定的文件并在1144处继续。在其它实施方式中,可以省略副本的创建和所指定的文件的覆写并且可以将所指定的文件本身提供给所选择的应用。然后,由所选择的应用作出的改变的反转可以留给所选择的应用本身。

在图11中,搜索模块针对基于文件类型的搜索的示例控制从1204开始。如果在1204处接收到查询包装器,则控制转移到1208;否则,控制保持在1204处。在1208处,控制解析查询包装器,包括对查询进行分词。

在1212处,控制通过滤出确定不能处理由查询包装器指定的文件类型的应用状态来创建候选应用状态的初始集合。或者,可以通过滤出除确定可以处理由查询包装器指定的文件类型的应用状态之外的所有应用状态来创建初始集合。在这些实施方式中,如果没有确定能够处理该文件类型的应用,则可以将初始集合扩展到包括可能能够处理该文件类型的应用。

在1216处,控制基于经分词的查询来从初始集合内确定考虑集合。在1220处,控制为考虑集合中的每个应用状态生成分数。分数说明了搜索系统对所对应的应用状态能够处理所指定的文件类型的置信度。所有其它参数是相同的,对处理文件类型的置信度较高的应用状态将得到较高的分数。

在1224处,控制选择具有最高分数的那些应用状态以便对查询作出响应。在1228处,控制确定赞助商应用状态是否存在于所选择的应用状态中。如果是确定赞助商应用状态存在于所选择的应用状态中,则控制转移到1232;否则,控制转移到1236。在1236处,控制从考虑集合中识别赞助应用状态并且将那些赞助应用状态中的一个或更多个包括在所选择的应用状态内。如果没有赞助应用状态出现在考虑集合中,则这可以指示没有没有足够相关的赞助应用状态,并且因此搜索结果中将不包括赞助应用状态。控制在1232处继续。

在1232处,在所选择的应用状态内具有某种赞助的所有应用状态被识别并且可以应用赞助标签。赞助标签可以通过更改字体、大小、颜色或者在屏幕上的位置,来向搜索应用指示应用状态应当接收视觉强调。在1240处,控制识别所选择的应用状态的访问机制。访问机制可以基于关于安装在用户设备上的应用的信息以及关于在用户设备中活动的账户的信息。此信息可以已被提供在查询包装器中。

对于仅具有单一访问机制的应用状态,将提供该访问机制。对于安装了的应用,所提供的访问机制将导航到适当的状态。如果应用未被安装,则将包括首先下载该应用并然后导航到所选择的状态的访问机制。如果不清楚应用是否被安装,则可以包括这两种访问机制。

作为备用,对于存在web访问机制的任何所选择的应用状态,可以包括web访问机制。以这种方式,如果用户不能够或者不想安装或使用应用,则仍然可以经由该应用的web版本访问功能。

控制在1244处通过利用所选择的应用状态及其对应的访问机制对查询包装器作出响应而继续。然后控制返回到1204。在各种实施方式中,用户可以指定第一搜索查询和文件,并且与响应于第一搜索查询和文件的文件类型的搜索结果之一进行交互以操纵该文件。然后用户可以指定第二搜索查询(例如,修改第一搜索查询),并且与响应于第二搜索查询和文件的文件类型的搜索结果之一进行交互以进一步操纵该文件。用户可以与这些搜索结果中的不同搜索结果进行交互以多次操纵该文件,并且在一些示例中,以不同的方式(例如,通过相对于所对应的应用状态内的文件执行多个不同的功能)来操纵该文件。

上述描述在性质上仅仅是例示性的,而决不旨在限制本公开、其应用或用途。可以以各种形式实现本公开的广泛教导。因此,尽管本公开包括特定示例,但是本公开的真实范围不应当被限制于此,因为在研究附图、说明书和以下权利要求书后,其它修改将变得显而易见。应当理解的是,在不更改本公开的原理的情况下,可以按照不同的顺序(或同时)执行方法内的一个或更多个步骤。

此外,尽管实施例中的每一个在上面被描述为具有某些特征,然而相对于本公开的任何实施例所描述的那些特征中的任何一个或更多个特征可以用其它实施例中的任何实施例的特征加以实现和/或与其它实施例中的任何实施例的特征组合,即使未对该组合进行明确地描述。换句话说,所描述的实施例不是相互排斥的,并且一个或更多个实施例彼此的置换仍然保持在本公开的范围内。

元件之间(例如,模块之间)的空间关系和功能关系使用包括“连接”、“接合”、“对接”和“耦合”的各种术语来描述。除非被明确地描述为“直接”,否则当在以上公开中对第一元件与第二元件之间的关系进行描述时,该关系包含在第一元件与第二元件之间不存在其它中间元件的直接关系,以及在第一元件与第二元件之间(在空间上或在功能上)存在一个或更多个中间元件的间接关系。如本文所使用的,短语a、b和c中的至少一个应当被解释为意指逻辑(aorborc)(使用非排他性逻辑或(or)),而不应当被解释为意指“a中的至少一个、b中的至少一个和c中的至少一个。

在包括下面的定义的本申请中,术语“模块”或术语“控制器”可以用术语“电路”替换。术语“模块”可以指代执行代码的处理器硬件(共享的、专用的或组)和存储由该处理器硬件执行的代码的存储器硬件(共享的、专用的或组),是该处理器硬件和该存储器硬件的一部分,或者包括该处理器硬件和该存储器硬件。

模块可以包括一个或更多个接口电路。在一些示例中,接口电路可以包括连接到局域网(lan)、互联网、广域网(wan)或其组合的有线接口或无线接口。本公开的任何给定模块的功能可以分布在经由接口电路连接的多个模块之中。例如,多个模块可以允许负载均衡。在另一个示例中,服务器(也被称为远程或云)模块可以代表客户端模块完成一些功能。

如上面所使用的术语代码可以包括软件、固件和/或微码,并且可以指代程序、例行程序、函数、类、数据结构和/或对象。共享处理器硬件包含执行来自多个模块的一些或全部代码的单个微处理器。组处理器硬件包含与附加微处理器相结合地执行来自一个或多个模块的一些或全部代码。对多个微处理器的引用包含分立裸片上的多个微处理器、单个裸片上的多个微处理器、单个微处理器的多个核、单个微处理器的多个线程或上述的组合。

共享存储器硬件包含存储来自多个模块的一些或全部代码的单个存储器设备。组存储器硬件包含与其它存储器设备相结合地存储来自一个或更多个模块的一些或全部代码的存储器设备。

术语存储器硬件是术语计算机可读介质的子集。如本文所使用的术语计算机可读介质不包含通过介质(诸如在载波上)传播的暂时性电信号或暂时性电磁信号;术语计算机可读介质因此被认为是有形的和非暂时性的。非暂时性计算机可读介质的非限制性示例是非易失性存储器设备(诸如闪速存储器设备、可擦除可编程只读存储器设备或掩模只读存储器设备)、易失性存储器设备(诸如静态随机存取存储器设备或动态随机存取存储器设备)、磁存储介质(诸如模拟或数字磁带或硬盘驱动器)以及光学存储介质(诸如cd、dvd或蓝光盘)。

本申请中所描述的装置和方法可以由通过将通用计算机配置为执行在计算机程序中具体实现的一个或更多个特定功能而创建的专用计算机来部分地或完全地实现。上述的功能块和流程图元素用作软件规范,所述软件规范可以通过熟练的技术人员或程序设计人员的例行工作而被翻译成计算机程序。

计算机程序包括被存储在至少一个非暂时性计算机可读介质上的处理器可执行的指令。计算机程序也可以包括或依据所存储的数据。计算机程序可以包含与专用计算机的硬件交互的基本输入/输出系统(bios)、与专用计算机的特定设备交互的设备驱动器、一个或更多个操作系统、用户应用、后台服务、后台应用等。

计算机程序可以包括:(i)要解析的描述性文本,诸如html(超文本标记语言)或xml(可扩展标记语言)、(ii)汇编代码、(iii)由编译器根据源代码生成的目标代码、(iv)由解释器执行的源代码、(v)由即时编译器编译和执行的源代码等。仅作为示例,可以使用来自包括以下各项的语言的语法来编写源代码:c、c++、c#、objectivec、haskell、go、sql、r、lisp、fortran、perl、pascal、curl、ocaml、html5、ada、asp(活动服务器页面)、php、scala、eiffel、smalltalk、erlang、ruby、lua和

除非使用短语“用于……的手段”或者在方法权利要求的情况下使用短语“用于……的操作”或“用于……的步骤”来明确地记载要素,否则权利要求中记载的要素都不旨在为美国法典第35条第112(f)款的含义内的手段加功能要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1