移动装置动作的远程调用的制作方法

文档序号:12287765阅读:257来源:国知局
移动装置动作的远程调用的制作方法

基于云的服务、搜索引擎、和社交网络的出现已经使用户能够跨多个用户装置进行数字呈现。具体地,用户可以具有由多个业务的提供者托管的用户账户,并且账户可以存储将特定用户装置链接至账户的信息。用户装置可以是永久链接的,诸如,在智能手机的情况下,或者可以是暂时链接的,诸如,在用户使用来登录账户以执行任务(诸如,在基于云的电子邮件服务中查收电子邮件)的膝上型计算机的情况下。

用户装置可以分别具有利于各种功能的各种各样的应用。这种应用可以包括阅读器应用、购物应用、地图应用等。这些应用中的许多应用可以通过使用命令输入来打开。例如,用户可以对着智能手机说出命令[向Julia发送文本消息:我遇上了堵车,晚餐会迟到],并且通过使用命令分析应用(或者可替代地,与命令分析服务通信),智能手机将调用文本应用以向收件方“Julia”发送该文本消息“I will be late for dinner,I’m stuck in traffic(我遇上了堵车,晚餐会迟到)”,当然,前提是名字“Julia”被解析为可寻址的联系人。



技术实现要素:

本说明书涉及针对用户装置的命令输入处理。

通常,在本说明书中描述的主题的一个创新方面可以体现为包括以下动作的方法:确定第一用户装置具有与该第一用户装置分离的相关联的第二用户装置;访问第二用户装置的规范数据,该规范数据指定第二用户装置被配置来执行的用户装置动作集合;接收第一用户装置的命令输入,每个命令输入是项集合;对于每个命令输入,确定该命令输入是否解析为第二用户装置的用户装置动作集合中的用户装置动作中的一个;对于未被确定为解析为用户装置动作中的任何一个的每个命令输入,使命令输入在第一用户装置处被处理;以及对于被确定为解析为用户装置动作中的一个的每个命令:响应于命令输入,使第一用户装置在用户界面中显示对话,用户通过该对话能够接受或者拒绝在第二用户装置处调用用户装置动作。该方面的其它实施例包括对应的系统、设备、以及在计算机存储装置上编码的被配置为执行方法的动作的计算机程序。

可以将在本说明书中描述的主题的具体实施例实施为实现以下优点中的一个或者多个。在第一用户装置处的命令输入可以被自动解析为可以由相关联的第二用户装置执行的动作,并且因此,用户无需调用任何特别功能和请求来使第二用户装置执行动作。此外,当利用新的应用来对第二用户装置进行更新或者从第二用户装置删除应用时,系统对第二用户装置的规范数据进行更新,因此命令输入不会仅仅被解析为当前由第二用户装置支持的动作。这消除了用户对配置文档进行手动更新的需要。提示用户确认在第二用户装置处的动作的执行,从而防止无意触发在第二用户装置处的动作。这在用户提供命令输入的第一用户装置同样支持命令输入所解析的动作时特别有用。与第一用户装置相比较,第二用户装置可能不太方便调用命令,但是在执行这些命令时更有效,例如,与计算机上的键盘相比较,电话上的键盘更难使用。

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

附图说明

图1是对命令输入进行处理以便进行移动装置动作的远程调用的环境的框图。

图2是确定何时调用在远程装置上的动作的示例过程的流程图。

图3A是在呈现有对话的第一用户装置处的用户界面的图示。

图3B是在显示有动作特定选项的第一用户装置处的另一用户界面的图示。

图4是用于响应于对话调用在远程装置处的命令的分布过程的流程图。

图5是示例移动计算装置的框图。

各个附图中的类似的附图标记和名称类似的元素。

具体实施方式

