首页> 中国专利> 提供对话定位并且能够进行会话式通信的系统和方法

提供对话定位并且能够进行会话式通信的系统和方法

摘要

用于在分布式多模态环境中提供会话式计算的系统和方法,特别地,用于使得用户能够使用便携式访问设备与分布式网络中的实体进行会话式通信的系统和方法,其中以与例如用户语言、(多个)访问通道、访问设备的I/O模态以及地区/国际设置无关的方式说明了用于与网络中的实体通信的交互对话,并且其中用户访问设备和/或远程服务器包括基于用户语言、用户首选项、访问设备特性和/或地区/国际设置来修改所述交互对话的机构,从而使得用户能够与网络中的一个或多个实体交互。

著录项

  • 公开/公告号CN1610346A

    专利类型发明专利

  • 公开/公告日2005-04-27

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200410080126.0

  • 申请日2004-09-23

  • 分类号H04L29/02;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静

  • 地址 美国纽约

  • 入库时间 2023-12-17 16:04:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-10-12

    授权

    授权

  • 2005-06-29

    实质审查的生效

    实质审查的生效

  • 2005-04-27

    公开

    公开

说明书

技术领域

本发明总体上涉及用于在分布式多模态环境中提供会话式计算的系统和方法。具体地说,本发明涉及用于使得用户可以使用便携访问设备与分布式网络中的实体会话式地通信的系统和方法,其中以与例如用户语言、(多个)访问通道、访问设备的I/O模态以及地区/国际设置无关的方式说明了用于与网络中的一个或多个实体进行通信的交互对话,并且其中用户访问设备和/或远程服务器包括用于根据用户语言、用户首选项、(多个)访问通道、访问设备的特性和/或地区/国际设置来修改交互对话的机制。

背景技术

计算世界正在向这样的时代发展,即数十亿遍布各地的互连的客户机与功能强大的信息服务器通信。实际上,该世纪的特征将是多个可用的信息设备使得普遍存在的信息访问成为生活中被接受的事实。这种朝着通过因特网、无线网络或自发网络(诸如蓝牙和Jini)互连的数十亿遍布各地的设备的发展将带来人-机交互根本原理的彻底变革。在不久的将来,诸如蜂窝电话、智能电话、袖珍助手、PDA、PC等个人信息设备将提供无处不在的访问,它们提供了使用最适合于用户当前需求和能力的互连模态来随时随地创建、处理和交换信息的能力。

可用信息的不断增加,以及每个用户处理这些信息的可用计算能力的提高,随之带来了增加人-机通信带宽的附带需要。使用设计成在任意给定时刻适合用户特定需求和能力的各种设备来访问信息的能力必然意味着这些交互将利用所有可用的输入/输出(I/O)模态以最大化人-机通信的带宽。

当前的联网基础结构没有被配置为在分布式环境中提供对资源的无缝、多通道、多模态和/或会话式访问。例如,在设施(appliance)和设备可由语音命令控制的分布式环境中,例如,能够进行此类控制的应用、用户界面和服务器是基于在其中实现此类应用的环境的本地化和用户语言而构建的。

作为例子,假设可以使用,例如,一种给定语言的语音命令自动地控制公共房间内的灯来关闭、开启或调暗灯光。假设一位进入该房间的外国参观者希望调暗灯光。如果该参观者不知道本地命令和/或本地语言,则该参观者将不能亲自控制灯光。但是,该参观者可以做出某种指示(例如,皱眉,或用外语讲一些什么),其可被陪同该参观者的助手理解,意味着该参观者想将灯光调暗。在这种情况下,人类助手可以通过,例如,以适合的语言说出已知的命令或参与和另一个人或实体的对话以调暗灯光来继续该参观者调暗灯光的要求。

因此,在上面的例子中,要求用户使用特定的指示(gesture)(例如,一组特定语言的特定口头命令)与联网的实体来交互是不利的。当前,应用对话的本地化(即,用于其它语言)或将对话部分修改为适合不同的地区设置(例如,地址格式)要求为每种语言重新设计该应用等。

发明内容

本发明的示例实施例总体上包括用于在分布式多模态环境中提供会话式计算的系统和方法。本发明的示例实施例还包括用于使得用户可以使用便携访问设备会话式地与分布式网络中的一个或多个实体通信的系统和方法,其中以与例如用户语言、(多个)访问通道、该访问设备的设备特性(例如,I/O模态),和/或区域/国际设置无关的方式说明了用于与网络中的实体通信的交互对话,并且其中该用户访问设备和/或远程服务器包括根据用户语言、用户首选项、访问设备特性和/或地区/国际设置来修改交互对话的机制。

具体地说,在本发明的一个示例实施例中,提供了使用户可以会话式地与网络中的一个或多个实体通信的方法。用户使用客户端设备建立与分布式网络的连接。该客户端设备将获得一个或多个命令的说明,所述命令使得用户可以与所述分布式网络中的一个或多个实体交互,其中以与用户语言、访问通道、客户端设备I/O(输入/输出)模态、地区设置或国际设置无关的方式描述所述命令。用户提供用户指示以便和目标实体通信,当客户端设备接收到输入的用户指示(例如,口头命令/询问、GUI命令/询问、物理指示(例如,手的运动、血压升高等))时,客户端设备将处理输入的用户指示以确定目标实体并调用与该目标实体关联的命令。

在本发明的另一示例实施例中,所述命令包括使用基于交互的编程模型描述的交互(会话式指示)的基本组件。在本发明的另一示例实施例中,分布式网络中至少一条命令或所有命令是基本命令的预定有限集合的一部分。

在另一示例实施例中,使用所述会话式指示的预定有限集合中的每个会话式指示的先验知识来配置客户端访问设备,从而访问设备预载有(或能够获得)用于根据例如客户端设备的UI特性、用户首选项说明(例如,用户语言、命令类型等)以及地区/国际设置来解释或修改每个命令的机制。例如,根据用户首选项或设备特性,所述命令(会话式指示)能够以不同的语言(德语、法语等)、不同的模态/通道(WML、HTML、语音、多模态(multi-modal)等)、不同的本地化/国际化/地区化设置(例如,比利时账号、美国记帐系统、国际帐户或银行编号、取决于地区的地址/邮政编码格式等)呈现。

在本发明的另一示例实施例中,一种用于提供与网络中的实体进行会话式通信的方法包括:使用客户端设备建立与分布式网络的连接;由客户端设备获得一个或多个命令的说明,所述命令使用户能够与该分布式网络中的一个或多个实体交互,其中所述命令被以与用户语言、访问通道、客户端设备I/O(输入/输出)模态、地区设置或国际设置无关的方式说明;由所述客户端设备接收所述用户提供的用户指示作为输入以便与目标实体通信;并且根据用户首选项说明或所述客户端设备的特性,或根据这两者,来修改所述命令,由此调用与所述输入的用户指示关联的命令。在另一示例实施例中,修改过程可以由客户机侧处理、服务器侧处理或客户机侧和服务器侧处理的组合来执行。

从下面结合附图阅读的对示例实施例的详细说明中,本发明的这些和其它示例实施例、本发明的各个方面、特点和优点将变得显而易见。

附图说明

图1是根据本发明的一个示例实施例的用于提供与分布式网络中的实体的会话式通信的系统的方块图。

图2是一个可以根据本发明的一个示例实施例实现以便建立基于交互的应用(包括描述与分布式网络中的实体交互对话的会话式指示)的应用框架的示意图。

图3是可以根据本发明的一个示例实施例作为用于管理和修改交互对话以便能够与分布式网络中的实体会话式通信的方法实现的MVC(模型-视图-控制器)示例的示意图。

图4是可以根据本发明的一个示例实施例实现用于解释和修改交互对话以便能够与分布式网络中的实体会话式通信的系统/方法的示意图。

图5是根据本发明的一个示例实施例用于提供与分布式网络中的实体会话式通信的方法的示意图。

图6是根据本发明的另一个示例实施例用于提供与分布式网络中的实体会话式通信的系统的示意图。

具体实施方式

本发明的示例实施例总体上包括用于在分布式多模态环境中提供会话式计算的系统和方法。具体地说,本发明的示例实施例包括用于使得用户能够使用便携访问设备会话式地与分布式网络中的一个或多个实体通信的系统和方法,其中以与例如用户语言、(多个)访问通道、访问设备的特征(例如,I/O模态)和/或地区/国际设置无关的方式来说明用于与网络中的实体通信的交互对话,并且其中所述用户访问设备和/或远程服务器包括用于根据用户语言、用户首选项、访问设备特征和/或地区/国际设置来修改所述交互对话的机制。因此,根据此处描述的本发明的示例实施例的系统和方法允许用户通过多模态、多通道或会话式交互来访问和控制分布式环境中的联网实体(例如,设施、设备、资源等),而不必关心用户的语言或位置,并且可以使用任意适合的普及计算设备,而不必关心例如其I/O模态。

此处使用的术语“通道”指特定的呈现器(renderer)、设备或特定的模态。不同模态/通道的例子包括,例如,语音(诸如VoiceXML)、可视(GUI)(诸如HTML(超文本标记语言))、受限GUI(诸如WML(无线标记语言))、CHTML(紧凑型HTML)以及HDML(手持设备标记语言)、XHTML-MP(移动简表(mobile profile))和这些模态的组合。术语“多通道应用”指这样的应用,其通过不同的通道(例如,VoiceXML、HTML)提供无所不在的访问,每个时刻使用一个通道。多通道应用不提供跨越不同通道的同步或协调。

术语“多模态”应用指这样的多通道应用,其中多个通道同时可用并被同时同步。此外,从多通道的角度看,多模态可以被认为是另一个通道。

此外,此处使用的术语“会话式”或“会话式计算”是指用户和计算机之间以及不同模态(I/O能力)的设备或平台之间的无缝多模态对话(信息交换),而不必关心访问设备/通道的I/O能力,优选地,使用开放的、彼此协作的通信协议和标准,以及会话式(或基于交互的)编程模型,该模型将应用数据内容(第三层)和事务逻辑(第二层)与用户交互和用户操作(即,如下详述的由交互范例使用编程)的数据模型分隔开。术语“会话式应用”是指这样的应用,其支持应用内的和跨越独立开发的应用的多模态、自由流交互(例如,混合型初始对话(mixed initiative dialogs)),优选地,使用短程和长程上下文(包括以前的输入和输出)以消除用户意图的歧义并理解用户意图。会话式应用可以利用NLU(自然语言理解)。

现在参看图1,其中示出了根据本发明的一个示例实施例用于提供与分布式网络环境中的实体(设施、设备、服务器、资源等)会话式通信的系统的示意图。系统(10)包括用户访问设备(11),其可以访问并控制分布式通信网络(13)中的一个或多个通用会话式应用(12)(或“UCA”),或者与它们通信。访问设备(11)可以包括,例如,诸如PDA、蜂窝电话或远程控制设备等的无线设备。一般地,网络(13)代表各种类型的网络/网络连接,包括例如无线网络、IP网络(例如,因特网、广域网、局域网)、自发的专用网络(诸如蓝牙)等以及诸网络的任意组合。应当理解,本发明还可以使用其它“通道”和网络/连接来实现,并且此处出现的网络均不应被解释为对本发明的范围的限制。

系统(10)还包括设施页面服务器(14),其与一个或多个UCA(12)关联。页面服务器(14)包括一个或多个应用,所述应用描述了用户接口(UI)并且允许用户以与通道/模态/语言/地区无关的方式与UCA(12)(或其它注册的UCA)交互,从而实现会话式(或多模态,或多通道)交互。服务器(14)可以分布在网络(13)上或本地地位于关联的UCA(12)内(如虚线所示)。

