基于资源的服务提供者选择和自动完成的制作方法

文档序号:17123911发布日期:2019-03-16 00:07阅读:161来源:国知局
基于资源的服务提供者选择和自动完成的制作方法

线路完成和文本输入预测技术已经成为计算机工业的一部分已有一段时间。在一些现有系统中,计算设备可以响应于初始文本条目来识别候选词并向用户显示候选词。当用户将字符输入到文本输入字段中时,系统可以基于输入的字符来识别候选词,并向用户显示候选词或候选词列表以供选择。响应于接收到对候选词的选择,计算设备可以用所选词填充文本输入字段。

尽管一些现有系统对于某些应用是有用的,但是当前技术具有许多限制。一些技术仅基于先前键入的单词组合来选择候选词。例如,如果用户先前已将家庭地址输入到设备中,则设备稍后可在用户输入街道地址时将街道名称呈现为候选词。这些技术在用户体验方面有很多不足之处,因为候选词通常不相关,而在动态环境中则更不相关。

关于这些和其他考虑因素,提出了本文所公开的内容。



技术实现要素:

这里描述的技术为图形用户界面的数据输入字段提供基于资源的自动完成。在一些配置中,本文公开的技术利用来自多个资源的输入数据和上下文数据来识别和显示文本输入候选,以帮助用户填充一个或多个数据输入字段。例如,输入数据可以包括对服务类别或主题的指示,例如,汽车修理,草坪护理,法律服务等。输入数据还可以定义日历事件的各方面,例如日期和时间。上下文数据可以与服务提供者和客户相关,包括但不限于定义两个或更多个实体之间的先前工作历史的数据,通勤预测,安排冲突,支付历史,信用历史,一方或多方的可用性,项目的位置,到预约的旅行时间,优选的营业时间,一个或多个实体的可用性,性能度量,客户偏好,提供者偏好,工作流定义及其组合。上下文数据还可以包括交通数据、天气数据以及可以影响服务提供者或消费者的时间表和/或通勤的其他数据。本文公开的技术还可以利用量化客户价值或提供者价值的数据。

在一些配置中,输入数据、上下文数据和其他数据可用于生成排序的项目列表,其可包括排序的提供者列表或排序的客户列表。选择列表的项目使得取回与所选项目相关的元数据。可以包括公司名称、人名、联系信息、位置数据和其他数据的元数据可以显示为图形用户界面的一个或多个数据输入字段的文本输入候选。本文公开的技术帮助用户与计算设备进行交互,除了其他益处之外,其还节省了计算资源并减少了无意的用户条目的数量。此外,本文公开的技术使客户能够识别帮助他们实现一个或多个目标的一个或多个提供者。此外,本文公开的技术使提供者能够识别帮助他们实现一个或多个目标的一个或多个客户。

在一些配置中,本文公开的技术涉及生成定义提供者和客户的资格水平的数据。例如,如果客户希望安排与特定服务类别有关的预约,则分析上下文数据以确定多个提供者的资格水平。可以基于提供者的专业化、时间表、工作负载、先前工作历史、通勤到特定位置的能力和/或这些数据与其他上下文数据的组合来调整个体提供者的资格水平。类似地,可以基于来自多个资源的上下文数据来确定一个或多个客户的资格水平。资格水平可用于影响提供者或客户在排序的项目列表上的排序。

在一些配置中,客户偏好和提供者偏好可用于影响提供者或客户在排序的项目列表上的排序。例如,客户偏好可以定义一个或多个优先级,其可以包括成本节省、工作质量等。可以利用其他上下文数据来分析偏好,诸如定义性能历史数据和计费数据的工作历史数据。可以至少部分地基于考虑到客户的偏好而对与提供者相关联的上下文数据的分析来调整提供者的排序。此外,这些技术可以使用这些数据来采取其他行动,例如,自动选择提供者进行终止,自动选择提供者进行促销等。

在另一个示例中,提供者偏好可以定义一个或多个优先级,其可以包括获得大量客户、高知名度客户和/或具有阈值信用评分的客户的期望。优先级的组合使服务提供者能够识别具有满足或超过阈值的“终身价值”的客户。可以考虑到提供者的偏好而至少部分地基于对与客户相关联的上下文数据的分析来调整客户的排序。此外,这些技术可以使用这些数据来采取其他行动,例如,自动选择客户进行终止,自动选择客户进行特殊定价,等等。

应当理解,上述主题还可以实现为计算机控制的装置、计算机进程、计算系统或者诸如计算机可读介质之类的制品。通过阅读以下具体实施方式和对相关附图的回顾,这些和各种其他特征将是显而易见的。提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。

本发明内容不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在将本发明内容用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提到的任何或所有缺点的实现方式。

附图说明

参考附图描述了具体实施方式。在附图中,参考标号的最左边的数字标识首次出现参考标号的图。不同图中的相同参考数字表示相似或相同的项目。

图1是示出用于使能针对数据输入字段的基于资源的自动完成的说明性系统的框图。

图2a-2e包括示出说明性图形用户界面的屏幕图,该图形用户界面配置有用于接收输入数据的图形元素以及被配置为用元数据填充的数据输入字段。

图3a-3c包括示出被配置为接收日历事件的数据的说明性图形用户界面的屏幕图,该用户界面包括被配置为要用元数据填充的数据输入字段。

图4是示出了例程的流程图,该例程示出了本文公开的用于使能针对数据输入字段的基于资源的自动完成的机制的各方面。

图5是示出用于计算系统的说明性计算机硬件和软件体系结构的计算机体系结构图,该计算系统能够实现本文给出的技术和方法的各方面。

图6是示出能够实现本文呈现的技术和方法的各方面的分布式计算环境的图。

图7是示出能够实现本文给出的技术和方法的各方面的计算设备的计算设备体系结构的计算机体系结构图。

具体实施方式

以下具体实施方式描述了使能针对数据输入字段的基于资源的自动完成的技术。在一些配置中,本文公开的技术利用来自多个资源的输入数据和上下文数据来识别和显示文本输入候选,以帮助用户填充一个或多个数据输入字段。例如,输入数据可以包括对服务类别或主题的指示,例如,汽车修理、草坪护理、法律服务等。输入数据还可以定义日历事件的各方面,例如日期和时间。上下文数据可以与服务提供者和客户相关,包括但不限于定义两个或更多个实体之间的先前工作历史的数据,通勤预测,安排冲突,支付历史,信用历史,一方或多方的可用性,项目的位置,到预约的旅行时间,优选的营业时间,一个或多个实体的可用性,性能度量,客户偏好,提供者偏好,工作流定义及其组合。上下文数据还可以包括交通数据、天气数据和可以影响服务提供者或消费者的时间表和/或通勤的其他数据。本文公开的技术还可以利用量化客户价值或提供者价值的数据。

在一些配置中,输入数据、上下文数据和其他数据可用于生成排序的项目列表,其可包括排序的提供者列表或排序的客户列表。选择列表的项目使得取回与所选项目相关的元数据。可以包括公司名称、联系信息、位置数据和其他数据的元数据可以显示为图形用户界面的一个或多个数据输入字段的文本条目候选。

通过使用本文描述的技术,可以利用来自多个资源的上下文数据来实现针对用户界面的数据输入字段的基于资源的自动完成。这些技术可以通过自动建议与两方或更多方之间的关系在上下文中相关的单词或其他数据来改善用户与计算设备的交互。配置可以有益于帮助用户协调项目的各方面,例如日历事件,特别是当用户具有大量的事件要安排时。在由本文描述的技术提供的许多益处中,可以改进用户与设备的交互,这可以减少无意输入的数量,减少处理资源的消耗,并减轻网络资源的使用。除了本文提到的那些之外的其他技术效果也可以从本文公开的技术的实现方式中实现。

应当意识到,上述主题可以实现为计算机控制的装置、计算机进程、计算系统或者诸如计算机可读存储介质之类的制品。通过阅读以下具体实施方式和对相关附图的回顾,这些和各种其他特征将是显而易见的。此外,所要求保护的主题不限于解决在本公开的任何部分中提到的任何或所有缺点的实施方式。

如将在本文中更详细地描述,可以意识到,本文描述的技术和方法的实现可以包括使用固态电路、数字逻辑电路、计算机组件和/或在一个或多个设备上执行的软件。这里描述的信号可以包括模拟信号和/或数字信号,用于传送改变的状态、移动和/或与运动检测相关的任何数据。由计算设备的用户捕获的手势可以使用任何类型的传感器或输入设备。

以下具体实施方式涉及用于提供电子邮件消息的递送优化的技术。虽然本文描述的主题在与计算机系统上的操作系统和应用程序的执行一起执行的程序模块的一般上下文中呈现,但是本领域技术人员将认识到,其他实现方式可以与其他类型的程序模块相结合地执行。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将会理解,本文描述的主题可以用包括手持设备、多处理器系统、基于微处理器或可编程消费电子设备、小型计算机、大型计算机等的其他计算机系统配置来实施。

在以下具体实施方式中,参考形成其一部分的附图,并且其中通过图示的方式示出了具体的配置或示例。现在参考附图,其中相同的数字代表几个附图中的相同元件,用于对日历事件提供图形用户界面的数据输入字段的基于资源的自动完成的计算系统、计算机可读存储介质和计算机实现的方法的各方面。如将在下面参考图5-7更详细地描述的,存在可以体现本文描述的功能和技术的许多应用和服务。

