动态意图注册的制作方法

文档序号:15308025发布日期:2018-08-31 21:19阅读:146来源:国知局



背景技术:

语音识别和语音处理系统在许多消费电子装置中很普遍。这些电子装置中的许多现在利用语音命令处理技术来调用和执行特定操作。例如,诸如智能电话的用户装置能处理语音命令,以执行包括搜索网络、设置警报、呼叫特定人等的指定操作。这种语音识别系统还促进用于具有某些可访问性挑战的人的可访问性服务。

随着平板电脑和智能电话的出现,促进对通过因特网检索的内容进行操作、或者对用户装置本地的内容进行操作的各种功能的执行的应用现在非常普遍。许多用户因此在其移动装置上具有多个应用。这样的应用包括游戏、地图绘制应用、笔记记录应用、财务应用等。

然而,为了由用户使用应用所支持的各种功能,应用必须被实例化(instantiate)并且能够接收用户输入,或者作为选择,应用必须向第三方应用指定该应用能够处理对于第三方应用的“意图”。如在本说明书中所使用的,“意图”是对要执行的应用中的操作的描述(“动作”),并且还能指定用于通过指定操作进行处理的参数值(要操作的数据)。意图能专用于特定应用,或者能提供用于在不同应用中的操作之间执行运行时间绑定的工具。

许多应用包括应用清单(manifest),其中包括应用支持的特定意图的名称。在安装时,应用支持的意图由操作系统发现并与应用关联。

因此,如果应用已将其所有高级操作暴露为意图,则可访问性服务或虚拟助理能确定哪些事件可用。然而,即使具有如此鲁棒的意图暴露,仍可能需要来自用户的多个指示(directions)以促使应用执行期望的动作。例如,对于日历应用,为了更改已安排会议的时间,可能要求用户说出“打开日历”、“打开会议[标识特定会议]”、“编辑”、“将时间更改为[期望的时间]“(例如,下午3:00)。



技术实现要素:

本说明书描述了与用户装置上的应用的操作相关的技术。

通常,本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:对于第一应用,访问描述第一应用的意图组的意图数据,每个意图组包括属于该意图组的一个或更多意图,并且每个意图由指定要执行的动作和该动作要操作的数据的意图描述符数据描述;确定意图组的启用连接器,每个启用连接器指定启用意图,该启用意图促使对应的意图组在第一应用中变为活动的,并且该启用意图属于与其促使变为活动的对应意图组不同的意图组;生成通过启用连接器将意图组与其他意图组相关联的意图组关联数据,其中将第一意图组与第二意图组相关联的启用连接器的启用意图属于第一意图组,并且响应于启用连接器的执行,第二意图组变为活动的;并且将意图组关联数据提供到已安装了第一应用的用户装置。该方面的其他实施例包括对应的系统、设备和计算机程序,被配置为执行在计算机存储装置上编码的方法的动作。

通常,本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中,在用户装置处接收关联数据,该关联数据通过启用连接器对于应用将意图组与其他意图组相关联,其中:意图组包括属于意图组的一个或多个意图,并且每个意图由指定要执行的动作和该动作要操作的数据的意图描述符数据描述;每个启用连接器指定启用意图,该启用意图促使对应的意图组在该应用中变为活动的,并且该启用意图属于与其促使变为活动的对应意图组不同的意图组;处理用户装置的用户输入的命令;确定该命令指定对于该应用的意图的启动,并且应用未处于启用意图所属的意图组的状态;响应于该确定:访问关联数据;确定关联数据中与当前对于应用活动的意图组对应的当前位置;确定关联数据中的目的地位置,该目的地位置指定命令所指定的意图所属的意图组;通过一个或多个启用连接器遍历从当前位置到目的地位置的关联数据,并且对于所述一个或多个启用连接器中的每一个,作为遍历的一部分执行启用连接器的启用意图。该方面的其他实施例包括对应的系统、设备和计算机程序,被配置为执行在计算机存储装置上编码的方法的动作。

