动态地将数据变换为预期接收者的上下文的制作方法

xiaoxiao2020-7-22  6

专利名称:动态地将数据变换为预期接收者的上下文的制作方法
动态地将数据变换为预期接收者的上下文背景每一天越来越多的人正在使用电子通信方法。例如,每天数百万的人利用电子邮件(“e-mail”)、即时消息收发和短消息收发服务(“SMS”)消息来彼此通信。人们每天还通过其他类型的通信服务来交换数百万的消息,诸如社交网络万维网(“Web”)站点和微博客服务。这些通信方法彻底变革了如今人们通信的方式。如今用于交换消息的方法的一个缺点源于这样一个事实这些方法所生成的消息中包含的数据一般是静态的。结果,通常需要消息接收者将消息中包含的某些数据转换成对其当前上下文更有用的形式。例如,消息发送者可以在消息中包括参考其自己的上下文来表达的数据。作为示例,到目的地的驾驶指南可能参考消息发送者的地理位置来定义。当预期接收者接收到消息时,接收者必须将指南变换到其自己的上下文。例如,接收者可能需要将驾驶指南的起始点重定义为他或她自己的地理位置。因此,对于使用如今的消息收发技术所创建的消息的发送者或接收者中的任一个来说,参考数据接收者的上下文来表达消息中包含的数据以使数据最有用通常是必要的。 然而,这一额外的努力对于消息的发送者或接收者中的任一个而言可能是非常耗时的。此处所做出的本发明正是对于这些和其他考虑事项而提出的。概述此处描述了用于动态地将数据变换为预期接收者的上下文的概念和技术。通过此处呈现的各实现,消息发送者可以参考其自己的上下文来表达消息中包含的数据并指定将数据变换为预期接收者的上下文。随后在将消息传递给接收者时或在将消息传递给接收者之前,用自动化的方式将消息中包含的数据变换为接收者的上下文。这使得消息发送者和接收者两者都从将消息中的数据变换为合适的上下文的耗时任务中解放出来。根据此处呈现的各实施例,发送者可以创建供发送给预期接收者的消息。例如,发送者可以创建供发送给接收者的电子邮件消息、即时消息、SMS消息、或其他类型的消息。在消息的创建期间,发送者可以将参考发送者的上下文来表达的数据插入到消息中。例如,发送者可以将参考其自己的地理位置、语言、文化、市场、年龄、性别、个人偏好、网络带宽、计算能力或其他上下文信息的数据插入到消息中。当发送者将参考其自己上下文来表达的数据插入到消息中时,可以询问他们该数据是否应该被动态地变换为预期接收者的上下文。如果发送者指示数据应该被变换为预期接收者的上下文,则确定预期接收者的上下文。例如,可以确定预期接收者的地理位置、 年龄、性别、个人偏好、网络带宽、计算能力或其他上下文信息。可以在发送者发送消息的时候、在预期接收者接收消息的时候、或者在发送消息和接收消息之间的时间确定预期接收者的上下文。一旦确定了预期接收者的上下文,将消息中的数据变换为预期接收者的上下文。 例如,将被插入到消息中、从消息发送者的地理位置的角度来表达的驾驶指南变换为接收者的地理位置的角度。作为另一示例,将被插入到消息中的一种货币的项目的价格转换成位于另一国家的消息接收者的适当货币。还可以执行其他类型的变换。
应该理解,虽然此处呈现的各实施例参考某些类型的电子消息来描述,但可以使用此处呈现的各概念和技术来变换任何类型的电子通信。应当理解,上述主题也可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些概念。 本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。附图简述