图1是示出本文公开的用于针对日历事件提供数据输入字段的基于资源的自动完成的一个示例环境100(本文中也称为“系统100”)的各方面的框图。在一个说明性示例中,示例环境100可以包括一个或多个服务器120、一个或多个网络150、一个或多个客户设备101a-101b(统称为“客户设备101”)、一个或多个提供者设备104a-104d(统称为“提供者设备104”)和一个或多个资源106a-106e(统称为“资源106”)。客户设备101可用于与一个或多个客户103a-103b(统称为“客户103”)进行交互,并且提供者设备104可用于与一个或多个服务提供者105a-105d(统称为“服务提供者105”)进行交互。提供该示例是为了说明的目的,而不应解释为限制。可以意识到,示例环境100可以包括任意数量的设备、客户、提供者和/或任何数量的服务器120。

为了说明的目的,服务提供者105可以是能够为客户103提供服务或产品的公司、个人或任何类型的实体,客户103也可以是公司、个人或其他实体。出于说明性目的,服务提供者105和客户103可以在本文中被一般地和单独地称为“用户”。通常,本文公开的技术使用户能够利用来自多个资源106的上下文数据来识别可用于完成图形用户界面的一个或多个数据输入字段的相关元数据140。另外,本文公开的技术使客户103能够识别帮助他们实现一个或多个目标的一个或多个提供者105。此外,本文公开的技术使提供者105能够识别帮助他们实现一个或多个目标的一个或多个客户103。

客户设备101、提供者设备104、服务器120和/或配置有本文公开的特征的任何其他计算机可以通过一个或多个局域网和/或广域网(例如网络150)互连。此外,计算设备可以使用任何技术进行通信,例如蓝牙、wifi、wifidirect、nfc或任何其他合适的技术,其可以包括基于光的、有线的或无线的技术。应当意识到,可以使用比本文所述更多类型的连接。

客户设备101或提供者设备104(统称为“计算设备”)可以作为独立设备操作,或者这样的设备可以与其他计算机(例如一个或多个服务器120)一起操作。个人计算设备可以是个人计算机、移动电话、平板电脑、可穿戴计算机的形式,包括头戴式显示器(hmd)或手表,或具有用于与一个或多个用户和/或远程计算机交互的组件的任何其他计算设备。在一个说明性示例中,客户设备101和提供者设备104可以包括本地存储器180,在本文中也称为“计算机可读存储介质”,其被配置为存储数据,诸如客户端模块102和这里描述的其他上下文数据。

服务器120可以是个人计算机、服务器群、大规模系统或具有用于在一个或多个计算设备之间处理,协调,收集,存储和/或传送数据的组件的任何其他计算系统的形式。在一个说明性示例中,服务器120可以包括本地存储器180,在本文中也称为“计算机可读存储介质”,其被配置为存储数据,诸如服务器模块121和本文描述的其他数据。服务器120还可以包括组件和服务,例如应用服务并且如图6所示,用于提供,接收和处理上下文数据并执行本文描述的技术的一个或多个方面。如本文将更具体实施方式的,任何合适的模块可以结合其他模块或设备操作以实现本文公开的技术的各方面。

系统100可以包括多个资源,诸如交通数据资源106a、地图数据资源106b、搜索引擎资源106c、专业数据资源106d和天气数据资源106e(在此统称为“资源106”)。资源106可以是服务器120的一部分或者与服务器120分离,并且资源106可以提供上下文数据,包括交通数据124、位置数据125、专业数据126、地图数据127、工作流数据128、偏好数据129、支付数据130、安排数据131、工作负载数据132、工作历史数据133、状态数据134、技能组数据135、天气数据136和本文描述的其他数据。如下面将更具体实施方式的,可以利用上下文数据来识别与客户103和提供者105相关的元数据140。元数据140可以包括但不限于人名、公司名称、联系信息、位置数据以及与提供者105或客户103相关的任何其他数据。在一些配置中,元数据140可以包括任何适合于填充用户界面的一个或多个数据输入字段的格式。

提供这些示例资源106和上下文数据是出于说明性目的,而不应被解释为限制。可以意识到,这里公开的技术可以使用图1中所示的更多或更少的资源106。还可以意识到,图1中所示的一些资源可以从诸如社交网络、电子商务系统、政府系统和其他类似的来源的其他资源获得任何类型的上下文信息。例如,来自电子商务系统的销售数据可用于确定客户或提供者的绩效指示符。

安排数据131可以定义针对客户103和提供者105的预约。安排数据131可以定义开始时间和结束时间。如果预约与地理位置、全球坐标、地址、房间号和标识位置的其他信息相关联,则安排数据131还可以包括位置数据125。安排数据131可以定义单个预约或一系列预约。另外,安排数据131可以包括通信信息,诸如电话号码、im地址、url或用于促进语音或视频会议的其他信息。安排数据131还可以包括预约的文本描述和指示主题、服务类别、客户103和/或提供者105的其他数据。安排数据131可以存储在服务器120、客户设备101、提供者设备104或任何合适的计算设备上,其可以包括基于web的服务。

地图数据127可以定义地理区域内的道路和其他类型的行进路径。地图数据127还可以包括地形数据和可以影响用户从一个位置到另一个位置的通勤的其他数据。地图数据127还可以包括定义建筑物、住宅和其他地标的数据。地图数据127还可以包括图像数据,该图像数据可以包括地理区域内的道路和路径的卫星图像以及建筑物、住宅和其他地标的图像。地图数据127可以来自多个资源,包括基于web的服务、政府服务或其他资源。

交通数据124可以包括关于地理区域内的车辆交通的实时更新。交通数据124还可以包括可用于预测两个或更多个位置之间的旅行时间的历史旅行数据。交通数据124可以是任何合适的格式,其用于定义考虑旅行时间,旅行时的天气,旅行时的交通以及可以影响预计旅行时间的其他因素的两个或更多个位置之间的预计旅行时间。交通数据124可以来自多个资源,包括基于web的服务、政府服务或其他资源。

天气数据136可包括指示天气状况的当前、历史和预测数据。天气数据136可包括关于风、降水、温度和可以影响从一个位置到另一个位置的通勤的其他状况的数据。天气数据136可以是任何合适的格式,以便使得能够预计两个或更多个位置之间的旅行时间。天气数据136可以来自多个资源,包括基于web的服务、政府服务或其他资源。

专业数据126可以包括与专业化、学科、主题、一个或多个行业或感兴趣的领域有关的信息。例如,专业数据126可以包括与医学主题相关的细节,例如儿科、牙科等。在其他示例中,专业数据126可以涉及疾病、治疗、病症和其他类似主题。专业数据126可以从许多不同的资源获得,包括基于web的资源,例如由webmd、美国医学协会和疾病控制中心提供的站点。提供这些示例是出于说明性目的而不应被解释为限制,因为专业数据126可以与任何感兴趣的主题或领域相关。

工作流数据128可以定义多步骤过程和在过程的每个步骤内的属性定义。工作流数据128可以从包括基于web的资源的许多不同资源获得。另外,工作流数据128可以从诸如专业数据126的其他数据导出。例如,可以分析与儿科相关的专业数据126以确定涉及许多步骤的过程,其可以包括免疫注射、后续检查以及在特定时间推荐的其他里程碑和任务。

工作负载数据132可以包括为提供者安排的多个服务、项目或预约的列表。例如,工作负载数据132可以列出当前为公司安排的多个项目。工作负载数据132还可以基于安排数据131,例如为医生安排的多个预约。工作负载数据131还可以定义一个或多个阈值。这些数据可用于确定公司或个人是否处于,低于或高于给定容量。在一些配置中,工作负载数据132定义指示个体提供者相对于预定工作负载容量的能力的值。

技能组数据135标识和量化特定公司或个人的一系列技能和/或能力。技能组数据135可以包括标识行业、行业内的专业化以及关于过去已经执行的这些特定项目的细节的数据层次结构。例如,技能组数据135可以将公司标识为能够执行特定类型的改造的建筑公司。技能组数据135还可以提供关于特定改造项目和与那些项目相关的专用特征的细节。技能组数据135可以应用于与任何行业相关的任何公司或个人。

工作历史数据133可以包括与提供者105或客户103相关的绩效指示符。例如,工作历史数据133可以指示由提供者105执行的一个或多个项目的质量。工作历史数据133可以包括一系列不同的绩效指示符,这些指示符可以与及时性、生产力、准确性、价格、其他指示符及其组合有关。在其他示例中,工作历史数据133可以指示与客户103相关联的绩效指示符。在这样的示例中,客户103可以与一系列不同的绩效指示符相关联,这些绩效指示符可以与信用分数或与该公司、个人或一组个人的行为相关联的任何其他分数相关。

支付数据130可以包括在两方或更多方之间进行的支付记录。支付数据130还可以包括指示进行支付的及时性的数据。支付数据130可以包括信用分数或指示及时支付的可靠性和/或能力的任何其他数据。

