掌桥专利:专业的专利平台
掌桥专利
首页

调试应用以供由应用交付服务器交付

文献发布时间:2023-06-19 11:14:36


调试应用以供由应用交付服务器交付

背景技术

可在计算设备上安装应用。计算设备可执行应用。

发明内容

本公开一般地涉及分析或者调试应用以供经由应用交付服务器交付。响应于请求或触发,应用可以执行恶意动作或者执行不正确动作。恶意或不正确动作的执行可导致移动设备上的计算资源利用、带宽利用和电池利用浪费。另外,由于在正确动作被执行之前的重复请求,恶意或不正确动作的执行可引起远程过程调用增加。网络安全性问题可能由执行恶意动作的应用的提供产生,而对这样的应用的及时识别和寻址可以提供系统安全性好处。由于被提供用于经由应用交付服务器交付的大量应用以及对应用的更新,高效地且可靠地检测执行恶意或不正确动作的应用例如以检测欺诈应用或者以对应用执行质量或其它审查而不在审查过程中引起延迟可能是有挑战性的。本技术解决方案的系统和方法允许基于历史执行信息、模拟动作或匹配应用来审查应用。基于审查,本技术解决方案可防止被确定为欺诈的或不正确的应用的交付或者禁止被确定为欺诈的或不正确的应用的特定动作。

至少一个方面涉及一种分析或者调试应用以供经由应用交付服务器交付的系统。所述系统可包括具有一个或多个处理器和存储器的数据处理系统。所述数据处理系统可针对应用识别由应用开发者配置有动作的消息传递对象。所述应用可由应用开发者提交。所述数据处理系统可基于由所述应用开发者提供的所述消息传递对象的动作的历史执行来确定第一分类分数。所述数据处理系统可基于与所述应用相关联的元数据来为所述应用生成机器生成的动作。所述数据处理系统可基于以所述应用开发者提供的所述消息传递对象的动作与所述机器生成的动作的比较来确定第二分类分数。所述数据处理系统可经由匹配程序来选择与所述应用匹配的第二应用。所述数据处理系统可基于针对所述第二应用批准的动作与由所述应用开发者提供的所述消息传递对象的动作的比较来确定第三分类分数。所述数据处理系统可基于以下各项中的一个或多个或每一个来更新交付控制参数:所述第一分类分数、所述第二分类分数和/或所述第三分类分数。所述数据处理系统可响应于由所述数据处理系统更新的所述交付控制参数来控制由所述应用交付服务器对所述应用的交付。

所述系统的示例性可选特征可以如下。所述数据处理系统可以被配置成从应用开发者设备接收所述应用。所述数据处理系统可以被配置成接收与所述应用相关联的数据文件,所述数据文件包括由所述应用开发者为所述应用所建立的多个动作。所述数据处理系统可以被配置成接收所述应用是由所述应用开发者上传以供由所述应用交付服务器交付的新应用的指示。所述数据处理系统可以被配置成响应于所述新应用的指示来触发调试过程,所述调试过程包括确定所述第一分类分数、所述第二分类分数和所述第三分类分数。所述数据处理系统可以被配置成接收所述应用是由所述应用开发者上传以供由所述应用交付服务器交付的所述应用的更新版本的指示。所述数据处理系统可以被配置成响应于所述应用的更新版本的指示而触发调试过程,所述调试过程包括确定所述第一分类分数、所述第二分类分数和所述第三分类分数。所述数据处理系统可以被配置成从其上安装所述应用的客户端计算设备接收针对所述应用的负面反馈的指示。所述数据处理系统可以被配置成响应于针对所述应用的所述负面反馈的指示而触发调试过程,所述调试过程包括确定所述第一分类分数、所述第二分类分数和所述第三分类分数。所述数据处理系统可以被配置成确定要触发调试过程,所述调试过程包括在交付所述应用以供安装在客户端计算设备上之前确定所述第一分类分数、所述第二分类分数和/或所述第三分类分数。所述第一分类分数可以基于所述第一分类分数与阈值的比较来指示是否满足与所述应用相对应的动作。所述数据处理系统可以被配置成基于所述应用与所述第二应用之间的相似性分数大于相似性阈值来确定所述应用与所述第二应用匹配。所述数据处理系统可以被配置成基于所述第一分类分数、所述第二分类分数和所述第三分类分数来确定要授权所述应用的交付。所述数据处理系统可以被配置成更新所述交付控制参数以使由所述应用交付服务器交付所述应用。所述数据处理系统可以被配置成基于所述第一分类分数、所述第二分类分数或所述第三分类分数中的至少一个小于失败阈值来确定分类失败。所述数据处理系统可以被配置成基于所述第一分类分数、所述第二分类分数和所述第三分类分数来确定分类失败。所述数据处理系统可以被配置成响应于所述分类失败而更新所述交付控制参数以阻止由所述应用交付服务器对所述应用的交付。所述数据处理系统可以被配置成将所述分类失败的通知发送到所述应用开发者。所述数据处理系统可以被配置成响应于所述分类失败而从所述应用开发者请求所述应用的更新版本。所述数据处理系统可以被配置成针对所述消息传递对象的动作基于所述第一分类分数、所述第二分类分数和/或所述第三分类分数来确定分类失败。所述数据处理系统可以被配置成响应于所述分类失败而禁止经由所述应用执行的所述消息传递对象的动作。所述数据处理系统可以被配置成授权所述应用以供由所述应用交付服务器交付。所述数据处理系统可以被配置成识别为所述应用所建立的多个动作。所述数据处理系统可以被配置成经由针对所述多个动作中的每一个的调试过程来确定第一分类分数、第二分类分数和/或第三分类分数。所述数据处理系统可以被配置成基于所述调试过程来更新所述交付控制参数以禁止所述多个动作中的一个或多个。所述数据处理系统可以被配置成识别用于执行所述应用的消息传递对象的动作的多个数字表面。所述数据处理系统可以被配置成更新所述交付控制参数以禁止在所述多个数字表面中的数字表面上执行所述应用的消息传递对象的动作。所述数据处理系统可以被配置成触发针对第三应用的调试过程。所述数据处理系统可以被配置成经由针对所述第三应用的所述调试过程来确定针对所述第三应用的第一分类分数。所述数据处理系统可以被配置成基于针对所述第三应用的所述第一分类分数与第一分类阈值的比较来检测第一分类失败。所述数据处理系统可以被配置成响应于检测到所述第一分类失败而在确定针对所述第三应用的第二分类分数和/或针对所述第三应用的第三分类分数之前退出针对所述第三应用的所述调试过程。所述数据处理系统可以被配置成将所述第一分类失败的通知发送到管理员设备。

至少一个方面涉及一种分析或者调试应用以供经由应用交付服务器交付的方法。所述方法可由具有处理器和存储器的数据处理系统执行。所述方法可包括针对应用识别由所述应用开发者配置有动作的消息传递对象的所述数据处理系统。所述应用可由所述应用开发者提交。所述方法可包括基于由所述应用开发者提供的所述消息传递对象的动作的历史执行来确定第一分类分数的所述数据处理系统。所述方法可包括基于与所述应用相关联的元数据来为所述应用生成机器生成的动作的所述数据处理系统。所述方法可包括所基于由所述应用开发者提供的所述消息传递对象的动作与所述机器生成的动作的比较来确定第二分类分数的述数据处理系统。所述方法可包括经由匹配程序选择与所述应用匹配的第二应用的所述数据处理系统。所述方法可包括基于针对所述第二应用批准的动作与由所述应用开发者提供的所述消息传递对象的动作的比较来确定第三分类分数的所述数据处理系统。所述方法可包括基于所述第一分类分数、所述第二分类分数和所述第三分类分数来更新交付控制参数的所述数据处理系统。所述方法可包括响应于由所述数据处理系统更新的所述交付控制参数而控制由所述应用交付服务器对所述应用的交付的所述数据处理系统。

所述方法可以包括由所述数据处理系统从应用开发者设备接收所述应用。所述方法可包括由所述数据处理系统接收与所述应用相关联的数据文件,所述数据文件包括由所述应用开发者为所述应用所建立的多个动作。所述方法可包括基于所述第一分类分数、所述第二分类分数和/或所述第三分类分数来确定要授权所述应用的交付。所述方法可包括更新所述交付控制参数以使所述应用交付服务器交付所述应用。所述方法可包括基于所述第一分类分数、所述第二分类分数或所述第三分类分数中的至少一个小于失败阈值来确定分类失败。所述方法可包括响应于所述分类失败而更新所述交付控制参数以阻止由所述应用交付服务器对所述应用的交付。

至少一个方面涉及一种计算机程序产品,当被实现在应用交付服务器的数据处理系统上时,所述计算机程序产品被配置成使所述数据处理系统执行分析或者调试应用以供经由所述应用交付服务器交付的方法。

可以在本发明的任何其它方面或实施例中分别地且个别地、单独或与任何其它定义的特征相结合地利用在上面依照本发明的任何方面或者在下面关于本发明的任何具体实施例所定义的个别特征和/或特征的组合。

此外,本发明旨在涵盖被配置成执行在本文中关于方法描述的任何特征的装置和/或使用或者产生、使用或者制造本文描述的任何装置特征的方法。

在下面详细地讨论这些及其它方面和实施方式。前面的信息和以下详细描述包括各个方面和实施方式的说明性示例,并且提供用于理解所要求保护的方面和实施方式的本质和特征的概要或框架。附图提供对各个方面和实施方式的图示和进一步理解,并且被并入在本说明书中并构成本说明书的一部分。

附图说明

附图不旨在按比例绘制。在各个附图中相同的附图标记和名称指示相同的元素。为了清楚的目的,可以不在每一附图中标记每一组件。

在附图中:

图1是用于调试应用的示例系统的图示;

图2是用于调试应用的系统的示例操作的图示;

图3是调试应用的示例方法的图示;以及

图4是图示用于计算机系统的一般架构的框图,该计算机系统可被采用来实现包括例如图1和图2中描绘的系统及图3中描绘的方法的本文描述和本文图示的系统和方法的元素。

具体实施方式

以下是与分析或者调试应用的方法、装置和系统有关的各种构思以及这些方法、装置和系统的实施方式的更详细描述。可以以许多方式中的任一种实现在上面介绍的并在下面更详细地讨论的各种构思。

本公开一般地涉及分析或者调试应用以便经由应用交付服务器进行交付。例如,本技术解决方案的系统和方法可分析或者调试在应用中配置的动作。动作可指代或者包括由应用开发者使用来表面化其应用和其内容的机制。应用开发者可指定其应用支持的操作。应用开发者可将其应用以及该应用支持的操作的指示提交给数据处理系统。数据处理系统在接收到由应用开发者提供的应用和动作的指示时,可调试或者审查该应用。数据处理系统可在使应用变得可供由最终用户客户端设备下载或者使用之前或之后调试或者审查该应用。数据处理系统可调试或者审查应用以确定用于该应用的深度链接是否使该应用执行响应所请求的动作的功能或者提供响应所请求的动作的内容项。例如,数据处理系统可调试应用以确定用于应用的深度链接是否实际上基于所期望的动作将用户导向应用中的适当画面或状态。深度链接可指代链接到诸如与应用的主页或初始状态或画面相反的应用中的具体状态或画面的一条具体内容的超链接或其它引用或指针。深度链接可指代指向超过最高级主页、画面或状态的页面或内容的链接。

数据处理系统可执行针对应用的分析或调试过程。分析或调试过程可包括欺诈检测和质量审查。欺诈检测可指代检测应用是否故意地试图误导用户。例如,用户可以请求预订去具体目的地的乘车,但是进入应用的深度链接可能将用户带到不希望履行用户的意图的页面。替代地,进入应用的深度链接可以将用户导向恶意或滥用内容。

质量审查可指代确定深度链接是否将用户导向所期望的动作并帮助履行用户的意图。为了执行质量审查,数据处理系统可确定据称由应用提供的意图是否实际上由应用提供。例如,音乐流服务的开发者可给应用提供针对艺术家和歌曲的实体。用户可以按艺术家请求歌曲,这可能使应用提供要提供的将用户直接地导向应用内的艺术家的页面的深度链接。然而,如果深度链接最终将用户导向不同艺术家的页面或不同类型的页面(例如,有声读物),则深度链接可以是错误的或坏的。

因此,响应于请求或触发,应用可以执行恶意动作或者执行不正确动作。恶意或不正确动作的执行可导致计算设备上的计算资源利用、带宽利用和电池利用浪费。此外,由于在正确动作被执行之前的重复请求,恶意或不正确动作的执行可引起远程过程调用的增加。网络安全性问题可以由执行恶意动作的应用的提供产生,并且及时对此类应用进行及时自动识别和寻址可以提供系统安全性好处。由于被提供用于经由应用交付服务器交付的大量应用和对应用的更新,高效地且可靠地检测恶意或欺诈应用或者对应用执行质量审查而不在审查过程中引起延迟可能是有挑战性的。本技术解决方案的系统和方法允许基于历史执行信息、模拟动作或匹配应用来审查应用。基于审查,本技术解决方案可防止被确定为恶意的、欺诈的或不正确的应用的交付或者禁止被确定为恶意的、欺诈的或不正确的应用的特定动作。