可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。动态意图注册表可以使得具有在用户装置上下载的一个或多个应用的用户装置、能够使用随(多个)应用提供的多个意图,以按照更容易和更流畅的方式在意图组之间导航。这促使用户装置能够从应用中的现有状态导航到同一应用或不同应用中的期望意图。因为导航涉及用户未发声的可能的附加意图的执行,所以用户装置可以自动标识并执行期望操作所需的所有断言(predicate)操作。这促使用户装置按照比通过手动用户输入(包括用户选择输入或低级话音命令输入)实现的方式更有效的方式操作。另外,基于动态意图注册表,用户能够表达他们想要对用户装置做什么,并且动态意图注册系统提供对所表达的用户期望动作的导航。因此,必然不需要用户开发装置的思维导图(mentalmap),以了解或记住特定功能的位置或达到该功能的命令的顺序。此外,另一个优点是应用开发人员可以更容易地使得应用功能可用作意图组,因此覆盖每个应用的所有功能是可行的。该优点对于残疾用户而言尤其重要,否则他们可能无法完成未被意图发起或覆盖的动作。因此,可以实现对一个或多个技术领域的改进,例如用户界面和交互模型、应用调用、和参数值规范。

在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。

附图说明

图1是其中发布应用的示例环境的框图。

图2是在示例应用的目标注册表中存储的意图信息的图示。

图3在多个应用之间示出的示例意图组图形的图示。

图4在用户装置的辅助应用、发布应用和意图注册表之间。

图5是用于生成意图图形结构并向用户装置提供意图图形结构的示例过程的流程图。

图6是用于使用意图图形结构以在用户装置的一个或多个应用中包括的意图组之间进行遍历的示例过程600的流程图。

各附图中相同的附图标记和名称表示相同的元件。

具体实施方式

图1是其中发布应用107的示例环境100的框图。诸如因特网的计算机网络102连接资源发布者网站104、应用发布者106、用户装置108和意图注册表120。

资源发布者网站104包括与域相关联并由一个或多个位置中的一个或多个服务器托管的一个或多个网络资源105。通常,资源发布者网站是以超文本标记语言(html)格式化的网页的集合,其可以包含文本、图像、多媒体内容和编程元素。每个网站104由内容发布者维护,所述内容发布者是控制、管理和/或拥有网站104的实体。

一些资源发布者104是提供应用107的应用发布者106。应用107被设计为在特定用户装置操作系统和机器固件上运行,并且可以独立于浏览器应用操作。

用户装置108是受用户控制的电子装置。用户装置108通常能够通过网络102请求和接收网页资源104和应用107。示例用户装置108包括个人计算机、移动通信装置和平板计算机。

可以包括意图注册表120以向用户装置提供意图数据124,该意图数据允许用户装置108发现并执行针对一个或多个应用107的不同动作。由发布者107提供的每个应用包括例如应用清单文件,其描述了应用107的操作、以及可以为那些操作支持和执行的意图。意图数据124是用于应用的描述意图的存储库(repository),并且可以在应用同样被更新时更新。意图注册表120可以由意图注册表处理器122实现,并且意图注册表处理器122访问意图数据124以生成关联数据,该关联数据将意图组链接并关联到其他意图组,用于在意图组之间导航,如下面将更详细描述的那样。意图注册表处理器122和意图数据124在下面进一步描述。

一旦更新,意图数据124可以被分发到其上安装了应用的用户装置108。因此,在一些实现中,每个用户装置108存储其自己版本的意图数据125。应用和服务可以访问意图数据125以发现应用的操作作为意图。意图被组织成对应于不同活动的组,并且在数据124和125中描述这些组之间的关系以形成可用操作的关联。使用该关联数据,用户装置108可以确定当前应用的当前状态,并确定执行用户指定的期望操作必需哪些操作。

然而,通过利用意图数据125,执行意图处理器109的用户装置108允许服务找出关于可用意图,包括可能或可能不直接从当前活动获得的意图,并且使得服务能够导航和执行意图序列,所述意图序列自动导致用户请求的期望意图。

在随后的示例中,在用户装置108上执行的可访问性服务的上下文中描述系统和过程。然而,任何应用或服务可以利用下面描述的特征。例如,通过使用api,可以使意图处理器109可用于服务和应用。

应用发布者106可以向意图注册表120提供描述应用的意图组的数据。这样的数据可以是应用清单文件的形式,或者描述意图组和意图的任何其他数据。意图组包括属于意图组的一个或多个意图,并且每个意图指定要执行的动作和要由该动作操作的数据。通常,意图组是在应用处于特定状态时启用的一组意图。例如,当处于“查看”状态的日历应用将具有第一组意图时,例如“展示[日|周|月]”、“打开[事件]”等。相反,“编辑”状态可以具有第二组意图,例如“设置[时间]”、“设置[位置]”等等。

如果应用107的数据不描述意图,则意图注册表120可以开发或以其他方式创建描述用于那些操作的意图的数据。例如,意图注册表处理器122可以实例化虚拟机,该虚拟机被编程为通过api探索应用状态和每个状态的活动意图。例如,列表视图处理器可以向虚拟机制作(make)可用的应用菜单,并且虚拟机可以选择每个菜单项,以获得响应于每个选择而变为活动的附加菜单项。

图2是在用于示例应用的意图注册表120中存储的意图信息201的图示200。示例应用是日历应用;但是,其他应用的意图信息可包含在意图注册表中。每个应用可以包括多个状态,这些状态定义可以在应用中执行的不同活动、以及与每个特定活动相关联的显示。在一些实现中,在任何时间点只有一个状态可以是活动的。在图2的示例应用中,日历应用包括“日历视图”状态,其中可以在用户装置108处查看特定用户的日历。此外,包括“选项菜单”状态用于由用户创建新事件、搜索用户的日历、或执行其他选项。包括“显示”状态以显示(或不显示)特定用户的日历。“同步”状态允许用户将他们的特定日历与另一个用户的日历同步。“事件细节”状态使用户能够选择以编辑、删除或按照别的方式修改特定事件,并且“编辑”状态使用户能够编辑事件。

应用的每个状态包括意图组,该意图组标识在该特定应用状态中可以执行的一个或多个意图。例如,与“日历视图”状态相关联的意图组210a包括意图212a1、212a2、212a3和212a4。另外,每个意图由意图描述符数据描述,该意图描述符数据指定要与特定意图相关联地执行的动作、以及该动作要操作的数据。另外,意图描述符数据可以包括发起其相关联的意图的一种或多种方式。例如,意图描述符数据可以包括一个或多个名称(显式的或者可以具有几个值的参数的形式)、命令、或唯一标识符。

举例来说,意图212a1可以提供用户日历的日、周、月或日程视图。例如,用于意图212a1的唯一标识符或命令可以是显示日视图的“展示日”、显示周视图的“展示周”、显示月视图的“展示月份”、或显示特定用户的日程的“展示日程”的口头命令。

另外,还可以为一个或多个参数类型提供用于其关联意图的意图描述符数据。例如,在示例应用201的“日历视图”状态中,为了打开用户日历中的特定事件,用户可以发起对于特定事件的名称或唯一标识符的“打开”意图(例如,由图2中的$eventname标识)。在一些实现中,可以通过用户装置108的文本和语音处理来识别和标识事件名称。

与“选项菜单”状态相关联的意图组210b包括例如意图212b1、212b2、212b3、212b4和212b5。与“事件细节”状态相关联的意图组210c包括例如意图212c1、212c2、212c3和212c4。与“编辑事件”状态相关联的意图组210d包括例如意图212d1、212d2、212d3、212d4、212d5和212d6。与“显示”状态相关联的意图组210e包括例如意图212e1、212e2和212e3。此外,与“同步”状态相关联的意图组210f包括例如意图212f1、212f2、212f3和212f4。意图组210a、210b、210c、210d、210e和210f的每个意图包括指定要执行的动作、和该动作要操作的数据的意图描述符数据、以及可以激活意图组的唯一标识符或命令,所述意图组包括要在用户装置108处执行的特定意图。

如图2中所示,应用中的每个意图组可以包括一个或多个启用意图,所述一个或多个启用意图启动特定类型的意图,该意图促使应用响应于由启用意图执行的操作而激活状态。启用意图促使另一个不同的意图组变得被启用,如下面进一步描述的。与其他意图一样,启用意图包括意图描述符数据、连同用于启动启用意图的唯一标识符或命令,该意图描述符数据指定要执行的动作、和要由该动作操作的数据。在示例应用中,启用意图220a可以促使示例应用从意图状态组210a的状态转换到意图组210b的状态。例如,在一些实施例中,当在一些实现中,示例应用201处于意图状态组210a时,可以通过提供“打开选项”的口头命令来启动启用意图220a。

