智能自动化助理的制作方法

文档序号:13248513阅读:213来源:国知局
发明人:托马斯·罗伯特·格鲁伯(THOMASROBERTGRUBER)亚当·约翰·奇耶(ADAMJOHNCHEYER)戴格·吉特劳斯(DAGKITTLAUS)迪迪埃·勒内·古佐尼(DIDIERGUZZONI)克里斯托弗·狄恩·布里格姆(CHRISTOPHERDEANBRIGHAM)理查德·唐纳德·求里(RICHARDDONALDGIULI)马尔塞鲁·巴斯提弗特(MARCELLO-FORTE)哈里·约瑟夫·萨德勒(HARRYJOSEPHSADDLER)本申请是申请日为2011年1与11日、申请号为201180013559.2的专利申请“数字助理的个人化词汇”的分案申请。相关申请案的交叉参考本申请案主张2010年1月18日申请的代理人案号为SIRIP003P的第61/295,774号美国临时专利申请案“智能自动化助理(IntelligentAutomatedAssistant)”的优先权,所述临时专利申请案以引用的方式并入本文中。本申请案进一步主张2011年1月10申请的代理人案号为P10575US1的第12/987,982号美国实用新型专利申请案“智能自动化助理(IntelligentAutomatedAssistant)”的优先权,所述实用新型专利申请案以引用的方式并入本文中。本申请案进一步与2006年9月8日申请的第11/518,292号美国专利申请案“用于建立智能自动化助理的方法和设备(MethodandApparatusforBuildinganIntelligentAutomatedAssistant)”有关,所述专利申请案以引用的方式并入本文中。本申请案进一步与2009年6月12日申请的第61/186,414号美国临时专利申请案“用于语义自动完成的系统和方法(SystemandMethodforSemanticAuto-Completion)”有关,所述临时专利申请案以引用的方式并入本文中。
技术领域
:本发明涉及智能系统,且更具体地说,本发明是针对智能自动化助理的若干类应用。
背景技术
::如今的电子装置能够经由因特网且从其它来源接入大量、正在增长且多种多样的功能、服务和信息。随着许多消费型装置、智能电话、平板计算机等能够运行软件应用程序来执行各种任务并提供不同类型的信息,针对此些装置的功能性正快速增加。通常,每一应用程序、功能、网站或特征具有其自己的用户接口以及其自己的操作范式,其中的许多学习起来很麻烦或对于用户来说是有压力的。另外,许多用户可能甚至连发现其电子装置上或各种网站上什么功能性和/或信息是可用的也有困难;因此,此些用户可能感到沮丧或不堪重负,或可能仅仅是不能够以有效方式使用对他们来说可用的资源。明确地说,初学用户或以某一方式受损或伤残的个人,和/或年老、繁忙、思想不集中和/或正操作交通工具的个人可能难以有效地与其电子装置介接,和/或有效地加入在线服务。此些用户尤其有可能对可供他们使用的大量分散且不一致的功能、应用程序和网站感到困难。因此,现有的系统常常难以使用和导航,且常常向用户呈现不一致且有压力的接口,所述接口常常阻止用户有效地利用技术。技术实现要素:根据本发明的各种实施例,一种智能自动化助理在电子装置上实施,以促进用户与装置的交互,且帮助用户更有效地与本地和/或远程服务接洽。在各种实施例中,所述智能自动化助理使用自然语言对话以集成谈话方式与用户接洽,且在适当时调用外部服务以获得信息或执行各种动作。根据本发明的各种实施例,所述智能自动化助理整合由不同软件组件提供的多种能力(例如,用于支持自然语言辨识和对话、多模式输入、个人信息管理、任务流管理、编排分布式服务等)。此外,为了向用户提供智能接口和有用功能性,本发明的智能自动化助理可在至少一些实施例中协调这些组件和服务。谈话接口以及获得信息并执行后继任务的能力在至少一些实施例中是通过协调例如语言组件、对话组件、任务管理组件、信息管理组件和/或多个外部服务来实施的。根据本发明的各种实施例,可配置、设计和/或操作智能自动化助理系统来提供各种不同类型的操作、功能性和/或特征,且/或组合所述系统安装于其上的电子装置的多个特征、操作和应用程序。在一些实施例中,本发明的智能自动化助理系统可执行以下各项中的任一者或全部:主动地引出来自用户的输入;解译用户输入;消除竞争性解译之间的歧义;根据需要请求和接收澄清信息;以及基于辨明的意图而执行(或起始)动作。可(例如)通过激活电子装置上可用的任何应用程序或服务以及经由例如因特网等电子网络可用的服务且/或与其介接来执行动作。在各种实施例中,可经由API或通过任何其它合适机制来执行对外部服务的此激活。以此方式,本发明的各种实施例的智能自动化助理系统可相对于电子装置的许多不同应用程序和功能,且相对于可经由因特网可用的服务而统一、简化和改进用户的体验。进而可减轻用户进行以下行为的负担:学习什么功能性可在装置上以及在网络连接的服务上可用、如何与此服务介接以获得他或她想要的东西,以及如何解译从此些服务接收到的输出;相反,本发明的助理可充当用户与此些多样服务之间的中间者。另外,在各种实施例中,本发明的助理提供一种谈话接口,用户可找到比常规图形用户接口多的直觉以及少的麻烦。用户可使用若干可用输入和输出机制(例如语音、图形用户接口(按钮和链接)、文本条目等)中的任一者以谈话对话的形式与助理接洽。可使用若干不同平台(例如装置API、网络、电子邮件等,或其组合)中的任一者来实施所述系统。可在此谈话的上下文中将对额外输入的请求呈现给用户。可加入短期和长期存储器,使得在给出先前事件和给定会话内的通信以及关于用户的历史和简档信息的情况下,可在适当的上下文中解译用户输入。另外,在各种实施例中,从与装置上的特征、操作或应用程序的用户交互得到的上下文信息可用于使所述装置上或其它装置上的其它特征、操作或应用程序的操作成流线型。举例来说,智能自动化助理可使用电话呼叫的上下文(例如被呼叫的人)来使文本消息的起始成流线型(例如,以确定应发送给同一人的文本消息,而用户不必明确地指定文本消息的接收者)。本发明的智能自动化助理可进而解译指令,例如“给他发送文本消息”,其中根据从当前电话呼叫且/或从装置上的任何特征、操作或应用程序得到的上下文信息来解译“他”。在各种实施例中,智能自动化助理考虑各种类型的可用上下文数据,以确定要使用哪一地址簿联系人、要使用哪一联系人数据、要将哪一电话号码用于所述联系人等,使得用户无需手动地重新指定此信息。在各种实施例中,所述助理还可相应地考虑外部事件和作出响应,(例如)以起始动作、起始与用户的通信、提供警报且/或依据外部事件修改先前起始的动作。如果需要来自用户的输入,那么可再次使用谈话接口。在一个实施例中,所述系统是基于互相联系的域和任务的集合,且使用由系统可与之交互的外部服务激励的额外功能性。在各种实施例中,这些外部服务包含具有网络功能的服务,以及与硬件装置本身有关的功能性。举例来说,在其中智能自动化助理在智能电话、个人数字助理、平板计算机或其它装置上实施的实施例中,助理可控制装置的许多操作和功能,例如拨打电话号码、发送文本消息、设定提醒、将事件添加到日历等。在各种实施例中,可实施本发明的系统以在若干不同域中的任一者中提供辅助。实例包含:·本地服务(包含位置和时间特定服务,例如餐馆、电影、自动柜员机(ATM)、事件以及见面地点);·个人和社会记忆服务(包含动作项目、便笺、日历事件、共享链接等);·电子商务(包含例如书籍、DVD、音乐等项目的在线购买);·旅行服务(包含航班、旅馆、景点等)。所属领域的技术人员将认识到,以上域列表只是示范性的。另外,本发明的系统可以域的任何组合来实施。在各种实施例中,本文所揭示的智能自动化助理系统可经配置或设计以包含用于使经由因特网可用的数据和服务的应用自动化以发现、寻找、挑选、购买、预订或订购产品和服务的功能性。除了使使用这些数据和服务的过程自动化之外,本文所揭示的至少一个智能自动化助理系统实施例还可一次实现数据和服务的若干来源的组合使用。举例来说,所述系统可组合来自若干评论点的关于产品的信息、检查来自多个经销商的价格和可用性,且检查其位置和时间约束,并帮助用户找到对其问题的个人化解决方案。另外,本文所揭示的至少一个智能自动化助理系统可经配置或设计以包含以下功能性:用于使经由因特网可用的数据和服务的使用自动化以发现、调查、选择、预订和以其它方式得知待办事项(包含(但不限于)电影、事件、表演、展览、放映和吸引人的事物);要去的地方(包含(但不限于)旅行目的地、旅馆和其它要停留的地方、地标以及其它关注地点等);吃喝的地方(例如餐馆和酒吧);与他人见面的时间和地方,以及可在因特网上找到的娱乐或社会交互的任何其它来源。另外,本文所揭示的至少一个智能自动化助理系统实施例可经配置或设计以包含以下功能性:使得能够经由可原本由具有图形用户接口的专用应用程序提供的自然语言对话实现应用程序和服务的操作,所述专用应用包含:搜索(包含基于位置的搜索);导航(地图和方向);数据库查找(例如,通过名称或其它特性来寻找商店或人);获得天气情况和预报;检查市场物品的价格或金融交易的状态;监视交通或航班状态;存取和更新日历和日程表;管理提醒、警报、任务和计划;经由电子邮件或其它消息接发平台进行通信;以及本地或远程地操作装置(例如,拨打电话、控制光和温度、控制家用安全装置、播放音乐或视频等)。另外,本文所揭示的至少一个智能自动化助理系统实施例可经配置或经设计以包含以下功能性:识别、产生且/或提供对活动、产品、服务、娱乐来源、时间管理的个人化推荐或受益于自然语言中的交互式对话和对数据和服务的自动化存取的任何其它种类的推荐服务。在各种实施例中,本发明的智能自动化助理可控制电子装置的许多特征和操作。举例来说,智能自动化助理可调用经由API或通过其它方式与装置上的功能性和应用程序介接的服务,以执行原本可使用装置上的常规用户接口起始的功能和操作。此些功能和操作可包含(例如)设定警告、进行电话呼叫、发送文本消息或电子邮件消息、添加日历事件等。可将此些功能和操作执行为用户与助理之间的谈话对话的上下文中的附加功能。此些功能和操作可在此对话的上下文中由用户指定,或其可基于对话的上下文自动执行。所属领域的技术人员将认识到,助理可进而用作用于起始和控制电子装置上的各种操作的控制机制,其可用作例如按钮或图形用户接口等常规机构的替代物。附图说明附图说明本发明的若干实施例,且连同描述内容一起用以根据实施例阐释本发明的原理。所属领域的技术人员将认识到,图中所说明的特定实施例仅仅是示范性的,且无意限制本发明的范围。图1是描绘智能自动化助理系统的一个实施例的实例的框图。图2说明根据至少一个实施例的在用户与智能自动化助理之间的交互的实例。图3是描绘适合实施根据至少一个实施例的智能自动化助理的至少一部分的计算装置的框图。图4是描绘用于根据至少一个实施例在独立计算系统上实施智能自动化助理的至少一部分的架构的框图。图5是描绘用于根据至少一个实施例在分布式计算网络上实施智能自动化助理的至少一部分的架构的框图。图6是描绘说明若干不同类型的客户端和操作模式的系统架构的框图。图7是描绘根据一个实施例彼此通信以实施本发明的客户端和服务器的框图。图8是描绘根据一个实施例的主动本体的一片段的框图。图9是描绘智能自动化助理系统的替代实施例的实例的框图。图10是描绘根据一个实施例的主动输入引出组件的操作的方法的流程图。图11是描绘根据一个实施例的用于主动所键入输入引出的方法的流程图。图12到21是说明根据一个实施例的用于主动所键入输入引出的程序中的一些程序的某些部分的屏幕截图。图22是描绘根据一个实施例的用于引出话音或语音输入的主动输入引出的方法的流程图。图23是描绘根据一个实施例的用于引出基于GUI的输入的主动输入引出的方法的流程图。图24是描绘根据一个实施例的用于在对话流等级下的主动输入引出的方法的流程图。图25是描绘根据一个实施例的用于主动监视相关事件的方法的流程图。图26是描绘根据一个实施例的用于多模式主动输入引出的方法的流程图。图27是说明根据一个实施例可由域模型组件和服务编排提供的各种类型的功能、操作、动作和/或其它特征的实例的一组屏幕截图。图28是描绘根据一个实施例的用于自然语言处理的方法的实例的流程图。图29是说明根据一个实施例的自然语言处理的屏幕截图。图30和31是说明根据一个实施例可由对话流处理器组件提供的各种类型的功能、操作、动作和/或其它特征的实例的屏幕截图。图32是描绘根据一个实施例的对话流处理器组件的操作的方法的流程图。图33是描绘根据一个实施例的自动呼叫和响应程序的流程图。图34是描绘根据一个实施例的用于受约束选择任务的任务流的实例的流程图。图35和36是说明根据一个实施例的受约束选择任务的操作的实例的屏幕截图。图37是描绘根据一个实施例的用于执行服务编排程序的程序的实例的流程图。图38是描绘根据一个实施例的服务调用程序的实例的流程图。图39是描绘根据一个实施例的多阶段输出程序的实例的流程图。图40和41是描绘根据一个实施例的输出处理的实例的屏幕截图。图42是描绘根据一个实施例的多模式输出处理的实例的流程图。图43A和43B是描述根据一个实施例的在改变位置的同时使用短期个人存储器组件来维持对话上下文的实例的屏幕截图。图44A到44C是描绘根据一个实施例的长期个人存储器组件的使用的实例的屏幕截图。图45描绘用于受约束选择任务的抽象模型的实例。图46描绘帮助引导用户通过搜索过程的对话流模型的实例。图47是描绘根据一个实施例的受约束选择的方法的流程图。具体实施方式现在将参考如附图中说明的几个实例实施例详细描述各种技术。在以下描述中,陈述大量具体细节,以便提供对本文所描述或参考的一个或一个以上方面和/或特征的全面理解。然而,所属领域的技术人员将明白,本文所描述或参考的一个或一个以上方面和/或特征可在没有一些或所有这些具体细节的情况下实践。在其它情况下,为了不使本文所描述或参考的方面和/或特征中的一些方面和/或特征模糊不清,未详细描述众所周知的过程步骤和/或结构。本申请案中可能描述一个或一个以上不同发明。另外,对于本文所述的方面中的一者或一者以上,大量实施例可描述于本专利申请案中,且仅出于说明性目的而呈现。所描述的实施例无意在任何意义上具有限制性。如从揭示内容容易明白,所述发明中的一者或一者以上可广泛适用于大量实施例。充分详细地描述这些实施例以使得所属领域的技术人员能够实践所述发明中的一者或一者以上,且将理解,可利用其它实施例,且可在不脱离所述发明中的一者或一者以上的范围的情况下作出结构、逻辑、软件、电气和其它改变。因此,所属领域的技术人员将认识到,可以各种修改和更改来实践所述发明中的一者或一者以上。可参考形成本发明的一部分的一个或一个以上特定实施例或图来描述所述发明中的一者或一者以上的特定特征,且其中以说明的方式展示所述发明中的一者或一者以上的特定实施例。然而,应理解,此些特征不限于在描述其所参考的一个或一个以上特定实施例或图中使用。本发明不是对所述发明中的一者或一者以上的所有实施例的字描述,也不是所有实施例中必须存在的所述发明中的一者或一者以上的特征的列表。本专利申请案中所提供的章节的标题以及本专利申请案的题目仅是为了方便,且不应被视为以任何方式限制本发明。彼此通信的装置无需彼此连续通信,除非另有明确指定。另外,彼此通信的装置可直接通信或通过一个或一个以上中间物间接地通信。对彼此通信的若干组件的实施例的描述并不暗示需要所有此些组件。相反,描述多种任选组件以说明所述发明中的一者或一者以上的广泛多种的可能实施例。另外,尽管可以顺序次序描述过程步骤、方法步骤、算法等,但此些过程、方法和算法可经配置以便以交替次序工作。换句话说,本专利申请案中可描述的步骤的任何序列或次序本身并不指示以所述次序执行所述步骤的要求。可以任何实际次序执行所描述过程的步骤。另外,可同时执行一些步骤,尽管所述步骤被描述或暗示为非同时发生(例如,因为一个步骤是在另一步骤之后描述的)。此外,通过在图式中描绘而说明过程并不暗示所说明的过程排除对过程的其它变化和修改,并不暗示所说明的过程或其步骤中的任一者对所述发明中的一者或一者以上是必要的,且并不暗示所说明的过程是优选的。当描述单个装置或物品时,将容易明白,可使用一个以上装置/物品(不管其是否协作)代替单个装置/物品。类似地,在描述一个以上装置或物品(不管其是否协作)的情况下,将容易明白,可使用单个装置/物品代替一个以上装置或物品。装置的功能性和/或特征可替代地由未明确描述为具有此类功能性/特征的一个或一个以上其它装置体现。因此,所述发明中的一者或一者以上的其它实施例无需包含所述装置本身。本文所描述或参考的技术和机制有时将为了清楚而以单数形式描述。然而,应注意,特定实施例包含技术的多次反复或机制的多个例示,除非另有注释。尽管在智能自动化助理技术的上下文内描述,但可理解,本文所述的各种方面和技术(例如与主动本体相关联的那些技术)还可部署和/或应用于涉及与软件的人类和/或计算机化交互的其它领域的技术中。与智能自动化助理技术有关的其它方面(例如,其可由本文所述的一个或一个以上智能自动化助理系统实施例利用、提供且/或在所述一个或一个以上智能自动化助理系统实施例处实施)揭示于以下参考中的一者或一者以上中:·2010年1月18日申请的代理人案号为SIRIP003P的第61/295,774号美国临时专利申请案“智能自动化助理(IntelligentAutomatedAssistant)”,所述临时专利申请案的揭示内容以引用的方式并入本文中;·2006年9月8日申请的第11/518,292号美国专利申请案“用于建立智能自动化助理的方法和设备(MethodandApparatusforBuildinganIntelligentAutomatedAssistant)”,所述专利申请案的揭示内容以引用的方式并入本文中;以及·2009年6月12日申请的第61/186,414号美国临时专利申请案“用于语义自动完成的系统和方法(SystemandMethodforSemanticAuto-Completion)”,所述临时专利申请案的揭示内容以引用的方式并入本文中。硬件架构通常,本文所揭示的智能自动化助理技术可在硬件或软件与硬件的组合上实施。举例来说,所述技术可在操作系统核心中、在单独的用户进程中、在绑定到网络应用程序中的库封装中、在特殊构造的机器上,或在网络接口卡上实施。在特定实施例中,本文所揭示的技术可在例如操作系统等软件中或在操作系统上运行的应用程序中实施。本文所揭示的智能自动化助理实施例中的至少一些的软件/硬件混合实施方案可实施在由存储在存储器中的计算机程序选择性地激活或重新配置的可编程机器上实施。此些网络装置可具有多个网络接口,所述多个网络接口可经配置或设计以利用不同类型的网络通信协议。用于这些机器中的一些的一般架构可从本文所揭示的描述中得知。根据特定实施例,本文所揭示的各种智能自动化助理实施例的特征和/或功能性中的至少一些可实施在以下各者上:一个或一个以上通用网络主机,例如终端用户计算机系统、计算机、网络服务器或服务器系统、移动计算装置(例如,个人数字助理、移动电话、智能电话、膝上型计算机、平板计算机等);消费型电子装置;音乐播放器;或任何其它合适的电子装置、路由器、交换机等,或其任何组合。在至少一些实施例中,本文所揭示的各种智能自动化助理实施例的特征和/或功能性中的至少一些可在一个或一个以上虚拟化计算环境(例如,网络计算云等)中实施。现在参看图3,展示了描绘适合实施本文所揭示的智能自动化助理特征和/或功能性的至少一部分的计算装置60的框图。计算装置60可为(例如)终端用户计算机系统、网络服务器或服务器系统、移动计算装置(例如,个人数字助理、移动电话、智能电话、膝上型计算机、平板计算机等)、消费型电子装置;音乐播放器;或任何其它合适的电子装置,或其任何组合或部分。计算装置60可适于使用针对此通信的已知协议(无论是无线还是有线)经由例如因特网等通信网络与其它计算装置(例如客户端和/或服务器)通信在一个实施例中,计算装置60包含中央处理单元(CPU)62、接口68以及总线67(例如外围组件互连(PCI)总线)。当在适当软件或固件的控制下作用时,CPU62可负责实施与经特殊配置的计算装置或机器的功能相关联的特定功能。举例来说,在至少一个实施例中,用户的个人数字助理(PDA)可经配置或设计以用作智能自动化助理系统,其利用CPU62、存储器61、65,以及接口68。在至少一个实施例中,可致使CPU62在软件模块/组件的控制下执行不同类型的智能自动化助理功能和/或操作中的一者或一者以上,所述软件模块/组件可(例如)包含操作系统和任何适当的应用程序软件、驱动器等。CPU62可包含一个或一个以上处理器63,例如来自摩托罗拉或因特尔微处理器家族或MIPS微处理器家族的处理器。在一些实施例中,处理器63可包含经特殊设计的硬件(例如,专用集成电路(ASIC)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)等),其用于控制计算装置60的操作。在特定实施例中,存储器61(例如非易失性随机存取存储器(RAM)和/或只读存储器(ROM))也形成CPU62的一部分。然而,存在其中存储器可耦合到系统的许多不同方式。存储器块61可用于多种目的,例如高速缓存和/或存储数据、编程指令等。如本文所使用,术语“处理器”并不仅限于此项技术中称为处理器的那些集成电路,而是广泛地指代微控制器、微型计算机、可编程逻辑控制器、专用集成电路,以及任何其它可编程电路。在一个实施例中,可将接口68提供为接口卡(有时称为“线卡”)。通常,接口68控制数据包在计算网络上的发送和接收,且有时支持与计算装置60一起使用的其它外围设备。可提供的接口是以太网接口、帧中继接口、缆线接口、DSL接口、令牌环接口等。另外,可提供各种类型的接口,例如通用串行总线(USB)、串行、以太网、火线、PCI、并行、射频(RF)、BluetoothTM、近场通信(例如,使用近场磁)、802.11(WiFi)、帧中继、TCP/IP、ISDN、快速以太网接口、千兆位以太网接口、异步传送模式(ATM)接口、高速串行接口(HSSI)接口、销售点(POS)接口、光纤数据分布接口(FDDI)等。通常,此些接口68可包含适合与适当媒体通信的端口。在一些情况下,此些接口68还可包含独立处理器,且在一些例子中,可包含易失性和/或非易失性存储器(例如,RAM)。尽管图3中所示的系统说明用于实施本文所描述的本发明的技术的计算装置60的一种特定架构,但其绝不是其上可实施本文所述的特征和技术的至少一部分的仅有装置架构。举例来说,可使用具有一个或任何数目的处理器63的架构,且此些处理器63可存在于单个装置中,或分布在任何数目的装置之间。在一个实施例中,单个处理器63处置通信以及路由计算。在各种实施例中,可在智能自动化助理系统中实施不同类型的智能自动化助理特征和/或功能性,所述智能自动化助理系统包含客户端装置(例如,运行客户端软件的个人数字助理或智能电话)和服务器系统(例如下文更详细描述的服务器系统)。不管网络装置配置如何,本发明的系统可使用一个或一个以上存储器或存储器模块(例如,存储器块65),其经配置以存储数据、用于通用网络操作的程序指令,和/或与本文所述的智能自动化助理技术的功能性有关的其它信息。举例来说,所述程序指令可控制操作系统和/或一个或一个以上应用程序的操作。存储器还可经配置以存储数据结构、关键字分类信息、广告信息、用户点击和按压信息,和/或本文中所描述的其它特定非程序信息。因此此些信息和程序指令可用以实施本文所描述的系统/方法,所以至少一些网络装置实施例可包含非暂时机器可读存储媒体,所述非暂时机器可读存储媒体(例如)可经配置或设计以存储用于执行本文所述的各种操作的程序指令、状态信息等。此类非暂时机器可读存储媒体的实例包含(但不限于):磁性媒体,例如硬盘、软盘和磁带;光学媒体,例如CD-ROM磁盘;磁-光学媒体,例如软光盘,以及经特殊配置以存储和执行程序指令的硬件装置,例如只读存储器装置(ROM)、快闪存储器、记忆电阻器存储器、随机存取存储器(RAM)等。程序指令的实例包含机器代码(例如由编译器产生),以及含有可由计算机使用解译器执行的较高等级代码的文件。在一个实施例中,本发明的系统在独立计算系统上实施。现在参看图4,展示了描绘用于根据至少一个实施例在独立计算系统上实施智能自动化助理的至少一部分的架构的框图。计算装置60包含处理器63,处理器63运行用于实施智能自动化助理1002的软件。输入装置1206可为适合接收用户输入的任何类型,包含(例如)键盘、触摸屏、麦克风(例如,用于话音输入)、鼠标、触摸板、轨迹球、五向开关、操纵杆和/或其任何组合。输出装置1207可为屏幕、扬声器、打印机和/或其任何组合。存储器1210可为具有如此项技术中已知的结构和架构的随机存取存储器,以供处理器63在运行软件的过程中使用。存储装置1208可为用于以数字形式存储数据的任何磁性、光学和/或电存储装置;实例包含快闪存储器、磁性硬盘驱动器、CD-ROM和/或类似物。在另一实施例中,本发明的系统是在分布式计算网络(例如具有任何数目的客户端和/或服务器的分布式计算网络)上实施。现在参看图5,展示了描绘用于根据至少一个实施例在分布式计算网络上实施智能自动化助理的至少一部分的架构的框图。在图5所示的布置中,提供任何数目的客户端1304;每一客户端1304可运行用于实施本发明的客户端侧部分的软件。另外,可提供用于处置从客户端1304接收到的请求的任何数目的服务器1340。客户端1304和服务器1340可经由电子网络1361(例如因特网)彼此通信。可使用任何已知网络协议(包含(例如)有线和/或无线协议)来实施网络1361。另外,在一个实施例中,服务器1340可在需要时呼叫外部服务1360,以获得额外信息或参考关于与特定用户的先前交互的存储数据。与外部服务1360的通信可(例如)经由网络1361而发生。在各种实施例中,外部服务1360包含与硬件装置本身有关或安装于其上的具有网络功能的服务和/或功能性。举例来说,在其中助理1002实施于智能电话或其它电子装置上的实施例中,助理1002可获得存储在日历应用程序(“app”)、联系人,和/或其它来源中的信息。在各种实施例中,助理1002可控制其上安装了助理1002的电子装置的许多特征和操作。举例来说,助理1002可呼叫外部服务1360,外部服务1360经由API或通过其它方法与装置上的功能性和应用程序介接,以执行原本可能使用装置上的常规用户接口起始的功能和操作。此些功能和操作可包含(例如)设定警报、作出电话呼叫、发送文本消息或电子邮件消息、添加日历事件等。可将此些功能和操作执行为用户与助理1002之间的对话对话的上下文中的附加功能。此些功能和操作可由用户在此对话的上下文中指定,或其可基于对话的上下文自动执行。所属领域的技术人员将认识到,助理1002可因而用作用于起始和控制电子装置上的各种操作的控制机制,其可用作例如按钮或图形用户接口等常规机构的替代方案。举例来说,用户可将输入提供给助理1002,例如“我需要在明天上午8点醒来”。一旦助理1002已使用本文所述的技术确定用户的意图,助理1002就可呼叫外部服务1340以与装置上的闹钟功能或应用程序介接。助理1002代表用户设定警报。以此方式,用户可使用助理1002作为用于设定警报或执行装置上的其它功能的常规机构的代替物。如果用户的请求是不明确的,或需要进一步澄清,那么助理1002可使用本文所述的各种技术(包含主动引出、释义、建议等)来获得所需的信息,使得正确的服务1340被呼叫,且采取既定动作。在一个实施例中,助理1002可在呼叫服务1340以执行功能之前提示用户进行确认。在一个实施例中,用户可选择性地停用助理1002的呼叫特定服务1340的能力,或可在需要时停用所有此类服务呼叫。本发明的系统可结合许多不同类型的客户端1304和操作模式而实施。现在参看图6,展示了说明若干不同类型的客户端1304和操作模式的系统架构的框图。所属领域的技术人员将认识到,图6中所示的各种类型的客户端1304和操作模式仅仅是示范性的,且本发明的系统可使用不同于所描绘的客户端和操作模式的客户端1304和/或操作模式来实施。另外,系统可单独或以任何组合包含此些客户端1304和/或操作模式中的任一者或全部。所描绘的实例包含:·具有输入/输出装置和/或传感器的计算机装置1402。客户端组件可部署在任一此计算机装置1402上。可使用用于经由网络1361实现与服务器1340的通信的网络浏览器1304A或其它软件应用程序来实施至少一个实施例。输入和输出通道可为任何类型,包含(例如)视觉和/或听觉通道。举例来说,在一个实施例中,可使用基于话音的通信方法来实施本发明的系统,从而允许用于盲人的助理的实施例,盲人的网络浏览器的等效物是由语音驱动且使用语音进行输出。·具有I/O和传感器的移动装置1406,针对其,客户端可实施为移动装置上的应用程序1304B。这包含(但不限于)移动电话、智能电话、个人数字助理、平板装置、联网的游戏控制台等。·具有I/O和传感器的消费型电器1410,针对其,客户端可实施为电器上的嵌入式应用程序1304C。·具有仪表盘接口和传感器的汽车和其它交通工具1414,针对其,客户端可实施为嵌入式系统应用程序1304D。这包含(但不限于)汽车导航系统、话音控制系统、车内娱乐系统等。·例如驻留在网络上或与网络介接的路由器1418或任何其它装置等联网计算装置,针对其,客户端可实施为装置驻留应用程序1304E。·电子邮件客户端1424,针对其,助理的实施例经由电子邮件形态服务器1426而连接。电子邮件形态服务器1426充当通信桥梁,例如将来自用户的输入作为发送到助理的电子邮件消息,且将来自助理的输出发送给用户作为回复。·即时消息接发客户端1428,针对其,助理的实施例经由消息接发形态服务器1430而连接。消息接发形态服务器1430充当通信桥梁,将来自用户的输入作为发送到助理的消息,且将来自助理的输出发送给用户作为回复消息。·话音电话1432,针对其,助理的实施例经由因特网话音协议(VoIP)形态服务器1430而连接。VoIP形态服务器1430充当通信桥梁,将来自用户的输入作为向助理说出的话音,且将来自助理的输出发送给用户,例如作为回复的经合成语音。对于包含(但不限于)电子邮件、即时消息接发、讨论论坛、群组聊天会话、在线帮助或客户支持会话等消息接发平台,助理1002可充当谈话中的参与者。助理1002可监视谈话,并使用本文针对一对一交互所描述的一种或一种以上技术和方法来回复个人或群组。在各种实施例中,用于实施本发明的技术的功能性可分布于任何数目的客户端和/或服务器组件当中。举例来说,可实施各种软件模块以用于结合本发明执行各种功能,且此些模块可以各种方式实施以在服务器和/或客户端组件上运行。现在参看图7,展示客户端1304和服务器1340的实例,其彼此通信以根据一个实施例实施本发明。图7描绘一种可能的布置,通过所述布置,软件模块可分布在客户端1304与服务器1340之间。所属领域的技术人员将认识到,所描绘的布置仅仅为示范性的,且此些模块可以许多不同方式分布。另外,可提供任何数目的客户端1304和/或服务器1340,且所述模块可以多种不同方式中的任一者分布在这些客户端1304和/或服务器1340当中。在图7的实例中,输入引出功能性和输出处理功能性分布在客户端1304与服务器1340当中,其中输入引出的客户端部分1904a和输出处理的客户端部分1092a位于客户端1304处,且输入引出的服务器部分1094b和输出处理的服务器部分1092b位于服务器1340处。以下组件位于服务器1340处:·整个词汇1058b;·整个语言模式辨识器库1060b;·短期个人存储器的主版本1052b;·长期个人存储器的主版本1054b。在一个实施例中,客户端1304在本地维持这些组件的子集和/或部分,以改进响应性并减少对网络通信的依赖。可根据众所周知的高速缓冲存储器管理技术来维持和更新此些子集和/或部分。此些子集和/或部分包含,例如:·词汇子集1058a;·语言模式辨识器库的子集1060a;·短期个人存储器的高速缓冲存储器1052a;·长期个人存储器的高速缓冲存储器1054a。可将额外组件实施为服务器1340的部分,包含(例如):·语言解译器1070;·对话流处理器1080;·输出处理器1090;·域实体数据库1072;·任务流模型1086;·服务编排1082;·服务能力模型1088。下文将更详细地描述这些组件中的每一者。服务器1340通过在需要时与外部服务1360介接来获得额外信息。概念架构现在参看图1,展示智能自动化助理1002的特定实例实施例的简化框图。如本文更详细地描述,智能自动化助理系统的不同实施例可经配置、设计且/或可操作以提供大体上与智能自动化助理技术有关的各种不同类型的操作、功能性和/或特征。另外,如本文中更详细地描述,本文所揭示的智能自动化助理系统的各种操作、功能性和/或特征中的许多者可提供可实现或提供不同类型的优点和/或益处给与智能自动化助理系统交互的不同实体。图1中所示的实施例可使用上文所述的硬件架构中的任一者或使用不同类型的硬件架构来实施。举例来说,根据不同实施例,至少一些智能自动化助理系统可经配置、设计和/或可操作以提供各种不同类型的操作、功能性和/或特征,例如以下各者中的一者或一者以上(或其组合):·使经由因特网可用的数据和服务的应用自动化,以发现、寻找、挑选、购买、预订、订购产品和服务。除了使使用这些数据和服务的过程自动化之外,智能自动化助理1002还可同时实现数据和服务的若干来源的组合使用。举例来说,智能自动化助理1002可组合关于来自若干评论点的产品的信息,检查来自多个经销商的价格和可用性,且检查其位置和时间约束,且帮助用户找出对其问题的个人化解决方案。·使经由因特网可用的数据和服务的使用自动化,以发现、调查、选择、预订和以其它方式得知代办事项(包含(但不限于)电影、事件、表演、展览、放映和吸引人的事物);要去的地方(包含(但不限于)旅行目的地、旅馆和其它停留地方、地标和其它景点等);吃喝的地方(例如餐馆和酒吧),见面时间和地点,以及可在因特网上找到的娱乐或社会交互的任何其它来源。·经由原本由具有图形用户接口的专用应用程序提供的自然语言对话实现应用程序和服务的操作,所述图形用户接口包含搜索(包含基于位置的搜索);导航(地图和方向);数据库查找(例如通过姓名或其它特性来查找商店或人);获得天气情况和预报,检查市场物品的价格或金融交易的状态;监视交通或航班状态;存取和更新日历和日程表;管理提醒、警报、任务和计划;经由电子邮件或其它消息接发平台进行通信;以及本地或远程操作装置(例如,拨打电话,控制光和温度,控制家用安全装置,播放音乐或视频等)。在一个实施例中,助理1002可用以起始、操作和控制装置上可用的许多功能和应用程序。·提供对活动、产品、服务、娱乐来源、时间管理的个人推荐,或任何其它种类的推荐服务,其受益于自然语言的交互式对话以及对数据和服务的自动化存取。根据不同实施例,可在一个或一个以上客户端系统处、在一个或一个以上服务器系统处,和/或在其组合处实施由智能自动化助理1002提供的各种类型的功能、操作、动作和/或其它特征的至少一部分。根据不同实施例,由助理1002提供的各种类型的功能、操作、动作和/或其它特征的至少一部分可由自动化呼叫和响应程序的至少一个实施例实施,例如相对于图33所说明和描述的程序。另外,本文描述的助理1002的各种实施例可包含或提供优于当前存在的智能自动化助理技术的许多不同优点和/或益处,所述技术例如为以下各项中的一者或一者以上(或其组合):·语音-文本和自然语言理解技术的整合,其由域、任务、服务和对话的一组显式模型约束。不同于尝试实施通用人工智能系统的助理技术,本文所述的实施例可应用多个约束源来减少对较易驾驭大小的解决方案的数目。这导致较少的对语言的模糊解释、较少的相关域或任务,以及较少的使服务中的意图操作化的方式。对特定域、任务和对话的关注也使得实现对具有人类管理的词汇的域和任务的覆盖以及从意图到服务参数的映射是可行的。·通过使用API经由因特网代表其而调用服务来解决用户问题的能力。不同于仅返回链接和内容的搜索引擎,本文所述的自动化助理1002的实施例可使研究和问题解决活动自动化。针对给定请求而调用多个服务的能力还向用户提供比通过访问单个站点(例如)以产生产品或服务或寻找要做的事情而实现的功能性更广的功能性。·在用户请求的解译和执行中应用个人信息和个人交互历史。不同于常规搜索引擎或问题回答服务,本文所描述的实施例使用来自个人交互历史(例如,对话历史、来自结果的先前选择等)的信息、个人物理环境(例如,用户的位置和时间),以及在交互的上下文中搜集的个人信息(例如,姓名、电子邮件地址、物理地址、电话号码、账户号、偏好等)。使用这些信息源实现(例如),○对用户输入的更佳解译(例如,当解译语言时使用个人历史和物理环境);○更个人化的结果(例如,其偏向偏好或最近选择);○为用户改善的效率(例如,通过使涉及向服务签约或填写表格的步骤自动化)。·将对话历史用于解译用户输入的自然语言。因为所述实施例可保持个人历史,且应用对用户输入的自然语言理解,所以所述实施例还可使用对话上下文(例如当前位置、时间、域、任务步骤和任务参数来解译新输入。常规的搜索引擎和命令处理器独立于对话历史而解译至少一个查询。使用对话历史的能力可使更自然的交互成为可能,其类似于正常的人类谈话。·主动输入引出,其中助理1002基于用以解译其输入的相同模型和信息,主动引导和约束来自用户的输入。举例来说,助理1002可应用对话模型来建议与用户的对话中的接下来的步骤,其中所述步骤正细化请求;基于域和上下文特定可能性提供对部分键入的输入的完成;或使用语义解译来从语音为文本或文本为意图的模糊解译进行选择。·服务的显式建模和动态管理,其具有动态或稳健的服务编排。所述实施例的架构使助理1002能够与许多外部服务介接,动态地确定哪些服务可为特定用户请求提供信息,将用户请求的参数映射到不同服务API,一次呼叫多个服务,整合来自多个服务的结果,平稳地对失败的服务进行故障处理,和/或随着其API和能力演化而高效地维持服务的实施。·将主动本体用作用于构造助理1002的方法和设备,其简化自动化助理系统的软件工程设计和数据维护。主动本体是用于助理的对数据建模与执行环境的整合。其提供将各种模型和数据源(域概念、任务流、词汇、语言模式辨识器、对话上下文、用户个人信息,以及从域和任务请求到外部服务的映射)系在一起的框架。本文描述的主动本体和其它架构创新使得在域内构造深度功能性为实用的,从而统一多个信息和服务源,且在一组域上进行此活动。在至少一个实施例中,智能自动化助理1002可操作以在执行特定任务和/或操作时,利用和/或产生各种不同类型的数据和/或其它类型的信息。这可包含(例如)输入数据/信息和/或输出数据/信息。举例来说,在至少一个实施例中,智能自动化助理1002可操作以存取、处理和/或以其它方式利用来自一种或一种以上不同类型的来源(例如,一个或一个以上本地和/或远程存储器、装置和/或系统)的信息。另外,在至少一个实施例中,智能自动化助理1002可操作以产生一种或一种以上不同类型的输出数据/信息,所述输出数据/信息(例如)可存储在一个或一个以上本地和/或远程装置和/或系统的存储器中。可由智能自动化助理1002存取和/或利用的不同类型的输入数据/信息的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·来自移动装置的话音输入,所述移动装置例如为移动电话和平板计算机、具有麦克风的计算机、蓝牙手持机、汽车话音控制系统,经由电话系统、回答服务上的纪录、整合的消息接发服务上的音频话音邮件、具有例如时钟无线电等话音输入的消费型应用、电话台、家用娱乐控制系统,以及游戏控制台。·来自计算机或移动装置上的键盘、遥控器或其它消费型电子装置上的小键盘的文本输入;发送到助理的电子邮件消息;发送到助理的即时消息或类似的短消息;从多用户游戏环境中的玩家接收到的文本,以及在消息馈送中流式传输的文本。·来自传感器或基于位置的系统的位置信息。实例包含移动电话上的全球定位系统(GPS)和辅助式GPS(A-GPS)。在一个实施例中,位置信息与显式用户输入组合。在一个实施例中,本发明的系统能够基于已知地址信息和当前位置确定来检测用户何时在家。以此方式,可关于用户在家时可能感兴趣的与在家外相对的信息类型以及应取决于用户是否在家而代表用户调用的服务和动作的类型作出某些推断。·来自客户端装置上的时钟的时间信息。这可包含(例如)来自电话或其它客户端装置的指示本地时间和时区的时间。另外,时间可用于用户请求的上下文中(例如)以解译例如“在一小时内”和“今晚”等短语。·罗盘、加速计、陀螺仪和/或行进速度数据,以及来自移动或手持式装置或例如汽车控制系统等嵌入式系统的其它传感器数据。这还可包含来自电器的遥控器和游戏控制台的装置定位数据。·来自具有图形用户接口(GUI)的任何装置上的GUI的点击和菜单选择和其它事件。进一步实例包含对触摸屏的触摸。·来自传感器和其它数据驱动触发器(例如,闹钟、日历警告、价格改变触发器、位置触发器、从服务器到装置上的推送通知等)的事件。对本文所述的实施例的输入还包含用户交互历史(包含对话和请求历史)的上下文。可由智能自动化助理1002产生的不同类型的输出数据/信息的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·直接发送到输出装置和/或发送到装置的用户接口的文本输出·经由电子邮件发送给用户的文本和图形·经由消息接发服务发送给用户的文本和图形·语音输出,可包含以下各者中的一者或一者以上(或其组合):○经合成的语音○经取样的语音○经纪录的消息·具有照片、丰富文本、视频、声音和超链接的信息的图形布局。举例来说,在网络浏览器中再现的内容。·用以控制装置上的物理动作的致动器输出,例如致使装置接通或断开、发出声音、改变色彩、振动、控制光,等等。·调用装置上的其它应用程序,例如呼叫映射应用程序;话音拨打电话;发送电子邮件或即时消息;播放媒体;在日历、任务管理器和便笺应用程序以及其它应用程序中制作条目。·用以控制对由装置附着或控制的装置的物理动作的致动器输出,所述物理动作例如为操作远程相机、控制轮椅、在远程扬声器上播放音乐、在远程显示器上播放视频,等等。可了解,图1的智能自动化助理1002只是来自可实施的较广范围的智能自动化助理系统实施例的一个实例。智能自动化助理系统(未图示)的其它实施例可包含与(例如)在图1的实例智能自动化助理系统实施例中所说明的组件/特征相比是额外的、更少的和/或不同的组件/特征。用户交互现在参看图2,展示用户与智能自动化助理1002的至少一个实施例之间的交互的实例。图2的实例假定用户正使用输入装置1206向智能自动化助理1002说话,输入装置1206可为语音输入机构,且输出为到输出装置1207的图形布局,输出装置1207可为可滚动屏幕。谈话屏幕101A的特征为谈话用户接口,其展示用户所说的话101B(“我想去我办公室附近吃意大利餐的浪漫地方”)和助理1002的响应,所述响应为发现结果的概述101C(“好的,我找到这些意大利餐馆,评论说这些餐馆气氛浪漫,且靠近您工作的地方:”)以及一组结果101D(展示餐馆列表中的前三者)。在此实例中,用户在列表中的第一结果上点击,且所述结果自动打开以显现显示于信息屏幕101E中的关于所述餐馆的更多信息。信息屏幕101E和谈话屏幕101A可出现在同一输出装置(例如触摸屏或其它显示装置)上;图2中所描绘的实例为同一输出装置的两种不同输出状态。在一个实施例中,信息屏幕101E展示从多个服务搜集并组合的信息,包含(例如)以下各者中的任一者或全部:·商店的地址和地理位置;·距用户的当前位置的距离;·来自多个来源的评论;在一个实施例中,信息屏幕101E还包含助理1002可能代表用户提供的服务的一些实例,包含:·拨打电话以呼叫商店(“呼叫”);·记住此餐馆以供将来参考(“保存”);·将具有关于此餐馆的方向和信息的电子邮件发送给某人(“共享”);·在地图上展示此餐馆的位置和到此餐馆的方向(“在地图上显示它”);·保存关于此餐馆的个人便笺(“我的便笺”)。如图2的实例中所示,在一个实施例中,助理1002包含超过简单数据库应用程序的智能,例如,·处理自然语言101B中的意图陈述,不仅仅是关键字;·从所述语言输入推断语义意图,例如将“吃意大利餐的地方”解译为“意大利餐馆”;·将语义意图操作化为使用在线服务的策略,并代表用户执行所述策略(例如,将对浪漫地方的希望操作化为检查在线评论点以寻找将一个地方描述为“浪漫”的评论的策略)。智能自动化助理组件根据各种实施例,智能自动化助理1002可包含多种不同类型的组件、装置、模块、过程、系统等,其(例如)可经由使用硬件和/或硬件与软件的组合来实施和/或例示。举例来说,如图1的实例实施例中所说明,助理1002可包含以下类型的系统、组件、装置、过程等(或其组合)中的一者或一者以上:·一个或一个以上主动本体1050;·主动输入引出组件1094(可包含客户端部分1094a和服务器部分1094b);·短期个人存储器组件1052(可包含主版本1052b和高速缓冲存储器1052a);·长期个人存储器组件1054(可包含主版本1052b和高速缓冲存储器1052a);·域模型组件1056;·词汇组件1058(可包含整个词汇1058b和子集1058a);·语言模式辨识器组件1060(可包含完整库1060b和子集1560a);·语言解译器组件1070;·域实体数据库1072;·对话流处理器组件1080;·服务编排组件1082;·服务组件1084;·任务流模型组件1086;·对话流模型组件1087;·服务模型组件1088;·输出处理器组件1090。如结合图7所述,在某些基于客户端/服务器的实施例中,这些组件中的一些或全部可分布在客户端1304与服务器1340之间。出于说明的目的,现在将参考图1的实例智能自动化助理1002实施例更详细地描述智能自动化助理1002的特定实例实施例的不同类型的组件的至少一部分。主动本体1050主动本体1050充当统一架构,其整合来自智能自动化助理1002的实施例的其它部分的模型、组件和/或数据。在计算机和信息科学领域中,本体提供用于数据和知识表示的结构,例如类/类型、关系、属性/特性,以及其在例子中的例示。本体例如用以建立数据和知识的模型。在智能自动化系统1002的一些实施例中,本体是在其中构造例如域模型等模型的建模框架的部分。在本发明的上下文内,“主动本体”1050还可充当执行环境,其中不同处理元素以类似本体的方式布置(例如,具有与其它处理元素不同的属性和关系)。这些处理元素执行智能自动化助理1002的任务中的至少一些任务。可提供任何数目的主动本体1050。在至少一个实施例中,主动本体1050可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·充当建模和开发环境,其整合来自各种模型和数据组件的模型和数据,包含(但不限于)○域模型1056○词汇1058○域实体数据库1072○任务流模型1086○对话流模型1087○服务能力模型1088·充当数据建模环境,基于本体的编辑工具可在其上操作以开发新的模型、数据结构、数据库基模以及表示。·充当实况执行环境,其例示域1056、任务1086和/或对话模型1087、语言模式辨识器和/或词汇1058的元素的值,以及例如在短期个人存储器1052、长期个人存储器1054和/或服务编排1182的结果中找到的用户特定信息。举例来说,主动本体的一些节点可对应于域概念(例如餐馆)以及其特性(餐馆名称)。在实况执行期间,这些主动本体节点可用特定餐馆实体的身份及其名称以及其名称如何对应于自然语言输入表达中的字来例示。因此,在此实施例中,主动本体正用作指定餐馆为具有身份(其具有名称)的实体的概念的建模环境,且用于存储那些建模节点与来自实体数据库的数据以及自然语言的解析的动态绑定。·实现智能自动化助理的组件和处理元件之间的通信和协调,所述组件和处理元件例如为以下各者中的一者或一者以上(或其组合):○主动输入引出组件1094○语言解译器组件1070○对话流处理器组件1080○服务编排组件1082○服务组件1084在一个实施例中,本文描述的主动本体1050的功能、操作、动作和/或其它特征的至少一部分可至少部分地使用2006年9月8日申请的第11/518,292号美国专利申请案“用于构造智能自动化助理的方法和设备(MethodandApparatusforBuildinganIntelligentAutomatedAssistant)”中描述的各种方法和设备来实施。在至少一个实施例中,主动本体1050的给定例子可从一个或一个以上相关联的数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由主动本体1050存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·静态数据,其可从智能自动化助理1002的一个或一个以上组件获得;·在每个用户会话动态例示的数据,例如(但不限于)维持在智能自动化助理1002的组件之间交换的用户特定输入和输出的状态,短期个人存储器的内容,从用户会话的先前状态作出的推断,等等。以此方式,主动本体1050用以统一智能自动化助理1002中的各种组件的元素。主动本体1050允许作者、设计者或系统构造者整合组件,使得用其它组件的元素来识别一个组件的元素。作者、设计者或系统构造者可因此较容易地组合和整合组件。现在参看图8,展示根据一个实施例的主动本体1050的片段的实例。此实例意在帮助说明可由主动本体1050提供的各种类型的功能、操作、动作和/或其它特征中的一些。图8中的主动本体1050包含餐馆和用餐事件的表示。在此实例中,餐馆是具有例如其名称1612、所提供菜系1615以及其位置1613等特性的概念1610,其又可建模为具有街道地址1614的特性的结构化节点。用餐事件的概念可建模为节点1616,节点1616包含聚餐1617(其具有规模1619)和时间周期1618。·主动本体可包含和/或作出对域模型1056的参考。举例来说,图8描绘链接到餐馆概念1610和用餐事件概念1616的外出就餐域模型1622。在此例子中,主动本体1050包含外出就餐域模型1622;具体地说,主动本体1050的至少两个节点(即餐馆1610和用餐事件1616)也包含在外出就餐域模型1622中且/或由外出就餐域模型1622参考。此域模型尤其表示外出就餐涉及发生在餐馆的用餐事件的理念。主动本体节点餐馆1610和用餐事件1616也由智能自动化助理(由图8中的虚线展示)的其它组件包含和/或参考。·主动本体可包含和/或参考任务流模型1086。举例来说,图8描绘事件规划任务流模型1630,其独立于应用于域特定种类的事件:用餐事件1616的域而对事件的规划进行建模。此处,主动本体1050包含一般事件规划任务流模型1630,一般事件规划任务流模型1630包括表示事件以及对其进行规划时所涉及的其它概念的节点。主动本体1050还包含节点用餐事件1616,其为特定种类的事件。在此实例中,用餐事件1616由域模型1622和任务流模型1630包含或参考,且这些模型两者均包含在主动本体1050中且/或由主动本体1050参考。并且,用餐事件1616为主动本体可如何统一由图8中的虚线所示的智能自动化助理的其它组件包含且/或参考的各种组件的元件的实例。·主动本体可包含且/或参考对话流模型1087。举例来说,图8描绘对话流模型1642,其用于获得在如概念1619中所表示的约束聚会规模上所例示的交易所需的约束的值。并且,主动本体1050提供用于关联和统一例如对话流模型1087等各种组件的框架。在此情况下,对话流模型1642具有在此特定实例中例示的对主动本体节点聚会规模1619的约束的一般概念。此特定对话流模型1642独立于域而以约束的抽象物操作。主动本体1050表示聚会节点1617的聚会规模特性1619,其与用餐事件节点1616有关。在此实施例中,智能自动化助理1002使用主动本体1050来统一对话流模型1642中的约束概念与聚会规模1619的特性,以作为表示用餐事件概念1616的节点群集的一部分,用餐事件概念1616为域模型1622的用于外出就餐的部分。·主动本体可包含且/或参考服务模型1088。举例来说,图8描绘餐馆预订服务1672的模型,所述模型与用于获得所述服务执行交易所需的值的对话流步骤相关联。在此例子中,用于餐馆预订服务的服务模型1672指定预订需要聚会规模1619的值(坐在预订桌子旁的人数)。概念聚会规模1619(其为主动本体1050的一部分)还链接到一般对话流模型1642或与一般对话流模型1642有关,用于询问用户关于对交易的约束;在此例子中,聚会规模是对话流模型1642所需的约束。·主动本体可包含且/或参考域实体数据库1072。举例来说,图8描绘与主动本体1050中的餐馆节点1610相关联的餐馆的域实体数据库1652。主动本体1050表示餐馆的一般概念1610,其可由智能自动化助理1002的各种组件使用,且其由关于餐馆数据库1652中的特定餐馆的数据例示。·主动本体可包含且/或参考词汇数据库1058。举例来说,图8描绘菜系词汇数据库1662,例如意大利、法国等,以及与每一菜系相关联的字,例如“法国”、“欧洲”、“省”等。主动本体1050包含餐馆节点1610,其与所提供菜系节点1615有关,所提供菜系节点1615与菜系数据库1662中的菜系的表示相关联。数据库1662中用于一菜系的特定条目(例如“法国”)因此通过主动本体1050作为所提供菜系1615的概念的例子而相关。·主动本体可包含且/或参考可映射到本体1050中的概念或其它表示的任何数据库。域实体数据库1072和词汇数据库1058仅为主动本体1050可如何将数据库彼此整合且与自动化助理1002的其它组件整合的两个实例。主动本体允许作者、设计者或系统构造者指定数据库中的表示与本体1050中的表示之间的非平凡映射。举例来说,用于餐馆数据库1652的数据库模式可将餐馆表示为字符串和数字的表,或表示为从较大的商店数据库的投射,或适合于数据库1652的任何其它表示。在此实例主动本体1050中,餐馆1610为具有以与数据库表不同的方式组织的特性和关系的概念节点。在此实例中,本体1050的节点与数据库基模的元素相关联。数据库与本体1050的整合提供用于依据主动本体1050中的模型和数据的较大集合而解译数据库中的特定数据条目且对其作用的统一表示。举例来说,字“法国”可为菜系数据库1662中的条目。因为在此实例中,数据库1662整合在主动本体1050中,相同的字“法国”也具有作为在餐馆处提供的可能菜系的解译,其在规划用餐事件中涉及,且此菜系充当在使用餐馆预订服务等时使用的约束。主动本体可因此将数据库整合到建模和执行环境中,以与自动化助理1002的其它组件互操作。如上文所述,主动本体1050允许作者、设计者或系统构造者整合组件;因此,在图8的实例中,组件的元素(例如对话流模型1642中的约束)可用其它组件的元素(例如餐馆预订服务1672的所需参数)识别。主动本体1050可体现为(例如)模型、数据库和组件的配置,其中模型、数据库和组件间的关系为以下各者中的任一者:·容器和/或包含;·具有链接和/或指针的关系;·经由API的接口,两者均在程序内部和程序之间。举例来说,现在参看图9,展示智能自动化助理系统1002的替代实施例的实例,其中域模型1056、词汇1058、语言模式辨识器1060、短期个人存储器1052以及长期个人存储器1054的组件在与主动本体1050相关联的共用容器下组织,且例如主动输入引出组件1094、语言解译器1070以及对话流处理器1080等其它组件经由API关系与主动本体1050相关联。主动输入引出组件1094在至少一个实施例中,主动输入引出组件1094(如上文所述,其可实施于独立配置中或包含服务器和客户端组件两者的配置中)可为可操作的,以执行且/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·引出、促进和/或处理来自用户或用户的环境的输入,和/或关于用户的需要或请求的信息。举例来说,如果用户正希望找到餐馆,那么输入引出模块可获得关于用户对位置、事件、菜系、价格等的约束或偏好的信息。·促进来自各种来源的不同种类的输入,例如以下各者中的一者或一者以上(或其组合):○来自产生文本的键盘或任何其它输入装置的输入○来自提供对部分输入的动态所建议完成的用户接口中的键盘的输入○来自话音或语音输入系统的输入○来自图形用户接口(GUI)的输入,其中用户点击、选择或以其它方式直接操纵图形对象以指示选择○来自产生文本并将其发送到自动化助理的其它应用程序的输入,所述其它应用程序包含电子邮件、文本消息接发,或其它文本通信平台通过执行主动输入引出,助理1002能够在输入处理的早期阶段消除意图的歧义。举例来说,在其中输入由语音提供的实施例中,可将波形发送到服务器1340,可在服务器1340处提取字,且执行语义解译。可接着使用此语义解译的结果来驱动主动输入引出,其可向用户提供替代候选字,以基于其语义配合程度以及发音匹配而挑选。在至少一个实施例中,主动输入引出组件1094主动、自动且动态地将用户引导向可由助理1002的实施例所提供的服务中的一者或一者以上作用的输入。现在参看图10,展示了描绘根据一个实施例的用于主动输入引出组件1094的操作方法的流程图。程序开始20。在步骤21中,助理1002可提供一个或一个以上输入通道上的接口。举例来说,用户接口可提供用户选项,以说出或键入或点按谈话交互的任何阶段。在步骤22中,用户通过在一个形态上起始输入(例如按压按钮以开始纪录语音或引出接口以用于键入)来选择输入通道。在至少一个实施例中,助理1002提供对选定形态的默认建议23。也就是说,助理1002提供选项24,选项24在用户在所述形态上输入任何输入之前在当前上下文中相关。举例来说,在文本输入形态中,助理1002可提供将开始文本请求或命令的常见字列表,例如以下各者中的一者或一者以上(或其组合):命令式动词(例如,寻找、购买、预订、获得、呼叫、检查、调度等)、名词(例如,餐馆、电影、事件、商店等),或对谈论域命名的类似菜单的选项(例如,天气、体育、新闻等)。如果用户在25中选择默认选项中的一者,且对自动提交30的偏好被设定,那么程序可立即返回。这类似于常规菜单选择的操作。然而,可将初始选项视为部分输入,或用户可能已开始输入部分输入26。在输入的任何点处,在至少一个实施例中,用户可选择指示部分输入完成22,这致使程序返回。在28中,将最新输入(不管是被选择还是被输入的)与累积输入相加。在29中,在给定当前输入以及对什么构成相关和/或有意义的输入的约束的其它来源的情况下,系统建议接下来可能的相关输入。在至少一个实施例中,对用户输入的约束的来源(例如,其用于步骤23和29中)为可包含于助理1002中的各种模型和数据源中的一者或一者以上,其可包含(但不限于)以下各者中的一者或一者以上(或其组合):·词汇1058。举例来说,可建议与当前输入匹配的字或短语。在至少一个实施例中,词汇可与主动本体、域模型、任务模型、对话模型和/或服务模型中的任一节点或一个或一个以上节点相关联。·域模型1056,其可约束可例示或以其它方式与域模型一致的输入。举例来说,在至少一个实施例中,域模型1056可用以建议将与当前输入一致的概念、关系、特性和/或例子。·语言模式辨识器1060,其可用以辨识当前输入中的惯用语、短语、语法构造或其它模式,且用以建议填充所述模式的完成。·域实体数据库1072,其可用以建议与输入匹配的域中的可能实体(例如,商店名称、电影名称、事件名称等)。·短期存储器1052,其可用以匹配任何先前输入或先前输入的部分,和/或关于与用户交互的历史的任何其它特性或详情。举例来说,可将部分输入与用户在会话中已遇到的城市匹配,不管是假想地(例如,在查询中提到)且/或实际的(例如,如从位置传感器确定)。·在至少一个实施例中,可使最近输入、请求或结果的语义释义与当前输入匹配。举例来说,如果用户先前已请求“实况音乐”且获得音乐会列表,且接着将“音乐”键入主动输入引出环境中,那么建议可包含“实况音乐”和/或“音乐会”。·长期个人存储器1054,其可用以建议匹配来自长期存储器的项目。此些匹配项目可包含(例如)以下各者中的一者或一者以上或任一组合:被保存的域实体(例如,“喜爱的”餐馆、电影、剧院、比赛地点等)、待办事项项目、列表项目、日历条目、联系人/地址簿中的人名、联系人/地址簿中所提到的街道或城市名,等等。·任务流模型1086,其可用以基于任务流中的接下来的可能步骤而建议输入。·对话流模型1087,其可用以基于对话流中的接下来可能步骤而建议输入。·服务能力模型1088,其可用以通过模型中的名称、类别、能力或任何其它特性来建议要使用的可能服务。举例来说,用户可键入优选的评论点的名称的部分,且助理1002可建议用于查询所述评论点以进行评论的完整命令。在至少一个实施例中,主动输入引出组件1094向用户呈现谈话接口,例如其中用户和助理通过使言论以谈话方式来回而通信的接口。主动输入引出组件1094可为可操作的,以执行且/或实施各种类型的谈话接口。在至少一个实施例中,主动输入引出组件1094可为可操作的,以执行且/或实施各种类型的谈话接口,其中助理1002使用谈话层级来根据对话模型提示来自用户的信息。对话模型可表示用于执行对话的程序,例如引出执行服务所需的信息所需的一系列步骤。在至少一个实施例中,在用户正在键入、讲话或以其它方式创建输入中的同时,主动输入引出组件1094实时地向用户提供约束和向导。举例来说,主动引出可引导用户键入文本输入,所述文本输入可由助理1002的实施例辨识,且/或可由助理1002的实施例所提供的一个或一个以上服务来服务。这是优于被动等待来自用户的未受约束输入的优点,因为其使用户的努力能够集中在可有用或可能有用的输入上,且/或其使助理1002的实施例能够在用户正输入输入时,实时地应用其对所述输入的解译。本文描述的主动输入引出的功能、操作、动作和/或其它特征的至少一部分可至少部分地使用2006年9月8日申请的第11/518,292号美国专利申请案“用于构造智能自动化助理的方法和设备(MethodandApparatusforBuildinganIntelligentAutomatedAssistant)”中描述的各种方法和设备来实施。根据特定实施例,主动输入引出组件1094的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。根据不同实施例,主动输入引出组件1094的一个或一个以上不同线程或例子可响应于检测到满足用于触发主动输入引出组件1094的至少一个例子的起始的一个或一个以上不同类型的最小阈值准则的一个或一个以上条件或事件而起始。可触发主动输入引出组件1094的一个或一个以上不同线程或例子的起始和/或实施的条件或事件的各种实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·用户会话的开始。举例来说,当用户会话启动作为助理1002的实施例的应用程序时,接口可例如通过按压按钮以起始语音输入系统或在文本字段上点击以起始文本输入会话而为用户提供起始输入的机会。·检测到的用户输入。·当助理1002明确地提示用户进行输入时,如当其请求对问题的响应或提供从中进行选择的接下来步骤的菜单时。·当助理1002正帮助用户执行交易,且正搜集用于所述交易的数据(例如填写表格)时。在至少一个实施例中,主动输入引出组件1094的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由主动输入引出组件1094存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·将在文本输入中使用的可能的字的数据库;·将在文本输入言论中使用的可能的短语的语法;·语音输入的可能解译的数据库;·来自用户或来自其它用户的先前输入的数据库;·来自可为助理1002的实施例的部分的各种模型和数据源中的任一者的数据,其可包含(但不限于)以下各者中的一者或一者以上(或其组合):·域模型1056;·词汇1058;·语言模式辨识器1060;·域实体数据库1072;·短期存储器1052;·长期个人存储器1054;·任务流模型1086;·对话流模型1087;·服务能力模型1088。根据不同实施例,主动输入引出组件1094可将主动引出程序应用于(例如)以下各者中的一者或一者以上(或其组合):·所键入输入;·语音输入;·来自图形用户接口(GUI)的输入,包含手势;·来自对话中提供的建议的输入;以及·来自计算和/或感测到的环境的事件。主动所键入输入引出现在参看图11,展示了描绘根据一个实施例的用于主动所键入输入引出的方法的流程图。所述方法开始110。助理1002例如经由输入装置1206接收111部分文本输入。部分文本输入可包含(例如)在文本输入字段中到现在为止已键入的字符。在任何时间,用户可例如通过按压回车键来指示所接入输入完成112。如果未完成,那么建议产生器产生114候选建议116。这些建议可为基于本文所述的信息或约束来源中的任一者的句法、语义和/或其它种类的建议。如果选择118所述建议,那么将所述输入转变117为包含选定建议。在至少一个实施例中,所述建议可包含对当前输入的扩展。举例来说,对“rest”的建议可为“restaurants”。在至少一个实施例中,所述建议可包含对当前输入的部分的替代。举例来说,对“rest”的建议可为“吃饭的地方”。在至少一个实施例中,所述建议可包含替代和释义当前输入的部分。举例来说,如果当前输入为“寻找有风格的餐馆”,那么建议可为“意大利”,且当所述建议被选择时,整个输入可重写为“寻找意大利餐馆”。在至少一个实施例中,对返回的所得输入作注解119,使得关于在118中作出的选择的信息连同文本输入一起保存。这使得(例如)字符串潜在的语义概念或实体在返回时能够与所述字符串相关联,这提高了后续语言解译的准确性。现在参看图12到21,展示了说明根据一个实施例的用于主动所键入输入引出的程序中的一些程序的一些部分的屏幕截图。屏幕截图描绘如在例如可从例如加利福尼亚州库珀蒂诺市的苹果公司购得的iPhone等智能电话上实施的助理1002的实施例的实例。经由触摸屏(包含屏幕上键盘功能性)向此装置提供输入。所属领域的技术人员将认识到,屏幕截图描绘仅为示范性的实施例,且本发明的技术可实施于其它装置上,且使用其它布局和布置。在图12中,屏幕1201包含当字段1203中尚未提供输入时展示的建议1202的高级集合。这对应于应用于图11的步骤114的图10的无输入步骤23,其中不存在输入。在图13中,屏幕1301描绘词汇的使用的实例,以提供对使用屏幕上键盘1304在字段1203中输入的部分用户输入1305的所建议完成1303。这些所建议完成1303可为主动输入引出1094的功能的部分。用户已输入部分用户输入1305,包含字符串“comm”。词汇组件1058已提供此字符串到三种不同种类的例子(其列举为所建议完成1303)的映射:短语“社区和本地事件”为事件域的类别;“商会”为本地商店搜索域的类别,且“犹太社区中心”为本地商店的例子的名称。词汇组件1058可提供对与这些类似的名称空间的数据查找和管理。用户可点按Go按钮1306,以指示他或她已完成输入输入;这致使助理1002以完成的文本字符串作为用户输入的单元继续下去。在图14中,屏幕1401描绘一实例,其中用于部分字符串“wh”1305的所建议语义完成1303包含具有所键入参数的完整短语。可通过使用本文所述的输入约束的各种模型和来源中的一者或一者以上来实现这些种类的建议。举例来说,在图14中所示的一个实施例中,“市里正发生什么”是本地事件域的位置参数的主动引出;“商店名称在哪”是本地商店搜索域的商店名称约束的主动引出;“比赛地点名称处正展示的是什么”是本地事件域的比赛地点名称约束的主动引出;且“电影院正在播放什么”是本地事件域的电影院名称约束的主动引出。这些实例说明所建议的完成是由模型产生,而不是简单地从先前输入的查询的数据库抽取。在图15中,屏幕1501描绘在用户已在字段1203中输入额外文本1305之后的同一实例的接续部分。更新所建议完成1303以与额外文本1305匹配。在此实例中,使用来自域实体数据库1072的数据:名称以“f”开头的比赛地点。注意,这是显著比以“f”开头的所有字小且语义上更相关的建议集合。并且,通过应用模型(在此情况下为将本地事件表示为在比赛地点发生的域模型)来产生建议,其为具有名称的商店。建议主动地引出输入,其将在使用本地事件服务时潜在地形成有意义的条目。在图16中,屏幕1601描绘在用户已选择所建议完成1303中的一者之后的同一实例的接续部分。主动引出通过提示用户进一步指定所要信息的类型,此处通过用户可从中进行选择的许多分类符1602而继续。在此实例中,这些分类符由域、任务流和对话流模型产生。所述域为本地事件,其包含在位置中在若干日期发生的事件的类别,且具有事件名称和特征执行者。在此实施例中,将这五个选项提供给用户的事实是从以下两者产生:指示应询问用户他们尚未输入的约束的对话流模型以及指示这五个约束为助理可用的本地事件服务的参数的服务模型。甚至对优选短语将用作分类符(例如“按类别”和“特征化”)的选择是从域词汇数据库产生。在图17中,屏幕1701描绘在用户已选择分类符1602中的一者之后的同一实例的接续部分。在图18中,屏幕1801描绘同一实例的接续部分,其中已将选定分类符1602添加到字段1203,且呈现额外分类符1602。用户可选择分类符1602中的一者,且/或经由键盘1304提供额外的文本输入。在图19中,屏幕1901描绘同一实例的接续部分,其中已将选定分类符1602添加到字段1203,且呈现更多的分类符1602。在此实例中,并不冗余地主动引出先前输入的约束。在图20中,屏幕2001描绘同一实例的接续部分,其中用户已点按Go按钮1306。在框2002中展示用户的输入,且在框2003中展示消息,从而将关于正响应于用户的输入而执行查询的反馈提供给用户。在图21中,屏幕2101描绘同一实例的接续部分,其中已找到结果。在框2102中展示消息。结果2103(包含允许用户查看进一步详情的输入元件)保存所识别的事件、买票、添加注释等。在一个屏幕2101以及其它所显示屏幕中是可滚动的,从而允许用户向上滚动以查看屏幕2001或其它先前呈现的屏幕,且在需要时对所述查询作出改变。主动语音输入引出现在参看图22,展示了描绘根据一个实施例的用于话音或语音的主动输入引出的方法的流程图。方法开始221。助理1002接收121呈听觉信号的形式的话音或语音输入。语音-文本服务122或处理器产生听觉信号的一组候选文本解译124。在一个实施例中,使用(例如)可从马萨诸塞州伯灵顿市的纽昂斯通信公司(NuanceCommunications,Inc.)购得的纽昂斯辨识器(NuanceRecognizer)来实施语音-文本服务122。在一个实施例中,助理1002使用统计语言模型来产生语音输入121的候选文本解译124。另外,在一个实施例中,调谐统计语言模型以寻找出现在图8中所示的助理1002的各种模型中的字、名称和短语。举例来说,在至少一个实施例中,统计语言模型为来自以下各者中的一些或全部的给定字、名称和短语:域模型1056(例如,与餐馆和用餐事件有关的字和短语)、任务流模型1086(例如,与规划一事件有关的字和短语)、对话流模型1087(例如,与搜集用于餐馆预订的输入所需的约束有关的字或短语)、域实体数据库1072(例如,餐馆的名称)、词汇数据库1058(例如,菜系名称)、服务模型1088(例如,服务名称提供(例如)打开表(OpenTable)),和/或与主动本体1050的任一节点相关联的任何字、名称或短语。在一个实施例中,还调谐统计语言模型以寻找来自长期个人存储器1054的字、名称和短语。举例来说,统计语言模型可为来自待办事项项目、列表项目、个人便笺、日历条目、联系人/地址簿中的人名、联系人/地址簿中所提到的街道或城市名等的给定文本。分等级组件分析候选解译124且根据其与智能自动化助理1002的语法和/或语义模型的配合程度而对其进行分等级126。可使用对用户输入的任何约束源。举例来说,在一个实施例中,助理1002可根据解译在语法和/或语义意义上、域模型、任务流模型和/或对话模型和/或类似物中解析的程度来对语音-文本解译器的输出进行分等级:助理1002评估文本解译124中的字的各种组合将与主动本体1050及其相关联模型的概念、关系、实体和特性的配合程度。举例来说,如果语音-文本服务122产生两个候选解译“午餐吃意大利食物”以及“午餐穿意大利鞋”,通过语义相关进行分等级可将“午餐吃意大利食物”分较高等级(如果其与节点助理1002的主动本体1050更匹配(例如,字“意大利”、“食物”和“午餐”全部与本体1050中的节点匹配,且其全部是通过本体1050中的关系连接,而字“鞋”并不与本体1050匹配或与不是外出就餐域网络的一部分的节点匹配))。在各种实施例中,可使用由助理1002用于解译文本输入的算法或程序(包含图28中所示的自然语言处理程序的任何实施例)对由语音-文本服务122产生的候选文本解译124进行分等级和评分。在一个实施例中,如果分等级组件126确定128来自解译124的最高等级语音解译分在指定阈值之上,那么可自动选择130最高等级解译。如果没有解译分在指定阈值之上,那么向用户呈现132语音134的可能候选解译。用户可接着在所显示选择当中进行选择136。在各种实施例中,可通过任何输入模式(包含例如结合图16所述的多模式输入模式中的任一者)来实现在所显示选择当中的用户选择136。此些输入模式包含(不限于)主动引出的所键入输入2610、主动引出的语音输入2620、用于输入的主动呈现的GUI2640,和/或类似物。在一个实施例中,用户可例如通过点按或讲话来在候选解译134之间进行选择。在讲话的情况下,新语音输入的可能解译受所提供的小选择集合134高度约束。举例来说,如果提供“你的意思是意大利食物还是意大利鞋?”,那么用户可仅说“食物”,且助理可将此与短语“意大利食物”匹配,且不会将其与输入的其它全局解译混淆。不管自动选择130还是由用户选择136输入,均返回所得输入138。在至少一个实施例中,对返回的输入作注解138,使得关于在步骤136中作出的选择的信息连同文本输入一起被保留。这使得(例如)字符串潜在的语义概念或实体在返回时能够与所述字符串相关联,这提高了后续语言解译的准确性。举例来说,如果基于菜系=意大利食物的语义解译将“意大利食物”提供作为候选解译134中的一者,那么可连同用户对作为带注解的文本输入138的字符串“意大利食物”的选择而发送机器可读语义解译。在至少一个实施例中,基于作为语音-文本服务122的输出而接收到的语音解译而产生候选文本解译124。在至少一个实施例中,通过依据语音解译的语义意义对其进行释义而产生候选文本解译124。在一些实施例中,可存在同一语音解译的多个释义,从而提供不同的词感或同音替代物。举例来说,如果语音-文本服务122指示“用于见面的地方”,那么向用户呈现的候选解译可释义为“见面的地方(本地商店)”和“用于吃饭的地方(餐馆)”。在至少一个实施例中,候选文本解译124包含对正确子字符串的提供。在至少一个实施例中,候选文本解译124包含使用如本文所述的语法和语义分析对候选解译的正确子字符串的提供。在至少一个实施例中,当用户选择候选解译时,其返回。在至少一个实施例中,在返回之前向用户提供编辑解译的接口。在至少一个实施例中,向用户提供在返回输入之前以更多话音输入继续的接口。这使得能够递增地建立输入言论,从而在一个反复中获得语法和语义校正、建议和向导。在至少一个实施例中,向用户提供直接从136进行到主动所键入输入引出的方法(上文结合图11而描述)的步骤111的接口。这使得能够使所键入和口述输入交错,从而在一个步骤处获得语法和语义校正、建议和向导。在至少一个实施例中,向用户提供直接从主动所键入输入引出的实施例的步骤111直接进行到主动语音输入引出的实施例的接口。这使得能够使所键入和口述输入交错,从而在一个步骤处获得语法和语义校正、建议和向导。基于主动GUI的输入引出现在参看图23,展示描绘根据一个实施例的用于基于GUI的输入的主动输入引出的方法的流程图。所述方法开始140。助理1002在输出装置1207上呈现141图形用户接口(GUI),其可包含(例如)链接和按钮。用户与至少一个GUI元件交互142。接收数据144,并将其转换146为统一格式。接着返回经转换的数据。在至少一个实施例中,GUI的元件中的一些元件是从主动本体的模型动态地产生,而不是写入到计算机程序中。举例来说,助理1002可提供一组约束以将餐馆预订服务引导为用于在屏幕上点按的区,其中每一区表示约束的名称和/或值。举例来说,屏幕可具有动态产生的GUI布局的行,所述GUI布局具有用于约束(菜系、位置和价格范围)的区。如果主动本体的模型改变,那么GUI屏幕将自动改变而无需重新编程。主动对话建议输入引出。图24是描绘根据一个实施例的用于在对话流等级下的主动输入引出的方法的流程图。助理1002建议151可能的响应152。用户选择154所建议的响应。将接收到的输入转换154为统一格式。接着返回经转换的数据。在至少一个实施例中,在步骤151中提供的建议是作为对话和/或任务流中的后继步骤而提供。在至少一个实施例中,所述建议提供用以例如使用来自域和/或任务模型的参数来细化查询的选项。举例来说,可提议某人改变请求的假定位置或时间。在至少一个实施例中,所述建议提供用以在由语言解译程序或组件给出的模糊替代性解译当中进行选择的选项。在至少一个实施例中,所述建议提供用以在由语言解译程序或组件给出的模糊替代性解译当中进行选择的选项。在至少一个实施例中,所述解译提供用以在与工作流相关联的对话流模型1087中的接下来步骤当中进行选择的选项。举例来说,对话流模型1087可建议在搜集到对一个域(例如,餐馆就餐)的约束之后,助理1002应建议其它相关域(例如,附近的电影院)。对相关事件的主动监视在至少一个实施例中,可以与主动引出的输入的其它形态类似的方式将异步事件视为输入。因此,可将此些事件提供作为助理1002的输入。一旦被解译,就可以与任何其它输入类似的方式来看待此些事件。举例来说,航班状态改变可起始待发送给用户的警报通知。如果航班被指示为晚点,那么助理1002可基于检测到的事件,通过呈现替代航班、作出其它建议等来继续对话。此些事件可为任何类型。举例来说,助理1002可检测到用户刚回家,或迷路了(离开指定路线),或股票价格达到阈值,或用户感兴趣的电视节目正开始,或受关注的音乐家正在该地区旅行。在这些情形中的任一者中,助理1002可以与用户自己起始询问大体上相同的方式来进行对话。在一个实施例中,事件甚至可基于从其它装置提供的数据,(例如)以告诉用户同事何时已吃午饭回来(所述同事的装置可将此事件用信号发送到用户的装置,此时,安装在用户的装置上的助理1002相应地响应)。在一个实施例中,所述事件可为来自日历、时钟、提醒或待办事项应用程序的通知或警报。举例来说,来自日历应用程序的关于晚餐日期的警报可起始与助理1002的关于就餐事件的对话。对话可像用户刚刚说出或键入关于即将到来的晚餐事件的信息(例如,“在旧金山2人晚餐)那样进行。在一个实施例中,可能的事件触发器162的上下文可包含关于人、地方、事件和其它数据的信息。可将这些数据用作对助理1002的输入的部分,以用于处理的各种步骤中。在一个实施例中,来自事件触发器162的上下文的这些数据可用以消除来自用户的语音或文本输入的歧义。举例来说,如果日历事件警报包含受邀参与所述事件的人的名字,那么所述信息可帮助消除可能与具有相同或类似名字的若干人匹配的输入的歧义。现在参看图25,展示了描绘根据一个实施例的用于主动监视相关事件的方法的流程图。在此实例中,事件触发器事件为输入集合162。助理1002监视161以寻找此些事件。可使用可从智能自动化助理1002中的其它组件获得的模型、数据和信息来对检测到的事件进行过滤和分类164以获得语义相关度。举例来说,如果用户的短期或长期存储器纪录指示用户正在那个航班上且/或已向助理1002作出关于其的询问,那么可给予报告航班状态的变化的事件较高相关度。此分类和过滤可接着仅呈现顶部事件供用户检视,用户可接着选择挑选一者或一者以上并对其作用。将事件数据转换166为统一输入格式,且返回。在至少一个实施例中,助理1002可前摄地提供与曾针对用户关注而建议的事件相关联的服务。举例来说,如果航班状态警报指示可能错过航班,那么助理1002可向用户建议用于重新规划路线或预订旅馆的任务流。输入引出组件实例:以下实例意在帮助说明可由主动输入引出组件1094提供的各种类型的功能、操作、动作和/或其它特征中的一些。实例:命令完成(用户可对助理1002说什么?)用户正面对具有输入“您想做什么?”的笼统指令的文本输入框。取决于上下文和用户输入,提供若干系统响应中的任一者。实例展示如下。情况:空值输入情况:第一字输入情况:关键字输入情况:针对争论进行提示情况:建议准则情况:添加准则情况:添加位置或其它约束情况:从约束、未知任务或域开始实例:名称完成此处,用户已键入某一文本,而不接受命令中的任一者,或他或她仅用实体名称来扩展命令。系统可试图依据上下文完成所述名称。这也消除域的歧义。情况:不具有上下文的字情况:具有上下文的名称实例:从集合中选择值此处,用户正响应系统请求以输入特定参数(例如位置、时间、菜系或类型)的值。用户可从列表中选择值或输入值。当她键入时,来自列表的匹配项目展示为选项。实例展示如下。情况:值类选择实例:再用先前命令先前查询也是用以在自动完成接口中完成的选项。所述查询可仅匹配为字符串(当输入字段为空,且不存在已知约束时),或在某些情形中时其可建议为相关。情况:完成先前查询实例:检索个人存储器项目助理1002可记起个人存储器中与用户相关联的某些事件和/或实体。可基于此些所记起的项目来执行自动完成。实例在下文出现。情况:对个人存储器中的事件和实体的完成多模式主动输入引出在至少一个实施例中,主动输入引出组件1094可处理来自多个输入形态的输入。可使用利用特定种类的输入以及用于从所建议的选项中进行选择的方法的主动输入引出程序来实施至少一个形态。如本文所述,其可为用于文本输入、语音输入、基于GUI的输入、对话的上下文中的输入和/或由事件触发器产生的输入的主动输入引出的程序的实施例。在至少一个实施例中,对于智能自动化助理1002的单个例子,可存在对一个或一个以上(或其组合)所键入输入、语音输入、GUI输入、对话输入和/或事件输入的支持。现在参看图26,展示了描绘根据一个实施例的用于多模式主动输入引出的方法的流程图。方法开始100。可以任何序列同时从输入形态中的一者或一者以上或任一组合接收输入。因此,所述方法包含主动引出的所键入输入2610、语音输入2620、基于GUI的输入2640、对话2650的上下文中的输入,和/或由事件触发器产生的输入2660。将这些输入源中的任一者或全部统一为统一输入格式2690,并返回。统一输入格式2690使智能自动化助理1002的其它组件能够被设计,且独立于输入的特定形态而操作。提供关于多种形态和等级的主动向导使输入的约束和向导超过可用于经隔离形态的那些约束和向导。举例来说,经提供以在语音、文本和对话步骤之间进行选择的建议种类是独立的,因此其组合是对将主动引出技术添加到个别形态或等级的显著改进。组合如本文所述的多个约束源(语法/语言、词汇、实体数据库、域模型、任务模型、服务模型等)以及可主动应用这些约束的多个地方(语音、文本、GUI、对话和异步事件)为人机交互提供新等级的功能性。域模型组件1056域模型1056组件包含域的概念、实体、关系、特性和例子的表示。举例来说,外出就餐域模型1622可能包含作为具有名称和地址以及电话号码的商店的餐馆的概念,用餐事件的概念具有与餐馆相关联的聚会规模以及日期和时间。在至少一个实施例中,助理1002的域模型组件1056可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·域模型组件1056可由自动化助理1002用于若干过程,包含:引出输入100、解译自然语言200、分派给服务400,以及产生输出600。·域模型组件1056可提供可能与域概念或实体匹配的字列表,例如餐馆的名称,其可用于输入100的主动引出,以及自然语言处理200。·域模型组件1056可对过程中的候选字进行分类,(例如)以确定字为餐馆的名称。·域模型组件1056可展示用于解译自然语言的部分信息之间的关系,例如,菜系可与商店实体相关联(例如,“本地墨西哥食物”可解译为“寻找风格=墨西哥的餐馆”,且此推断由于域模型1056中的信息而为可能的)。·域模型组件1056可组织关于在服务编排1082中使用的服务的信息,例如特定网络服务可提供对餐馆的评论。·域模型组件1056可例如通过提供描述概念、关系、特性和例子的规范方式来提供用于产生自然语言释义和其它输出格式化的信息。根据特定实施例,域模型组件1056的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一些实施例中,可通过以下类型的系统、组件、系统、装置、程序、过程等中的一者或一者以上(或其组合)来执行、实施和/或起始域模型组件1056的各种方面、特征和/或功能性。·可将域模型组件1056实施为表示概念、关系、特性和例子的数据结构。这些数据结构可存储在存储器、文件或数据库中。·可通过直接API、网络API、数据库查询接口和/或类似物来实施对域模型组件1056的存取。·可例如经由直接编辑文件、数据库交易且/或通过使用域模型编辑工具来实现域模型组件1056的创建和维护。·可将域模型组件1056实施为主动本体1050的部分或与主动本体1050关联,其将模型与用于服务器和用户的模型的例示组合。根据各种实施例,可响应于检测到满足用于触发域模型组件1056的至少一个例子的起始的一个或一个以上不同类型的最小阈值准则的一个或一个以上条件或事件而起始域模型组件1056的一个或一个以上不同线程或例子。举例来说,当需要域模型信息时(包含在输入引出、输入解译、任务和域识别、自然语言处理、服务编排和/或为用户格式化输出期间),可触发域模型组件1056的一个或一个以上不同线程或例子的触发起始和/或实施。在至少一个实施例中,域模型组件1056的给定例子可从一个或一个以上相关联的数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。举例来说,来自域模型组件1056的数据可与其它模型建模组件相关联,包含词汇1058、语言模式辨识器1060、对话流模型1087、任务流模型1086、服务能力模型1088、域实体数据库1072等等。举例来说,域实体数据库1072中分类为餐馆的商店可通过维持在外出就餐域模型组件中的类型识别符而被知晓。域模型组件实例:现在参看图27,展示了说明根据一个实施例可由域模型组件1056提供的各种类型的功能、操作、动作和/或其它特征的实例的一组屏幕截图。在至少一个实施例中,域模型组件1056为统一的数据表示,其实现屏幕103A和103B中所示的关于餐馆的信息的呈现,所述呈现组合来自若干不同数据源和服务的数据,且包含(例如):名称、地址、商店类别、电话号码、用于保存到长期个人存储器的识别符、用于经由电子邮件共享的识别符、来自多个来源的评论、地图坐标、个人便笺等等。语言解译器组件1070在至少一个实施例中,助理1002的语言解译器组件1070可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·分析用户输入,并识别一组解析结果。○用户输入可包含来自可为理解用户的意图做贡献的来自用户和他/她的装置上下文的任何信息,其可包含例如以下各者中的一者或一者以上(或其组合):字序列、引出输入中所涉及的手势或GUI元件的身份、对话的当前上下文、当前装置应用程序及其当前数据对象,和/或所获得的关于用户的任何其它个人动态数据,例如位置、时间等等。举例来说,在一个实施例中,用户输入是呈由主动输入引出1094产生的统一带注解输入格式2690的形式。○解析结果为用户输入中的数据与用户意图和/上下文的模型、数据库和/或其它表示中的概念、关系、特性、例子和/或其它节点和/或数据结构的关联。解析结果关联可为从用户输入的字、信号和其它元素的集合和序列到本文所述的一个或一个以上相关联的概念、关系、特性、例子、其它节点和/或数据结构的复杂映射。·分析用户输入并识别一组语法解析结果,其为使用户输入中的数据与表示语音的语法部分的结构、包含多词名称的从句和短语、句子结构和/或其它语法图结构相关联的解析结果。在结合图28所述的自然语言处理程序的元件212中描述语法解析结果。·分析用户输入并识别一组语义解析结果,其为使用户输入中的数据与表示概念、关系、特性、实体、量、命题的结构,和/或意义和用户意图的其它表示相关联的解析结果。在一个实施例中,意义和意图的这些表示由模型或数据库的例子和/或本体中的节点的集合和/或元素表示,如结合图28所述的自然语言处理程序的元件220中所述。·消除替代语法或语义解析结果当中的歧义,如在结合图28所述的自然语言处理程序的元件230中描述。·确定部分键入的输入在自动完成程序(例如结合图11而描述的程序)中是否在语法和/或语义上有意义。·帮助在自动完成程序(例如结合图11所述的程序)中产生所建议完成114。·确定口述的输入的解译在语音输入程序(例如结合图22而描述的程序)中是否在语法和/或语义上有意义。根据特定实施例,语言解译器组件1070的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。根据不同实施例,语言解译器组件1070的一个或一个以上不同线程或例子可响应于检测到满足用于触发语言解译器组件1070的至少一个例子的起始的一个或一个以上不同类型的最小阈值准则的一个或一个以上条件或事件而起始。可触发语言解译器组件1070的一个或一个以上不同线程或例子的起始和/或实施的条件或事件的各种实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·在引出输入的同时,包含(但不限于)○建议所键入输入114的可能完成(图11);○对语音126的解译分等级(图22);○当提供模糊性作为对话152中的所建议响应时(图24);·当引出输入的结果可用时,包含当输入是由主动多模式输入引出100的任何模式引出时。在至少一个实施例中,语言解译器组件1070的给定例子可从一个或一个以上相关联的数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取此数据库信息的至少一部分。可由语言解译器组件存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·域模型1056;·词汇1058;·域实体数据库1072;·短期存储器1052;·长期个人存储器1054;·任务流模型1086;·对话流模型1087;·服务能力模型1088。现在参看图29,展示了说明根据一个实施例的自然语言处理的屏幕截图。用户已输入(经由话音或文本)由短语“这个周末谁在费尔默玩”组成的语言输入2902。此短语在屏幕2901上回音返回给用户。语言解译器组件1070组件处理输入2902,并产生解析结果。解析结果使所述输入与展示为在名称与“费尔默”匹配的任何事件地点的即将到来的周末中的任一天安排的本地事件的请求相关联。在屏幕2901上将解析结果的释义展示为2903。现在参看图28,展示了描绘根据一个实施例的用于自然语言处理的方法的实例的流程图。方法开始200。接收语言输入202,例如图29的实例中的字符串“这个周末谁在费尔默玩”。在一个实施例中,所述输入由当前上下文信息补充,例如当前用户位置和本地时间。在字/短语匹配210中,语言解译器组件1070找出用户输入与概念之间的关联。在此实例中,找出字符串“玩”与事件地点处的列表概念;字符串“本周末”(以及用户的当前本地时间)以及表示即将到来的周末的近似时间周期的例示;以及具有地点的名称的字符串“费尔默”之间的关联。字/短语匹配210可使用来自(例如)语言模式辨识器1060、词汇数据库1058、主动本体1050、短期个人存储器1052以及长期个人存储器1054的数据。语言解译器组件1070产生候选语法解析212,候选语法解析212包含选定解析结果,但还可包含其它解析结果。举例来说,其它解析结果可包含其中“玩”与例如游戏等其它域或与例如体育赛事等事件类别相关联的解析结果。短期个人存储器1052和/或长期个人存储器1054也可由语言解译器组件1070用于产生候选语法解析212。因此,可使用先前在同一会话中提供的输入和/或关于用户的已知信息来改进性能、降低模糊性,且加强交互的谈话性质。还可使用来自主动本体1050、域模型1056和任务流模型1086的数据来实施确定有效候选语法解析212中的证据推理。在语义匹配220中,语言解译器组件1070根据可能的解析结果与例如域模型和数据库等语义模型的配合程度而考虑可能的解析结果的组合。在此情况下,解析包含以下关联:(1)“玩”(用户输入中的字)作为“地点处的本地事件”(由主动本体1050中的节点群集表示的域模型1056的部分),以及(2)“费尔默”(输入中的另一字)作为与用于本地事件地点的域实体数据库1072中的实体名称的匹配,其由域模型元件和主动本体节点(地点名称)表示。语义匹配220可使用来自(例如)主动本体1050、短期个人存储器1052和长期个人存储器1054的数据。举例来说,语义匹配220可使用来自对对话中的地点或本地事件(来自短期个人存储器1052)或个人最爱地点(来自长期个人存储器1054)的先前参考的数据。产生一组候选或潜在的语义解析结果222。在消除歧义步骤230中,语言解译器组件1070对候选语义解析结果222的证据强度进行加权。在此实例中,“玩”作为“地点处的本地事件”的解析与“费尔默”作为地点名称的匹配的组合是比替代性组合强的与域模型的匹配,在替代性组合中,例如“玩”与用于体育的域模型相关联,但用于“费尔默”的体育域中不存在关联。取消歧义230可使用来自(例如)主动本体1050的结构的数据。在至少一个实施例中,主动本体中的节点之间的连接提供对消除候选语义解析结果222当中的歧义提供证据支持。举例来说,在一个实施例中,如果三个主动本体节点在语义上匹配,并全部连接在主动本体1050中,则这指示与这些匹配节点未连接或由主动本体1050中的连接的较长路径连接的情况相比语义解析的较高证据强度。举例来说,在语义匹配220的一个实施例中,与地点处的本地事件和地点名称两者匹配的解析被给予增加的证据支持,因为用户意图的这些方面的组合表示是由主动本体1050中的链接和/或关系连接:在此例子中,本地事件节点连接到地点节点,地点节点连接到地点名称节点,地点名称节点连接到地点名称数据库中的实体名称。在至少一个实施例中,主动本体中的节点之间的提供对消除候选语义解析结果222当中的歧义的证据支持的连接为有向弧,从而形成推断晶格,其中匹配节点为所述匹配节点被有向弧连接到的节点提供证据。在232中,语言解译器组件1070分类和选择232顶部语义解析以作为用户意图290的表示。域实体数据库1072在至少一个实施例中,域实体数据库1072可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·存储关于域实体的数据。域实体为可在域模型中建模的世界或计算环境中的事物。实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):○任何种类的商店;○电影、视频、歌曲和/或其它音乐产品,和/或任何其它命名的娱乐产品;○任何种类的产品;○事件;○日历条目;○城市、州、国家、邻国和/或其它地理、地理政治和/或地理空间点或区;○命名的地方,例如地标、飞机场等;·在这些数据库上提供数据库服务,包含(但不限于)简单和复杂的查询、交易、所触发事件等。根据特定实施例,域实体数据库1072的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一个实施例中,可通过驻留在客户端1304上和/或服务器1340上的数据库软件和/或硬件执行、实施和/或起始域实体数据库1072的各种方面、特征和/或功能性。可根据一个实施例结合本发明而使用的域实体数据库1072的一个实例为存储(例如)其名称和位置的一个或一个以上商店的数据库。数据库可用于(例如)查找用于匹配商店的输入请求中所含的字,且/或查找名称已知的商店的位置。所属领域的技术人员将认识到,许多其它布置和实施方案是可能的。词汇组件1058在至少一个实施例中,词汇组件1058可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·提供使字和字符串与域模型或任务模型的概念、特性、关系或例子相关联的数据库;·来自词汇组件的词汇可由自动化助理1002用于若干过程,包含(例如):引出输入、解译自然语言,且产生输出。根据特定实施例,词汇组件1058的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一个实施例中,可将词汇组件1058的各种方面、特征和/或功能性实施为使字符串与概念、关系、特性和例子的名称相关联的数据结构。这些数据结构可存储在存储器、文件或数据库中。可通过直接API、网络API和/或数据库查询接口来实施对词汇组件1058的存取。可例如经由直接编辑文件、数据库交易且/或通过使用域模型编辑工具来实现词汇组件1058的创建和维护。词汇组件1058可实施为主动本体1050的部分或与主动本体1050相关联。所属领域的技术人员将认识到,许多其它布置和实施方案是可能的。根据不同实施例,可响应于检测到满足用于触发词汇组件1058的一个或一个以上不同线程或例子的起始的一个或一个以上不同类型最小阈值的一个或一个以上条件或事件而起始词汇组件1058的一个或一个以上不同线程或例子。在一个实施例中,每当需要词汇信息时(包含(例如)在输入引出、输入解译和为用户格式化输出期间),就存取词汇组件1058。所属领域的技术人员将认识到,其它条件或事件可触发词汇组件1058的一个或一个以上不同线程或例子的起始和/或实施。在至少一个实施例中,词汇组件1058的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。在一个实施例中,词汇组件1058可从外部数据库(例如从数据仓库或词典)存取数据。语言模式辨识器组件1060在至少一个实施例中,语言模式辨识器组件1060可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如查找指示语法、惯用语和/或输入令牌的其它组成物的语言或语音输入中的模式。这些模式对应于(例如)以下各者中的一者或一者以上(或其组合):字、名称、短语、数据、参数、命令和/或语音动作的信号。根据特定实施例,模式辨识器组件1060的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一些实施例中,可通过含有模式匹配语言中的表达的一个或一个以上文件、数据库和/或程序来执行、实施和/或起始语言模式辨识器组件1060的各种方面、特征和/或功能性。在至少一个实施例中,通过宣告方式而不是作为程序代码来表示语言模式辨识器组件1060;这使得其能够被编辑器或不同于编程工具的其它工具创建和维持。宣告式表示的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):常规表达、模式匹配规则、自然语言语法、基于状态机和/或其它解析模型的解析器。所属领域的技术人员将认识到,其它类型的系统、组件、系统、装置、程序、过程等(或其组合)可用于实施语言模式辨识器组件1060。根据不同实施例,语言模式辨识器组件1060的一个或一个以上不同线程或例子可响应于检测到满足用于触发语言模式辨识器组件1060的至少一个例子的起始的一个或一个以上不同类型的最小阈值准则的一个或一个以上条件或事件而起始。可触发语言模式辨识器组件1060的一个或一个以上不同线程或例子的起始和/或实施的条件或事件的各种实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·在输入的主动引出期间,其中语言模式辨识器的结构可约束和引导来自用户的输入;·在自然语言处理期间,其中语言模式辨识器帮助将输入解译为语言;·在任务和对话的识别期间,其中语言模式辨识器可帮助识别其中的任务、对话和/或步骤。在至少一个实施例中,语言模式辨识器组件1060的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由语言模式辨识器组件1060存取的不同类型的数据的实例可包含(但不限于)来自可为助理1002的实施例的部分的模型各种模型和数据源中的任一者的数据,其可包含(但不限于)以下各者中的一者或一者以上(或其组合):·域模型1056;·词汇1058;·域实体数据库1072;·短期存储器1052;·长期个人存储器1054;·任务流模型1086;·对话流模型1087;·服务能力模型1088。在一个实施例中,可由主动本体1050来协调从助理1002的实施例的其它部分存取数据。再次参看图14,展示可由语言模式辨识器组件1060提供的各种类型的功能、操作、动作和/或其它特征中的一些的实例。图14说明语言模式辨识器组件1060可辨识的语言模式。举例来说,惯用语“正在发生什么”(在城市中)可与事件规划任务以及本地事件域相关联。对话流处理器组件1080在至少一个实施例中,对话流处理器组件1080可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·在给定来自语言解译200的用户意图290的表示的情况下,识别用户想要执行的任务和/或用户想要解决的问题。举例来说,任务可为找到餐馆。·对于给定问题或任务,在给定用户意图290的表示的情况下,识别任务或问题的参数。举例来说,用户可能正在寻找在用户的家附近的供应意大利食物的被推荐的餐馆。对被推荐的、供应意大利食物的且在家附近的餐馆的约束是寻找餐馆的任务的参数。·在给定任务解译和与用户的当前对话的情况下,例如其可在个人短期存储器1052中表示,选择适当的对话流模型,并确定流模型中对应于当前状态的步骤。根据特定实施例,对话流处理器组件1080的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。在至少一个实施例中,对话流处理器组件1080的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由对话流处理器组件1080存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·任务流模型1086;·域模型1056;·对话流模型1087。现在参看图30和31,展示了说明根据一个实施例可由对话流处理器组件提供的各种类型的功能、操作、动作和/或其它特征的实例的屏幕截图。如屏幕3001中所示,用户通过提供语音或文本输入“给我订一张桌子吃晚餐”来请求晚餐预订。助理1002产生要求用户指定时间和聚会规模的提示3003。一旦已提供这些参数,就显示屏幕3101。助理1002输出:对话框3102,其指示正呈现结果;以及要求用户点击时间的提示3103。还显示列表3104。在一个实施例中,如下实施此对话。对话流处理器组件1080被给予来自语言解译器组件1070的用户意图的表示,且确定适当响应为向用户请求执行任务流中的下一步骤所需的信息。在此情况下,域为餐馆,任务为获得预订,且对话步骤为向用户请求完成任务流中的下一步骤所需的信息。此对话步骤由屏幕3001的提示3003例示。再次参看图32,展示了描绘根据一个实施例的对话流处理器组件的操作的方法的流程图。结合图30和31中所示的实例而描述图32的流程图。方法始于200。接收用户输入290的表示。如结合图28所述,在一个实施例中,用户意图290的表示为一组语义解析。对于图30和31中所示的实例,域为餐馆,动词为与餐馆预订相关联的“预订”,且时间参数为当天晚上。在310中,对话流处理器组件1080确定用户意图的此解译是否受到足够强大的支持以继续下去,且/或其是否比替代性模糊解析受到更好地支持。在当前实例中,解译受到强大的支持,没有竞争性模糊解析。另一方面,如果存在竞争性模糊性或充分不确定性,那么执行步骤322,以设定对话流步骤,使得执行阶段致使对话对来自用户的更多信息输出提示。在312中,对话流处理器组件1080确定具有其它信息的语义解析的优选解译,以确定要执行的任务及其参数。例如可从域模型1056、任务流模型1086和/或对话流模型1087或其任一组合获得信息。在当前实例中,将任务识别为获得预订,其涉及找到可预订且有座位的地方,以及使预订桌子的交易生效。任务参数为时间约束以及在步骤312中推断的其它约束。在320中,咨询任务流模型以确定适当的下一步骤。可例如从域模型1056、任务流模型1086和/或对话流模型1087或其任一组合获得信息。在所述实例中,确定在此任务流中,下一步骤为引出缺失参数到对餐馆的可用性搜索,从而产生图30中说明的提示3003,其请求聚会规模和预订时间。如上文所述,图31描绘屏幕3101,其展示为包含在用户回答对聚会规模和预订时间的请求之后呈现的对话元件3102。在一个实施例中,经由自动化调用和响应程序将屏幕3101呈现为另一反复的结果,如结合图33所述,其导致对图32中所描绘的对话和流程序的另一调用。在对话和流程序的此例示中,在接收到用户偏好之后,对话流处理器组件1080在步骤320中确定不同任务流步骤:进行可用性搜索。当构造请求390时,其包含对于对话流处理器组件1080和服务编排组件1082分派餐馆预订服务来说足够的任务参数。对话流模型组件1087在至少一个实施例中,对话流模型组件1087可为可操作的,以提供对话流模型,其表示在用户与智能自动化助理1002之间的特定种类的谈话中采取的步骤。举例来说,用于执行交易的一般任务的对话流包含用于获得交易的必要数据和在提交交易参数之前确认交易参数的步骤。任务流模型组件1086在至少一个实施例中,任务流模型组件1086可为可操作的,以提供任务流模型,其表示解决问题或解决需要所采取的步骤。举例来说,用于获得晚餐预订的任务流涉及找到合意餐馆、检查可用性,以及进行交易以获得对餐馆的在特定时间的预订。根据特定实施例,任务流模型组件1086的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一个实施例中,任务流模型组件1086的各种方面、特征和/或功能性可实施为识别流程图中的适当步骤的程序、状态机或其它方式。在至少一个实施例中,任务流模型组件1086可使用称为一般任务的任务建模框架。一般任务为抽象概念,其对任务中的步骤及其所需输入和所产生输出进行建模,而不特定于域。举例来说,用于交易的一般任务可包含用于以下操作的步骤:搜集交易所需的数据、执行交易,以及输出交易的结果,其全部不参考用于实施其的任何特定交易域或服务。可针对例如购物等域例示一般任务,但其独立于购物域,且可同样有效地适用于预订、日程安排等域。可至少部分地使用本文结合一般任务建模框架而揭示的概念、特征、组件、过程和/或其它方面来实施与本文所述的任务流模型组件1086和/或程序相关联的功能、操作、动作和/或其它特征的至少一部分。另外,可至少部分地使用与如本文所述的受约束的选择任务有关的概念、特征、组件、过程和/或其它方面来实施与本文所述的任务流模型组件1086和/或程序相关联的功能、操作、动作和/或其它特征的至少一部分。举例来说,可使用受约束的选择任务模型来实施一般任务的一个实施例。在至少一个实施例中,任务流模型组件1086的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由任务流模型组件1086存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·域模型1056;·词汇1058;·域实体数据库1072;·短期存储器1052;·长期个人存储器1054;·对话流模型1087;·服务能力模型1088。现在参看图34,展示了描绘根据一个实施例的用于受约束的选择任务351的任务流的实例的流程图。受约束的选择是一种一般任务,其中目标是基于一组约束从世界中的一组项目选择某一项目。举例来说,可针对餐馆域例示受约束的选择任务351。受约束的选择任务351通过向用户352索要准则和约束而开始。举例来说,用户可能对亚洲食物感兴趣,且可能想要在他或她的办公室附近吃饭的地方。在步骤353中,助理1002呈现满足所陈述准则和约束的项目以供用户浏览。在此实例中,其可为餐馆及所述餐馆的可用以在它们当中进行选择的特性的列表。在步骤354中,给予用户细化准则和约束的机会。举例来说,用户可通过说出“在我办公室附近”来细化请求。系统将接着在步骤353中呈现一组新的结果。现在还参看图35,展示了包含根据一个实施例由受约束的选择任务351呈现的项目的列表3502的屏幕3501的实例。在步骤355中,用户可在匹配的项目当中进行选择。接着可使许多后续任务359中的任一者可用,例如预订356、记住357和共享358。在各种实施例中,后续任务359可涉及与具有网络功能的服务和/或与在装置本地的功能性(例如,设定日历预约、进行电话呼叫、发送电子邮件或文本消息、设定警报等)的交互。在图35的实例中,用户可选择列表3502内的项目以查看更多细节,且执行额外动作。现在还参看图36,展示在用户已从列表3502中选择项目之后的屏幕3601的实例。显示对应于关于选定项目的后续任务359的额外信息和选项。在各种实施例中,可以若干输入形态中的任一者向用户提供流程步骤,包含(但不限于)明确对话提示与GUI链接的任一组合。服务组件1084服务组件1084表示智能自动化助理1002可代表用户调用的服务集合。可在服务组件1084中提供可调用的任何服务。在至少一个实施例中,服务组件1084可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·经由通常将由基于网络的用户接口提供给服务的API来提供功能。举例来说,评论网站可提供服务API,其将在被程序调用时自动返回对给定实体的评论。API向智能自动化助理1002提供人类原本将通过操作网站的用户接口而获得的服务。·经由通常将由用户接口提供给应用程序的API来提供功能。举例来说,日历应用程序可提供服务API,其将在被程序调用时自动返回日历条目。API向智能自动化助理1002提供人类原本将通过应用程序的用户接口而获得的服务。在一个实施例中,助理1002能够起始和控制装置上可用的许多不同功能中的任一者。举例来说,如果助理1002安装在智能电话、个人数字助理、平板计算机或其它装置上,助理1002可执行例如以下功能:起始应用程序、进行呼叫、发送电子邮件和/或文本消息、添加日历事件、设定警报等。在一个实施例中,使用服务组件1084来激活此些功能。·提供当前不在用户接口中实施但经由API可供助理在较大任务中使用的服务。举例来说,在一个实施例中,取得街道地址且返回机器可读地理坐标的API可由助理1002用作服务组件1084,即使其在网络或装置上不具有直接用户接口也是如此。根据特定实施例,服务组件1084的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一些实施例中,可通过以下类型的系统、组件、系统、装置、程序、过程等中的一者或一者以上(或其组合)来执行、实施和/或起始服务组件1084的各种方面、特征和/或功能性:·实施通过由在本地或远程地或在本地与远程地的任一组合而暴露的API;·将数据库包含在自动化助理1002或助理1002可用的数据库服务内。举例来说,向用户提供用于浏览电影的网站可由智能自动化助理1002的实施例用作由网站使用的数据库的副本。服务组件1084将接着向内部API提供数据,就像经由网络API提供数据一样,即使数据是本地保存也是如此。作为另一实例,用于智能自动化助理1002的帮助餐馆选择和用餐规划的服务组件1084可包含可经由网络从第三方获得的以下服务集合中的任一者或全部:·一组餐馆列举服务,其列举与名称、位置或其它约束匹配的餐馆;·一组餐馆评级服务,其返回被指名的餐馆的等级;·一组餐馆评论服务,其返回被指名的餐馆的书面评论;·地理译码服务,其用以定位地图上的餐馆;·预订服务,其实现对餐馆里的桌子的计划预订。服务编排组件1082智能自动化助理1002的服务编排组件1082执行服务编排程序。在至少一个实施例中,服务编排组件1082可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·动态且自动地确定哪些服务可满足用户的请求和/或指定的域和任务;·以同时和循序排序的任一组合动态且自动地调用多个服务;·动态且自动地变换任务参数和约束,以满足服务API的输入要求;·动态且自动地监视并搜集来自多个服务的结果;·动态且自动地将来自各种服务的服务结果数据合并到统一结果模型中;·编排多个服务以满足请求的约束;·编排多个服务以对具有辅助信息的现有结果集合作注解;·以统一的独立于服务的表示输出调用多个服务的结果,所述表示统一来自各种服务的结果(例如,作为调用返回餐馆列表的若干餐馆服务的结果,合并来自若干服务的关于至少一个餐馆的数据、去除冗余)。举例来说,在一些情形中,可存在完成特定任务的若干方式。举例来说,例如“提醒我在下午2点离开去镇的另一端开会”指定可以至少三种方式完成的动作:设定闹钟;创建日历事件;或调用待办事项管理器。在一个实施例中,服务编排组件1082作出关于哪种方式最满足所述请求的确定。服务编排组件1082还可作出关于将最好调用若干服务的哪一组合以便执行给定总体任务的确定。举例来说,为了找到并预订桌子吃晚饭,服务编排组件1082将作出关于要调用哪些服务以便执行例如查找评论、获得可用性以及作出预订等功能的确定。要使用哪些服务的确定可取决于许多不同因素中的任一者。举例来说,在至少一个实施例中,可将关于可用性、处置某些类型的请求的服务能力、用户反馈等的信息用作确定哪一(哪些)服务适合调用的因素。根据特定实施例,服务编排组件1082的多个例子或线程可经由使用一个或一个以上处理器和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。在至少一个实施例中,服务编排组件1082的给定例子可使用显式服务能力模型1088来表示外部服务的能力和其它特性,且推出这些能力和特性,同时实现服务编排组件1082的特征。这提供优于手动编程一组服务的优点,所述优点可包含(例如)以下各者中的一者或一者以上(或其组合):·容易开发;·执行的稳健性和可靠性;·在无中断码的情况下动态地添加和去除服务的能力;·实施由特性和能力驱动而不是硬编码到特定服务或API的一般分布式查询优化算法的能力。在至少一个实施例中,服务编排组件1082的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。可由服务编排组件1082存取的不同类型的数据的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·域模型的例示;·对自然语言输入的语法和语义解析;·任务模型的例示(使用参数的值);·对话和任务流模型和/或其中的选定步骤;·服务能力模型1088;·主动本体1050中可用的任何其它信息。现在参看图37,展示根据一个实施例的用于执行服务编排程序的程序的实例。在此特定实例中,假定单个用户正关注于寻找在餐馆吃晚饭的好地方,且正使智能自动化助理1002参与谈话以帮助提供此服务。考虑寻找高质量、评论良好、靠近特定位置、在特定时间可供预订且供应特定种类的食物的餐馆的任务。将这些域和任务参数给定为输入390。方法开始400。在402处,确定给定请求是否可需要任何服务。在一些情形中,可能不需要服务委托,例如在助理1002自己能够执行所要任务的情况下。举例来说,在一个实施例中,助理1002能够回答实际问题,而不调用服务委托。因此,如果请求不需要服务,那么在403中执行独立流程步骤,且返回其结果490。举例来说,如果任务请求为请求关于自动化助理1002本身的信息,那么可处置对话响应,而不调用任何外部服务。如果在步骤402中确定需要服务委托,那么服务编排组件1082进行到步骤404。在404中,服务编排组件1082可使任务要求与服务能力模型1088中的服务的能力和特性的宣告式描述匹配。可能支持所例示操作的至少一个服务提供商提供详述(例如)以下各者中的一者或一者以上(或其组合)的宣告式、定性元数据:·与结果一起返回的数据字段;·服务提供商静态地知道支持哪些参数类别;·服务提供商在参数值的动态检查之后可能够支持的参数的策略功能;·性能评级,其定义服务如何执行(例如,相关DB、网络服务、三重存储、全文本索引,或其某一组合);·特性质量评级,其静态地定义与结果对象一起返回的特性值的预期质量;·服务可预期返回的结果的总质量评级。举例来说,通过推出服务可支持的参数类别,服务模型可宣告服务1、2、3和4可提供在特定位置(一参数)附近的餐馆,服务2和3可按照质量(另一参数)对餐馆进行过滤或分等级,服务3、4和5可返回对餐馆的评论(返回的数据字段),服务6可列举餐馆所供应的食物类型(返回的数据字段),且服务7可检查在特定时间范围内餐馆的可用性(参数)。服务8到99提供此特定域和任务不需要的能力。使用从助理的运行时环境可得的此宣告式定性元数据,任务、任务参数以及其它信息,服务编排组件1082确定404要调用的一组最佳服务提供商。所述组最佳服务提供商可支持一个或一个以上任务参数(返回满足一个或一个以上参数的结果),且还考虑至少一个服务提供商的性能评级以及至少一个服务提供商的总质量评级。步骤404的结果是为此特定用户和请求而调用的动态产生的服务列表。在至少一个实施例中,服务编排组件1082考虑服务的可用性以及其回答特定信息请求的能力。在至少一个实施例中,服务编排组件1082通过调用重叠或冗余服务来规避不可靠性。在至少一个实施例中,服务编排组件1082考虑关于用户(从短期个人存储器组件)选择服务的个人信息。举例来说,用户可偏好某些评级服务胜于其它。在步骤450中,服务编排组件1082动态地且自动地代表用户调用多个服务。在至少一个实施例中,在响应于用户请求的同时动态地调用这些服务。根据特定实施例,可同时调用服务的多个例子或线程。在至少一个实施例中,使用API经由网络,或使用网络服务API经由网络,或使用网络服务API经由因特网,或其任一组合来调用这些服务。在至少一个实施例中,以编程方式限制且/或管理调用服务的速率。现在还参看图38,展示根据一个实施例的服务调用程序450的实例。使用服务调用(例如)来获得额外信息或通过使用外部服务而执行任务。在一个实施例中,在对于服务的API适当时执行请求参数。一旦从服务接收到结果,就将结果转变为结果表示以在助理1002内呈现给用户。在至少一个实施例中,由服务调用程序450调用的服务可为网络服务、在装置上运行的应用程序、操作系统功能等。提供请求的表示390,包含(例如)任务参数等。对于可从服务能力模型1088获得的至少一个服务,服务调用程序450执行变换452、调用454以及输出映射456的步骤。在变换步骤452中,将来自请求表示390的当前任务参数变换为可由至少一个服务使用的形式。服务(其可提供作为API或数据库)的参数可不同于任务请求中所使用的数据表示,且还至少彼此不同。因此,步骤452的目标是在正调用的至少一个服务中以一个或一个以上对应格式和值映射至少一个任务参数。举例来说,例如餐馆等商店的名称可跨越涉及此些商店的服务而改变。因此,步骤452将涉及将任何名称变换为最适合至少一个服务的形式。作为另一实例,在各种精度等级下且使用跨越服务的各种单元和协定而知晓位置。服务1可能可需要ZIP代码,服务2可能需要GPS坐标,且服务3可能需要邮政街道地址。经由API及其搜集到的数据来调用454服务。在至少一个实施例中,高速缓存结果。在至少一个实施例中,在指定等级性能(例如,如在服务等级协议或SLA中指定)内未返回的服务被丢弃。在输出映射步骤456中,由服务返回的数据返回映射到统一结果表示490上。此步骤可包含处理不同格式、单元等等。在步骤412中,使来自多个服务的结果生效并合并。在一个实施例中,如果收集到生效的结果,那么接着跨越一个或一个以上结果逐对调用在每个域基础上定义的同等策略功能,以确定哪些结果表示真实世界内的相同概念。当发现一对相同结果时,使用一组特性策略功能(也在每个域基础上定义)来将特性值合并为经合并结果。特性策略功能可使用来自服务能力模型、任务参数、域上下文和/或长期个人存储器1054的特性质量评级来决定最佳合并策略。举例来说,来自不同餐馆提供商的餐馆列表可合并,且复制品被去除。在至少一个实施例中,用于识别复制品的准则可包含模糊名称匹配、模糊位置匹配、针对域实体的多个特性(例如名称、位置、电话号码和/或网站地址,和/或其任一组合)的模糊匹配。在步骤414中,对结果进行分类和整理以返回所要长度的结果列表。在至少一个实施例中,还应用请求放宽环路。如果在步骤416中,服务编排组件1082确定当前结果列表不够(例如,其具有少于所要数目的匹配项目),那么可放宽420任务参数以允许更多结果。举例来说,如果在目标位置的N英里内找到的所要种类的餐馆的数目过小,那么放宽将再次运行请求,在大于N英里以外的区域内寻找,且/或放宽搜索的某一其它参数。在至少一个实施例中,在第二回合中应用服务编排方法,以用对任务有用的辅助数据来对结果“作注解”。在步骤418中,服务编排组件1082确定是否需要注解。在(例如)如果任务可需要地图上的一块结果但初级服务未返回映射所需的地理坐标的情况下,可能需要注解。在422中,咨询服务能力模型1088以寻找可返回所要额外信息的服务。在一个实施例中,注解过程确定是否可将额外或更好的数据注解到经合并结果。通过将至少一个经合并结果的至少一个特性委托给特性策略功能(在每个域基础上定义)来进行此过程。特性策略功能可使用经合并的特性值和特性质量评级、一个或一个以上其它服务提供商的特性质量评级、域上下文和/或决定是否可获得更好的数据的用户简档。如果确定一个或一个以上服务提供商可对经合并结果的一个或一个以上特性作注解,那么调用成本函数来确定要注解的最佳服务提供商集合。接着用经合并结果列表来调用450最佳注解服务提供商集合中的至少一个服务提供商,以获得结果424。在此过程期间跟踪由至少一个服务提供商对至少一个经合并结果作出的改变,且接着使用步骤412中曾使用的同一特性策略函数过程来合并变化。将其结果合并426为现存结果集合。对所得数据进行分类428,且统一成统一表示490。可了解,上文关于服务编排组件1082而描述的方法和系统的一个优点为,其可有利地在各种
技术领域
:应用且/或利用,而不是与智能自动化助理特别有关的那些领域。此些其它
技术领域
:的实例,其中服务编排程序的方面和/或特征包含(例如)以下各者中的一者或一者以上:·网站和基于网络的应用程序和服务上的动态“混杂”;·分布式数据库查询优化;·面向动态服务的架构配置。服务能力模型组件1088在至少一个实施例中,服务能力模型组件1088可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·提供关于服务执行某些类别的计算的能力的机器可读信息;·提供关于服务回答某些类别的查询的能力的机器可读信息;·提供关于各种服务提供哪些类别的交易的机器可读信息;·提供关于被各种服务暴露的API的参数的机器可读信息;·提供可用于由各种服务提供的数据库上的数据库查询中的参数的机器可读信息。输出处理器组件1090在至少一个实施例中,输出处理器组件1090可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·将统一内部数据结构中表示的输出数据格式化为在不同形态上适当地再现其的形式和布局。输出数据可包含(例如)智能自动化助理与用户之间的呈自然语言的通信;关于域实体的数据,例如餐馆、电影、产品等的特性;来自信息服务的域特定数据结果,例如天气报告、航班状态检查、价格等;和/或使用户能够通过直接与输出呈现交互而作出响应的交互式链接和按钮。·针对可包含(例如)以下各者的任何组合的形态再现输出数据:图形用户接口;文本消息;电子邮件消息;声音;动画;和/或语音输出。·基于所述请求而为不同图形用户接口显示引擎动态地再现数据。举例来说,取决于正使用哪一网络浏览器和/或装置而使用不同输出处理布局和格式。·动态地再现不同语音话音中的输出数据。·基于用户偏好而动态地再现到指定形态。·使用自定义外观和感觉的用户特定“皮肤”来动态地再现输出。·将输出包流发送到一形态,其展示整个与助理1002的交互的若干阶段中的中间状态、反馈或结果。根据特定实施例,输出处理器组件1090的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一些实施例中,可通过以下类型的系统、组件、系统、装置、程序、过程等中的一者或一者以上(或其组合)来执行、实施和/或起始输出处理器组件1090的各种方面、特征和/或功能性:·智能自动化助理的实施例的客户端或服务器内的软件模块;·可远程调用的服务;·使用模板与程序代码的混合物。现在参看图39,展示了描绘根据一个实施例的多阶段输出程序的实例的流程图。多阶段输出程序包含自动化助理1002的处理步骤702和多阶段输出步骤704。在步骤710中,获得语音输入话语,且语音-文本组件(例如结合图22所述的组件)解译语音以产生一组候选语音解译712。在一个实施例中,使用(例如)可从马萨诸塞州伯灵顿市的纽昂斯通信公司(NuanceCommunications,Inc.)获得的纽昂斯辨识器(NuanceRecognizer)来实施语音-文本组件。在730中,例如以释义形式向用户展示候选语音解译712。举例来说,接口可展示列举同一语音声音样本的数个可能的替代性文本解译的“你说什么?”替代物。在至少一个实施例中,提供用户接口以使用户能够中断候选语音解译且在候选语音解译当中进行选择。在步骤714中,将候选语音解译712发送到语言解译器1070,语言解译器1070可产生用于至少一个候选语音解译712的用户意图716的表示。在步骤732中,产生并向用户呈现用户意图716的这些表示的释义。(见图22中的程序120的相关步骤132)。在至少一个实施例中,用户接口使用户能够中断自然语言解译732的释义且在自然语言解译732的释义当中进行选择。在步骤718中,执行任务和对话分析。在步骤734中,使用意图释义算法来向用户呈现任务和域解译。现在还参看图40,展示了描绘根据一个实施例的输出处理的实例的屏幕截图。屏幕4001包含由步骤730产生的用户的语音输入的回音4002。屏幕4001进一步包含由步骤734产生的用户意图的释义4003。在一个实施例中,如图40的实例中所描绘,将特殊格式化/突出显示用于例如“事件”等关键字,其可用以促进对用户与智能自动化助理1002的交互的训练。举例来说,通过在视觉上观察所显示文本的格式化,用户可容易地识别和解译回智能自动化助理辨识的例如“事件”、“下个星期三”、“旧金山”等关键字。返回图39,当将请求分派720给服务且动态地搜集结果时,中间结果可以实时进展的形式显示736。举例来说,可返回餐馆列表,且接着可动态地填充其评论以作为服务达到的评论的结果。服务可包含具有网络功能的服务和/或存取本地存储在装置上且/或来自任何其它来源的信息的服务。针对适当的输出形态而产生并格式化724响应722的统一表示。在完成最终输出格式之后,可在738中提供一种不同的释义。在此阶段中,可分析整个结果集合,并将其与初始请求进行比较。接着可提供对问题的结果或回答的概述。还参看图41,展示根据一个实施例的输出处理的另一实例。屏幕4101描绘由步骤732产生的文本解译的释义4102、由步骤736产生的实时进展4103,以及由步骤738产生的释义概述7104。还包含细节结果4105。在一个实施例中,助理1002能够产生多个模式的输出。现在参看图42,展示了描绘根据一个实施例的多模式输出处理的实例的流程图。方法开始600。输出处理器1090采用响应490的统一表示,且根据适当且适用的装置和形态而格式化612响应。步骤612可包含来自装置以及形态模型610和/或域数据模型614的信息。一旦已格式化612响应490,就可以任何组合使用若干不同输出机制中的任一者。图42中所描绘的实例包含:·产生620文本消息输出,其被发送630到文本消息通道;·产生622电子邮件输出,其作为电子邮件消息被发送632;·产生624GUI输出,其被发送634到装置或网络浏览器以用于再现;·产生626语音输出,其被发送636到语音产生模块。所属领域的技术人员将认识到,可使用许多其它输出机制。在一个实施例中,根据多模式输出处理600的模式来裁定由多阶段输出程序700产生的输出消息的内容。举例来说,如果输出形态为语音626,那么用于概述用户输入730、文本解译732、任务和域解译734、进展736和/或结果概述738的语言可或多或少为冗长的,或使用与书面形式相比更容易以可听形式理解的句子。在一个实施例中,在多阶段输出程序700的步骤中裁定语言;在其它实施例中,多阶段输出程序700产生由多模式输出处理600进一步细化为特定语言的中间结果。短期个人存储器组件1052在至少一个实施例中,短期个人存储器组件1052可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·保持助理的实施例与用户之间的最近对话的历史,包含用户输入及其解译的历史;·将用户进行的最近选择的历史保持在GUI中,例如哪些项目曾被打开或探索、哪些电话号码曾被呼叫、哪些项目曾被映射、哪些电影预告片曾被播放等;·将对话和用户交互的历史存储在客户端上的数据库中、用户特定会话中的服务器中,或例如由客户端使用的网络浏览器cookies或RAM等客户端会话状态中;·存储最近用户请求的列表;·存储最近用户请求的结果序列;·存储UI事件的点击流历史,包含按钮按压、点按、手势、话音激活的触发器和/或任何其它用户输入。·存储装置传感器数据(例如位置、时间、位置定向、运动、光水平、声级等),其可与和助理的交互相关。根据特定实施例,短期个人存储器组件1052的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。根据不同实施例,可响应于检测到满足用于触发短期个人存储器组件1052的至少一个例子的起始的一个或一个以上不同类型的最小阈值准则的一个或一个以上条件或事件而起始短期个人存储器组件1052的一个或一个以上不同线程或例子。举例来说,当存在与助理1002的实施例的用户会话时(关于用户进行的至少一个输入形式或动作或系统作出的响应),可调用短期个人存储器组件1052。在至少一个实施例中,短期个人存储器组件1052的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。举例来说,短期个人存储器组件1052可从长期个人存储器组件1054存取数据(例如,以获得用户身份和个人偏好),且/或从本地装置存取关于时间和位置(其可包含于短期存储器条目中)的数据。现在参看图43A和43B,展示了描绘根据一个实施例的在改变位置的同时使用短期个人存储器组件1052来维持对话上下文的实例的屏幕截图。在此实例中,用户已打听本地天气,接着仅说“在纽约”。屏幕4301展示初始响应,包含本地天气。当用户说“在纽约”时,助理1002使用短期个人存储器组件1052来存取对话上下文,且由此确定当前域为天气预报。这使助理1002能够解译新言语“在纽约”,以表示“这周二纽约的天气预报是什么?”屏幕4302展示适当响应,包含纽约的天气预报。在图43A和43B的实例中,存储在短期存储器中的内容不仅是输入“后天将下雨吗?”的字,而且还有系统对作为天气域的输入的语义解译以及设定为后天的时间参数。短期个人存储器组件1054在至少一个实施例中,长期个人存储器组件1054可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·永久地存储关于用户的个人信息和数据,包含(例如)他或她的偏好、身份、认证证书、账户、地址等;·存储用户已通过使用助理1002的实施例所收集的信息,例如书签、收藏夹、剪辑等的均等物;·永久地存储商店实体的所保存列表,包含餐馆、旅馆、店铺、剧院和其它地点。在一个实施例中,长期个人存储器组件1054不仅保存名称或URL,而且还保存足以引出关于包含电话号码、地图上的位置、照片等的实体的完整列表的信息;·永久地存储所保存的电影、视频、音乐、演出以及其它娱乐项目;·永久地存储用户的个人日历、待办事项列表、提醒和警报、联系人数据库、社交网络列表等;·永久地存储针对产品和服务、所获取的优惠券和折扣代码等的购物列表和愿望列表;·永久地存储包含预订、购买、事件票券等的交易的历史和收据。根据特定实施例,长期个人存储器组件1054的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。举例来说,在至少一些实施例中,可使用客户端1304和/或服务器1340上(或与之相关联)且/或驻留在存储装置上的一个或一个以上数据库和/或文件来执行、实施和/或起始长期个人存储器组件1054的各种方面、特征和/或功能性。根据不同实施例,可响应于检测到满足用于触发长期个人存储器组件1054的至少一个例子的起始的一个或一个以上不同类型的最小阈值准则的一个或一个以上条件或事件而起始长期个人存储器组件1054的一个或一个以上不同线程或例子。可触发长期个人存储器组件1054的一个或一个以上不同线程或例子的起始和/或实施的条件或事件的各种实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·作为用户与助理1002的实施例交互的副作用,可获取长期个人存储器条目。与助理的任何种类的交互均可产生对长期个人存储器的添加,包含浏览、搜索、寻找、购物、日程安排、购买、预订、经由助理与其他人通信。·长期个人存储器还可由于用户为账户或服务签约而累加,从而使助理1002能够使用在具有对例如日历、待办事项列表、联系人列表等其它个人信息数据库的存取权的客户端装置上的助理1002服务来存取其它服务上的账户。在至少一个实施例中,长期个人存储器组件1054的给定例子可从一个或一个以上相关联数据库存取和/或利用信息。在至少一个实施例中,可经由与可(例如)定位在客户端1304和/或服务器1340处的一个或一个以上本地和/或远程存储器装置通信而存取数据库信息的至少一部分。可由长期个人存储器组件1054存取的不同类型的数据的实例可包含(但不限于)来自其它个人信息数据库(例如,联系人或朋友列表、日历、待办事项列表、其它列表管理器、由外部服务1360提供的个人账户和钱包管理器等)的数据。现在参看图44A到44C,展示了描绘根据一个实施例的长期个人存储器组件1054的使用的实例的屏幕截图。在所述实例中,提供特征(名为“我的东西”),其包含对所保存实体(例如经由与助理1002的实施例的交互式会话而找到的餐馆、电影和商店)的接入。在图44A的屏幕4401中,用户已找到餐馆。用户在“保存到我的东西”4402上点按,其将关于餐馆的信息保存在长期个人存储器组件1054中。图44B的屏幕4403描绘用户对“我的东西”的存取。在一个实施例中,用户可在类别当中进行选择以导航到所要项目。图44C的屏幕4404描绘“我的餐馆”类别,包含先前存储在“我的东西”中的项目。自动化调用和响应程序现在参看图33,展示了描绘根据一个实施例的自动调用和响应程序的流程图。图33的程序可结合智能自动化助理1002的一个或一个以上实施例而实施。可了解,如图1中所描绘的智能自动化助理1002仅为来自可实施的较广范围的智能自动化助理系统实施例的一个实例。智能自动化助理系统(未图示)的其它实施例可包含与(例如)图1中所描绘的实例智能自动化助理1002中所说明的组件/特征相比是额外、较少且/或不同的组件/特征。在至少一个实施例中,图33的自动化调用和响应程序可为可操作的,以执行和/或实施各种类型的功能、操作、动作和/或其它特征,例如以下各者中的一者或一者以上(或其组合):·图33的自动化调用和响应程序可提供用户与智能自动化助理1002之间的谈话接口的接口控制流程环路。自动化调用和响应程序的至少一个反复可充当谈话中的层。谈话接口是其中用户和助理1002通过以谈话方式使言语来回而进行通信的接口。·图33的自动化调用和响应程序可提供对智能自动化助理1002的执行控制流。也就是说,所述程序控制对输入的搜集、对输入的处理、输出的产生以及向用户的输出呈现。·图33的自动化调用和响应程序可协调智能自动化助理1002的组件之间的通信。也就是说,自动化调用和响应程序可引导一个组件的输出在何处馈送到另一组件中,以及来自环境的整个输入和对环境的动作可在何处发生。在至少一些实施例中,还可在计算机网络的其它装置和/或系统处实施自动化调用和响应程序的若干部分。根据特定实施例,自动化调用和响应程序的多个例子或线程可经由使用一个或一个以上处理器63和/或硬件和/或硬件与软件的其它组合而同时实施且/或起始。在至少一个实施例中,可在一个或一个以上客户端1304处、一个或一个以上服务器1340处和/或其组合实施自动化调用和响应程序的一个或一个以上或选定的部分。举例来说,在至少一些实施例中,可由软件组件、网络服务、数据库和/或类似物或其任何组合来执行、实施和/或起始自动化调用和响应程序的各种方面、特征和/或功能性。根据不同实施例,可响应于检测到满足用于触发自动化调用和响应程序的至少一个例子的起始的一个或一个以上不同类型的准则(例如,最小阈值准则)的一个或一个以上条件或事件而起始自动化调用和响应程序的一个或一个以上不同线程或例子。可触发自动化调用和响应程序的一个或一个以上不同线程或例子的起始和/或实施的各种类型的条件或事件的实例可包含(但不限于)以下各者中的一者或一者以上(或其组合):·与智能自动化助理1002的例子的用户会话,例如(但不限于)以下各者中的一者或一者以上:○移动装置应用程序启动(例如)正实施智能自动化助理1002的实施例的移动装置应用程序;○计算机应用程序启动(例如)正实施智能自动化助理1002的实施例的应用程序;○移动装置上的专用按钮被按压,例如“语音输入按钮”;○附接到计算机或移动装置(例如头戴式耳机、电话头戴式耳机或基站、GPS导航系统、消费型电器、遥控器或具有可与调用助理相关联的按钮的任何其它装置)的外围装置上的按钮;○从网络浏览器开始对实施智能自动化助理1002的网站的网络会话;○从现存网络浏览器会话内开始对实施智能自动化助理1002的网站的交互,其中(例如)请求智能自动化助理1002服务。○发送到调解与智能自动化助理1002的实施例的通信的形态服务器1426的电子邮件消息;○发送到调解与智能自动化助理1002的实施例的通信的形态服务器1426的文本消息;○向调解与智能自动化助理1002的实施例的通信的形态服务器1434作出的电话呼叫;○将例如警报或通知等事件发送到正提供智能自动化助理1002的实施例的应用程序。·当开启和/或启动提供智能自动化助理1002的装置时。根据不同实施例,可手动、自动、静态地、动态地、同时和/或其组合而起始和/或实施自动化调用和响应程序的一个或一个以上不同线程或例子。另外,可在一个或一个以上不同时间间隔(例如,在特定时间间隔期间、以规则的周期性间隔、以不规则周期性间隔、按需等)起始自动化调用和响应程序的不同例子和/或实施例。在至少一个实施例中,自动化调用和响应程序的给定例子可在执行特定任务和/或操作时利用和/或产生各种不同类型的数据和/或其它类型的信息。这可包含(例如)输入数据/信息和/或输出数据/信息。举例来说,在至少一个实施例中,自动化调用和响应程序的至少一个例子可存取、处理和/或以其它方式利用来自一个或一个以上不同类型的资源(例如一个或一个以上数据库)的信息。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取数据库信息的至少一部分。另外,自动化调用和响应程序的至少一个例子可产生一个或一个以上不同类型的输出数据/信息,其(例如)可存储在本地存储器和/或远程存储器装置中。在至少一个实施例中,可使用一个或一个以上不同类型的初始化参数来执行自动化调用和响应程序的给定例子的初始配置。在至少一个实施例中,可经由与一个或一个以上本地和/或远程存储器装置的通信来存取初始化参数的至少一部分。在至少一个实施例中,提供给自动化调用和响应程序的例子的初始化参数的至少一部分可对应于输入数据/信息且/或可从输入数据/信息得到。在图33的特定实例中,假定单个用户正经由网络从具有语音输入能力的客户端应用程序存取智能自动化助理1002的例子。用户正关注于寻找在餐馆吃饭的好地方,且正使智能自动化助理1002参与谈话以帮助提供此服务。在步骤100中,提示用户输入请求。客户端的用户接口提供若干输入模式,如结合图26所述。这些模式可包含(例如):·用于所键入输入的接口,其可调用如图11中所说明的主动所键入输入引出程序;·用于语音输入的接口,其可调用如图22中所说明的主动语音输入引出程序。·用于从菜单选择输入的接口,其可调用如图23中所说明的主动基于GUI的输入引出。所属领域的技术人员将认识到,可提供其它输入模式。在一个实施例中,步骤100可包含例如使用结合图24所述的主动对话建议输入引出程序中所描述的技术来呈现从与助理1002的先前谈话剩下来的选项。举例来说,通过步骤100中的主动输入引出的方法中的一者,用户可向助理1002说“在这附近哪里能让我吃到好吃的意大利菜?”举例来说,用户可能已将此说到语音输入组件中。主动输入引出组件1094的实施例调用语音-文本服务,请求用户进行确认,且接着将经确认的用户输入表示为统一带注解输入格式2690。接着在步骤200中调用语言解译器组件1070的实施例,如结合图29所述。语言解译器组件1070解析文本输入,且产生用户意图290的可能解译列表。在一个解析中,字“意大利菜”与意大利风格的餐馆相关联;“好吃”与餐馆的推荐特性相关联;且“在这附近”与描述距全局传感器读数(例如,如由移动装置上的GPS给出的用户的位置)的距离的位置参数相关联。在步骤300中,将用户意图290的表示传递给对话流处理器1080,对话流处理器1080实施如结合图32而描述的对话和流分析程序的实施例。对话流处理器1080确定对意图的哪一解译最有可能,将此解译映射到域模型的例子和任务模型的参数,且确定对话流中的下一流步骤。在当前实例中,用根据约束(菜系风格、推荐等级和接近度约束)寻找餐馆的受约束选择任务来例示餐馆域模型。对话流模型指示下一步骤是获得满足这些约束的餐馆的一些实例且将其呈现给用户。在步骤400中,经由服务编排组件1082调用流和服务编排程序400的实施例。所述程序代表用户寻找餐馆的请求而调用一组服务1084。在一个实施例中,这些服务1084向共同结果贡献一些数据。其数据经合并且以统一的独立于服务的形式呈现所得餐馆列表。在步骤500中,输出处理器1092产生结果的对话概述,例如“我找到了在这附近的一些被推荐的意大利餐馆”。输出处理器1092将此概述与输出结果数据组合,且接着在步骤600中将组合发送到格式化用户的特定移动装置的输出的模块。在步骤700中,将此装置特定输出封装发送到移动装置,且装置上的客户端软件在移动装置的屏幕(或其它输出装置)上再现所述装置特定输出封装。用户浏览此呈现,并决定探索不同选项。如果用户完成790,那么方法结束。如果用户未完成490,那么通过返回到步骤100来起始环路的另一反复。可例如将自动调用和响应程序应用于用户的查询“墨西哥食物怎么样?”。可在步骤100中引出此输入。在步骤200中,将输入解译为墨西哥风格的餐馆,并与其它状态(保持在短期个人存储器1052中)组合,以支持与上一次相同的意图的解译,在餐馆风格参数中有一个改变。在步骤300中,此经更新的意图产生对请求的细化,其在步骤400中被给予服务编排组件1082。在步骤400中,将经更新请求分派给多个服务1084,从而产生在500中在对话中概述、在600中为所述装置格式化的新的一组餐馆,且在步骤700中经由网络发送以在用户的移动装置上展示新信息。在此情况下,用户寻找他或她喜欢的餐馆,在地图上展示餐馆,且将方向发送给朋友。所属领域的技术人员将认识到,自动化调用和响应程序(未图示)的不同实施例可包含与图33的特定实施例中所说明的特征和/或操作相比是额外的特征和/或操作,且/或可省略图33的特定实施例中所说明的自动化调用和响应程序的特征和/或操作的至少一部分。受约束选择在一个实施例中,智能自动化助理1002在其与用户的交互中使用受约束选择,以便更有效地识别和呈现用户可能感兴趣的项目。受约束选择是一种通用任务。通用任务为表征在一类任务当中共同的域对象、输入、输出和控制流的种类的抽象概念。通过基于选择约束(例如所要菜系或位置)从选择组的域对象(例如餐馆)中选择项目来执行受约束任务。在一个实施例中,助理1002帮助用户探索可能选择的空间,引出用户的约束和偏好,呈现选择,以及提供将对那些选择执行的动作,例如预订、购买、记住或共享那些选择。当用户选择将对其执行动作的一个或一个以上项目时,任务完成。受约束选择在许多情况下是有用的:例如,挑选要看的电影、吃晚餐的餐馆、入住的旅馆、买书的地方等。一般来说,当知道类别且需要选择具有某些所要特性的类别的例子时,受约束选择是有用的。受约束选择的一种常规方法是号码簿服务。用户挑选类别,且系统提供选择列表。在本地号码簿中,可将号码簿约束到一位置,例如城市。举例来说,在“黄页”服务中,用户选择针对一城市的书籍,且接着查找类别,且所述书籍展示用于所述类别的一个或一个以上项目。号码簿服务的主要问题在于可能相关的选择的数目较大(例如,给定城市中的餐馆)。另一常规方法是数据库应用,其提供用以通过引出来自用户的查询、检索匹配项目且以突出显示显著特征的某一方式呈现项目来产生选择集合的一种方式。用户浏览结果集合的行和列,可能对结果进行分类或改变查询,直到他或她找到一些合适的候选项为止。数据库服务的问题在于其可能要求用户将其人类需要操作化为正式查询,且使用分类、过滤和浏览的抽象手段来探索所得数据。这些对于大多数人来说都难以做到,甚至使用图形用户接口也是如此。第三常规方法是开端搜索,例如“本地搜索”。搜索容易进行,但搜索服务存在若干问题,其使得搜索服务让人难以完成受约束选择的任务。具体地说:·与号码簿搜索一样,用户可不仅输入类别并查看一个或一个以上可能选择,而且必须缩小列表。·如果用户可通过约束来缩小选择,那么可使用什么约束并不明显(例如,我能搜寻在步行距离内或关门较晚的地方吗?)·不清楚如何陈述约束(例如,这被称为菜系或餐馆类型吗?且可能的值是什么?)·多个偏好冲突;对于给定情形通常不存在客观上“最佳”答案(例如,我想要附近的且供应便宜的美食且服务好的并且开放到午夜的地方)。·偏好是相对的,且其取决于什么可用。举例来说,如果用户可在评价高的餐馆订到桌子,那么他或她可选择它,尽管它较昂贵。但一般来说,用户将偏好较不贵的选项。在各种实施例中,本发明的助理1002帮助将受约束选择的任务流线化。在各种实施例中,助理1002使用数据库和搜索服务以及其它功能性来减少用户方面陈述他或她正寻找的东西、考虑什么可用且决定满意的解决方案的努力。在各种实施例中,助理1002以许多不同方式中的任一者帮助使受约束选择对人类来说更简单。举例来说,在一个实施例中,助理1002可将特性操作化为约束。用户依据所要结果的特性来陈述他或她想要什么。助理1002将此输入操作化为正式约束。举例来说,代替于说“寻找距帕洛阿尔托市中心少于2英里,且菜系包含意大利食物的一个或一个以上餐馆”,用户可仅说“帕洛阿尔托市的意大利餐馆”。助理1002还可操作化用户所请求的质量,其不是数据库的参数。举例来说,如果用户请求浪漫餐馆,那么系统可将此操作化为文本搜索或标签匹配约束。以此方式,助理1002帮助克服用户原本对于受约束选择可能具有的问题中的一些问题。对于用户来说,与描述将区分适合的解决方案与不适合的解决方案的条件相比,较容易想象并描述令人满意的解决方案。在一个实施例中,助理1002可建议有用的选择准则,且用户仅需说哪一准则在此刻是重要的。举例来说,助理1002可问“这些主题中的哪一者:价格(越便宜越好)、位置(越近越好)、评级(评价越高越好)?)助理1002还可建议可需要特定值的准则;例如“您可说出您喜欢什么种类的菜系,或您喜欢的食物项目”。在一个实施例中,助理1002可帮助用户在关于若干竞争准则(例如,价格、质量、可用性和方便性)而不同的选择当中作出决策。通过提供此指南,助理1002可以若干方式中的任一者帮助用户作出多参数决策:·一种方式是减少空间的维数,从而将例如来自多个来源的评级的原始数据组合成复合“推荐”得分。复合得分可考虑关于数据源的域知识(例如,查格(Zagat)评级可比叶欧普(Yelp)对质量更具预测性)。·另一方法是集中在准则的子集上,将问题“什么是要考虑的所有可能准则,且如何将其组合?”转化成给定情形下的最重要准则的选择(例如,“什么是最重要的,价格还是接近度?”)。·简化作决策的另一方式是假定默认值和偏好次序(例如,所有东西均相等,评价越高且越近且越便宜越好)。所述系统还可记住用户的先前响应,先前响应指示其默认值和偏好。·第四,所述系统可提供选择集合中在原始请求中未提到的项目的突出特性。举例来说,用户可能已询问本地意大利食物。所述系统可提供餐馆选择集合,且通过所述餐馆,提供由评论员或来自指南手册的主题句使用的流行标签列表(例如,“约会的好地方”、“好吃的意大利面”)。这可使人挑出特定项目,并完成任务。研究显示大多数人通过评估特定例子而不是决定准则且理性地接受跳到顶部的准则来作出决策。研究还显示人们从具体案例得知特征。举例来说,当挑选汽车时,购买者可能不在乎导航系统,直到他们看到一些汽车具有导航系统为止(且接着导航系统可成为重要准则)。助理1002可呈现帮助人们挑出胜利者或建议将沿其优化的维度的所列项目的突出特性。概念数据模型在一个实施例中,助理1002通过简化概念数据模型来提供对受约束选择任务的辅助。概念数据模型是在助理1002的接口中呈现给用户的抽象概念。为了克服上文所述的心理问题,在一个实施例中,助理1002提供允许用户依据合适选择的几个容易辨识且想起的特性而不是约束表达来描述他们想要什么的模型。以此方式,可使特性容易组成在自然语言请求(例如,修改关键字标记的形容词)中且可在提示(“您可能还喜欢被推荐的餐馆……”)中辨识。在一个实施例中,使用一种数据模型,其允许助理1002确定所关注的域(例如,餐馆对旅馆),以及可用域特定特性例示的一般指导方法。在一个实施例中,助理1002所使用的概念数据模型包含选择类。这是从中进行选择的事物空间的表示。举例来说,在寻找餐馆应用中,选择类为餐馆类。选择类可为非具体的且具有子类,例如“在目的地要做的事情”。在一个实施例中,概念数据模型假定在给定问题解决情形中,用户有兴趣从单个选择类进行选择。此假定简化交互,且还允许助理1002宣告其权限边界(“我了解餐馆、旅馆和电影院”与“我了解这个城市的生活”相对)。在给定选择类的情况下,在一个实施例中,呈现给用户的用于受约束选择任务的数据模型包含(例如):项目;项目特征;选择准则;以及约束。项目为选择类的例子。项目特征为可呈现且/或与至少一个项目相关联的特性、属性或所计算值。举例来说,餐馆的名称和电话号码为项目特征。特征可为固有的(餐馆的名称或菜系)或相关的(例如,距所关注的当前位置的距离)。特征可为静态的(例如,餐馆名称)或动态的(评级)。特征可为从其它数据(例如,“金钱价值”得分)计算的复合值。项目特征为由域建模者作出的给用户的抽象概念;其无需对应于来自后端服务的基础数据。选择准则为可用以比较项目的值或相关度的项目特征。也就是说,选择准则是指明哪些项目为优选的方式。将选择准则建模为项目本身的特征,不管其为固有特性还是所计算出的。举例来说,接近度(定义为距所关注位置的距离)为选择准则。空间-时间中的位置为特性而不是选择准则,且其与所关注位置一起用来计算距所关注位置的距离。选择准则可具有固有偏好次序。也就是说,可使用任一特定准则的值来以最佳优先次序排列项目。举例来说,接近度准则具有越近越好的固有偏好。另一方面,位置不具有固有偏好值。此限制允许系统在用户仅提到准则的情况下,作出默认假定且指导选择。举例来说,用户接口可提供“根据评级进行分类”,且假定评价越高越好。一个或一个以上选择准则也是项目特征;其为与在可能项目当中进行选择有关的那些特征。然而,项目特征不必与偏好有关(例如,餐馆的名称和电话号码通常与在其当中进行选择不相关)。在至少一个实施例中,约束为对选择准则的所要值的限制。形式上,约束可表示为集合隶属关系(例如,菜系类型包含意大利)、模式匹配(例如,餐馆评论文本包含“浪漫的”)、模糊不等性(例如,距离小于几英里)、定性阈值(例如,评级高),或较复杂的函数(例如,物有所值)。为了使事情对正常人类来说足够简单,此数据模型将至少一个或一个以上约束减少到可匹配为字的符号值。时间和距离可从此减少中排除。在一个实施例中,用于实施约束的操作者和阈值向用户隐藏。举例来说,对称为“菜系”的选择准则的约束可表示为符号值,例如“意大利”或“中国”。对评级的约束是“被推荐的”(二元选择)。对于时间和距离,在一个实施例中,助理1002使用专属表示,其处置某一范围的输入和约束值。举例来说,距离可为“步行距离”,且时间可为“今晚”;在一个实施例中,助理1002使用特殊处理来将此输入与更精确的数据匹配。在至少一个实施例中,一些约束可为所需约束。这意味着任务在没有此数据的情况下简直无法完成。举例来说,在没有所要位置的某一意见的情况下难以挑选餐馆,即使知道名称也是如此。总的来说,将域建模为具有对用户来说重要的项目特征的选择类。所述特征中的一些特征用以选择提供给用户的项目并对所述项目进行排序,这些特征被称为选择准则。约束为对选择准则的符号限制,其将项目集合缩小到匹配的那些项目。通常,多个准则可能竞争,且约束可能部分地匹配。数据模型将选择问题从优化(寻找最佳解决方案)变为匹配问题(寻找处理好一组指定准则且与一组符号约束匹配的项目)。接下来的部分中描述用于选择准则和约束且确定排序的算法。用于受约束选择的方法在一个实施例中,助理1002通过将经排序的准则列表(具有对至少一个准则的隐式或显式约束)用作输入且产生一组具有突出特征的候选项目来执行受约束选择。在计算上,可将选择任务特征化为嵌套的搜索:首先,识别选择类,接着识别重要选择准则,接着指定约束(可接受解决方案的边界),且以最佳配合的次序搜寻例子以找到可接受项目。现在参看图45,展示用于受约束选择任务作为嵌套搜索的抽象模型4500的实例。在所述实例中,助理1002在所有本地搜索类型4501当中识别4505)选择调用。所识别的类为餐馆。在所有餐馆集合4502中,助理1002选择4506准则。在所述实例中,将准则识别为距离。在PA4503中的餐馆集合内,助理1002为搜索指定4507约束。在所述实例中,所识别的约束为“意大利菜系”)。在PA4504中的意大利餐馆集合内,助理4508选择项目以供呈现给用户。在一个实施例中,此嵌套搜索是一旦助理1002具有相关输入数据就进行的操作,而不是用于引出数据且呈现结果的流。在一个实施例中,经由助理1002与通过其它程序(例如对话和任务流模型)进行操作的用户之间的对话来操控此控制流。受约束选择提供用于在此抽象等级下构造对话和任务流模型的框架(即,适合于受约束选择任务,而与域无关)。现在参看图46,展示帮助指导用户通过搜索过程以使得可获得相关输入数据的对话4600的实例。在实例对话4600中,第一步骤是用户陈述他们正寻找的事物种类,其为选择类。举例来说,用户可通过说出“在帕洛阿尔托吃饭”来进行。这允许助理1002推断4601任务和域。一旦助理1002已理解任务和域绑定(选择类=餐馆),下一步骤就是理解哪一选择准则对此用户来说是重要的,例如通过索要4603准则和/或约束。在以上实例中,“在帕洛阿尔托”指示所关注位置。在餐馆的情形中,系统可将位置解译为接近度约束(技术上来说,对接近度准则的约束)。助理1002解释需要什么,接收输入。如果存在足够信息来将选择集合约束到合理大小,那么助理1002对输入进行释义,且呈现4605满足接近度约束的一个或一个以上餐馆,其以某一有用次序进行分类。用户可接着从此列表中进行选择4607,或细化4606准则和约束。助理1002推出已经陈述的约束,且使用域特定知识来建议可能有帮助的其它准则,也索要对这些准则的约束。举例来说,助理1002可推出当推荐在旅馆的步行距离内的餐馆时,要索要的有用准则将为菜系和桌子可用性。当用户选择4607选择类的例子时,受约束选择任务完成。在一个实施例中,额外后续任务4602由助理1002实现。因此,助理1002可提供指示选择的服务,同时提供某一其它值。实例4608预订餐馆、在日历上设定提醒和/或通过发送邀请而与他人共享选择。举例来说,预订餐馆确定地指示其被选择;其它选项可为将餐馆放在日历上,或在具有方向的邀请中发送给朋友。现在参看图47,展示了描绘根据一个实施例的受约束选择的方法的流程图。在一个实施例中,助理1002以机会和混合主动方式操作,从而准许用户跳到内部环路,例如通过在输入中一次一个或一个以上地陈述任务、域、准则和约束。方法开始4701。根据本文所述的模式中的任一者,从用户接收4702输入。如果基于所述输入,任务是未知的,那么助理1002请求4705阐明来自用户的输入。在步骤4717中,助理1002确定用户是否提供额外输入。如果是,那么助理1002返回到步骤4702。否则,方法结束4799。如果在步骤4703中,任务是已知的,那么助理1002确定4704任务是否为受约束选择。如果不是,那么助理1002前进4706到指定任务流。如果在步骤4704中,任务是受约束选择,那么助理1002确定4707是否可确定选择类。如果不可确定选择类,那么助理1002提供4708对已知选择类的选择,且返回到步骤4717。如果在步骤4707中,可确定选择类,那么助理1002确定4709是否可确定所有所需约束。如果不可确定,那么助理1002提示4710输入所需信息,且返回到步骤4717。如果在步骤4709中,可确定所有所需常量,那么助理1002确定4711在给定约束的情况下是否可找到任何结果项目。如果不存在满足约束的项目,那么助理1002提供4712放宽约束的方式。举例来说,助理1002可使用过滤器/分类算法将约束从最低优先放宽到最高优先。在一个实施例中,如果存在满足约束中的一些的项目,那么助理1002可对情形进行释义(例如,输出“我无法在圣卡洛斯找到在星期天外送的被推荐的希腊餐馆。然而,我在圣卡洛斯找到了3家希腊餐馆和7家被推荐的餐馆)。在一个实施例中,如果不存在与任何约束匹配的项目,那么助理1002可对此情形进行释义,且提示不同约束(例如,输出“对不起,我无法在德克萨斯州的安尼顿(Anytown)找到任何餐馆。您可挑选不同位置。”)。助理1002返回到步骤4717。如果在步骤4711中,可找到结果项目,那么助理1002提供4713项目列表。在一个实施例中,助理1002对当前指定的准则和约束进行释义(例如,输出“在圣荷西市有一些被推荐的意大利餐馆。”(推荐=是,菜系=意大利,接近度=<在圣荷西市内>))。在一个实施例中,助理1002呈现满足已知约束的经分类、且编有页码的项目列表。如果项目仅展示约束中的一些,那么此条件可展示为项目显示的部分。在一个实施例中,助理1002例如通过起始关于项目的另一任务(例如预订、记住、日程安排或共享)向用户提供选择那个项目的方式。在一个实施例中,在任一给定项目上,助理1002呈现突出的用于挑选选择类的例子的项目特征。在一个实施例中,助理1002展示项目如何满足约束;例如,查格评级5满足被推荐的=是约束,且“1英里外”满足“在地址的步行距离内”约束。在一个实施例中,助理1002允许用户向下挖以获得关于项目的更多细节,其产生更多项目特征的显示。助理1002确定4714用户是否已选择项目。如果用户选择项目,那么任务完成。执行4715任何后续任务(如果存在的话),且方法结束4799。如果在步骤4714中,用户并未选择项目,那么助理1002向用户提供4716选择其它准则和约束的方式,且返回到步骤4717。举例来说,在给定当前指定的准则和约束的情况下,助理1002可提供最有可能将选择集合约束到所要大小的准则。如果用户选择约束值,那么当重复步骤4703到4713时,将约束值添加到先前确定的约束。由于一个或一个以上准则可具有固有偏好值,因此选择所述准则可将信息添加到请求。举例来说,允许用户指示正面评论是有价值的将允许助理1002根据此准则进行分类。当重复步骤4703到4713时,可考虑此信息。在一个实施例中,助理1002允许用户提高已经指定的准则的重要性,使得其在优先次序中将较高。举例来说,如果用户寻求在其位置的一个街区内的快速、便宜、受到高度推荐的餐馆,那么助理1002可请求用户选择这些准则中的哪一些更重要。当重复步骤4703到4713时,可考虑此信息。在一个实施例中,用户可在正执行图47的方法的任一点处提供额外输入。在一个实施例中,助理1002周期性地或连续地检查此输入,且作为响应,返回到步骤4703以处理所述输入。在一个实施例中,当输出项目或项目列表时,助理1002在项目呈现中指示用以选择项目并对其进行排序的特征。举例来说,如果用户寻找附近的意大利餐馆,那么可在项目的呈现中展示用于距离和菜系的此些项目特征。这可包含突出显示匹配,以及列出项目的呈现中所涉及的选择准则。实例域表1提供根据各种实施例的可由助理1002处置的受约束选择域的实例。表1过滤和分类结果在一个实施例中,当呈现满足当前指定准则和约束的项目时,可使用过滤/分类方法。在一个实施例中,选择约束可充当对基础服务的过滤和分类参数两者。因此,任何选择准则均可用以确定哪些项目在列表中,且用以计算对项目进行编页码和展示的次序。用于此任务的分类次序类似于搜索中的相关等级。举例来说,接近度是具有符号约束值的准则,例如“在开车距离内”,以及根据距离进行分类的一般概念。可使用“开车距离”约束来选择一组候选项目。在所述组内,较近的项目可在列表中被分类得较高。在一个实施例中,选择约束以及相关联的过滤和分类处于离散“等级”,其为基础数据以及来自用户的输入两者的函数。举例来说,将接近度分组为例如“步行距离”、“出租车距离”、“开车距离”等等级。当分类时,在步行距离内的一个或一个以上项目如同具有相同距离那样来看待所述一个或一个以上项目。来自用户的输入可以他或她指定约束的方式开始起作用。举例来说,如果用户输入“在帕洛阿尔托”,那么在帕洛阿尔托市限制内的一个或一个以上项目完美匹配且均等。如果用户输入“在火车站大学街附近”,那么匹配将取决于距所述地址的距离,其中匹配程度取决于选择类(例如,附近餐馆不同于附近旅馆)。甚至在可用连续值指定的约束内,也可应用离散化。这对于分类操作可为重要的,使得多个准则可参与确定最佳优先排序。在一个实施例中,项目列表(被视为“匹配”或“足够好”的那些项目)可比展示在输出的一个“页”上的项目的数目短或长。一般来说,第一页中的项目是被给予最多关注,但概念上,存在更长的列表,且编页码只是输出媒体的形状因子的函数。这意味着(例如)如果用户被提供按照某一准则分类或浏览项目的方式,那么分类或浏览的是整个项目集合(相当于一个以上页)。在一个实施例中,选择准则当中存在优先排序。也就是说,在过滤器和分类中,某一准则可比其它准则重要。在一个实施例中,由用户选择的那些准则被给予比其它准则高的优先,且存在根据一个或一个以上准则的默认排序。这允许一般的字典式分类。假定存在有意义的先验优先。举例来说,除非用户另有规定,否则对于餐馆来说近比便宜更重要。在一个实施例中,先验优先排序是域特定的。如果需要的话,模型允许用户特定优先超驰域默认值。由于约束的值可表示若干内部数据类型,因此存在不同的约束匹配方法,且其可为约束特定的。举例来说,在一个实施例中:·二进制约束与一者或一者以上匹配或没有匹配。举例来说,餐馆是否“快”可为真或假。·集合隶属关系约束基于特性值而与一者或一者以上匹配或没有匹配。举例来说,菜系=希腊意味着餐馆的菜系集合包含希腊。·枚举约束在阈值下匹配。举例来说,评级准则可具有经评价、高度评价或最高评价约束值。对高度评价的约束也将与最高评价匹配。·数值约束在可为准则特定的阈值下匹配。举例来说,“关门晚”可为准则,且用户可寻找在下午10:00后还开门的地方。这种约束可略微超出受约束选择任务的范围,因为其不是符号约束值。然而,在一个实施例中,助理1002辨识与此一样的数值约束的一些情况,且将其映射到具有符号约束的阈值(例如,“帕洛阿尔托现在开门的餐馆”->“帕洛阿尔托有2家关门晚的餐馆”)。·特殊处置位置和时间。对接近度的约束可为在某一粒度等级下指定的所关注位置,且其确定匹配。如果用户指定城市,那么城市等级匹配是适当的;ZIP码可允许半径。助理1002还可基于特殊处理来理解在所关注的其它位置“附近”的位置。时间是作为具有基于服务调用的阈值的准则的约束值而相关,例如桌子可用性或给定时间范围内的航班。在一个实施例中,可对约束进行建模,使得对于选择存在单个阈值,且对于分类存在离散值的小集合。举例来说,可将可承受度准则建模为粗略二进制约束,其中可承受的餐馆为在某一阈值价格范围以下的任何餐馆。当数据证明多个离散等级供选择时,可使用匹配梯度来对约束进行建模。在一个实施例中,可提供两个匹配等级(例如,强和弱匹配);然而,所属领域的技术人员将认识到,在其它实施例中,可提供任何数目的匹配等级。举例来说,接近度可与模糊边界匹配,使得在所关注位置附近的事物可较弱地匹配。强或弱匹配的操作结果是在过滤器/分类算法中,如下文所述。对于至少一个准则,如果相关,那么可建立匹配方法和默认阈值。用户可能够只要说出约束的名称、符号约束值或精确约束表达(如果其经特殊处置)(例如时间和位置)。当用户陈述产生短候选者(其中的一者或一者以上满足约束)列表的约束时发生受约束选择的理想情形。用户接着基于项目特征在胜利者当中进行选择。然而,在许多情况下,问题是过度约束或约束不够。当过度约束时,很少或没有项目满足约束。当约束不够时,存在太多候选者以使得检查列表是不便的。在一个实施例中,本发明的一般受约束选择模型能够用稳健匹配来处置多个约束,且通常产生从中选择的某物。接着,用户可选择细化其准则和约束,或仅用“足够好的”解决方案来完成任务。方法在一个实施例中,将以下方法用于过滤和分类结果:1.在给定由用户选择的选择准则的经排序列表的情况下,确定对至少一个准则的约束。a.如果用户指定约束值,那么使用所述约束值。举例来说,如果用户说“希腊食物”,那么约束为菜系=希腊。如果用户说“旧金山”,那么约束为在旧金山市内。如果用户说“市场南方”,那么约束为在索玛(SoMa)附近。b.否则,使用域特定以及准则特定的默认值。举例来说,如果用户说“在某一泰国场所里的桌子”,那么他或她正指示可用性准则是相关的,但他或她并未指定约束值。可用性的默认约束值可为某一范围的日期时间(例如今晚)以及为2的默认聚会规模。2.根据指定约束来选择最少N个结果。a.尝试在强匹配下获得N个结果。b.如果失败,那么尝试以相反优先次序放宽约束。也就是说,在针对准则中除最后一个以外的一个或一个以上准则的强等级下匹配,最后一个准则可在弱等级下匹配。如果针对所述约束不存在弱匹配,那么尝试沿从最低优先到最高优先的线路的弱匹配。c.接着重复允许失败的环路以从最低优先到最高优先匹配约束。3.在获得最小选择集合之后,以优先次序以字典方式对一个或一个以上准则(其可包含用户指定的准则以及其它准则)进行分类。a.将用户指定的准则的集合视为最高优先,接着是其先验优先中的一个或一个以上剩余准则。举例来说,如果先验优先为(可靠性、菜系、接近度、评级),且用户给出对接近度和菜系的约束,那么分类优先为(菜系、接近度、可靠性、评级)。b.使用离散匹配等级(强、弱、无)、使用与放宽约束中相同的方法(这次应用整个准则列表)来对准则进行分类。i.如果在不放宽约束的情况下获得选择集合,那么选择集合中的一者或一者以上可“系”在分类中,因为所述一者或一者以上在强等级下匹配。接着,优先列表中的接下来的准则可开始生效以对准则进行分类。举例来说,如果用户说菜系=意大利,接近度=在旧金山,且分类优先为(菜系、接近度、可用性、评级),那么列表上的一个或一个以上地方对于菜系和接近度具有相等的匹配值。因此,将根据可用性(具有可用桌子的地方弹到顶部)对列表进行分类。在可用地方内,评价最高的地方将在顶部。ii.如果选择集合是通过放宽约束而获得,那么完全匹配项目中的一者或一者以上处于列表的顶部,接着是部分匹配项目。在匹配群组内,根据剩余准则对其进行分类,且对部分匹配群组也是如此。举例来说,如果在旧金山仅有两个意大利餐馆,那么将首先展示可用的一个餐馆,接着是不可用的餐馆。接着,将展示根据可用性和评级进行分类的在旧金山的餐馆中的其余餐馆。优先排序本文所述的技术允许助理1002在面对部分指定的约束和不完整数据时极其稳健。在一个实施例中,助理1002使用这些技术来以最佳优先次序(即,根据相关度)产生用户项目列表。在一个实施例中,此相关度分类是基于先验优先排序。也就是说,对于与域有关的事物,以重要性次序选择和放置一组准则。一个或一个以上事物是相等的,与在次序中越低的情况相比,准则在优先次序中越高可与项目当中的受约束选择越相关。助理1002可对任何数目的准则进行操作。另外,可在不中断现有行为的情况下,随时间而修改准则。在一个实施例中,可用域特定参数来调谐准则当中的优先次序,因为准则交互的方式可取决于选择类。举例来说,当在旅馆当中进行选择时,可用性和价格可为主要约束,而对于餐馆来说,菜系和接近度可能更重要。在一个实施例中,用户可在对话中超驰默认准则排序。这允许系统在搜索被过度约束时通过使用排序来确定哪些约束应被放宽来指导用户。举例来说,如果用户给出对菜系、接近度、推荐和食物项目的约束,且不存在完全匹配的项目,那么用户可说出食物项目比推荐等级重要,且改变混合,因此所要食物项目被分类到顶部。在一个实施例中,当确定优先次序时,用户指定的约束比其它约束优先。举例来说,在一个实施例中,接近度是所需约束,且因此总是被指定,且进一步优先于其它未选定约束。因此,接近度不必为了变得相当重要而为最高优先约束。并且,许多准则可不在一者或一者以上下匹配,除非用户给出约束,且因此这些准则的优先仅在用户选择的准则内有关系。举例来说,当用户指定菜系时,菜系对他们来说是重要的,且否则菜系与分类项目无关。举例来说,以下是用于餐馆域的候选优先分类范式:1.菜系*(不可分类,除非给出约束值)2.可用性*(可使用默认约束值(例如时间)来分类)3.被推荐的4.接近度*(总是给出约束值)5.可承受度6.可外送7.食物项目(不可分类,除非给出约束值(例如关键字))8.关键字(不可分类,除非给出约束值(例如关键字))9.餐馆名称以下是用于上述分类范式的设计基本理论的实例:·如果用户指定菜系,那么他或她想使它固定。·一个或一个以上事物是相等的,根据评级等级进行分类(与可用于在无约束的情况下进行分类的情况相比,其为准则当中的最高优先)。·在至少一个实施例中,接近度可比大多数事物重要。然而,由于其在离散等级(在市里、在步行半径内等)下匹配,且其总是被指定,所以大多数时候,大多数匹配项目可“系”在接近度上。·可用性(如由例如opentable.com等网站上的搜索所确定)是有价值的分类准则,且可基于用于在未指定时进行分类的默认值。如果用户指示预订的时间,那么仅可用的地方可在列表中,且分类可基于推荐。·如果用户说他们想要被高度推荐的地方,那么其可在接近度和可用性以上进行分类,且可在推荐之前放宽这些准则。假定如果某人正在寻找好的地方,那么他们可能愿意驾驶得远一点,且这比默认的桌子可用性重要。如果指定可用性的特定时间,且用户请求所推荐的地方,那么既被推荐又可用的地方可在最前面,且在可用性无法在一者或一者以上下匹配之前,推荐可放宽到弱匹配。·除名称之外的剩余约束为基于不完整数据或匹配的一个或一个以上约束。因此,所述约束默认为且当其被指定匹配一者或一者以上或没有匹配时为弱分类试探法。·可将名称用作处置其中某人提到餐馆的名称(例如,找到在帕洛阿尔托附近的一个或一个以上霍比餐馆)的情况的约束。在此情况下,一个或一个以上项目可与名称匹配,且可根据接近度进行分类(此实例中的另一指定约束)。域建模:将选择准则映射到基础数据区分可用于助理1002的计算的数据与用于作出选择的数据可为合意的。在一个实施例中,助理1002使用一种数据模型,所述数据模型通过将用以区分项目的一种或一种以上数据折叠到简单选择准则模型中来降低对用户的复杂性。在内部,这些数据可采取若干形式。选择类的例子可具有固有特性和属性(例如餐馆的菜系),可沿维度(例如距某一位置的距离)进行比较,且可通过某一询问(例如,其是否与文本模式匹配或在给定时间可用)来发现。所述例子还可从不作为选择准则(例如,来自多个来源的评级的经加权组合)暴露于用户的其它数据计算。这些数据中的一者或一者以上与任务相关,但这三种数据当中的区别与用户无关。由于用户依据所要选择的特征而不是依据特性和维度来思考,所以助理1002将这些各种准则操作化为项目的特征。助理1002提供面向用户的域数据模型,且将其映射到在网络服务中找到的数据。一种类型的映射是从基础数据到面向用户的准则的同构。举例来说,如由用户看到的可供预订的桌子的可用性可正好为在线预订网站(例如,opentable.com)使用时间和聚会规模的相同粒度提供的内容。另一类型的映射为可能对等效值进行统一的情况下从一个或一个以上服务到共用值集合的数据的标准化。举例来说,可将一个或一个以上餐馆的菜系表示为助理1002中的单个本体,且映射到不同服务中所使用的各种词汇。所述本体可为分级的,且具有从至少一个服务指向特定值的叶节点。举例来说,一个服务可能具有针对“中国”的菜系值、针对“四川菜”的另一菜系值,以及针对“亚洲”的第三菜系值。助理1002所使用的本体将致使对“中国食物”或“四川”的参考在语义上与这些节点中的一者或一者以上匹配,其中置信度反映匹配程度。当解决精度差异时,也可涉及标准化。举例来说,在一个服务中可将餐馆的位置给予街道等级,但在另一服务中,可仅将其给予城市。在一个实施例中,助理1002使用可映射到不同表面数据值的位置和时间的深结构表示。在一个实施例中,助理1002针对可映射到全文本搜索、标签或其它开放文本特征中的匹配的开端限定词(例如,浪漫、安静)使用一种特殊种类的映射。在此情况下,选择约束的名称将为类似“被描述为”的某物。在至少一个实施例中,可将约束映射到操作偏好排序。也就是说,在给定选定准则的名称及其约束值的情况下,助理1002能够将准则解译对可能项目的排序。解决此映射存在若干技术问题。举例来说:·偏好排序可能冲突。由一个约束给出的排序可能与另一约束给出的排序不一致或甚至反相关。举例来说,价格和质量趋向于对立。在一个实施例中,助理1002以反映用户期望但对数据真实的经加权或以其它方式组合的排序来解译用户所选择的约束。举例来说,用户可寻找“在步行距离内评价较高的便宜快餐法国餐馆”。在许多位置中,可能不存在任何此类餐馆。然而,在一个实施例中,助理1002可展示尝试为至少一个约束而优化的项目列表,且解释为何列出至少一者。举例来说,项目一可能为“评价较高的法国菜系”,且另一项目为“在步行距离内的便宜快餐”。·可将数据用作硬约束或软约束。举例来说,餐馆的价格范围对于选择一个餐馆来说是重要的,但可能难以预先陈述价格阈值。甚至貌似类似菜系的硬约束可实际上因为部分匹配而为软约束。在一个实施例中,由于助理1002使用寻求将一个或一个以上准则变平为符号值(例如“便宜”或“近”)的数据建模策略,这些约束可映射到使准则和次序正确的函数中,而在与特定阈值匹配方面并不严格。对于具有清楚客观真实值的符号准则,助理1002可对客观准则比其它准则更高加权,且在解释中阐明其知道项目中的一些项目并不与所请求准则严格匹配。·项目可与一些但不是一个或一个以上约束匹配,且可展示“最佳配合”项目。·一般来说,助理1002确定哪些项目特征对于域来说是突出的,且哪些项目特征可充当选择准则,以及对于至少一个准则,确定可能的约束值。可例如经由操作数据和API调用来提供此信息。释义和提示文本如上文所述,在一个实施例中,助理1002提供反馈以展示其理解用户的意图,且通过产生其当前理解的释义而致力于用户的目标。在本发明的谈话对话模型中,释义是助理1002在用户的输入之后输出的东西,作为要遵循的结果(例如,图35中的列表3502)的前言(例如,图40中的释义4003)或概述。提示是对用户的关于他们还可怎么做来细化其请求或沿一些维度探索选择空间的建议。在一个实施例中,释义和提示文本的目的包含(例如):·为了展示助理1002理解用户的输入中的概念,而不仅是文本;·为了指示助理1002的理解的边界;·为了指导用户输入所假定任务所需的文本;·为了帮助用户探索受约束选择中的可能性空间;·为了解释依据用户所陈述的准则和助理1002的假定而从服务获得的当前结果(例如,为了解释约束不够和过度约束的请求的结果)。举例来说,以下释义和提示说明这些目标中的若干目标:用户输入:门洛帕克市的印尼食物系统解译:任务=受约束选择选择类=餐馆约束:位置=加利福尼亚州,门洛帕克市菜系=印尼(本体中已知)来自服务的结果:无强匹配释义:对不起,我无法找到门洛帕克市附近的任何印尼餐馆。提示:您可尝试其它菜系或位置。超文本链接下的提示:印尼菜:您可尝试例如中国菜等其它食物类别,或例如牛排等最爱食物项目。门洛帕克市:输入位置,例如城市、邻居、街道地址,或地标“附近”。菜系:输入食物类别,例如中国菜或披萨。位置:输入位置:城市、邮政编码,或地方的名称“附近”。在一个实施例中,助理1002用释义来相对较快地响应用户输入。接着在已知结果之后更新释义。举例来说,初始响应可为“在门洛帕克市附近寻找印尼餐馆……”一旦获得结果,助理1002就将更新文本以读出“对不起,我无法在门洛帕克市附近找到任何印尼餐馆。您可尝试其它菜系或位置。”注意,可突出显示某些项目(此处由下划线指示),从而指示那些项目表示可放宽或改变的约束。在一个实施例中,将特殊格式化/突出显示用于释义中的关键字。这可有助于通过向用户指示哪些字对于助理1002来说且更有可能对于助理1002辨识来说是最重要,来促进用户对与智能自动化助理1002的交互的训练。用户可接着更有可能在将来使用此些字。在一个实施例中,使用任何相关上下文数据来产生释义和提示。举例来说,可单独或组合使用以下数据项目中的任一者:·解析,其为绑定到其匹配输入令牌的具有注解和例外的本体节点树。对于解析中的每一节点,这可包含节点的元数据和/或输入中提供节点的值的证据的任何令牌。·任务,如果已知的话·选择类。·位置约束,其独立于选择类。·对于给定选择类来说,哪些所需参数是未知的(例如,位置是对餐馆的所需约束)。·解析中的命名实体的名称,其选择类(如果存在一者的话)(例如特定餐馆或电影院名称)的例子。·这是后续细化还是谈话的开始?(重设开始新的谈话)。·解析中的哪些约束绑定到改变其值的输入中的值?换句话说,哪些约束恰由最新输入改变?·选择类是推断出的还是直接陈述的?·根据质量、相关度或接近度进行分类?·对于所指定的每一约束,其匹配程度如何?·细化是作为文本还是点击输入的?在一个实施例中,释义算法考虑到询问(域模型1056)以及服务结果。域模型1056含有类和特征,其包含用以决定如何产生文本的元数据。用于释义产生的此元数据的实例包含:·IsConstraint={真|假当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1