命令处理系统将第一用户装置和第二用户装置与诸如用户账户等账户相关联。通过指定第二用户装置配置来执行的用户装置动作集合的规范数据来描述用户装置中的至少一个,例如,第二用户装置。用户装置动作例如可以包括由在用户装置上加载的应用执行的动作。当用户在第一用户装置中输入命令时,系统确定命令输入是否解析为第二用户装置的该用户装置动作集合中的用户装置动作中的一个。例如,命令输入可以是键入的或者说出的项序列,并且,系统对所述项进行分析以确定所述项的字符串是否解析为命令。如果命令输入未被确定为解析为用户装置动作中的任何一个,那么在第一用户装置处处理该命令输入。然而,如果命令被确定为解析为用户装置动作中的任何一个,那么第一用户装置在用户界面中显示对话,通过该对话,用户可以接受或者拒绝在第二用户装置处调用用户装置动作。如果用户拒绝在第二用户装置处调用用户装置动作,那么通过第一用户装置处理该命令输入。相反,如果用户接受在第二用户装置处调用用户装置动作,那么通过第二用户装置(并且,可选地,也通过第一用户装置)处理命令输入。

命令处理系统可以实施在第一用户装置中,或者实施在与第一用户装置和第二用户装置分离的计算机系统中,诸如,服务器系统。下面更详细地描述了这些特征和附加特征。

图1是对命令输入进行处理以便进行移动装置动作的远程调用的环境100的框图。诸如互联网等计算机网络102或者其组合在电子装置和系统之间提供数据通信。计算机网络102也可以通过一个或者多个网关被包括在一个或者多个无线网络103中,或者与该一个或者多个无线网络103进行数据通信。

用户装置104和106能够通过网络102请求和接收资源,与其它用户装置建立通信信道(例如,语音通信),并且还能够执行其它动作。示例用户装置104和106包括个人计算机、移动通信装置、和可以通过网络102发送和接收数据的其它装置。在图1的示例中,用户装置104是膝上型计算机,并且用户装置106是智能手机。下面参照图5描述示例智能手机。用户装置104和106可以借由与网络102和103的有线连接和无线连接通过网络102和103进行通信。

如参照图5所描述的,用户装置可以能够执行各种程序和能力的装置动作集合。这些动作可以随着时间而改变,因为用户可以添加和移除各种程序。对于每个动作,这些动作可能彼此不同。例如,电话功能可以包括响应于“call(呼叫)”或者“phone(打电话给)”特定联系人的命令而进行呼叫的动作,并且还可以包括响应于向特定联系人“text(发文本消息)”或者“message(发消息)”的命令而向特定联系人“text”的动作;日历应用可以包括:响应于“schedule(安排)”命令来“schedule”会议或者提醒的动作、响应于“accept(接受)”或者“(decline)谢绝”的命令来“accept”或者“decline”邀请的动作;地图服务可以包括响应于“map(地图)”定位的命令而进行“map”定位的动作;等等。

同样,用户装置104可以取决于能力和安装在用户装置上的应用来执行相似的动作集合。在某些实施方式中,装置104和106均利用语音识别系统,该语音识别系统接收语音输入,执行语言识别处理,并且分析由此识别到的单词和短语。然后对称为n-gram(其中,每个n-gram可以构成一个或者多个单词)的分析得到的单词和短语进行处理,以确定语音输入是否调用特定动作。然而,语音识别和语言处理系统不是必要的,因为装置也可以接收文本命令输入。

用户装置104和106通过用户账户彼此相关联,如虚线框108所示。例如,用户装置104和106的用户可以具有由提供多个服务的云服务提供者112托管的用户账户。这些服务可以包括web邮件、社交网络、消息传递、文档存储和编辑等。账户可以存储账户数据114,该账户数据114将特定用户装置链接至账户,从而使用户可以从各个用户装置安全地访问其信息。用户装置可以是永久链接的,诸如,在智能手机的情况下,或者可以是暂时链接的,诸如,在用户使用来登录账户以执行任务(诸如,在基于云的电子邮件服务中查收电子邮件)的膝上型计算机的情况下。

账户数据114也可以存储用户装置的规范数据,该规范数据指定用户装置的软件和硬件配置。例如,账户数据可以存储安装在用户装置上的应用的列表。具体地,当云服务提供者112还提供了购买应用并且将该应用安装在用户装置上的能力时,账户数据114可以存储已经购买了哪些应用并且将这些应用中哪些应用安装在了用户装置上。