例如,数据处理系统可包括应用审查系统。数据处理系统可从应用开发者接收应用元数据。应用元数据可包括例如应用的标题、应用的描述、应用的屏幕快照、由应用支持的实体的清单、由应用支持的实体指示的web站点或web语料库、对应于由应用支持的实体的意图或动作以及关于如何为应用的实体构造深度链接的机制或指令。例如,用于音乐流表面的应用可提供艺术家的名字、描述和列表、作为实体的歌曲,并且播放作为要按实体执行的意图或动作的音乐。数据处理系统可应用过滤器来识别实体的列表,然后对实体进行排序以识别顶部实体。数据处理系统可构造可使用深度链接构建引擎来触发应用的应用深度链接。如果审查的结果指示用于应用动作的深度链接的质量低于阈值,则数据处理系统可执行包括爬取应用或网站的审查以比较与由应用元数据所指示的实体相比较经由深度链接显露的实体。数据处理系统然后可阻止指示用于应用的深度链接的质量低于阈值的审查的结果。如果质量低于阈值,则数据处理系统可阻止应用或动作的提交。

数据处理系统可使用或者包括一个或多个分类器来审查应用。数据处理系统可包括或者被配置有可使用来自用户的反馈的第一分类器。例如,“应用_A可为你预订乘车吗?”。数据处理系统可收集来自用户的反馈并且如果一定百分比的用户在预定时间帧内回答“是”,则数据处理系统可确定应用可执行所期望的意图或动作。

数据处理系统可包括或者被配置有第二分类器。第二分类器可基于与应用相关联的意图或动作和扩展实体来创建向量以然后确定与应用相关联的最相关意图。例如,数据处理可解析或者处理应用的名称、应用的短描述、应用的长描述以及诸如用户评论这样的其它来源以提取名词和动词。数据处理系统可映射名词和动词(例如,艺术家名字、播放音乐)并且将它们映射到实际的意图或动作,诸如播放歌曲。数据处理系统然后可使用分类技术来确定自动地生成或检测到的意图或动作与由应用开发者登记或者提供的动作之间的相似性水平。如果动作低于阈值相似性水平,则数据处理系统可阻止应用。

数据处理系统可包括或者被配置有第三分类器。第三分类器可基于相似应用来确定应用的分类分数。例如,第一应用可以是乘车共享应用。数据处理系统可识别也是乘车共享应用并且已经通过了审查过程的第二应用。如果第一应用正在经历调试或审查过程,则数据处理系统可利用相似于第二应用的结果来确定随第一应用而提交的动作是否令人满意。数据处理系统可响应于第一应用的提交或者在持续基础上,执行此审查过程。

通过使用或者被配置有一个或多个分类器,数据处理可改进分析或调试过程的质量和可靠性,同时还缩短审查过程。数据处理系统经由一个或多个分类器可改进应用审查过程的效率,同时还改进应用审查过程的结果。例如,数据处理系统经由一个或多个分类器可审查或者调试应用,而不必下载每个应用,安装应用,为应用设置账户,然后测试应用。

因此,通过缩短审查过程同时还改进审查过程的结果,数据处理系统可为应用交付服务器提供改进。数据处理系统可通过例如作为阻止或者防止欺诈或恶意应用的交付的结果而减少远程过程调用或欺诈远程过程调用或处理的数量来进一步提供资源消耗或资源利用的减少。例如,欺诈或恶意应用可响应于用户查询或请求而提供误导、欺诈或错误的内容项目。数据处理系统可进一步提供针对恶意应用的增强设备安全性。

图1图示用于使计算设备之间的访问控制同步的示例系统100。系统100可包括内容选择基础设施。系统100可包括应用交付基础设施。系统100可包括在线应用商店或市场。系统100可包括数据处理系统102。数据处理系统102可经由网络105与应用开发者设备160或客户端计算设备140中的一个或多个进行通信。系统100还可与诸如第三方设备、内容提供者设备或数字表面设备的其它设备进行通信,所述其它设备。

网络105可包括诸如因特网、局域网、广域网、城域网或其它区域网、内联网、卫星网这样的计算机网络,以及诸如语音或数据移动电话网这样的其它通信网络。网络105可用于访问诸如可在诸如膝上型电脑、台式机、平板、数字助理设备、智能电话、可穿戴设备、便携式计算机或扬声器的至少一个客户端计算设备140上呈现、输出、渲染或者显示的web页面、web站点、域名或统一资源定位符的信息资源。例如,经由网络105客户端计算设备140的用户可访问由数据处理系统102或应用开发者设备160提供的信息或数据。

网络105可包括或者构成显示网络,例如,在互联网上获得的与内容投放或搜索引擎结果系统相关联或者有资格包括第三方数字分量作为数字分量投放宣传活动(campaign)的一部分的信息资源的子集。网络105可由数据处理系统102使用来访问诸如可由客户端计算设备140呈现、输出、渲染或者显示的web页面、web站点、域名或统一资源定位符的信息资源。例如,经由网络105客户端计算设备140的用户可访问由数据处理系统102或应用开发者设备160提供的信息或数据。

网络105可以是任何类型或形式的网络并且可以包括下列中的任一种:点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步转移模式)网络、SONET(同步光网络)网络、SDH(同步数字体系)网络、无线网络和有线网络。网络105可以包括诸如红外信道或卫星频带的无线链路。网络105的拓扑可以包括总线、星形或环形网络拓扑。网络可以包括使用用于在移动设备之间通信的任一种或多种协议的移动电话网络,所述协议包括高级移动电话协议(“AMPS”)、时分多址(“TDMA”)、码分多址(“CDMA”)、全球移动通信系统(“GSM”)、通用分组无线电服务(“GPRS”)或通用移动电信系统(“UMTS”)。可以经由不同的协议发送不同类型的数据,或者可以经由不同的协议发送相同类型的数据。

系统100可包括至少一个数据处理系统102。数据处理系统102可包括至少一个逻辑器件,诸如具有处理器以经由网络105例如与客户端计算设备140或应用开发者设备160或其它联网设备或第三方设备进行通信的计算设备。数据处理系统102可包括至少一个计算资源、服务器、处理器或存储器。例如,数据处理系统102可以包括位于至少一个数据中心中的多个计算资源或服务器。数据处理系统102可包括多个逻辑上分组的服务器并且便于分布式计算技术。服务器的逻辑组可以被称为数据中心、服务器场或机器场。服务器也可以是地理上分散的。数据中心或机器场可以作为单个实体被管理,或者机器场可包括多个机器场。每个机器场内的服务器可以是异构的—这些服务器或机器中的一个或多个可根据一种或多种类型的操作系统平台来操作。

机器场中的服务器可与关联的存储系统一起被存储在高密度机架系统中,并且位于企业数据中心中。例如,以这种方式合并服务器可以通过将服务器和高性能存储系统定位在本地化高性能网络上来改进系统可管理性、数据安全性、系统的物理安全性和系统性能。包括服务器和存储系统的数据处理系统102组件的全部或一些的集中化以及将它们与高级系统管理工具耦合在一起允许更高效地利用服务器资源,这节省电力和处理需求并减少带宽使用。

系统100可包括、访问至少一个第三方设备162或者以其它方式与之交互。第三方设备162可包括至少一个逻辑器件,诸如具有处理器以经由网络105例如与计算设备140、数据处理系统102或应用开发者设备160进行通信的计算设备。第三方设备162可包括至少一个计算资源、服务器、处理器或存储器。例如,第三方设备162可包括位于至少一个数据中心中的多个计算资源或服务器。

第三方设备162可提供用于由客户端计算设备140作为音频输出数字分量而呈现或者显示的基于音频的数字分量。数字分量可包括针对商品或服务的要约,诸如声明“你愿意我为你预定出租车吗?”的基于语音的消息。例如,第三方设备162可包括用于存储可响应于基于语音的查询而提供的一系列音频数字分量的存储器。第三方设备162还可将基于音频的数字分量(或其它数字分量)提供给数据处理系统102,其中它们可被存储在数据储存库128中。数据处理系统102可选择音频数字分量并将音频数字分量提供给客户端计算设备140(或者指示第三方设备162将音频数字分量提供给客户端计算设备140)。基于音频的数字分量可以排他地是音频或者可与文本、图像或视频数据组合。

第三方设备162可包括数据处理系统102,与数据处理系统102接合,或者以其它方式与数据处理系统102进行通信。第三方设备162可包括客户端计算设备140,与客户端计算设备140接合,或者以其它方式与客户端计算设备140进行通信。第三方设备162可包括计算设备140,与计算设备140接合,或者以其它方式与计算设备140进行通信,所述计算设备140可以是移动计算设备。第三方设备162可包括应用开发者设备160,与应用开发者设备160接合,或者以其它方式与应用开发者设备160进行通信。例如,第三方设备162可将数字分量提供给客户端计算设备140以供由客户端计算设备140执行。第三方设备162可将数字分量提供给数据处理系统102以供由数据处理系统102存储。第三方设备162可将与数字分量有关的规则或参数提供给数据处理系统102。

客户端计算设备140可下载由应用开发者设备160开发的应用。客户端计算设备140可经由网络105从数据处理系统102下载应用。客户端计算设备可从应用交付服务器110下载应用。客户端计算设备140可安装应用。客户端计算设备140可执行应用。客户端计算设备140可响应于用户输入或触发事件或条件而执行、启动、触发或者以其它方式访问或者使用应用。应用可包括前端组件和后端组件。客户端计算设备140可执行或者提供应用的前端组件,而数据处理系统102或应用开发者设备160提供应用的后端组件。

客户端计算设备140可包括至少一个传感器144、换能器146、音频驱动器148或预处理器150,与至少一个传感器144、换能器146、音频驱动器148或预处理器150接合,或者以其它方式与至少一个传感器144、换能器146、音频驱动器148或预处理器150进行通信。客户端计算设备140可包括光源142或显示设备152,诸如光指示器、发光二极管(“LED”)、有机发光二极管(“OLED”)或被配置成提供视觉或光输出的其它视觉指示器。传感器144可包括例如环境光传感器、接近传感器、温度传感器、加速度计、陀螺仪、运动检测器、GPS传感器、位置传感器、麦克风或触摸传感器。换能器146可包括扬声器或麦克风。音频驱动器148可向硬件换能器146提供软件接口。音频驱动器可执行由数据处理系统102提供的音频文件或其它指令以控制换能器146来生成对应的声学波或声音波。预处理器150可包括具有被配置成检测关键词并基于该关键词执行动作的硬件的处理单元。在将词语发送到数据处理系统102以进行进一步处理之前,预处理器150可滤出一个或多个词语或者修改词语。预处理器150可将由麦克风检测到的模拟音频信号转换成数字音频信号,并且经由网络105将承载数字音频信号的一个或多个数据分组发送到数据处理系统102。在一些情况下,预处理器150可响应于检测到要执行这种传输的指令而发送承载输入音频信号中的一些或全部的数据分组。指令可包括例如将包括输入音频信号的数据分组发送到数据处理系统102的触发关键词或其它关键词或批准。

客户端计算设备140可与最终用户相关联,该最终用户将作为音频输入的语音查询输入(enter)到客户端计算设备140中(经由传感器144),并且接收以可从数据处理系统102(或应用开发设备160或第三方设备162)提供给客户端计算设备140的计算机生成的语音形式的音频输出、来自换能器146(例如,扬声器)的输出。计算机生成的语音可包括来自真人或计算机生成的语言的录音。

客户端计算设备140(或计算设备或客户端设备或数字设备)可以包括或者可以不包括显示器。例如,计算设备可以包括有限类型的用户接口,诸如麦克风和扬声器。在一些情况下,计算设备140的主要用户接口可以是麦克风和扬声器或语音接口。例如,客户端计算设备140的主要用户接口可包括基于语音或基于音频的用户接口。客户端计算设备140可包括显示器并具有基于语音或基于音频的主要用户接口。客户端计算设备140的主要用户接口可以是对话的。对话用户接口可指代至少部分地由数据处理系统102的自然语言处理器组件106驱动或者促进的用户接口。

数据处理系统102可包括具有至少一个计算资源或服务器的内容投放系统。数据处理系统102可包括至少一个接口104,与至少一个接口104接合,或者以其它方式与至少一个接口104进行通信。数据处理系统102可包括至少一个自然语言处理器组件106,与至少一个自然语言处理器组件106接合,或者以其它方式与至少一个自然语言处理器组件106进行通信。数据处理系统102可包括至少一个直接动作应用编程接口(“API”)108,与至少一个直接动作应用编程接口(“API”)108接合,或者以其它方式与至少一个直接动作应用编程接口(“API”)108进行通信。接口104、自然语言处理组件106和直接动作API 108可提供对话API或数字助理功能性。对话API或数字助理可与一个或多个基于语音的接口或各种数字助理设备或表面进行通信或接合,以便提供数据或者接收数据或者执行其它功能性。