状态数据134可以定义一方或多方的可用性。例如,状态数据134可以指示一方是否不可用,可用或在特定日期之前不可用。状态数据134还可以定义可用性级别。提供这些实施例是为了说明的目的,不应解释为限制。可以意识到,状态数据134包括指示公司、个人或一组个人的可用性的数据形式。

偏好数据129可以包括客户定义的偏好或提供者定义的偏好。在一些配置中,偏好数据129可以包括指示优先级、偏好和/或目标的多个加权参数。例如,提供者105可以指示他们有兴趣识别关于预约的及时的客户。在其他示例中,提供者105可以指示他们对具有良好信用的客户或可以具有特定支付历史的客户感兴趣。在一些配置中,提供者定义的偏好可以包括参数和/或优先级的组合,使得系统100能够向提供者标识,选择和排序具有长期价值或短期价值的客户。在一个说明性示例中,提供者定义的偏好可以标识关于客户的多个性能度量,并且可以对每个性能度量进行加权以使提供者105能够标识具有“高终生价值”的客户。可以为希望获得可以在长期目标方面使他们的公司受益的客户的提供者配置这样的偏好。偏好数据129可以包括提供者定义的偏好,使得系统100能够标识,选择和排序大容量客户、高知名度客户以及适合一个或多个商业模型的其他类型的客户或用户。除了标识优选客户之外,本文公开的技术还可以使提供者能够“解雇”,例如终止不合意的客户。

同时,偏好数据129可以帮助客户标识和/或终止提供者。在一些配置中,客户定义的偏好可以指示他们对识别具有特定质量评级的提供者105感兴趣。偏好数据129还可以包括指示参数、目标和/或优先级的组合的其他数据。例如,偏好数据129可以包括客户定义的偏好,使得系统100能够标识,选择和排序满足大批量提供者、高知名度提供者和客户需求的其他类型的提供者。

偏好数据129还可以定义指示特定项目、工作、预约或事件的“可中断性”级别的值。如将在本文提供的示例中描述的,客户103或提供者105可以指示特定日历事件是否可以被其他日历事件提议中断。这些特征使得本文公开的技术能够解决日历事件之间的冲突并且如果发生冲突则识别替代计划。

可以意识到,日历事件的可中断性、优先级或其他偏好的级别可以来自多个源。例如,当创建日历事件时,可以传送优先级或可中断性级别。在一些配置中,日历事件的优先级可以基于日历事件的发送者指示的优先级。在这样的示例中,输入输入数据的用户可以指示优先级或可中断性级别。另外,日历事件的优先级可以基于由日历事件的接收者建立的优先级。在这样的示例中,接收者可以接受预约的邀请并提供指示优先级和/或可中断性级别的输入数据。优先级和/或可中断性级别也可以是来自日历事件的发送者和接收者的输入的组合。

如上所述,本文公开的技术利用来自多个不同资源的上下文信息来提供用于填充图形用户界面的数据输入字段的文本输入候选。在一些配置中,方法包括获得与一个或多个提供者105相关联的元数据140。与提供者105相关的元数据140可以包括公司名称、联系信息、位置数据和其他相关数据。该方法还包括获得与一个或多个提供者相关联的上下文数据和/或与一个或多个消费者相关联的上下文数据。例如,上下文数据可以定义与提供者相关联的工作历史。与提供者相关联的工作历史可以指示关于一个或多个客户的表现数据。

当客户103(例如客户)希望安排预约或完成表格时,客户可以通过图形用户界面提供一些初始输入数据。图形用户界面可以包括数据输入字段、下拉菜单和使用户能够提供输入数据的其他图形元素。客户提供的信息可以通过语音命令、手势、基于文本的消息和其他通信手段输入。在一个说明性示例中,客户可以提供指示项目类型的输入数据,其可以包括诸如草坪护理、法律服务、汽车修理等专业化的指示。客户还可以提供指示预约的期望时间、活动或一系列活动的输入数据。客户还可以提供指示预约的期望位置的输入数据。本文公开的技术还可以分析客户和/或一个或多个提供者的偏好数据129以确定目标、目的和/或其他偏好。

本文所公开的技术可以分析输入数据和上下文数据以识别一个或多个提供者105。在一些配置中,可以基于对输入数据和上下文信息(包括偏好数据)的分析来对提供者105进行排序。在一个示例中,可以分析与一个或多个提供者105和客户103相关联的安排数据131以确定是否存在安排冲突。特定提供者105的排序也可能受到安排冲突的严重性的影响。例如,如果第一提供者具有与输入数据定义的预约完全重叠的安排冲突,则第一提供者的排序可能低于具有与由该输入数据定义的预约不完全重叠的安排冲突的另一提供者。

本文公开的技术可以使得生成指示冲突严重性的数据。这种量化可以基于许多因素,包括两个或更多个实体的安排数据、两个或更多个预约之间的通勤概率以及可以用于确定会议是不可能的或可能的其他因素。指示冲突严重性的数据还可以基于指示安排冲突是不可调和或可调和的因素。

另外,可以分析位置数据125以确定提供者105和/或客户103是否具有关于通勤到期望位置的阈值概率。通过使用地图数据、天气数据、交通数据和其他数据可以生成通勤概率。特定提供者105的排序可能受到通勤概率的影响。例如,具有成功通勤到期望位置的高概率的第一提供者可以被排序高于具有成功通勤到期望位置的低概率的第二提供者。

还可以分析工作历史数据133以确定特定提供者105的性能水平。例如,一些提供者可以具有关于过去项目的高质量评级。这些提供者可能比具有低质量评级的提供者具有更高的排序。

另外,可以分析技能组数据135以确定特定提供者是否适合于该预约。可以基于对这些数据的分析来选择候选提供者和/或对候选提供者进行排序以获得列表。例如,如果输入数据表明对医疗服务感兴趣,则具有医疗领域中的技能组的提供者可以比具有汽车领域中的技能组的提供者排序更高。在一些配置中,可以基于一个或多个阈值来选择提供者以获得列表。偏好数据还可以定义可能影响列表上的特定提供者的排序的一个或多个度量和/或阈值。

可以在图形用户界面上显示候选提供者列表。用户可以选择至少一个候选提供者,或者由计算设备基于可以在偏好数据129中定义的标准或目标自动选择至少一个候选提供者。响应于对至少一个提供者的选择,与所选提供者相关联的元数据可以在图形用户界面的数据输入字段中填充和显示。提供这些示例是出于说明性目的而不应被解释为限制性的,可以意识到,可以获得其他类型的输入数据和上下文数据用于如本文所述的分析和处理。以下示例说明了如何在其他方案中使用上下文数据、输入数据和其他数据,以便为数据输入字段启用基于资源的自动完成。

现在转到图2a-2e,示例图形用户界面(ui)被配置为显示和接收与本文公开的技术有关的数据。可以向希望完成具有数据输入字段的表单的用户显示示例ui。所呈现的屏幕图仅用于说明目的,而不是限制性的。尽管以下示例包括项目相关或日历相关界面,但是可以理解,本文公开的技术可以应用于具有数据输入字段的任何用户界面。还可以理解,这里公开的示例可以应用于任何类型的用户,例如客户103或提供者105。

图2a是示出显示与用于为数据输入字段启用基于资源的自动完成的技术有关的数据的说明性图形ui200的屏幕图。ui200可以由客户端模块102生成,如图1所示,并且呈现在计算设备上,例如客户设备101或提供者设备104。

如图2a中所示,ui200包括用于接收和显示数据的多个图形元素的显示。在该示例中,ui200包括用于接收指示专业化的输入数据的“项目类型”ui元素205a,用于接收指定提供者105的名称的数据的“提供者名称”ui元素205b,用于接收指定与提供者名称ui元素205b中列出的提供者相关联的电话号码的数据的“提供者编号”ui元素205c。

如图2b所示,“项目类型”ui元素205a是具有多个项目的下拉菜单。在该示例中,用户可以通过选择下拉菜单210中的至少一个项来提供输入数据。为了说明的目的,下拉菜单210包括:“草坪服务”,“沙龙服务”,“汽车服务”和“维修服务”。提供该实施例是为了说明的目的,不应解释为限制。可以理解,可以列出其他类别,并且本文公开的技术可以利用任何其他类型的图形元素来接收输入数据,该输入数据可以包括文本输入字段或被配置为接收输入数据或发起语音输入的接收的另一图形元素。

如图2c所示,为了说明的目的,选择“汽车服务”菜单项215。响应于接收到指示选择服务类别的输入数据,客户设备101的客户端模块102可以将输入数据传送到服务器120以进行处理。基于输入数据,服务器120和/或客户设备101可以分析提供者的数据库。数据库可以包括与具有一个或多个类别中的特化的提供者相关的数据。可以在提供者列表中选择和/或排序具有与输入数据中指示的所选服务类别匹配的特化的提供者。

各个提供者的选择和/或排序可以基于许多因素。例如,每个提供者的排序可以基于上下文数据、输入数据和/或偏好数据129。如上所述,在一些配置中,个体提供者的选择和/或排序可以基于资格水平。资格水平可以基于对上下文数据的分析,例如提供者的专业化、工作负载、先前工作历史、到特定位置的通勤能力和/或这些数据与其他上下文数据的组合。上下文数据还可以包括地图数据、交通数据、天气数据和可以用于确定个体提供者的资格水平的其他上下文数据。