命令处理系统120接收来自用户装置的命令输入并且对该命令输入进行处理,以确定响应于命令输入要采取哪些动作(若存在)。虽然在图1中将命令处理系统120示出为单独的实体,但是可以将命令处理系统120实施在云服务提供者112中,或者甚至是实施在用户装置中的一个中,诸如用户装置104。

在某些实施方式中,可以由用户装置执行的每个动作A1、A2…An具有对应的命令模型CM1、CM2…CMn。命令处理系统120利用命令模型CMx来确定响应于命令输入要调用哪些动作(若存在)。在某些实施方式中,命令模型可以是基于统计的,例如,分配给被确定为与特定命令语义相关的特定单词和短语的权重,或者是基于规则的,例如,描述了特定命令的句子结构的语法。命令模型数据122存储命令模型,该命令模型分别配置为基于动作的语义相关的单词和短语以及动作的语义不相关的单词和短语来生成命令输入的动作的动作分数。

可以使用各种语言处理模型和训练模型来生成命令模型数据122。在图1的示例中,分析器124分析从用户装置接收到的命令输入,并且,通过使用命令模型数据122,确定哪些动作(若存在)解析为命令输入。例如,假设针对命令输入模型使用了语法。针对发送文本的“TEXT(发文本消息)”动作的命令输入模型的示例集合可以是:

S→Text to<Recipient>that<Message>

S→Message<Recipient>text<Message>

S→Send<Recipient>text message<Message>

可以使用每种语法来分析命令输入。如果其中一种语法使用了命令输入,那么该命令输入解析为“TEXT”的动作。例如,对于命令输入[Text to Page that I will pick up groceries on the way home(向Page发文本消息:我会在回家的路上购买食品)],分析器124将利用语法S→Text to〈Recipient〉that〈Message〉来成功地分析命令输入。因为Page是用户的联系人数据库中的收件方,所以非终结符〈Recipient(收件方)〉使用文本[Page];非终结符〈Message(消息)〉使用文本[I will pick up groceries on the way home(我会在回家的路上购买食品)];并且剩余终结符“Text to”和“that”使用命令输入的剩余文本。

命令模型数据122存储多个不同动作的命令模型。命令模型122可以供应用开发商学习并且/或者可以由应用开发商指定。此外,每个命令模型122在解析为指定动作时也会标识动作的对应参数(若存在)。例如,参数可以由非终结符指定,分析器可以输出以下指令:TEXT:<RECIPIENT=PAGE><MESSAGE=I will pick up groceries on the way home>,该指令使具有文本“I will pick up groceries on the way home”的文本的消息发送至由联系人名称“Page”指定的收件方。

命令处理系统120也存储装置数据126,该装置数据126为账户指定用户装置和与账户相关联的装置的规范数据。规范数据指定用户装置配置来执行的用户装置动作集合。例如,在图1中,虚线框110指示装置的规范数据,该规范数据指定装置106配置来执行的n个动作A1…An。每个用户装置的规范数据可以指定每个装置的不同的动作集合,因为每个装置可以有不同的配置。此外,当用户装置106的配置改变时,命令处理系统120可以接收来自用户装置106的更新,并且对用户装置的规范数据进行更新以反映该改变。

如上所示,用户可以在诸如用户装置104等第一用户装置上输入命令,并且命令处理系统120可以例如通过分析命令输入来处理每个命令输入,以确定命令输入是否解析为第二用户装置配置来执行的用户装置动作。

图2是确定何时调用在远程装置上的动作的示例过程200的流程图。可以将过程200实施在命令处理系统120所运行的计算机装置中。在某些实施方式中,可以将命令处理系统120实施在第一用户装置104中,在其它实施方式中,命令处理系统120可以正在与第一用户装置104和第二用户装置106进行数据通信的服务器上运行。例如,云服务提供者112可以使命令处理系统120在云中的服务器上运行,该云通过网络102和103与装置104和106通信。

过程200确定第一用户装置具有相关联的第二用户装置(202)。例如,命令处理系统200访问装置数据126,以确定装置104和106与相同的用户账户相关联。每个装置的联系人信息存储在装置数据中。

过程200访问第二用户装置的规范数据(204)。例如,命令处理系统200访问装置106的规范数据110。