数据处理系统102可包括至少一个应用交付服务器110,与至少一个应用交付服务器110接合,或者以其它方式与至少一个应用交付服务器110进行通信。数据处理系统102可包括至少一个交付控制器组件112,与至少一个交付控制器组件112接合,或者以其它方式与至少一个交付控制器组件112进行通信。数据处理系统102可包括至少一个深度链接构建器组件114,与至少一个深度链接构建器组件114接合,或者以其它方式与至少一个深度链接构建器组件114进行通信。数据处理系统102可包括至少一个第一分类器组件116,与至少一个第一分类器组件116接合,或者以其它方式与至少一个第一分类器组件116进行通信。数据处理系统102可包括至少一个第二分类器组件118,与至少一个第二分类器组件118接合,或者以其它方式与至少一个第二分类器组件118进行通信。数据处理系统102可包括至少一个第三分类器组件120,与至少一个第三分类器组件120接合,或者以其它方式与至少一个第三分类器组件120进行通信。数据处理系统102可包括至少一个匹配引擎组件122,与至少一个匹配引擎组件122接合,或者以其它方式与至少一个匹配引擎组件122进行通信。数据处理系统102可包括至少一个动作生成器124,与至少一个动作生成器124接合,或者以其它方式与至少一个动作生成器124进行通信。数据处理系统102可包括至少一个数据储存库128,与至少一个数据储存库128接合,或者以其它方式与至少一个数据储存库128进行通信。

接口104、自然语言处理器组件106、直接动作API 108、应用交付服务器110、交付控制器组件112、深度链接构建器组件114、第一分类器组件116、第二分类器组件118、第三分类器组件120、匹配引擎组件122和动作生成器124可各自包括至少一个处理单元或其它逻辑器件,诸如被配置成与数据库储存库128或数据库进行通信的可编程逻辑阵列引擎或模块。接口104、自然语言处理器组件106、直接动作API 108、应用交付服务器110、交付控制器组件112、深度链接构建器组件114、第一分类器组件116、第二分类器组件118、第三分类器组件120、匹配引擎组件122、动作生成器124和数据储存库128可以是分别的组件、单个组件或数据处理系统102的一部分。系统100及其组件(诸如数据处理系统102)可包括硬件元件,诸如一个或多个处理器、逻辑器件或电路。

数据处理系统102可获得与多个客户端计算设备140(或计算设备或数字助理设备)相关联的匿名计算机网络活动信息。客户端计算设备140或移动计算设备的用户可肯定地授权数据处理系统102以获得与客户端计算设备140或移动计算设备相对应的网络活动信息。例如,数据处理系统102可提示计算设备140的用户以同意获得一种或多种类型的网络活动信息。客户端计算设备140可包括移动计算设备,诸如智能电话、平板、智能手表或可穿戴设备。客户端计算设备140的用户的身份可保持匿名并且计算设备140可与唯一标识符(例如,用于用户或由数据处理系统提供的计算设备或计算设备的用户的唯一标识符)相关联。数据处理系统可使每个观察结果与对应的唯一标识符相关联。

数据处理系统102可与第三方设备162接合。第三方设备162可包括或者指代内容提供者的设备。内容提供者可建立电子内容宣传活动(campaign)。电子内容宣传活动可作为内容数据被存储在数据储存库128中。电子内容宣传活动可指代对应于公共主题的一个或多个内容组。内容宣传活动可包括分层数据结构,所述分层数据结构包括内容组、数字分量数据对象和内容选择标准。为了创建内容宣传活动,内容提供者可为内容宣传活动的宣传活动水平参数指定值。宣传活动水平参数可包括例如宣传活动名称、用于投放数字分量对象的优选内容网络、要用于内容活动的资源的值、用于内容宣传活动的开始和结束日期、用于内容宣传活动的持续时间、用于数字分量对象投放的时间表、语言、地理位置、要在上面提供数字分量对象的计算设备的类型。在一些情况下,闪现(impression)可指代数字分量对象何时被从其来源(例如,数据处理系统102或内容提供者)取出,并且是可计数的。在一些情况下,由于点击欺诈的可能性,可过滤并排除机器人活动作为闪现。因此,在一些情况下,闪现可指代来自Web服务器的对来自浏览器的页面请求的响应的测量,所述测量被从机器人活动和错误代码中过滤,并且在尽可能接近于渲染数字分量对象以便显示在计算设备140上的机会的点被记录。在一些情况下,闪现可指代看得见或听得见的闪现;例如,数字分量对象至少部分地(例如,20%、30%、30%、40%、50%、60%、70%或更多)在客户端计算设备140的显示设备152上看得见,或者经由计算设备140的扬声器136听得见。点击或选择可指代用户与数字分量对象的交互,诸如对听得见的闪现的语音响应、鼠标点击、触摸交互、手势、摇动、音频交互或键盘点击。转换可指代用户相对于数字分量异议采取期望的动作;例如,购买产品或服务、完成调查、访问与数字分量相对应的实体商店或者完成电子交易。

内容提供者可进一步为内容宣传活动建立一个或多个内容组。内容组包括一个或多个数字分量对象和对应的内容选择准则,诸如关键词、单词、词语、短语、地理位置、计算设备的类型、时刻、兴趣,话题或行业。在相同的内容宣传活动下的内容组可共享相同的宣传活动水平参数,但是对于特定内容组水平参数可以具有定制规范,所述特定内容组水平参数诸如关键词、否定关键词(例如,其在否定关键词存在于主要内容上的情况下阻止数字分量的投放)、针对关键词的出价或与出价或内容宣传活动相关联的参数。

为了创建新内容组,内容提供者可为该内容组的内容组水平参数提供值。内容组水平参数包括例如内容组名称或内容组主题以及针对不同的内容投放机会(例如,自动投放或受管理投放)或结果(例如,点击、闪现或转换)的出价。内容组名称或内容组主题可以是内容提供者可使用来捕获要选择内容组的数字分量对象以供显示的话题或主题的一个或多个词语。例如,汽车经销商可为它承载的车辆的每个品牌创建不同的内容组,并且可以进一步为它承载的车辆的每个型号创建不同的内容组。汽车经销商可使用的内容组主题的示例包括例如“制造A跑车”、“制造B跑车”、“制造C轿车”、“制造C卡车”、“制造C混合动力车”或“制造D混合动力车”。例如,示例内容宣传活动主题可以是“混合动力车”并且包括针对“制造C混合动力车”和“制造D混合动力车”两者的内容组。

内容提供者可向每个内容组提供一个或多个关键词和数字分量对象。关键词可包括与和数字分量对象相关联或者通过数字分量对象识别的产品或服务相关的词语。关键词可包括一个或多个词语或短语。例如,汽车经销商可包括“跑车”、“V-6发动机”、“四轮驱动”、“燃油效率”作为用于内容组或内容宣传活动的关键词。在一些情况下,否定关键词可由内容提供者指定以避免、防止、阻止或者禁止在某些词语或关键词上的内容投放。内容提供者可指定用于选择数字分量对象的匹配的类型,诸如确切匹配、短语匹配或广泛匹配。

内容提供者可提供要由数据处理系统102使用来选择由内容提供者提供的数字分量对象的一个或多个关键词。内容提供者可识别要出价的一个或多个关键词,并且进一步为各种关键词提供出价金额。内容提供者可提供要由数据处理系统102使用来选择数字分量对象的附加内容选择标准。多个内容提供者可对相同或不同的关键词出价,并且数据处理系统102可响应于接收到电子消息的关键词的指示而运行内容选择过程或广告拍卖。

内容提供者可提供一个或多个数字分量对象以供由数据处理系统102选择。当与为内容组所指定的内容分配、内容时间表、最大出价、关键词和其它选择标准匹配的内容投放机会变得可用时,数据处理系统102可选择数字分量对象。可在内容组中包括不同类型的数字分量对象,诸如语音数字分量、音频数字分量、文本数字分量、图像数字分量、视频数字分量、多媒体数字分量或数字分量链接。数字分量对象(或数字分量)可包括例如内容项目、在线文档、音频、图像、视频、多媒体内容或赞助内容。在选择数字分量后,数据处理系统102可发送数字分量对象以用于渲染在计算设备140或计算设备140的显示设备152上。渲染可包括将数字分量显示在显示设备上或者经由计算设备140的扬声器播放数字分量。数据处理系统102可向计算设备140提供要渲染数字分量对象的指令。数据处理系统102可指示计算设备140或计算设备140的音频驱动器148生成音频信号或声学波。

数据储存库124可包括一个或多个本地或分布式数据库,并且可包括数据库管理系统。数据储存库128可包括计算机数据存储或存储器并且可存储应用(“app”)数据130、分数132、历史数据134、参数136或阈值138以及其它数据中的一种或多种。数据储存库128可在一个或多个数据结构、数据库、数据文件、索引或其它类型的数据存储中存储应用(“app”)数据130、分数132、历史数据134、参数136或阈值138中的一种或多种。

App数据130可包括关于应用的信息。App数据130可包括关于由应用开发者设备160提交的应用的信息。App数据130可包括与应用相关联的元数据。App数据130可包括例如应用的标题、短描述、详细描述、版本标识符、实体、动作、意图、兼容性信息、大小、应用的类型、应用的类别以及其它信息。App数据130可包括应用的唯一标识符,诸如字母数字标识符。App数据130可包括关于提供或者提交了应用的应用开发者的信息。

分数132可指代应用的分类分数。分数132可包括针对应用的第一分类分数、第二分类分数、第三分类分数或组合分类分数。数据处理系统102可审查或者处理应用以确定一个或多个分数,并且将针对应用的分数存储在分数132数据结构中。分数可以是数值、字母数字、字母等级、排名、符号、文本、二进制的,或者以其它方式提供应用的审查过程的结果的指示。例如,分数可包括0~100范围中的数值分数,其中0表示欺诈的最低水平或可能性,而100表示欺诈的最高水平或可能性。分数可指示应用是否通过审查过程。例如,分数100可指示应用通过了审查过程,然而分数0可指示应用未通过审查过程。分数可以是字母等级,诸如“A”、“B”、“C”、“D”或“F”,其中字母等级A可指示应用通过了审查过程,而字母等级F指示应用未通过审查过程。分数可以是关键词或文本,诸如“通过”或“失败”。分数可以是二进制的,诸如“0”或“1”。

历史数据134可包括与应用有关的数据。历史数据134可包括与应用的执行或使用有关的数据。历史数据134可包括与由客户端计算设备140对应用的先前使用或执行有关的数据。历史数据134可包括与应用的先前使用或执行有关的反馈。例如,客户端计算设备140可执行应用。客户端计算设备140可包括在客户端计算设备140上执行的监视器或代理,所述监视器或代理可识别与应用有关的方面,诸如远程过程调用的数量、对应用做出的重复请求、由应用提供的错误响应或内容数据的指示、或由应用提供的欺诈或误导内容数据或响应的指示。客户端计算设备140可提供来自用户的有关应用的执行的反馈。例如,客户端计算设备140可向应用的用户提供关于应用提供了令人满意的响应还是执行了所请求或期望的动作的提示。例如,提示可包括“应用_A是否令人满意地执行了所请求的动作?”历史数据134可包括或者存储来自在客户端计算设备140上执行的监视器或代理的反馈以及对由客户端计算设备140或应用的用户提供的提示或调查的反馈。

数据储存库128可存储参数136。参数136可指代或者包括参数数据结构。参数136可指代或者包括交付控制参数。交付控制参数是可使应用交付服务器110交付应用、阻止应用的交付、授权应用的动作或者禁止应用的动作的参数。已由数据处理系统102审查或者处理的每个应用可与交付控制参数相关联。交付控制参数可以是指令、数值参数、字母数字值、标志、标签,或可使应用交付服务器110调整是否或者如何将应用交付给客户端计算设备140的其它指示符。

数据储存库128可包括或者存储阈值138。阈值138可指代或者包括阈值数据结构。数据处理系统102可将应用的分数132(例如,分类分数)与阈值138相比较以便确定应用是通过或者未通过分类。阈值138对于每种类型的分类可以是相同的或不同的。阈值138可以是绝对阈值(例如,绝对或固定值)、百分比阈值、比率阈值。阈值138可以是可基于与应用相关联的元数据而变化的动态阈值。阈值138可基于反馈、实时信息或其它因素而变化。阈值138可基于应用的类型或应用的版本(例如,正在提交的新应用或应用的新版本)而变化。可为具体应用设置阈值138并且阈值138可基于例如应用已被安装的次数而变化(例如,具有超过100,000次下载的应用的阈值较低,因为高下载计数可以指示应用不太可能是欺诈的或者提供错误内容)。在一些情况下,阈值对于具有高下载计数的应用可以更高,所以数据处理系统102可防止大量的错误响应或浪费的远程过程调用或其它计算资源利用。

数据处理系统102可包括被设计、配置、构造或者可操作以使用例如数据分组来接收和发送信息的接口104(或接口组件)。接口104可使用诸如网络协议的一种或多种协议来接收和发送信息。接口104可包括硬件接口、软件接口、有线接口或无线接口。接口104可便于将数据从一种格式翻译或者格式化为另一格式。例如,接口104可包括应用编程接口,所述应用编程接口包括用于在诸如软件组件的各种组件之间通信的定义。接口104可经由网络105与客户端计算设备140、应用开发者设备160或第三方设备162中的一个或多个进行通信。

数据处理系统102可与诸如app的安装在客户端计算设备140处的应用、脚本或程序接合以将输入音频信号通信到数据处理系统102的接口104并且以驱动本地客户端计算设备的组件以渲染输出音频信号。数据处理系统102可接收数据分组或其包括或者识别音频输入信号的它信号。