可以由应用发布者指定对意图组的启用意图。启用意图用于将一个意图组连接到应用中的另一个意图组,或将第一应用的意图组连接到另一应用的另一意图组。如本文所使用的,当执行将第一意图组连接到第二意图组的启用意图时,来自第一意图组的启用意图促使第二意图组变得被启用以激活。因此,可以将启用意图建模为意图组之间的连接器。发布者可以为意图组指定启用连接器。作为选择,意图注册表处理器122可以实例化虚拟机,该虚拟机被编程为,借助于如上所述的api,探索应用状态和每个状态的活动意图。

在示例应用201中,启用意图220b可以将示例应用从意图组210a的状态转换到意图组210c的状态。同样,启用意图220c和启用意图220d可以将示例应用从意图组210a的状态转换到意图组210d的状态;启用意图220e可以将示例应用201从意图组210b的状态转换到意图组210e的状态;启用意图220f可以将示例应用201从意图组210e的状态转换到意图组210f的状态;并且启用意图220g可以将示例应用201从意图组210f的状态转换到意图组210e的状态。

根据意图数据,意图注册表处理器120可以生成通过启用连接器将意图组与其他意图组相关联的数据。在一些实现中,该关联数据可以是图形的形式。图3是在多个应用之间示出的示例意图组图形300的图示。意图注册表120可以将图形存储在意图数据124中。意图组图形300包括四个示例应用310a、310b、310c和310d、以及同一应用的意图组之间或从一个应用的意图组到另一应用的意图组的启用连接器。

意图数据124可以被提供给用户装置108并且作为本地意图数据125本地存储。意图组图形300可以包括比特定用户装置108已经安装的应用更多的应用。作为选择,用户装置108可以接收或访问用户装置108已经在装置上下载的应用的意图组图形300部分。

意图组图形300可以将每个意图组(例如,意图组312-a1)指示为图形节点,并且将启用连接器(例如,320a)指定为两个图形节点之间(例如,意图组312-a1和意图组312-a2之间)的边缘。尽管对于两个意图组的每个连接仅示出了一个启用连接器,但是可以通过两个或更多启用连接器来连接两个意图组。在意图组图形300中,边缘是单向的,其中起源图形节点表示启用意图所属的意图组,并且目的地图形节点表示当执行与启用意图对应的操作时、在用户装置108处将变为活动的意图组。

如意图组图形300中所示,用户可以在其特定用户装置108上下载示例应用310a和310d两者,并且在特定时间,用户装置108可以具有在用户装置108处活动的意图组312-a2。例如,在可以是电子邮件应用的示例应用310a中,意图组312-a2可以是意图组,例如“电子邮件视图”,其中特定的接收电子邮件消息被提供给用户装置108的用户。电子邮件消息可以包括例如日历和/或事件名称,并且用户可能希望在示例应用310d(日历应用)中查看日历信息。意图组312-d1可以是例如“日历视图”意图组。如在示例意图组图形300中所见,在意图组312-a2和意图组312-d1之间存在启用连接器325。用户可以呼叫(例如,口头命令“日历视图”)或以其他方式启动用户装置108的特定启用连接器,以使用意图组图形300并转换活动意图组,并且在该情况下,转换应用。在启动启用连接器325之后,可以在用户装置108处启动意图组312-d1。

在另一示例中,用户装置108可以再次具有在用户装置108处活动的意图组312-a2。然而,在这种情况下,用户装置108的用户可能希望在示例应用310d(日历应用)中创建新的日历事件。意图组312-d3可以是“新事件”意图组。如在示例意图组图形300中所见,在意图组312-a2和312-d3之间没有启用连接器。意图处理器109可以确定使连接器能够遍历的最有效路线,以便从当前活动意图组312-a2到达意图组312-d3。