更具体地,设施页面服务器(14)包括一个应用/web服务器,其包括一个或多个应用,所述应用使得用户能够使用访问设备(11)会话式地与网络(13)中存在的UCA(12)通信和交互。在本发明的一个示例实施例中,使用一个编程模型来创建所述应用,其中以与例如用户语言、客户端设备(11)的通信模态、以及网络环境的地区/本地/国际化设置无关的方式来描述会话式对话。特别地,使用“基于交互的”编程语言来编写所述应用,其中所述会话式对话(交互逻辑)被单独地描述并且与,例如,针对给定通道、用户语言、用户首选项以及地区设置的转换的描述无关。此外,用于实现所述会话式对话的交互逻辑以与用于驱动与一个或多个UCA(12)关联的后端逻辑和数据的事务逻辑无关的方式编写。

另外,在一个示例实施例中,应用的交互逻辑按照交互基元或“会话式指示”的有限集合对该应用进行抽象。“会话式指示”(或者在此处被称为通用“命令”)定义了以与通道/模态/语言/地区无关的方式描述的交互的基本组件。所述会话式指示是以这样一种方式定义的,即它们可以普遍地被应用于具有各种类型的联网实体的各种类型的可能用户交互。例如,“会话式指示”(诸如“开”和“关”)可以被应用于为与灯、电视、计算机或任何其它可以被打开或关闭的联网设备交互而编写的应用中。

在本发明的一个示例实施例中,使用一个或多个“会话式指示”的预定义排列/顺序来编写给定UCA(12)的应用,以说明所允许的用于与该UCA(12)交互的命令。在一个示例实施例中,从一个通用地预定义的会话式指示的有限集合中选择用于给定应用的“会话式指示”。可以用这种预定义集合中的每个会话式指示的先验知识来配置访问设备(11),从而访问设备(11)能够根据例如访问设备(11)的UI特性、用户首选项说明(语言、命令类型等)以及地区设置来解释并修改每个会话式的指示。下面将说明用于以通用的会话式指示实现基于交互的应用的各种示例实施例。

在本发明的一个示例实施例中,访问设备(11)可以用于访问和控制UCA(12)(或其它实体),或是与其通信,所述UCA(12)(或其它实体)已向,例如,分布式域中的服务器(14)注册。访问设备(11)被配置为发现、注册网络(13)中的“可以会话式地知道的”实体(包括,例如,UCA(12)或页面服务器(14))并与其进行协商。更具体地,在本发明的一个示例实施例中,当访问设备(11)进入一个给定的分布式网络环境并“发现”其它可以会话式地知道的实体时,访问设备(11)将继续进行“注册”和“协商”过程,这使得访问设备(11)能够获得使得能够与分布式环境中的实体交互的相关“概念”。例如,相关“概念”可以包括对所有已注册的实体和分布式环境中所支持的相应命令(会话式指示)的说明。如上面所指出的,用于给定实体的(多个)会话式指示定义了用户和该实体之间的交互对话。

此外,在本发明的一个示例实施例中,访问设备(11)按照例如用户首选项和设备特性来修改所述交互对话(如会话式指示所说明的)。特别地,如上面所指出的,在本发明的一个示例实施例中,与一个给定环境相关联的会话式指示的集合基本上是一个通用地预定义的会话式指示的有限集合的子集,访问设备(11)先前已经对其有所了解。并且访问设备(11)包括用于解释并修改此类会话式指示的机制。因此,当访问设备(11)获得分布式环境中相关的“概念”时,访问设备(11)能够解释所获得的概念并且修改所述交互对话,从而使得用户能够与UCA(12)交互。例如,访问设备(11)可以翻译用户的通用指示(例如,语音命令、物理运动、GUI输入等),或是将用户的指示映射到相应的“会话式指示”,从而调用与UCA(12)相关联的已注册的命令。此外,访问设备(11)可以基于默认说明、用户首选项和/或设备特性将所述会话式指示以不同的语言、模态、通道和本地/国际/地区设置呈现。例如,基于用户首选项和/或设备特性,会话式指示可以以不同的语言(德语、法语等)、不同的模态/通道(WML、HTML、语音、多模态等)、不同的本地化/国际化/地区化设置(例如,比利时账号、美国记帐系统、国际记帐和银行编号、取决于地区的地址/邮政编码格式等)呈现。下面将更详细地讨论这些概念。

再次参考图1,在本发明的一个示例实施例中,访问设备(11)包括通信堆栈(15)、多模态外壳(16)(或对话管理器)、GUI呈现浏览器(17)、GUI I/O设备(18)(例如,显示)、语音呈现浏览器(19)、音频I/O设备(20)(例如,麦克风、扬声器),一个或多个嵌入的会话式引擎(21),以及转换规则(22)和元信息(23)的数据库。

通信堆栈(15)实现了能够实现网络连接和通信的通信协议(例如,蓝牙、HTTP、WAP等)。此外,在一个示例实施例中,通信堆栈(15)实现了能够实现实时DSR(分布式语音识别)应用的会话式通信协议,诸如用于语言的实时编码和传输的协议,以及用于为进行远程处理(例如,语言处理)在分布式设备/应用之间实时地交换控制信息的协议,其使用了披露于,例如,提交于2002年3月21日的名称为“ConversationalNetworking Via Transport,Coding and Control Conversational protocols”的美国专利申请No.10/104,925中的方法和技术,该申请具有共同受让人并且其全部内容在此引入作为参考。

此外,通信堆栈(15)可以实现会话式协议,该协议能够实现分布式环境中联网设备/应用之间的会话式发现、注册和协商,所述会话式协议诸如上面引入的美国专利申请No.10/104,925以及名称为“System andMethod For Providing Network Coordinated Conversational Services”的美国专利申请No.09/806,425和名称为“Conversational Computing ViaConversational Virtual Machine”的美国专利申请No.09/806,565中所描述的那些协议,这些申请具有共同受让人并且其全部内容在此引入作为参考。这种会话式协议还能够自动地和协调地在分布式环境中的本地和远程应用/设备/服务器之间共享会话式功能和资源。