在一些配置中,可以分析客户的偏好和/或提供者的偏好。例如,偏好数据可以定义一个或多个客户定义的目标,其可以包括成本节省目标、工作质量目标、节省时间目标等。可以利用其他上下文数据来分析偏好数据,例如定义提供者的性能历史数据和/或计费数据的工作历史数据。可以至少部分地基于对与提供者相关联的偏好数据和上下文数据的分析来调整个体提供者的排序。例如,如果客户定义的偏好将工作质量指示为优先级,则具有高质量评级的个体提供者的排序可以高于具有低质量评级的提供者。

另外,本文公开的技术可以分析位置数据125和其他数据以对一个或多个提供者进行排序。例如,与靠近客户家或办公室的位置相关联的提供者可以比位于更远距离的提供者排序更高。还可以分析交通数据124和其他数据以确定每个提供者的排序。例如,具有不受交通影响的通勤的提供者可能排序高于具有受交通影响的通勤的提供者。下面更详细地提供用于对列表上的提供者进行排序的这种配置和其他配置的附加细节和示例。

图2d示出了提供者的排序列表220的一个示例。在这个例子中列出了许多提供者:mike'scarcare,larry'sshop,greg'sauto和aaaauto。在该示例中,排序列表220显示在提供者名称ui元素205b下方。排序列表可以被配置为接收列表的一个提供者的选择。为了说明的目的,用户选择列表220上的第二提供者225,larry'sshop。

根据本文公开的技术,基于列表的至少一个提供者的选择,从一个或多个资源获得与所选提供者相关的元数据140。元数据140可以从多个位置获得,例如地址簿、目录或任何其他合适的资源,例如搜索引擎106c。在本文公开的其他示例中,可以访问地图数据资源106b以获得位置信息和用于填充ui200的数据输入字段的其他元数据140。

图2e示出了数据输入字段的说明性示例,例如,提供者编号ui元素205c,其填充有与所选提供者相关联的元数据140。在该说明性示例中,元数据140包括与所选提供者相关联的电话号码。提供该实施例是为了说明的目的,而不应解释为限制。可以理解,可以获得其他元数据140并用于填充一个或多个数据输入字段。

还可以理解,可以在没有用户选择菜单项的情况下填充一个或多个数据输入字段。例如,偏好数据可以指示能够自动选择列表上的项目的规则或其他标准。在一些配置中,此类规则或标准可使计算设备能够至少部分地基于上下文数据的资格水平和/或分析来自动选择一个或多个项目。

现在转到图3a-3c,另一示例ui被配置为显示和接收与本文公开的技术有关的数据。该示例ui可以显示给希望完成用于安排预约的数据输入字段的表格的用户。所呈现的屏幕图仅用于说明目的,而不是限制性的。可以理解,这里公开的技术可以应用于ui配置,用于显示和接收其他类型的输入数据。

如图3a中所示,ui300包括用于接收与预约相关的数据的多个图形元素的显示。在该示例中,ui300包括用于接收指示专业化或主题的输入数据的“项目类型”ui元素305a,用于接收优选预约日期的“日期”ui元素305b,用于接收优选预约时间的“时间”ui元素305c,用于接收指定至少一个提供者105的名称的数据的“提供者名称”ui元素305d,用于接收指定与提供者名称ui元素305d中列出的提供者相关联的电话号码的数据的“提供者编号”ui元素305e。

类似于先前的示例,用户可以通过利用“项目类型”ui元素305a选择项目类型来提供输入数据。在该示例中,为了说明的目的,选择“汽车服务”菜单项。另外,利用“日期”ui元素305b提供指示优选日期的输入数据,并且利用“时间”ui元素305c提供指示优选时间的输入数据。

响应于接收输入数据,客户设备101的客户端模块102可以处理输入数据和/或将输入数据传送到服务器120以进行处理。类似于上面的示例,可以基于由输入数据指示的所选服务类别从提供者的数据库中选择一个或多个提供者。

可以基于多个因素来选择和/或排序所选择的提供者。在一些配置中,可以基于对上下文数据的分析来选择和/或排序提供者,诸如定义两个或更多个实体之间的先前工作历史的数据,支付历史,信用历史,一方或多方的可用性,位置项目,预约的旅行时间,交通数据,技能组数据,首选营业时间,日程安排可用性,性能指示符,日程安排冲突,客户偏好,提供者偏好,工作流程定义,其他数据及其组合。

另外,可以鉴于一个或多个偏好来分析上下文数据,诸如消费者定义的偏好和/或提供者定义的偏好。这样的分析可以涉及用户的偏好数据,其可以包括与成本节省、时间节省和/或工作质量相关的目标。另外,分析可以涉及由一个或多个提供者定义的偏好数据,其可以包括在一个或多个片段中获得客户的目标。例如,提供者定义的偏好可以定义用于获得高容量客户端或高价值客户端的目标,例如具有对企业的一个或多个方面的终生价值的客户端。可以根据上下文数据和偏好数据之间的对齐来影响单个提供者的排序和/或选择。

在一些配置中,对安排数据131的分析可以影响一个或多个提供者的选择和/或排序。例如,这里公开的技术可以识别在输入数据中指示的期望日期和时间可用的一个或多个提供者。如果在输入数据中指示的期望日期和时间期间一个或多个提供者可用,则可以在提供者的排序列表中选择和/或排序这样的提供者。具有开放时间表的提供者可以比具有冲突的提供者排序更高。

此外,冲突的严重性可能影响特定提供者的排序和/或选择。如上所述,本文公开的技术可以使得生成指示冲突严重性的数据。这种量化可以基于许多因素,包括两个或更多个实体的安排数据、两个或更多个预约之间的通勤概率以及可以用于确定会议是不可能的或可能的其他因素。指示冲突严重性的数据还可以基于指示安排冲突是不可调和或可调和的因素。指示冲突严重性的数据还可以基于关于特定日历事件的优先级或可中断程度。例如,与严重冲突相关联的提供者可以排序低于与较不严重冲突相关联的提供者。

在一些配置中,对位置数据125、地图数据127、天气数据136和/或交通数据124的分析可以影响一个或多个提供者的选择和/或排序。例如,如果第一提供者相比第二提供者涉及较短的通勤,则第一提供者可以被排序高于第二提供者。这种分析还可以涉及地图数据、天气数据和其他数据,以确定通勤时间的预测、通勤的概率和/或通勤的难度。

在一些配置中,对位置数据125和安排数据131的分析可以影响一个或多个提供者的选择和/或排序。例如,如果特定提供者具有彼此相邻的两个日历事件,则可以确定事件之间成功通勤的概率。具有成功通勤的高概率的提供者可以被排序高于具有成功通勤的低概率的提供者。

这种分析可以适用于客户的通勤。例如,如果消费者具有彼此相邻的两个预约,则与预约之间的消费者通勤相关联的概率可以影响一个或多个提供者的选择和/或排序。例如,如果用户安排数据131指示消费者仅有20分钟通勤到特定提供者的位置,则可以分析地图数据127、交通数据124和其他上下文数据以确定在给定的时间范围内该通勤是否可能。可以为每个提供者的通勤生成概率,并且可以基于这样生成的数据对每个提供者进行排序。另外,如果概率不满足或超过一个或多个阈值,则可以从列表中过滤一个或多个提供者。

在又一个示例中,交通数据124可以指示在输入数据中指示的期望日期和时间的交通状况。在这样的配置中,一个或多个设备和/或服务器120可以基于交通模式生成预测以确定用户或提供者是否可以进行预约。例如,如果在高峰时段期间安排工作日约会,则如果与该提供者相关联的通勤受到这种交通状况的影响,则本文公开的技术可以改变特定提供者的排序。这样的分析可以受到天气数据136中定义的预测的影响。例如,如果天气数据136指示有利的预测,则受这种预测影响的提供者的排序可以增加。另外,如果天气数据136指示不利的预测,则受这种预测影响的提供者的排序可能降低。

在一些配置中,对工作历史数据133、技能组数据135、工作流数据128、工作负载数据132和/或其他上下文数据的分析可以影响一个或多个提供者的选择和/或排序。例如,具有高质量评级的特定提供者可以排序高于具有低质量评级的提供者。在另一示例中,可以分析技能组135以确定提供者的能力是否与特定约会相关联的目标一致。量化具有一个或多个目标的提供者的技能组之间的对齐的数据可以影响该提供者和/或其他提供者的排序。

在另一示例中,具有较重工作负载的提供者可以比具有较轻工作负载的提供者排序更高或更低。在又一个示例中,可以分析工作流数据128以确定特定提供者的排序。例如,定义多步骤过程的工作流数据128指示特定提供者更适合于特定步骤,这种提供者的排序可能高于不太适合该特定步骤的提供者。提供这些实施例是为了说明的目的,不应解释为限制。

在一些配置中,工作历史数据133可以定义两个或更多个实体之间的关系的状态。例如,如果两个或更多个实体当前正在处理项目,则可以增加关于客户和/或提供者的排序。如果两方或更多方在一段时间内没有一起工作,则可以根据期望的结果增加或减少关于客户和/或提供者的排序。例如,如果具有高终生价值的客户(例如thegatesfoundation)希望与提供者预约,则寻求这样的客户的这种提供者可能比其他提供者排序更高。