数据处理系统102可包括自然语言处理器(“NLP”)组件106。例如,数据处理系统102可执行或者运行NLP组件106以接收或者获得音频信号并解析音频信号。例如,NLP组件106可提供人类与计算机之间的交互。NLP组件106可被配置有用于理解自然语言并且允许数据处理系统102从人类或自然语言输入导出含义的技术。NLP组件106可包括或者被配置有基于诸如统计机器学习的机器学习的技术。NLP组件106可利用决策树、统计模型或概率模型来解析输入音频信号。NLP组件106可执行例如诸如以下各项的功能:命名实体辨识(例如,给定文本流,确定文本中的哪些词语项目映射到诸如人或地方的适当的名称,以及每个这种名称的类型是什么,诸如人、位置或组织)、自然语言生成(例如,将来自计算机数据库或语义意图的信息转换成可理解的人类语言)、自然语言理解(例如,将文本转换成更正式表示,诸如计算机模块可操纵的一阶逻辑结构)、机器翻译(例如,自动地将文本从一种人类语言翻译为另一人类语言)、词法分割(例如,将单词分成单独的词素并识别词素的类,这基于被考虑语言的单词的结果或词法的复杂性可以是有挑战性的)、问题回答(例如,确定对人类语言问题的回答,这可以是具体的或开放式的)、语义处理(例如,可在识别单词并对其含义进行编码以便使所识别的单词与具有相似含义的其它单词相关联之后发生的处理)。

NLP组件106可通过对照存储的代表性音频波形集(例如,在数据储存库128中)来比较输入信号并选取最接近匹配来将音频输入信号转换成辨识的文本。可将音频波形集存储在数据储存库128或对数据处理系统102可访问的其它数据库中。代表性波形是跨越一大组用户而生成的,然后可以用来自用户的语音样本进行扩增。在音频信号被转换成辨识的文本之后,NLP组件106使该文本与例如经由跨越用户训练或者通过手动指定与数据处理系统102可服务的动作相关联的单词相匹配。NLP组件106的各方面或功能性可由数据处理系统102或客户端计算设备140执行。例如,本地NLP组件可在客户端计算设备140上执行以执行将输入音频信号转换成文本并且经由数据分组将文本发送到数据处理系统102以进行进一步自然语言处理的各方面。

音频输入信号可由客户端计算设备140的传感器144或换能器146(例如,麦克风)检测。经由换能器146、音频驱动器148或其它组件,客户端计算设备140可将音频输入信号提供给数据处理系统102(例如,经由网络105),其中它可被接收(例如,通过接口104)并提供给NLP组件106或者存储在数据储存库128中。

客户端计算设备140可包括音频驱动器148、换能器146、传感器144和预处理器组件150。传感器144可接收或者检测输入音频信号(例如,语音输入)。预处理器组件150可耦合到音频驱动器、换能器和传感器。预处理器组件150可对输入音频信号进行滤波以创建滤波的输入音频信号(例如,通过去除某些频率或者抑制噪声)。预处理器组件150可将经滤波的输入音频信号转换为数据分组(例如,使用软件或硬件数模转换器)。在一些情况下,预处理器组件150可将未经滤波的输入音频信号转换为数据分组并且将这些数据分组发送到数据处理系统102。预处理器组件150可将数据分组发送到包括一个或多个处理器和存储器的数据处理系统102,所述一个或多个处理器和存储器执行自然语言处理器组件、接口、扬声器辨识组件和直接动作应用编程接口。

数据处理系统102可经由接口从预处理器组件接收包括由传感器检测到的经滤波的(或未经滤波的)输入音频信号的数据分组。数据处理系统102可根据输入音频信号识别声学标记。数据处理系统102可基于数据储存库中的查找(例如,查询数据库)来识别与声学标记相对应的电子账户。响应于对电子账户的识别,数据处理系统102可建立会话和用于在该会话中使用的账户。账户可包括具有一个或多个策略的配置文件。数据处理系统102可解析输入音频信号以识别请求和与该请求相对应的触发关键词。

数据处理系统102可向客户端计算设备140的预处理器组件150提供状态。客户端计算设备140可接收状态的指示。音频驱动器可接收配置文件的状态的指示,并且基于该指示生成输出信号。音频驱动器可将指示转换为输出信号,诸如声音信号或声学输出信号。音频驱动器可基于由音频驱动器生成的输出信号来驱动换能器146(例如,扬声器)以生成声音。

在一些情况下,客户端计算设备140可包括光源142。光源可包括一个或多个LED、灯、显示器或被配置成提供光学或视觉输出的其它组件或设备。预处理器组件150可使光源提供与状态相对应的视觉指示。例如,视觉指示可以是打开的状态指示器灯、光的颜色变化、具有一种或多种颜色的光图案或文本或图像的视觉显示。

NLP组件106可获得输入音频信号。根据输入音频信号,NLP组件106可识别至少一个请求或与请求相对应的至少一个触发关键词。请求可指示输入音频信号的意图或主题。触发关键词可指示可能采取的动作的类型。触发关键词可以是向客户端计算设备140指示以将后续音频输入转换成文本并将该文本发送到数据处理系统102以进行进一步处理的唤醒信号或热词(hotword)。例如,NLP组件106可解析输入音频信号以识别要晚上离开家参加晚餐和电影的至少一个请求。触发关键词可包括至少一个单词、短语、词根或部分单词、或指示要采取的动作的派生词。例如,来自输入音频信号的触发关键词“go(去)”或“to go to(将去)”可指示对于运送的需要。在此示例中,输入音频信号(或所识别的请求)未直接地表达运送的意图,然而触发关键词指示运送是通过请求来指示的至少一个其它动作的辅助动作。

NLP组件106可解析输入音频信号以识别、确定、检索或者以其它方式获得请求和触发关键词。例如,NLP组件106可将语义处理技术应用于输入音频信号以识别触发关键词或请求。NLP组件106可将语义处理技术应用于输入音频信号以识别包括一个或多个触发关键词(诸如第一触发关键词和第二触发关键词)的触发短语。例如,输入音频信号可包括句子“I want a ride to the airport(我想要搭车去机场)”。NLP组件106可将语义处理技术或其它自然语言处理技术应用于包括该句子的数据分组以识别请求或触发短语“want aride(想要搭车)”和“airport(机场)”。NLP组件106可进一步识别多个触发关键词,诸如want(想要)和ride(搭便车)。例如,NLP组件106可确定触发短语包括该触发关键词和第二触发关键词。

NLP组件106可对输入音频信号进行滤波以识别触发关键词。例如,承载输入音频信号的数据分组可包括“It would be great if I could get someone that could helpme go to the airport(如果我能找到能帮助我去机场的人就好了)”,在此情况下NLP组件106可过滤出一个或多个词语如下:“it”、“would”、“be”、“great”、“if”、“I”、“could”、“get”、“someone”、“that”、“could”或“help”。通过滤出这些词语,NLP组件106可以更准确地且可靠地识别触发关键词,诸如“go to the airport(去机场)”,并且确定这是对出租车或乘车共享服务的请求。

在一些情况下,NLP组件106可确定承载输入音频信号的数据分组包括一个或多个请求。例如,输入音频信号可包括句子“I want to purchase an audiobook and monthlysubscription to movies(我想要购买有声读物并且每月订阅电影)”。NLP组件106可确定这是对有声读物和流多媒体服务的请求。NLP组件106可确定这是单个请求或多个请求。NLP组件106可确定这是两个请求:对提供有声读物的服务提供者的第一请求以及对提供电影流传输的服务提供者的第二请求。在一些情况下,NLP组件106可将多个确定的请求组合成单个请求,并且将该单个请求发送到第三方设备162。在一些情况下,NLP组件106可向另一服务提供者设备发送单独的请求,或者向同一第三方设备162分别地发送两个请求。

数据处理系统102可包括被设计和构造来基于触发关键词生成响应于请求的动作数据结构的直接动作API 108。直接动作API 108可生成使应用执行所对应的动作的动作数据结构。直接动作API 108可将动作数据结构发送到安装在客户端计算设备140上的应用以使客户端计算设备140执行所对应的动作或者发起动作。由直接动作API 108生成的动作数据结构可包括用于安装在客户端计算设备140上的应用的深度链接。安装在客户端计算设备140上的应用然后可执行动作或者与应用开发者设备160或第三方设备162进行通信以执行动作。

数据处理系统102的处理器可调用直接动作API 108以执行脚本,所述脚本生成要提供给安装在客户端计算设备140、应用开发者设备160、或第三方设备162或者其它服务提供者上的应用以获得诸如来自汽车共享服务的汽车或有声读物的数字分量、订购服务或产品的数据结构。直接动作API 108可获得来自数据储存库128的数据以及在最终用户同意情况下从终端计算设备140接收到的数据以确定位置、时间、用户账户、物流或其它信息以允许第三方设备162执行操作,诸如从汽车共享服务预定汽车。使用直接动作API 108,数据处理系统102还可与第三方设备162进行通信以通过在此示例中进行汽车共享搭乘预定来完成转换。

直接动作API 108可执行指定动作以满足如由数据处理系统102所确定的最终用户的意图。取决于它的输入中指定的动作以及数据储存库128中的参数或规则,直接动作API 108可执行识别履行用户请求所需要的参数的代码或对话脚本。直接动作API 108可执行应用来满足或者履行最终用户的意图。这样的代码可例如在数据储存库128中查找附加信息,诸如家庭自动化服务或第三方服务的名称,或者它可提供用于在客户端计算设备140处渲染以问最终用户诸如被请求出租车的预定目的地的问题的音频输出。直接动作API108可确定参数并且可将信息分组到动作数据结构中,所述动作数据结构然后可被发送到诸如应用交付服务器110这样的另一组件以被履行。

直接动作API 108可从数据处理系统102的NLP组件106或其它组件接收要生成或者构造动作数据结构的指令或命令。直接动作API 108可确定动作的类型以便选择存储在数据储存库128中的模板。动作可通过由应用交付服务器110提供并由应用开发者设备160提交的应用来履行。应用可执行动作或者便于动作的执行。动作的示例类型可包括例如观看动作、监听动作、读取动作、导航动作或天气动作。动作的类型可包括或者被配置成提供例如服务、产品、预定、票、多媒体内容、有声读物、管理订阅、调整订阅、转移数字货币、进行购买或音乐。动作的类型可进一步包括服务或产品的类型。例如,服务的类型可包括汽车共享服务、食物递送服务、洗衣服务、清洁服务、维修服务、家庭服务、设备自动化服务或媒体流服务。产品的类型可包括例如衣服、鞋子、玩具、电子装置、计算机、书籍或珠宝。预定的类型可包括例如晚餐预定或美发沙龙预约。票的类型可包括例如电影票、运动场馆票或机票。在一些情况下,可基于价格、位置、货运的类型、可用性或其它属性来对服务、产品、预定或票的类型进行分类。

NLP组件106可解析输入音频信号以识别请求和与该请求相对应的触发关键词,并且将请求和触发关键词提供给直接动作API 108以使该直接动作API基于触发关键词生成响应于该请求的第一动作数据结构。直接动作API 108在识别请求的类型后,可从模板储存库(例如,数据储存库128)访问所对应的模板。模板可包括结构化数据集中的字段,所述字段可由直接动作API 108填充以促进经由通过客户端计算设备140检测到的输入音频请求的操作(诸如派出租车去在搭乘位置处接最终用户并将该最终用户运送到目的地位置的操作)。直接动作API 108或客户端计算设备140可启动或者触发应用来履行输入音频中的请求。例如,汽车共享服务应用可包括以下字段中的一个或多个:设备标识符、搭乘位置、目的地位置、乘客数量或服务的类型。直接动作API 108可用值填充字段。为了用值填充字段,直接动作API 108可从计算设备140的一个或多个传感器144或设备140的用户接口查验、轮询或者以其它方式获得信息。例如,直接动作API 108可使用诸如GPS传感器的位置传感器来检测源位置。直接动作API 108可通过向计算设备140的用户端提交调查、提示或查询来获得另外的信息。直接动作API可经由数据处理系统102的接口104和计算设备140的用户接口(例如,音频接口、基于语音的用户接口、显示器或触摸屏)来提交调查、提示或查询。因此,直接动作API 108可基于触发关键词或请求来为动作数据结构选择模板,用由一个或多个传感器144检测到或者经由用户接口获得的信息填充模板中的一个或多个字段,并且生成、创建或者以其它方式构造动作数据结构以便于由第三方设备162执行操作。

数据处理系统102可包括应用交付服务器110,与应用交付服务器110接合或者以其它方式访问应用交付服务器110。数据处理系统102可包括应用交付服务器110。应用交付服务器110可与数据处理系统102分离。例如,应用交付服务器110可以是与数据处理系统102分离的系统或服务器。数据处理系统102可经由网络105与应用交付服务器110进行通信。

应用交付服务器110可接收应用开发者设备160提交的应用。应用交付服务器110可维护应用的一个或多个版本。应用交付服务器110可将应用发送到客户端计算设备140。应用交付服务器110可将应用下载到客户端计算设备140上。应用交付服务器110可维护在线应用商店或市场。应用交付服务器110可管理或者维护用于应用开发者设备160或客户端计算设备140的账户。应用交付服务器110可维护用于账户的配置文件。账户或配置文件可与唯一标识符相关联。账户可包括可用于购买或者订阅应用的金融账户或令牌账户。应用交付服务器110可通过提供诸如电子金融账户的电子账户信息来提示客户端计算设备140的用户为应用付款。