过程200接收第一用户装置的命令输入(206)。例如,用户可以对着麦克风说出命令或者在用户装置104上的输入栏中键入命令。如果是说出命令输入,那么该命令输入是可以通过使用语音转文本过程而转换为文本的项集合。举例来说,假设在第一用户装置104处接收到命令输入[Make a grocery list eggs,milk,cereal,bread,apples(写一份食品列表:鸡蛋、牛奶、谷物、面包、苹果)]。

过程200确定命令输入是否解析为第二用户装置动作(208)。如上所述,每个动作具有对应的命令模型集合。如果命令输入满足命令模型,例如,成功地分析为命令模型,那么确定该命令输入解析为命令模型所对应的动作。例如,用户装置106具有以特定的方式生成食品列表的安装应用“GROCERY LISTER(食品列表制作器)”,并且具有命令模型:

S-><Termsl>Grocery list<Grocery Items>

同样,假设用户装置还具有安装应用“COUPON COLLECTOR(优惠券收集器)”,该安装应用具有以下命令模型:

S<Termsl>Grocery<Terms2><Grocery Item>

在该示例中,命令输入会成功地分析为两个命令输入模型。分析器124会向命令输入解析器126提供成功分析的通知,该命令输入解析器126然后访问装置数据126以获得装置106的规范数据110。命令输入解析器126因此确定命令输入解析为两个用户装置动作—食品列表制作器应用的调用和优惠券收集器应用的调用。

如果过程200确定命令输入未解析为第二用户装置动作,那么过程200使第一命令输入在第一用户装置处被处理(210)。例如,如果命令处理系统120实施在用户装置104上,则命令处理系统120指示用户装置在用户装置104处处理该命令。用户装置104可以调用命令输入所解析的应用。例如,如果用户装置106不具有安装的食品列表制作器应用和优惠券收集器应用,并且这些应用安装在用户装置104上,那么可以在用户装置104处对应用中的一个或者两个进行实例化。

如果命令处理系统120实施为与用户装置104分离,那么命令处理系统120将数据发送至用户装置104,该数据使用户装置处理命令输入。

相反,如果过程200确定命令输入确实解析为第二用户装置动作,那么过程200使第一用户装置显示用户界面对话以接受或者拒绝在第二用户装置处调用动作(212)。再次,如果命令处理系统120实施在用户装置104上,那么用户装置会显示对话。如果命令处理系统120实施为与用户装置104分离,那么命令处理系统120将数据发送至用户装置104,该数据使用户装置显示对话。

图3A是在第一用户装置处的用户界面300的图示,在该第一用户装置中,响应于命令输入302呈现对话304和306。对于每个对话304和306,用户可以通过分别选择“是”按钮或者“否”按钮,响应于命令输入,接受或者拒绝在第二用户装置处调用用户装置动作。

因为命令输入被解析为针对两个不同应用的两个动作,所以在图3A中示出了两个对话。在某些实施方式中,即使命令输入解析为两个或者更多个装置支持的动作,也仅仅示出一个对话。所示的对话可以,例如,与最可能被执行的动作对应。可以通过命令输入分析为特定命令模型的程度、用户的选择历史、以及可以用于确定可能性的其它数据来确定该可能性。

在某些实施方式中,一旦用户已经确认第二用户装置的特定装置支持的动作,则可以在第一用户装置处显示针对该动作的选项。例如,图3B是在显示有动作特定选项的第一用户装置处的另一用户界面310的图示。响应于选择图3A的对话304的“是”选项,示出了对话320。对话320包括响应于命令输入302和动作特定选项324、326、328、330和332而生成的列表322。选项是针对第二用户装置的“GROCERY LISTER”应用动作的调用,并且与由该应用或者服务支持的选项对应。选择对应的动作特定选项进而可以生成附加动作选项或者输入,例如,附加菜单选项、可选择参数值的下拉列表等。

图4是用于响应于对话调用在远程装置处的命令的分布式过程400和450的流程图。过程400由命令处理系统130执行,并且过程450由第二用户装置106执行。