效率可以基于将需要访问和打开的应用的数目、所需的存储器的数量、以及要启动和遍历的启用连接器的数目、以及其他适当的因素。在当前示例中,从当前活动意图组312-a2,用户装置108可以启动启用连接器325以到达意图组312-d1,并然后启动启用连接器326能够从意图组312-d1转换到意图组312-d3。启用连接器326可以不直接从意图组312-a2启动,而是可以从意图组312-d1启动。在一些实现中,中间意图组(例如,作为当前示例中的意图组312-d1)的启动可以或可以不在用户装置108处示出。

例如,假设用户正在查看来自伙伴janedoe的电子邮件,并且意图组312-a2是活动的。用户可能想要安排与jane的会议,并且因此用户说出“向我展示发件人的日历。”启用连接器325可以是启动日历应用的“显示”意图组的意图,其对应于日历应用310d的意图组312-d1。对于意图组312-d1,可能存在意图“展示$contactcalendar(联系人日历)”,其中$contact是联系人姓名。在这里,用户指定了“发件人”,它被解析为电子邮件消息的发件人janedoe。这作为参数值传递给由意图组312-d1所调用的操作,例如“展示janedoe日历”,其实例化“日历视图”意图组312-d3,并导致显示janedoe的日历的操作。如果缺少参数值,则可以促使用户装置108提示用户输入该值。

因此,通过遍历该关联数据,意图处理器109消除了用户指定从活动应用中的当前状态转换到活动应用或另一不同应用中的另一状态所需的每一中间操作的需求。

意图注册表允许发布者动态更新意图数据,并向用户装置提供更新的意图数据。图4是用户装置108处的辅助应用、发布应用和意图注册表之间的示例数据交换。如前所述,辅助应用用于执行一个或多个应用的不同动作(例如,意图)。如图2和3中所述,意图注册表120从发布应用(例如,日历应用和图3中看到的其他应用)接收意图信息,并生成使得辅助应用能够从活动意图组转换到其他意图组的关联数据。如图4所示,意图注册表120可以向辅助应用通知意图注册表可用于(402)访问。辅助应用可以查询意图注册表120(404)以获得意图注册表120的内容。意图注册表120然后可以提供发布应用的意图组的更新,或者删除发布应用的意图组(406)。意图注册表120的内容可以用于包括在意图注册表120中和用户装置108上的发布应用使用辅助应用的意图。

另外,意图注册表120可以向一个或多个发布应用通知意图注册表可用(408)。然后,发布应用可以对于发布者发布的应用提供意图组,或者发布应用可以指定该意图注册表120关联数据的意图组的更新和/或去除(410)。然后可以向辅助应用提供意图组的更新和/或去除,如图4的406中所示。

图5是用于生成意图图形结构并向用户装置提供意图图形结构的示例过程500的流程图。例如,过程500能由意图注册表120实现。在一些实现中,示例过程500的操作能实现为存储在非瞬时计算机可读介质上的指令,其中所述指令促使数据处理设备执行示例过程500的操作。

访问描述应用的意图组的意图数据(502)。每个意图组包括属于该意图组的一个或多个意图。每个意图组标识可以在该特定应用状态中执行的一个或多个意图。此外,每个意图由指定要执行的动作、和该动作要操作的数据的意图描述符数据描述。意图描述符数据可以包括可以在用户装置108处输入以调用或发起特定意图的一个或多个名称、命令或唯一标识符、可以由辅助应用或用户装置108的其他软件组件、或选择特定意图的其他方式所标识的该意图的人可读名称。例如,当向用户装置108提供意图的特定唯一标识符时,可以启动包括该特定意图的意图组的应用状态,以执行该特定意图。

确定用于意图组的启用连接器(504)。每个启用连接器都指定启用意图,该启用意图促使对应的意图组在应用中变为活动的。启用意图还包括指定要执行的动作和该动作要操作的数据的意图描述符数据、连同启动该启用意图的唯一标识符或命令。此外,每个启用意图属于与其促使变为活动的对应意图组不同的意图组。启用连接器可以在相同应用的意图组之间延伸、或从一个应用的意图组向另一个应用的意图组延伸。