应用交付服务器110可为客户端计算设备140或应用开发者设备160的账户提供认证和授权服务。例如,应用交付服务器110可在应用的提交之前对应用开发者设备160进行认证和授权。应用交付服务器110可在允许客户端计算设备140下载应用之前对客户端计算设备140进行认证和授权。

数据处理系统102(例如,经由应用交付服务器110)可接收由应用开发者设备160提交的应用。数据处理系统102可接收新应用或先前提交的应用的更新版本。应用可与一个或多个动作或意图相关联。动作可指向消息传递对象。消息传递对象可被配置有动作。应用开发者160可建立具有消息传递对象和动作的应用以使该应用履行动作或者执行动作。动作可指代意图。可对实体执行动作。应用可被配置成对实体的清单执行操作。例如,动作可指代“播放歌曲”并且实体可以是具体歌曲。应用可用于音乐流服务并且可被配置成履行按艺术家播放歌曲的请求。

数据处理系统102可接收与应用相关联的数据文件。数据文件可包括由应用开发者设备160为应用所建立的多个动作。应用开发者设备160可将数据文件与应用提交一起提供给数据处理系统102。数据文件可以是以诸如标记语言、元语言、定制标记语言、可扩展标记语言、文本这样的格式或其它格式。

数据文件可指示应用被配置成执行或者履行的动作。数据文件可提供应用被配置成对其执行动作或者被配置成访问来以其它方式履行用户的请求或期望意图的实体的清单的指示。可将实体的清单作为数据文件中的列表来提供。数据文件可包括指向数据储存库或实体的指针、引用、统一资源定位符或其它指示符。在一些情况下,数据处理系统102可访问到包含实体的网页的链接。数据处理系统102可解析或者以其它方式处理网页以识别对应用可访问的实体。

数据处理系统102可执行针对应用的调试过程。数据处理系统102可对应用执行审查过程。数据处理系统102可响应于事件、触发条件、请求或指令而执行审查或调试过程。数据处理系统102可基于时间间隔(例如,每6小时、12小时、24小时、48小时、1星期、30天或某个其它时间间隔周期性地)执行调试或审查过程。数据处理系统102可基于应用的下载次数(例如,在100次下载、500次下载、1,000次下载、5,000次下载、10,000次下载或某个其它下载次数之后)执行调试或审查过程。数据处理系统102可响应于应用的负面用户反馈或负面评级或负面评论而执行调试或审查过程。数据处理系统102可响应于来自用户的要执行审查过程的请求而执行调试或审查过程。

数据处理系统102可响应于接收到新应用或对应用的更新而执行调试或审查过程。例如,数据处理系统102可接收应用是由应用开发者上传以供由应用交付服务器交付的新应用的指示。应用是新应用的指示可包括例如应用开发者160提供这是应用的第一版本的指示、提供先前未被辨识或者存储在数据处理系统102中的应用的新名称或者选择在用户接口中指示应用是新应用的按钮。数据处理系统102可基于应用开发者设备160指示应用是下一个版本(例如,版本序列号)、数据处理系统102确定来自同一应用开发者设备160的具有相同名称的应用已经与数据处理系统102存在来确定应用是新版本或对应用的更新。数据处理系统102可响应于新应用或应用的新版本的指示而触发调试过程。在一些情况下,如果数据处理系统102已确定了应用的先前版本先前满足了审查过程,则数据处理系统102可以确定针对应用的新版本不触发调试过程,从而减少计算资源利用。

数据处理系统102可基于应用的类型或应用的功能性来确定要执行调试过程。例如,数据处理系统102可针对由应用开发者提交的应用识别由应用开发者配置有动作的消息传递对象。响应于确定应用被配置有动作,数据处理系统102可发起调试过程以便确定动作是欺诈的、误导的还是错误的。

数据处理系统102可确定要在交付应用以安装在任何客户端计算设备140上之前触发调试过程。在一些情况下,数据处理系统102可确定要在应用已经被安装在至少一个客户端计算设备140上之后触发调试过程。例如,数据处理系统102可确定响应于与所安装的应用相关联的负面反馈而执行调试过程。数据处理系统102可从上面安装有应用的客户端计算设备140接收针对应用的负面反馈的指示。数据处理系统102可响应于针对应用的负面反馈的指示而触发调试过程。

调试过程可包括确定一个或多个分类分数,诸如第一分类分数、第二分类分数和第三分类分数。数据处理系统102可包括第一分类器组件116,与第一分类器组件116对接或者以其它方式访问第一分类器组件116。数据处理系统102可包括被设计、构造并且可操作来确定第一分类分数的第一分类器组件116。第一分类器组件116可确定第一分类分数。数据处理系统102(例如,经由第一分类器组件116)可基于由应用开发者提供的消息传递对象的动作的历史执行来确定第一分类分数。数据处理系统102可基于要执行动作的应用的先前调用是否导致了动作的履行来确定第一分类分数。数据处理系统102可基于基于由应用对动作的先前执行的用户反馈来确定第一分类分数。

例如,多个客户端计算设备140可能已安装了应用。客户端计算设备140的用户可能已请求应用来执行动作,诸如播放特定歌曲。应用可能已经或者可能尚未响应于来自用户的请求而播放歌曲。客户端计算设备140的用户基于他们与应用的先前交互以及利用应用对动作的先前执行可提供关于应用的反馈。例如,应用交付服务器110可提供提示或其它图形用户界面,经由提示或其它图形用户界面客户端计算设备140的用户可用来提供关于应用是否履行了用户对应用请求的动作的指示。

评级系统可包括分数。可将分数存储在数据储存库128中的分数数据结构132中。数据处理系统102可基于来自对应用做出请求的用户的反馈来确定第一分类分数。例如,用户可按1至5的尺度对应用进行评级,其中5指示应用很好地履行请求,而1指示应用未很好地履行请求。

在一些情况下,数据处理系统102可向客户端计算设备140的用户提供提示或查询以获得关于应用的信息。数据处理系统102(例如,经由第一分类器组件116)可构造用于获得关于应用的信息以及应用是否可履行某些类型的动作或请求的提示或查询。数据处理系统102可根据应用数据130确定应用的类别或应用的类型(例如,乘车共享、音乐服务、新闻或天气)。数据处理系统102可根据与应用一起提交的数据文件确定为应用所配置的动作的类型,所述数据文件列出由应用开发者设备160为应用所配置或者建立的动作。使用应用数据130,数据处理系统102可构造查询或调查。例如,应用数据130可指示应用是乘车共享应用。数据处理系统102可确定应用的动作可以是为了向用户提供搭车。数据处理系统102可生成诸如“应用_A提供搭车吗?”这样的查询。数据处理系统102可将查询发送到已安装了应用的客户端计算设备140。数据处理系统102可将查询提供给已针对应用执行了动作的客户端计算设备140。数据处理系统102可基于存储在数据储存库128中的账户信息或存储在客户端计算设备140上的信息来确定客户端计算设备140是否已针对应用下载、安装或者执行了动作。

数据处理系统102可从客户端计算设备140的用户获得关于应用是否被配置成履行应用开发者160指示应用被配置成履行的动作的反馈。第一分类分数可基于第一分类分数与阈值(例如,存储在数据储存库128中的阈值138)的比较来指示是否满足与应用相对应的动作。

第一分类器组件116可以各种形式从客户端计算设备140的用户获得反馈,所述各种形式包括例如书面评论、分数、对调查的响应、对查询的响应、用户在设法执行动作之后卸载应用或其它类型的反馈。第一分类器组件116使用一种或多种类型的反馈可生成第一分类分数。例如,第一分类器组件116可根据单独的评级确定平均分数,并且将该平均分数用作第一分类分数。第一分类器组件116可组合两种或更多种不同类型的反馈分数以生成单个反馈分数作为第一分类分数。为了生成第一分类分数,第一分类器组件116可通过将分数相乘、将分数相加、取分数的点积、将分数输入到函数中或者以其它方式组合分数来组合不同类型的反馈分数。第一分类器组件116可通过取不同分数的平均值来组合分数。第一分类器组件116可通过在组合分数之前对不同分数应用权重来组合分数。第一分类器组件116可生成第一分类分数作为不同分数的加权平均值。为了生成第一分类分数,第一分类组件116可重新格式化、转化、变换或者以其它方式操纵来自不同反馈源的单独的反馈分数。例如,数据处理系统102可从解析应用的评论生成第一反馈分数,基于由应用交付服务器110管理的在线应用交付市场中的应用的用户评级来生成第二反馈分数,并且基于来自用户的调查结果来生成第三反馈。数据处理系统102可将这些不同的反馈分数中的每一个转换成归一化反馈分数,然后组合这些归一化分数(例如,经由平均值)以便生成第一分类分数。第一分类组件116可将第一分类分数存储在分数数据结构132中以供由数据处理系统102进一步处理。

数据处理系统102可包括动作生成器124,与动作生成器124接合或者以其它方式访问动作生成器124,所述动作生成器124被设计、构造并且可操作来基于与应用相关联的元数据为应用生成机器生成的动作。数据处理系统102可基于包括例如应用的标题、短描述、长描述、元数据、实体、内容或用户评论的应用数据130来生成动作。动作生成器124可采取名称、短描述、长描述、用户评论或其它源作为输入以提取名词和动词。动作生成器124可将名词和动词(例如,艺术家名字或播放音乐)映射到诸如“播放歌曲”这样的动作或意图。因此,动作生成器124可将应用信息映射到机器生成的动作。动作生成器124可在缺少由应用开发者设备160与应用的提交一起提供的动作的列表情况下映射应用消息。动作生成器124可在无需使用在由应用开发者设备160提供的数据文件中列出或者识别的动作的情况下生成机器生成的动作。通过针对应用使用诸如标题、描述或用户评论这样的元数据,动作生成器124可独立于关于由应用开发者设备160提供的动作的信息而生成机器生成的动作。独立于由应用开发者使用数据文件中列出的动作而生成机器生成的动作,数据处理系统102可审查由开发者识别为是为应用所配置的动作。

动作生成器124可将应用数据130映射到动作的预定列表以便为应用创建机器生成的动作。动作的预定列表可由应用交付服务器110的管理员或数据处理系统102的管理员提供。动作的预定列表可包括或者指代数据处理系统102的直接动作API 108被配置成实行或者执行的动作的列表。可对动作的预定列表进行分类。可基于不同类型的动作来对动作的预定列表进行分类。动作的类型可包括例如音乐动作、乘车共享动作、导航动作、新闻动作、购票动作或其它类型的动作。

动作生成器124可通过将应用数据130映射到动作的预定列表来识别机器生成的动作。例如,用于音乐应用的动作的预定列表可包括:播放歌曲、播放专辑、下一首歌曲、重播、暂停、启动无线电台或创建播放列表。在另一示例中,用于拼车应用的动作的预定列表可包括:预订搭车去[目的地];去[目的地]估计费用多少;我的行程有多远?取消搭车;或什么类型的汽车来接我?动作生成器124基于这些预定动作中的一个可识别映射到应用的机器生成的动作。

动作生成器124可将实体转换为意图或动作以生成机器生成的动作。例如,与应用一起提交的数据文件可包括意图和实体两者。数据处理系统102可解析实体以生成可对实体执行的机器生成的动作。

数据处理系统102可基于为应用所提供的元数据或描述来生成机器生成的动作。数据处理系统102可识别离散对象并将它们组合成文本簇,并且将文本簇输入到可输出名词和动词的映射技术。数据处理系统102然后可使用分层图来将名词和动词转换为意图。数据处理系统102可遍历图以识别意图或动作。

数据处理系统102可使用由应用开发者提交的实体来执行查找。查找表可将实体映射到意图或动作。数据处理系统102可执行查找以确定什么动作通常与实体相关联。数据处理系统102使用通常与实体相关联的意图和其它技术可生成机器生成的动作。

数据处理系统102可包括第二分类器组件118,与第二分类器组件118接合或者以其它方式访问第二分类器组件118,所述第二分类器组件118被设计、构造并且可操作来基于由应用开发者提供的消息传递对象的动作与机器产生的动作的比较来确定第二分类分数。第二分类器组件118可比较动作以确定是否存在匹配。第二分类器组件118可将由应用开发者设备160提供的一个或多个动作与由动作生成器124生成的一个或多个机器生成的动作相比较。第二分类分数可基于不同类型的匹配或比较技术。第二分类器组件118可确定有多少动作是匹配、匹配水平、重叠水平,或者以其它方式比较两组动作。例如,应用开发者设备160可与应用一起提交五个不同的动作。动作生成器124可基于应用数据130并在缺少由应用开发者设备160提交的动作的列表情况下识别五个机器生成的动作。第二分类器组件118可将由应用开发者设备160提供的五个动作与由动作生成器124生成的五个动作相比较以确定匹配的动作(若有的话)的数量。第二分类器组件118可基于匹配水平来生成第二分类分数。第二分类分数可以是基于机器生成的动作与开发者提供的动作的比率(例如,与开发者提供的动作匹配的机器生成的动作的数量除以开发者提供的动作的数量)的百分比。如果所有五个动作彼此匹配,则数据处理系统102可确定第二分类分数是100%匹配;如果在五个开发者提供的动作中的四个机器生成的动作匹配,则数据处理系统102可确定第二分类分数是80%匹配;如果五个中三个动作匹配,则数据处理系统102可确定第二分类分数是60%;如果五个中二个动作匹配,则第二分类分数是40%;如果五个中一个动作匹配,则第二分类分数是20%;如果5个中0个动作匹配,则第二分类分数是0%。数据处理系统102可将第二分类分数存储在分数132数据结构中以用于进一步处理。