过程400分析命令输入(402),并且然后将命令输入解析为指定动作(404)。分析和解析与上述的分析和解析相同,并且作为响应,在第一用户装置104的用户界面上示出了对话。

过程400确定用户是否接受在第二用户装置处调用动作的选项(406)。例如,对于动作,命令处理系统130接收指示用户是选择了“是”命令还是“否”命令的数据。

如果用户选择“否”命令,那么过程400确定用户不接受在第二用户装置处调用动作的选项。过程400然后使命令输入在第一用户装置处被处理(408),如上所述。

相反,如果用户选择“是”命令,那么过程400确定用户确实接受在第二用户装置处调用动作的选项。过程400然后生成指定动作和参数的命令通信并且将该命令通信发送至第二用户装置(410)。例如,假设用户针对两个对话304和306都选择了“是”。命令输入解析器126可以为食品列表制作器应用和优惠券收集器应用中的每一个生成对应的命令。分析器124将待调用的应用的名称和参数传给命令输入解析器126。命令输入解析器126进而访问描述了每个应用的命令格式的数据并且生成命令数据。如果应用执行一种以上的功能,那么每个命令模型还可以指定应用要执行的特定功能。例如,假设每个应用的命令格式具有以下形式:

<APP NAME>:<FUNCTION>:<ARGUMENTS>

对于分析为命令输入的命令模型,食品列表制作器应用的功能可以是“LIST GEN(列表生成)”,该“LIST GEN”使应用生成在参数列表中列出的食品列表,并且优惠券收集器的功能可以是“COUPON REQUEST(优惠券请求)”,该“COUPON REQUEST”使应用请求与在参数列表中列出的食品相关的优惠券。因此,命令数据可以是:

[GROCERY LISTER:LIST GEN:eggs,milk,cereal,bread][COUPON COLLECTOR:COUPON REQUEST:eggs,milk,cereal,bread]

在第二用户装置处,过程450接收命令通信(452)。例如,用户装置106接收包括上述命令数据的消息。响应于用户选择“是”选项,可以立即发送命令通信,或者可替代地,可以使该命令通信排队并且根据推送计划将该命令通信推送给用户装置106。可以使用任何适当的消息格式和协议来向用户装置106提供命令数据。

过程450根据命令通信确定指定的动作和参数(454)。可以通过安装在用户装置106上的API 112来处理消息,该API 112处理每个命令以确定指定的是哪个应用或者服务、要通知哪个动作、以及哪些参数。

过程450通过将参数用作输入来调用指定的动作(456)。例如,用户装置106通过使用API 112来实例化指定的应用、指定的功能(如果有功能被指定的话),并且将指定的参数(如果有参数被指定或者要求的话)作为输入进行传递。

图5是示例移动计算装置的框图。在该图示中,将移动计算装置510描绘为手持式移动电话(例如,智能手机、或者应用电话),该手持式移动电话包括用于向移动计算装置510的用户呈现内容并且接收基于触摸的用户输入的触摸屏显示装置512。随着可以提供各种不同的输入组件(例如,键盘514、物理按钮、轨迹球、加速度计、陀螺仪和磁力计),也可以提供其它视觉、触觉和听觉输出组件(例如,LED灯、用于触觉输出的振动机构、或者用于提供音调输出、语音生成的输出、或者录音输出的扬声器)。

显示装置512形式的示例视觉输出机构可以采用具有电阻式或者电容式触摸能力的显示器的形式。显示装置可以用于显示视频、图形、图像和文本,并且用于协调用户触摸输入位置与显示的信息的位置,从而使装置510可以将在显示的项的位置处的用户接触与该项相关联。移动计算装置510也可以采用替代形式,包括作为膝上型计算机、平板或者板式计算机、个人数字助理、嵌入式系统(例如,汽车导航系统)、台式个人计算机、或者计算机化工作站。

用于接收用户输入的示例机构包括键盘514,该键盘514可以是全键盘或者传统小键盘,该传统小键盘包括数字‘0-9’、‘*’和‘#’的键。当用户物理接触或者按压键盘键时,键盘514接收输入。用户对轨迹球516的操纵或者与触控板的交互使用户能够向移动计算装置510提供移动方向和速率信息(例如,以操纵光标在显示装置512上的位置)。