生成通过启用连接器向其他意图组提供意图组导航的意图组关联数据(506)。在一些实现中,该关联数据可以是图形结构的形式,其将每个意图组指定为图形节点,并且将每个启用连接器指定为两个图形节点之间的边缘。作为示例,如图3所示,意图组图形可以将每个意图组(例如,意图组312-a1)指示为图形节点,并且将启用连接器(例如,320a)指定为两个图形节点之间(意图组312-a1和意图组312-a2之间)的边缘。在意图组图形300中,两个图形节点中的第一个可以是启用意图所属的意图组、和将在用户装置108处对于其相关联的(多个)启用连接器活动的意图组。两个图形节点中的第二个(例如,意图组312-a2)是响应于启用连接器(例如,320)的执行而变为活动的意图组。然后将导航数据提供给安装了应用的用户装置(508)。

图6是用于使用意图图形结构在用户装置108的一个或多个应用中包括的意图组之间进行遍历的示例过程600的流程图。过程600能例如由用户装置108和/或辅助应用实现。在一些实现中,示例性过程600的操作能实现为存储在非瞬时计算机可读介质上的指令,其中所述指令促使数据处理设备执行示例性过程600的操作。

处理由用户装置的用户输入的命令(602)。输入的命令可以是在用户装置108处提供的任何类型的选择或输入。例如,输入的命令可以是用户装置108上的项目的选择(例如,按钮或界面)、听觉命令、或文本输入命令。等等。

可以确定该命令指定应用的意图的启动,并且该应用不处于启用意图所属的意图组的状态(604)。如前所述,每个意图组包括属于该意图组的一个或多个意图。每个意图组标识可以在该特定应用状态中执行的一个或多个意图。此外,每个意图由指定要执行的动作、和该动作要操作的数据的意图描述符数据描述。意图描述符数据可以包括可以在用户装置108处输入以调用或发起特定意图的一个或多个名称、命令或唯一标识符、可以由辅助应用或用户装置108的其他软件组件、或选择特定意图的其他方式所标识的该意图的人可读名称。例如,基于图2中提供的示例,用户可以处于日历视图状态(意图组210a),并且用户可以例如通过说出“同步charlie”(例如,其中“charlie”被列为联系人,并且日历特权在用户和“charlie”之间共享),来向用户装置108提供命令。可以由用户装置108处的辅助应用确定该命令指定意图组210f中的意图212f1的发起,并且与应用相关联的用户装置108不处于意图组210f状态中。

访问指定意图组和启用连接器的应用的关联数据(606)。例如,在图形结构的情况下,访问应用的意图组图形结构,其将应用的每个意图组指定为图形节点,并将启用连接器指定为两个图形节点之间的边缘(606)。可以确定两个图形节点中的第一个,其是启用意图所属的意图组,并且可以确定两个图形节点中的第二个,其是响应于启用连接器的执行而变为活动的意图组。如前所述,启用连接器可以在相同应用的意图组之间延伸,或从一个应用的意图组向另一个应用的意图组延伸。

确定关联数据中与当前对于应用是活动的意图组对应的当前位置(608)。例如,确定应用的意图图形结构中的当前节点。基于以上示例,当用户装置108的用户处于应用201的日历视图状态时,意图图形结构可以指示当前节点是示例应用201的意图组210a。

确定关联数据中的目的地位置,该目的地位置指定该命令所指定的意图所属的意图组(610)。例如,确定意图图形结构中的、指定该命令所指定的意图所属的意图组的目标节点。基于以上示例和图2,意图图形结构可以指示,该目标节点是示例应用201的意图组210f。

系统通过一个或多个启用连接器遍历从当前位置到目的地位置的关联数据,并且对于所述一个或多个启用连接器中的每一个,执行启用连接器的启用意图作为遍历的一部分(612)。继续该图形数据示例,然后执行从当前节点到目标节点的意图图形结构的遍历,并且对于遍历中的每个边缘,根据从当前节点到目标节点的遍历的顺序,来执行启用连接器。基于上面的示例和图2及其描述,当当前节点是意图组210a并且目标节点是意图组210f时,应执行启用连接器220a以使意图组210b被激活,意图组210b然后可以执行启用连接器220d以激活意图组210e,意图组210e然后可以最终执行启用连接器220e,用于激活意图组210f(目标节点)。虽然该示例被描述为在一个应用内的意图图形结构,但是如上所述,可以在该意图图形结构中包括更多应用。另外,在一些实现中,可能存在从当前节点到达目标节点的多于一条路径,并且在这种情况下,可以使用不同因素来确定要使用的路径。例如,这些因素可以包括最短路径、使用来自用户装置108的最少量处理功率的路径、确定的第一方式等中的一个或多个。