数据处理系统102可包括匹配引擎组件122,与匹配引擎组件122接合或者以其它方式访问匹配引擎组件122,所述匹配引擎组件被设计、构造并且可操作来选择与应用匹配的第二应用。匹配引擎组件122可使用匹配程序来选择与应用匹配的第二应用。匹配引擎组件122可基于应用数据130来匹配应用。匹配引擎组件122可基于例如短描述、详细描述、类别、用户评论或其它信息来匹配应用。匹配引擎组件122可基于应用的先前版本来匹配应用。

数据处理系统102可基于应用与第二应用之间的相似性分数大于相似性阈值来确定应用与第二应用匹配。可使用匹配程序来生成相似性分数。匹配引擎组件122可基于应用的类别或应用的描述来使第一应用与第二应用匹配。例如,第一应用的描述可以是“乘车共享”并且第二应用的描述可以是“乘车共享”或“合伙用车”或“出租车服务”或“乘车服务”。数据处理系统102基于描述可确定第一应用与第二应用匹配。匹配引擎组件122可基于在应用与第二应用之间比较与元数据或应用数据130相关联的关键词来生成相似性分数。数据处理系统102可通过使用统计相似性量度或相似性函数来确定与两个应用相关联的关键词之间的距离来确定相似性分数。相似性函数可以是量化两个对象之间的相似性的实值函数。相似性函数可输出相似性分数。相似性函数可输出可基于坐标的距离度量。相似性分数可对应于两个点之间的欧几里得距离,其中两个点基于与两个应用相关联的关键词或特征被映射到欧几里得空间上。其它相似性距离可包括例如曼哈顿距离。

如果两个应用的相似性分数大于阈值,则数据处理系统102可确定它们是匹配。阈值可指代分数阈值(例如,80%匹配)。例如,数据处理系统102可首先确定具有最高相似性水平的两个应用。在一些情况下,数据处理系统102在无需进一步检查相似性分数的情况下确定要使用所选择的匹配应用。然而,在一些情况下,数据处理系统102可进一步确定相似性分数并且在相似性分数也大于阈值(例如,70%相似性、80%相似性、90%相似性)的情况下确定要选择第二应用作为用于调试目的的匹配应用。

在另一示例中,第一应用和第二应用的类别都可以是“音乐”。匹配程序可被配置成基于应用是在相同类别中来执行应用的第一水平匹配。匹配程序可进一步被配置成基于应用的描述(例如,两个描述指示在线音乐流服务)来确定第二匹配水平。

匹配引擎组件122可选择与经历调试过程的应用匹配的第二应用。匹配引擎组件122可将匹配第二应用的指示提供给第三分类器组件120以便生成第三分类分数。

数据处理系统102可包括第三分类器组件120,与第三分类器组件120接合或者以其它方式访问第三分类器组件120,所述第三分类器组件120被设计、构造并且可操作来确定第三分类分数。第三分类器组件120可基于针对第二匹配应用批准的动作与由应用开发者为经历调试或审查过程的应用所提供的消息传递对象的动作的比较来确定第三分类分数。第三分类器组件120可比较动作之间的匹配水平以生成第三分类分数。第三分类器组件120可将由应用开发者设备160提供的动作与和第二匹配应用相关联的动作相比较以确定若有的话,匹配的动作的数量。第三分类器组件120可基于匹配水平来生成第三分类分数。第三分类分数可以是基于第二匹配应用的动作与开发者提供的动作的比率(例如,与开发者提供的动作匹配的第二应用动作的数量除以开发者提供的动作的数量)的百分比。如果所有动作彼此匹配,则数据处理系统102可确定第二分类分数是100%匹配。如果并非所有动作彼此匹配,则第三分类分数可以小于100%。例如,对于经历调试或审查过程的应用来说可以存在由应用开发者设备160提供的五个动作。可以存在与由匹配引擎组件122识别的第二匹配应用相关联的五个动作。如果第二应用动作中的四个在五个开发者提供的动作中匹配,则数据处理系统102可确定第二分类分数是80%匹配;如果五个中三个动作匹配,则数据处理系统102可确定第二分类分数是60%;如果五个中二个动作匹配,则第二分类分数是40%;如果五个中一个动作匹配,则第二分类分数是20%;如果5个中0个动作匹配,则第二分类分数是0%。数据处理系统102可将第三分类分数存储在分数132数据结构中以用于进一步处理。数据处理系统102可使用各种匹配技术、评分技术、标签或分类来确定分数。

数据处理系统102可包括交付控制器组件112,与交付控制器组件112接合或者以其它方式访问交付控制器组件112,所述交付控制器组件112被设计、构造并且可操作来基于第一分类分数、第二分类分数和第三分类分数来更新交付控制参数。交付控制器组件112可组合第一分类分数、第二分类分数和第三分类分数以生成组合分类分数。然而,在其它示例中,交付控制器组件112可组合第一分类分数、第二分类分数和/或第三分类分数中的任一个以及可选地其它分类分数以生成组合分类分数。交付控制器组件112可基于组合分类分数来确定是阻止应用的交付还是授权应用的交付。交付控制器组件112可基于组合分类分数来确定是阻止与应用相关联的动作还是授权该动作。交付控制器组件112可基于组合分类分数来更新交付控制参数。例如,交付控制参数可包括值、标志、二进制值或开关。交付控制参数可指示应用交付服务器110阻止或者防止应用的交付,或者禁止与应用相关联的动作。交付控制参数可阻止应用的交付,或者禁止动作,以便防止响应于用户对动作的请求的恶意、欺诈、误导或错误的远程过程调用或内容交付。数据处理系统102可响应于由数据处理系统更新的交付控制参数而控制由应用交付服务器110对应用的交付。

交付控制器组件112可基于第一分类分数、第二分类分数和第三分类分数来确定要授权应用的交付。交付控制器组件112可基于每个分数单独地满足阈值(或存储在阈值138数据结构中的相应阈值)来确定要授权交付。交付控制器组件112可基于满足阈值的三个分数的和来确定要授权交付。交付控制器组件可基于满足阈值的三个分数的平均值来确定要授权交付。数据处理系统102可更新交付控制参数以使由应用交付服务器110交付应用。

交付控制器组件112可基于第一分类分数、第二分类分数或第三分类分数中的至少一个小于失败阈值来确定分类失败。数据处理系统102可从阈值数据结构138中检索失败阈值。数据处理系统102可将第一分类分数、第二分类分数和第三分类分数中的每一个与失败阈值(或相应的失败阈值)相比较。如果这些分类分数中的任一个不满足失败阈值,则数据处理系统102可确定要阻止应用的交付。例如,数据处理系统102可响应于分类失败而更新交付控制参数以阻止由应用交付服务器110对应用的交付。通过在这些分类分数中的任一个失败的情况下禁止或者防止应用的交付,数据处理系统102可防止欺诈或错误的应用被交付。例如,数据处理系统102可确定可以基于用户反馈的第一分类分数可能不满足失败阈值,然而第二分类分数和第三分类分数可以满足失败阈值。然而,数据处理系统102仍然可以确定要阻止应用的交付,因为反馈相关的分类分数不满足失败阈值,从而指示应用可能是欺诈的或错误的或者否则不适合于交付给客户端计算设备140。

数据处理系统102可基于第一分类分数、第二分类分数和第三分类分数来确定分类失败。数据处理系统102可基于三个分数的组合或者单独地基于每个分数来确定分类失败。数据处理系统102可响应于分类失败而自动地更新交付控制参数以阻止由应用交付服务器110对应用的交付。数据处理系统102将分类失败的通知发送给应用开发者设备160。应用开发者设备160在接收到通知时,可调试其应用以修复或者校正引起分类失败的问题。响应于分类失败,数据处理系统102可从应用开发者设备160请求应用的更新版本。数据处理系统102可向应用开发者设备160发送陈述应用未通过审查或调试过程的请求(例如,消息、电子消息、通知、推送消息或提示)。数据处理系统102可提供关于应用的哪一个动作导致审查或调试过程失败的附加信息。数据处理系统102可提供关于哪一个分类器在审查过程中导致应用未通过审查或调试过程的附加信息。

即使与应用相关联的动作中的一个或多个未通过审查或调试过程,数据处理系统102也可确定要授权应用以进行交付。交付控制器组件112可基于第一分类分数、第二分类分数和第三分类分数来针对消息传递对象的动作确定分类失败。响应于分类失败,交付控制器组件112可自动地禁止经由应用执行的消息传递对象的动作。数据处理系统102可授权应用以供由应用交付服务器110交付,使得当应用被交付给客户端计算设备140时,动作在客户端计算设备140上被禁止并且不可执行。因此,即使应用可能已由应用开发者160以某种方式最初配置有可能是欺诈、误导或错误的动作,数据处理系统102也可提供应用以供交付给客户端计算设备140,而不会引起计算资源利用的浪费,因为数据处理系统102可抢先禁止应用的操作,从而防止欺诈、误导或错误的操作被执行。应用交付服务器110可基于存储在用于应用的参数数据结构136中的交付控制参数来确定要禁止一个或多个动作。交付控制参数可包括列举用于应用的授权动作的数据结构。通过去除欺诈动作,然后数据处理系统102可防止应用响应于该动作而被触发。在禁止动作的另一示例中,数据处理系统102可从与应用相关联的数据文件中去除未经授权的动作。数据文件可以是由应用开发者设备160与应用的提交一起提交的数据文件。

例如,数据处理系统102可经由数据文件识别针对应用所建立的动作。数据处理系统102可经由针对每个动作的调试过程来确定第一分类分数、第二分类分数和第三分类分数。数据处理系统102可基于调试过程来更新交付控制参数以禁止一个或多个动作。

数据处理系统102可针对应用授权或者禁止动作。数据处理系统102可授权或者禁止在特定数字表面上执行动作。数字表面可包括例如移动计算设备表面、智能扬声器表面、仅语音接口、显示表面、聊天机器人表面、网页、导航应用或其它类型的数字表面。数据处理系统102可识别用于执行应用的消息传递对象的动作的数字表面。数据处理系统102更新交付控制参数以禁止在多个数字表面中的数字表面上执行应用的消息传递对象的动作。

数据处理系统102在确定针对应用或应用的动作的第一分类分数、第二分类分数和第三分类分数中的每一个之前可确定要退出调试过程。数据处理系统102可在无需针对应用或应用的动作执行第一分类器组件116、第二分类器组件118和第三分类器组件120中的每一个的情况下确定要退出调试过程。例如,数据处理系统102可确定第一分类分数或第二分类分数中的一个不满足失败阈值。响应于确定第一分类分数或第二分类分数中的一个不满足失败阈值,数据处理系统102可确定要跳过确定第三分类分数以便减少数据处理系统102的计算资源利用。

例如,数据处理系统102可触发针对应用的调试过程。数据处理系统102可经由针对应用的调试过程来确定针对应用的第一分类分数。数据处理系统102可基于针对应用的第一分类分数与第一分类阈值的比较来检测第一分类失败。可从存储在数据储存库128中的阈值数据结构138中检索第一分类阈值。响应于对第一分类失败的检测,数据处理系统102可在确定针对应用的第二分类分数或针对应用的第三分类分数之前退出针对应用的调试过程。数据处理系统102可将第一分类失败的通知发送到数据处理系统102的管理员设备或应用开发者设备160。通过在检测到分类失败之后退出调试过程,数据处理系统102可既减少计算资源利用又加快完成应用审查并将审查的结果提供给应用开发者设备160。

数据处理系统102可包括深度链接构建器组件114,与深度链接构建器组件114接合或者以其它方式访问深度链接构建器组件114,所述深度链接构建器组件114被设计、构造并且可操作来为应用生成深度链接。数据处理系统102可调试或者审查应用以确定用于应用的深度链接是否使应用执行功能或者提供响应于所请求的动作的内容项目。例如,数据处理系统102可基于所期望的动作来调试应用以确定用于应用的深度链接是否实际上将用户导向应用中的适当画面或状态。深度链接构建器组件114可基于为应用所提供的动作、实体和模板来生成深度链接。深度链接可指代链接到诸如与应用的主页或初始状态或画面相反的应用中的具体状态或画面的一条具体内容的超链接或其它引用或指针。深度链接可指代指向超过最高级主页或画面或状态的页面或内容的链接。