移动计算装置510可以能够确定与触摸屏显示装置512的物理接触的位置(例如,使用手指或者触控笔接触的位置)。通过使用触摸屏512,可以产生各种“视觉”输入机制,其中,用户通过接触图形用户界面元素来与在触摸屏512上描绘的图形用户界面元素交互。“视觉”输入机制的示例是“软件键盘”,其中,在触摸屏上显示键盘,并且用户通过按压触摸屏512与每个键对应的区域来选择键。

移动计算装置510可以包括机械按钮或者触敏按钮518a-d。另外,移动计算装置可以包括用于调节由该一个或者多个扬声器520输出的音量的按钮、以及用于打开或者关闭移动计算装置的按钮。麦克风522允许移动计算装置510将可听见的声音转换为可以被数字编码并且存储在计算机可读存储器中、或者被传输至另一计算装置的电信号。移动计算装置510还可以包括数字罗盘、加速度计、接近传感器和环境光传感器。

操作系统可以在移动计算装置的硬件(例如,输入/输出机构和执行从计算机可读介质检索到的指令的处理器)和软件之间提供接口。操作系统可以提供平台,以便执行利于计算装置与用户之间的交互的应用程序。

移动计算装置510可以利用触摸屏512来呈现图形用户界面。图形用户界面是一个或者多个图形界面元素的集,并且可以是静态的(例如,显示器似乎在一段时间内保持不变),或者可以是动态的(例如,图形用户界面包括在没有用户输入的情况下形成动画的图形界面元素)。

图形界面元素可以是文本、线、形状、图像或者其组合。例如,图形界面元素可以是在桌面上显示的图标和与该图标相关联的文本。在某些示例中,图形界面元素是可利用用户输入来选择的。例如,用户可以通过按压触摸屏与图形界面元素的显示器对应的区域来选择图形界面元素。在某些示例中,用户可以操纵轨迹球将单个图形界面元素突显为具有焦点。用户对图形界面元素的选择可以通过移动计算装置来调用预定义的动作。在某些示例中,可选择的图形界面元素进一步地或者可替代地与键盘504上的按钮对应。用户对按钮的选择可以调用预定义的动作。

移动计算装置510可以包括其它应用、计算子系统和硬件。语音识别服务572可以接收通过移动计算装置的麦克风522接收到的语音通信数据,并且将该语音通信转换为对应的文本数据或者执行语音识别。可以将处理过的语音数据输入至存储在命令模型数据122中的命令模型,以确定用于生成语音数据的语音输入是否调用了上述特定应用的特定动作。下述应用、服务和单元中的一个或者多个可以具有由这种语音命令调用的对应动作。

呼叫处理单元可以接收来电呼叫的指示并且向用户提供接听该来电呼叫的能力。媒体播放器可以允许用户听音乐或者播放存储在移动计算装置510的本地存储器中的电影。移动装置510可以包括数码相机传感器、以及对应的图像和视频捕捉和编辑软件。互联网浏览器可以使用户能够通过键入与网页对应的地址或者选择指向网页的链接来查看来自网页的内容。

操作基站的网络的服务提供者可以将移动计算装置510连接至网络550,以实现在移动计算装置510与提供服务560的其它计算系统之间的通信。虽然可以通过不同的网络(例如,服务提供者的内部网络、公用交换电话网和互联网)来提供服务560,但是仍然将网络550图示出为单个网络。服务提供者可以操作服务器系统552,该服务器系统552在移动计算装置510和与服务560相关联的计算系统之间路由信息分组和语音数据。

网络550可以将移动计算装置510连接至公用交换电话网(PSTN)562,以在移动计算装置510与另一计算装置之间建立语音或者传真通信。例如,服务提供者服务器系统552可以从PSTN 562接收移动计算装置510的来电的指示。相反,移动计算装置510可以将通信发送至服务提供者服务器系统552,该服务提供者服务器系统552通过使用与可通过PSTN 562访问的装置相关联的电话号码来发起电话呼叫。