在一些配置中,提供者的排序和/或选择可以基于支付历史数据。例如,如果客户支付定期按时,则可以增加希望这些客户的提供者的级别。在一些配置中,偏好数据可以定义提供者的阈值。如果与客户相关联的性能数据低于阈值,例如关于支付、沟通和/或投诉,则本文公开的技术可以使得生成提供客户关系应该终止的通知的数据。提供提醒通知的其他数据可以响应于一个或多个条件而生成,例如延迟支付、延迟支付历史、投诉等。在这样的配置中,当系统发现这样的情况时,可以生成电子邮件、会议通知或其他形式的数据对象。

类似于先前的示例,图3b示出了至少部分地基于输入数据和上下文数据的项目(例如,提供者)的排序列表330的另一示例。为了说明的目的,用户选择列表330上的第二提供者335,larry'sshop。基于这样的选择,可以从一个或多个资源获得与所选择的提供者335相关联的元数据140。元数据140可以用于填充ui中的一个或多个数据输入字段。例如,如图3c所示,元数据140可用于填充文本输入字段,例如提供者编号ui元素305e。

本文提供的实施例用于说明目的,不应解释为限制。尽管这里提供的示例示出了用于安排预约和/或完成表单的客户的图形用户界面,但是可以意识到的是,本文公开的技术也可以由提供者或其他类型的用户安排预约或完成具有数据输入字段的表单来使用。

现在转向图4,下面示出并描述了用于为数据输入字段提供基于资源的自动完成的例程400的各方面。应该理解的是,这里公开的方法的操作不一定以任何特定的顺序呈现,并且以可替换的顺序执行一些或所有操作是可能的并且是可预期的。为了便于描述和说明,已经以演示的顺序呈现了操作。在不脱离所附权利要求的范围的情况下,可以添加,省略操作和/或同时执行操作。

还应该理解,所示方法可以在任何时间结束,并且不需要完整地执行。可以通过执行包括在计算机存储介质上的计算机可读指令来执行方法的一些或所有操作和/或基本等同的操作,如下面所定义的。如在说明书和权利要求中使用的术语“计算机可读指令”及其变体在本文中被广泛使用以包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器、可编程消费电子产品、它们的组合等。

因此,应当意识到,这里描述的逻辑操作被实现为(1)作为在计算系统上运行的计算机实现的动作或程序模块的序列和/或(2)作为计算系统内部的互连机器逻辑电路或电路模块。根据计算系统的性能和其他要求,实现是一个选择问题。因此,这里描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任何组合来实现。

如下面结合图1将更具体实施方式的,例程400的操作在本文中描述为至少部分地由应用程序、组件和/或电路实现。尽管以下说明涉及图1的组件,但是可以意识到,例程400的操作也可以以许多其他方式实现。例如,例程400可以至少部分地由计算机处理器或另一计算机的处理器实现。另外,例程400的一个或多个操作可以替代地或附加地至少部分地由单独工作的计算机或者与诸如服务器模块121的其他软件模块一起工作来实现。

参考图4,例程400开始于操作401,其中一个或多个计算设备获得输入数据。输入数据可以包括语音输入、文本输入、菜单项的选择或其他类型的输入,其中动作由用户或计算设备发起,或者从用户或计算设备接收数据。例如,用户可以选择菜单项。在其他示例中,用户可以提供其他形式的输入数据,诸如指示感兴趣区域、服务类别和/或感兴趣主题的文本描述或语音输入。在一个说明性示例中,输入数据可以定义服务的预约,例如,汽车修理、草坪护理、法律服务等。在这样的配置中,输入数据可以提供指示服务类型等的项目的安排数据,所需服务、所需位置、日期和/或时间的描述。

在操作403中,一个或多个计算设备获得上下文数据。如本文所述,可以从许多不同的资源获得上下文数据。例如,可以从交通数据资源106a、地图数据资源106b、搜索引擎资源106c、专业数据资源106d和天气数据资源106e和/或适合于存储,处理和/或/传达上下文数据的其他资源获得上下文数据。上下文数据可以与服务提供者和/或消费者相关。上下文数据可以包括,例如,定义两个或更多实体之间的先前工作历史、支付历史、信用历史、一方或多方的可用性、项目的位置、到约会的旅行时间、交通数据、技能组数据、首选营业时间、调度可用性、性能指示符、安排冲突、客户首选项、提供者首选项、工作流定义、其他数据及其组合的数据。本文公开的技术还可以量化客户的价值或提供者的价值。可以从一个或多个资源接收这样的上下文数据,或者可以从其他类型的上下文数据导出这样的上下文数据。例如,可以从支付历史、信用历史和其他信息生成定义客户的终生价值的数据。

在操作405,一个或多个计算设备可以基于输入数据和获得的上下文数据来生成项目的排序列表。可以自动生成排序的项目列表,或者可以响应于一个或多个动作生成排序的项目列表。在一个示例中,在用户偏好数据中定义的标准可以指示用于生成排序的项目列表的一个或多个阈值。可以分析上下文数据以确定满足或超过一个或多个阈值的条件的存在。当发现这样的条件时,例如任务的完成、产品或服务的特定价格或其他动作的存在,一个或多个计算设备可以生成排序的项目列表。

在另一示例中,可以响应于用户动作而生成排序的项目列表。例如,当用户提供定义日历项的输入数据时,可以通过使用这里描述的技术来处理输入数据和上下文数据,以生成项目的排序列表。

在操作407,一个或多个计算设备可以显示排序列表。排序列表可以显示在用于接收输入数据的图形元素附近。例如,如图3b所示,排序列表330显示在提供者名称ui元素305d附近。在一些配置中,显示排序列表的图形元素可以被配置为接收对列表中的一个项目的用户选择。

在操作409,一个或多个计算设备可以接收对列表中的至少一个项的选择。可以通过许多不同的方法来实现对至少一个项目的选择。例如,操作409可以涉及指示对项目的选择的用户输入。在其他示例中,操作409可以涉及用于自动选择一个或多个项目的技术。在这样的配置中,偏好数据可以定义用于自动选择一个或多个项目的标准。例如,如果项目与满足在提供者或消费者的偏好数据中定义的阈值的性能数据相关联,则这些项目可以由一个或多个计算设备自动选择。

接下来,在操作411,一个或多个计算设备可以使用与所选项相关的元数据来填充ui的数据字段。操作411可以涉及元数据140的取回。元数据141的取回可以响应于对项目的选择。元数据140可以与提供者或客户相关。元数据140可以包括公司名称、联系信息、位置数据和其他相关数据。可以将这样的元数据140填充到ui的一个或多个数据输入字段中。

图5示出了能够执行本文描述的程序组件的计算机(例如计算设备101(图1))的示例计算机体系结构500的附加细节。因此,图5中所示的计算机体系结构500示出了用于服务器计算机、移动电话、pda、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的体系结构。计算机体系结构500可用于执行本文呈现的软件组件的任何方面。

图5所示的计算机体系结构500包括中央处理器502(“cpu”)、包括随机存取存储器506(“ram”)和只读存储器(“rom”)508的系统存储器504以及将存储器504与cpu502耦合的系统总线510。包含了例如在启动期间帮助在计算机体系结构500内的元件之间传输信息的基本例程的基本输入/输出系统存储在rom508中。计算机体系结构500还包括用于存储操作系统507,诸如上下文数据550、输入数据551等数据以及一个或多个应用程序的大容量存储设备512。

大容量存储设备512通过与总线510连接的大容量存储控制器(未示出)来与cpu502连接。大容量存储设备512及其相关联的计算机可读介质提供了用于计算机体系结构500的非易失性存储。虽然在本文所包含的计算机可读介质的描述是指大容量存储设备,如固态驱动器、硬盘或cd-rom驱动器,本领域技术人员应当意识到计算机可读介质可以是能够由计算机体系结构500访问的任何可用的计算机存储介质或通信介质。

通信介质可包括计算机可读指令、数据结构、程序模块、或调制数据信号中的其它数据如载波或其他传输机制来具体实施,并且包括任何递送介质。术语“调制数据信号”是指其一个或多个特性以将信息编码到信号中的方式进行设定或改变的信号。通过示例而不是限制的方式,通信介质可以包括诸如有线网或直接连线连接的有线介质以及诸如声波、rf、红外和其他无线介质的无线介质。上述任意的组合也应当包含在计算机可读介质的范围内。

通过举例而不是限制的方式,计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的、可移除和非可移除的介质。例如,计算机存储介质包括但不限于ram、rom、eprom、eeprom、闪速存储器或其它固态存储器技术、cd-rom、数字多功能盘(“dvd”)、hd-dvd、blu-ray或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或者能够用于存储所需的信息且能够由计算机体系结构500访问的任何其它介质。为了权利要求的目的,“计算机存储介质”、“计算机可读存储介质”及其变化形式本身不包含波或信号、和/或其它暂态和/或有形的通信介质。

根据各种配置,计算机体系结构500可以使用通过网络756和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机体系结构500可以通过与总线510连接的网络接口单元514而连接到网络756。应当意识到,网络接口单元514可以用来连接到其它类型的网络以及远程计算机系统。计算机体系结构500还包括用于接收和处理来自包括键盘、鼠标或电子指示笔(图5中未示出)的多个其它设备的输入的输入/输出控制器516。类似地,输入/输出控制器516可以提供输出给显示屏、打印机或其它类型的输出设备(图5中未示出)。