在一个示例实施例中,对话管理器(16)使用如下面参考图3所述的MVC范例并根据用户首选项说明和/或设备特性来管理和修改交互对话。更具体地,通过实例的方式,对话管理器(16)分析并处理由服务器(14)接收的页面(包括描述交互逻辑的会话式指示)以生成一个映射,该映射使得能够使用例如预先加载在访问设备(11)上的相关转换规则(22)和/或元信息(23),将用户输入的指示(例如,语音命令、GUI命令等)映射/翻译成接收到的页面中的会话式指示。此外,对话管理器(16)可以使用适合的转换规则(22)和/或元信息(23)来生成一个或多个特定于模态的脚本,所述脚本由相应的呈现浏览器(例如,GUI浏览器(17)和语音浏览器(19))处理,从而以一个或多个(同步后的)模态(例如,语音或GUI)展现会话式用户接口。

例如,提交于2000年4月6日的名称为“Methods and Systems ForMulti-Modal Browsing and Implementation of A Conversational MarkupLanguage”的美国专利申请No.09/544,823,提交于2000年2月18日的名称为“Systems and Methods For Synchronizing Multi-Modal Interactions”的美国专利申请No.09/507,526,以及提交于2001年12月4日的名称为“Systems and Methods For Implementing Modular DOM(Document ObjectModel)-Based Multi-Modal Browsers”的美国专利申请No.10/007,092中描述了各种用于实现对话管理器(16)(多模态外壳)的体系结构和协议,所有这些申请具有共同受让人并且其全部内容在此引入作为参考。下面将说明与对话管理器(16)的示例实施例和功能有关的细节。

访问设备(11)还包括一个或多个嵌入的语音引擎(21),其用于为语音呈现浏览器(19)提供基于语音的处理。通过实例的方式,语音引擎(21)可以包括ASR(自动语音识别)引擎、NL(自然语言)分析器引擎、TTS(文本-语音)引擎和SPID(说话者识别/验证)引擎和/或用于预先/拖后处理音频(语音)信号的任何其它引擎/处理器,诸如,例如,用于编码/解码在访问设备(11)和远程引擎服务器(24)之间传输的音频数据的上行/下行编解码器。ASR引擎使得系统能够理解用户的口头发音,以便能够处理口头命令和其它从用户处接收的口头输入。用于自然语言理解应用的NL分析器从ASR引擎接收数据流并处理这些数据。TTS引擎将文本转换为语音并且使得访问设备(11)能够重放例如来自文本字符串的合成提示。SPID引擎用于例如当访问设备(11)支持生物测定识别/验证时识别说话者。

应当理解图1中访问设备(11)的体系结构仅仅是具有足够资源以实现诸如例如嵌入式语音引擎和语音浏览器(胖客户端配置)的各种组件的访问设备的示例。在访问设备(11)的资源有限的其它实施例中,访问设备的各种组件可以分布在网络(13)上(瘦客户端配置)。例如,如图1所示,当访问设备(11)不具备进行本地语音处理所需的资源时,访问设备(11)可以访问远程会话式引擎服务器(24)以获得某些语音服务。此外,语音浏览器(19)可以位于远程并且可以通过网络(13)访问。在这样的情况下,可以为流音频实现各种会话式协议(15)并交换控制信息,以便能够对引擎进行远程控制并同步不同的呈现视图,如上面引入的美国专利申请No.10/104,925中所述。

此外,在访问设备具有有限资源的本发明的其他示例实施例中,可以在远程服务器中进行交互对话的修改。例如,访问设备(11)可以在给定的分布式环境中获得相关的交互概念,以及接收输入的用户指示,然后将该相关的交互概念和输入的用户指示发送给具有处理该用户指示和修改该交互对话的转换机制的指定服务器。例如,指定的服务器可以预先装载有根据例如用户首选项说明和/或访问设备特性来修改交互对话所需的转换规则和元信息。在这样的情况下,如果必要,指定的服务器可以将处理结果传递给访问设备。

如以上所指出的,使用基于交互的编程模型(其中以“用户-接口”中性方式说明了交互对话(会话式指示))实现了根据本发明的示例实施例的系统和方法,所述系统和方法能够与分布式环境中的实体进行会话式通信。特别地,使用了编程模型来编写基于交互的应用,在该编程模型中应用数据内容(第三层)和事务逻辑(第二层)被与用户操作的用户交互和数据模型分隔开。此外,数据模型和对交互对话的描述被与针对给定通道、用户首选项、地区设置等的对此类用户交互对话转换的描述分隔开,并且与其无关。例如,会话式指示既可以声明性地(例如,使用XML)也可以命令性地/程序性地(例如,使用beans)编码。

图2是根据本发明的示例实施例的单独编写的编程框架的示意图,该框架可用于实现基于交互的会话式多模态的或多通道的应用。单独编写的、基于交互的编程模型将各个编程层分隔开,该编程层包括后端数据层30、事务逻辑层31、数据模型层32、交互逻辑层33、浏览层34、专用(specialization)层35和特定模态展现/呈现层36。

后端数据层(30)包括一个后端继承(legacy)数据库。事务逻辑层(31)是包含有逻辑(即驱动应用运行的状态和条件的编码集合)以及变量验证信息的应用的一部分。数据模型层(32)(或数据类型基元)包括用于由用户交互填入的数据项的一个或多个已定义的数据模型,并且声明了构成应用对话的用户接口。交互层(33)按照交互基元(例如,会话式指示)的有限集合对应用进行抽象以便用与模态无关的方式封装交互逻辑。根据特定模态展现层(36)提供的描述,提供了所述应用的特定模态的表示。专用层(35)提供了一种机制,其用于以一种或多种模态对展现的一个或多个特征进行装饰性修改。修饰或专用是一种针对给定通道(设备、模态或浏览器)或通道类别(例如,Nokia蜂窝电话等)优化应用的方法。例如,专用可以包括为页面提供背景,将页面分层更改为帧、在多张板卡(deck of cards)间分段WML文档、指定TTS提示或音频提示的语音特性以便重放、当对着显示的信息说话时改变呈现给用户的信息、跳过给定模态中不需要的指示等。