数据处理系统102(例如,经由深度链接构建器组件114)可为应用生成深度链接。例如,数据处理系统102可为预订搭车去具体目的地构建深度链接。然而,数据处理系统102可确定进入应用的深度链接可以将用户带到不希望履行用户的意图的页面。替代地,进入应用的深度链接可以将用户导向到恶意或滥用内容。因此,深度链接构建器组件114可确定按照应用的模板、动作和实体而构建的深度链接是否履行用户的意图。数据处理系统102因此可通过确定深度链接是否将用户导向所期望的动作并帮助履行用户的意图来执行质量审查。为了执行质量审查,数据处理系统可确定据称由应用提供的意图是否实际上由应用提供。例如,音乐流服务的开发者可给应用提供针对艺术家和歌曲的实体。用户可以按艺术家请求歌曲,这可能使应用提供要提供的将用户直接地导向应用内的艺术家的页面的深度链接。然而,如果深度链接最终将用户导向不同艺术家的页面或不同类型的页面(例如,有声读物),则数据处理系统102可确定深度链接可能是错误的。

图2是调试应用的系统200的操作的图示。系统200可包括图1中描绘的系统100或图4中描绘的系统400的一个或多个组件。系统200可包括数据处理系统102。数据处理系统102可与应用开发者设备160进行通信,与应用开发者设备160接合,或者以其它方式与应用开发者设备160交互。

在行为201处,数据处理系统102接收应用。数据处理系统102可从应用开发者设备160接收应用。应用开发者设备160可与诸如用户名和认证凭证的唯一开发者账户相关联。应用开发者设备160可将应用提交给数据处理系统102以供经由应用交付服务器或在线应用市场交付。数据处理系统102可接收应用以及诸如元数据、数据文件、动作的列表、实体的清单或其它信息的应用数据。

在行为202处,数据处理系统102可确定应用是否被配置有动作。数据处理系统102可确定应用是否与动作相关联。数据处理系统102可确定应用开发者是否已为应用建立了动作。开发者可使用诸如XML文件的数据文件来与应用一起提交动作。动作可由开发者建立或者配置以供由应用执行。操作可包括或者触发进入应用中的具体画面、网页或状态的深度链接。该深度链接可由数据处理系统102的深度链接构建器响应于来自用户的触发为应用所建立的动作的请求来创建。

数据处理系统102可基于解析由应用开发者设备160提供的应用数据文件或其它信息来确定应用是否被配置有动作。

如果在行为202处数据处理系统102确定应用未被配置有动作,则数据处理系统102可进行到行为234以授权应用以进行交付。然而,如果数据处理系统102在行为202处确定应用被配置有动作,则数据处理系统102可进行到行为204以触发针对动作的调试过程。

在行为204处,数据处理系统102可触发调试过程。数据处理系统102可响应于由应用开发者提交应用或者在持续基础上触发调试。数据处理系统102可响应于在行为206处确定存在足够的历史执行信息来触发调试过程以在行为208处生成第一分类分数。例如,如果存在不足的历史执行信息(例如,有限的用户反馈,诸如不到10、20、30、50、100、150、200、300或500个用户评级、评论或对调查提示的响应),则数据处理系统102可确定不触发调试过程并且继续在行为234处授权应用直到存在足够的用户反馈为止。

数据处理系统102可在行为206处确定是否针对应用存在可用的历史执行信息。历史执行信息可指代或者包括与正在调试的应用或应用的动作相关联的用户反馈。数据处理系统102可访问存储历史信息的数据储存库以在行为206处确定是否针对应用存在可用的历史执行信息。数据处理系统102可在行为206处查询数据储存库128或历史数据数据结构134。在一些情况下,数据处理系统102可基于正在提交的应用是否是先前尚未被提交的新应用来确定是否存在历史执行信息。如果应用是先前尚未被提交的新应用,则可能不存在历史执行信息。

如果不存在历史执行信息,则数据处理系统102可确定要进行到第二分类器并跳过第一分类器。如果不存在历史执行信息,则数据处理系统102可确定要插入延迟或者等待直到存在历史执行信息为止。例如,数据处理系统102可临时地授权应用以进行交付以便使应用及其动作在客户端计算设备140上被安装和执行。应用在被安装和执行时,可生成历史执行信息,数据处理系统102然后可使用所述历史执行信息来确定第一分类分数。

如果在行为206处数据处理系统102确定历史执行信息是可用的,则数据处理系统102可进行到行为208以生成第一分类分数。数据处理系统102(例如,经由第一分类器组件116)可使用数据处理系统102的第一分类器组件来生成第一分类分数。第一分类分数可基于其历史执行或反馈数据。第一分类分数可指示为应用所提供的动作是否履行了触发动作的用户的意图。第一分类分数可以是由用户提供的反馈评级、用户对调查的响应、用户评论或由用户提供的其它反馈。

数据处理系统102然后可在行为210处基于第一分类分数来确定是否存在分类失败。分类失败可基于阈值。如果数据处理系统102在行为210处基于第一分类分数确定分类失败,则数据处理系统102可进行到行为236以更新参数(例如,交付控制参数)以阻止用于交付的应用或者禁止应用的操作。数据处理系统102然后可在行为214处确定应用是否被配置有附加动作。如果应用被配置有附加动作,则数据处理系统102可通过用下一个动作在行为204处触发调试过程来调试下一个动作。如果数据处理系统102确定没有要针对应用的审查或者调试的进一步动作,则数据处理系统102可在230处退出调试过程。数据处理系统102然后可在行为232处基于参数来控制应用交付服务器。

如果在行为210处,数据处理系统102确定第一分类未导致分类失败,则数据处理系统102可进行到行为212。在行为212处,数据处理系统102可生成机器动作。机器动作可指代机器生成的动作。机器动作可指代模拟动作或由数据处理系统102基于应用数据或元数据而生成的动作。机器动作或机器生成的动作可指代由数据处理系统102在不使用由应用提供的动作的列表情况下生成或者识别的动作。机器动作可指代由数据处理系统102独立于由应用开发者设备160提供的动作的列表而生成的动作。

在行为212处生成机器动作后,数据处理系统102可进行到行为216以基于机器动作来生成第二分类分数。数据处理系统102(例如,经由第二分类器组件118)可基于机器生成的动作与由应用开发者设备160提供的动作的比较来确定第二分类分数。数据处理系统102可在行为218处确定作为第二分数的结果是否发生分类失败。分类失败可指代或者包括为空值或者不满足最小失败阈值的第二分数。分类失败可使数据处理系统102退出调试过程。数据处理系统102可响应于分类失败而退出调试过程以便减少或者防止浪费的计算资源消耗。

如果在行为218处,数据处理系统102基于第二分数确定存在分类失败,则数据处理系统可进行到行为236以更新交付控制参数并阻止应用或动作。

然而,如果在行为218处数据处理系统102确定不存在分类失败,则数据处理系统102可进行到行为220以执行匹配程序。数据处理系统102可使用匹配引擎组件122来执行匹配程序。可执行匹配程序来识别与应用相似的第二应用。可使用包括例如统计技术的各种技术来确定相似性。相似性可基于应用是在相同类别中、相同类型的应用、提供相似功能、提供相似服务或使用相似功能或工具。数据处理系统102可基于标题、描述、元数据、类别、用户、评论或其它数据源(例如,外部数据源、第三方设备162、搜索引擎结果)来选择相似应用。例如,数据处理系统102可利用或者应用搜索引擎来识别相似应用。数据处理系统102可将关于应用的信息输入到搜索引擎中并且解析搜索结果以识别相似应用。

在行为222处,数据处理系统102可确定是否存在相似应用。如果数据处理系统102不能识别相似应用,则数据处理系统可进行到行为236以更新交付控制参数而不生成第三分类分数。数据处理系统102可使用第一分类分数和第二分类分数来更新交付控制参数。数据处理系统102可能未找到相似应用,因为相似应用可能仍尚未被提交给数据处理系统102以进行应用交付。数据处理系统102可选择如被配置有动作的相似应用。如果另外相似应用未被配置有动作,则数据处理系统102可能未找到相似应用。

如果在行为222处数据处理系统102确定存在被配置有动作的相似应用,则数据处理系统102可进行到行为224以生成第三分类分数。数据处理系统102可使用第三分类器组件来生成第三分类分数。数据处理系统102可将为应用所配置的动作与为相似应用所配置的动作相比较以确定动作之间的相似性水平。例如,数据处理系统102可确定正在经历调试过程的应用的动作与为相似应用所建立的任何动作匹配或者不匹配。如果数据处理系统102确定经历调试过程的动作与相似应用的任何动作不匹配,则数据处理系统102可给动作指派低分类分数(例如,0)。如果数据处理系统102确定经历调试过程的应用的动作与为相似应用所建立的动作中的一个匹配,则数据处理系统102可给动作指派高第三分类分数(例如,1)。因此,如果动作与为已经由数据处理系统102检审或者批准的相似应用所建立的动作匹配,则数据处理系统102设置较高的分类分数。

在行为226处,数据处理系统102可基于第三分类分数来确定是否存在分类失败。如果数据处理系统102基于第三分类分数确定分类失败,则数据处理系统102可进行到行为236以更新交付控制参数以阻止对用于交付的应用授权,或者禁止针对应用的动作。

如果在行为226处数据处理系统102确定第三分类分数未导致分类失败,则数据处理系统102可进行到行为228处生成组合分类分数。数据处理系统102可基于第一分类分数、第二分类分数和第三分类分数来生成组合分类分数。数据处理系统102可使用包括例如加法、乘法、除法、点积、函数、平均值或统计技术的任何技术来组合分类分数。

数据处理系统102可基于在行为228处生成的组合分数来在行为236处更新交付控制参数。数据处理系统102可更新参数以阻止应用的交付,禁止动作,或者授权交付或者授权动作。数据处理系统102然后可在行为214处确定应用是否被配置有附加动作。如果数据处理系统102确定存在附加动作要审查,则数据处理系统102可进行到行为204以调试或者审查下一个动作。如果在行为214处,数据处理系统确定没有剩余动作要输入到调试过程中,则数据处理系统102可进行到行为230以退出调试过程。

数据处理系统102可在行为232处基于参数来控制应用交付服务器110。例如,参数可指示应用交付服务器110授权应用的交付或者阻止应用的交付。参数可指示应用交付服务器110禁止应用的一个或多个动作,但是以其它方式授权应用的交付。数据处理系统102可向应用开发者设备160通知调试过程的状态或结果。数据处理系统102可通过改进应用的对应方面来请求应用开发者设备160解决由数据处理系统102识别的低分类分数。

图3是调试应用的示例方法的图示。方法300可由图1中描绘的系统100、图2中描绘的系统200或图4中描绘的系统400的一个或多个组件、系统或元件执行。例如,方法300可由数据处理系统执行。在行为302处,数据处理系统可识别应用的动作。应用可由应用开发者提交。动作可以是由应用开发者配置成执行与应用相关联的动作的消息对象。动作可包括例如观看动作、监听动作、内容请求动作、导航动作或其它类型的动作。动作可由应用执行。可对与应用相关联的实体执行动作(例如,按艺术家_1播放歌曲_A)。

在行为304处,数据处理系统可确定第一分类分数。数据处理系统可基于由应用开发者提供的消息传递对象的动作的历史执行来确定第一分类分数。数据处理系统可基于用户反馈来确定第一分类分数。数据处理系统可基于用户评论来确定第一分类分数。数据处理系统可基于用户评论或反馈的语义分析来确定第一分类分数。数据处理系统可基于调查或用户对调查的响应来确定第一分类分数。数据处理系统可基于用户对诸如“应用可执行<动作>吗?”的提示的响应来确定第一分类分数。动作可对应于应用开发者指示应用被配置成执行的动作。

在一些情况下,数据处理系统可确定应用不具有历史执行信息。数据处理系统可确定要跳过第一生成分数的生成,或者为第一分类分数指派默认值。例如,数据处理系统可为第一分类分数提供默认值,使得应用可通过分类失败测试。在一些情况下,数据处理系统可确定要暂停调试过程并授权用于交付的应用,以便获得关于应用的用户反馈。

在行为306处,数据处理系统可生成机器生成的动作。数据处理系统可基于与应用相关联的元数据来为应用生成机器生成的动作。数据处理系统可在不用使用由应用开发者提交的动作的情况下生成机器生成的动作。数据处理系统可独立于由应用开发者提交的动作而生成机器生成的动作。数据处理系统可基于应用的描述或与应用相关联的其它元数据来生成机器生成的动作。

在行为308处,数据处理系统可确定第二分类分数。数据处理系统可基于由应用开发者提供的动作与机器生成的动作的比较来确定第二分类分数。如果由开发者提供的动作与机器生成的动作匹配,则数据处理系统可给动作指派高第二分类分数(例如,1)。如果由开发者提供的动作与机器生成的动作不匹配,则数据处理系统可给动作指派低第二分类分数(例如,0)。如果动作与机器生成的动作不完全匹配,而是相似的,则数据处理系统可向动作指派中等第二分类分数(例如,0.5)。如果动作在相似域或类别或行业中,则由开发者提供的动作可能与机器生成的动作相似。例如,数据处理系统可将监听动作认为与观看动作相似。

在行为310处,数据处理系统可选择第二应用。第二动作可以是相似应用。数据处理系统可使用匹配程序来选择相似动作。第二应用可与经历调试过程的应用匹配,或者被认为与经历调试过程的应用相似。数据处理系统可基于与应用相关联的元数据来选择或者识别相似应用。数据处理系统可识别多个相似应用。数据处理系统可基于相似性分数(例如,统计相似性分数)的相似性排名来选择最相似应用。数据处理系统可选择被配置有动作的相似应用。如果相似应用包含或者被配置有动作,则数据处理系统可确定要选择相似应用以用于进一步处理。例如,如果数据处理系统识别相似应用,但是应用中的仅一个被配置有动作,则数据处理系统可选择被配置有动作的应用作为要用于调试过程的相似应用(或第二应用)。