网络550可以将移动计算装置510与互联网语音协议(VoIP)服务564连接,该VoIP服务564通过IP网络路由语音通信,这与PSTN相反。例如,移动计算装置510的用户可以调用VoIP应用并且通过使用程序来发起呼叫。服务提供者服务器系统552可以将语音数据从呼叫转发至VoIP服务,这可以通过互联网将呼叫路由至对应的计算装置,有可能针对连接的最后一段使用PSTN。

应用商店566可以向移动计算装置510的用户提供浏览用户可以通过网络550下载并且安装在移动计算装置510上的远程存储的应用程序的列表。应用商店566可以充当由第三方应用开发商开发的应用库。安装在移动计算装置510上的应用程序可以能够通过网络550与为应用程序指定的服务器系统通信。例如,可以从应用商店566下载VoIP应用程序,从而使用户能够与VoIP服务564通信。

移动计算装置510可以通过网络550访问互联网568上的内容。例如,移动计算装置510的用户可以调用web浏览器应用,该web浏览器应用向可在指定的统一资源位置处访问的远程计算装置请求数据。在各个示例中,可通过互联网访问服务560中的一些。

移动计算装置可以与个人计算机570通信。例如,个人计算机570可以是移动计算装置510的用户的家用计算机。因此,用户可以能够流传送来自其个人计算机570的媒体。用户也可以查看其个人计算机570的文件结构,并且在计算机化装置之间传输选择的文档。

移动计算装置510可以与社交网络574通信。社交网络可以包括众多成员,该众多成员中的一些已经同意作为熟人相关。在移动计算装置510上的应用程序可以访问社交网络574以基于移动计算装置的用户的熟人来检索信息。例如,“通讯录”应用程序可以检索用户的熟人的电话号码。在各个示例中,可以基于从用户到在成员的社交网络图中的其它成员的社交网络距离和连接关系来将内容传递至移动计算装置510。例如,可以基于“接近”用户的成员(例如,是“朋友”或者“朋友的朋友”的成员)与广告和新闻文章内容的交互水平,来为用户选择这种内容。

移动计算装置510可以通过网络550访问联系人576的个人集合。每个联系人可以识别一个个体并且包括关于该个体的信息(例如,电话号码、电子邮件地址和生日)。因为该联系人集合被移动计算装置510远程托管,所以用户可以跨多个装置作为共同联系人集合访问和维护联系人576。

移动计算装置510可以访问基于云的应用程序578。云计算提供应用程序(例如,文字处理器或者电子邮件程序),这些应用程序被远离移动计算装置510而托管并且可以由装置510通过使用web浏览器或者专用程序来访问。

地图服务580可以向移动计算装置510提供街道地图、路线计划信息和卫星图像。地图服务580也可以接收查询并且返回位置特定结果。例如,移动计算装置510可以向地图服务580发送移动计算装置的估计位置和用户输入针对“披萨店”的查询。地图服务580可以返回街道地图,该街道地图上叠加有识别出附近“披萨店”的地理位置的“标记”。

逐向导航服务582可以向移动计算装置510提供至用户提供的目的地的逐向导航路线指引。例如,逐向导航服务582可以将装置的估计位置的街道景观图、连同用于提供语音命令并且叠加将装置510的用户指向目的地的箭头的数据流传输到装置510。

可以通过移动计算装置510来请求各种形式的流媒体584。例如,计算装置510可以请求预录视频文件、电视直播节目、或者电台直播节目的流。

微博服务586可以从移动计算装置510接收用户输入的帖子,该用户输入的帖子未标识出帖子的收件方。微博服务586可以将该帖子传播至微博服务586中同意订阅该用户的其它成员。

搜索引擎588可以接收来自移动计算装置510的用户输入的文本或者口头查询,确定响应于该查询的互联网可访问的文档集合,并且向装置510提供信息以显示响应文档的搜索结果的列表。在接收到口头查询的示例中,语音识别服务572可以将接收到的音频转换为将发送至搜索引擎的文本查询。

这些和其它服务可以实施在服务器系统590中。服务器系统可以是提供服务或者服务集合的硬件和软件的组合。例如,物理上分离的并且网络化的计算机化装置集合可以作为逻辑服务器系统单元一起运行,以处理向成百上千的计算装置提供服务所必需的操作。本文也将服务器系统称为计算系统。