在本发明的一个示例实施例中,单独编制的、基于交互的编程模型可以使用,例如,上面引入的美国专利申请No.09/544,823中描述的声明性的基于交互的标记语言来实现。更具体地,美国专利申请No.09/544,823描述了一种用于基于交互的CML(会话式标记语言)(或者被称为IML(交互式标记语言))的新颖的编程范例。IML的一个实施例优选地包括一个高层的基于XML(可扩展标记语言)的脚本,其可以在此处实现,以便使用“会话式指示”指定用户和计算机之间的交互“对话”或“会话”。如上所指出的,会话式指示是基本的对话组件(基于交互的元素),其体现了与用户的对话交互的特性。每个会话式指示都以与负责呈现展现材料的设备或应用所提供的特性和UI无关的方式提供了对话的抽象表示。会话式指示是与模态无关的构建块,其可以被组合以表示任意类型的基于意图的用户交互。

一般地,以基于指示的IML编写的用户交互可以具有如下的格式:

<iml>

    <model id=“model_name”>.../model>

   <interaction model_ref=“model_name”name=“name”.

...,/interaction.

</iml>

IML交互页面定义了一种数据模型组件(例如,基于XFORMS标准),该组件为用户交互指定了一个或多个数据模型。IML页面的数据模型组件为由一个或多个会话式指示所指定的用户交互填充的字段声明了数据模型。换言之,该IML交互页面可以指定被绑定在数据模型部分上的用户交互部分。IML文档为由用户交互填充的数据项定义了数据模型,然后声明了构成应用对话的用户接口。可选地,IML文档可以声明一个默认的实例以用作初始化用户接口时默认值的集合。

在一个示例实施例中,可以用与XFORMS DataModel和XSchema一致的方式定义数据项。数据模型被标记以唯一的id属性,其中该id属性的值被用作一个属性的值,此处对于给定的会话式指示元素该id属性被称为model_ref,表示为interaction,以指定要用于该交互的数据模型。

如上所指出的,在本发明的一个示例实施例中,可以用于描述用户接口/用户交互的会话式指示是预定义的并且是有限的(虽然如果必要,应用开发人员可以扩展该集合)。会话式指示以这样一种方式定义,即它们可以普遍地应用于具有各种类型应用的各种类型的可能用户交互。例如,会话式指示“开”和“关”可应用于为了与电灯、电视、计算机或任意其它可以打开或关闭的设备交互而编写的应用中。其它的可以被普遍应用的指示和指示组件的例子包括,例如,select(从列表中选择(单选或多选))、message(向用户重放提示)、submit(提交一个操作)、自由输入等。

更具体地,如上面引入的美国专利申请No.09/544,823所说明的,会话式指示message可以被用于向用户传达信息消息,所述消息可以作为,例如,显示的字符串或语音提示呈现。此外,会话式指示select可以用于封装对话,在所述对话中希望用户从一组选择中进行挑选。select指示封装了提示、默认选择和合法选择的集合。上面引入的申请No.09/544,823中描述了其它会话式指示。

通过实例的方式,可以实现下面的IML文档以定义用户与苏打机的交互:

<iml>

    <model id=”SodaMachine”>

      <string name=“command”enumeration=“closed”>

      <value>drink</value>

      <value>credit</value>

      </string>

      <number name=“credit/”>

             <string name=“drink”

                 enumeration=“dynamic”

                 src=http://localhost/servlets/coke-machine/drinks/>

           </model>

           <interaction name=“SodaMachine”

                        model_ref=“sodaMachine”>

           <caption>Soda Machine</caption>

           <menu>

               <choices>

                 <choice value=“#credit”>Insert a coin</choice>

                 <choice value=“#drink”>Select drink</choice>

             </choices>

         </menu>

         <dialog id=“credit”

               action=“submit”>

          <assign name=“SodaMachine.command”expr=“credit”/>

      <input name=“SodaMachine.credit”>

        <caption>How much would you like to deposit?</caption>

        <help>You can deposit money into this coke machine-this willgive you credit for obtaining the drink of your choice

        </help>

      </input>

    </dialog>

    <dialog id=“drink”

        action=“submit”>

        <assign name=“SodaMachine.command”expr=“drink”/>

        <select name=“SodaMachine.drink”>

        <caption>What would you like to drink?</caption>

        <help>You can pick one of the available drinks.What wouldyou like to drink?

        </help>

       </select>

      </dialog>

<submit target=“http://localhost/servlets/soda/executeRequest.class”>

        <message>Submitting your require to the soda machine

        </message>

     </submit>

    </interaction>

</iml>

上面的示例性IML文档首先声明了用于由用户交互填充的字段的数据模型:字段command是string类型的枚举,其具有固定的有效值集合;字段drink是string类型的枚举,其中有效值的范围是动态的,即在运行时确定;以及number类型的字段credit是另一种预先定义的原子类型number的一个例子。元素interaction指定了用户交互的各个部分。苏打机允许用户或是存一些钱或是取一杯饮料—这些可能的用户动作被封装在单独的会话式指示中。元素interaction中的第一个指示是menu,其允许用户选取可用动作中的一个动作。每个用户动作被封装在单独的dialog元素中,每个dialog元素具有一个action属性,该属性设置成submit。完成了指示时,交互继续到指示submit,其负责向后端应用提交所表达的用户意图。

用于第一个可能的用户动作的指示dialog从用户处获得字段credit的值。用于选择饮料的指示dialog使用了一个select指示,以允许用户选取可用饮料之一。可用选择的列表—与在数据模型中用于相应枚举的可接受的值的列表类似—是动态的并且在运行时被查找。这个例子中的指示input和select使用了IML元素caption和help来封装用户提示和帮助文本。在必要时这些元素还可以被进一步专门化以包括特定模态的内容(即,专门化)。

应当理解,上面说明的声明性框架仅是用于根据本发明实现单独编写、基于交互的应用的一个示例性实施例,还可以使用其他语言。例如,在本发明的其它示例实施例中,可以实现基于编程范例的命令性的/程序性的会话式对话(例如,bean,Javabean),该编程范例将数据模型和依据交互对应用的描述与针对给定通道、用户首选项、地区设置等转换的说明分隔开。可以抽象地在数据模型和交互说明的层次上编写此类对话组件,并且提供呈现外观功能,其可以为给定的目标模态、通道、语言、地区、用户首选项等提供组件的呈现后的版本。这些呈现外观功能可以是这样的类,所述类起源于(继承自)所述应用的与模态/通道/语言无关的表示。例如,提交于2001年4月18日的名称为“Systems and Methods For ProvidingConversational Computer Via JavaServer Pages and Javabeans”的美国专利申请No.09/837,024,以及提交于2001年12月4日的名为“ReusableVoiceXML Dialog Components,Subdialogs and Beans”的美国专利申请No.10/007,084(这些申请具有共同受让人并且其全部内容在此引入作为参考)中所说明的JSP(Javaserver Pages)/beans框架,可以用于实现由交互通过服务器侧或客户机侧对交互组件(例如,对话beans)预定集合的处理来编程。

图3是可以根据本发明的一个示例实施例实现以管理和修改所述交互对话的MVC(模型-视图-控制器)范例的示意图。例如,美国专利申请No.09/544,823中详细说明了该MVC范例。简要地,图3所示的MvC(模型-视图-控制器)范例基于单个信息源、模型M(例如,使用声明性IML模型描述的会话式指示)并通过多个控制器C1、C2和C3(例如,不同的浏览器,诸如语音、GUI和多模态浏览器)来操作,所述模型M被映射到多个视图(V1、V2)(例如,不同的同步后的通道)。使用此范例,可以使用多个控制器C1、C2和C3实现一个会话式系统,所述多个控制器作用于,转换、操作和修改相同的底层模型M以提供同步后的视图V1、V2(即,将所述单个模型M转换为多个同步视图)。视图的同步是通过从不断地被更新的单个统一表示M生成所有视图来实现的。可以使用抽象树结构实现同步,所述抽象树结构被使用转换说明映射到特定通道的表示树结构。所述转换在各种视图间提供了自然映射。这些转换可以被反向,以便将给定视图的特定部分映射到底层模型。换言之,任意给定视图的任意部分可以被映射回底层的与模态无关的表示M的生成部分,然后,通过应用适合的转换规则,该部分可以被映射回不同模态中的相应视图。

在本发明的一个示例实施例中,图3所示的MVC框架的模型代表了应用的交互对话(会话式指示),其被以与目标通道/模态/用户语言/地区化等无关的方式抽象地描述。在该层次,所述应用具备完整的功能,并与呈现该应用对话的模态/通道/语言或平台无关。然后可以使用取决于例如目标通道、用户首选项、设备特性、地区设置等的转换规则修改该应用对话。

图4是可以根据本发明的一个示例实施例实现用于解释和修改交互对话以便能够与分布式网络中的实体会话式通信的系统/方法的示意图。更具体地,图4示出了用于管理和修改交互对话的系统和方法,基于上面图3中说明的MVC范例,该交互对话使用了声明性IML实现(具有在至少两个模态或设备之间的紧密同步)进行了说明。由多模态外壳(41)使用例如HTTP、WAP、蓝牙等的任意传统传输协议从应用服务器取出一个输入IML文件(40)。输入IML文件(40)显示为包括一个基本对话(由“.”表示的会话式指示或IML页(40)内的节点)序列。箭头表示在IML页内声明的对话的流动。特别地,当以图形表示时,所述对话被表示为一个树,即带有分叉(以及可能的循环)的指示的顺序表。

IML文件(40)中的每个组件指示(即,节点)都标记有特定的node_id(例如,跨越树的中缀或前缀路径,或任意其它标号)。多模态外壳(41)记录IML文件(40)的每个node_id及其树/图结构以构建一个注册表(43)。多模态外壳(41)包括一个代码转换器模块(42),其用于基于每个指示的类型/性质动态地将每个指示(对话组件)转换为每个已注册的模态(例如GUI或语音)的相应组件。例如,如图4所示,标记有“Node_id”的指示/对话组件被动态地译码为HTML组件(46)和VoiceXML组件(47),它们被传送到各自的展现浏览器(例如,分别传送给视觉浏览器或语音浏览器)以便呈现。页面(46、47)是同步的,一个浏览器上的一个指示的任意事件都被发送到多模态外壳(41),多模态外壳(41)利用所述的图/树确定如何更新页面(例如,通过对一个新的node_id进行代码转换,或跟踪一个链接并更新整个的IML页)。

从IML到同步的模态页面的动态代码转换可以使用诸如存储在数据库(44)中的XSL转换规则之类的转换规则来实现。IML文件(40)中的每个指示/对话组件都与一个默认的XSL转换规则相关联。可以基于存储在设备的本地数据库(45)内的元信息改写数据库(44)中的转换规则。元信息可以包括,例如,设备/浏览器首选项(例如,关于该设备的能力的基于能力的信息)、用户首选项/定制以及应用首选项。此外,可以从IML页面的内容提供者处下载新的XSL转换规则来改写转换规则(44)(例如,如IML文件中的URL所指示的)。在本发明的其他示例实施例中,希望可以使用JSP或Java bean进行会话式指示的修改/转换。例如,可以将一个Java bean与每个会话式指示关联,该Java bean带有其自己的针对每个模态的呈现外观功能(通过JSP)。

现在参看图5,一个流程图给出了根据本发明的一个示例实施例用于提供与分布式网络中实体的会话式通信的方法。在一个实施例中,用户可以通过使用便携访问设备(或远程控制设备)建立到分布式网络的连接(步骤50)并获得使得能够与该分布式网络中的实体交互的有关“概念”(步骤51)来与该分布式网络中的实体通信。在本发明的一个示例实施例中,建立通信链路和获得有关的交互“概念”的过程可以包括各种过程,诸如,会话式发现、注册和协商,它们发生在用户访问设备与应用服务器和/或网络中的一个或多个实体(例如,UCA)之间。可以根据本发明的一个示例实施例实现的,用于执行会话式发现、注册和协商的各种协议披露于,例如,上面引入的美国专利申请No.10/104,925、09/806,425和09/806,565中。

例如,可以使用适合的方法进行会话式发现以“发现”“能够会话地理解的”网络实体(例如,可以使用预先定义的会话式协议发现的并交换要被会话式地控制的必要信息的实体)。在一个示例实施例中,使用“广播和侦听”过程执行会话式发现,这允许创建例如蓝牙的动态的和自发的网络。更具体地,用户的访问设备可以使用适合的通信协议广播一个握手请求(发现)并侦听来自网络实体的响应。在一个实施例中,分布式网络中的每个实体能够单独地与用户的访问设备通信并响应握手请求。在另一实施例中,使用一个专用的服务器注册网络实体,该服务器代表此类已注册的实体与用户的访问设备通信。在另一实施例中,诸实体与用户的访问设备通信,但是它们使用一个服务器注册,该服务器充当访问设备和实体之间的网关或接口。在本发明的另一示例实施例中,可以使用一个默认的服务器设置(注册了每个网络实体的“地址”),该设置使用户的访问设备能够与该服务器通信并获得已注册实体的列表。通过发现协议交换的信息包括,例如,用于握手的广播请求或对请求的侦听、设备/实体标识符的交换、交换用于第一次注册或协商的句柄/指针等。

接着,在一个示例实施例中,一个或多个网络实体的会话式发现导致一个会话式注册过程,其使得用户访问设备能够获得相关概念,所述概念使得能够与一个或多个发现的网络实体交互。此类相关概念包括,例如,被发现的实体所支持的命令(会话式指示)列表,以及返回句柄/事件,以便在激活此类命令时返回到相应的实体应用。此外,注册信息可以包括用于获得必要的数据文件(词汇、语法等)的地址,以便在用户访问设备上执行某些会话式功能,或包括用户访问设备可以访问的远程引擎的地址,以便执行远程处理或某些会话式引擎任务(例如,一个将执行语音识别任务的服务器等)。用户访问设备可以直接从每个被发现的实体获得相关概念,也可以通过与本地服务器通信来获得所述概念,以便能够与分布式网络中的实体交互,该本地服务器提供所有已注册实体的列表以及该分布式网络中的此类实体所支持的相应的已注册的命令。

接着,注册过程导致了协商过程,其中在用户访问设备与网络实体或诸网络实体之间交换信息,以便协商诸如主-从、对等等适合的网络拓扑并协调通信。网络配置可以基于,例如,每个网络实体的需求和能力的注册,其中网络实体和应用可以在协商过程中表决给定的临时配置或者此类配置可由应用来采用,等等。在一个示例实施例中,协商导致了用户访问设备控制并驱动所述会话。

作为上述过程的结果,用户访问设备获得了适用于分布式环境的基本命令(或会话式指示)集,这些基本命令以与通道/模态/地区无关的方式说明了用于与实体通信的交互对话。此后,访问设备可以处理并解释相关命令(例如,会话式指示),以便根据(多个)访问通道、访问设备的I/O模态、用户语言、预先指定的用户首选项和/或地区/国际设置等修改交互对话和用户接口(步骤52)。

更具体地,如上面指出的,在一个示例实施例中,分布式环境中用于给定应用的会话式指示的集合是一个预定义的会话式指示的有限集合的子集,并且用户访问设备预先装载了相关转换机构。此类转换机构包括,例如,针对此类预定义集合中的每个会话式指示,用于交互(对话)对象的呈现外观功能(命令性编程)或XSL转换规则(声明性编程),所述转换机制允许访问设备基于例如通过转换说明指定的设备的UI特性、用户首选项(语言、命令类型等)以及区域设置来处理、解释和修改给定分布式环境中的会话式指示(交互组件)。

当用户希望与所希望的实体交互时,用户向访问设备输入一个期望的指示(命令或询问),访问设备将处理输入的用户指示以确定目标设备并调用目标设备的相关命令(步骤53)。例如,对于能够使用语音的访问设备,用户可以发出口头命令(询问)或其它声音以访问或控制某个实体。对于能够使用GUI的访问设备,用户可以在显示出的UI中给定区域内键入某个指示(命令或查询)。此外,对于可以使用视频(摄像机、屏幕)的访问设备,用户可以输入面部的指示(皱眉、微笑)或作出物理移动(手势)以访问或控制某个网络实体。应当理解,任意类型的I/O模态都可以用于输入用户的指示,这取决于访问设备的配置和资源。

访问设备将处理用户输入的指示,将用户输入的指示翻译或映射成相关命令(会话式指示)以便调用该命令(步骤53),然后向目标实体提交相关的位串(步骤54)。

应当理解,在本发明的一个示例实施例中,访问设备是多模态设备,并且可以根据用户首选项(命令类型、用户语言等)将各种用户指示映射到一个给定的命令(会话式指示)。作为一个例子,灯(会话式设施)的相关命令(指示)可以是“打开”和“关闭”,并且此类命令可以以“Switchon”或“Switch off”以及“allumer”和“eteindre”或其它语言来呈现。此外,作为一个例子,基于预先指定的用户首选项和转换说明,基本命令“打开”可以被多个用户指示中的一个指示调用。例如,通过用户以用户的语言口头地发出一个所希望的命令(例如,“开”)、或由用户在一个GUI区域内输入此类命令或选择特定的图标,或通过例如用户在访问设备的摄像机中“眨眼”可以调用命令“打开”。在所有的实例中,用户访问设备如例如预先装载的用户首选项和/或转换说明所指定的那样将输入的用户指示翻译或映射为相应的命令(会话式指示)。对于语音命令,用户访问设备可以本地地执行语音识别,或是远程地执行语音识别,其中语音输入被编码并传送给具有必要的资源/数据文件的语音服务器,并且结果被传送回访问设备以便进一步处理。

处理输入的用户指示的步骤还包括解决支持自由流、自然语言理解的UI的上下文模糊。例如,用户可以发出命令“打开”以激活分布式网络中远程地控制的灯。然而,在分布式网络中另一实体可以是对命令“打开”做出响应的计算机。在这样的情况下,访问设备的对话管理器可以询问用户,以便确定输入的用户命令的目的并消除该输入的用户命令的歧义。例如,访问设备可以“询问”用户(或是通过合成语音,或是通过GUI查询)“是指灯还是指计算机”。在其他情况下,如本领域的技术人员所了解的,对话管理器可以通过维护上下文历史(例如,历史命令、操作、查询等)来确定命令的目的。例如,如果用户发出命令“打开灯”(存储在所述上下文历史中),如果用户随后发出“关”,则对话管理器可以理解该命令的对象是指灯(假设先前的上下文(存储在上下文历史中)被与该灯关联)。

如上所指出的,转换说明的示例实施例可以被预先装载在客户端的访问设备上,所述转换说明使得能够基于用户首选项、用户语言、设备特性、地区设置等修改所述交互对话,并且所述转换说明包括例如会话指示的XSL转换规则,所述会话指示是使用带有具有基于交互的对话组件的呈现外观的基于交互的标记语言(IML)或bean编写的,以便命令性编程。此外,基于语言识别、或用户首选项,可以从远程服务器为每个指示下载新的XSL转换规则,所述服务器或是一个共享的普通服务器,或是由例如内容/服务提供者重定向到一个IML页面的服务器。当访问设备的本地引擎不能处理该语言时,此类XSL规则可以指示客户端设备的浏览器以联网模式运行。此外,可以指示以国际语音运行的引擎或能够处理其它语言的引擎从适当的服务器下载(如果可行)数据文件。对于语言或本地化,希望本地标识符与用于国家和地区的现有ISO和/或IETF标准相一致。

现在参看图6,其中示出了根据本发明的另一示例实施例用于提供与分布式多模态环境中的实体会话式通信的系统的方块图。更具体地,图6中的示例性系统示出了已知X10协议的扩展。X10是一种通信语言,其允许设备使用例如房屋或建筑物内现有的高压电线通信。在X10系统中,插入或硬布线在房屋(或建筑物)中某一位置的发射机可以向插入(或硬布线)在房屋或建筑物中另一位置的接收机发送控制信号(例如,用于一个或多个灯的开、关、调暗、调亮等)以远程地控制设备。

通常,图6的示例性系统一般包括X10服务器(60)、接口系统(61)和通用会话式远程控制设备(62)(或UCRCD)。X10服务器(60)从接口系统(61)接收会话式命令并对其进行处理,并将所述会话式命令转换成适合的X10命令以便控制所希望的诸如灯之类的X10应用(未示出)。接口系统(61)在X10服务器(60)和UCRCD(62)之间提供接口。接口系统(61)起网关的作用,它在X10系统和UCRCD(62)之间传递并转换协议。在一个示例实施例中,UCRCD(62)包括可以使用语音的便携式PDA,所述PDA具有诸如RF、专用(例如,蓝牙、跳频联网)或IR之类的自发联网的能力。

接口系统(61)包括房间服务器(room server)(63)、IML(或IML服务器)(64)和通信模块(65)。房间服务器(63)与X10服务器(60)通信以提供必要的通信和协商,以便能够通过UCRCD(62)远程控制X10网络中的X10应用。IML服务器(64)将向UCRCD(62)提供相应的IML页面,其中所述IML页面包括与模态无关的会话式应用指示,所述会话式应用指示代表了与该环境中的X10可控的应用关联的命令。通信模块(65)实现诸如蓝牙的无线通信协议以便能够与进入该联网环境的任何兼容的UCRCD(62)进行无线通信。

UCRCD(62)包括能够与接口系统(61)通信的相应通信模块(66)、分析、处理并解释从IML服务器(64)获得的IML页面(67)的IML分析器/处理器(68)(对话管理器)以及将IML页面(67)的与模态无关的模态呈现为设备(62)所支持的一种或多种模态(例如,视觉和/或语音)的用户接口模块(69)。IML处理器/分析器(68)还将来自用户的输入指示(例如,口头命令)翻译为相应的IML指示。UCRCD(62)还包括安全机制(70)(例如,DONGLE安全密钥和相应的验证应用)以确保只有授权的个人才能使用设备(62)进行远程控制。

使用图6的示例性系统,任何兼容的UCRCD(62)经由接口系统(61)都可以发现连接到例如房屋或建筑物环境中的X10网络的X10设施,并交换要被会话式地控制的所需信息。UCRCD(62)经由X10服务器(60)和会话式接口系统(61)间接地控制在永久性X10网络中的X10设施。X10服务器存储了X10网络中的每个设施的注册信息。X10设施向X10服务器(60)注册它们所支持的命令以及其它可能的有关信息(诸如返回句柄/事件)以便在激活时返回该设施。会话式接口系统(61)提供了所支持命令的与模态无关、与语言无关、与地区化/国际化无关的表示。例如当用户进入房间时,用户的UCRCD(62)可以被打开,其中设备(62)可以通过适合的会话式协议周期地广播握手请求(发现)(如上面所说明的)并且当检测到这种请求时,接口系统(61)可以做出应答。由此而产生的握手导致了UCRCD(62)的注册和协商,其中可以同意,例如,由UCRCD(62)驱动所述会话。UCRCD(62)将修改该对话,并且获得必要的词汇、基类窗体(baseform)、用于对话的提示/语音效果、语法等。例如,IML页面可以将UCRCD(62)定向到将执行会话式引擎任务的其他引擎(例如,将执行语音识别任务等的服务器)的地址。在被激活并从用户处得到输入后,根据不同的设施所支持的命令或通过其它机制,UCRCD(62)可以基于例如识别结果来确定相应的设施。

虽然此处已经参考附图对示例的实施例进行了说明,但是应当理解,本系统和方法并不限于这些精确的实施例,本领域的技术人员可以做出各种其它更改和修改而不偏离本发明的范围或精神。所有这些更改和修改都被认为被包括在由所附的权利要求限定的本发明的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号