图1是示出由此处所提出的各实施例提供的说明性操作环境和若干软件组件的各方面的网络图;图2A-2B是示出此处提供的用于指定消息中包含的数据应该从发送者的上下文变换为预期接收者的上下文的一个说明性用户界面的各方面的用户界面图;图3是示出此处提供的用于动态地将消息中的数据从消息发送者的上下文变换为消息预期接收者的上下文的说明性例程的各方面的流程图;以及图4是示出能够实现此处所呈现的实施例的各方面的计算系统的说明性计算机硬件和软件体系结构的计算机体系结构图。详细描述以下详细描述涉及用于动态地将数据从消息发送者的上下文变换为消息预期接收者的上下文的概念和技术。尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了此处描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施此处描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。在下面的详细描述中,将参考构成本发明的一部分的附图,并且在附图中作为说明示出了各具体实施例或示例。现在参考附图(全部若干附图中相同的标号表示相同的元素),将描述用于动态地将参考发送者的上下文来表达的数据变换为接收者的上下文的计算系统和方法的各方面。现在转向图1,将提供关于在此呈现的各实施例所提供的说明性操作环境和若干软件组件的细节。具体地,图1示出用于动态地将数据从消息发送者的上下文变换为消息预期接收者的上下文的系统的各方面。如图1所示,此处提供的一个系统包括被配置成通过网络106连接到服务器计算机104A的若干客户机计算机102A-102B。在一个实施例中, 客户机计算机102A-1(^B是标准台式计算机、膝上型计算机、或能够执行客户机应用程序 110的移动计算设备。应该理解,虽然客户机计算机102A-102B在此处呈现的各实施例中被描述为标准台式计算机,但可以使用其他类型的计算系统来具体化此处呈现的技术,该其他类型的计算系统为诸如移动电话、智能电话、机顶盒、以及其他类型的计算系统。在此处呈现的一个实施例中,客户机应用程序110包括Web浏览器应用程序。如本领域技术人员已知的,Web浏览器应用程序是被配置为将对网页和其他相关联的内容的请求发送给可经由局域网或广域网访问的其他计算机的应用程序。Web浏览器应用程序还被配置为接收对这些请求的响应并呈现所接收的网页和相关文件以供用户查看,诸如用户 108A-108B。在此处呈现的另一实施例中,客户机应用程序110包括即时消息收发客户机应用程序。如本领域公知的,即时消息收发客户机允许用户几乎实时地与即时消息收发客户机的另一用户交换消息。应该理解,虽然此处呈现的各实施例将客户机应用程序110描述为 Web浏览器应用程序或即时消息收发客户机,但客户机应用程序110可以包括其他类型的应用程序。例如,客户机应用程序110可以包括用于发送SMS消息或用于经由微博客服务发送消息的程序。一般而言,客户机应用程序110可以包括提供将消息发送给其他人的功能的任何类型的应用程序。在此处呈现的一个实施例中,图1所示的服务器计算机104A包括被配置为执行服务器应用程序112的标准服务器计算机,并且服务器应用程序112包括被配置为提供基于 Web的电子邮件(“e-mail”)服务的程序。通过由应用程序112提供的基于Web的用户界面,用户108A-108B可以使用分别在客户机计算机102A-102B上执行的Web浏览器应用程序来发送和接收电子邮件消息。然而,应该理解,虽然此处呈现的一个实施例是在基于Web 的电子邮件服务的上下文中描述的,但此处呈现的各实施例可用于被配置为允许用户发送和接收消息的任何类型的服务器应用程序112。还应该理解,图1所示和此处描述的服务器应用程序112可以包括除了此处描述的之外的多得多的功能。在另一实施例中,服务器应用程序112包括即时消息收发服务器应用程序。即时消息收发服务器应用程序是被配置为帮助即时消息收发客户机应用程序建立与其他即时消息收发客户机的连接的服务器应用程序。在某些即时消息收发实现中,即时消息收发服务器应用程序还可以中继即时消息收发客户机之间的即时消息。应该理解,虽然服务器应用程序112在此处的各实施例中被描述为用于提供基于Web的电子邮件的服务器应用程序或即时消息收发服务器应用程序,但服务器应用程序112可以包括提供发送和/或接收消息的功能的任何类型的服务器应用程序。应该理解,虽然图1只示出了两个客户机计算机102A-102B和单个服务器计算机104A,但可以使用任意数量的这些计算系统。此外,应该理解,虽然图1只示出单个网络 106,但可以使用多得多的网络连接来实现客户机计算机102A-102B和服务器计算机104A 之间的数据通信。就此,应该理解,图1所示的简化网络体系结构只是说明性的,并且可以使用比图1所示的更多或更少的软件和硬件组件来实现此处呈现的各实施例。根据各实施例,客户机计算机102A的用户108A使用客户机应用程序110来与服务器应用程序112通信。具体地,通过服务器应用程序112所提供的功能,用户108A可以创建供发送给另一用户,诸如用户108B的消息114。应该理解,消息114可以包括电子邮件消息、即时消息、SMS消息、通过微博客服务发送的消息、或实质上任何其他类型的电子消肩、ο在消息114的创建期间,用户108A可以将在用户108A(用户108A在此处可以被称为“消息发送者”)的上下文中表达的数据116A插入到消息114中。数据116A包括参考消息发送者108A的上下文来表达的任何类型的数据。例如,消息发送者108A可以将参考其自己的地理位置、年龄、性别、个人偏好、网络带宽、计算能力或其他上下文信息的数据 116A插入到消息114中。在一个实施例中,服务器应用程序112被配置为确定消息114包括在消息发送者 108A的上下文中表达的数据116A。作为对其的响应,服务器应用程序112还被配置为询问消息发送者108A他们是否希望将数据116A动态地变换为用户108B (用户108B在此处被称为“消息接收者”)的上下文。如果消息发送者108A选择将数据116A变换为消息接收者 108B的上下文,则服务器应用程序112使用变换引擎118来执行变换。根据各实施例,变换引擎118是被配置为将在消息发送者108A的上下文中表达的数据116A变换为在消息接收者108B的上下文中表达的数据116B的软件组件。为了将在消息发送者108A的上下文中表达的数据116A变换为在消息接收者108B的上下文中表达的数据116B,变换引擎118确定消息接收者108B的上下文。为了确定消息接收者108B的上下文,变换引擎118可以使用存储在用户简档122 或与消息接收者108相关联的服务帐户中的数据。根据各实施例,用户简档或服务帐户可以包括诸如地理位置、语言、文化、市场、年龄、性别、网络带宽、计算能力的信息和关于消息接收者108B以及他或她相关联的客户机计算机102B的其他信息。根据其他实施例,变换引擎118可以从客户机计算机102B接收描述消息接收者 108B的当前上下文的数据。例如,在一个实施例中,客户机计算机102B用能够确定客户机计算机102B的当前地理位置的硬件或软件组件来配置。变换引擎118可以从客户机计算机102B接收该数据并在将数据116A变换为消息接收者108B的上下文时使用该数据。类似地,从客户机计算机102B接收的其他数据可以描述消息接收者108B的当前上下文。例如,可以将客户机计算机102B的计算能力以及通过其到网络106的连接可用的带宽提供给变换引擎118并且在变换数据116A时使用这些信息。根据其他实现,变换引擎118可以与服务器计算机104B通信。根据各实施例,服务器计算机104B提供由变换引擎118使用以便将数据116A变换为预期接收者108B的上下文的数据。例如,在一个实现中,服务器计算机104B提供用户108A和108B可以使用来导航到特定位置的指南。根据其他实施例,服务器计算机104B可以提供用于转换货币、转换图形图像或视频的功能,或者提供用户108B中的一个的上下文中的其他数据。一旦变换引擎118将数据116A变换为消息接收者108B的上下文,将经变换的数据116B放在消息114中。服务器应用程序112随后将包括有在预期接收者的上下文中表达的数据116B的消息114发送给客户机计算机102B。在提供基于Web的电子邮件的服务器应用程序112的上下文中,用户108B可以使用客户机应用程序110来登录服务器应用程序112来检索消息114。在提供即时消息收发服务的服务器应用程序112的上下文中,可以将消息114发送到在客户机计算机102B上执行的即时消息收发客户机。仍然参考图1,将参考在消息发送者108A的上下文中表达的数据116的若干说明性示例来描述变换引擎118的操作。例如,在一个实现中,由消息发送者108A插入到消息 114中的数据116A包括参考消息发送者108A的地理位置来定义的到目的地的指南。在该示例中,变换引擎118被配置为变换指南从而使得它们从消息接收者108B的地理位置的角度被表达。为了执行该功能,可以咨询用户简档112、服务帐户或其他客户机计算机102B以获得消息接收者108B的当前地理位置。
一旦确定了消息接收者108B的地理位置,可以咨询服务器计算机104B以获得从消息接收者108B的当前地理位置到预期目的地的适当的指南。随后可以将现在在消息接收者108B的上下文中描述的数据116B插入到供发送给消息接收者108B的消息114中。以此方式,使得消息接收者108B从将以消息发送者108A的地理位置的角度来表达的指南重新格式化的耗时任务中解放出来。在另一说明性示例中,消息114包括描述对于在消息发送者108A的当前地理位置中使用的货币单位的货币量的数据116A。例如,如果消息发送者108A位于美国,则数据 116A可以使用美元来表达。为了在该说明性示例中变换数据116A,变换引擎118可以确定消息接收者108B的地理位置。如上所讨论的,用户简档122中包含的数据或从客户机计算机102B接收的数据可以指示消息接收者108B的地理位置。如果消息接收者108B位于使用与用来表达数据116A不同的货币的国家,则变换引擎118可以使用从服务器计算机104B 检索的数据来标识合适的货币和用于在货币之间转换的汇率。随后将包括用消息接收者 108B的当前地理位置的适当货币单位来表达的货币的数据116B插入到消息114中。根据又一示例,消息114可以包括包含为到网络106的高带宽连接而被格式化的图像或视频的数据116。在该示例中,变换引擎118可以变换图像从而使得它们在大小上更适于发送给可能具有到网络106的较慢网络连接的客户机计算机102B。在该示例中,变换引擎118可以降低图像的分辨率或对图像执行较高水平的压缩来使得它们更适于发送给客户机计算机102B。就此,可以从用户简档122或从客户机计算机102B检索关于客户机计算机102B和网络106之间的网络连接的能力的信息。以此方式,消息发送者108A发送给消息接收者108B的图像可以被配置为适于客户机计算机102B可用的网络带宽。用相似的方式,变换引擎118可以基于客户机计算机102B的所标识的计算能力来变换图像、视频或其他数据。根据另一示例,消息发送者108A可以构成包括包含参考消息发送者108A的偏好来作出的电影推荐的数据116的消息114。在该示例中,变换引擎118被配置为从服务器计算机104B检索数据来基于消息接收者108B的偏好来变换电影推荐。一旦变换了电影推荐,将包括其中含有数据116B的消息114发送给消息接收者108B,所述数据116B包括从消息接收者108B的上下文的角度来表达的电影推荐。应该理解,以上描述的各示例只是说明性的,并且变换引擎118可以将从消息发送者的上下文来表达的任何类型的数据变换为消息接收者108B的上下文。还应该理解,虽然提供了关于可用于标识消息发送者108A和消息接收者108B的上下文的数据类型的若干说明性示例,但实质上可以使用消息发送者108B或消息接收者108B专用的任何类型的数据。还应该理解,虽然图1所示的各实施例使用在服务器计算机104A上执行的变换引擎118,但此处呈现的数据变换可以在不使用独立的变换引擎的情况下执行。例如在一个实施例中,变换可以直接由服务器应用程序112执行。在另一实施例中,此处描述的变换直接由在客户机计算机102A处执行的客户机应用程序110执行。在另一实施例中,此处描述的变换直接由在客户机计算机102B上执行的客户机应用程序110执行。在其他实施例中,变换可以通过在客户机计算机102A、服务器计算机104A和客户机计算机102B处执行的操作的组合来执行。此外,应该理解,虽然此处描述的说明性变换是涉及从服务器计算机104B检索的数据的复杂变换,但还可以执行不需要从另一数据源获得数据的其他较简单的变换。现在参考图2A,将描述示出由服务器应用程序112提供的一个用户界面的说明性用户界面200A。具体地,图2示出在服务器应用程序112被配置为提供用于通过基于Web 的用户界面来发送和接收电子邮件消息的设施的实施例中由服务器应用程序112提供的说明性用户界面200A。用户界面200A由在客户机计算机102A-102B中的一个上执行的Web 浏览器应用程序基于从服务器应用程序112接收的数据来呈现和显示。在一个实现中,用户界面200A包括标识服务器应用程序112的第一用户界面窗格 202A。可以提供用户108A-108B可以通过其来选择包含电子邮件项的各种文件夹的另一用户界面窗格202B。在该实施例中,还提供了包括用于允许用户创建供发送给另一用户的电子邮件消息114的功能的用户界面窗格202C。在该实施例中,用户108A利用在客户机计算机102A上执行的客户机应用程序110来创建供发送给用户108B的消息114,用户108B正使用在客户机计算机102B上执行的客户机应用程序110。然而应该理解,虽然此处呈现的各示例在单个消息接收者的上下文中描述,但此处呈现的各实施例可以按相似的方式用于多个消息接收者。在标识多个接收者的情况下,发送给各个接收者的每一消息可以基于该接收者的特定上下文来定制。在图2A所示的示例中,用户108A创建了邀请用户108B观看电影的消息114。作为消息114的一部分,用户108A将数据116A插入到消息114中。具体地,在图2A所示的示例中,数据116A包括在消息发送者108A的上下文中表达的到电影院的指南。具体地,数据116A从消息发送者108A的当前地理位置被表达。响应于在消息发送者108A的上下文中表达的数据116A的插入,服务器应用程序 112生成用户输入对话框204。用户输入对话框204询问用户108A他们是否想要动态地将数据116A变换为消息接收者108B的上下文。如果用户108A选择用户界面控件206A,则变换引擎118A将按以下所述的方式来将数据116A变换为消息接收者108B的上下文。如果用户108A选择用户界面控件206B,则将不执行数据116A的变换。应该理解,虽然图2A所示的实施例向用户108A显示用户界面来询问他们是否希望将数据116A变换为消息接收者108B的上下文,但不一定要提供这样的用户界面。在不提供用户界面的实施例中,可以自动地将数据116A变换为消息接收者108B的上下文。在另一实施例中,可以向消息接收者108B显示用户输入对话框204。在这种情况下,接收者 108B可以指示他们是否想要将数据116A变换成他们的上下文。图2B示出在接收到包括有已经被变换成消息接收者108B的上下文的数据116B 的消息114之后提供给消息接收者108B的说明性界面200B。如图2A所示,客户机计算机 102B所显示的用户界面200B包括用户界面窗格202A-202C。然而,在该示例中,使用用户界面窗格202C来显示已经从用户108A接收到的消息114。在该示例中,消息114中包含的数据116B已经由变换引擎118变换成消息接收者108B的上下文。如上所讨论的,为了执行变换,变换引擎118可以基于用户简档122的内容、基于从客户机计算机102B接收的数据、或基于从另一源接收的数据来确定消息接收者108B的地理位置。变换引擎118还可以使用从服务器计算机104B检索的数据来执行数据116A到消息接收者108B的上下文的变换。如上所讨论的,将数据116A变换为消息接收者108B的上下文使得接收者108B从基于他们自己的地理位置来重新配置指南的耗时过程中解放出来。应该理解,图2A-2B所示和所述的用户界面只是说明性的,并且可以提供其他类型的用户界面。现在参考图3,将提供关于此处呈现的用于动态地将数据从发送者的上下文变换为预期接收者的上下文的各实施例的其他细节。具体地,图3示出说明了在此处呈现的一个实施例中的客户机应用程序110和服务器应用程序112的操作的各方面的例程300。应理解,此处所述的逻辑操作被实现为(1) 一系列计算机实现的动作或运行于计算系统上的程序模块,和/或(2)计算系统内的互连的机器逻辑电路或电路模块。取决于计算系统的性能及其他要求,可以选择不同的实现。因此,此处描述的逻辑操作被不同地称为状态操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及它们的任何组合来实现。还应该明白,可以执行比附图中示出并在此处描述的操作更多或更少的操作。这些操作还可以按与此处所描述的不同的次序来执行。例程300在操作302开始,其中服务器应用程序112接收发送消息114的请求。从操作302,例程300继续至操作304,在那里服务器应用程序112确定消息114是否包括已经在消息发送者108A的上下文中被表达的数据116A。如果消息114不具有在消息发送者 108A的上下文中表达的数据116A,则例程300从操作304继续至操作310,如下所述。然而,如果消息114含有在消息发送者108A的上下文中的数据116A,则例程300从操作304 继续至操作306。在操作306,服务器应用程序112确定是否应该将数据116A变换为预期接收者 108B的上下文。例如,如上参考图2A所述,可以将用户界面对话框204呈现给用户108A来询问他们是否想要将数据变换到消息接收者108B的角度。如果要将数据116A变换为消息接收者108B的上下文,则例程300从操作308继续至操作312,如下所述。如果不要将数据116A变换为消息接收者108B的上下文,则例程300从操作308继续至操作310。在操作310,在不变换数据116A的情况下将消息114发送给消息接收者108B。从操作310,例程 300继续到操作318,并在那里结束。如果要将数据116A变换为消息接收者108B的上下文,则在操作312变换引擎118 确定预期接收者的上下文。如上所讨论的,可以使用用户简档122中存储的数据、从客户机计算机102B接收的数据、或用另一方式获得的数据来确定消息接收者108B的上下文。例如,存储在用户简档122中的数据可以标识接收者108B的地理位置、客户机计算机102B的能力、或对客户机计算机102B可用的网络带宽。用户简档122中包含的其他数据可以描述消息接收者108B的上下文。一旦确定了消息接收者108B的上下文,例程300从操作312 继续至操作314。在操作314,变换引擎118将已经在消息发送者108A的上下文中被表达的数据 116A变换为预期消息接收者108B的所确定的上下文。如上所讨论的,可以从服务器计算机104B检索数据并在变换过程中使用该数据。一旦数据116A被变换为在消息接收者108B 的上下文中表达的数据116B,例程300继续至操作316。在操作316,服务器应用程序112 将带有在消息接收者108B的上下文中表达的数据116B的消息114发送给客户机计算机 102B。例程300从操作316行进至操作318,其在此结束。应该理解,根据各实施例,数据116A的变换在消息发送者108A发送消息114的时候执行。根据其他实施例,数据116A的变换在消息接收者108B接收到消息114的时候执行。根据另一实施例,变换在消息发送者108A发送消息114的时间和消息接收者108B接收到消息114的时间之间执行。图4示出能够执行此处描述的用于用以上呈现的方式将内容从发送者的上下文变换为接收者的上下文的一个或多个软件组件的计算机400的说明性计算机体系结构。图 4所示的计算机体系结构示出常规台式计算机、膝上型计算机或服务器计算机,并可以用来执行此处呈现的被描述为在客户计算机102A-102B或服务器计算机104A-104B上执行的软件组件的任何方面。图4所示的计算机体系结构包括中央处理单元402( “CPU”)、包括随机存取存储器414( “RAM”)和只读存储器(“ROM”)416的系统存储器408、以及将存储器耦合至CPU 402的系统总线404。基本输入/输出系统被存储在ROM 416中,该系统包含帮助诸如在启动期间计算机400中的元件之间传递信息的基本例程。计算机400还包括用于存储操作系统418、数据、应用程序和其他程序模块的大容量存储设备410,这将在本文中更为详尽地描述。大容量存储设备410通过连接至总线404的大容量存储控制器(未示出)连接到 CPU 402。大容量存储设备410及其相关联的计算机可读介质为计算机400提供非易失性存储。虽然对此处包含的计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域的技术人员应该明白,计算机可读介质可以是可由计算机400 访问的任何可用计算机存储介质。作为示例而非限制,计算机可读介质可以包括以用于存储诸如计算机可读指令、 数据结构、程序模块之类的信息或其他数据的任何方法或技术实现的易失性和非易失性、 可移动和不可移动介质。例如,计算机可读介质包括但不限于,RAM、R0M、EPR0M、EEPR0M、闪存或其他固态存储器技术、⑶-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机400访问的任何其他介质。根据各实施例,计算机400可以使用通过诸如网络420之类的网络到远程计算机的逻辑连接来在联网环境中操作。计算机400可以通过连接至总线404的网络接口单元 406来连接到网络420。应当理解,网络接口单元406还可以被用来连接到其他类型的网络和远程计算机系统。计算机400还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器412,这些设备包括键盘、鼠标或者电子指示笔(未在图4中示出)。类似地,输入/输出控制器可以提供至显示屏、打印机或其他类型的输出设备(也未在图4中示出)的输出。如前简述的那样,多个程序模块和数据文件可以存储在计算机400的大容量存储设备410和RAM 414内,包括适于控制联网的台式计算机、膝上型计算机或服务器计算机的操作的操作系统418。大容量存储设备410和RAM 414还可以存储一个或多个程序模块。 具体地,大容量存储设备410和RAM 414可存储服务器应用程序112和变换引擎118,其每一个都在上文参考图1-3详细描述。大容量存储设备410和RAM 414还可存储其它类型的程序模块和数据。基于上述内容,应该理解,此处提供了用于将数据从消息发送者的上下文变换为消息接收者的上下文的技术。还应该理解,虽然此处呈现的各实施例参考某些类型的电子消息来描述,但可以使用此处呈现的各概念和技术来变换任何类型的电子通信。电子通信可包括但不限于,电子发送的或存储的消息、文档、数据文件或其他信息。虽然以计算机结构特征、方法动作、以及计算机可读介质专用的语言描述了本文呈现的主题,但是应该理解,在所附权利要求书中所限定的本发明不一定仅限于本文描述的具体特征、动作、或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形式来公开的。上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。
权利要求
1.一种用于动态地将数据(116A)从发送者(108A)的上下文变换为预期接收者 (108B)的上下文的方法,所述方法包括接收要将电子通信发送给预期接收者(108B)的请求,所述电子通信包括在所述电子通信的发送者(108A)的上下文中表达的数据(116A);接收要将在所述发送者(108A)的上下文中表达的数据(116A)变换为在所述预期接收者(108B)的上下文中表达的数据(116B)的请求;以及响应于接收到要将在所述发送者(108A)的上下文中表达的数据(116A)变换为在所述预期接收者(108B)的上下文中表达的数据(116B)的所述请求,确定所述预期接收者 (108B)的上下文,将在所述发送者(108A)的上下文中表达的数据(116A)变换为所述预期接收者(108B)的所确定的上下文,并试图将包括有在所述预期接收者(108B)的上下文中表达的数据(116B)的电子通信传递给所述预期接收者(108B)。
2.如权利要求1所述的方法,其特征在于,确定所述预期接收者的上下文包括确定所述预期接收者的地理位置。
3.如权利要求1所述的方法,其特征在于,确定所述预期接收者的上下文包括确定可用于与同所述预期接收者相关联的计算设备进行通信的网络带宽。
4.如权利要求1所述的方法,其特征在于,确定所述预期接收者的上下文包括从与所述预期接收者相关联的用户简档中检索数据来确定所述预期接收者的上下文。
5.如权利要求1所述的方法,其特征在于,确定所述预期接收者的上下文包括确定与所述预期接收者相关联的计算设备的一个或多个能力。
6.如权利要求1所述的方法,其特征在于,将在所述发送者的上下文中表达的数据变换为所述预期接收者的所确定的上下文包括在所述发送者发送所述电子通信的时候将在所述发送者的上下文中表达的数据变换为所述预期接收者的所确定的上下文。
7.如权利要求1所述的方法,其特征在于,将在所述发送者的上下文中表达的数据变换为所述预期接收者的所确定的上下文包括在所述预期接收者接收到所述电子通信的时候将在所述发送者的上下文中表达的数据变换为所述预期接收者的所确定的上下文。
8.如权利要求1所述的方法,其特征在于,将在所述发送者的上下文中表达的数据变换为所述预期接收者的所确定的上下文包括在所述发送者发送所述电子通信的时间与所述预期接收者接收到所述电子通信的时间之间将在所述发送者的上下文中表达的数据变换为所述预期接收者的所确定的上下文。
9.如权利要求1所述的方法,其特征在于,所述电子通信包括电子邮件消息。
10.如权利要求1所述的方法,其特征在于,所述电子通信包括即时消息。
11.一种其上存储有计算机可执行指令的计算机存储介质,所述指令在由计算机执行时使得所述计算机接收要发送消息(114)的请求,所述消息(114)具有包含在其中的、在所述消息(114) 的发送者(108A)的上下文中表达的数据(116A)响应于接收到要发送所述消息(114)的请求,确定所述消息(114)中包含的数据 (116A)是否应该被变换为所述消息(114)的预期接收者(108B)的上下文;以及响应于确定所述消息(114)应该被变换为所述预期接收者(108B)的上下文,确定所述消息(114)的所述预期接收者(108B)的上下文,将所述消息(114)中包含的所述数据(116A)变换为所述预期接收者(108B)的所确定的上下文,并且将包含在所述预期接收者 (108B)的上下文中表达的数据(116B)的消息(114)发送给所述预期接收者(108B)。
12.如权利要求11所述的计算机存储介质,其特征在于,确定所述预期接收者的上下文包括确定所述预期接收者的地理位置。
13.如权利要求11所述的计算机存储介质,其特征在于,确定所述预期接收者的上下文包括从与所述预期接收者相关联的用户简档中检索数据来确定所述预期接收者的上下文。
14.如权利要求11所述的计算机存储介质,其特征在于,确定所述预期接收者的上下文包括确定可用于与同所述预期接收者相关联的计算设备进行通信的网络带宽。
15.如权利要求11所述的计算机存储介质,其特征在于,确定所述预期接收者的上下文包括确定与所述预期接收者相关联的计算设备的一个或多个能力。
全文摘要
发送者可以创建供发送给预期接收者的消息。在消息的创建期间,发送者可以将参考发送者的上下文来表达的数据插入到消息中。当发送者将参考其自己的上下文来表达的数据插入到消息中时,询问他们是否应该将数据动态地变换为预期接收者的上下文。如果发送者指示数据应该被变换为预期接收者的上下文,则确定预期接收者的上下文。一旦确定了预期接收者的上下文,将消息中的数据变换为预期接收者的上下文,并且将包含经变换的数据的消息发送给预期接收者。
文档编号G06Q50/00GK102165483SQ200980139125
公开日2011年8月24日 申请日期2009年9月23日 优先权日2008年9月29日
发明者C·S·埃斯蒂斯, M·C·孔茨 申请人:微软公司

最新回复(0)