在行为312处,数据处理系统可确定第三分类分数。数据处理系统可基于针对第二应用(例如,选择的相似应用)批准的动作与由应用开发者对应用的动作的比较来确定第三分类分数。如果由应用开发者提供的动作与为相似应用所配置的动作匹配,则数据处理系统可设置高第三分类分数(例如,1)。如果由开发者提供的动作与为相似应用所配置的任何动作不匹配,则数据处理系统可设置低第三分类分数(例如,0)。如果动作与第二应用的任何动作不完全匹配,而是相似的,则数据处理系统可向动作指派中等第二分类分数(例如,0.5)。如果动作在相似域或类别或行业中,则由开发者提供的动作可能与第二应用的动作相似。例如,数据处理系统可将监听动作认为与观看动作类似。

在行为314处,数据处理系统可更新交付控制参数。数据处理系统可基于第一分类分数、第二分类分数和第三分类分数来更新交付控制参数。数据处理系统可针对特定动作或整个应用来更新交付控制参数。数据处理系统可基于分类分数中的一个或分类分数的组合来更新交付控制参数。例如,如果分类分数中的一个低于最小阈值(例如,失败阈值),则数据处理系统可确定要阻止应用的交付或者禁止动作,而不管其它分类分数是否令人满意。在一些情况下,数据处理系统可组合三个分类分数以确定动作或应用是否令人满意或者通过审查过程。如果动作或应用通过审查过程,则数据处理系统可更新交付控制参数以授权用于交付的应用或动作。

在行为316处,数据处理系统可控制应用的交付。数据处理系统可控制由应用交付服务器对应用的交付。数据处理系统可响应于由数据处理系统更新的交付控制参数来控制交付。数据处理系统可指示可以在数据处理系统内部或远程的应用交付服务器。数据处理系统可指示在线应用市场禁止动作或者阻止应用的交付。阻止应用的交付可包括从应用商店中去除应用。阻止应用的交付可包括将应用回原到通过了审查过程的先前版本。

数据处理系统可向应用开发者提供有关调试过程的结果的通知。

因此,本技术解决方案的系统和方法可调试应用或者改进应用调试过程以便防止欺诈或错误的应用的交付。例如,开发者可提供XML文件作为用于应用的应用包套件的一部分。XML文件可包括用于应用的意图和实体,其中意图可指代应用可执行的动作并且实体可包括或者指代可对其执行动作的内容。开发者可指示用于应用的大量实体(例如,用于音乐流应用的数百万首歌曲)。对实体的动作的请求或触发可引起到应用的深度链接的生成。例如,客户端计算设备可检测请求并且为动作和实体生成深度链接。该深度链接可将应用导向特定状态或特定web页面。因此,由于意图的数量或实体的大数量,审查或者调试应用以确定为应用所生成的深度链接是欺诈的、错误的还是另外误导的或不正确的可能是有挑战性的。

本技术解决方案的数据处理系统可确定应用是否可实际上执行动作,应用是否可实际上访问实体,或者应用是否实际上可对实体执行动作。

数据处理系统可使用生成指示应用是否可履行意图的一个或多个分数的一个或多个分类器。数据处理系统可被配置成使用所有三个分类器以便改进可靠性。例如,如果任何一个分类器失败,则数据处理系统可确定要去除应用或者禁止动作。数据处理系统可在每动作基础上或者针对整个应用执行审查过程。数据处理系统可基于任何一个分类器失败来自动地禁止动作。数据处理系统可针对特定数字表面(例如,基于语音的数字助理、搜索或内容请求)自动地禁止动作。数据处理系统可向应用开发者提供指示调试过程的任何失败或其它结果的日志或错误日志。

图4是示例计算机系统400的框图。计算机系统或计算设备400可包括或者用于实现系统100或诸如数据处理系统102的系统100的组件。数据处理系统102可包括智能个人助理或基于语音的数字助理。计算系统400包括用于通信信息的总线405或其它通信组件以及用于处理信息的耦合到总线405的处理器410或处理电路。计算系统400还可包括耦合到总线以用于处理信息的一个或多个处理器410或处理电路。计算系统400还包括诸如随机存取存储器(RAM)的主存储器415,或其它动态存储设备,其耦合到总线405以用于存储信息以及要由处理器410执行的指令。主存储器415可以是或者包括数据储存库145。主存储器415也可被用于在由处理器410执行指令期间存储位置信息、临时变量或其它中间信息。计算系统400还可包括耦合到总线405以用于为处理器410存储静态信息和指令的只读存储器(ROM)420或其它静态存储设备。诸如固态设备、磁盘或光盘的存储设备425可耦合到总线405以持久地存储信息和指令。存储设备425可包括或者是数据储存库145的一部分。

计算系统400可以经由总线405耦合到诸如液晶显示器或有源矩阵显示器的显示器435,以用于向用户显示信息。诸如包括字母数字和其它键的键盘的输入设备430可以耦合到总线405以用于向处理器410通信信息和命令选择。输入设备430可包括触摸屏显示器435。输入设备430还可包括诸如鼠标、轨迹球或光标方向键的光标控件,以用于向处理器410通信方向信息和命令选择并且以用于控制光标在显示器435上的移动。例如,显示器435可以是图1的数据处理系统102、客户端计算设备140或其它组件的一部分。

本文描述的过程、系统和方法可由计算系统400响应于处理器410执行包含在主存储器415中的指令的布置来实现。可将此类指令从诸如存储设备425的另一计算机可读介质读取到主存储器415中。包含在主存储器415中的指令的布置的执行使计算系统400执行本文描述的说明性过程。还可以采用多处理布置中的一个或多个处理器来执行包含在主存储器415中的指令。可使用硬线路电路代替软件指令,或者可与本文描述的系统和方法一起与软件指令相结合地使用硬线路电路。本文描述的系统和方法不限于硬件电路和软件的任何具体组合。

尽管已在图4中对示例计算系统进行了描述,然而包括本说明书中描述的操作的主题可用其它类型的数字电子电路或者用包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件或者用它们中的一个或多个的组合加以实现。

在本文讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供控制程序或特征是否可以收集个人信息(例如,关于用户的社交网络、社交动作或活动、用户的偏好或用户的位置的信息)或者控制是否或者如何从内容服务器或与用户更相关的其它数据处理系统接收内容的机会。此外,某些数据可以在它被存储或者使用之前被以一种或多种方式匿名化,使得个人可识别的信息在生成参数时被去除。例如,可以使用户的身份匿名化,使得对于该用户来说不可确定个人可识别的信息,或者可以在获得位置信息的情况下使用户的地理位置(诸如到城市、邮政编码或州级别)一般化,使得不能确定用户的特定位置。因此,用户可以控制内容服务器使用如何收集并使用关于他或她的信息。

本说明书中描述的主题和操作可用数字电子电路或者用包括本说明书中公开的结构及其结构等同物的计算机软件、固件或硬件或者用它们中的一个或多个的组合加以实现。本说明书中描述的主题可作为编码在一个或多个计算机存储介质上以供由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个计算机程序,例如,一个或多个电路来被实现。替换地或此外,可将程序指令编码在例如机器生成的电、光或电磁信号的人工生成的传播信号上该信号被生成来对信息进行编码以便传输到适合的接收器装置以供由数据处理装置执行。计算机存储介质可以是或者被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或它们中的一个或多个的组合中。虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质还可以是或者被包括在一个或多个分离的组件或介质(例如,多个CD、磁盘或其它存储设备)中。本说明书中描述的操作可作为由数据处理装置对存储在一个或多个计算机可读存储设备上或者从其他源接收到的数据执行的操作被实现。

词语“数据处理系统”、“计算设备”、“组件”或“数据处理装置”包含用于处理数据的各种装置、设备和机器,作为示例包括可编程处理器、计算机、片上系统或多个可编程处理器、计算机、片上系统或上述的组合。装置可包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。装置除了包括硬件之外还可包括为所述计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。装置和执行环境可实现各种不同的计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。例如,直接动作API 108或NLP组件106和其它数据处理系统102组件可包括或者共享一个或多个数据处理装置、系统、计算设备或处理器。

计算机程序(也称为程序、软件、软件应用、app、脚本或代码)可用包括编译或解释语言、声明或过程语言的任何形式的编程语言编写,并且可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例行程序、对象或适合于在计算环境中使用的其它单元。计算机程序可对应于文件系统中的文件。可在保持其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于所述程序的单个文件中或者在多个协调文件(例如,存储代码的一个或多个模块、子程序或部分的文件)中存储计算机程序。可将计算机程序部署成在一个计算机上或者在位于一个站点处或者跨越多个站点分布并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可通过执行一个或多个计算机程序(例如,数据处理系统102的组件)的一个或多个可编程处理器来执行以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可由专用逻辑电路执行,并且装置也可被实现为例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,作为示例包括半导体存储设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充,或者被并入在专用逻辑电路中。

可在计算系统中实现本文所描述的主题,该计算系统包括例如,作为数据服务器的后端组件,或者包括例如,应用服务器的中间件组件,或者包括例如,具有用户可用来与本说明书中描述的主题的实施方式交互的图形用户界面或web浏览器的客户端计算机的前端组件,或者包括一个或多个此类后端、中间件或前端组件的组合。系统的组件可通过例如,通信网络的数字数据通信的任何形式或介质来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互连网络(例如,因特网)和对等网络(例如,自组织对等网络)。

诸如系统100或系统400这样的计算系统可包括客户端和服务器。客户端和服务器一般地彼此远离并且通常通过通信网络(例如,网络105)来交互。客户端和服务器的关系借助于在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器向客户端设备发送数据(例如,表示数字分量的数据分组)(例如,为了向与客户端设备交互的用户显示数据并从与客户端设备交互的用户接收用户输入)。可在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)(例如,由数据处理系统102从客户端计算设备140或应用开发者设备160或第三方设备162接收)。

虽然在附图中以特定次序描绘了操作,但是不要求以所示的特定次序或者以顺序次序执行此类操作,并且不要求执行所有图示的操作。可以以不同的次序执行本文描述的动作。

各种系统组件的分离不要求在所有实施方式中分离,并且所描述的程序组件可被包括在单个硬件或软件产品中。例如,NLP组件106或直接动作API 108可以是单个组件、app或程序,或具有一个或多个处理电路的逻辑器件,或数据处理系统102的一个或多个服务器的一部分。

在现在已描述了已作为示例被呈现的一些说明性实施方式后,显而易见的是,上文是说明性的而不是限制性的。特别地,尽管本文呈现的许多示例涉及方法行为或系统元素的具体组合,但是可以以其它方式组合那些行为和那些元素以实现相同的目标。在其它实施方式或实施方案中连同一个实施方式一起讨论的行为、元素和特征不旨在被排除在相似角色之外。

本文使用的措词和词语是为了描述而不应该被认为是限制性的。“包括”、“含有”、“具有”、“包含”、“涉及”、“特征是”、“特征在于”及其变化在本文中的使用意在包含此后列举的项、其等同物和附加项以及由此后排他地列举的项构成的替代实施方式。在一个实施方式中,本文描述的系统和方法由所描述的元素、行为或组件中的一个或多于一个的每种组合或全部构成。

对在本文中以单数形式提及的系统和方法的实施方式或元素或行为的任何引用也可以包含包括多个这些元素的实施方式,并且在本文中以复数对任何实施方式或元素或行为的任何引用也可以包含包括仅单个元素的实施方式。单数或复数形式的引用不旨在将目前公开的系统或方法、其组件、行为或元素限于单个或多个配置。基于任何信息、行为或元素的对任何行为或元素的引用可以包括该行为或元素至少部分地基于任何信息、行为或元素的实施方式。

本文公开的任何实施方式可以与任何其它实施方式或实施例组合,并且对“实施方式”、“一些实施方式”、“一个实施方式”等的引用不一定是互斥的并且旨在指示与实施方式一起描述的特定特征、结构或特性可以被包括在至少一个实施方式或实施例中。如本文所使用的此类词语不一定全部参考同一实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式包括地或排他地与任何其它实施方式组合。

对“或”的引用可以被解释为包括的,使得使用“或”描述的任何词语可以指示所描述的词语中的单个、多于一个和全部中的任一个。对“‘A’和‘B’中的至少一个”的引用可包括仅‘A’、仅‘B’以及‘A’和‘B’两者。与“包括”或其它开放式词语相结合地使用的此类引用可包括附加项。

在附图、详细描述或任何权利要求中的技术特征后面是附图标记的情况下,附图标记已被包括来增加附图、详细描述和权利要求的可理解性。因此,附图标记或其不存在都对任何权利要求元素的范围没有任何限制作用。

本文描述的系统和方法可以在不脱离其特性的情况下用其它具体形式具体化。前面的实施方式是说明性的,而不是限制所描述的系统和方法。本文描述的系统和方法的范围因此通过所附权利要求而不是前述描述来指示,并且落在权利要求的等同的含义和范围内的变化被包含在其中。

相关技术
  • 调试应用以供由应用交付服务器交付
  • 基于容器平台的应用交付方法、容器平台及应用交付系统
技术分类

06120112852470