在这里讨论的系统收集关于用户的个人信息、或者可以利用个人信息的情况下,可以向用户提供机会,以控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、专业、用户的偏好、或用户的当前位置的信息),或控制是否和/或如何从内容服务器接收可能与用户更相关的内容。另外,某些数据可以在存储或使用之前以一种或多种方式处理,从而去除个人可标识信息。例如,可以处理用户的身份,从而不能对于用户确定个人可标识信息,或者可以概括其中获得位置信息的用户的地理位置(例如城市、邮政编码、或州级别),这样就无法确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息并由内容服务器使用。

本说明书中描述的主题和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等效、或者其一个或多个的组合。本说明书中描述的主题的实施例可以实现为在计算机存储介质上编码的一个或多个计算机程序(即,计算机程序指令的一个或多个模块),用于由数据处理设备执行、或控制数据处理设备的操作。

计算机存储介质可以是或包括在计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是按照人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的物理组件或介质(例如,多个cd、盘、或其他存储装置)中。

本说明书中描述的操作可以实现为由数据处理设备对在一个或多个计算机可读存储装置上存储的或从其他源接收的数据执行的操作。

术语“数据处理设备”包括用于处理数据的所有类型的设备、装置和机器,作为示例包括可编程处理器、计算机、片上系统,或多个、或前述组合。该设备可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(特定用途集成电路)。除了硬件之外,该设备还可以包括对于所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机、或者其一个或多个的组合。设备和执行环境可以实现各种不同的计算模型基础结构,例如网络服务、分布式计算和网格计算基础结构。

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

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出,来执行动作。所述过程和逻辑流程也可以由专用逻辑电路执行,并且该设备也可以实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(特定用途集成电路)。

作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器两者、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于根据指令执行动作的处理器、以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括或可操作地耦接,以从用于存储数据的一个或多个大容量存储装置(例如,磁盘,磁光盘、或光盘)接收数据或将数据传输到所述一个或多个大容量存储装置,或者进行接收和传输两者。但是,计算机不需要这样的装置。此外,计算机可以嵌入在另一个装置中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器、或便携式存储装置(例如,通用串行总线(usb)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,作为示例包括:半导体存储器装置,例如eprom、eeprom和闪存装置;磁盘,例如内部硬盘或可移除盘;磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在以下计算机上实现,该计算机具有用于向用户显示信息的显示装置(例如crt(阴极射线管)或lcd(液晶显示器)监视器)、以及用户可通过其向计算机提供输入的键盘和指示装置(例如,鼠标或轨迹球)。其他类型的装置也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式(包括声学、语音或触觉输入)接收来自用户的输入。另外,计算机可以通过向用户使用的装置发送文档并从用户使用的装置接收文档,来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户的用户装置上的网络浏览器。

本说明书中描述的主题的实施例可以在以下计算系统中实现,该计算系统包括后端组件(例如作为数据服务器)、或者包括中间件组件(例如应用服务器)、或者包括前端组件(例如,具有图形显示器或网络浏览器的用户计算机,用户可以通过所述图形显示器或网络浏览器与本说明书中描述的主题的实现进行交互)、或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网络(例如,因特网)、和对等网络(例如,特别对等网络)。

计算系统可包括用户和服务器。用户和服务器通常彼此远离,并且典型地通过通信网络进行交互。用户和服务器的关系借助于在各个计算机上运行并且彼此具有用户-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,html页面)传送到用户装置(例如,用于向与用户装置交互的用户显示数据、和从与用户装置交互的用户接收用户输入的目的)。可以从服务器处的用户装置接收在用户装置处生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多具体实现细节,但这些不应被解释为对任何发明或可要求保护的范围的限制,而是作为特定发明的特定实施例所特定的特征的描述。在单独实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地实现,或以任何合适的子组合来实现。此外,尽管特征可以如上描述为以某些组合起作用并且甚至最初这样要求保护,但是在一些情况下可以从组合中切除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或相继顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中、或封装在多个软件产品中。

因此,已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行,并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或相继顺序来实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

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