应当意识到,本文所描述的软件组件在加载到cpu502中且执行时可以将cpu502和整个计算机体系结构500从通用计算系统变换成经定制而促进本文呈现的功能的专用计算系统。cpu502可以由任意数量的晶体管或其它离散电路元件构成,这些晶体管和离散电路元件可以单独地或者统一地呈现任意数量的状态。更具体地,cpu502可以响应于包含在本文公开的软件模块内的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过规定cpu502如何在状态之间转变而变换cpu502,从而变换构成cpu502的晶体管或其它离散硬件元件。

对本文呈现的软件模块编码可以变换本文呈现的计算机可读介质的物理结构。在本说明书的不同的实现方式中,物理结构的具体的变换可以取决于各种因素。这些因素的示例可以包括但不限于用来实现计算机可读介质的技术,无论计算机可读介质是表征为主存储还是辅存储,等等。例如,如果计算机可读介质实现为基于半导体的存储器,则本文公开的软件可以通过变换半导体存储器的物理状态而编码到计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其它离散电路元件的状态。软件还可以变换这些组件的物理状态从而在其中存储数据。

作为另一示例,本文所公开的计算机可读介质可以利用磁或光技术来实现。在这些实现方式中,当软件编码到其中时,本文所呈现的软件可以变换磁或光介质的物理状态。这些变换可以包括改变在既定磁介质内的特定位置的磁特性。这些变换还可以包括改变在给定的光介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。物理介质的其它变换是可能的,而不偏离本说明书的范围和精主旨,提供了上述示例仅为了促进该论述。

根据上述,应当意识到,许多类型的物理变换可以发生在计算机体系结构500内从而存储和执行本文呈现的软件组件。还应当意识到,计算机体系结构500可以包括其它类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员所知的其它类型的计算设备。还可想到,计算机体系结构500可以不包括图5所示的全部组件,可以包括图5中未明确示出的其它组件,或者可以使用完全不同于图5所示的体系结构。

图6描绘了能够执行用于提供用于数据输入字段的基于资源的自动完成的本文描述的软件组件的说明性分布式计算环境600。因此,图6中示出的分布式计算环境600可用于执行本文中呈现的软件组件的任何方面。例如,分布式计算环境600可用于执行本文描述的软件组件的各方面。

根据各种实现方式,分布式计算环境600包括在网络604上操作,与网络604通信或作为网络604的一部分的计算环境602。网络604可以是或可以包括如上参考图5所述的网络756。网络604还可以包括各种接入网络。一个或多个客户端设备606a-606n(下文统称和/或统称为“客户端606”)可以经由网络604和/或其他连接(图6中未示出)与计算环境702通信。在一个示出的配置中,客户端606包括计算设备606a,诸如膝上型计算机、台式计算机或其他计算设备;片式或平板式计算设备(“平板计算设备”)606b;移动计算设备606c,如移动电话、智能手机或其它移动计算设备;服务器计算机606d;和/或其它设备606n。应当理解的是,任意数量的客户端606能够与计算环境602通信。本文参考图5和图7描述了和图示出客户端606的两个示例的计算体系结构。应当理解的是,图示的客户端606和本文所图示和描述的计算体系结构是示例性的,而不应解释为以任何方式限制。

在图示的配置中,计算环境602包括应用服务器608、数据存储610以及一个或多个网络接口612。根据各个实现方式,应用服务器608的功能可以由作为网络604的部分执行或者与网络604通信的一个或多个服务器计算机来提供。应用服务器608能够托管各种服务、虚拟机、入口和/或其它资源。在图示的配置中,应用服务器608托管了用于托管应用或其它功能的一个或多个虚拟机614。根据各个实现方式,虚拟机614托管了用于提供数据输入字段的基于资源的自动完成的一个或多个应用和/或软件模块。应当理解的是,该配置是示例性的,而不应解释为以任何方式限制。应用服务器608还托管或提供对一个或多个门户、链接页面、web站点和/或其它信息(“web门户”)616的接入。

根据各个实现方式,应用服务器608还包括一个或多个邮箱服务618和一个或多个消息传递服务620。邮箱服务618可以包括电子邮件(“email”)服务。邮箱服务618还可以包括各种个人信息管理(“pim”)服务,包括但不限于日历服务、通讯录管理服务、协作服务和/或其它服务。消息传递服务620可以包括但不限于即时消息传递服务、聊天服务、论坛服务和/或其它通信服务。

应用服务器608还可以包括一个或多个社交联网服务622。社交联网服务622可以包括各种社交联网服务,包含但不限于用于共享或张贴状态更新、即时消息、链接、照片、视频和/或其它信息的服务;用于评论或显示对文章、产品、博客或其它资源的兴趣的服务;和/或其它服务。在一些配置中,社交联网服务622由如下提供或包含如下:facebook社交联网服务,linkedin专业联网服务,myspace社交联网服务,foursquare地理联网服务,yammer办公同事联网服务,等等。在其它配置中,社交联网服务622由其它可能或可能没有明确地表明为社交联网提供者的服务、站点和/或提供者来提供。例如,一些web站点允许用户在各种活动和/或上下文中经由电子邮件、聊天服务和/或其它手段彼此交互,例如,阅读公开的文章,评论商品或服务,发布,协作,玩游戏等。这些服务的示例包括但不限于来自华盛顿埃德蒙顿的微软公司的windowslive服务和xboxlive服务。其它服务是可能的且可想到。

社交联网服务622还可以包括评论、发博客和/或微博服务。这些服务的示例包括但不限于,yelp评论服务、kudzu审阅服务、officetalk企业微博服务、twitter消息传递服务、googlebuzz服务和/或其它服务。应当意识到,上述服务列表不是穷尽的,而且为了简要起见在此没有提到过多的附加的和/或可替代的社交联网服务622。因此,上述配置是示例性的,而不应解释为以任何方式进行限制。根据各种实现方式,社交网络服务622可以托管用于提供本文描述的功能的一个或多个应用和/或软件模块,用于提供数据输入字段的基于资源的自动完成。例如,应用服务器608中的任何一个可以传达或促进本文描述的功能和特征。例如,社交网络应用、邮件客户端、消息客户端或在电话或任何其他客户端606上运行的浏览器可以与网络服务622通信并且促进功能,甚至部分地,如上面参考图4所描述的。

如图6所示,应用服务器608还可以托管其他服务、应用、门户和/或其他资源(“其他资源”)624。其他资源624可以包括但不限于文档共享、呈现或任何其他功能。因此可以意识到,计算环境602可以提供本文提供的概念和技术与各种邮箱、消息传递、社交网络和/或其他服务或资源的集成。

如上所述,计算环境602可以包括数据存储610。根据各个实现方式,数据存储610的功能由操作于网络604上或者与网络604通信的一个或多个数据库来提供。数据存储610的功能还能够由被配置成托管用于计算环境602的数据的一个或多个服务器计算机来提供。数据存储610可以包括、托管或提供一个或多个真实的或虚拟的数据仓库626a-626n(下文统一地和/或一般地称为“数据仓库626”)。数据仓库626被配置成托管由应用服务器608所使用或创建的数据和/或其它数据。尽管未在图6中示出,但是数据仓库626还可以托管或存储网页文档、文字文档、演示文档、数据结构、由推荐引擎执行的算法,和/或由任何应用程序或另一模块使用的其他数据。数据仓库626的方面可以与用于存储文件的服务相关联。

计算环境602能够与网络接口612通信或者由网络接口612访问。网络接口612可以包括用于支持包括但不限于客户端606和应用服务器608在内的两个或更多个计算设备之间的通信的各种类型的网络硬件和软件。应当意识到,网络接口612还可以用来连接到其它类型的网络和/或计算机系统。

应当理解的是,本文所描述的分布式计算环境600能够提供为本文所描述的软件元件的任意方面提供能够被配置成执行本文公开的软件组件的任意方面的任意数量的虚拟计算资源和/或其它分布式计算功能。根据本文公开的构思和技术的各个实现方式,分布式计算环境600向客户端606提供在本文描述为服务的软件功能。应当理解的是,客户端606可以包括真实或虚拟机,包括但不限于服务器计算机、web服务器、个人计算机、移动计算设备、智能手机和/或其它设备。这样,本文公开的概念和技术的各种配置使得被配置为访问分布式计算环境600的任何设备能够利用本文描述的功能来提供数据输入字段的基于资源的自动完成以及其他方面。在一个具体的示例中,如上文所概述的,本文所描述的技术可以至少部分地通过与图6的应用服务器608相结合工作的图5的web浏览器应用510来实现。

现在转向图7,用于计算设备的说明性计算设备体系结构700,其能够执行本文描述的各种软件组件,用于提供数据输入字段的基于资源的自动完成。计算设备体系结构700能应用于部分地由于形状因数、无线连接能力和/或电池供电操作而促进移动计算的计算设备。在一些配置中,计算设备包括但不限于移动电话、平板式设备、片式设备、便携式视频游戏设备等。计算设备体系结构700能应用于图6所示的任意客户端606。此外,计算设备体系结构700的方面可以能应用于传统的台式计算机、便携式计算机(例如,膝上型设备、笔记本设备、超级便携式设备和上网本)、服务器计算机和其它计算机系统,如本文参考图5所描述的。例如,下文所描述的单触摸和多触摸方面可应用使用触摸屏的台式计算机或某种其它触摸使能设备,诸如触摸使能跟踪垫或触摸使能鼠标。

