CN110383772B - 用于消息收发机器人丰富通信的技术 - Google Patents
用于消息收发机器人丰富通信的技术 Download PDFInfo
- Publication number
- CN110383772B CN110383772B CN201680084948.7A CN201680084948A CN110383772B CN 110383772 B CN110383772 B CN 110383772B CN 201680084948 A CN201680084948 A CN 201680084948A CN 110383772 B CN110383772 B CN 110383772B
- Authority
- CN
- China
- Prior art keywords
- robot
- message
- messaging
- command
- thread
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/216—Handling conversation history, e.g. grouping of messages in sessions or threads
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
描述了用于具有丰富通信的消息收发机器人的技术。在一个实施方式中,设备可以包括:消息收发组件,操作以从客户端装置接收消息并且将该消息添加到消息队列;消息队列监视组件,操作以监视消息队列;检测该消息指示消息收发机器人调用;并且基于检测到该消息指示消息收发机器人调用而将该消息提交给机器人框架组件;以及机器人框架组件,操作以确定与该消息相关联的消息收发机器人,并且将该消息提交给消息收发机器人。描述并要求保护了其他实施方式。
Description
相关申请
本申请涉及代理人案卷号为1360F0113.1的于2016年2月25日提交的美国专利申请“Techniques for Messaging Bot App Interactions”,其全部内容通过引证结合于此。
技术领域
本公开总体上涉及用于消息收发机器人的技术。
背景技术
用户可以在消息收发系统中彼此交互,在两个以上用户之间的基于文本的会话中彼此来回发送消息。用户可以在消息收发系统中具有与他们相关联的用户账户,用户账户提供用户的在线身份、指向用户的消息的目的地,并且通常协调用户对消息收发系统的访问和使用。用户可以从各种端点访问消息收发系统,包括移动装置(例如,蜂窝电话)、台式计算机、网络浏览器、专用消息收发客户端等。
发明内容
为了提供对本文中描述的一些新颖实施方式的基本理解,以下给出了简化的概述。该概述不是广泛概述,并且不旨在识别关键/重要元素或描绘其范围。一些概念以简化的形式呈现,作为对稍后呈现的更详细描述的序言。
各种实施方式总体上指向消息收发机器人(messaging bot)的技术。一些实施方式具体指向用于在消息收发应用内具有交互的消息收发机器人的技术。一些实施方式具体地指向用于在消息收发系统上使用丰富通信的消息收发机器人的技术。
在一个实施方式中,例如,一种设备可包括:用户界面组件,操作以在客户端装置上的消息线程显示中接收消息收发机器人调用;响应于该消息收发机器人调用,而结合该消息线程显示调用客户端装置上的消息收发机器人交互用户界面;经由该消息收发机器人交互用户界面接收消息收发机器人交互命令;并且在该消息线程显示中显示消息收发机器人交互响应;以及客户端消息收发组件,操作以将消息收发机器人交互命令从客户端装置传送到消息收发系统;并且在该客户端装置处从该消息收发系统接收该消息收发机器人交互响应。描述并请求保护了其他实施方式。
在另一个实施方式中,例如,设备可以包括:消息收发组件,操作以从客户端装置接收消息,并且将该消息添加到消息队列;消息队列监视组件,操作以监视该消息队列,检测该消息指示消息收发机器人调用,并且基于检测到该消息指示消息收发机器人调用而将该消息提交给机器人框架组件;以及该机器人框架组件,操作以确定与该消息相关联的消息收发机器人,并且将该消息提交给消息收发机器人。描述并要求保护了其他实施方式。
为了实现上述及相关目的,在本文中连同以下具体实施方式和附图一起描述了某些示例性方面。这些方面表示可以实践在本文中公开的原理的各种方法并且其所有的方面和等同物意在处于所请求保护的主题范围内。当结合附图考虑时,其他优点和新颖特征将从以下详细描述中变得清楚。
根据本发明的实施方式被具体公开在涉及方法、存储介质、系统以及计算机程序产品的所附权利要求中,其中,在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如存储介质)中被要求保护。所附权利要求中的依赖或引用关系仅出于形式原因而选择。但是,从之前的任何权利要求中(具体而言,多重依赖性)有意引用得到的任何主题也可被要求保护,因此无论所附权利要求选择何种依赖性,权利要求及其特征的任何组合都能被公开并被要求保护。可以要求保护的主题不仅包括所附权利要求中阐述的特征的组合,而且还包括权利要求中的特征的任何其他组合,其中,权利要求中提及的每个特征可以与权利要求中的任何其他特征或其他特征的组合相结合。此外,本文中描述或描绘的实施方式和特征中的任何实施方式和特征可以在单独的权利要求中和/或以与本文中描述或描绘的任何实施方式或特征或与所附权利要求中的任何特征相组合的方式来要求保护。
在根据本发明的实施方式中,一种计算机实现的方法包括:
从客户端装置接收消息;
将该消息添加到消息队列中;
监视该消息队列;
检测该消息指示消息收发机器人调用;以及
基于检测到该消息指示消息收发机器人调用,而将该消息提交给机器人框架组件;
确定与该消息相关联的消息收发机器人;以及
将该消息提交给消息收发机器人。
在根据本发明的实施方式中,一种计算机实现的方法包括:
在消息收发服务器、邮件服务器和/或在消息收发系统的客户端前端服务器的消息收发组件处从客户端装置接收消息;
将该消息添加到消息队列中;
由消息收发系统的工作者服务器的消息队列监视组件监视消息队列;
检测该消息指示消息收发机器人调用;
其中,消息队列监视组件被配置为检查消息队列内的每个条目并且检测该消息指示消息收发机器人调用;以及
由消息队列监视组件基于检测到该消息指示消息收发机器人调用,而将该消息或检测到具有消息收发机器人调用的消息的通知(诸如消息的标识符)提交给机器人框架组件;
由机器人框架组件:
确定与该消息相关联的消息收发机器人;以及
将该消息提交给消息收发机器人。
在根据本发明的实施方式中,其中该消息可以包括文本内容部分,方法可以包括:
检测该消息的文本内容部分中的机器人调用符号;以及
基于检测到机器人调用符号,而检测到消息指示消息收发机器人调用。
在根据本发明的实施方式中,其中该消息可以包括文本内容部分,方法可以包括:
检测该消息的文本内容部分中的机器人调用符号;以及
基于检测到该机器人调用符号而检测到该消息指示消息收发机器人调用,和/或
其中,包括用于机器人的信息的消息由发送方客户端装置标记在于消息的元数据部分被标记有机器人调用标志,并且其中,消息监视组件被配置为基于检测到机器人调用标志而检测到该消息指示消息收发机器人调用。
在根据本发明的实施方式中,一种方法可以包括:
接收对该消息的消息收发机器人响应;以及
将消息收发机器人响应插入消息队列中。
在根据本发明的实施方式中,一种方法可以包括:
接收对该消息的消息收发机器人响应;以及
将消息收发机器人响应插入消息队列中,并且可选地,
将该消息收发机器人响应传送到该客户端装置以在消息收发客户端的显示器上显示。
在根据本发明的实施方式中,其中消息可以与消息线程相关联,插入到消息队列中的消息收发机器人响应可以被标记以用于在消息线程中显示。
在根据本发明的实施方式中,其中消息可以与消息线程相关联,被插入到消息队列中的消息收发机器人响应可以被标记以用于在消息线程中显示,其中可选地,响应于用户向消息收发机器人发送的消息,消息机器人被准许向消息队列添加消息,消息机器人进一步可选地响应于消息而被授权发送对该消息的单个响应和/或被授权有限时段。
在根据本发明的实施方式中,其中该消息可以包括文本部分,该文本部分包括机器人别名文本片段,进一步可以包括:
接收该机器人别名文本片段的别名初始部分;
将该别名初始部分与机器人别名注册表匹配以确定一个或多个预测的机器人别名文本片段,该一个或多个预测的机器人别名文本片段包括该机器人别名文本片段;以及
将该一个或多个预测的机器人别名文本片段传送到该客户端装置。
在根据本发明的实施方式中,其中该消息可以包括文本部分,该文本部分包括机器人命令文本片段,进一步包括可选地由机器人框架组件:
接收机器人命令文本片段的命令初始部分;
将该命令初始部分提交给该消息收发机器人;
从该消息收发机器人接收一个或多个预测的机器人命令文本片段,该一个或多个预测的机器人命令文本片段包括该机器人命令文本片段;以及
将该一个或多个预测的机器人命令文本片段传送到该客户端装置。
在根据本发明的实施方式中,其中该消息可以与消息线程相关联,该消息包括机器人订阅命令,进一步可以包括:
响应于该机器人订阅命令,将该消息线程订阅到该消息收发机器人;
从该消息收发机器人接收广播消息;
基于该消息收发机器人确定用于该广播消息的多个订户线程,该多个订户线程包括该消息线程;
将该多个订户线程划分成多个订户线程块;
将该多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
由该多个广播工作者基于该多个订户线程块而将该广播消息添加到多个消息队列,该多个消息队列包括该消息队列。
在根据本发明的实施方式中,一种设备包括:
装置上的处理器电路;
消息收发组件,其在该处理器电路上操作以从客户端装置接收消息;并且将该消息添加到消息队列;
消息队列监视组件,操作以监视该消息队列;检测该消息指示消息收发机器人调用;并且基于检测到该消息指示消息收发机器人调用,将该消息提交给机器人框架组件;以及
该机器人框架组件操作以确定与该消息相关联的消息收发机器人;并且将该消息提交给消息收发机器人。
在根据本发明的实施方式中,一种设备,其中该消息包括文本内容部分,该设备进一步可以包括:
该消息队列监视组件操作以检测该消息的文本内容部分中的机器人调用符号;并且基于检测到该机器人调用符号来检测该消息指示消息收发机器人调用。
在根据本发明的实施方式中,一种设备进一步可以包括:
该机器人框架组件操作以接收对该消息的消息收发机器人响应;并且将该消息收发机器人响应插入该消息队列中。
在根据本发明的实施方式中,一种设备,其中该消息可以与消息线程相关联,该消息收发机器人响应可以被插入到消息队列中,消息收发机器人响应被标记用于在该消息线程中显示。
在根据本发明的实施方式中,一种设备,其中该消息可以包括文本部分,该文本部分包括机器人别名文本片段,进一步可以包括:
该机器人框架组件操作以接收该机器人别名文本片段的别名初始部分;将该别名初始部分与机器人别名注册表进行匹配以确定一个或多个预测的机器人别名文本片段,该一个或多个预测的机器人别名文本片段包括该机器人别名文本片段;并且将该一个或多个预测的机器人别名文本片段传送到该客户端装置。
在根据本发明的实施方式中,一种设备,其中该消息可以包括文本部分,该文本部分包括机器人命令文本片段,进一步可以包括:
该机器人框架组件操作以接收该机器人命令文本片段的命令初始部分;将命令初始部分提交给消息收发机器人;从该消息收发机器人接收一个或多个预测的机器人命令文本片段,该一个或多个预测的机器人命令文本片段包括该机器人命令文本片段;并且将该一个或多个预测的机器人命令文本片段传送到该客户端装置。
在根据本发明的实施方式中,一种设备,其中该消息可以与消息线程相关联,该消息包括机器人订阅命令,该设备进一步可以包括:
该机器人框架组件操作以响应于该机器人订阅命令将该消息线程订阅到该消息收发机器人;
广播组件,操作以从该消息收发机器人接收广播消息;基于该消息收发机器人确定用于该广播消息的多个订户线程,该多个订户线程包括该消息线程;将该多个订户线程划分成多个订户线程块;并且将该多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
该多个广播工作者操作以基于该多个订户线程块将该广播消息添加到多个消息队列,该多个消息队列包括该消息队列。
在根据本发明的实施方式中,至少一种计算机可读存储介质可以包括指令,该指令在被执行时可以使系统:
从客户端装置接收消息;
将该消息添加到消息队列;
监视该消息队列;
检测该消息指示消息收发机器人调用;以及
基于检测到该消息指示消息收发机器人调用,而将该消息提交给机器人框架组件;
确定与该消息相关联的消息收发机器人;以及
将该消息提交给消息收发机器人。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息可以包括文本内容部分,可以包括当被执行时使得系统执行以下操作的另外的指令:
检测该消息的文本内容部分中的机器人调用符号;以及
基于检测到机器人调用符号,而检测到该消息指示消息收发机器人调用。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息可以与消息线程相关联,该计算机可读存储介质可以包括另外的指令,该另外的指令在被执行时可以使系统:
接收对该消息的消息收发机器人响应;以及
将该消息收发机器人响应插入该消息队列中,该消息收发机器人响应被标记用于在该消息线程中显示。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息可以包括文本部分,该文本部分包括机器人别名文本片段,该计算机可读存储介质可以包括另外的指令,该另外的指令在被执行时可以使系统:
接收该机器人别名文本片段的别名初始部分;
将该别名初始部分与机器人别名注册表进行匹配以确定一个或多个预测的机器人别名文本片段,该一个或多个预测的机器人别名文本片段包括该机器人别名文本片段;以及
将该一个或多个预测的机器人别名文本片段传送到该客户端装置。
在根据本发明的实施方式中,一种计算机可读存储介质,其中该消息可以包括文本部分,该文本部分可以包括机器人命令文本片段,该机器人命令文本片段包括另外的指令,该另外的指令在被执行时可以使系统:
接收机器人命令文本片段的命令初始部分;
将命令初始部分提交给消息收发机器人;
从该消息收发机器人接收一个或多个预测的机器人命令文本片段,该一个或多个预测的机器人命令文本片段包括该机器人命令文本片段;以及
将该一个或多个预测的机器人命令文本片段传送到该客户端装置。
在根据本发明的实施方式中,一种计算机可读存储介质,其中消息可以与消息线程相关联,该消息包括机器人订阅命令,该计算机可读存储介质可以包括另外的指令,该另外的指令在被执行时可以使系统:
响应于机器人订阅命令,将消息线程订阅到消息收发机器人;
从该消息收发机器人接收广播消息;
基于该消息收发机器人确定用于该广播消息的多个订户线程,该多个订户线程包括该消息线程;
将该多个订户线程划分成多个订户线程块;
将该多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
由该多个广播工作者基于该多个订户线程块而将该广播消息添加到多个消息队列,该多个消息队列包括该消息队列。
在根据本发明的另一个实施方式中,一个或多个包含软件的计算机可读非瞬时性存储介质,该软件在被执行时操作以执行根据本发明的方法或任何上述实施方式。
在根据本发明的另一实施方式中,系统包括一个或多个处理器;以及至少一个存储器,该至少一个存储器连接到该处理器并且包括可由该处理器执行的指令,该处理器在执行该指令时操作以执行根据本发明的方法或任何上述实施方式。
在根据本发明的另一实施方式中,优选地包括计算机可读非瞬时性存储介质的计算机程序产品在数据处理系统上执行时操作以执行根据本发明的方法或任何上述实施方式。
附图说明
图1示出了消息收发系统的实施方式。
图2示出了社交图谱的示例。
图3A示出显示消息收发界面的用户界面的实施方式。
图3B示出显示交通界面的用户界面的实施方式。
图3C示出显示目的地配置界面的用户界面的实施方式。
图3D示出显示配置的交通请求的用户界面的实施方式。
图3E示出了在消息线程中显示交通请求的用户界面的实施方式。
图4A示出了在消息线程中显示机器人消息的用户界面的实施方式。
图4B示出了在消息线程中显示用于服务更新的机器人消息的用户界面的实施方式。
图4C示出显示来自服务提供商的实时聊天消息的用户界面的实施方式。
图5A示出了在消息线程中显示触发的用户界面的实施方式。
图5B示出响应于触发而显示建议的服务的用户界面的实施方式。
图6示出显示到链接账户的提示的用户界面的实施方式。
图7A示出显示新用户对话的用户界面的实施方式。
图7B示出显示账户创建对话的账户细节请求的用户界面的实施方式。
图7C示出显示完成账户创建对话的用户界面的实施方式。
图8A示出了显示具有所建议的机器人的部分机器人地址的用户界面的实施方式。
图8B示出显示基于完整机器人地址检索的建议命令的用户界面的实施方式。
图8C示出显示基于部分机器人命令检索的更新的建议命令的用户界面的实施方式。
图8D示出显示线程内机器人响应的用户界面的实施方式。
图9示出了通过消息收发系统传送的消息的实施方式。
图10示出了对消息收发系统中的消息的响应的实施方式。
图11示出了消息收发系统中的订阅命令的实施方式。
图12示出了消息收发系统中的广播消息的实施方式。
图13A示出了图1的系统的第一逻辑流程的实施方式。
图13B示出了用于图1的系统的第二逻辑流程的实施方式。
图14示出了用于图1的系统的集中式系统的实施方式。
图15示出了用于图1的系统的分布式系统的实施方式。
图16示出了计算架构的实施方式。
图17示出了通信架构的实施方式。
图18示出无线电装置架构的实施方式。
具体实施方式
网络连接的计算装置可以为他们的用户提供参与交互通信的不知情的能力。人们可以参与与他们的好友、家人、同事以及其他关联的消息收发交互。用户的消息与其联系人交换可各自被维持在不同的消息线程内。
这些网络连接的计算装置还可以向其用户提供对网络可访问服务的访问。例如,交通服务、餐饮服务、娱乐服务和其他服务可以使用网站、网络应用、客户端应用或其他网络可访问性技术来使人们能够使用他们的客户端装置与其服务进行参与。在一些情况下,例如一些娱乐或媒体服务,服务可被布置和经由客户端装置传递。例如,可经由客户端装置购买音乐并将其传递到客户端装置以供回放。在其他情况下,例如利用交通、餐饮和个人娱乐,可以经由客户端装置安排服务,但是在客户端装置外部执行服务。例如,乘车共享服务可以经由客户端装置布置,但是通过向用户提供乘车共享的车辆和驾驶员执行。
在一些情况下,网络可访问服务的使用可能涉及一个以上的人。具体地,在用户对服务的访问是他们也用于消息收发的客户端装置的情况下,用户可以受益于将他们对消息收发客户端中的网络可访问服务的参与与服务涉及的其他人共享。因而,消息线程可以充当用户与其联系人的在线社交关系的中枢,其中消息线程包含经由用于消息收发的相同客户端所请求、监视或参与的服务。
为了帮助用户经由消息收发上下文与服务交互,服务可被表示为消息收发系统内的消息收发机器人。消息收发机器人可以是网络可访问服务的完全或部分自动化的前端,该网络可访问服务可以表示为消息线程内的参与者。在一些情况下,消息收发机器人可以与显式地包括消息收发机器人的消息线程(诸如特定用户与消息收发机器人之间的一对一消息线程)对应。在其他情况下,消息收发机器人可以在消息收发机器人不是常规参与者的消息线程中与之对应,该消息收发机器人是消息线程中的临时参与者以用于与服务交互的目的。消息收发机器人可以被包括作为任何其他线程中的临时参与者,无论是两个用户之间的一对一线程还是多个用户之间的群组线程。
因而,用户可以参与消息收发客户端的熟悉体验内的网络服务。此外,通过使用消息收发客户端,用户可以参与消息收发上下文内的网络服务,以便允许包括其他人。在一些情况下,这可以仅仅向其他人通知服务,例如让好友或家人知道交通细节。在其他情况下,这可以为多个人授权服务的执行,诸如晚餐、乘车、娱乐或其他服务布置在何处以供多个人使用。因此,实施方式可以改进使用网络可访问服务的体验,并且可以将网络可访问服务扩展到消息收发系统的用户。
现在参考附图,其中相同的参考标号始终用于指代相同的元件。在以下描述中,为了说明的目的,阐述了许多具体的细节以提供对本发明的彻底的理解。然而,可以清楚的是,可以在没有这些具体细节的情况下实施这些新颖的实施方式。在其他实例中,以框图的形式示出了众所周知的结构和装置,以便于其描述。意图是涵盖所有的修改、等同物、以及与所要求保护的主题一致的替代物。
值得注意的是,如在本文中使用的“a”和“b”和“c”以及类似的指示符意指表示任何正整数的变量。因此,例如,如果实现方式设置a=5的值,则图示为组件122-1至122-a的一组完整的组件122可包括组件122-1、122-2、122-3、122-4和122-5。在该上下文中实施方式并不受限制。
图1示出了消息收发系统100的框图。在一个实施方式中,消息收发系统100可以包括具有包括一个或多个组件的软件应用的计算机实现的系统。尽管在图1中示出的消息收发系统100具有某个拓扑中的有限数量的元件,但是可以理解,消息收发系统100可以根据给定实现方式的需要在替代拓扑中包括更多或更少的元件。
消息收发服务器110可以包括由作为消息收发系统100的一部分的消息收发平台操作的一个或多个消息收发服务器。消息收发服务器可以包括互联网可访问服务器,其中网络120连接至少部分地包括互联网的消息收发系统100的各种装置。
用户可以拥有和操作智能电话装置150。智能电话装置150可以包括装置、装置、装置或符合智能电话形式的任何其他移动计算装置。智能电话装置150可以是能够使用蜂窝信号135经由蜂窝系统130连接到网络120的蜂窝装置。在一些实施方式中并且在一些情况下,智能电话装置150可以另外或替代地使用Wi-Fi或其他联网技术来连接到网络120。智能电话装置150可以执行消息收发客户端、网络浏览器或其他本地应用以访问消息收发服务器110。
同一用户可以拥有和操作平板装置160。平板装置160可以包括装置、平板装置、装置、或符合平板形式的任何其他移动计算装置。平板装置160可以是能够使用Wi-Fi信号145经由Wi-Fi接入点140连接到网络120的Wi-Fi装置。在一些实施方式中并且在一些情况下,平板装置160可以另外或替代地使用蜂窝或其他联网技术来连接到网络120。平板装置160可以执行消息收发客户端、网络浏览器或其他本地应用以访问消息收发服务器110。
同一用户可以拥有和操作个人计算机装置180。个人计算机装置180可以包括Mac装置、装置、装置或运行另一操作系统的其他计算机装置。个人计算机装置180可以是能够经由以太网连接而连接到网络120的以太网装置。在一些实施方式中并且在一些情况下,个人计算机装置180可以另外或替代地使用蜂窝、Wi-Fi、或其他联网技术到网络120。个人计算机装置180可以执行消息收发客户端、网络浏览器170或其他本地应用以访问消息收发服务器110。
消息收发客户端可以是专用消息收发客户端。专用消息收发客户端可以具体地与管理包括消息收发服务器110的消息收发平台的消息收发提供商相关联。专用消息收发客户端可以是操作为与多个不同的消息收发提供商一起工作的通用客户端,多个不同的消息收发提供商包括管理包括消息收发服务器110的消息收发平台的消息收发提供商。
消息收发客户端可以是提供附加功能的应用的组件。例如,社交网络服务可以提供在移动装置上使用以访问和使用社交网络服务的社交网络应用。社交网络服务可包括诸如可由消息收发服务器110提供的消息收发功能。将认识到,消息收发服务器110可以是用于社交网络服务的计算装置的一个组件,其中计算装置提供社交网络服务的附加功能。类似地,社交网络应用可以提供消息收发功能和附加的社交网络功能。
在一些情况下,消息收发端点可保留用户会话之间的状态,并且在一些情况下,消息收发端点可放弃用户会话之间的状态。消息收发端点可以使用本地存储来保留消息收件箱的当前状态。该本地存储可以保存在永久存储装置中,使得可以在一个会话和下一个会话之间检索状态,包括例如本地应用退出或以其他方式从存储器移除或装置断电和再次开启的情况。可替代地,消息收发端点可以使用存储器高速缓存来保持消息收件箱的当前状态,但是阻止将消息收件箱的状态提交到永久存储装置。
保持消息收件箱的状态的消息收发端点可包括集成到另一本地应用(诸如社交网络应用)中的专用消息收发应用或消息收发实用程序。放弃消息收件箱的状态的消息收发端点可以包括在网络浏览器内实现的消息收发访问。在一个实施方式中,诸如在个人计算机装置180上执行的网络浏览器170的网络浏览器可以执行与消息收发服务器交互以向用户呈现消息收发功能的HTML5代码。
用户可以从包括智能电话装置150、平板装置160和个人计算机装置180的多个装置发送和接收消息。用户可以使用智能电话装置150上的第一消息收发应用、平板装置160上的第二消息收发应用和个人计算机装置180上的网络浏览器170。第一和第二消息收发应用可以包括在两个装置上的相同应用的安装。第一和第二消息收发应用可以包括公共应用的智能电话专用和平板专用版本。第一和第二消息收发应用可以包括不同的应用。
用户可以受益于使其消息收件箱在其装置之间保持一致。用户可以在离开他们的家时在小区系统130上使用他们的智能电话装置150、经由小区系统130发送和接收消息。用户可以顺便访问咖啡店或提供Wi-Fi的其他位置,并且将其平板装置160连接到Wi-Fi接入点140。平板装置160可以检索消息收件箱的其现有已知状态,并且接收自从平板装置160最后一次访问网络以来已经发生的更新,包括在操作智能电话装置150时由智能电话装置150发送的并且可能已经由用户接收的任何消息。然后,用户可以返回家中并且使用个人计算机装置180上的网络浏览器170访问他们的消息收件箱。网络浏览器170可以从消息收发服务器110接收消息收件箱的当前状态的快照,因为其不维持或以其他方式不能够访问消息收件箱的现有状态。只要其维持与消息收发服务器110的用户会话,网络浏览器170然后可以检索对消息收件箱的状态的任何新改变的增量更新,在会话结束时(诸如当用户关闭网络浏览器170时)丢弃消息收件箱的已知状态。在没有限制的情况下,更新可以对应于将消息添加到邮箱、从邮箱删除消息以及读取接收。
消息收发系统100可以通过将消息收发收件箱定义为包括多个消息来操作,其中每个消息是两个或更多参与者之间的通信的单独交易。邮件服务器可以通过维持消息收发收件箱的消息索引来操作。邮件服务器可以接收消息并且将该消息存储在邮件档案中,通过引用消息索引可以从该邮件档案检索消息。邮件客户端可以连接到邮件服务器,并且从其最后的更新中检索已经被添加到其邮件档案的消息。邮件客户端可以从邮件档案接收指示哪些消息被存储在邮件档案中的邮件索引。邮件客户端可以将邮件档案与它们的当前收件箱进行比较,以便确定它们缺失了哪些消息,然后它们从邮件档案请求该消息。邮件客户端可以对其收件箱做出改变,这导致邮件收件箱指令被传送到邮件档案,从而指示邮件档案对其邮件收件箱在邮件档案上的表示做出修改。
由消息收发系统调解的消息收发交互可被组织成被称为消息线程的共享空间。消息线程可以收集在特定用户组之间共享的消息。在一对用户之间单独发送的消息可被收集到与该对用户之间的私人消息收发唯一地相关联的一对一消息线程中。在一组三个或更多个用户之间发送的消息可不通过其成员资格唯一地定义,而是通过在一些实施方式中唯一地识别群组线程的标识符来定义。在一些实施方式中,群组线程中的成员资格可随时间变化,添加和/或丢失成员。
消息收发系统100可以使用从用户之间的交互生成的知识。消息收发系统100可以包括社交网络系统的组件,并且可以使用从社交网络系统的更广泛的交互所生成的知识。因而,为了保护消息收发系统100的用户和更大的社交网络系统的隐私,消息收发系统100可以包括授权服务器(或其他合适的组件),该授权服务器允许用户例如通过设置适当的隐私设置来选择进入或选择退出使其动作由消息收发系统100记录或与其他系统(例如,第三方系统)共享。用户的隐私设置可以确定可以记录与用户相关的什么信息、可以如何记录与用户相关联的信息、何时可以记录与用户相关联的信息、谁可以记录与用户相关联的信息、与用户相关联的信息可以与谁共享、以及记录或共享与用户相关联的信息的目的是什么。授权服务器或其他授权组件可用于通过适当地阻挡数据散列、匿名化或其他合适的技术来实施消息收发系统100的用户和社交网络系统的其他元素的一个或多个隐私设置。
图2示出了社交图谱200的示例。在具体实施方式中,社交网络系统可以将一个或多个社交图谱200作为社交图谱数据结构存储在一个或多个数据存储中。
在具体实施方式中,社交图谱200可包括多个节点,该多个节点可包括多个用户节点202和多个概念节点204。社交图谱200可包括连接节点的多个边线206。在具体实施方式中,社交网络系统、客户端系统、第三方系统、或者任何其他系统或装置可以访问社交图谱200和用于合适应用的相关社交图谱信息。例如,社交图谱200的节点和边线可以在数据存储(诸如社交图谱数据库)中存储作为数据对象。该数据存储可包括社交图谱200中的节点或者边线的一个或多个可搜索或者可查询的索引。
在具体实施方式中,用户节点202可以对应于社交网络系统的用户。作为实例且非限制性方式,用户可以是与社交网络系统或在社交网络系统上交互或通信的个体(人类用户)、实体(例如,企业、商业或第三方应用)、或群组(例如,个体或实体的群组)。在具体实施方式中,当用户向社交网络系统注册账户时,社交网络系统可以创建对应于用户的用户节点202,并且将用户节点202存储在一个或多个数据存储中。在适当情况下,本文中描述的用户和用户节点202可以指注册用户和与注册用户相关联的用户节点202。另外或作为替代,在适当的情况下,本文中描述的用户和用户节点202可以指代尚未向社交网络系统注册的用户。在具体实施方式中,用户节点202可以与由用户提供的信息或者由包括社交网络系统的各种系统收集的信息相关联。作为实例且非限制性方式,用户可以提供他们的姓名、简档图片、联系信息、出生日期、性别、婚姻状态、家庭状态、职业、教育背景、偏好、兴趣或其他人口统计信息。在具体实施方式中,用户节点202可以与和用户相关联的信息对应的一个或多个数据对象相关联。在具体实施方式中,用户节点202可与一个或多个网页对应。用户节点202可以与社交网络系统中的用户的唯一用户标识符相关联。
在具体实施方式中,概念节点204可与概念对应。作为实例且非限制性方式,概念可对应于地点(诸如,例如电影院、餐馆、地标或城市);网站(例如,与社交网络服务相关联的网站或与网络应用服务器相关联的第三方网站);实体(诸如,例如人、商业、群组、体育团队或名人);资源(诸如,例如音频文件、视频文件、数字照片、文本文件、结构化文档或应用),其可位于社交网络系统内或外部服务器(诸如,网络应用服务器)上;不动产或知识产权(诸如,例如雕刻、绘画、电影、游戏、歌曲、构思、照片或书面作品);游戏;活动;构思或理论;另一个合适的概念;或者两个以上的此类概念。概念节点204可以与由用户提供的概念的信息或者由包括社交网络系统的各种系统收集的信息相关联。作为实例且非限制性方式,概念的信息可包括姓名或标题;一个或多个图像(例如,书籍封面页图像);位置(例如,地址或地理位置);网站(可以与URL相关联);联系信息(例如,电话号码或者电子邮件地址);其他合适的概念信息;或这种信息的任何合适的组合。在具体实施方式中,概念节点204可以与和概念节点204相关联的信息对应的一个或多个数据对象相关联。在具体实施方式中,概念节点204可与一个或多个网页对应。
在具体实施方式中,社交图谱200中的节点可代表或者表示为网页(可被称之为“简档页面”)。简档页面可以由社交网络系统托管或可由社交网络系统访问。简档页面也可以在与第三方服务器相关联的第三方网站上托管。作为实例且非限制性方式,对应于具体外部网页的简档页面可以是该具体的外部网页并且简档页面可对应于具体的概念节点204。其他用户的全部或者所选子集可以查看简档页面。作为实例且非限制性方式,用户节点202可具有对应的用户简档页面,其中,对应的用户可以添加内容、发布声明或者以其他方式表达他或她自己。诸如商业页面205的商业页面可以包括用于商业实体的用户简档页面。作为另一实例且非限制性方式,概念节点204可具有特别与对应于概念节点204的概念有关的其中一个或多个用户可添加内容、发布声明、或者表达自身的对应概念简档页面。
在具体实施方式中,概念节点204可以表示由第三方系统托管的第三方网页或者资源。除其他元素之外,第三方网页或者资源可包括内容、可选择的或者其他图标、或者表示动作或活动的其他相互作用对象(例如,以JavaScript、AJAX、或PHP代码可以实现)。作为实例且非限制性方式,第三方网页可包括诸如“喜欢”、“签到”、“吃”、“推荐”、或者另一合适的动作或活动的可选择图标。观看第三方网页的用户可以通过选择图标中的一个(例如,“吃”)来执行动作,使得客户端系统向社交网络系统发送指示用户的动作的消息。响应于该消息,社交网络系统可以在对应于用户的用户节点202与对应于第三方网页或资源的概念节点204之间创建边线(例如,“吃”边线),并且将边线206存储在一个或多个数据存储中。
在具体实施方式中,社交图谱200中的一对节点可以通过一条或多条边线206彼此连接。连接一对节点的边线206可以表示该对节点之间的关系。在具体实施方式中,边线206可包括或者表示一个或多个数据对象或者对应于一对节点之间的关系的属性。作为实例且非限制性方式,第一用户可指示第二用户成为第一用户的“好友”。响应于该指示,社交网络系统可以向第二用户发送“好友请求”。如果第二用户确认“好友请求”,则社交网络系统可以在社交图谱200中创建将第一用户的用户节点202连接至第二用户的用户节点202的边线206,并且将边线206作为社交图谱信息存储在一个或多个数据存储中。在图2的示例中,社交图谱200包括指示用户“Amanda”的用户节点202与用户“Dorothy”之间的好友关系的边线206。尽管本公开描述或示出了具有连接具体用户节点202的具体属性的具体边线206,但是本公开考虑具有连接用户节点202的任意合适属性的任意合适边线206。作为实例且非限制性方式,边线206可表示好友关系、家庭关系、商业或者雇佣关系、粉丝关系、跟随者关系、访问者关系、订户关系、上级/下级关系、互惠关系、非互惠关系、另一合适类型的关系、或者两种以上的此类关系。此外,尽管本公开总体上描述了连接的节点,但是本公开也描述连接的用户或概念。此处,在适当的时候,引用的连接的用户或者概念可指对应于社交图谱200中通过一条或多条边线206连接的那些用户或者概念的节点。
在具体实施方式中,用户节点202与概念节点204之间的边线206可以表示由与用户节点202相关联的用户向与概念节点204相关联的概念执行的具体动作或活动。作为实施方式但并不作为限制,如图2所示,用户可“喜欢”、“上过”、“播放了”、“收听了”、“烹饪了”、“曾工作”或者“观看了”概念,其中的每一个均对应于边线类型或者子类型。例如,对应于概念节点204的概念简档页面可以包括可选择的“签到”图标(诸如,例如可点击的“签到”图标)或可选择的“添加到收藏夹”图标。同样,在用户点击这些图标之后,社交网络系统20可响应对应于相应动作的用户的动作创建“最喜欢”边线或者“签到”边线。作为另一示例且非限制性方式,用户(用户“Carla”)可以使用具体的应用(SPTIFY,其是在线音乐应用)来收听具体的歌曲(“Across the Sea”)。在这种情况下,社交网络系统可以在对应于用户的用户节点202与对应于歌曲和应用的概念节点204之间创建“收听了”边线206和“使用了”边线(如图2中所示),以指示用户收听了歌曲并且使用了应用。此外,社交网络系统可以在对应于歌曲与应用的概念节点204之间创建“播放了”边线206(如图2所示),以指示具体应用播放了具体歌曲。在这种情况下,“播放了”边线206对应于由外部应用(SPTIFY)对外部音频文件(歌曲“Across the Sea”)执行的动作。尽管本公开描述了具有连接用户节点202与概念节点204的具体属性的具体边线206,然而,本公开考虑了具有连接用户节点202与与概念节点204的任意合适属性的任意合适边线206。而且,尽管本公开描述了用户节点202与概念节点204之间的表示单一关系的边线,然而本公开考虑了用户节点202与概念节点204之间的表示一个或多个关系的边线。作为实例且非限制性方式,边线206可代表用户既喜欢具体的概念并且又使用了该具体概念。可替换地,另一边线206可以表示用户节点202与概念节点204之间(如图2所示,在用户“Edwin”的用户节点202与针对“SPOTIFY”的概念节点204之间)的每一种类型的关系(或者多种单一关系)。
在具体实施方式中,社交网络系统20可在社交图谱200中在用户节点202与概念节点204之间创建边线206。作为实例且非限制性方式,查看概念简档页面的用户(例如,通过使用网络浏览器或由用户的客户端系统托管的专用应用)可以通过点击或选择“喜欢”图标来指示他或她喜欢由概念节点204表示的概念,这可以使用户的客户端系统向社交网络系统发送指示用户对与概念简档页面相关联的概念的喜欢的消息。响应于该消息,社交网络系统可以在与用户相关联的用户节点202和概念节点204之间创建边线206,如用户和概念节点204之间的“喜欢”边线206所示。在具体实施方式中,社交网络系统可以将边线206存储在一个或者多个数据存储中。在具体实施方式中,边线206可以由社交网络系统响应于具体用户动作而自动形成。作为实例且非限制性方式,如果第一用户上传图片、观看了电影或者收听了歌曲,则可在对应于第一用户的用户节点202与对应于这些概念的概念节点204之间形成边线206。尽管本公开描述了以具体的方式形成具体边线206,但是本公开考虑了以任何合适的方式形成任何合适的边线206。
社交图谱200可进一步包括多个产品节点。产品节点可以表示可以与特定商业相关联的特定产品。商业可以向客户到商业服务110提供产品目录,并且客户到商业服务110因此可以表示社交图谱200中的产品内的每个产品,其中每个产品处于不同的产品节点中。产品节点可以包括与产品有关的信息,诸如定价信息、描述性信息、制造商信息、可用性信息和其他相关信息。例如,餐馆菜单上的每个项目可在社交图谱200内表示,其中产品节点描述每个项目。产品节点可以由边线链接到提供产品的商业。在多个商业提供产品的情况下,每个商业可以具有与其提供产品相关联的不同的产品节点,或者可以各自链接到相同的产品节点。产品节点可以由边线链接到已经购买、评级、拥有、推荐或查看该产品的每个用户,其中该边线描述关系的性质(例如,购买、评级、拥有、推荐、查看或其他关系)。这些产品节点中的每一个可以借助于所链接的商家商业而与图形id和相关联的商家id相关联。因此,通过检索链接到社交图谱200内的商业的用户节点的可用产品节点,可将可从商业获得的产品传送到用户。产品节点的信息可由社交网络系统操纵为封装关于所引用产品的信息的产品对象。
因而,社交图谱200可用于推断社交网络系统的两个以上用户的共享兴趣、共享体验或其他共享或共同属性。例如,社交图谱200中所表示的各自具有到共同商业、产品、媒体项、机构或其他实体的边线的两个以上用户可指示与该实体的共享关系,该共享关系可用于建议针对一个或多个用户的社交网络系统(包括消息收发系统100)的使用的定制。
图3A示出了在客户端装置320上显示消息收发界面的用户界面300的实施方式。
用户界面300可以包括用于一对一消息线程的用户界面。可以在一对一消息线程交互显示310中显示消息线程的消息交换的至少一部分。一对一消息线程交互显示310可以包括对由一对一消息线程的用户交换的一个或多个消息的显示。
一个或多个消息中的每一个可由具体消息气泡(诸如消息气泡315)表示。消息气泡可表示原子消息收发交互。消息气泡通常可对应于限定的几何区域,其中具体消息收发交换(例如,文本、媒体)的内容被包含在限定的几何区域内。消息气泡可具有将其与消息线程交互显示的背景区分开来的不同颜色或多种颜色(例如,一个或多个梯度)。消息气泡可以具有明显着色的边界,诸如所描绘的黑色轮廓,或者可以具有由消息气泡的不同颜色与背景之间的界面定义的边界。在一些实施方式中,消息气泡和背景中的任一者或两者的一种或多种颜色可由显示配置系统100的用户定制和配置。
用于消息线程的用户界面300可包括线程控制317。线程控制317的一些部分可以在消息线程的显示期间永久地可见,诸如授权访问另外的的用户界面控制的控制栏。线程控制317中的一些(诸如控制栏中的控制)可以授权对用于执行各种任务(诸如文本输入、媒体选择、表情符号选择、相机使用等)的另外的用户界面控制的访问。然而,一些控制——并且在一些实施方式中,准确地是线程控制317中的一个——授权立即发送单个图标,诸如社交批准图标。线程控制317中的一个或多个可包括对应于具体消息收发机器人或服务的机器人调用或服务请求控制。线程控制317的一部分可包括用于文本输入的文本控制。线程控制317的一部分可以包括文本输入显示区域,该文本输入显示区域显示已被用户输入或以其他方式选择但是尚未作为消息发送给线程中的其他参与者的文本。在一些实施方式中,在文本输入显示区域中输入所输入或选择的文本可以与消息收发系统100的消息收发服务器110进行通信以用于分析、提供建议或其他操作。
用户界面300可以包括线程标题305,线程标题列出线程中所涉及的一个或多个其他用户。线程标题305可以自动使用用户的名称,诸如全名、短名或被注册为名称以用于与具体用户进行消息收发和/或社交网络交互的其他名称。
图3B示出了在客户端装置320上显示交通界面的用户界面325的实施方式。交通界面可以包括消息收发客户端的元素。
可以在诸如通过选择交通控制来请求交通时调用交通界面。通常,当调用服务特定控制时,可以调用服务特定接口。在一些情况下,服务特定接口可特定于服务类或类型,例如,本地交通(例如,乘车共享)。在其他情况下,服务特定接口可以特定于具体服务提供商,诸如特定的交通提供商。
交通界面可以包括交通信息显示335,诸如客户端装置320的本地区域的地图,以及通过代理的客户端装置320的用户。交通信息显示335可包括客户端装置320的当前位置,诸如可表示在局部区域的地图上。
交通界面可以包括交通控制340。交通控制可以授权起始位置和目的地位置的指定。在正在请求交通服务的情况下,诸如在乘车共享服务中,起始位置可以包括服务的用户将被搭载的位置。目的地位置可以包括服务的用户将被递送到的位置。在图3B的所示实施方式中,在目的地位置还未指定时已指定了起始位置。起始位置与所请求服务的所估计的搭载时间相关联。如果选择了控制读取“ADD DESTINATION”,则可以指定目的地位置。如果选择由当前起始目的地表示的控制,则可修改起始位置。在一些实施方式中,可以例如通过在所显示的地图上选择起始位置和/或目的地位置来指定起始位置和/或目的地位置。在一些实施方式中,所显示的地图可被放大、缩小、滚动或以其他方式操纵。
图3C示出显示目的地配置界面的用户界面350的实施方式。
交通配置控制355可包括多个建议的位置的显示。可基于多种技术来确定建议的位置。在一些实施方式中,可以基于从中调用交通配置控制355的消息线程的内容来确定建议的位置。例如,可以建议与消息线程的上下文相关的位置。在所示出的实施方式中,可以响应于消息线程引用去看电影而已经建议了电影院。
在一些实施方式中,可以基于其接近度建议位置,其中更接近的位置相对于更远的位置被提升。在一些实施方式中,可以基于消息线程中所涉及的一个或多个用户的历史、以及具体地客户端装置320的用户来建议位置。例如,可以建议最近访问、频繁访问、在类似于当前时机(例如,一天中的时间、一周中的一天)的先前时机最近或频繁访问的位置、或以其他方式与用户的历史相关的位置。在一些实施方式中,可以建议与参与消息线程的一个或多个用户相关的位置,诸如一个或多个用户的地址。在一些实施方式中,可以建议与一个或多个其他用户相关的位置。例如,在消息线程中提及另一用户的情况下,可以建议该用户的地址,如果使得该地址对客户端装置320的用户可用的话。
交通配置控制355可以包括文本输入控制。可以使用文本输入控制至少部分地基于输入的文本来确定建议的位置。
图3D示出显示所配置的交通请求的用户界面360的实施方式。
配置的交通请求可以包括指定的起始位置和目的地位置两者。可以在更新的交通控制370中显示起始位置和目的地位置的文本版本。更新的交通控制370可通过选择当前配置的起始位置或目的地位置来授权对起始位置和/或目的地位置的修改。可以在更新的交通信息365中显示起始位置和目的地位置的图形表示以及建议路径。在一些实施方式中,配置的交通请求可以与针对配置的行程的估计行进时间相关联地显示。
图3E示出了在消息线程中显示交通请求的用户界面375的实施方式。
然后可以在消息线程中显示从消息线程向服务提交的配置的交通请求。服务请求的实施方式可以被生成并且被添加到消息线程的消息序列中并且被传送到参与消息线程的所有用户。参与消息线程的用户中的每一个可以在其消息线程的视图中被提供线程内机器人请求显示385。对于交通请求,线程内机器人请求显示385可以包括起始位置的文本显示、目的地位置的文本显示、起始位置的视觉表示、目的地位置的视觉表示、和/或建议路线的表示。通常,请求显示可包括所请求服务的文本描述符。
图4A示出了在消息线程中显示机器人消息的用户界面400的实施方式。机器人消息可以是由自动化例程生成的自动生成的消息,而不需要直接的人类干预。
在一些情况下,机器人可以生成消息并将该消息提供给消息线程。该消息可以涉及从消息线程内请求机器人的服务。对已经在线程内做出的对机器人的请求可以授权机器人向消息线程传送消息,否则可以防止该机器人这么做。在这种情况下,线程内机器人消息405包括对机器人所请求的服务的确认。在一些实施方式中,线程内机器人消息405可以包括消息内机器人控制410——并且可以包括多个消息内机器人控制。消息内机器人控制410可以授权用户修改、取消或以其他方式与消息内机器人消息405所涉及的请求交互。在这种情况下,消息内机器人控制410授权取消所请求的交通服务。
图4B示出了在消息线程中显示用于服务更新的机器人消息的用户界面425的实施方式。
在所示出的实施方式中,第二线程内机器人消息430已经被机器人添加到消息线程。第二线程内机器人消息430涉及关于机器人请求的服务的更新,在这种情况下,更新传送提供机器人所请求的服务的特定个体、与服务的性能有关的其他信息、以及与服务的性能有关的估计时间。第二线程内机器人消息430进一步包括消息内机器人控制435,该消息内机器人控制435授权附加的功能,诸如联系提供服务的特定个体和检索提供服务的个体到达的更新的估计时间。
图4C示出显示来自服务提供商的线程内实时聊天消息455的用户界面450的实施方式。
在一些实施方式中,用于服务的线程内消息可以是由消息收发机器人自动生成的机器人消息。然而,在其他实施方式中,用于服务的线程内消息可以是线程内实时聊天消息455。线程内实时聊天消息455可以包括由人类操作员响应于在消息线程中请求的服务而编写和提交的消息。与机器人消息相反,线程内实时聊天消息455可以响应于在消息线程中做出的服务或其他请求的情况而被单独地生成或单独地选择并提交给消息收发系统100,而不是被编程以使用或被程序化地生成。
尽管服务通常不是消息线程中的参与者、通常不知晓消息线程的内容、并且通常不被授权将消息添加到消息线程,但是线程内实时聊天消息455可以被插入到消息线程中。基于已经被用于向服务做出请求、查询或以其他方式联系服务的消息线程,可由消息收发系统100授权服务以向消息线程提交线程内实时聊天消息455。然而,可以防止服务提供商接收和查看未指向服务提供商的任何消息,并且可以仅向服务提供商提供专门指向服务提供商的任何消息,诸如在开始时使用服务别名或消息收发机器人别名的消息、或者以其他方式寻址到服务提供商或响应来自服务提供商的消息的消息。
线程内实时聊天消息455可以由提供特定服务的运营商提供。在所示出的实施方式中,用于乘车共享服务的驾驶员已经将线程内实时聊天消息455传送到消息收发系统100,并且已将线程内实时聊天消息455分发给消息线程中的参与者。在这些情况下,线程内实时聊天消息455可以与账户名称、用户化身或用于提供特定服务的运营商的其他个人识别信息相关联,并且运营商可以被单独授权临时访问消息线程或其一部分。例如,运营商可被单独地授权临时访问寻址到运营商或寻址到与运营商相关联的服务的消息线程的部分。可以通过在评论前添加地址符号(如“@”符号)和服务的名称来对运营商或服务寻址。
可替代地,线程内实时聊天消息455可以由针对服务的服务提供商(诸如服务提供商的代表)提供。例如,表示乘车共享服务的顾客服务可将线程内实时聊天消息455传送到消息收发系统100,以用于分发给消息线程中的参与者。在这些情况下,线程内实时聊天消息455可以被关联以与账户名称、用户化身或用于服务代表的其他个人识别信息进行显示,并且该代表可以单独地被授权临时访问消息线程。可替代地,线程内实时聊天消息455可以被关联以与账户名称、用户化身或用于整个服务的其他识别信息进行显示。用于服务的计算机系统可被授权暂时访问消息线程或其一部分,其中服务提供对计算机系统的访问以根据其自身的过程与消息线程通信到其代表。例如,运营商可被单独地授权临时访问寻址到运营商或寻址到与运营商相关联的服务的消息线程的部分。
图5A示出了在消息线程中显示触发的用户界面500的实施方式。
触发通常可对应于消息收发系统100与潜在动作相关联的消息线程的字、短语或其他元素。机器人触发可以总体上对应于消息收发系统100与对机器人的潜在请求相关联的触发。在所示实施方式中,文本片段“movie”可以包括第一机器人触发505并且文本片段“Southpointe”可以包括第二机器人触发510。第一机器人触发505可以指示对与电影有关的机器人请求的兴趣。第二机器人触发510可以指示对与位置“Southpointe”相关的机器人请求的兴趣,该位置可独立地或与电影的现有线程上下文相关联地被识别为与被称为“Southpointe”的具体电影院相关联。选择触发的用户可以调用与该触发有关的建议服务,诸如建议的机器人。可以基于字和/或短语与服务之间的预定和预先指派的关联来确定触发,或者可以基于自然语言编程技术来自动确定触发。
图5B示出响应于触发而显示建议的服务的用户界面525的实施方式。
用户可以在消息收发线程接口中选择触发。作为响应,消息收发客户端可在多个已触发的控制530中检索并显示多个建议服务,诸如可对应于建议机器人。在一些实施方式中,可以响应于检测到触发的消息收发客户端和/或消息收发系统100来自动显示多个建议服务。触发的控制530可以包括多个消息收发机器人选项。消息收发机器人选项535可包括与具体服务相关联的具体机器人。在一些实施方式中,消息收发机器人选项可与服务性能信息540相关联。服务性能信息可以包括例如估计的性能信息,诸如估计的到达时间和估计的成本或价格信息。消息收发机器人选项可包括服务评级信息545,服务评级信息545包括对服务的质量的评估,诸如可从用户反馈导出。可以选择消息收发机器人选项以调用与相关联的消息收发机器人的交互。消息收发机器人选项可以与从中调用它们的消息收发线程相关联地显示。
触发的控制530可以包括对服务和消息收发机器人的建议。触发的控制530可以包括建议的消息收发机器人的排名列表。可以基于各种技术和基于各种因素来确定建议的消息收发机器人。可以基于线程中的用户的位置来选择和排名所建议的消息收发机器人。例如,地理上接近或地理上更接近一个或多个用户的位置的消息收发机器人可以被选择或排名更高。与先前已经与用户的当前地理位置相关联的活动相关的消息收发机器人可以类似地被选择或排名更高,诸如当一对夫妇在其就业地点彼此收发消息时,建议与餐馆相关的消息收发机器人。
可以基于一个或多个检测到的关键字或意图与消息收发机器人之间的关联来选择和排名建议的消息收发机器人。关键字可以对应于从消息收发交互的内容中提取的字或短语。消息收发系统100可以具有相关关键字的注册表并且可以检查消息收发交互的内容以将这些关键字识别和提取为用于选择和排名消息收发机器人的基础。例如,“乘车”或“运输”的提及可以提示运输相关服务的建议或运输相关服务的更高排名。意图可以包括基于消息收发交互的上下文生成的未在消息收发交互内明确地使用的关键字、概念、短语或其他标识符。消息收发系统100可以具有意图的注册表并且可以对消息收发交互的内容执行自然语言处理以确定由消息收发交互推断的意图。例如,多个特定电影的提及可以暗示意图关键字“电影”,而没有特定使用词语“电影”。在另一个示例中,关于他们是否“想要去看某物”的人对人询问可以暗示对电影的兴趣,而不直接使用词语“电影”。
关键字和/或意图可以从体现在消息线程中的消息收发交互的内容或内容的一部分中提取。在一些情况下,可以使用消息线程的最近部分,诸如通过检测与消息线程的当前参与时间段并且从消息线程提取当前时间段的关键字和/或意图。可以根据各种技术来定义消息线程的最近部分。在一些情况下,最近部分可以根据预定义的时间长度来定义,其中最近部分是在跨越等于预定义的时间长度并且在当前时间结束的长度的时间范围期间交换的线程的片段。在一些情况下,最近部分可被确定为跨越可变长度,诸如通过检测可能被预定义的具有足够长度的会话中的最近断开,以指示与消息线程的临时脱离。例如,消息线程的最近部分可以是在当前时间结束的线程的最大范围,该最大范围不包括会话中的任何长于一小时的间隙。可以使用用于定义线程的最近部分的其他技术。消息线程的该最近部分可被分析以确定一个或多个关键字,该一个或多个关键字可包括显式地在消息线程内使用的一个或多个显式关键字,并且该一个或多个关键字可包括基于自然语言处理技术从消息线程推断的一个或多个意图关键字。
关键字,无论是显式地提取还是从意图中导出,都可以用于确定消息线程中的用户可能感兴趣的一个或多个服务。触发的控制530可以包括选择与一个或多个服务的一个或多个提供商相对应的消息收发机器人。例如,可以提取或推断与“电影”和“运输”相关的关键字。可选择与电影有关的多个提供商,例如售票服务和电影院运营商。可以选择与运输相关的多个提供商,例如多个乘车共享服务。针对多个服务中的每一个的多个提供商可以被连接到一起成为多个组合的提供商,该多个组合的提供商表示被检测为可能的互联网的到消息线程中的用户的多个服务。然后,可以根据各种因素对该多个组合提供商及其相关联的消息收发机器人进行排名,包括对由提供商提供的服务的位置、检测到的兴趣等级、对特定提供商的检测到的兴趣等级、针对一个或多个用户全局地或者具体地在消息线程内请求各种服务的先前历史、针对一个或多个用户全局地或具体地在消息线程内使用各种提供商的先前历史,或者根据任何其他相关因素。
在一些实施方式中,在要提供多个服务的情况下,可以构建相应的提供商的排名,以便向陈列要提供的各种服务。例如,针对任一项服务,每个服务的排名最高的提供商可以在第二提供商之前被选择并提供作为排名最高的提供商(并且因此作为排名最高的相关联的消息收发机器人)。针对每个服务的排名最高的提供商通常可以根据对服务的所预测的兴趣和/或具体地基于对提供商的所预测的兴趣来排名,如可以根据本文中描述的各种因素来确定。
图6示出显示链接账户的提示的用户界面600的实施方式。
在用户已经具有特定服务的账户的情况下,并且特别是在消息收发客户端意识到用户具有特定服务的账户的情况下,可以邀请用户将其消息收发账户与具有针对服务的用户账户的消息收发系统100链接。消息收发客户端可以基于例如针对安装在客户端装置320上的服务的应用、识别对于消息收发客户端和服务两者已知的用户的信息(例如,电话号码、电子邮件地址)、或使用任何已知的技术来检测用户已经具有服务的账户。
可以向已经具有与所选择的机器人相对应的服务的账户的用户呈现现有用户对话605。现有用户对话605可以包括取消或制止链接账户的控制。现有用户对话605可以包括继续链接账户的控制。
链接账户可包括消息收发系统100与针对服务的系统之间的信息交换。链接账户可包括用户的识别信息的交换,诸如姓名、人口统计信息、地址、电话号码、电子邮件地址或其他信息。链接账户可包括财务信息的交换。通常,作为链接账户的结果,可以交换与用户有关的任何信息。链接账户可授权消息收发系统100代表用户请求具有链接服务的服务。链接账户可以授权链接服务经由消息收发系统100向用户传送消息。
图7A示出显示新用户对话705的用户界面700的实施方式。
当消息收发客户端缺乏用户具有带有服务的现有账户的知识时,可由消息收发客户端显示新用户对话705。在消息收发客户端缺乏用户具有带有服务的现有账户的知识的情况下,当机器人被选择时,可以调用新用户对话705。新用户对话705可以包括现有账户控制,该现有账户控制授权用户指示他们已经具有服务的账户并且提供服务账户的信息以链接账户。新用户对话705可以包括授权用户利用服务配置账户的账户创建控制。
图7B示出显示针对账户创建对话730的账户细节请求的用户界面725的实施方式。
账户创建对话730可以授权用户针对所选择的机器人创建服务的账户。在消息收发系统100已知的情况下,账户所需细节的至少一部分可以由消息收发系统100指定。在示出的实施方式中,可以共享电子邮件地址和公共简档(即,对于社交网络系统)以授权服务所需的细节。
然而,消息收发系统100对于一些细节可能是未知的,并且账户创建对话730因此可请求用户指定未知细节。需要的信息控制735授权用户指定消息收发系统100未知的所需信息。在所示实施方式中,消息收发系统100请求用户的电话号码和信用卡信息,以提供给服务。消息收发系统100可以保留该信息以扩展用户的用户账户信息,并且之后可以再使用该信息。
在服务所需的信息仍对消息收发系统100未知的情况下,消息收发客户端可呈现禁用账户创建控制740。禁用账户创建控制740可以是不活动的,使得用户可以不使用它来完成账户创建。一旦输入了所需信息,则禁用账户创建控制740可被启用。
图7C示出显示完成的账户创建对话的用户界面750的实施方式。
完成的账户创建对话可以对应于一旦向消息收发系统100注册了用户的所有所需信息就示出的对话。在选择了需要消息收发系统100已知的全部信息的机器人的情况下,可以立即显示完整账户创建对话而无需中间的不完整账户创建对话。现在服务所需的所有信息都已注册到消息收发系统100,账户创建对话730现在包括启用账户创建控制755。启用账户创建控制755可以授权用户发起服务的账户的创建。消息收发系统100可以向服务提供所需的信息,从而执行账户创建。
在一些实施方式中,可以仅以符号化形式向服务提供财务信息。被令牌化的财务信息形式(诸如信用卡信息)可能足以授权服务执行交易,而无需服务访问财务信息的细节。例如,用户的信用卡号可以对服务隐藏并且仅利用消息收发系统100保持。在一些实施方式中,消息收发系统100可代表用户使用用户的财务信息执行金融交易,并且然后将所需的资金提供给服务。在任一实施方式中,可以通过抑制将用户的财务信息传送到服务来保护用户的财务信息。
图8A示出了显示具有所建议的机器人805的部分机器人地址810的用户界面800的实施方式。
用户可以使用文本控制在消息收发界面的文本输入字段中输入文本。可分析由用户输入的文本以确定其是否可对应于机器人调用。在一些实施方式中,可以使用特定符号(诸如“@”符号)来指示机器人调用。消息收发客户端和/或消息收发系统100可以检测机器人调用符号并且作为回报建议机器人。在已经指定了超出机器人调用符号的附加文本的情况下,消息收发系统100可以生成具有以指定文本开始的机器人别名的具体建议的机器人805。机器人别名可以对应于机器人的注册名称,该名称被注册到消息收发系统100。
可以基于各种技术来确定所建议的机器人805。在一些实施方式中,可以基于其中输入部分机器人地址810的消息线程的内容来确定所建议的机器人805。例如,可以建议与消息线程的上下文相关的机器人。在示出的实施方式中,可以响应于消息线程提及去看电影而已建议用于电影服务的机器人。在一些实施方式中,可以基于消息线程中所涉及的一个或多个用户,并且具体地客户端装置320的用户的历史来建议机器人。例如,可以建议最近使用、频繁使用、在类似于当前时机(例如,一天中的时间、一周中的一天)的先前时机中最近或频繁使用、或以其他方式与用户的历史相关的机器人。各种技术中的任何技术可用于对建议机器人805的选择,诸如参见图5B描述的任何技术。选择所建议的机器人可以利用所选择的机器人的完整别名自动完成文本输入字段。
图8B示出显示基于完整机器人地址835而检索的建议命令830的用户界面825的实施方式。
完整机器人地址835可包括文本片段,其以机器人调用符号开始,且接着是对应于机器人别名的文本片段。可通过使用机器人别名内不允许的特定字符(诸如空格)来确定机器人地址的完成。响应于在文本输入字段中输入完整的机器人地址835,建议的命令830可由消息收发客户端检索并提供给用户。
建议的机器人命令830可由对应于机器人的服务来确定。建议的机器人命令830可包括可用于向机器人发出的命令。建议的机器人命令830可基于各种技术来确定。在一些实施方式中,建议的机器人命令830可以基于消息线程的内容来确定,在该消息线程中输入了完整的机器人地址835。例如,可以建议与消息线程的上下文相关的机器人命令。在示出的实施方式中,可以响应于消息线程提及去看电影而建议用于电影服务的机器人。然而,在其他实施方式中,可以防止机器人服务接收未专门为机器人标记的任何消息内容,以避免违反消息线程的隐私。在一些实施方式中,可以向机器人服务提供关键字,而不提供消息线程的完整历史。
在一些实施方式中,可以基于消息线程中所涉及的一个或多个用户,并且具体地客户端装置320的用户的历史来建议机器人命令。例如,可以建议最近使用、频繁使用、在类似于当前时机(例如,一天中的时间、一周中的一天)的先前时机中最近或频繁使用、或以其他方式与用户的历史相关的机器人命令。在一些实施方式中,可向机器人服务提供输入完整机器人地址835的用户的用户识别符,以使机器人服务能够基于其已知的用户历史来动作。在一些实施方式中,机器人服务可负责生成建议的机器人命令830并将其提供给消息收发系统100,以经由消息收发客户端提供给用户。选择建议的机器人命令可以利用完整的机器人命令自动完成文本输入字段。
图8C示出显示基于部分机器人命令860检索的更新的建议命令855的用户界面850的实施方式。
文本输入字段可以包含机器人调用符号,接着是完整的机器人别名和部分机器人命令860。消息收发系统100可将部分机器人命令860与用于由完整机器人别名指定的机器人服务的机器人命令进行匹配,以提供对应于部分机器人命令860的经更新的建议命令855,例如以部分机器人命令860的字符开始的命令。在一些实施方式中,部分机器人命令860可以被提供给与完整机器人别名相关联的机器人服务,其中经更新的建议命令855作为响应而被提供,并且此后经由消息收发客户端被提供给用户。在这些实施方式中,消息收发系统100可以将在消息收发客户端上生成的每个文本片段(即,通过字符的迭代添加生成的每个文本片段)提供给适当的机器人服务并且作为响应接收建议的命令并且将建议的命令提供给用户。
图8D示出显示线程内机器人响应885的用户界面875的实施方式。
经由用于消息线程的文本输入字段输入的线程内机器人命令880可作为消息线程内的消息被分布给消息线程中的所有参与者,并且由此被分布到由消息线程中的所有参与者使用的所有装置。线程内机器人命令880可进一步被提供给机器人服务。
机器人服务可利用线程内机器人响应885回复线程内机器人命令880。线程内机器人响应885可被插入到消息线程中,尽管机器人服务通常不是消息线程中的参与者、通常不知晓消息线程的内容、并且通常不被授权将消息添加到消息线程。线程内机器人响应885可包括响应于线程内机器人命令880而由机器人服务生成的响应。在这种情况下,线程内机器人响应885包括线程内机器人控制890,以授权用户采取与线程内机器人响应885相关的动作。用户还可以被授权使用经由文本输入字段输入并作为消息线程的元素被输出的附加机器人命令来答复线程内机器人响应885。
图9示出了通过消息收发系统100传送的消息910的实施方式。
消息收发系统100可以包括多个组件。在一些实施方式中,这些多个组件可以分布在多个服务器中。在其他实施方式中,单个服务器可以实现多个组件。在一些实施方式中,多个服务器可以由单个服务器装置执行。在其他实施方式中,多个服务器可以由多个服务器装置执行。在一些实施方式中,可以执行各种组件和各种服务器的多个实例以提供冗余、改进的缩放和其他益处。类似地,作为消息收发客户端的一部分,客户端装置可以执行多个组件。
客户端装置可使用无线传输与其他装置通信以交换网络流量。交换网络流量(例如,可包括在交换消息收发交易中),可包括经由网络接口控制器(NIC)传送和接收网络流量。NIC包括将计算机装置(诸如客户端装置)连接到计算机网络的硬件组件。NIC可与授权软件应用访问和使用NIC的软件网络接口相关联。可以通过计算机网络接收网络流量,作为通过数据链路传送的信号。可通过捕捉这些信号并解释这些信号来接收网络流量。NIC可通过计算机网络接收网络流量,并使用网络接口应用编程接口(API)将网络流量传送到软件应用可访问的存储器。网络接口控制器可以用于本文中描述的实施方式的网络活动,包括消息收发客户端和消息收发服务器110通过网络通信的互操作。例如,向客户端前端服务器935传送消息或从客户端前端服务器935接收消息的消息收发客户端可被解释为使用网络接口控制器来进行到通信网络的网络接入,以用于信息的传送或接收。
消息收发客户端可以包括用户界面组件923。用户界面组件923可以通常被布置为向客户端装置的用户显示用户界面并且接收针对客户端装置的消息收发客户端的用户命令。用户界面组件923可以在客户端装置上的消息线程显示中接收消息收发机器人调用,并且响应于消息收发机器人调用而结合消息线程显示调用客户端装置上的消息收发机器人交互用户界面。用户界面组件923然后可以经由消息收发机器人交互用户界面接收消息收发机器人交互命令。
消息收发客户端可包括客户端消息收发组件926。客户端消息收发组件926可通常被布置来经由与客户端前端服务器935的通信代表消息收发客户端进行消息收发交互。客户端消息收发组件926可以操作以将消息收发机器人交互命令从客户端装置传送到消息收发系统。消息收发机器人交互命令可以是消息910的至少一部分,诸如作为消息910传送的文本片段的至少一部分。在一些情况下,包括消息910的消息主体的文本片段可对应于消息收发机器人交互命令。
客户端前端服务器935通常可布置以充当客户端装置(例如发送方客户端装置920)的消息收发系统100的网络接入点。客户端前端服务器935可包括消息收发组件930,消息收发组件930通常布置以充当消息收发系统100的消息收发服务的网络接入点。消息收发组件930可以从发送方客户端装置920接收消息910并且将消息910添加到消息队列980。
消息队列980可特别地与发送方客户端装置920的用户相关联,诸如通过利用发送方客户端装置920的用户的用户账户在消息收发系统100内唯一地相关联。消息队列980可以是用于此用户使用的所有消息收发端点的单个队列。消息队列980可包括严格线性顺序的更新的表示。消息队列980可根据多种技术被组织为数据单元。消息队列980可存储在半永久性存储器、永久性存储装置、半永久性存储器和永久性存储装置两者、或两者的组合中。消息队列980可根据各种数据结构来组织,包括链接列表、阵列和用于组织队列的其他技术。消息队列980可通常包括先入先出(FIFO)队列,其中在该队列之前接收到的任何更新之前,将不从该队列移除更新。
消息收发系统100可以包括工作者服务器945。一般而言,消息收发系统100可以包括可以被指派给各种任务的多个工作者服务器。工作者服务器945可包括消息队列监视组件940,该消息队列监视组件940经布置以针对各种标志、指示符和其他信息监视消息队列980中的更新(例如可包括消息)和消息收发系统100的其他消息队列。
消息队列监视组件940可操作以监视消息队列980。消息队列监视组件940可检查消息队列980内的每个条目并检测消息910指示消息收发机器人调用。响应于检测到消息910指示消息收发机器人调用,消息队列监视组件940可将消息910提交到机器人框架组件950。在一些实施方式中,向机器人框架组件950提交消息910可以包括向机器人框架组件950传送消息910。在其他实施方式中,例如通过向机器人框架组件950传送消息910的标识符,向机器人框架组件950提交消息910可以包括向机器人框架组件950传送检测到消息910具有消息收发机器人调用的通知。
消息收发系统100可以包括机器人前端服务器955。机器人前端服务器955可以充当消息收发系统100的消息收发机器人服务的接入点。机器人前端服务器955可以充当消息收发系统100的服务器与一个或多个内部和/或外部机器人执行服务器之间的中介。机器人前端服务器955可包括机器人框架组件950,该机器人框架组件950通常被布置为向消息收发机器人系统提供可访问的框架。
机器人框架组件950操作以从消息队列监视组件940接收消息910、或者从消息队列监视组件940接收消息910的通知,并且从消息队列980检索消息910,确定与消息910相关联的消息收发机器人,并且将消息提交给消息收发机器人。
消息收发机器人调用可包括机器人调用文本片段。消息910可以包括文本内容部分,该文本内容部分记录机器人调用文本片段。用户界面组件923可以接收消息线程显示的文本输入部分中的机器人调用文本片段。客户端消息收发组件926可将机器人调用文本片段传送到消息收发服务器110。
可以基于以机器人调用符号(诸如“@”地址符号)开始的文本片段来识别机器人调用文本片段。消息队列监视组件940可检测消息910的文本内容部分中的机器人调用符号,且基于检测到机器人调用符号而检测到消息910指示消息收发机器人调用。消息队列监视组件940可针对以机器人调用符号开始的那些消息操作以检查消息队列980中的每个消息。
在一些实施方式中,发送方客户端装置920可通过用机器人调用标志标记消息910的元数据部分来标记包括机器人的信息的消息。消息队列监视组件940可检测消息910的元数据部分中的机器人调用标志,且基于检测到机器人调用标志而检测到消息910指示消息收发机器人调用。
在一些情况下,消息收发机器人可以由消息收发系统100外部的服务器(诸如由与机器人相关联的服务操作的外部机器人服务器975)执行。机器人框架组件950可以确定用于与消息收发机器人相关联的服务的外部机器人服务器975。消息收发系统100可以维持基于机器人别名索引的机器人别名注册表。机器人框架组件950可从消息910查找由机器人别名识别的消息收发机器人,并且检索与机器人别名相关联的外部机器人服务器975的机器人信息。机器人信息可以指示(但不限于)用于联系外部机器人服务器975的寻址信息。机器人框架组件950可通过将消息910传送到与消息收发机器人相关联的外部机器人服务器975来将消息910提交到消息收发机器人。在一些实施方式中,提交消息910可包括提取消息内容并且使用机器人服务器交互应用编程接口(API)将消息内容传送到外部机器人服务器975。
在其他情况下,消息收发机器人可以由消息收发系统100的服务器执行。机器人框架组件950可确定用于与消息收发机器人相关联的服务的托管机器人服务器965。机器人框架组件950可从消息910查找由机器人别名识别的消息收发机器人,并检索用于与机器人别名相关联的托管机器人服务器965的机器人信息。托管机器人服务器965可包括由消息收发系统100的提供商维护的机器人服务器。机器人框架组件950可通过将消息910传送到与消息收发机器人相关联的托管机器人服务器965来将消息910提交给消息收发机器人。
消息收发系统100可以帮助用户找到机器人和寻址机器人。消息收发系统100可以生成客户端装置的用户的建议消息收发机器人。这些建议可以响应于消息收发机器人的预测调用(诸如通过在消息收发客户端的文本输入字段中输入机器人调用符号)而生成。可以在用户执行搜索的上下文、消息线程中的一个或多个其他用户的上下文、消息线程的上下文、和/或其他上下文信息上选择这些建议。当用户在文本输入字段中输入附加文本时,可以通过选择那些以用户在文本输入字段中输入的文本开始的机器人别名来细化这些建议。
用户界面组件923可以在消息收发客户端的文本输入字段中接收别名初始部分。用户界面组件923可基于在其之前的机器人调用符号而将输入到文本输入字段中的文本识别为别名初始部分。然而,通常,用户界面组件923可以将在文本输入字段中输入的任何文本传送到消息收发系统100。用户界面组件923可将别名初始部分传送到机器人框架组件950。在一些实施方式中,别名初始部分可以被直接传送到机器人前端服务器955。在其他实施方式中,别名初始部分可经由客户端前端服务器935传送。
机器人框架组件950可接收机器人别名文本片段的别名初始部分。机器人框架组件950可将别名初始部分与机器人别名注册表进行匹配以确定一个或多个预测的机器人别名文本片段,并将一个或多个预测的机器人别名文本片段传送到发送者客户端装置920。发送方客户端装置920可将一个或多个预测的机器人别名文本片段显示给发送方客户端装置920的用户,以使一个或多个预测的机器人别名文本片段可用于用户选择或使用。在用户使用由一个或多个预测的机器人别名文本片段传送的预测的机器人别名之一的情况下,通过在界面中选择或将机器人别名键入到文本输入字段中,消息910因此可以包括消息910的文本部分中的一个或多个预测的机器人别名文本片段中的机器人别名文本片段。
消息收发系统100可以帮助用户确定机器人命令。消息收发系统100可以为客户端装置的用户生成建议的消息收发机器人命令。这些建议可以响应于对消息收发机器人的预测调用(诸如通过在消息收发客户端的文本输入字段中输入机器人调用符号,之后输入所识别的机器人别名)而生成。可以在用户执行搜索的上下文、消息线程中的一个或多个其他用户的上下文、消息线程的上下文、和/或其他上下文信息上选择这些建议。机器人命令的建议可以由执行机器人的服务来执行,并且因而建议可以由服务提供商在消息收发系统100外部生成。
当用户在文本输入字段中输入附加的文本时,通过选择那些以在文本输入字段中由用户输入的文本开始的机器人命令,这些建议可以被细化。用户界面组件923可以经由消息线程显示的文本输入部分接收命令文本片段初始部分、将命令文本片段初始部分传送到机器人框架组件950、以及响应于将命令文本片段初始部分传送到机器人框架组件950通过从机器人框架组件950接收一个或多个预测的机器人命令文本片段来确定一个或多个预测的机器人命令文本片段。
用户界面组件923可接收消息线程显示的文本输入部分中的机器人调用文本片段。接收该机器人调用文本片段可对应于接收消息收发机器人调用。用户界面组件923可将机器人调用文本片段传送到机器人框架组件950以确定一个或多个预测的机器人命令文本片段。如同针对机器人别名的建议,在一些实施方式中,可以经由客户端前端服务器935将机器人调用文本片段传送到机器人框架组件950。
机器人框架组件950可接收机器人调用文本片段,并提取机器人命令文本片段的命令初始部分。提取命令初始部分可包括从机器人调用文本片段排除机器人调用符号和机器人别名。可替代地,在一些实施方式中,整个机器人调用文本片段可以被提交给消息收发机器人。机器人框架组件950可以将命令初始部分提交给消息收发机器人并且从消息收发机器人接收一个或多个预测的机器人命令文本片段。机器人框架组件950然后可以将一个或多个预测的机器人命令文本片段传送到客户端装置。如果用户使用预测的机器人命令文本片段中的一个,则它可以出现在消息910的文本部分内。
用户界面组件923可以从机器人框架组件950接收一个或多个预测的机器人命令文本片段,并且在消息线程显示中显示一个或多个预测的机器人命令文本片段。一个或多个预测的机器人命令文本片段的该显示可对应于调用消息收发机器人交互用户界面。
用户界面组件923可接收对一个或多个预测的机器人命令文本片段的机器人命令文本片段的用户选择。用户选择可包括选择所预测的机器人命令片段中的一者以显示所预测的机器人命令文本片段。用户选择可以包括在消息收发客户端的文本输入字段中输入预测的机器人命令文本片段中的一个。这个机器人命令文本片段可以作为消息910被传送到客户端前端服务器935的消息收发组件930。
在一些情况下,可调用用于消息收发机器人的配置界面作为消息收发机器人交互用户界面。在消息线程内调用消息机器人可以包括用户界面组件923在消息线程显示中接收消息收发机器人控制选择。响应于消息收发机器人控制选择,用户界面组件923可以在消息线程显示中显示消息收发机器人交互配置界面。用户界面组件923可以接收针对消息收发机器人交互配置界面的一个或多个用户界面选择。所接收的一个或多个用户界面选择可包括经由消息910发送至消息收发系统100的消息收发机器人交互命令。
在一些情况下,所选择的控制可以是服务类型控制。服务类型控制指示多个提供商可用于服务的服务类别。用户界面组件923可以接收对发送方客户端装置920上的消息线程显示中的服务类型控制的服务类型控制选择。用户界面组件923可以响应于服务类型控制选择在消息线程显示中显示多个消息收发机器人控制。
用户界面组件923可以显示与多个消息收发机器人控制中的每一个相关联的服务性能信息。服务性能信息可以包括但不限于估计的成本、估计的到达时间、估计的行进时间以及服务可用性中的一项或多项。服务性能信息可以由机器人框架组件950从机器人服务器针对相关联的消息收发机器人而检索,并且被提供给用户界面组件923。
消息收发机器人的使用以及因此相关联的服务可能要求用户对服务的账户。用户界面组件923可以在发送方客户端装置920上的消息线程显示中接收消息收发机器人控制选择。用户界面组件923可以确定用户缺乏与消息收发机器人相关联的服务的用户账户,并且作为响应,在消息线程显示中显示用于服务的用户账户创建界面。用户界面组件923可以接收与用户账户创建界面的用户交互,基于接收到的与用户账户创建界面的用户交互而生成用户账户创建命令,并且将用户账户创建命令传送到服务。在一些实施方式中,用户账户创建命令可以被直接传送到该服务。在其他实施方式中,用户账户创建命令可经由机器人框架组件950和/或客户端前端服务器935传送。
一些服务可能要求在执行所请求的服务之前验证发送方客户端装置920的用户电话号码。在消息收发系统100已经验证电话号码的情况下,例如通过将验证码传送到电话号码(例如,在文本消息中)并且使在消息收发客户端中输入验证码,消息收发系统100可以证明对电话号码的验证,并且因此从执行电话号码验证中保存服务并且从执行电话号码验证的努力中保存用户。因而,消息收发系统100可以与用户账户创建命令相关联地向服务验证与客户端装置相关联的用户电话号码。向服务验证用户电话号码可以操作以防止服务执行用户电话号码验证。
在向消息收发系统100注册用户的财务信息的情况下,可以从服务返回用户的完全财务信息,以便保护用户的财务细节。相反,在消息收发机器人交互命令调用服务的服务请求的情况下,客户端消息收发组件926可以向服务传送针对用户的令牌化的财务信息。令牌化的财务信息可以授权服务执行金融交易,而不向服务揭示用户的完全财务信息。消息收发系统100可以使用对财务信息的不可逆转变换来生成符号化的财务信息。在一些情况下,财务信息可以被存储在消息收发服务器110上而不是发送方客户端装置920上,或者除了发送方客户端装置920之外财务信息还可以被存储在消息收发服务器110上,伴随由消息收发服务器110生成和从消息收发服务器110发送的令牌化的财务信息。
在用户已经具有服务的账户的情况下,消息收发服务100可以利用现有账户来安排服务。在消息收发系统100当前不具有用户的财务信息的情况下,服务可以向消息收发系统100提供用户的财务信息,以用于与消息收发系统100和其他服务进行金融交易。向消息收发系统100提供财务信息可以是完全的、非令牌化的形式。用户界面组件923可以在客户端装置上的消息线程显示中接收消息收发机器人控制选择,并且确定用户与用于与消息收发机器人相关联的服务的用户账户相关联。该确定可以由发送方客户端装置920上的消息收发客户端或由消息收发服务器110做出。发送方客户端装置920或机器人框架组件950可响应于接收到消息收发机器人控制选择而针对用户的财务信息查询服务,并与消息收发系统100的用户相关联地存储财务信息。
除了从消息队列980提取之外,消息910可以被传送到接收方客户端装置990。发送方客户端装置920上的消息收发客户端的消息线程显示可以与消息收发系统100的消息线程相关联。该消息线程可以与消息收发系统的两个以上的个体用户相关联。除了发送方客户端装置920之外的那些用户的客户端装置(其可包括接收方客户端装置990)可各自接收消息910的副本。甚至在只有两个用户与消息线程相关联的情况下,每个用户可以与多于一个的客户端装置相关联,从而增加用于接收消息910的客户端装置的数量。在附加的用户与消息线程相关联的情况下,诸如在群组消息线程中,那些附加用户的客户端装置也可以接收消息910。通常,除了被提取用于由消息收发机器人处理的消息910之外,还可以通过消息收发系统100的常规操作将消息910分发给客户端装置。
图10示出消息收发系统100中对消息910的响应1010的实施方式。
在一些情况下,消息收发系统100可产生机器人响应。在托管机器人服务器965上的机器人执行组件960可生成对消息910的消息收发机器人响应1010。一些托管的机器人可以在消息收发系统100的提供商的内部开发,其可以包括但不限于用于玩游戏、访问消息收发系统服务或其他服务的机器人。一些托管的机器人可以在消息收发系统100的提供商的外部开发。这些第三方机器人可以由消息收发系统100的提供商使用作为用于执行托管机器人的第三方软件的托管平台的托管机器人服务器965来托管。机器人执行组件960可以将消息910的消息收发机器人响应1010传送到机器人框架组件950。
机器人框架组件950可从机器人服务器接收对消息910的消息收发机器人响应1010,无论是来自托管机器人服务器965或外部机器人服务器975。机器人框架组件950可接收对消息910的消息收发机器人响应1010并将消息收发机器人响应1010插入到消息队列980中。在消息队列980中插入消息收发机器人响应1010可包括将消息收发机器人响应1010添加到消息队列980,作为消息队列980的新更新。消息收发组件930然后可以将消息收发机器人响应1010作为消息队列980的常规操作的一部分传送到发送方客户端装置920,以将消息队列980中的消息提供到其相关联的用户的装置。
消息910可能已经与消息线程相关联地发起。在一些情况下,消息线程可以是一对一机器人消息线程,其中用户直接与没有任何附加用户的机器人接洽。在其他情况下,消息线程可以包括多个用户,诸如一对一消息线程或群组消息线程。可将消息收发机器人响应1010插入到消息队列980中,消息收发机器人响应1010被标记以在消息线程中显示。消息收发机器人响应1010可以被插入针对消息线程中的每个参与者的消息队列中,被标记以在消息线程中显示。
消息线程可以与消息系统100的两个以上的个体用户相关联。每个用户可以具有与消息收发系统100相关联的消息队列。响应1010可被插入到两个以上用户中的每一个的消息队列中。这些用户中的每一个可以与至少一个客户端装置相关联,诸如通过在向每个用户的用户账户注册的每个客户端装置上具有消息收发客户端。客户端前端服务器上的消息收发组件因此可以将消息收发机器人交互响应1010从消息收发系统100传送到两个以上的客户端装置。
发送方客户端装置920上的消息收发客户端的客户端消息收发组件926可从消息收发系统100接收消息收发机器人交互响应1010。消息收发客户端的用户界面组件923然后可以在消息线程显示中显示消息收发机器人交互响应1010。
图11示出了消息收发系统100中的订阅命令1110的实施方式。
在大多数情况下,机器人可以仅响应于用户向机器人发送的消息而被准许向用户的消息队列980添加消息。由于用户向消息收发机器人发送消息910,所以消息收发机器人可以被授权利用响应1010来答复消息910。在一些情况下,消息收发机器人可以被授权向消息910发送单个响应1010。在其他情况下,可响应于消息910而授权消息收发机器人在有限时间段内发送响应。
此外,消息收发系统100的用户还可以被授权将消息线程订阅到机器人以被推送来自机器人的更新。对机器人的订阅可以授权机器人向订阅的消息线程传送消息。该授权可具有限制,诸如具有有限数量的可在给定时间段内发送的订阅消息。例如,消息收发机器人可以被限制为一天发送最多一个消息或一天发送特定数量的消息。在一些实施方式中,用户的订户线程偏好可指定对消息收发机器人可以向消息线程发消息的频率的限制。
到消息收发机器人的消息910可以包括订阅命令1110、订阅命令1110指示消息收发系统100和消息收发机器人:与消息订阅命令1110相关联的消息线程应当从消息收发机器人接收订阅消息。机器人框架组件950可以响应于机器人订阅命令1110而向消息收发机器人订阅消息线程。在各种实施方式中,订阅命令可直接从客户端消息收发组件926传送至机器人框架组件950,可直接从消息收发组件930传送至机器人框架组件950,或可在消息队列980中检测并由此与机器人框架组件950进行通信。
订阅命令1110还可由接收方客户端装置990(诸如用于参与订阅命令1110订阅的消息线程的用户的每个接收方客户端装置)接收。订阅命令1110可以作为消息线程已经订阅消息收发机器人的消息线程中的通知被订阅到接收方客户端装置990。通常,消息线程的任何成员可以将线程订阅消息收发机器人、不订阅来自消息收发机器人的线程、或者修改消息线程对消息机收发器人的订阅的订户线程偏好。这些动作中的任何动作可以导致通知消息被添加到用于消息线程的每个成员的消息队列、通知消息传送动作,无论是订阅、取消订阅或订户线程偏好的修改。
订阅可以被维持在订阅注册表中。订阅注册表可以在唯一地识别消息收发系统100内的消息线程的线程标识符与对消息收发机器人的订阅之间进行映射。订阅注册表可以包括但不限于具有用于每个注册订阅的行的数据库或数据库表。每个注册订阅可以与该订阅的订户线程偏好相关联。
图12示出了消息收发系统100中的广播消息1210的实施方式。
广播消息1210向客户端装置的分发可以以两个阶段来执行,以容纳大量接收方,广播消息1210可以具有分发广播广播消息1210的工作并且因此通过多个服务器和服务器装置分发广播广播消息1210的工作。在一些情况下,消息收发机器人可以具有数百万或几十亿个订户,这可能超过单个服务器装置分发具有期望响应性的广播消息1210的能力。因而,第一阶段服务器可以生成潜在接收方列表,并且多个第二阶段服务器可以将广播消息1210添加到广播消息1210的接收方的消息队列。
机器人前端服务器955可以包括广播组件1240。广播组件1240通常可以被布置为生成潜在接收方的列表并且将广播消息1210的分发指派给一个或多个广播工作者。广播组件1240可以从消息收发机器人接收广播消息1210并且确定用于广播消息的多个订户线程。确定多个订户线程可以基于消息收发机器人,诸如通过将消息收发机器人的消息收发机器人标识符与订阅注册表进行比较以检索订阅消息收发机器人的消息线程的线程标识符。
广播组件1240可以将多个订户线程划分成多个订户线程块。订户线程块可以在消息收发系统100内具有预定义的大小。机器人框架组件950可基于预定义的块大小来生成多个订户线程块,将多个订户线程划分为预定义大小的块,由于订户线程的数量不是预定义大小的精确重复,所以可能的是较小大小的单个块。可以使用其他划分方案,例如使得订户线程块具有大致相等的大小,例如,在彼此之一内具有成员资格,其中,此大致相等的大小在不超过预定义的大小的情况下尽可能大。可替代地或另外地使用其他划分技术。
机器人框架组件950可将多个订户线程块中的每个指派给多个广播工作者中的一个广播工作者。该多个广播工作者可在多个工作者服务器1245上执行。广播工作者1250通常可以被布置成处理订户线程块并且将广播消息1210添加到多个消息队列。该多个广播工作者可基于该多个订户线程块将该广播消息添加到多个消息队列,其中该多个广播工作者中的每一个将该广播消息添加到对应于其分配的订户线程块的消息队列。
广播工作者的动作可以由订户线程偏好通知,该订户线程偏好可以作为订户线程块的元素被分配到广播工作者。该多个广播工作者可检索多个订户线程偏好,该多个订户线程偏好中的每一者与对应订户线程相关联。该多个广播工作者可以将该多个订户线程偏好中的每一个与对应的订户线程进行比较,以确定多个所选择的订户线程,该多个所选择的订户线程是该多个订户线程的子集。例如,订户线程偏好可以指定一天中期望广播消息的部分,诸如排除一天中的夜间睡眠部分。订户线程偏好可以指定用于广播消息的话题、频率、内容(例如,文本、图像、视频)或任何其他元素或上下文,并且指定这些广播消息应该或不应该被允许。在没有限制的情况下,各种技术可以用于指定和应用针对订户线程偏好的规则。然后,多个广播工作者可以将广播消息添加到对应于多个所选择的订户线程的多个所选择的消息队列,多个所选择的消息队列对应于作为所选择的订户线程的成员的用户的消息队列。
本文中包括代表用于执行所公开的架构的新颖方面的示例性方法的一组流程图。虽然为了简单说明,在本文中例如以流程图的形式示出的一个或多个方法被示出和描述为一系列动作,但是应当理解和认识到的是,方法不限于动作的顺序,因为一些动作可以以不同的顺序发生和/或与本文中示出和描述的其他动作同时发生。例如,本领域中的技术人员应该理解并且认识到的是,方法可替换地表示为诸如状态图中一系列相关联的状态或事件。此外,新颖的实现方式并不要求在方法中示出的所有动作。
图13A示出了第一逻辑流程1300的一个实施方式。逻辑流程1300可以表示由本文中所描述的一个以上实施方式执行的一些或所有的操作。
在图13A所示的实施方式中,逻辑流程1300可在框1302处在客户端装置上的消息线程显示中接收消息收发机器人调用。
逻辑流程1300可在框1304处响应于消息收发机器人调用而结合消息线程显示调用客户端装置上的消息收发机器人交互用户界面。
逻辑流程1300可在框1306处经由消息收发机器人交互用户界面接收消息收发机器人交互命令。
在框1308,逻辑流程1300可以将消息收发机器人交互命令从客户端装置传送到消息收发系统。
逻辑流程1300可在框1310处在客户端装置处从消息收发系统接收消息收发机器人交互响应。
逻辑流程1300可在框1312在消息线程显示中显示消息收发机器人交互响应。
实施方式不限于该实例。
图13B示出了第一逻辑流程1350的一个实施方式。逻辑流程1300可以表示由本文中所描述的一个以上实施方式执行的一些或所有的操作。
在图13B中示出的所示实施方式中,逻辑流程1350可以在框1352处从客户端装置接收消息。
逻辑流程1350可以在框1354处将消息添加到消息队列。
逻辑流程1350可在框1356监视消息队列。
逻辑流程1350可在框1358处检测消息指示消息收发机器人调用。
在框1360处,逻辑流程1350可基于检测到消息指示消息收发机器人调用而将消息提交到机器人框架组件。
逻辑流程1350可以在框1362确定与消息相关联的消息收发机器人。
逻辑流程1350可以在框1364将该消息提交给消息收发机器人。
实施方式不限于该实例。
图14示出集中式系统1400的框图。集中式系统1400可以在单个计算实体中(诸如,完全在单个集中式服务器装置1420内)实现消息收发系统100的结构和/或操作中的一些或全部。
集中式服务器装置1420可包括能够接收、处理和发送用于消息收发系统100的信息的任何电子装置。电子装置的示例可以包括但不限于:超移动装置、移动装置、个人数字助理(PDA)、移动计算装置、智能电话、电话、数字电话、蜂窝电话、电子书阅读器、手机、单向寻呼机、双向寻呼机、消息收发装置、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器场、网络服务器(web server)、网络服务器(network server)、互联网服务器、工作站、微型计算机、主机计算机、超级计算机、网络装置(network appliance)、网络装置(webappliance)、分布式计算系统、多处理器系统、基于处理器的系统、消费者电子装置、可编程的消费者电子装置、游戏装置、电视、数字电视、机顶盒、无线接入点、基站、订户站、移动订户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其中的组合。在此上下文中实施方式并不受限制。
集中式服务器装置1420可使用处理组件1430来执行用于消息收发系统100的处理操作或逻辑。处理组件1430可以包括各种硬件元件、软件元件、或这两者的组合。硬件元件的示例可以包括装置、逻辑装置、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其中的任何组合。确定是否使用硬件元件和/或软件元件实施实施方式可根据许多因素而变化,如对于给定实施方式所期望的,诸如,期望的计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能限制。
集中式服务器装置1420可使用通信组件1440来执行用于消息收发系统100的通信操作或逻辑。通信组件1440可以实现任何公知的通信技术和协议,诸如适合与分组交换网络(例如,诸如互联网的公共网络、诸如企业内联网的专用网络等)、电路交换网络(例如,公共交换电话网络)、或分组交换网络和电路交换网络的组合(具有合适的网关和转换器)一起使用的技术。通信组件1440可以包括各种类型的标准通信元件,诸如,一个以上通信接口、网络接口、网络接口卡(NIC)、无线电、无线发射器/接收器(收发器)、有线和/或无线通信介质、物理连接器等等。例如但不限于,通信介质1412包括有线通信介质和无线通信介质。有线通信介质的实例可以包括配线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤、传播信号等等。无线通信介质的实例可以包括声学、射频(RF)频谱、红外和其他无线介质。
集中式服务器装置1420可经由通信组件1440使用通信信号1414通过通信介质1412与其他装置通信。装置可以根据给定实现方式的需要在集中式服务器装置1420的内部或外部。装置可以包括客户端装置1410。客户端装置1410通常可以对应于个人计算机装置180、智能电话装置150、平板装置160、客户端装置320、发送方客户端装置920和接收方客户端装置990中的任一项。
图15示出分布式系统1500的框图。分布式系统1500可跨多个计算实体分发消息收发系统100的结构和/或操作的部分。分布式系统1500的实例可以包括但不限于客户端-服务器架构、3层架构、N层架构、紧密耦接或集群架构、对等架构、主从架构、共享数据库架构、以及其他类型的分布式系统。在此上下文中实施方式并不受限制。
分布式系统1500可包括多个服务器装置1535、1545、1555、1565。通常,服务器装置1535、1545、1555、1565可与如参见图14描述的集中式服务器装置1420相同或类似。例如,服务器装置1535、1545、1555、1565可各自包括处理组件1530和通信组件1540,该处理组件1530和通信组件1540分别与如参见图14所描述的处理组件1430和通信组件1440相同或相似。在另一示例中,服务器装置1535、1545、1555、1565可经由通信组件1540使用通信信号1514通过通信介质1512进行通信。
服务器装置可以包括或采用一个或多个客户端程序,该客户端程序用于执行根据所描述的实施方式的各种方法。多个客户端前端服务器装置1535可各自执行客户端前端服务器935,客户端前端服务器中的每一者执行如参考客户端前端服务器935所描述的任务。多个工作者服务器装置1545可各自执行工作者服务器945或与工作者服务器1245中的一个相对应的工作者服务器,每个工作者服务器执行如参考工作者服务器945或工作者服务器1245所描述的任务。多个机器人前端服务器装置1555可以各自执行机器人前端服务器955,每个机器人前端服务器执行如参考机器人前端服务器955所描述的任务。多个托管机器人服务器装置1565可各自执行托管机器人服务器965,每个托管机器人服务器执行如参考托管机器人服务器965所描述的任务。
将认识到,服务器和服务器装置之间的关系可能不是一对一的。在一些实施方式中,单个服务器装置可以执行多个服务器。类似地,在一些实施方式中,服务器装置可以基于消息收发系统100的需求而在角色之间转换,并且因此在它们执行的服务器之间转换。通常,各种技术可用于跨多个服务器装置分布服务器任务。
客户端装置1520通常可对应于个人计算机装置180、智能电话装置150、平板装置160、客户端装置320、发送方客户端装置920、接收方客户端装置990和客户端装置1410中的任一个。
图16示出适用于实现如先前描述的各种实施方式的示例性计算架构1600的实施方式。在一个实施方式中,计算架构1600可以包括电子装置或者实施为电子装置的一部分。电子装置的示例可以包括参见图14、图15所描述的那些,等等。在该上下文中实施方式并不受限制。
如在本申请中所使用的,术语“系统”和“组件”旨在指代计算机相关的实体,或是硬件、硬件和软件的组合、软件,或是执行的软件,其实例通过示例性计算架构1600提供。例如,组件可以是但不限于在处理器上运行的处理,处理器、硬盘驱动、(光和/或磁存储介质的)多存储驱动、对象、可执行程序、执行线程、程序、和/或计算机。以示例的方式,在服务器上运行的应用程序和服务器两者都可以是组件。一个以上组件可存在于处理和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个以上计算机之间。此外,组件可以通过各种类型通信介质彼此通信地耦接以协操作。协作可以涉及单向或双向的信息的交换。例如,组件可以在通信介质上以传送的信号的形式传送信息。该信息可以被实现为分配给各种信号线的信号。在这样的分配中,每条消息都是信号。然而,其他实施方式可以替代地采用数据消息。这样的数据消息可以通过各种连接来发送。示例性的连接包括并行接口、串行接口以及总线接口。
计算架构1600包括各种共同计算元件,诸如,一个以上处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围装置、接口、振荡器、定时装置、视频卡、声卡、多媒体输入/输出(I/O)组件、电源等等。然而,实施方式并不限于由计算架构1600实施。
如图16所示,计算架构1600包括处理单元1604、系统存储器1606和系统总线1608。处理单元1604可以是任何各种商用处理器,包括但不限于和处理器;应用、嵌入式安全处理器;和和处理器;IBM和Cell处理器;Core(2) 以及处理器;以及类似的处理器。双微处理器、多核处理器和其他多处理器架构也可以用作处理单元1604。
系统总线1608提供系统组件(包括但不限于系统存储器1606至处理单元1604)的接口。系统总线1608可以是使用各种商用总线结构中的任一种可以进一步与存储器总线(有或者没有存储器控制器)、外围总线、以及本地总线互连的几种类型的总线结构中的任一种。接口适配器可以经由插槽结构连接到系统总线1608。示例性插槽结构可以包括但不限于图形加速端口(AGP)、卡总线(Card Bus)、(扩展)工业标准结构((E)ISA)、微通道结构(MCA)、NuBus、外围组件互连(扩展)(PCI(X))、PCI Express、个人计算机存储器卡国际联合会(PCMCIA)等等。
计算架构1600可以包括或实现各种制品。制品可以包括用于存储逻辑的计算机可读存储介质。计算机可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的实例可以包括使用任何合适类型的代码,诸如,源代码、编译代码、直译码、可执行码、静态码、动态码、面对对象代码、视码等等实施的可执行计算机程序指令。实施方式也可至少部分地实施为非易失性计算机可读介质中或非易失性计算机可读介质上所包含的指令,一个以上处理器可以读取和执行该指令以使得能够执行本文中所描述的操作。
系统存储器1606可以包括一个或多个高速存储器单元形式的各种类型的计算机可读存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器的聚合物存储器、双向存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)驱动器的装置阵列、固态存储器装置(例如,USB存储器、固态驱动器(SSD)、以及用于存储信息的任何其他合适类型的介质。在图16所示的所示实施方式中,系统存储器1606可以包括非易失性存储器1610和/或易失性存储器1612。基本输入/输出系统(BIOS)可以存储在非易失性存储器1610中。
计算机1602可以包括一个以上低速存储器单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)1614、磁软盘驱动器(FDD)1616以从可移动磁盘1618中读取或者向可移动磁盘1618写入,以及光盘驱动器1620以从可移动光盘1622(例如,CD-ROM或DVD)读取或向可移动光盘1622写入。HDD1614、FDD 1616和光盘驱动器1620可分别通过HDD接口1624、FDD接口1626和光驱动接口1628连接到系统总线1608。用于外部驱动器实现方式的HDD接口1624可包括通用串行总线(USB)和IEEE1394接口技术中的至少一者或两者。
驱动器和相关联的计算机可读介质提供易失性和/或非易失性的数据、数据结构、计算机可执行指令等等的存储。例如,多个程序模块可以存储在驱动器和存储器单元1610、1612中,包括操作系统1630、一个以上应用程序1632、其他程序模块1634、以及程序数据1636。在一个实施方式中,一个或多个应用程序1632、其他程序模块1634和程序数据1636可包括例如消息收发系统100的各种应用和/或组件。
用户可通过一个以上有线/无线输入装置(例如,键盘1638)和点控装置(诸如,鼠标1640)向计算机1602键入命令和信息。其他输入装置可以包括扩音器、红外线(IR)远程控制、射频(RF)远程控制、游戏手柄、手写笔(stylus pen)、读卡器、软件狗、指纹阅读器、手套、图形输入板、操纵杆、键盘、网膜阅读器、触摸屏(例如,电容式、电阻式等)、跟踪球、触控板、传感器、铁笔(styluse)等等。这些及其他输入装置常常通过耦接至系统总线1608的输入装置接口1642连接到处理单元1604,但可通过其他接口连接,其他接口为诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等等。
监视器1644或其他类型的显示装置也经由诸如视频适配器1646的接口连接到系统总线1608。监视器1644可以在计算机1602的内部或外部。除了监视器1644之外,计算机通常还包括其他外围输出装置,诸如扬声器、打印机等。
计算机1602可以使用经由有线和/或无线通信到一个以上远程计算机(诸如,远程计算机1648)的逻辑连接而在联网环境下操作。远程计算机1648可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐装置、对等装置或其他共同网络节点,并且通常包括相对于计算机1602所描述的许多或所有的元件,虽然出于简洁的目的,仅示出了存储器/存储装置1650。所描述的逻辑连接包括至局域网(LAN)1652和/或更大网络(例如,广域网(WAN)1654)的有线/无线连接。这样的LAN与WAN网络环境在办公室和公司是很平常的,并且有助于企业范围内的计算机网络(诸如,内网),所有的这些网络可以连接到全球通信网络,例如,互联网。
当用在LAN网络环境中时,计算机1602通过有线和/或无线通信网络接口或适配器1656连接至LAN 1652。适配器1656可有助于与LAN1652的有线和/或无线通信,LAN 1652也可包括布置在其上用于与适配器1656的无线功能通信的无线接入点。
当用在WAN网络环境中时,计算机1602可包括调制解调器1658、或者被连接至WAN1654上的通信服务器、或者具有用于通过WAN 1654(诸如通过互联网)建立通信的其他装置。可以在内部或外部且是有线或无线装置的调制解调器1658经由输入装置接口1642连接至系统总线1608。在网络环境中,相对于计算机1602描述的程序模块或者其部分可被存储在远程存储器/存储装置1650中。应当认识到的是,示出的网络连接是示例性的并且可以使用在计算机之间建立通信链路的其他装置。
计算机1602操作以使用IEEE 802标准族与有线和无线装置或实体通信,诸如,可操作地设置在无线通信(例如,IEEE 802.16空中调制技术)中的无线装置。这至少包括Wi-Fi(或无线保真)、WiMax和BluetoothTM无线技术等。由此,通信可以是与常规网络一样的预定义结构,或者仅仅是至少两个装置之间的自组织通信。Wi-Fi网络使用被称为IEEE802.16x(a,b,g,n等)的无线电技术以提供安全、可靠、快速的无线连接。Wi-Fi网络可以用于将计算机彼此连接、将计算机连接到互联网以及将计算机连接到有线网络(其使用与IEEE 802.3相关的介质和功能)。
图17示出了适用于实现如前所述的各种实施方式的示例性通信架构1700的框图。通信架构1700包括各种公共通信元件,诸如发射器、接收器、收发器、无线电、网络接口、基带处理器、天线、放大器、滤波器、电源等。然而,实施方式并不限于由通信架构1700的实现方式。
如图17所示,通信架构1700包括一个或多个客户端1702和服务器1704。客户端1702可以实现个人计算机装置180、智能电话装置150、平板装置160、客户端装置320、发送方客户端装置920、接收方客户端装置990、客户端装置1410和客户端装置1520中的任一项。服务器1704可实现集中式服务器装置1420和客户端前端服务器装置1535、工作者服务器装置1545、机器人前端服务器装置1555和托管机器人服务器装置1565中的任一项。客户端1702和服务器1704操作地连接到一个以上相应的客户端数据存储1708和服务器数据存储1710,它们可以用来存储相应客户端1702和服务器1704的本地的信息,诸如,收藏夹和/或相关联的上下文信息。
客户端1702和服务器1704可使用通信框架1706在彼此之间传送信息。通信框架1706可以实施任何已知的通信技术和协议。通信框架1706可以被实现为分组交换网络(例如,诸如互联网的公共网络,诸如企业内联网的专用网,等等)、电路交换网络(例如,公共交换电话网络)、或分组交换网络和电路交换网络(具有合适的网关和译码器)的组合。
通信框架1706可以实现被设置为接受、通信以及连接到通信网络的各种网络接口。网络接口可被认为是输入输出接口的专用形式。网络接口可以采用连接协议,包括但不限于直接连接、以太网(例如,厚、薄、双绞线10/100/1000基底T等等)、令牌网(tokenring)、无线网络接口、蜂窝网络接口、IEEE 802.11a-x网络接口、IEEE 802.16网络接口、IEEE 802.20网络接口等等。此外,多网络接口可以被用来与各种通信网络类型接合。例如,多网络接口可以被用来允许通过广播、多播网络以及单播网络通信。如果处理要求规定较大量的速度和容量,同样可以采用分布式网络控制器架构以集中(pool)、负载平衡、或以另外的方式提高客户端1702和服务器1704所需的通信带宽。通信网络可以是有线和/或无线网络的任何一个和组合,包括但不限于直接互连、安全定制连接、专用网络(例如,企业内联网)、公共网络(例如,互联网)、个人区域网络(PAN)、局域网(LAN)、城域网(MAN)、作为互联网上的节点的操作任务(OMNI)、广域网(WAN)、无线网络、蜂窝网络和其他通信网络。
图18示出了用于多载波OFDM系统(诸如消息收发系统100)中的装置1800的实施方式。装置1800可以实现例如如参考消息收发系统100和/或逻辑电路1835所描述的软件组件1860。逻辑电路1835可以包括物理电路以执行针对消息收发系统100所描述的操作。如图18所示,装置1800可以包括无线电接口1810、基带电路1820和计算平台1830,但是实施方式不限于该配置。
装置1800可以实现单个计算实体中(诸如完全在单个装置内)的消息收发系统100和/或逻辑电路1835的结构和/或操作中的一些或全部。可替代地,装置1800可以使用分布式系统架构(诸如,客户端-服务器架构、3层架构、N层架构、紧耦合的或集群的架构、对等架构、主从架构、共享的数据库架构)和其他类型的分布式系统来将消息收发系统100和/或逻辑电路1835的结构和/或操作的部分分布在多个计算实体上。实施方式在此上下文中并不受限制。
在一个实施方式中,无线电接口1810可包括适用于传送和/或接收单载波或多载波调制信号的组件或组件的组合(例如,包括补充码键控(CCK)和/或正交频分复用(OFDM)符号),但是实施方式不限于任何特定的空中接口或调制方案。无线电接口1810可包括例如接收器1812、发射器1816和/或频率合成器1814。无线电接口1810可包括偏置控制、晶体振荡器和/或一个或多个天线1818。在另一实施方式中,无线电接口1810可根据需要使用外部电压控制振荡器(VCO)、表面声波滤波器、中频(IF)滤波器和/或RF滤波器。由于各种潜在的RF接口设计,省略了其足够的描述。
基带电路1820可与无线电接口1810通信以处理接收和/或发射信号,并且可包括例如用于下变频接收信号的模数转换器1822、用于上变频信号以进行传输的数模转换器1824。进一步,基带电路1820可包括用于相应接收/发射信号的PHY链路层处理的基带或物理层(PHY)处理电路1826。基带电路1820可包括例如用于媒体访问控制(MAC)/数据链路层处理的处理电路1828。基带电路1820可包括用于例如经由一个或多个接口1834与处理电路1828和/或计算平台1830通信的存储器控制器1832。
在一些实施方式中,PHY处理电路1826可包括帧构造和/或检测模块,结合诸如缓冲存储器的附加电路,以构造和/或解构通信帧,诸如无线电帧。可替代地或另外,MAC处理电路1828可以共享这些功能中的某些的处理,或独立于PHY处理电路1826执行这些处理。在一些实施方式中,MAC和PHY处理可以集成到单个电路中。
计算平台1830可提供装置1800的计算功能。如图所示,计算平台1830可包括处理组件1840。除了基带电路1820或作为基带电路1820的替代,装置1800还可使用处理组件1840执行消息收发系统100和逻辑电路1835的处理操作或逻辑。处理组件1840(和/或PHY1826和/或MAC 1828)可包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可以包括装置、逻辑器件、组件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其中的任何组合。确定是否使用硬件元件和/或软件元件实施实施方式可根据如给定实施方式所期望的许多因素而变化,该因素诸如,期望的计算速率、功率电平、耐热性、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能限制。
计算平台1830可进一步包括其他平台组件1850。其他平台组件1850包括共同计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围装置、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件(例如,数字显示器)、电源等。存储器单元的示例可包括但不限于以一个或多个高速存储器单元形式的各种类型的计算机可读和机器可读存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器的聚合物存储器、双向存储器、相变或铁电存储器、氧化硅氮氧化硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)驱动器的装置阵列、固态存储器装置(例如,USB存储器、固态驱动器(SSD)和适合于存储信息的任何其他类型的存储介质。
装置1800可以是,例如,超移动装置、移动装置、固定装置、机器对机器(M2M)装置、个人数字助理(PDA)、移动计算装置、智能电话、电话、数字电话、蜂窝电话、用户设备、电子书阅读器、手机、单向寻呼机、双向寻呼机、消息收发装置、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、手持计算机、平板计算机、服务器、服务器阵列或服务器场、网络服务器(web server)、网络服务器(network server)、互联网服务器、工作站、微型计算机、主机计算机、超级计算机、网络装置(network appliance)、网络装置(web appliance)、分布式计算系统、多处理器系统、基于处理器的系统、消费者电子装置、可编程的消费者电子装置、游戏装置、电视、数字电视、机顶盒、无线接入点、基站、节点B、演进节点B(eNB)、订户站、移动订户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其中的组合。因此,根据适当需要,在装置1800的各种实施方式中,可以包括或省略本文中描述的装置1800的功能和/或特定配置。在一些实施方式中,装置1800可以被配置成与以下各项中的一项或多项相关联的协议和频率兼容:用于WMAN的3GPP LTE规范和/或IEEE 1802.16标准、和/或在此引用的其他宽带无线网络,尽管实施方式不限于此方面。
装置1800的实施方式可以使用单输入单输出(SISO)架构来实现。然而,某些实现方式可包括用于使用用于波束成形或空分多址(SDMA)的自适应天线技术和/或使用MIMO通信技术的发射和/或接收的多个天线(例如,天线1818)。
装置1800的组件和特征可以使用以下各项的任何组合来实现:分离电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构。进一步,在适当的情况下,装置1800的特征可以使用微控制器、可编程逻辑阵列和/或微处理器或前述的任何组合来实现。应注意,硬件、固件和/或软件元件可以在本文中被统称为“逻辑”或“电路”。
应当理解,图18的框图中所示的示例性装置1800可以表示许多潜在实现方式的一个功能描述性示例。因而,在附图中描绘的块功能的划分、省略或包括不推断用于实现这些功能的硬件组件、电路、软件和/或元件将必然被划分、省略或包括在实施方式中。
计算机实现的方法可以包括:在客户端装置上的消息线程显示中接收消息收发机器人调用;响应于该消息收发机器人调用而结合该消息线程显示调用该客户端装置上的消息收发机器人交互用户界面;经由消息收发机器人交互用户界面接收消息收发机器人交互命令;将该消息收发机器人交互命令从该客户端装置传送到消息收发系统;在该客户端装置处从该消息收发系统接收消息收发机器人交互响应;在该消息线程显示中显示该消息收发机器人交互响应。
一种计算机实现的方法可以进一步包括:在该消息线程显示的文本输入部分中接收机器人调用文本片段,其中,接收该机器人调用文本片段包括:接收该消息收发机器人调用;确定一个或多个预测的机器人命令文本片段;在该消息线程显示中显示该一个或多个预测的机器人命令文本片段,其中,显示该一个或多个预测的机器人命令文本片段包括调用该消息收发机器人交互用户界面;接收对该一个或多个预测的机器人命令文本片段的机器人命令文本片段的用户选择;并且将对应于该用户选择的该机器人命令文本片段从该客户端装置传送到该消息收发系统,其中,将该机器人命令文本片段传送到该消息收发系统包括将该消息收发机器人交互命令从该客户端装置传送到消息收发系统。
计算机实现的方法可以进一步包括经由消息线程显示的文本输入部分接收命令文本片段初始部分;将命令文本片段初始部分传送到消息收发系统;并且通过响应于将该命令文本片段初始部分传送到该消息收发系统而从该消息收发系统接收该一个或多个预测的机器人命令文本片段,来确定该一个或多个预测的机器人命令文本片段。
计算机实现的方法可以进一步包括在客户端装置上的消息线程显示中接收消息收发机器人控制选择,其中,接收消息收发机器人控制选择包括:接收消息收发机器人调用,消息收发机器人控制选择用于与消息收发机器人相关联的消息收发机器人控制;在该消息线程显示中显示消息收发机器人交互配置界面,其中,显示该消息收发机器人交互配置界面包括调用该消息收发机器人交互用户界面;并且接收针对该消息收发机器人交互配置界面的一个或多个用户界面选择,其中,接收该一个或多个用户界面选择包括接收该消息收发机器人交互命令。
计算机实现的方法可以进一步包括:在客户端装置上的消息线程显示中接收对服务类型控制的服务类型控制选择;响应于该服务类型控制选择,在该消息线程显示中显示多个消息收发机器人控制,该多个消息收发机器人控制包括该消息收发机器人控制;以及与多个消息收发机器人控制中的每一个相关联地显示服务性能信息,服务性能信息包括估计的成本、估计的到达时间、估计的行进时间和服务可用性中的一个或多个。
一种计算机实现的方法可以进一步包括与该消息收发系统的用户相关联的客户端装置,该方法进一步包括:在该客户端装置上的该消息线程显示中接收消息收发机器人控制选择,其中,接收该消息收发机器人控制选择包括接收该消息收发机器人调用,该消息收发机器人控制选择用于与消息收发机器人相关联的消息收发机器人控制;确定该用户没有与该消息收发机器人相关联的服务的用户账户;在该消息线程显示中显示用于该服务的用户账户创建界面;接收与该用户账户创建界面的用户交互;基于所接收的与该用户账户创建界面的用户交互来生成用户账户创建命令;以及将用户账户创建命令传送给该服务。
计算机实现的方法可以进一步包括与用户账户创建命令相关联地将与客户端装置相关联的用户电话号码验证到服务,其中用户电话号码验证到服务操作以防止服务执行用户电话号码验证。
一种计算机实现的方法可以进一步包括与该消息收发系统的用户相关联的该客户端装置,其中,将该消息收发机器人交互命令从该客户端装置传送到该消息收发系统调用服务的服务请求,该方法进一步包括:将该用户的令牌化的财务信息传送到该服务。
一种计算机实现的方法可以进一步包括与该消息收发系统的用户相关联的该客户端装置,该方法进一步包括:在该客户端装置上的该消息线程显示中接收消息收发机器人控制选择,其中,接收该消息收发机器人控制选择包括接收该消息收发机器人调用,该消息收发机器人控制选择用于与消息收发机器人相关联的消息收发机器人控制;确定该用户与用于与该消息收发机器人相关联的服务的用户账户相关联;响应于接收到该消息收发机器人控制选择,而向该服务查询用户的财务信息;并且将该财务信息与该消息收发系统的该用户相关联地存储。
计算机实现的方法可以进一步包括与消息收发系统的消息线程相关联的消息线程显示,该消息线程与消息收发系统的两个以上的个体用户相关联。
一种计算机实现的方法可以进一步包括与两个以上的客户端装置相关联的两个以上的个体用户,该两个以上的客户端装置包括该客户端装置,该方法进一步包括:将来自该消息收发系统的该消息收发机器人交互响应传送到该两个以上的客户端装置。
一种设备可以包括装置上的处理器电路;用户界面组件,在该处理器电路上操作以在客户端装置上的消息线程显示中接收消息收发机器人调用;响应于该消息收发机器人调用而结合该消息线程显示调用该客户端装置上的消息收发机器人交互用户界面;经由该消息收发机器人交互用户界面接收消息收发机器人交互命令;并且在该消息线程显示中显示消息收发机器人交互响应;以及客户端消息收发组件,在该处理器电路上操作以将该消息收发机器人交互命令从该客户端装置传送到消息收发系统;并且在该客户端装置处从该消息收发系统接收该消息收发机器人交互响应。该设备可以操作以实现本文中描述的任何计算机实现的方法。
一种计算机实现的方法可以包括:从客户端装置接收消息;将该消息添加到消息队列中;监视该消息队列;检测该消息指示消息收发机器人调用;并且基于检测到该消息指示消息收发机器人调用而将该消息提交给机器人框架组件;确定与该消息相关联的消息收发机器人;并且将该消息提交给消息收发机器人。
一种计算机实现的方法可以进一步包括该消息,该消息包括文本内容部分,该方法进一步包括:检测该消息的文本内容部分中的机器人调用符号;并且基于检测到该机器人调用符号而检测到该消息指示消息收发机器人调用。
一种计算机实现的方法可以进一步包括该消息,该消息包括元数据部分,该方法进一步包括:检测该消息的该元数据部分中的机器人调用标志;并且基于检测到该机器人调用标志而检测到该消息指示消息收发机器人调用。
计算机实现的方法可以进一步包括通过将消息传送到与消息收发机器人相关联的机器人服务器来将消息提交到消息收发机器人。
计算机实现的方法可以进一步包括从机器人服务器接收对消息的消息收发机器人响应。
计算机实现的方法可以进一步包括生成对该消息的消息收发机器人响应;并且将对该消息的该消息收发机器人响应传送到该机器人框架组件。
计算机实现的方法可以进一步包括:接收对该消息的消息收发机器人响应;并且将该消息收发机器人响应插入消息队列中。
计算机实现的方法可以进一步包括将消息收发机器人响应传送到客户端装置。
计算机实现的方法可以进一步包括与消息线程相关联的消息,该消息收发机器人响应被插入消息队列中,该消息收发机器人响应被标记用于在消息线程中显示。
计算机实现的方法可以进一步包括与两个以上的个体用户相关联的消息线程。
一种计算机实现的方法可以进一步包括该消息,该消息包括文本部分,该文本部分包括机器人别名文本片段,该方法进一步包括:接收该机器人别名文本片段的别名初始部分;将该别名初始部分与机器人别名注册表进行匹配以确定一个或多个预测的机器人别名文本片段,该一个或多个预测的机器人别名文本片段包括该机器人别名文本片段;并且将该一个或多个预测的机器人别名文本片段传送到该客户端装置。
一种计算机实现的方法可以进一步包括该消息,该消息包括文本部分,该文本部分包括机器人命令文本片段,该方法进一步包括:接收该机器人命令文本片段的命令初始部分;将该命令初始部分提交给该消息收发机器人;从该消息收发机器人接收一个或多个预测的机器人命令文本片段,该一个或多个预测的机器人命令文本片段包括该机器人命令文本片段;并且将该一个或多个预测的机器人命令文本片段传送到该客户端装置。
一种计算机实现的方法可以进一步包括与消息线程相关联的消息,该消息包括机器人订阅命令,该方法进一步包括:响应于该机器人订阅命令,将该消息线程订阅到该消息收发机器人;从该消息收发机器人接收广播消息;基于该消息收发机器人确定用于该广播消息的多个订户线程,该多个订户线程包括该消息线程;将该多个订户线程划分成多个订户线程块;将该多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;并且由该多个广播工作者基于该多个订户线程块而将该广播消息添加到多个消息队列,该多个消息队列包括该消息队列。
计算机实现的方法可以进一步包括检索多个订户线程偏好,该多个订户线程偏好中的每一个与对应的订户线程相关联;将该多个订户线程偏好中的每个用户线程偏好与对应的用户线程进行比较,以确定多个所选择的用户线程,该多个所选择的用户线程是该多个用户线程的子集;并且将该广播消息添加到对应于该多个所选择的订户线程的多个所选择的消息队列中。
一种设备可以包括装置上的处理器电路;消息收发组件,在该处理器电路上操作以从客户端装置接收消息,并且将该消息添加到消息队列;消息队列监视组件,在该处理器电路上操作以监视该消息队列,检测该消息指示消息收发机器人调用,并且基于检测到该消息指示消息收发机器人调用而将该消息提交给机器人框架组件;以及该机器人框架组件,操作以确定与该消息相关联的消息收发机器人,并且将该消息提交给消息收发机器人。该设备可以操作以实现本文中描述的任何计算机实现的方法。
至少一种计算机可读存储介质可包括指令,该指令在被执行时使系统执行本文中描述的任何计算机实现的方法。
可以使用表达“一个实施方式”或“一种实施方式”以及它们的衍生物表达描述一些实施方式。这些术语意味着结合实施方式描述的特定特征、结构、或特性包含在至少一个实施方式中。在说明书中各个位置中的短语“在一个实施方式中”的出现不必全部引用相同的实施方式。此外,可以使用表达“耦接”和“连接”以及它们的衍生物表达描述一些实施方式。这些术语不一定旨在作为彼此的同义词。例如,一些实施方式可以使用术语“连接”和/或“耦接”来描述以指示两个以上元件彼此直接物理或电接触。然而,术语“耦接”也可表示两个以上元件并非彼此直接接触,但仍彼此协作或相互作用。
一般参考本文所使用的标记和命名,本文中的详细描述可根据在计算机或计算机网络上执行的程序过程来呈现。这些过程性描述和表示被本领域技术人员用于将它们的工作的本质最有效地传达给本领域的其他技术人员。
在此,程序通常被认为是导致期望结果的自一致操作序列。这些操作是需要物理数量的物理操纵的操作。通常,尽管不是必需地,但是这些量采用能够被存储、传输、组合、比较以及以另外的方式操纵的电信号、磁信号或光信号的形式。主要是为了通用的原因,这证明了将这些信号称为位、值、元素、符号、字符、项、数字等有时是方便的。然而,应注意的是,所有这些和相似的术语要与合适的物理数量相关并且仅仅是应用于这些量的方便的标签。
此外,所执行的操纵通常以诸如添加或比较的术语被提及,这通常与操作员执行的智力操作相关。在本文中所描述的构成一个以上实施方式的任何操作中,在大多数情况下,并非需要或者期望人工操作员的这种能力。而是,操作是机器操作。用于执行各种实施方式的操作的常用机器包括通用数字计算机或类似装置。
各种实施方式还涉及用于执行这些操作的设备或系统。该设备可以是出于需求目的而被特别地构建,或其可包括通过存储在计算机中的计算机程序而被选择性地激活或者重新配置的通用计算机。在本文中呈现的流程并不是本质上涉及特定计算机或其他装置。利用根据本文中的教导而写的程序,可以使用各种通用机器,或者其证明便于构建执行所需方法步骤的更专用的装置。根据给出的说明书,用于各种这些机器的所需的结构将是显而易见的。
强调的是,提供本发明的摘要以允许读者快速确定本技术公开的本质。应理解的是,该说明书摘要将不用于解释或限制权利要求的范围或含义。此外,在上述具体实施方式中,可以看出,为了使本公开简单化,在单个实施方式中,各种特征被组合在一起。本公开的该方法不应该被解释为反映所要求的实施方式要求比每个权利要求中明确引用的特征更多的特征这样的意图。相反,如以下权利要求所反映,发明主题在于少于单个前述公开实施方式中的所有特征。因此,以下权利要求据此引入到具体实施方式中,其中,每项权利要求主张其自己作为单独的实施方式。在随附权利要求中,术语“包括(including)”和“其中(inwhich)”分别用作相应术语“包含(comprising)”和“其中(wherein)”的平易英语(plain-English)的等价形式。此外,术语“第一”、“第二”和“第三”等仅作为标记使用,而不意在对它们的对象强加数字要求。
以上已经描述的内容包括所公开的架构的示例。当然,不可能描述每可以想象的组件和/或方法的组合,但本领域普通技术人员可以认识到可以进行进一步组合和排列。因而,新颖架构旨在包括落入所附权利要求的精神和范围内的所有这样的变更、修改和变化。
Claims (18)
1.一种消息收发的方法,包括:
在消息收发系统处,监视包括机器人别名的消息的消息队列;
确定所述消息队列中的消息包括机器人别名,所述机器人别名对应于注册到消息收发机器人的所述消息收发系统的注册名称;
将包括所述机器人别名的所述消息提交给具有对应于来自所述消息的机器人别名的注册名称的消息收发机器人;
从所述消息收发机器人接收响应;以及
将所述响应添加到所述消息队列,以传递到客户端设备上的消息收发应用,
其中,所述消息包括文本部分,所述文本部分包括机器人命令文本片段,所述方法进一步包括:
接收所述机器人命令文本片段的命令初始部分;
将所述命令初始部分提交给所述消息收发机器人;
从所述消息收发机器人接收一个或多个预测的机器人命令文本片段,所述一个或多个预测的机器人命令文本片段包括所述机器人命令文本片段;以及
将所述一个或多个预测的机器人命令文本片段传送到所述客户端设备。
2.根据权利要求1所述的方法,所述消息包括文本内容部分,所述方法进一步包括:
检测所述消息的所述文本内容部分中的机器人调用符号;以及
基于检测到所述机器人调用符号,而检测到所述消息指示消息收发机器人调用。
3.根据权利要求1所述的方法,所述消息与消息线程相关联,插入到所述消息队列中的所述消息收发机器人响应被标记用于在所述消息线程中显示。
4.根据权利要求1所述的方法,所述消息与消息线程相关联,所述消息包括机器人订阅命令,所述方法进一步包括:
响应于所述机器人订阅命令,将所述消息线程订阅到所述消息收发机器人;
从所述消息收发机器人接收广播消息;
基于所述消息收发机器人确定用于所述广播消息的多个订户线程,所述多个订户线程包括所述消息线程;
将所述多个订户线程划分成多个订户线程块;
将所述多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
由所述多个广播工作者基于所述多个订户线程块而将所述广播消息添加到多个消息队列,所述多个消息队列包括所述消息队列。
5.一种消息收发设备,包括:
装置上的处理器电路;
在所述处理器电路上操作的消息收发系统的机器人框架组件,用于:
接收包含机器人别名的消息;
将包含所述机器人别名的所述消息提交给消息收发机器人,所述消息收发机器人具有注册到所述消息收发系统的与来自所述消息的所述机器人别名对应的注册名称;
从所述消息收发机器人接收响应;以及
返回对所述消息的响应;
在所述处理器电路上操作的消息收发组件,用于:
接收来自所述机器人框架组件的所述响应;以及
将所述响应添加到所述消息收发队列,以传递到客户端设备上的消息收发应用;
消息队列监视组件,其操作用于:
监视包括机器人别名消息的消息队列;
确定所述消息队列中的所述消息包括机器人别名,所述机器人别名对应于注册到消息收发机器人的所述消息收发系统的注册名称;以及
将所述消息提交给所述机器人框架组件;
其中,所述消息包括文本部分,所述文本部分包括机器人命令文本片段,以及其中:
所述机器人框架组件操作以接收所述机器人命令文本片段的命令初始部分;将所述命令初始部分提交给消息收发机器人;从所述消息收发机器人接收一个或多个预测的机器人命令文本片段,所述一个或多个预测的机器人命令文本片段包括所述机器人命令文本片段;并且将所述一个或多个预测的机器人命令文本片段传送到所述客户端设备。
6.根据权利要求5所述的设备,所述消息包括文本内容部分,所述设备进一步包括:
所述消息队列监视组件操作以检测所述消息的所述文本内容部分中的机器人调用符号;并且基于检测到所述机器人调用符号而检测到所述消息指示消息收发机器人调用。
7.根据权利要求5所述的设备,所述消息与消息线程相关联,插入到所述消息队列中的所述消息收发机器人响应被标记用于在所述消息线程中显示。
8.根据权利要求5所述的设备,所述消息与消息线程相关联,所述消息包括机器人订阅命令,所述设备进一步包括:
所述机器人框架组件操作以响应于所述机器人订阅命令而将所述消息线程订阅到所述消息收发机器人;
广播组件,操作以从所述消息收发机器人接收广播消息;基于所述消息收发机器人确定用于所述广播消息的多个订户线程,所述多个订户线程包括所述消息线程;将所述多个订户线程划分成多个订户线程块;并且将所述多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
所述多个广播工作者操作以基于所述多个订户线程块而将所述广播消息添加到多个消息队列,所述多个消息队列包括所述消息队列。
9.一种包括指令的非暂时性计算机可读存储介质,所述指令在被处理器执行时使系统:
在消息收发系统处监视包括机器人别名的消息的消息队列;
确定所述消息队列中的消息包括机器人别名,所述机器人别名对应于注册到消息收发机器人的所述消息收发系统的注册名称;
将包括所述机器人别名的所述消息提交给具有对应于来自所述消息的机器人别名的注册名称的消息收发机器人;
从所述消息收发机器人接收响应;以及
将所述响应添加到所述消息队列,以传递到客户端设备上的消息收发应用,
其中,所述消息包括文本部分,所述文本部分包括机器人命令文本片段,所述计算机可读存储介质包括另外的指令,所述另外的指令在被执行时使系统:
接收所述机器人命令文本片段的命令初始部分;
将所述命令初始部分提交给消息收发机器人;
从所述消息收发机器人接收一个或多个预测的机器人命令文本片段,所述一个或多个预测的机器人命令文本片段包括所述机器人命令文本片段;以及
将所述一个或多个预测的机器人命令文本片段传送到所述客户端设备。
10.根据权利要求9所述的非暂时性计算机可读存储介质,所述消息包括文本内容部分,所述计算机可读存储介质包括另外的指令,所述另外的指令在被执行时使系统:
检测所述消息的所述文本内容部分中的机器人调用符号;以及
基于检测到所述机器人调用符号,而检测到所述消息指示消息收发机器人调用。
11.根据权利要求9所述的非暂时性计算机可读存储介质,所述消息与消息线程相关联,所述消息包括机器人订阅命令,所述计算机可读存储介质包括另外的指令,所述另外的指令在被执行时使系统:
响应于所述机器人订阅命令,将所述消息线程订阅到所述消息收发机器人;
从所述消息收发机器人接收广播消息;
基于所述消息收发机器人确定用于所述广播消息的多个订户线程,所述多个订户线程包括所述消息线程;
将所述多个订户线程划分成多个订户线程块;
将所述多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
由所述多个广播工作者基于所述多个订户线程块而将所述广播消息添加到多个消息队列,所述多个消息队列包括所述消息队列。
12.一种消息收发方法,包括:
在消息收发服务器、邮件服务器和/或在消息收发系统的客户端前端服务器的消息收发组件处从客户端设备接收消息;
在消息收发系统处,监视包括机器人别名的消息的消息队列;
确定所述消息队列中的消息包括机器人别名,所述机器人别名对应于注册到消息收发机器人的所述消息收发系统的注册名称;
将包括所述机器人别名的所述消息提交给具有对应于来自所述消息的机器人别名的注册名称的消息收发机器人;
从所述消息收发机器人接收响应;以及
将所述响应添加到所述消息队列,以传递到客户端设备上的消息收发应用;
其中,所述消息包括文本部分,所述文本部分包括机器人命令文本片段,所述方法进一步包括:
接收所述机器人命令文本片段的命令初始部分;
将所述命令初始部分提交给所述消息收发机器人;
从所述消息收发机器人接收一个或多个预测的机器人命令文本片段,所述一个或多个预测的机器人命令文本片段包括所述机器人命令文本片段;以及
将所述一个或多个预测的机器人命令文本片段传送到所述客户端设备。
13.根据权利要求12所述的方法,
其中,所述消息包括文本内容部分,进一步包括:
检测所述消息的所述文本内容部分中的机器人调用符号;以及
基于检测到所述机器人调用符号而检测到所述消息指示消息收发机器人调用,和/或
其中,包括用于机器人的信息的所述消息由发送方客户端设备标记在于所述消息的元数据部分被标记有机器人调用标志,并且其中,消息监视组件被配置为基于检测到机器人调用标志而检测到所述消息指示消息收发机器人调用。
14.根据权利要求12或13 所述的方法,所述消息与消息线程相关联,所述消息包括机器人订阅命令,所述方法进一步包括:
响应于所述机器人订阅命令,将所述消息线程订阅到所述消息收发机器人;
从所述消息收发机器人接收广播消息;
基于所述消息收发机器人确定用于所述广播消息的多个订户线程,所述多个订户线程包括所述消息线程;
将所述多个订户线程划分成多个订户线程块;
将所述多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
由所述多个广播工作者基于所述多个订户线程块而将所述广播消息添加到多个消息队列,所述多个消息队列包括所述消息队列。
15.一种消息收发设备,包括:
处理器电路,所述处理器电路在消息收发服务器和/或邮件服务器上,和/或在消息收发系统的客户端前端服务器的消息收发组件处;
在处理器电路上操作的消息收发系统的机器人框架组件,用于:
接收包含机器人别名的消息;
将包含所述机器人别名的所述消息提交给消息收发机器人,所述消息收发机器人具有注册到所述消息收发系统的与来自所述消息的所述机器人别名对应的注册名称;
从所述消息收发机器人接收响应;以及
返回对所述消息的响应;
在所述处理器电路上操作的消息收发组件,用于:
接收来自所述机器人框架组件的所述响应;以及
将所述响应添加到所述消息收发队列,以传递到客户端设备上的消息收发应用;
消息队列监视组件,其操作用于:
监视包括机器人别名消息的消息队列;
确定所述消息队列中的所述消息包括机器人别名,所述机器人别名对应于注册到消息收发机器人的所述消息收发系统的注册名称;以及
将所述消息提交给所述机器人框架组件;
其中,所述消息包括文本部分,所述文本部分包括机器人命令文本片段,以及其中:
所述机器人框架组件操作以接收所述机器人命令文本片段的命令初始部分;将所述命令初始部分提交给所述消息收发机器人;从所述消息收发机器人接收一个或多个预测的机器人命令文本片段,所述一个或多个预测的机器人命令文本片段包括所述机器人命令文本片段;并且将所述一个或多个预测的机器人命令文本片段传送到所述客户端设备。
16.根据权利要求15所述的设备,所述消息包括文本内容部分,进一步包括:
所述消息队列监视组件操作以检测所述消息的所述文本内容部分中的机器人调用符号;并且基于检测到所述机器人调用符号而检测到所述消息指示消息收发机器人调用;和/或
包含用于机器人的信息的所述消息由发送方客户端设备标记在于所述消息的元数据部分被标记有机器人调用标志,并且其中,消息监视组件被配置为基于检测到所述机器人调用标志而检测到所述消息指示消息收发机器人调用。
17.根据权利要求15或16所述的设备,所述消息与消息线程相关联,所述消息包括机器人订阅命令,所述设备进一步包括:
所述机器人框架组件操作以响应于所述机器人订阅命令而将所述消息线程订阅到所述消息收发机器人;
广播组件,操作以从所述消息收发机器人接收广播消息;基于所述消息收发机器人确定用于所述广播消息的多个订户线程,所述多个订户线程包括所述消息线程;将所述多个订户线程划分成多个订户线程块;并且将所述多个订户线程块中的每一个指派给多个广播工作者中的一个广播工作者;以及
所述多个广播工作者操作以基于所述多个订户线程块而将所述广播消息添加到多个消息队列,所述多个消息队列包括所述消息队列。
18.一种包括指令的计算机可读存储介质,所述指令在被处理器执行时使系统执行根据权利要求12至14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210406190.1A CN115037712A (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/054,103 | 2016-02-25 | ||
US15/054,103 US11477139B2 (en) | 2016-02-25 | 2016-02-25 | Techniques for messaging bot rich communication |
PCT/US2016/019969 WO2017146742A1 (en) | 2016-02-25 | 2016-02-26 | Techniques for messaging bot rich communications |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210406190.1A Division CN115037712A (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110383772A CN110383772A (zh) | 2019-10-25 |
CN110383772B true CN110383772B (zh) | 2022-04-01 |
Family
ID=59678608
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210406190.1A Pending CN115037712A (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
CN201680084948.7A Active CN110383772B (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210406190.1A Pending CN115037712A (zh) | 2016-02-25 | 2016-02-26 | 用于消息收发机器人丰富通信的技术 |
Country Status (10)
Country | Link |
---|---|
US (2) | US11477139B2 (zh) |
JP (2) | JP6782301B2 (zh) |
KR (2) | KR102527445B1 (zh) |
CN (2) | CN115037712A (zh) |
AU (1) | AU2016393828A1 (zh) |
BR (1) | BR112018067356A2 (zh) |
CA (1) | CA3015198A1 (zh) |
IL (1) | IL261108A (zh) |
MX (1) | MX2018010193A (zh) |
WO (1) | WO2017146742A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10956485B2 (en) | 2011-08-31 | 2021-03-23 | Google Llc | Retargeting in a search environment |
US10630751B2 (en) | 2016-12-30 | 2020-04-21 | Google Llc | Sequence dependent data message consolidation in a voice activated computer network environment |
US10614153B2 (en) | 2013-09-30 | 2020-04-07 | Google Llc | Resource size-based content item selection |
US9703757B2 (en) | 2013-09-30 | 2017-07-11 | Google Inc. | Automatically determining a size for a content item for a web page |
US10431209B2 (en) | 2016-12-30 | 2019-10-01 | Google Llc | Feedback controller for data transmissions |
JP6638087B2 (ja) | 2015-12-21 | 2020-01-29 | グーグル エルエルシー | メッセージ交換スレッド用の自動提案 |
WO2017112796A1 (en) | 2015-12-21 | 2017-06-29 | Google Inc. | Automatic suggestions and other content for messaging applications |
US20170289071A1 (en) * | 2016-04-04 | 2017-10-05 | Kik Interactive Inc. | System, apparatus and method for autonomous messaging integration |
US10567312B2 (en) | 2016-04-11 | 2020-02-18 | Facebook, Inc. | Techniques for messaging bot controls based on machine-learning user intent detection |
US10387461B2 (en) | 2016-08-16 | 2019-08-20 | Google Llc | Techniques for suggesting electronic messages based on user activity and other context |
JP6760797B2 (ja) * | 2016-08-24 | 2020-09-23 | Line株式会社 | プログラム、情報処理方法、及び端末 |
US10015124B2 (en) * | 2016-09-20 | 2018-07-03 | Google Llc | Automatic response suggestions based on images received in messaging applications |
CN109716727B (zh) * | 2016-09-20 | 2021-10-15 | 谷歌有限责任公司 | 获取访问与用户相关联的数据的许可的方法及系统 |
WO2018057541A1 (en) | 2016-09-20 | 2018-03-29 | Google Llc | Suggested responses based on message stickers |
US10356029B2 (en) | 2016-09-21 | 2019-07-16 | Facebook, Inc. | Methods and systems for presenting modules in an inbox interface |
US11233760B2 (en) | 2016-09-21 | 2022-01-25 | Facebook, Inc. | Module ranking for a modular inbox |
US10367767B2 (en) | 2016-09-21 | 2019-07-30 | Facebook, Inc. | Modular inbox and generation of content modules |
US10841264B2 (en) | 2016-09-21 | 2020-11-17 | Facebook, Inc. | Method and system for presenting a subset of messages in a modular inbox |
US20180083896A1 (en) | 2016-09-21 | 2018-03-22 | Facebook, Inc. | Modular inbox surface for content delivery |
US10437841B2 (en) * | 2016-10-10 | 2019-10-08 | Microsoft Technology Licensing, Llc | Digital assistant extension automatic ranking and selection |
US10416846B2 (en) | 2016-11-12 | 2019-09-17 | Google Llc | Determining graphical element(s) for inclusion in an electronic communication |
US20180188905A1 (en) * | 2017-01-04 | 2018-07-05 | Google Inc. | Generating messaging streams with animated objects |
US10687178B2 (en) * | 2017-03-03 | 2020-06-16 | Orion Labs, Inc. | Phone-less member of group communication constellations |
JP6929670B2 (ja) * | 2017-03-15 | 2021-09-01 | Line株式会社 | プログラム、情報処理方法、端末 |
US11361266B2 (en) * | 2017-03-20 | 2022-06-14 | Microsoft Technology Licensing, Llc | User objective assistance technologies |
US10474673B2 (en) * | 2017-03-28 | 2019-11-12 | Salesforce.Com, Inc. | Methods and apparatus for performing machine learning to improve capabilities of an artificial intelligence (AI) entity used for online communications |
US11494440B1 (en) | 2017-04-12 | 2022-11-08 | Meta Platforms, Inc. | Proactive and reactive suggestions for a messaging system |
US11025566B2 (en) | 2017-04-12 | 2021-06-01 | Facebook, Inc. | Techniques for intent-based search for bots |
US10846615B2 (en) | 2017-04-12 | 2020-11-24 | Facebook, Inc. | Techniques for reinforcement for bots using capability catalogs |
US11341173B2 (en) * | 2017-04-12 | 2022-05-24 | Meta Platforms, Inc. | Techniques for personalized search for bots |
US10706410B2 (en) * | 2017-05-09 | 2020-07-07 | Microsoft Technology Licensing, Llc | Service-hosted payment request |
WO2018212822A1 (en) | 2017-05-16 | 2018-11-22 | Google Inc. | Suggested actions for images |
US10348658B2 (en) | 2017-06-15 | 2019-07-09 | Google Llc | Suggested items for use with embedded applications in chat conversations |
US10404636B2 (en) | 2017-06-15 | 2019-09-03 | Google Llc | Embedded programs and interfaces for chat conversations |
US10798029B2 (en) * | 2017-07-25 | 2020-10-06 | Freshworks, Inc. | System and apparatus for generation of multiple automated ephemeral chat messages |
KR102575711B1 (ko) * | 2017-11-01 | 2023-09-07 | 현대자동차주식회사 | 전자 장치 및 카 셰어링 서비스에서의 여정 스케줄링 방법 |
US10891526B2 (en) | 2017-12-22 | 2021-01-12 | Google Llc | Functional image archiving |
CN110377240B (zh) * | 2018-04-13 | 2024-06-14 | 富士胶片商业创新有限公司 | 消息提供装置、消息提供方法以及非暂时计算机可读介质 |
US10249140B1 (en) * | 2018-05-10 | 2019-04-02 | Huuuge Global Ltd. | System and method for playing online game |
USD950587S1 (en) | 2018-08-31 | 2022-05-03 | Zoox, Inc. | Display screen or portion thereof having a graphical user interface |
US11315692B1 (en) | 2019-02-06 | 2022-04-26 | Vitalchat, Inc. | Systems and methods for video-based user-interaction and information-acquisition |
US11562128B2 (en) * | 2020-03-30 | 2023-01-24 | Bank Of America Corporation | Data extraction system for targeted data dissection |
CN113407092A (zh) * | 2021-06-17 | 2021-09-17 | 北京达佳互联信息技术有限公司 | 一种文本框信息处理方法、装置、电子设备及存储介质 |
US11870651B2 (en) | 2021-11-29 | 2024-01-09 | Sap Se | Landscape model verification system |
US20240073160A1 (en) * | 2022-08-25 | 2024-02-29 | Equals 3 LLC | Providing a system-generated response in a messaging session |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756172A (zh) * | 2004-09-29 | 2006-04-05 | 上海赢思软件技术有限公司 | 一种短信机器人系统 |
CN101741759A (zh) * | 2008-11-24 | 2010-06-16 | 中国电信股份有限公司 | 基于即时通信的智能交互系统及交互方法 |
CN101789008A (zh) * | 2010-01-26 | 2010-07-28 | 武汉理工大学 | 人机接口系统知识库及其构建方法 |
CN104813311A (zh) * | 2012-12-11 | 2015-07-29 | 纽昂斯通讯公司 | 用于多人的虚拟代理推荐的系统和方法 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7861252B2 (en) * | 2001-03-21 | 2010-12-28 | Andrzej Uszok | Intelligent software agent system architecture |
US20040189698A1 (en) | 2003-03-26 | 2004-09-30 | Nortel Networks Limited | Instant messaging to service bureau |
US20060259555A1 (en) | 2005-05-16 | 2006-11-16 | Imlogic, Inc. | Systems and methods for creating and/or utilizing virtual automated agents |
US8737579B2 (en) * | 2005-08-03 | 2014-05-27 | At&T Intellectual Property I, L.P. | Methods of routing messages using a listener registry |
US20070198474A1 (en) * | 2006-02-06 | 2007-08-23 | Davidson Michael P | Contact list search with autocomplete |
US20070294224A1 (en) * | 2006-06-16 | 2007-12-20 | Jean-Jacques Heler | Tracking discrete elements of distributed transactions |
US8393967B2 (en) * | 2007-04-27 | 2013-03-12 | Microsoft Corporation | Construction of gaming messages with contextual information |
US8126479B2 (en) * | 2008-01-08 | 2012-02-28 | Global Alert Network, Inc. | Mobile alerting network |
US9412095B2 (en) | 2008-01-09 | 2016-08-09 | International Business Machines Corporation | Status and time-based delivery services for instant messengers |
US8232973B2 (en) * | 2008-01-09 | 2012-07-31 | Apple Inc. | Method, device, and graphical user interface providing word recommendations for text input |
US8479106B2 (en) | 2009-02-27 | 2013-07-02 | Research In Motion Limited | Method and device to simplify message composition |
US8230031B2 (en) | 2010-03-01 | 2012-07-24 | Infosys Technologies Limited | System and method for providing enhanced instant messaging |
US8484659B2 (en) * | 2010-04-20 | 2013-07-09 | Management Systems Resources, Inc. | Distributed processing of binary objects via message queues including a failover safeguard |
US8701020B1 (en) | 2011-02-01 | 2014-04-15 | Google Inc. | Text chat overlay for video chat |
US9578081B2 (en) | 2011-02-02 | 2017-02-21 | Imvu, Inc. | System and method for providing an actively invalidated client-side network resource cache |
US20120291034A1 (en) * | 2011-05-14 | 2012-11-15 | International Business Machines Corporation | Techniques for executing threads in a computing environment |
CN102202102B (zh) * | 2011-07-05 | 2014-08-13 | 施昊 | 基于云计算架构的网络服务聚合系统及其聚合方法 |
US8682802B1 (en) | 2011-11-09 | 2014-03-25 | Amazon Technologies, Inc. | Mobile payments using payment tokens |
KR101402506B1 (ko) * | 2011-12-01 | 2014-06-03 | 라인 가부시키가이샤 | 인스턴트 메시징 어플리케이션을 이용한 대화형 정보제공 시스템 및 방법 |
US8738715B2 (en) | 2012-01-31 | 2014-05-27 | Global Relay Communications Inc. | System and method for processing messages in a messaging service |
US9344391B2 (en) * | 2012-03-14 | 2016-05-17 | Microsoft Technology Licensing, Llc | High density hosting for messaging service |
KR20140047491A (ko) | 2012-10-11 | 2014-04-22 | (주)카카오 | 봇을 이용한 인스턴트 메시지 서비스 제공 방법 |
US20140122619A1 (en) | 2012-10-26 | 2014-05-01 | Xiaojiang Duan | Chatbot system and method with interactive chat log |
US9276802B2 (en) * | 2012-12-11 | 2016-03-01 | Nuance Communications, Inc. | Systems and methods for sharing information between virtual agents |
US20140164953A1 (en) | 2012-12-11 | 2014-06-12 | Nuance Communications, Inc. | Systems and methods for invoking virtual agent |
US20140179358A1 (en) * | 2012-12-20 | 2014-06-26 | Microsoft Corporation | Messages augmented with structured entities |
US8949841B2 (en) * | 2012-12-27 | 2015-02-03 | Nvidia Corporation | Approach for a configurable phase-based priority scheduler |
KR101821358B1 (ko) | 2013-01-22 | 2018-01-25 | 네이버 주식회사 | 다자간 메신저 서비스를 제공하는 방법 및 시스템 |
CN104079599A (zh) * | 2013-03-27 | 2014-10-01 | 招商局国际信息技术有限公司 | 一种消息实时同步方法以及集装箱码头作业系统 |
US9432838B2 (en) | 2013-08-09 | 2016-08-30 | Paypal, Inc. | System and methods for account creation using a feature phone |
WO2015051142A1 (en) | 2013-10-02 | 2015-04-09 | Assurant, Inc. | Mobile computing device instructional graphical overlay |
WO2015058293A1 (en) | 2013-10-23 | 2015-04-30 | Mcafee, Inc. | Method and processes for securely autofilling data fields in a software application |
US10051085B2 (en) | 2014-05-21 | 2018-08-14 | Verizon Patent And Licensing Inc. | System and method of data and command request processing |
US20160044380A1 (en) | 2014-06-12 | 2016-02-11 | Bertrand Barrett | Personal helper bot system |
-
2016
- 2016-02-25 US US15/054,103 patent/US11477139B2/en active Active
- 2016-02-26 JP JP2018544807A patent/JP6782301B2/ja not_active Expired - Fee Related
- 2016-02-26 KR KR1020187024682A patent/KR102527445B1/ko active Application Filing
- 2016-02-26 AU AU2016393828A patent/AU2016393828A1/en not_active Abandoned
- 2016-02-26 MX MX2018010193A patent/MX2018010193A/es unknown
- 2016-02-26 KR KR1020237013916A patent/KR20230058554A/ko active IP Right Grant
- 2016-02-26 BR BR112018067356A patent/BR112018067356A2/pt not_active Application Discontinuation
- 2016-02-26 CN CN202210406190.1A patent/CN115037712A/zh active Pending
- 2016-02-26 CN CN201680084948.7A patent/CN110383772B/zh active Active
- 2016-02-26 CA CA3015198A patent/CA3015198A1/en not_active Abandoned
- 2016-02-26 WO PCT/US2016/019969 patent/WO2017146742A1/en active Application Filing
-
2018
- 2018-08-12 IL IL261108A patent/IL261108A/en unknown
-
2020
- 2020-10-19 JP JP2020175331A patent/JP6955074B2/ja active Active
-
2022
- 2022-09-27 US US17/953,417 patent/US20230015178A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756172A (zh) * | 2004-09-29 | 2006-04-05 | 上海赢思软件技术有限公司 | 一种短信机器人系统 |
CN101741759A (zh) * | 2008-11-24 | 2010-06-16 | 中国电信股份有限公司 | 基于即时通信的智能交互系统及交互方法 |
CN101789008A (zh) * | 2010-01-26 | 2010-07-28 | 武汉理工大学 | 人机接口系统知识库及其构建方法 |
CN104813311A (zh) * | 2012-12-11 | 2015-07-29 | 纽昂斯通讯公司 | 用于多人的虚拟代理推荐的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6782301B2 (ja) | 2020-11-11 |
KR20230058554A (ko) | 2023-05-03 |
BR112018067356A2 (pt) | 2019-01-15 |
KR20180116290A (ko) | 2018-10-24 |
CN110383772A (zh) | 2019-10-25 |
WO2017146742A1 (en) | 2017-08-31 |
US20170250936A1 (en) | 2017-08-31 |
IL261108A (en) | 2018-10-31 |
KR102527445B1 (ko) | 2023-05-03 |
AU2016393828A1 (en) | 2018-08-30 |
US11477139B2 (en) | 2022-10-18 |
JP2021043983A (ja) | 2021-03-18 |
JP6955074B2 (ja) | 2021-10-27 |
JP2019511775A (ja) | 2019-04-25 |
MX2018010193A (es) | 2018-11-09 |
CN115037712A (zh) | 2022-09-09 |
US20230015178A1 (en) | 2023-01-19 |
CA3015198A1 (en) | 2017-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110383772B (zh) | 用于消息收发机器人丰富通信的技术 | |
US11700256B1 (en) | Techniques for group message thread link administration | |
US11552910B1 (en) | Techniques for messaging bot controls based on machine-learning user intent detection | |
US20170250935A1 (en) | Techniques for messaging bot app interactions | |
CN109219793B (zh) | 用于消息收发代理平台的方法、装置和非暂时性计算机可读存储介质 | |
US11025566B2 (en) | Techniques for intent-based search for bots | |
CN107820695B (zh) | 用于形式响应的自动确定的方法和设备 | |
US9760723B2 (en) | Techniques for in-app user data authorization | |
US10462217B2 (en) | Pivot interface element for a messaging system | |
EP3211840B1 (en) | Techniques for messaging bot rich communication | |
US20180183618A1 (en) | Techniques for group message thread link joining | |
US20180183748A1 (en) | Access Controls for Units of Content in a Messaging Service | |
US20180302345A1 (en) | Techniques for event-based recommendations for bots | |
US11341173B2 (en) | Techniques for personalized search for bots | |
US10846615B2 (en) | Techniques for reinforcement for bots using capability catalogs | |
US20180300161A1 (en) | Techniques for multiple-user bot applications | |
EP3388952A1 (en) | Techniques for intent-based search for bots |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan platform Co. Address before: California, USA Applicant before: Facebook, Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |