本申请还通过引用将2015年8月18日公布的Sharma等人的美国专利No.9,111,214“Virtual Assistant System to Remotely Control External Services andSelectively Share Control”整体并入。
具体实施方式
下面结合附图阐述的详细描述旨在作为“用作示例、实例或说明”的示例性装置的描述,并且不应当被解释为比其他示例性方面优选或有利。为了提供对本发明的示例性方面的透彻理解,详细描述包括具体细节。对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本发明的示例性方面。在一些情况下,以框图形式示出了众所周知的结构和设备,以避免模糊本文中呈现的示例性方面的新颖性。
消息传递应用(或“消息传递应用”)允许用户使用他们的计算设备(例如,智能电话、个人计算机等)来交换实时消息。取决于消息传递应用和/或设备能力,这样的消息可以包含文本、图像、实时视频、声音和/或其他对象。
图1示出了用于实现基本消息传递应用的系统的实施例100。注意,图1仅出于说明性目的而示出,并不意在限制本公开的范围。例如,应当理解,仅为了说明性目的示出服务于两个用户的系统,并且可以容易地修改本公开的技术以在任何消息传递会话中适应多于两个用户。
另外注意,在功能上对应于第一用户的组件通常在本文中使用附加到数字指定的“.1”后缀来表示,而对应于第二用户的组件使用“.2”后缀等来表示。为了易于讨论,可以参考附图中所示的没有对应的“.1”或“.2”后缀的数字元素,在这种情况下,应当理解,这样的引用意在表示第一用户或第二用户的对应元素,这从上下文中将会清楚。例如,在说明书中对“消息传递应用112”的引用可以表示第一用户的“消息传递应用112.1”或第二用户的“消息传递应用112.2”,例如,在这样的引用涉及这两个元素的情况下。
在图1中,系统100包括分别用于服务于第一用户(“用户A”)和第二用户(“用户B”)的客户端110.1和客户端110.2。客户端110包括对于每个用户来说可以是本地的和专用的硬件。例如,客户端110.1的输入模块150.1可以接收用户A输入作为文本(经由键盘、语音识别或其他手段等提交的)、手势(如通过触摸屏、相机等捕获的)或其他输入方式。客户端110.2的输出模块152.2可以为用户B经由显示屏幕生成图像或视频,经由音频扬声器生成声音,或者诸如触觉或温度效果等其他效果。客户端110还可以包括未明确示出的其他硬件,例如计算模块、通信模块等。
特别地,客户端110上的硬件可以包括用于实现消息传递应用112以本地支持消息传递接口和处理能力的计算硬件,如实现诸如下文中参考图2进一步描述的消息传递会话所需的。例如,消息传递应用112可以从输入模块150接收输入,并且还生成到输出模块152的输出。此外,消息传递应用112可以通过信道120a与对应的消息传递服务器430a通信。应当理解,消息传递应用112与消息传递服务器430a之间的这种通信通常可以使用对消息传递应用的开发者来说是定制的或专有的信令协议来进行。这样的“定制协议”可以适合应用的特定开发者的设计需求和规范,但是可以不被其他“外部”软件应用及其开发者普遍理解或公开可用。
应当理解,用户A的消息传递服务器430a.1通常可以通过通信信道130a与用户B的消息传递服务器430a.2通信,以实现消息和内容在用户A、用户B、以及本文中未明确描述的任何其他消息传递参与者之间的交换。在一些示例性实施例中,消息传递服务器430a.1、430a.2实际上可以被认为是分别通过通信信道120a.1、120a.2与用户A、B分开通信的单个服务器。在示例性实施例中,每个信道120a可以对应于用于将每个客户端110与其相应的消息传递服务器连接的有线或无线网络连接,例如互联网连接。
图2示出了在典型消息传递场景中涉及用户A和用户B的消息传递会话200。注意,图2仅出于说明性目的而示出,并不意在将本公开的范围限制为任何特定类型的所交换的内容或消息。
在图2中,在消息202、204处,用户A和B讨论观看特定电影,其说明性地标题为“超级英雄”。在消息206处,用户A询问哪些影院正在放映所讨论的电影。在消息208处,响应于查询,用户B通过从消息传递应用切换到另一服务应用(或“外部服务”)(例如,在同一设备上运行的web浏览器)来“手动”搜索影院。在输入消息208之后,用户B可以暂时中断消息传递会话(例如,从消息传递应用切换),打开浏览器,输入电影名称(“超级英雄”),查看影院和放映时间,然后使用消息传递会话向用户A报告,等等。
应当理解,要求用户在消息传递会话中执行这样的手动例程有几个缺点。首先,用户必须中断消息传递会话以打开新的应用,从而破坏对话的连续性。其次,用户必须重新输入已经在消息传递会话中输入和讨论的文本(例如,电影名称)。第三,用户必须记住或以其他方式将获取到的信息从浏览器复制回消息传递会话以示出给其他用户。
希望的是,提供用于容纳其他服务的统一的消息传递平台,其进一步提供用于使得各种任务和功能能够由外部服务从消息传递会话的上下文内自动执行的灵活技术。
图3示出了根据本公开的具有用户A和B的替代消息传递会话300。注意,图3仅出于说明性目的而示出,并不意在将本公开的范围限制为任何特定类型的内容或消息、或者可以由根据本公开的消息传递平台自动生成的类型的消息或动作。注意,除非另有说明,否则图2和3中的类似标记的元素可以对应于类似的功能元素。
在图3中,消息202、204、206从图2再现。然而,在用户A的询问哪些影院正在放映电影的消息206之后,从表示为“用户助理”的第三方接收新消息302。特别地,用户助理用相关信息对消息206中的用户A提出的查询做出响应。例如,消息302包括放映电影的本地影院的名称和放映时间,这响应于用户A在消息206处的问题,并且进一步使用由用户B从消息204导出的信息(例如,电影名称“超级英雄”)。
在消息302被显示之后,消息304处的用户B然后建议购买在消息302中指示的电影放映之一的两张票。作为响应,用户助理在消息306处提供所建议的动作已经执行的指示:已经根据消息304处的用户B的指示购买了电影的两张票。
应当理解,用户助理实际上可以对应于自动数字助理,自动数字助理被配置为监测在用户A和用户B之间交换的消息的内容,并且根据本公开的技术服务于由用户发出的请求或命令。应当进一步理解,用户助理还可以被配置为识别和处理广泛范围的消息传递内容,以及通过基于本公开的技术与多个外部服务中的任何一个交互来执行各种任务,如将在下文中进一步描述的。
图4示出了用于实现上文中参考图3描述的特征以及本公开中描述的其他特征的平台的示例性实施例400。注意,除非另有说明,否则图1和4中的类似标记的元素可以对应于执行类似功能的元素。此外,为了易于说明,图4中省略了某些元素,例如来自客户端的输入模块150和输出模块152等,并且应当理解,这样的元件可以存在于任何实际实现中。注意,图4仅出于说明性目的而示出,并不意在限制本公开的范围。
在图4中,客户端410包括通过通信信道410a耦合到消息传递应用112的辅助接口412。辅助接口412被配置为用作消息传递应用112与相应辅助服务器420之间的中介。辅助服务器420是可以包括运行允许经由信道412a(其可以对应于例如互联网连接或其他类型的连接)与辅助接口412的通信的一个或多个程序(例如,软件)的计算机、专用计算机(即,后端服务器)或多个计算机。
注意,虽然辅助接口412在图4中说明性地示出为客户端410的一部分,但是在替代的示例性实施例中,辅助接口412可以替代地与辅助服务器420一起实现。例如,辅助接口412在逻辑上可以被认为是与消息传递应用112相关联的“插件”。这样的替代的示例性实施例被认为在本公开的范围内。
特别地,辅助接口412可以提供用于将由消息传递应用112使用的定制协议(例如,诸如可以定义在信道120a上交换的信号)转换成被称为“语义信息交换语言”或“SIIL”的通用协议(本文中也表示为“第一协议”)的“转换功能”。应当理解,这个转换有效地标准化消息传递应用112与平台400的其余部分(包括辅助服务器420)以及除了消息传递应用112之外的其他服务模块和应用之间的通信。
特别地,辅助接口412可以将从消息传递应用112接收的数据编码或格式化成一个或多个标准SIIL消息,例如指示用户输入的SIIL消息或“用户输入的SIIL消息”。例如,第一用户输入的SIIL消息格式可以仅对应于文本数据,并且可以指定例如用户A在消息传递会话中输入的消息的文本内容。第二用户输入的SIIL消息格式可以对应于例如手势,并且可以指定诸如典型的运动(例如,“轻扫”、“画圈”、“重复轻扫”等)等手势、手指配置(例如,“食指”、“拇指”等)等的标识特征。第三用户输入的SIIL消息格式可以对应于例如与诸如电影对象或音频文件对象等预定义的“对象”相关联的参数,如下文中进一步描述的。注意,SIIL消息格式的特定类型在本文中仅出于说明性目的而描述,并不意在限制本公开的范围。
在示例性实施例中,辅助接口412可以通过通信信道412a向相应的辅助服务器420提供用户输入的SIIL消息。特别地,图5示出了根据本公开的由客户端410的辅助接口412执行的方法500的示例性实施例。注意,图5仅出于说明性目的而提供,并不意在限制本公开的范围。
在图5中,在框510处,接收来自消息传递应用的用户输入。在示例性实施例中,用户输入可以在辅助接口412处从消息传递应用112来接收。
在框520处,通过辅助接口412将用户输入转换成SIIL格式。
在框530处,向辅助服务器420传输用户输入的SIIL消息。
在框540处,可以从辅助服务器420接收SIIL消息,诸如下文中进一步描述的SIIL服务消息。
在框550处,通过辅助接口412将所接收的SIIL消息从SIIL转换成与消息传递应用112兼容的格式。
在框560处,通过辅助接口420向消息传递应用112发送转换后的消息。
回到图4,辅助服务器420包括辅助服务器处理块470和多个插件425a、425b。插件425a、425b中的每个使得辅助服务器420能够分别使用信道429a、429b与服务模块430a、430b中相应的服务模块通信。注意,与两个服务模块430a、430b相对应的两个插件425a、425b仅出于说明性目的而参考图4进行描述,并且本公开的技术通常可以被应用以适应任何多个插件和服务模块。在本说明书中,应当理解,除非另有说明,否则对“插件425a、425b”或“服务模块430a、430b”的任何引用通常可以涵盖任意多个这样的插件或服务模块。
在示例性实施例中,辅助服务器420可以支持开放式平台,例如,任何软件工程师(也被称为软件开发者)可以用来创建用于与相应的“服务模块”430a、430b(其中之一可以包括消息传递服务器430a(其被认为是一种类型的服务模块,如下文中定义的))交互的插件425a、425b的设施。特别地,服务模块是独立的应用实体,可能是专用于软件组织或公司的,以实现可以由消息传递应用的用户通过本文中描述的平台来访问的消息传递服务和/或外部服务。服务模块可以实现例如诸如参考图1所描述的消息传递服务器、包含电影记录和数据(诸如放映时间和影院等)的在线数据库、用于进行购买和/或预订放映等的票的电子预留服务、以及可以为用户执行服务的任何类型的数字计算机模块。
插件(在本文中也表示为“插件模块”)对应于由任何软件工程师或开发者开发的软件连接器作为使用SIIL的辅助服务器与可以使用其自己的定制或专有消息传递/信令方案进行通信的任何服务模块之间的接口。在示例性实施例中,每个插件425a、425b可以被配置为使从SIIL到对应服务模块的定制协议的转换自动化,并且反之亦然,并且因此用作由辅助服务器处理块470输出的SIIL消息(本文中也表示为“数字命令消息”)与由相应的服务模块430a、430b使用的定制协议之间的转换器。
在示例性实施例中,辅助服务器420和插件425a、425b可以一起被包括在单个硬件安装中,或者在多个硬件安装中。经由互联网、WiFi、WiFi direct(WiFi直连)、HDMI、USB、FireWire(火线)、NFC、蓝牙、射频识别(RFID)、以太网、FireWire、通用串行总线(USB)、高清晰度多媒体接口(HDMI)、或者任何其他类型的无线或有线连接等、或其他手段,可以进行服务模块与其相应的插件之间的通信。
在替代的示例性实施例中,插件425a、425b可以直接并入用于实现相应的服务模块430a、430b的硬件中。例如,服务模块430b可以与实现例如辅助服务器处理块470的硬件分开地在一个或多个计算机服务器上连同其专用插件425b一起实现。在这样的替代的示例性实施例中,服务模块与辅助服务器之间的通信可以直接使用SIIL消息进行。预期这样的替代的示例性实施例在本公开的范围内。
服务模块430a、430b中的每个可以响应于从插件425a、425b接收的定制消息来执行处理。例如,由数字用户助理在消息传递会话中提交的消息文本可以在辅助服务器处理块470.1中生成,并且经由通道429a.1通过插件425a传递给服务模块(例如,消息传递服务器)430a.1,以引起消息服务器430a.1使用所接收的文本来更新消息传递会话。以这种方式,如先前参考图3所述,辅助服务器420可以参与用户A与用户B之间的消息传递会话,并且通常参与使用任何消息传递应用进行的任何消息传递会话中。注意,消息传递服务器430a与辅助服务器420/客户端410之间的通信通常可以与通过信道120a进行的消息传递服务器430a与客户端410之间的例行通信并行进行,如上文中参考图1所述。
以上文中描述的方式,应当理解,辅助接口412和辅助服务器420构成“路径”,通过这个“路径”,驻留在客户端410上的任何应用(诸如消息传递应用112或本文中未明确描述的其他应用)可以直接与一个或多个服务模块430a、430b通信。在示例性实施例中,任何服务模块还可以利用这个路径以通过辅助服务器420直接与消息传递应用112通信,例如绕过消息传递服务器430a。例如,服务模块430b.1可以实现在线购物服务,其使得用户可以购买到各种各样的物品。在这种情况下,用户A可以利用所描述的路径在消息传递会话期间从服务模块430b.1获取产品细节,并且与消息传递会话中的其他用户共享这些细节。
为了实现这样的路径,每个服务模块430a、430b可以被配置为使用它们相应的插件425a、425b向客户端410传输消息。特别地,服务模块430a、430b可以将定制协议中的消息传输到其相应的插件425a、425b,插件425a、425b可以将这样的定制消息转换成SIIL格式,以将它们封装在SIIL“服务”消息中,SIIL“服务”消息然后被传递给辅助服务器处理块470。块470可以经由通信信道470a将SIIL服务消息传回给辅助接口412。响应于接收到SIIL服务消息,辅助接口412可以向消息传递应用112生成对应的输出信号。
应当理解,在图4中,示出了用于处理与用户A和用户B相对应的信号的单独路径。例如,用户A的路径包括辅助接口412.1、辅助服务器420.1和服务模块430a.1、430b.1,而用户B的路径包括辅助接口412.2、辅助服务器420.2和服务模块430a.2、430b.2。在某些示例性实施例中,这些单独路径的元素可以被集成,例如,单个辅助服务器420(例如,将420.1和420.2的功能并入单个硬件安装中)可以同时连接到多个客户端410.1、410.2等。
图6示出了根据本公开的由平台400的辅助服务器420和插件425a或425b执行的方法的示例性实施例600。注意,在图6中,由辅助服务器420执行的操作可以被分组在列601下,而由插件425a或425b执行的操作可以被分组在列602下。进一步注意,图6中描绘的操作并不意在暗示所有这样的操作必须按照指示的顺序执行,例如,一些操作可以不按顺序执行或重复执行,而一些操作可以被省略,等等。方法的这样的替代的示例性实施例被理解为在本公开的范围内。
在图6中,在框610处,可以从辅助接口412接收SIIL输入。在示例性实施例中,这可以对应于例如在辅助服务器420处从辅助接口412接收用户输入的SIIL消息。
在框620处,可以可选地对所接收的SIIL输入执行命令推断以生成SIIL命令输入。在示例性实施例中,这样的命令推断可以如下文中参考图7所描述的那样执行。在替代的示例性实施例中,命令推断可以被绕过,并且用户输入的SIIL消息可以被直接传递给相应的插件。
在框630处,向一个或多个插件425a、425b传输SIIL消息。在示例性实施例中,这样的SIIL消息可以包括例如用户输入的SIIL消息或命令输入的SIIL消息(如果可用)或其他类型的SIIL消息。
框605示出了可以由插件响应于由辅助服务器420对框630的执行而执行的示例性操作。在框605处,插件将SIIL消息转换成用于相应的服务模块的定制协议消息。
在框606处,向服务模块传输定制消息。
在框607处,例如在定制协议中从服务模块接收定制服务消息。
在框608处,将定制服务消息转换成SIIL协议,并且向辅助服务器420传输SIIL服务消息。
框640示出了可以由辅助服务器响应于由插件对框608的执行而执行的示例性操作。在框640处,从插件接收SIIL服务消息。
在框650处,向辅助接口412传输SIIL服务消息。
如上所述,在一些示例性实施例中,辅助服务器处理块470可以包括可选的命令推断块428。特别地,在辅助服务器处理块470处从辅助接口412接收的信号可以已经被辅助接口412编码为用户输入的SIIL消息。然而,在一些情况下,辅助服务器420可以适应另外的智能处理以生成推断用户输入的SIIL消息的用户意图的命令输入的SIIL消息。
图7示出了由辅助服务器处理块470的命令推断块428执行的操作的示例性实施例。注意,图7仅出于说明性目的而示出,并不意在将本公开的范围限制为命令推断块428的任何特定实现。
在图7中,在框710处,命令推断块428从对应的一个或多个客户端接收用户输入的SIIL消息。在示例性实施例中,可以例如经由来自客户端的输入模块的输入从单个用户的客户端接收用户输入的SIIL消息。在替代的示例性实施例中,用户输入的SIIL消息还可以从一个或多个其他用户接收,例如经由图4所示的通信信道480a从另一辅助服务器420的命令推断块428接收。以这种方式,任何辅助服务器420可以识别由来自多个用户的输入组成的“多用户”命令。在示例性实施例中,信道480a可以对应于例如有线或无线网络连接、局域网(LAN)类型连接等。
在框720处,还接收在框710处接收的用户输入的SIIL消息的上下文。特别地,用户输入的含义可以根据接收其的上下文而变化。在本说明书和权利要求书中,“上下文”可以指代形成特定用户输入出现的背景的特定用户或整体系统配置或情况。例如,上下文可以表示当生成输入时的用户的地理位置、消息传递会话中的其他用户的身份、做出用户输入的一天中的时间、先前的用户输入或伴随特定用户输入的任何其他细节等。
对于不同的用户,相同的输入也可以被不同地解释。例如,如果一个用户持续输入某些消息文本以执行第一命令并且另一人输入相同的消息文本以执行第二命令,则块428可以学习基于将用户身份作为上下文来标识这些偏好。注意,这种使用自适应学习来为不同用户不同地解释用户输入也允许在不同的用户群或个体之间出现输入命令的“特有用语(dialect)”。
在框730处,基于在框710处接收的用户输入的SIIL消息和在框720处接收的对应的上下文,命令推断块428从所存储的输入/上下文到命令映射的数字库中获取提议的命令。特别地,所存储的数字库可以对应于辅助服务器420中的存储器(未示出),其存储与用户输入和上下文的不同组合相对应的候选命令。
例如,特定的用户输入的SIIL消息可以包括在消息传递会话期间输入的文本,诸如“我想知道哪些影院正在放映电影‘超级英雄’”以及用户的物理位置的上下文(例如,纽约市)和一天中的时间(例如,下午6点)。在示例性实施例中,用户输入和上下文的这种组合可以通过块428使用所存储的库映射到提议的命令“搜索纽约市今天下午6点之后放映‘超级英雄’的影院”,这个提议的命令将要被发送到互联网搜索引擎(其可以通过例如服务模块430b来实现)。注意,映射仅出于说明性目的而描述,并不意在将本公开的范围限制为输入/上下文和命令之间的任何特定映射。
在框735处,将命令封装为命令输入的SIIL消息。在示例性实施例中,在框730处获取到的提议的命令可以对应于在框735处封装的实际命令。在替代的示例性实施例中,在框730处获取到的提议的命令不需要是在框735处封装的实际命令。特别地,可以采用各种技术来基于其他因素来改进提议的命令,例如由用户或其他用户应用的校正等。
例如,如果用户在消息传递会话期间输入未被识别或被块428不正确解释的查询,则用户可以拒绝提议的命令,而是明确地通过图形界面输入要执行的命令,例如,可选择的图标的显示或某一其他预定条目公式,例如在搜索查询工具栏中输入文本或从由消息传递应用提供的菜单中选择菜单项。以这种方式,可以并入提议的和执行的命令之间的差异,以使得块428能够适应并且学习与未识别或错误解释的用户输入相关联的适当命令。
此外,在两个或更多用户之间的消息传递会话中,一个用户可以进行用户输入,这个用户输入然后可以由另一用户校正或补充。例如,在消息传递会话中,一个用户可能不断地将名为“Bobby”的熟人错误地称为“Robby”。在这种情况下,命令推断块428可能无法识别,或基于错误输入的名称提议错误的命令。在这种情况下,第二用户可能会注意到第一用户对“Robby”的错误引用,并且在消息传递会话中提供正确的名称“Bobby”。例如,第二用户可能在消息传递会话中输入文本,诸如“您的意思是Bobby,对不对?”响应于另一用户的校正,当第一用户在将来输入“Robby”时,命令推断块428能够自动更新其输入/上下文到命令映射的库以反映“Bobby”。因此,在这种情况下,第二用户将提议的命令改进为实际命令。
在框740处,向一个或多个服务模块提交封装提议的命令的命令输入的SIIL消息。
在框750处,如果适用,可以基于在框735处封装的实际命令来更新由转换块428访问的库。特别地,参考上文中描述的场景,其中第二用户校正第一用户对“Robbie”的不正确的引用,与第一用户通信的转换块428然后可以更新其库以将原始的未识别的引用与正确的引用相关联。库的更新是适应性学习的示例,其使得辅助服务器能够自适应地扩展其用户输入的词汇表。
在框760处,可以与其他辅助服务器交换在框750处对库的更新。特别地,辅助服务器对库的更新可以扩展到辅助服务器的其他实例,例如对应于其他子系统。因此,辅助服务器的不同实例可以彼此传送用户输入与命令输入之间的自适应学习的映射以更新它们各自的库。
在示例性实施例中,在框710-730处,可以将来自一个或多个用户的多个消息传递会话输入捆绑在一起以生成单个命令集合,例如使用多个用户之间的信道480a。特别地,由多个用户执行的“多用户”输入可以类似地被捆绑成单个复合用户输入以触发整个命令集合。例如,如果用户A输入一些文本输入,然后用户B输入一些文本输入,然后用户C输入一些文本输入,并且这些用户经常一起执行这些动作,则所有这些文本输入可以被一起捆绑成单个复合文本输入以触发一系列命令,这些命令否则将在每个用户每次单独执行每个文本输入时被触发。例如,参考上文中描述的消息传递会话300,消息204和206可以被捆绑以生成单个查询,这个单个查询包含来自用户A的消息206的信息(例如,“哪个影院”)和来自消息204的信息(例如,电影名称是“超级英雄”)。
替代地,如果由于用户的对应的消息传递输入集合的结果而重复执行一组命令(例如,关于电影和影院的建议之后经常是票的购买),则转换块428可以预测性地捆绑该消息输入集合,其执行触发固定的命令输入集(例如,搜索放映这个电影的影院,并且购买这个电影的票)。
在一些情况下,命令推断块428将存储与潜意识用户行为相对应的用户输入和命令输入之间的映射。例如,如果用户在某些上下文中始终输入某些文本,例如,在一天中的某个时间给某个朋友发送消息,则可以通过命令推断块428学习这样的动作,命令推断块428可以学习在预期用户行为中预测性地发出某些命令,即使用户自己没有意识到这样的行为。
图8示出了利用平台400来实现诸如参考消息传递会话300所描述的消息传递场景的方法800的示例性实施例。图8中描述的操作通常可以由单独或联合地工作的一个或多个辅助服务器来执行。注意,图8仅出于说明性目的而示出,并不意在限制本公开的范围。
在框810处,从一个或多个辅助接口接收用户输入的SIIL消息。在示例性实施例中,辅助服务器420.1可以从辅助接口412.1接收用户输入的SIIL消息。类似地,辅助服务器420.2可以从辅助接口412.2接收用户输入的SIIL消息。在单个辅助服务器服务于多个用户的示例性实施例中,一个辅助服务器可以从多个辅助接口接收用户输入的SIIL消息。
在示例性实施例中,参考图3的消息传递会话300,用户输入的SIIL消息可以对应于由用户A和用户B输入的消息传递文本(例如,消息202、204、206)。
在框820处,如果适用,可以在辅助服务器之间传送所接收的用户输入的SIIL消息。在示例性实施例中,可以通过例如图4中所示的通信信道480a来执行这种通信。在单个服务器处理来自多个辅助接口的多个输入的替代的示例性实施例中,不需要执行这样的通信。在替代的示例性实施例中,不需要直接在辅助服务器之间交换用户输入的SIIL消息。相反,辅助服务器可以交换命令推断的输出或用户输入的SIIL消息的其他后处理版本,例如,如下文中参考下面的框830-850所述。预期这样的替代的示例性实施例在本公开的范围内。
在框830处,如果适用,可以对从用户输入的SIIL消息确定的用户输入执行文本或语音识别或其他类型的输入分类方案。在这个框中执行的操作可以导致从交换后的用户输入的SIIL消息中提取请求或查询。例如,可以在框830处处理与“我们今晚看‘超级英雄’”相对应的用户输入文本和与“哪个影院?”相对应的用户输入文本,以提取相关查询“哪些影院今晚放映电影‘超级英雄’?”
在示例性实施例中,可以应用机器学习和/或人工智能技术来从经解释的命令中提取经识别的请求或查询。
在框840处,如果适用,可以由命令推断块执行命令推断。在示例性实施例中,可以执行上文中参考图7中的命令推断块428描述的操作。
在框850处,将命令制定为一个或多个命令输入的SIIL消息。在示例性实施例中,这可以对应于在例如上文中描述的图7的框735处执行的操作。
在框860处,向适当的插件传输命令输入的SIIL消息。参考消息传递会话300,所执行的操作可以对应于向提供这种信息的在线查询引擎的插件传输查询“哪些影院今晚放映电影‘超级英雄’?”(例如,如在框840-850处所制定的)。例如,诸如Bing等Web搜索引擎的插件可以被优化以处理这样的查询并且获取相关信息。
在框870处,接收对所传输的请求或查询做出响应的SIIL服务消息。例如,可以从Web搜索引擎插件接收用于消息传递会话300中的所请求的电影的影院和放映时间。
在框880处,将所接收的响应制定为用于消息传递插件的命令输入的SIIL消息。例如,可以将在块870处获取到的影院和放映时间格式化为包含获取到的电影放映的参数的命令输入的SIIL消息“发送文本消息”。
在框890处,向消息传递服务器430a的消息传递插件425a传输制定的命令输入的SIIL消息。以这种方式,消息传递服务器430a可以更新消息传递会话300以示出消息302。
应当理解,使用上文中描述的平台,使用SIIL来标准化服务模块与一个或多个辅助服务器之间的通信,并且可以在辅助服务器和辅助接口处提供转换功能。因此,插件开发者通常可以以语义信息交换格式语言为插件定义一个或多个给定动作,而不需要访问由消息传递应用使用的定制协议,其可以在任何情况下跨不同的消息传递应用变化。类似地,消息传递应用开发者可以设计消息传递应用以允许访问无限范围的外部服务,而无需开发用这些外部服务的定制协议编写的软件。
应当理解,平台400和方法800可以容易地被适配以适应上文中描述的消息传递会话的其他方面。例如,在消息传递会话300的消息306处指示的特征(即,从消息传递会话内自动买票)也可以基于参考图8的方法800描述的操作来实现。
特别地,在框830处,从消息304以及包含电影标题、影院等的先前交换的消息中提取用户B购买用于8:30的放映的两张票的请求。在框840处,执行命令推断以推断在给定电影院为给定放映购买两张票的愿望。在框850处,将推断的命令制定为指向特定插件(例如,对应于在线电影票购买应用)的命令输入的SIIL消息。特别地,可以制定命令输入的SIIL消息,诸如“购买用于百老汇影院的8:30的‘超级英雄’放映的两张票”。在框860处,可以向相应的插件传输命令输入的SIIL消息。在框870处,接收已经购买了票的确认作为SIIL服务消息。在框880处,将具有对应于消息306的内容的消息定制为例如“发送文本消息”的命令输入的SIIL消息。在框890处,向消息传递服务器430a的消息传递插件425a传输制定的命令输入的SIIL消息。
本公开的技术可以进一步适应其中不需要存在例如如上文中参考图3所述的用户助理的替代的示例性实施例。特别地,在这样的示例性实施例中,消息传递应用的用户可以使用界面按钮、菜单项或在消息传递应用的界面中提供的其他图标来直接访问外部服务。
例如,在本公开的“直接链接”特征的示例性实施例中,消息传递应用112本身可以被配置为允许到辅助接口412的直接用户输入。特别地,代替要求辅助服务器420和辅助接口412连续且不显眼地监测用户A与用户B之间的对话,如图3所述,消息传递应用112可以在其消息传递界面中包含允许任何用户向由平台支持的外部服务模块明确地发出查询或做出请求的按钮或菜单。
例如,消息传递应用112可以在其用户界面上提供“电影”按钮,而不是让系统推断搜索电影时间和/或买票的意图。在点击这个按钮之后,用户可以直接输入关于电影院和放映时间的查询。为了实现这个特征,可以将查询直接提供给辅助接口412,辅助接口412执行到SIIL消息的转换并且以与先前在上文中针对“自动”示例性实施例所描述的相同的方式(例如,图8的方法800)传输到辅助服务器420和适当的插件等。
图9示出了根据本公开的用于实现直接链接功能的方法的示例性实施例900。注意,图9仅出于说明性目的而示出,并不意在限制本公开的范围。
在图9中,在框910处,从消息传递应用接收命令输入。在示例性实施例中,消息传递应用112可以被配置为包含到辅助接口412的直接链接,由此用户可以向辅助接口412直接输入来自消息传递应用112的命令输入。
在框920处,将所接收的命令输入转换成SIIL消息。在示例性实施例中,辅助接口412可以执行从消息传递服务器的定制协议命令输入消息到对应的SIIL消息的转换。
在示例性实施例中,辅助接口412可以直接并入消息传递应用112中,在这种情况下,框910和920可以由消息传递应用112直接执行。
在框930处,向辅助服务器传输SIIL消息。
在框940处,例如响应于框930,从辅助服务器接收SIIL服务消息。
在框950处,将SIIL消息转换成消息传递应用的定制协议,使得它们可以经由消息传递应用的界面被显示给用户。
应当理解,在提供直接链接功能的本公开的示例性实施例中,辅助服务器420不需要通过插件425a维持到消息传递服务器430a的有效连接。此外,命令推断块428可以被绕过。预期这样的替代的示例性实施例在本公开的范围内。
在示例性实施例中,如在下文中进一步描述的,本文中描述的平台可以用于例如实现权限在用户之间的共享和撤销。例如,消息传递应用112可以被配置为在其消息传递界面中提供“共享/撤销权限”菜单或按钮,其中用户可以选择菜单项或输入文本等以向系统发信号通知要在消息传递会话中与其他用户共享权项。替代地,用户可以通过在消息传递会话中输入消息来输入诸如希望共享或撤销权限等表达,并且然后,这样的命令可以使用例如参考图8的方法800描述的操作来处理。
响应于用于共享或撤销权限的用户输入,辅助接口412和辅助服务器420可以将适当的SIIL消息分派给与提供将要被共享或撤销的服务的服务模块相对应的插件。应当理解,由于辅助服务器通常可以例如如上文中描述地通过信道480a彼此通信,所描述的技术允许权限到可能连接到不同辅助服务器的其他用户的扩展和撤销。
在示例性实施例中,可以应用本公开的技术来实现权限在消息传递会话中在用户之间的共享。例如,消息传递会话中的用户可以具有向特定服务模块发出命令的权限,例如,在购物网站上进行购买,而消息传递会话中的其他用户不具有这样的权限。在这种情况下,用户可以选择与其他用户分享他或她的权限。例如,用户可以向消息传递应用发出命令输入,以将对指定服务模块的权限扩展到消息传递会话中的一个或多个其他用户。辅助服务器470可以将命令输入处理为SIIL消息,并且传送权限与服务于授权将被扩展到的一个或多个其他用户的辅助服务器的共享。共享权限的这些用户将拥有访问相关服务的部分或全部权利。值得注意,共享访问不需要共享密码或其他用户凭证。因此,用户的凭证保持安全,并且对于选择与其他用户共享权限的用户,控制这样的服务的权力的最终权限仍然保持。共享权限也可以是在有限的时间内,或者基于上下文,例如,其他用户仅在地理领域区域(geo-fenced area)内能够访问。权限的这种共享也在美国专利9,111,214中详细描述。
在示例性实施例中,消息传递会话本身可以是用于共享权限的上下文。例如,消息传递会话中的用户可以向辅助接口412指示这样的用户正在将对某事的控制扩展到消息传递会话的一个或多个其他用户。这种控制根据用户指示或在特定上下文的情况下(例如在消息传递会话完成的情况下)可以是暂时的、永久的、或者可撤销。例如,群聊会话中的两个用户可能希望使用仅一个用户具有访问权限的服务来玩象棋游戏。具有访问权限的用户可以在聊天会话期间将这些访问权限扩展到其他用户,使得这两个用户在聊天会话期间具有对使用象棋服务的访问权限。作为另一示例,用户可以将网络摄像机视图添加到聊天会话中,只要聊天会话持续,网络摄像机视图就可以运行。这个网络摄像机视图可以不直接与聊天会话的参与者相关,例如,它可以是与传统视频会议会话不同的视图。例如,网络摄像机视图可以是来自在物理空间上向外聚焦的可移动网络摄像机的视图,其然后可以由聊天会话中的用户操纵以进行旋转或缩放。这个网络摄像机的拥有者可以将权限扩展到聊天会话中的其他用户,以例如通过查看输出和操纵视图来控制网络摄像机,而不需要也共享访问标准,诸如例如用户名和密码。
联合权限也可以在这些情况下运行。例如,可能存在需要两个不同的用户扩展其权限的动作。在这种情况下,也可以进行权限的同时扩展。也就是说,用户可以彼此分享他们相应的权限,使得用户都被授予权限的总和。这个场景可以被称为“共用权限”。
消息传递会话还可以是用于限制权限扩展的上下文。例如,只要这个消息传递会话持续,就可以由用户向消息传递会话的其他用户进行呈现。类似地,用户可以能够在与另一用户(或一组用户)的聊天会话中查看相机,但是无法在其他任何地方查看相机。替代地,当这些用户与所有者用户进行消息传递时(而不是在没有所有者用户的另一时间),用户可以能够查看已经在消息传递中共享的呈现。类似地,当一个用户被授权时,即,当一个用户拥有对服务的权限,但是当未授权的用户没有被授权用户陪同时,使得对这些服务的访问对于未授权的用户被拒绝时,可以存在可以由两个或更多个用户在消息传递会话内一起使用的服务(例如,歌曲或电影)。作为权限的上下文扩展的另一示例,只要用户是聊天组的成员,用户就可以与聊天组的成员共享一项或多项服务的权限。如果这个授权用户离开聊天组,则由这个用户针对一个或多个服务对在聊天中的其他用户扩展的任何权限可以自动失效。这种权限的上下文扩展允许多个用户共用权限。例如,一组用户可以共用用户经由电影服务单独访问的电影列表的权限。当用户离开这个组时,这个用户的授权电影将不再能够由组中的其他用户访问。
上下文扩展和权限的撤销也可以由消息传递会话本身的内容来驱动。如果系统正在管理消息传递会话,则客户端设备也可以监测消息的内容以获得相关命令输入,这些命令输入可以被转发给辅助服务器以执行相关联的动作。例如,消息传递会话中的用户可能会向另一用户请求使用服务的许可,例如“我可以使用dropcam吗?”,并且这个问题可以由客户端设备转换成语义信息交换格式语言并且发送到辅助服务器。辅助服务器可以将这个语句解释为共享对相关服务的访问的请求,在这种情况下为dropcam。如果这个服务的所有者用诸如“肯定”等明确答复进行响应,则这个答复将类似地从客户端设备发送到辅助服务器,辅助服务器应当将其理解为授予请求,并且相应地,服务的授权可以被自动扩展到请求用户,而不需要任一用户的单独操作。类似地,如果聊天会话中的用户之一询问“您是否用完了dropcam?”并且被授予访问的用户肯定地答复,例如“是,我是”,则辅助服务器可以自动撤销被共享的访问。由于共享可以基于消息传递会话的内容自动执行,所以用户不需要从消息传递中转向(恢复到另一形式的控制),以便单独控制系统以共享访问。以这种方式,共享访问和服务的控制成为消息传递的更加无缝的部分。
不正确的授权和撤销也可以通过上一节中描述的自适应学习方法来解决。例如,如果用户在授予权限之后立即撤销这样的权限,则向系统表明在授予这个权限时超出了权限。
这种基于消息传递的内容而采取的动作的方法也可以扩展到交易。例如,如果第一和第二用户讨论在特定的影院观看电影,并且第一用户询问第二用户“我已经找到了票,但是你能付钱吗?”这个问题可以被发送给辅助服务器,辅助服务器可以将这个问题解释为针对特定用途的支付(在这种情况下为针对票的支付)的请求。如果第二用户例如通过响应“确定”来同意,则第二用户的所选择的支付工具可以应用于特定目的,在这种情况下为买票。辅助服务器将第二用户的响应解释为对第一用户的请求的同意,并且因此针对这个金额和这个特定目的(买票)将所选择的支付工具的权限扩展到第一用户。
应当理解,上文中描述的平台和方法可以容易地适配以适应用于利用具有消息传递应用的服务模块的附加场景。例如,利用平台400,用户可以容易地交换关于基于不同的定制协议不同地编码的相同或类似对象的信息。例如,消息传递会话中的两个用户可以正在讨论第三方,例如“Bob”。为了获得关于Bob的信息,任一用户可以例如根据图9的技术来提交命令输入,以从多个社交网络中的任何一个请求关于Bob的信息。例如,可以将Bob的姓名提供给辅助接口412,辅助接口412在消息传递会话期间使用“个人简档”类型的SIIL消息来封装Bob的信息。然后可以经由辅助服务器将个人简档SIIL消息作为查询发送给各种社交网络应用(例如,FacebookTM、LinkedInTM等)的插件。之后,可以从社交网络插件接收简档。使用这些技术,驻留在第一社交网络上的简档也可以作为查询被“转发”给第二社交网络,例如通过配置它们相应的插件以在经由辅助服务器处理块470交换简档参数之前将简档转换成SIIL。可以应用类似的技术来获取和交换与任何类型的内容有关的信息,例如电影或声音对象、视频、图像等。
消息传递内容作为命令输入的这种使用可以自动执行或者通过与辅助服务器的有意识的用户交互来执行。在上面给出的示例中,客户端设备可以将感知到的命令(例如,来自用户的问题和响应)自动转换成语义信息交换格式语言,并且将转换后的命令转发给辅助服务器,辅助服务器可以自动采取对应的动作。替代或者除了这种自动响应之外,用户可以通过消息传递会话的媒介向辅助服务器发送命令。在这种情况下,辅助服务器实际上是消息传递会话的“参与者”,因为辅助服务器可以接收消息(对应于来自用户的命令)并且还在消息传递会话内传输消息(例如,回复、来自服务的输出等)。彼此通信的多个辅助服务器(本文中被称为“辅助服务器的多个实例”)也可以是消息传递会话的参与者。以类似的方式,服务可以是消息传递会话中的“参与者”。
权限交易也是可能的,其中系统基于两个或更多个用户之间的协商来永久或暂时地安排对某些基础资产的权限的同时交换,例如向一个或多个服务发出命令的权限。这些权限交换可以是两个人之间的简单交易,但是也可以在两个以上的各方之间安排复杂的交易。以类似的方式,用户可以将标的资产的权限永久性地转移给另一用户,而无需接收任何回报,或者作为支付转移的交换。在这种权限转移之后,原始用户失去了对标的资产的权限。以这种方式,可以在虚拟现实中进行访问或权限的销售或转移。例如,出售他们家的用户可以将他们对家庭恒温器的权限转移给买家。系统还可以根据协议由第三者暂为保管物品(例如,用于向一个或多个服务发出命令的权限)以确保交易正确完成。
本文中以及在美国专利9,111,214中描述的是在辅助服务器处使用以允许服务之间的通信的语义信息交换格式语言。所接收的所有命令输入以及来自通过各种插件转换的各种服务的输出以语义信息交换格式语言的形式表达。语义信息交换格式语言可以用于描述任何事物,例如描述命令输入,描述从一个插件接收的数据,描述发送给另一插件的数据或者两个设备和/或服务之间的任何通信。语义信息交换格式语言还有助于在消息传递会话的参与者之间传输信息。
以语义信息交换格式语言表达的数据可以从不同的服务获得,并且可以经由消息传递在人们之间共享。这些数据也可以在一个或多个用户与服务本身之间共享,其中服务是消息传递会话的参与者。在服务可以通过涉及一个或多个用户的消息传递会话的媒介发送和接收数据的意义上,服务可以是消息传递会话的“参与者”。用户可以将以语义信息交换格式语言表达的数据作为用于执行动作的命令消息传递给服务,并且另外,服务可以向消息传递会话提供信息,这个信息也用语义信息交换格式语言表达,例如响应于来自一个或多个用户的命令。在这两种情况下,如上所述,辅助服务器正在管理消息传递会话,并且利用对应的插件在外部服务的定制协议与语义信息交换格式语言之间进行转换。一个或多个服务可以以这种方式参与消息传递会话。辅助服务器的多个实例也可以以这种方式参与消息传递会话。
基于用户对这些插件的访问权限,聊天会话中的一个或多个用户还可以从聊天会话中的其他用户是不可见地邀请插件参与聊天会话。基本上,用户可以将一个或多个插件带入聊天会话并且利用这些插件,而不会将权限扩展到聊天会话的其他参与者,或者甚至允许聊天会话的其他参与者意识到插件的参与。这种情况下的插件可以包括系统的用户个人客户端。用户还可以根据需要与聊天会话的其他参与者分享他们的插件。通过聊天会话与其他用户的这种插件共享可以是选择性的,即,如拥有插件的用户所期望的,插件可以与消息传递会话中的所有用户共享,或者仅与消息传递会话中的用户子集共享。
作为参与消息传递会话的服务的示例,当Rotten TomatoesTM将关于电影的数据发送到消息传递会话时,用户可以从Rotten TomatoesTM获得电影。用户然后可以将这些数据消息传递或传输给NetflixTM。NetflixTM插件可以将所接收的数据转换为NetflixTM的自定义语言,并且引起电影被列入用户的NetflixTM队列中。作为另一示例,用户可以将与用户已经购买的票(例如,在FandangoTM上)相对应的数据消息传递或传输给另一人。另一人可以得到以语义信息交换格式语言表达的这些数据,并且将这些数据消息传递或传输给购票服务(例如,FandangoTM或Movietickets.comTM)并且使用这个用户选择的信用卡或其他支付凭证购买与这个消息相对应的票。以上描述的这种消息传递表示对将要被另一用户和/或另一服务再次购买的服务的购买的数据的情况(可能具有不同的支付凭证)是模拟交易的示例。
用户还可以协作以通过消息传递来组装数据。作为示例,一个用户可以获得以表示披萨订单的语义信息交换格式语言表达的数据,并且将这些数据消息传递给另一用户,另一用户然后向披萨添加浇头,以实际上将附加信息添加到表示披萨的数据。数据可以以这种方式在多个用户之间被消息传递,每个用户修改数据(例如,通过添加或去除浇头)直到用户准备好订购。此时,用户之一可以将表示披萨订单的数据发送给服务(例如,PizzaHutTM)以执行对应的操作,在这种情况下是订购披萨。作为被消息传递到Pizza HutTM的一部分,以语义信息交换格式语言表达的数据被发送到辅助服务器,辅助服务器接着将数据发送到Pizza HutTM插件以转换为Pizza HutTM定制语言,并且然后被发送到Pizza HutTM以订购披萨。值得注意的是,这些操作可以自动发生而无需用户直接交互。在用户的看法中,他们在彼此之间消息传递了要购买哪种披萨,并且然后将他们同意的披萨订单消息传递给Pizza HutTM。
类似地,零售商可以向用户消息传递优惠,例如以折扣购买产品的优惠。这个优惠将以语义信息交换格式语言表达,用户可以能够向另一用户消息传递这个优惠,并且这个另一用户可能根据相关的上下文来兑换优惠。是否从另一用户接收到优惠可以是影响优惠的上下文,使得优惠在被从一个用户消息传递到另一用户时改变。例如,如果零售商对第一用户的最初优惠是以20%折扣购买软饮料,则在被消息传递到另一用户之后,同一优惠可以允许另一用户以50%的折扣购买软饮料。替代地,优惠在被消息传递给另一用户之后可以允许另一用户以50%的折扣从同一零售商所拥有的咖啡店购买咖啡。换言之,数据已经被消息传递的次数也可以被包括在数据中以用作上下文来解释为命令。这些数据的传输(对应于优惠)也可以是可追踪的。与很多朋友共享优惠并且然后兑换优惠的用户可以基于他们的朋友的共享和使用行为获得另一优惠,例如免费产品。
对优惠已经在用户之间被消息传递的次数的跟踪也可以用于非常广泛地进行商业游戏化。例如,成功将很多朋友引用到新服务的用户可能基于这个用户的朋友的共享和使用行为来获得这个服务的精英地位。在所有这些情况下,相同的数据(优惠)在不同的上下文中并且有可能在不同的插件之间被不同地转换。
这种广告也可以更加开放。例如,零售商可能宣布50个物品单位免费可获取。然后,如果优惠仍然可获取(在这个示例中,如果50个物品单位中的任何一个仍然可获取),则一个或多个用户可以请求并且接收与来自零售商的插件(其也可以经由聊天可访问)的优惠相对应的数据。一个或多个用户可以能够随后将这些数据(对应于优惠以及如上所述的兑换优惠的权限)转移给其他用户。接收和兑换优惠可能需要接收用户安装或与属于发出零售商的插件通信,或者代替地可能不需要这样的安装和/或通信。根据本文中描述的大体上的本发明构思的消息传递随后成为零售商可以接触到很多潜在客户并且通过针对具有可转移优惠的高度有影响力的个体来生成“网络口碑(buzz)”的途径。
图10示出了包括存储器1020的计算设备的示例性实施例1000,存储器1020保存由处理器1010可执行以进行以下操作的指令:向插件模块传输从消息传递应用导出的数字命令消息,数字命令消息根据第一协议格式化;以及使用插件模块,使根据第一协议与由与插件模块通信的服务模块使用的定制协议格式化的数字命令消息之间的转换自动化。
图11示出了示例性实施例1100,其中辅助服务器420不需要作为服务模块之一耦合到消息传递服务器。注意,除非另有说明,否则图4和11中的类似标记的元素可以对应于执行类似功能的元素。在图11中,辅助服务器420分别经由对应的插件1125a、425b耦合到服务模块1130a、430b,其中没有一个服务模块是消息传递服务器。
示例性实施例110可以用于其中在消息传递应用112.1和112.2之间发送的任何消息仅由消息传递服务直接发送的实现中。例如,用户A可能使用他的消息传递应用作为前端经由他的辅助接口和服务器来访问他的音乐播放列表(注意,如果消息传递应用的提供者同意,则412.1可能简单地被捆绑成112.1中并且因此对用户不可见)。用户A然后使用消息传递服务本身向用户B发送一个播放列表(就像当今发送照片一样)。嵌入这个消息中的将是SIIL中的一些信息。但是,用户B可以在视觉上简单地查看这些信息,或者使用它来点击网站并且甚至根本不使用任何辅助接口(或者甚至对其不具有任何访问)。类似地,用户A可以使用其LinkedIn账户查找并且向用户B发送个人简档(照片、姓名、职位)。用户B将其视为卡片。但是,触摸卡片简单地将它们带到web浏览器中这个简档的位置。在替代的示例性实施例中,用户B还将其发送给能够访问(或选择能够访问)辅助接口的不同用户,例如用户C。现在,这可能会从用户C的LinkedIn帐户提取信息,例如他们如何连接到这个人、他们的电子邮件、从他们的电子邮件帐户添加这个人的电子邮件的能力、给他们发送LinkedIn邀请、查找关于他们的消息等。
图12示出了装置1200的示例性实施例,其包括:至少一个插件模块1210,其被配置为根据定制协议与相应的服务模块1220进行数字通信;以及辅助服务器处理块1230,其被配置为向至少一个插件模块1210传输从消息传递应用1240导出的数字命令消息1210a,数字命令消息1210a根据第一协议格式化;其中至少一个插件模块1210还被配置为使根据第一协议格式化的数字消息与根据定制协议格式化的数字消息之间的转换自动化。
图13示出了根据本公开的用于实现用于处理统一的数字消息传递平台中的请求和命令的电子服务器的方法的示例性实施例1300。在图13中,在框1310处,向插件模块传输从消息传递应用导出的数字命令消息。命令消息根据第一协议格式化。在框1320处,使用插件模块,将根据第一协议格式化的数字命令消息电子地转换成根据由与插件模块通信的服务模块使用的定制协议格式化的数字消息。
在本说明书和权利要求书中,应当理解,当元件被称为“连接到”或“耦合到”另一元件时,它可以直接连接或耦合到另一元件或者可以存在中间元件。相反,当元件被称为“直接连接到”或“直接耦合到”另一元件时,不存在中间元件。此外,当元件被称为“电耦合”到另一元件时,表示在这样的元件之间存在低电阻路径,而当元件被简单地“耦合”到另一元件时,在这样的元件之前可以存在或不存在低电阻路径。
本文中描述的功能可以至少部分由一个或多个硬件和/或软件逻辑组件来执行。例如而非限制,可以使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
虽然本发明易于进行各种修改和替代构造,但是其某些示出的实施例在附图中示出并且已经在上面详细描述。然而,应当理解,并不打算将本发明限制于所公开的具体形式,相反,本发明意在覆盖落入本发明的精神和范围内的所有修改、替代构造和等同物。