图7所示的计算设备体系结构700包括处理器702、存储器组件704、网络连接组件706、传感器组件708、输入/输出组件710和电力组件712。在图示的配置中,处理器702与存储器组件704、网络连接组件706、传感器组件708、输入/输出(“i/o”)组件710和电力组件712通信。虽然没有示出图7所示的各个组件之间的连接,各组件能够交互而实施设备功能。在一些配置中,组件被配置成经由一个或多个总线(未示出)通信。

处理器702包括中央处理器(“cpu”),其被配置成处理数据,执行一个或多个应用程序的计算机可执行指令,并且与计算设备体系结构700的其它组件通信从而实施本文所描述的各种功能。处理器702可以用来执行本文所呈现的软件组件的方面,尤其是那些至少部分地使用触摸使能输入的方面。

在一些配置中,处理器702包括图形处理单元(“gpu”),其被配置成加速cpu所执行的操作,包括但不限于,通过执行通用科学和/或工程计算应用所实施的操作,以及诸如高分辨率视频(例如,720p,1080p,以及更高分辨率)、视频游戏、三维(“3d”)建模应用等图形密集计算应用。在一些配置中,处理器702被配置成与分立的gpu(未示出)通信。在任何情况下,cpu和gpu可以依照共处理的cpu/gpu计算模型来配置,其中应用的顺序的部分在cpu上执行,计算密集部分由gpu来加速。

在一些配置中,连同下文所描述的其它一个或多个组件一起,处理器702是片上系统(“soc”)或者包含在soc中。例如,soc可以包括处理器702、gpu、一个或多个网络连接组件706以及一个或多个传感器组件708。在一些配置中,处理器702部分地利用封装上封装(“pop”)集成电路封装技术来制造。处理器702可以是单核或多核处理器。

处理器702可以依照来自英国剑桥的armholdings的可供认证的arm体系结构来产生。可替代地,处理器702可依照x86体系结构来产生,例如可从加利福尼亚山景城以及其它的因特尔公司获得。在一些配置中,处理器702是可从加利福尼亚的圣地牙哥的qualcomm得到的snapdragonsoc、可从加利福尼亚的圣塔克拉拉的nvidia得到的tegrasoc、可从韩国首尔samsung得到的hummingbirdsoc、可从德克萨斯州的达拉斯的德州仪器得到的openmultimediaapplicationplatform("omap")soc、上述soc中的任一个的定制版本或专有soc。

存储器组件704包括随机存取存储器(“ram”)714、只读存储器(“rom”)716、集成存储存储器(“集成存储”)718和可移除存储存储器(“可移除存储”)720。在一些配置中,ram714或其部分、rom716或其部分和/或ram714和rom716的某种组合集成到处理器702中。在一些配置中,rom716被配置成存储固件、操作系统或其部分(例如,操作系统内核)和/或从集成存储718和/或可移除存储720加载操作系统内核的引导加载程序。

集成存储718可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储718可以是钎焊到或以其它方式连接到逻辑板上,处理器702以及本文所描述的其它组件也可以连接到该逻辑板上。因此,集成存储718集成到计算设备中。集成存储718被配置成存储本文所描述的操作系统或其部分、应用程序、数据和其它软件组件。

可移除存储720可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,可移除存储720被提供以取代集成存储718。在其它配置中,可移除存储720被提供作为附加的可选存储。在一些配置中,可移动存储720在逻辑上与集成存储718组合,使得总可用存储可用作总组合存储容量。在一些配置中,向用户示出了集成存储器718和可移动存储器720的总组合容量,而不是集成存储器718和可移动存储器720的单独存储容量。

可移除存储720被配置成插入可移除存储存储器槽(未示出)或其它机构,可移除存储720插入可移除存储存储器槽或其它机构且固定到其上以利于可移除存储720能够借以与诸如处理器702的计算设备的其它组件通信的连接。可移除存储720可以嵌入各种存储器卡形式中,包括但不限于,pc卡、compactflash卡、记忆棒、安全数字(“sd”)、minisd、microsd、通用集成电路板(“uicc”)(例如,订户身份模块(“sim”)或通用sim(“usim”))、专有形式等等。

可以理解,存储器组件704中的一个或多个可以存储操作系统。根据各种配置,操作系统包括但不限于来自华盛顿州雷蒙德市的微软公司的windowsmobileos,来自微软公司的windowsphoneos,来自微软公司的windows,来自加利福尼亚州帕洛阿尔托的惠普公司的palmwebos,来自加拿大安大略省滑铁卢的researchinmotionlimited的blackberryos,加利福尼亚州库比蒂诺的苹果的ios和加利福尼亚州山景城的谷歌公司的androidos。预期其他操作系统。

网络连接组件706包括无线广域网组件(“wwan组件”)722、无线局域网组件(“wlan组件”)724以及无线个域网组件(“wpan组件”)726。网络连接组件706促进与网络756或另一网络的通信,该网络可以是wwan、wlan或wpan。虽然仅示出了网络756,但是网络连接组件706可以促进与多个网络的同时通信,包括图6的网络604。例如,网络连接组件706可以促进经由wwan、wlan或wpan中的一个或多个网络与多个网络的同时通信。

网络756可以是wwan或者可以包括wwan,诸如使用一个或多个移动远程通信技术来经由wwan组件722提供语音和/或数据服务给使用计算设备体系结构700的计算设备的移动远程通信网络。移动远程通信技术可以包括但不限于全球移动通信系统(“gsm”)、码分多址(“cdma”)one、cdma7000、通用移动远程通信系统(“umts”)、长期演进(“lte”)和世界微波接入互操作(“wimax”)。而且,网络756可以使用各种信道接入方法(其可以或者可以不由上述标准来使用),包括但不限于,时分多址(“tdma”)、频分多址(“fdma”)、cdma、宽带cdma(“w-cdma”)、正交频分多路复用(“ofdm”)、空间分多址(“sdma”)和类似方法。数据通信可以利用如下来提供:通用分组无线电服务(“gprs”)、全局演进增强数据率(“edge”)、高速分组接入(“hspa”)协议系列,包括高速下行链路分组接入(“hsdpa”)、增强上行链路(“eul”)或另外称为高速上行链路分组接入(“hsupa”)、演进的hspa(“hspa+”)、lte、以及其它各种当前和未来的无线数据访问标准。网络756可被配置成利用上述技术的任意组合来提供语音和/或数据通信。网络756可被配置成适于依照未来代的技术来提供语音和/或数据通信。

在一些配置中,wwan组件722被配置成提供到网络756的双重多模式连接。例如,wwan组件722可以被配置成提供到网络756的连接,其中网络756经由gsm和umts技术来提供服务,或者经由技术的某种其它组合。可替代地,多个wwan组件722可用来实施该功能,和/或提供附加功能来支持其它非兼容技术(即,不能被单个wwan组件支持)。wwan组件722可促进到多个网络(例如,umts网络和lte网络)的类似的连接。

网络756可以是依照一个或多个电气与电子工程师协会(“ieee”)802.11标准而操作的wlan,诸如ieee802.11a、802.11b、802.11g、802.11n和/或未来的802.11标准(在本文统称为wi-fi)。还可以想到起草的802.11标准。在一些配置中,wlan利用一个或多个无线wi-fi接入点来实现。在一些配置中,一个或多个无线wi-fi接入点是能够与wwan连接的充当wi-fi热点的另一计算设备。wlan组件724被配置成经由wi-fi接入点与网络756连接。这些连接可经由各种加密技术来确保安全,加密技术包括但不限于wi-fi保护接入(“wpa”)、wpa2、有线等价隐私(“wep”)和类似技术。

网络756可以是依照红外数据联盟(“irda”)、bluetooth、无线通用串行总线(“usb”)、z-wave、zigbee或某其它短程无线技术来操作的wpan。在一些配置中,wpan组件726被配置成促进与诸如外围设备、计算机或其它计算设备的其它设备经由wpan的通信。

传感器组件708包括磁力计728、环境光传感器730、接近传感器732、加速度计734、陀螺仪736和全球定位系统传感器(“gps传感器”)738。可想到,诸如但不限于温度传感器或震动检测传感器的其它传感器也可以包含在计算设备体系结构700中。

磁力计728可以被配置成测量磁场的强度和方向。在一些配置中,磁力计728提供测量给存储在一个存储器组件704内的罗盘应用程序从而为用户提供参考系内的精确的方向,包括主要方向,北、南、东和西。可以对包括罗盘组件的导航应用程序提供类似的测量。可想到通过磁力计728所获得的测量的其它用途。

环境光传感器730被配置成测量环境光。在一些配置中,环境光传感器730提供测量给存储在一个存储器组件704内的应用程序从而自动地调节显示器(下面所述)的亮度从而补偿低光照环境和高光照环境。可想到通过环境光传感器730所获得的测量的其它用途。