在各种实施方式中,如果之前的操作不成功(例如,如果未执行确定),则不执行“响应于”或者“由于另一操作(例如,确定或者识别)”而执行的操作。“自动地”执行的操作是在没有用户干预(例如,干预的用户输入)的情况下执行的操作。在本文中利用条件语言描述的特征可以描述可选的实施方式。在某些示例中,从第一装置“传输”至第二装置包括第一装置将数据放在网络中以供第二装置接收,但是可以不包括第二装置接收数据。相反,从第一装置“接收”可以包括从网络接收数据,但是可以不包括第一装置传输数据。

通过计算系统“确定”可以包括计算系统请求另一装置执行该确定并且将结果提供给计算系统。此外,通过计算系统“显示”或者“呈现”可以包括计算系统发送用于使另一装置显示或者呈现所参考的信息的数据。

本说明书中描述的主题和操作的实施例可以实施在数字电子电路系统中,或者实施在计算机软件、固件或者硬件(包括在本说明书中所公开的结构及其结构等效物)、或者它们中的一个或者多个的组合中。可以将本说明书中描述的主题的实施例实施为一个或者多个计算机程序,即,编码在计算机存储介质上供由数据处理设备执行或者控制该数据处理设备的操作的计算机程序指令的一个或者多个模块。可替代地或者另外,程序指令可以编码在人工生成的传播信号,例如,机器生成的电气、光学或者电磁信号,生成该信号是为了对用于传输至合适的接收器设备供数据处理设备执行的信息进行编码。计算机存储介质可以是计算机可读存储装置、计算机可读存储基板、随机或者串行存取存储器阵列或者装置、或者它们中的一个或者多个的组合,或者包括在其中。此外,当计算机存储介质不是传播信号时,计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独的物理部件或者介质(例如,多个CD、盘、或者其它存储装置),或者包括在其中。

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

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

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

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

适合执行计算机程序的处理器包括:例如,通用微处理器和专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。通常,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于根据指令来进行动作的处理器、和用于存储指令和数据的一个或者多个存储器装置。通常,计算机也将包括用于存储数据的一个或者多个海量存储装置,例如,磁盘、磁光盘、或者光盘,或者可以操作地耦合以接收来自该海量存储装置的数据或者将数据传输到该海量存储装置或者两者。然而,计算机无需具有这种装置。此外,计算机可以嵌入在另一装置中,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏机、全球定位系统(GPS)接收器、或者便携式存储装置(例如,通用串行总线(USB)闪存驱动),仅举几例。适合于存储计算机程序指令和数据的装置包括:所有形式的非易失性存储器、介质和存储器装置,包括,例如,半导体存储装置,例如,EPROM、EEPROM和闪存装置;磁盘,例如,内部硬盘或者可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。

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

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

计算系统可以包括用户和服务器。用户和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有用户-服务器关系的计算机程序来产生用户和服务器的关系。在一些实施例中,服务器将数据(例如,HTML页面)传输至用户装置(例如,为了向与用户装置交互的用户显示数据并且接收来自该用户的用户输入)。可以从在服务器处的用户装置接收在用户装置处生成的数据(例如,用户交互的结果)。

尽管本说明书包括许多具体实施方式细节,但是该细节不应被当作对可能被要求保护的内容的限制,而是可能作为针对具体实施例的特征的描述。在本说明书中在单独实施例的背景下描述的某些特征也可以组合地实施在单个实施例中。相反,在单个实施例的背景下描述的各种特征也可以单独地或者按照任何合适的子组合实施在多个实施例中。此外,虽然上面可能将特征描述为以某些组合来起作用并且最初甚至同样地对该特征要求保护,但是在一些情况下可以从组合中删除来自所要求保护的组合的一个或者多个特征,并且所要求保护的组合可以指向子组合或者子组合的变化。

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

由此,已经描述了本主题的具体实施例。其它实施例在所附权利要求书的范围内。在某些情况下,在权利要求书中叙述的动作可以按照不同的顺序来进行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定需要所示的特定顺序或者相继顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

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