接近传感器732被配置成在不直接接触的情况下检测靠近计算设备的物体或事物的存在。在一些配置中,接近传感器732检测用户的身体(例如,用户的面部)的存在且提供该信息给存储在存储器组件704中之一内的、使用接近信息来启用或禁用计算设备的某功能的应用程序。例如,电话应用程序可以响应于接收到接近信息而自动禁用触摸屏(下面说明),使得用户的面部不会在通话期间不利地结束通话或启用/禁用电话应用程序内的其它功能。接近传感器732所检测到的接近的其它用途可被想到。

加速度计734被配置成测量正确的加速度计。在一些配置中,来自加速度计734的输出由应用程序用作控制应用程序的某功能的输入机制。例如,应用程序可以是视频游戏,其中字符、其部分或对象响应于经由加速度计734接收到的输入而移动或以其它方式被操纵。在一些配置中,来自加速度计734的输出提供给应用程序以便用于在横向模式与纵向模式之间切换,计算坐标加速度,或者检测落差。可以想到加速度计734的其它用途。

陀螺仪736被配置成测量和维持方位。在一些配置中,来自陀螺仪736的输出由应用程序用作控制应用程序的某功能的输入机制。例如,陀螺仪738能够用于视频游戏应用或某其它应用的3d环境内的移动的精确识别。在一些配置中,应用程序使用来自陀螺仪736和加速度计734的输出来增强应用程序的某种功能的控制。可想到陀螺仪736的其它用途。

gps传感器738被配置成接收来自gps卫星的信号以用于计算位置。通过gps传感器738计算的位置可由需要或受益于位置信息的任何应用程序使用。例如,通过gps传感器738计算的位置可用于导航应用程序以提供从该位置到目的地的方向或者从目的地到该位置的方向。而且,gps传感器738可以用于将位置信息提供给的基于外部位置的服务,诸如e911服务。gps传感器738可以使用一个或多个网络连接组件706获得经由wi-fi、wimax和/或蜂窝三角测量技术所生成的位置信息以辅助gps传感器738获得位置锁定。gps传感器738还可用于辅助gps(“a-gps”)系统。

i/o组件710包括显示器740、触摸屏742、数据i/o接口组件(“数据i/o”)744、音频i/o接口组件(“音频i/o”)746、视频i/o接口组件(“视频i/o”)748和照相机750。在一些配置中,显示器740和触摸屏742组合。在一些配置中,数据i/o组件744、音频i/o组件746和视频i/o组件748中的两个或更多个被组合。i/o组件710可以包括被配置为支持下面所描述的各种接口的分立的处理器,或者可以包括内置于处理器702中的处理功能。

显示器740是被配置成以视觉形式呈现信息的输出设备。特别地,显示器740可以呈现图形用户接口(“gui”)元件、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传递数据、因特网内容、设备状况、时间、日期、日历数据、偏好、地图信息、位置信息以及任何其它能够以视觉形式呈现的信息。在一些配置中,显示器740是使用了任何有源或无源矩阵技术以及任何背光技术(如果使用)的液晶显示器(“lcd”)。在一些配置中,显示器740是有机发光二极管(“oled”)显示器。可想到其它显示器类型。

触摸屏742(在此也称为“触摸屏幕”)是被配置为检测触摸的存在和位置的输入设备。触摸屏742可以是电阻触摸屏、电容触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、分散信号触摸屏、声脉冲识别触摸屏,或者可以使用任何其它触摸屏技术。在一些配置中,触摸屏742作为透明层包含到显示器740之上以使用户能够使用一个或多个触摸来与呈现在显示器740上的对象或其它信息交互。在其它配置中,触摸屏742是并入未包含显示器740的计算设备的表面上的触摸板。例如,计算设备可以具有并入显示器740上的触摸屏和与显示器740相对的表面上的触摸板。

在一些配置中,触摸屏742是单触摸式触摸屏。在其它配置中,触摸屏742是多触摸式触摸屏。在一些配置中,触摸屏742被配置成检测离散的触摸、单触摸手势和/或多触摸手势。为方便,这些在本文统称为手势。现在将描述多个手势。应当理解的是,这些手势是示例性的,而不旨在限制随附权利要求的范围。而且,所描述的手势、附加手势和/或可替代手势可以软件来实现而与触摸屏742一起使用。因此,开发者可以创建特定于特定的应用程序的手势。

在一些配置中,触摸屏742支持轻敲手势,其中用户对呈现在显示器740上的项目轻敲触摸屏742一次。轻敲手势可由于各种原因而使用,包括但不限于,打开或启动用户所轻敲无论什么。在一些配置中,触摸屏742支持双轻敲手势,其中用户对呈现在显示器740上的项目轻敲触摸屏742两次。双轻敲手势可由于各种原因而使用,包括但不限于在阶段中缩小或放大。在一些配置中,触摸屏742支持轻敲且保持手势,其中用户轻敲触摸屏742且保持接触至少预定时间。轻敲且保持手势可由于各种原因而使用,包括但不限于,打开上下文特定菜单。

在一些配置中,触摸屏742支持平移手势,其中用户将手指放在触摸屏742上且在触摸屏742上移动手指的同时保持与触摸屏742接触。平移手势可由于各种原因而使用,包括但不限于,在受控速率下移过屏幕、图像或菜单。还可以设想多手指平移手势。在一些配置中,触摸屏742支持轻弹手势,其中用户沿用户想要屏幕移动的方向划动手指。轻弹手势可由于各种原因而使用,包括但不限于,水平地或者垂直地滚动通过菜单或页面。在一些配置中,触摸屏742支持捏合与伸展手势,其中用户在触摸屏742上用两个手指(例如,拇指和食指)做出捏合运动或者移动使两个手指分开。捏合与伸展手势可由于各种原因而使用,包括但不限于,逐渐地缩小或放大网站、地图或图片。

虽然已经参考用于执行手势的一个或多个手指的使用描述了上述手势,诸如足趾或诸如指示笔的对象的其它附件也可用于与触摸屏742交互。因此,上述手势应当理解为示例性的,而不应解释为以任何方式限制。

数据i/o接口组件744被配置成促进向计算设备输入数据以及从计算设备输出数据。在一些配置中,数据i/o接口组件744包括连接器,该连接器被配置成提供计算设备与计算机系统之间的有线连接,例如用于同步操作的目的。连接器可以是专用连接器或标准化的连接器,如usb、微型usb、迷你型usb或类似物。在一些配置中,连接器是用于将计算设备与诸如对接站的另一设备、音频设备(例如,数字音乐播放器)或视频设备对接的对接连接器。

音频i/o接口组件746被配置成提供音频输入和/或输出能力给计算设备。在一些配置中,音频i/o接口组件746包括被配置成采集音频信号的麦克风。在一些配置中,音频i/o接口组件746包括被配置成提供用于耳机或其它外部扬声器的连接的耳机插口。在一些配置中,音频i/o接口组件746包括用于音频信号的输出的扬声器。在一些配置中,音频i/o接口组件746包括光缆音频出口。

视频i/o接口组件748被配置成提供视频输入和/或输出能力给计算设备。在一些配置中,视频i/o接口组件748包括视频连接器,该视频连接器被配置成接收来自另一设备(例如,诸如dvd或bluray播放器的视频媒体播放器)的视频作为输入)或者将视频作为输出发送到另一设备(例如,监控器、电视机或某其它外部显示器)。在一些配置中,视频i/o接口组件748包括高清多媒体接口(“hdmi”)、迷你型hdmi、微型hdmi、displayport或到输入/输出视频内容的专用连接器。在一些配置中,视频i/o接口组件748或其部分与音频i/o接口组件746或其部分组合。

照相机750可以被配置成捕获静像和/或视频。照相机850可以使用电荷耦合器件(“ccd”)或互补金属氧化物半导体(“cmos”)图像传感器来捕获图像。在一些配置中,照相机750包括辅助在低光照环境下拍摄图片的闪光灯。用于照相机750的设置可实现为硬件或软件按钮。

虽然没有示出,一个或多个硬件按钮也可以包含在计算设备体系结构700中。硬件按钮可用于控制计算设备的某操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械或基于传感器的。

图示的电力组件712包括一个或多个电池752,电池能够连接到电池计量仪754。电池752可以是可再充电的或一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。各个电池752可以由一个或多个单元制成。

电池计量仪754可以被配置成测量诸如电流、电压和温度的电池参数。在一些配置中,电池计量仪754被配置成测量电池的放电速率、温度、寿命和在一定误差百分比内预测剩余寿命的其它因素的效果。在一些配置中,电池计量仪754提供测量值给应用程序,应用程序被配置成使用测量值来向用户呈现有用的电力管理数据。电力管理数据可以包括所使用的电池百分比、电池剩余百分比、电池状态、剩余时间、剩余容量(例如,以瓦特小时数计)、消耗的电流和电压的中的一项或多项

电力组件712还可以包括电力连接器,其可以与上述i/o组件710中的一个或多个组合。电力组件712可以经由i/o组件与外部电力系统或充电装备相接。

最后,尽管已经用结构特征和/或方法动作专用的语言描述了各种配置,但是应该理解,所附表示中定义的主题不必限于所描述的特定特征或动作。而是,公开了特定特征和动作作为实现所要求保护的主题的示例形式。

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