[go: up one dir, main page]

CN102609831B - Search message in e-mail system based on dialogue - Google Patents

Search message in e-mail system based on dialogue Download PDF

Info

Publication number
CN102609831B
CN102609831B CN201110416439.9A CN201110416439A CN102609831B CN 102609831 B CN102609831 B CN 102609831B CN 201110416439 A CN201110416439 A CN 201110416439A CN 102609831 B CN102609831 B CN 102609831B
Authority
CN
China
Prior art keywords
message
messages
conversation
user
dialog
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.)
Expired - Lifetime
Application number
CN201110416439.9A
Other languages
Chinese (zh)
Other versions
CN102609831A (en
Inventor
保罗.T.布克海特
张北为
林景宜
布赖恩.D.拉科夫斯基
桑杰夫.辛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US10/816,428 external-priority patent/US7912904B2/en
Priority claimed from US10/914,035 external-priority patent/US9819624B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of CN102609831A publication Critical patent/CN102609831A/en
Application granted granted Critical
Publication of CN102609831B publication Critical patent/CN102609831B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

公开了在具有一个或多个处理器和存储器的服务器系统执行的方法和服务器系统。所述方法包括:响应于来自各自的用户的单一搜索查询:搜索消息库以识别与各自的用户相关联的多个对话,其中,所述多个对话中的每一个包括至少一个与所述搜索查询相关的消息,并且所述多个识别的对话中的每一个包括共享满足预先定义的准则的公共特征集合的一个或多个消息;发送代表所识别的对话的至少一个子集的对话的列表,其中,所述列表中的至少一个对话包括多个消息;以及提供包括格式化信息的来自对话的列表的所选择对话的内容,所述格式化信息可视地区分所选择对话的一个或多个第一消息和所选择对话的一个或多个第二消息,其中,所述一个或多个第一消息与所述搜索查询相关,而所述一个或多个第二消息与所述搜索查询不相关。

Methods and server systems performed on a server system having one or more processors and memory are disclosed. The method includes: in response to a single search query from a respective user: searching a message repository to identify a plurality of conversations associated with the respective user, wherein each of the plurality of conversations includes at least one querying for related messages, and each of the plurality of identified dialogs includes one or more messages sharing a set of common characteristics satisfying predefined criteria; sending a list of dialogs representing at least a subset of the identified dialogs , wherein at least one conversation in the list includes a plurality of messages; and content of the selected conversation from the list of conversations is provided including formatted information that visually distinguishes one or more of the selected conversations. a first message and one or more second messages of the selected conversation, wherein the one or more first messages are related to the search query and the one or more second messages are related to the search query irrelevant.

Description

在基于对话的电子邮件系统中搜索消息Search for messages in a conversation-based email system

本申请是申请日为2005年3月25日、申请号为200580016413.8(国际申请号为PCT/US2005/010137)、发明名称为“在基于对话的电子邮件系统中显示对话”的发明专利申请的分案申请。This application is a branch of an invention patent application whose filing date is March 25, 2005, application number is 200580016413.8 (international application number is PCT/US2005/010137), and the title of the invention is "Displaying dialog in a dialog-based email system". case application.

技术领域 technical field

本发明总体上涉及客户机-服务器计算机网络系统领域,具体地,本发明涉及一种允许用户以有效的和用户界面友好的方式管理大量消息的系统与方法。The present invention relates generally to the field of client-server computer network systems, and more particularly, the present invention relates to a system and method that allow a user to manage large volumes of messages in an efficient and user-friendly manner.

背景技术 Background technique

为了工作和悠闲,每天,人们在计算机网络上发送和接收数以百万计的电子邮件(也写为“E-mail”)。在许多情况下,由于方便、容易使用以及近乎瞬间完成,电子邮件已成为人们交换信息的极为流行的通信渠道。For work and leisure, every day, people send and receive millions of electronic mails (also written as "E-mail") on computer networks. In many cases, e-mail has become an extremely popular communication channel for people to exchange information due to its convenience, ease of use, and near-instantaneous completion.

传统上,到达用户电子邮件账户的电子邮件消息以时间顺序由专用电子邮件客户机或者在Web浏览器窗口中单独地显示,例如,最近的消息出现在浏览器窗口的顶部,而最旧的消息出现在浏览器窗口的底部。然而,普遍的现象是,在不同时刻,由两个或两个以上的人发送的多条消息可能覆盖相同的标题。一起查看消息,将有助于用户按适当的上下文理解各条消息。Traditionally, e-mail messages arriving at a user's e-mail account are displayed in chronological order by a dedicated e-mail client or individually in a Web browser window, e.g., the most recent message appears at the top of the browser window and the oldest Appears at the bottom of the browser window. However, it is common that multiple messages sent by two or more people may cover the same header at different times. Viewing messages together will help users understand each message in its proper context.

人们特别希望具有一种根据它们各自的主题来组织和显示多条消息的系统与方法,该多条消息包括由用户接收的消息和由用户发送的消息。人们还特别希望涉及相同标题的所有消息和相同对话的形成部分被直观地显现,使得用户能够有效地标识由具体发送者所提交的具体消息,以及使得用户相对于对话中的其它消息,能够在上下文中知道该对话中的这些消息。It would be particularly desirable to have a system and method for organizing and displaying a plurality of messages, including messages received by a user and messages sent by a user, according to their respective topics. It is also particularly desirable that all messages related to the same title and forming part of the same conversation be visualized so that the user can efficiently identify a specific message submitted by a specific sender, as well as enable the user to identify in relation to other messages in the conversation. These messages in that conversation are known in context.

发明内容 Contents of the invention

在一个实施例中,一种处理消息的方法,接收导向用户的多条消息,其中,每条消息具有唯一的消息标识符。所述多条消息中的每一条消息与各自的对话相关联,其中,每一对话具有各自的对话标识符。而且,每一对话包括一条或多条消息的集合,其共享满足第一预先定义准则的公共特征集合。按第二预先定义准则所确定的次序,作为行集合,显示对话的列表,其中,每行对应于所列对话的一个,并且至少包括发送者列表、对话标题以及日期/时间值。当用户从所显示的对话列表中选择对话时,就显示对话的内容。In one embodiment, a method of processing messages receives a plurality of messages directed to a user, wherein each message has a unique message identifier. Each message of the plurality of messages is associated with a respective conversation, wherein each conversation has a respective conversation identifier. Also, each dialog includes a set of one or more messages that share a set of common characteristics satisfying a first predefined criterion. A list of conversations is displayed as a set of rows in an order determined by a second predefined criterion, where each row corresponds to one of the listed conversations and includes at least a list of senders, a conversation title, and a date/time value. When the user selects a conversation from the displayed conversation list, the content of the conversation is displayed.

根据本发明的一个方面,提供一种在具有一个或多个处理器和存储器的服务器系统执行的方法,该方法包括:响应于来自各自的用户的单一搜索查询:搜索消息库以识别与各自的用户相关联的多个对话,其中,所述多个对话中的每一个包括至少一个与所述搜索查询相关的消息,并且所述多个识别的对话中的每一个包括共享满足预先定义的准则的公共特征集合的一个或多个消息;发送代表所识别的对话的至少一个子集的对话的列表,其中,所述列表中的至少一个对话包括多个消息;以及提供包括格式化信息的来自对话的列表的所选择对话的内容,所述格式化信息可视地区分所选择对话的一个或多个第一消息和所选择对话的一个或多个第二消息,其中,所述一个或多个第一消息与所述搜索查询相关,而所述一个或多个第二消息与所述搜索查询不相关。According to one aspect of the present invention, there is provided a method performed at a server system having one or more processors and memory, the method comprising: in response to a single search query from a respective user: searching a message repository to identify a plurality of conversations associated with the user, wherein each of the plurality of conversations includes at least one message related to the search query, and each of the plurality of identified conversations includes sharing information that satisfies predefined criteria one or more messages of the set of common characteristics of the identified dialogs; sending a list of dialogs representing at least a subset of the identified dialogs, wherein at least one dialog in the list includes multiple messages; and providing formatted information from content of a selected conversation of a list of conversations, the formatted information visually distinguishes one or more first messages of the selected conversation from one or more second messages of the selected conversation, wherein the one or more A first message is relevant to the search query, and the one or more second messages are not relevant to the search query.

根据本发明的另一个方面,提供一种服务器系统,包括:用于响应于来自各自的用户的单一搜索查询搜索消息库以识别与各自的用户相关联的多个对话的装置,其中,所述多个对话中的每一个包括至少一个与所述搜索查询相关的消息,并且所述多个识别的对话中的每一个包括共享满足预先定义的准则的公共特征集合的一个或多个消息;用于发送代表所识别的对话的至少一个子集的对话的列表的装置,其中,所述列表中的至少一个对话包括多个消息;以及用于提供包括格式化信息的来自对话的列表的所选择对话的内容,所述格式化信息可视地区分所选择对话的一个或多个第一消息和所选择对话的一个或多个第二消息,其中,所述一个或多个第一消息与所述搜索查询相关,而所述一个或多个第二消息与所述搜索查询不相关。According to another aspect of the present invention, there is provided a server system comprising: means for searching a message repository to identify a plurality of conversations associated with a respective user in response to a single search query from a respective user, wherein the each of the plurality of dialogs includes at least one message related to the search query, and each of the plurality of identified dialogs includes one or more messages sharing a set of common characteristics satisfying predefined criteria; with means for sending a list of dialogs representing at least a subset of identified dialogs, wherein at least one dialog in the list includes a plurality of messages; and for providing a selected selection from the list of dialogs including formatted information Content of the dialog, the formatted information visually distinguishes one or more first messages of the selected dialog from one or more second messages of the selected dialog, wherein the one or more first messages are different from the selected The one or more second messages are not relevant to the search query.

附图说明 Description of drawings

为了更好地理解本发明的特性与实施例,应结合下列附图,参照以下各实施例的描述,其中,在所有附图中,相同的参照数字指向相同的部分。For a better understanding of the nature and embodiments of the present invention, reference should be made to the following description of various embodiments taken in conjunction with the following drawings, wherein like reference numerals refer to like parts throughout.

图1示意性地说明了根据本发明的基于客户机-服务器的网络系统的一个实施例。FIG. 1 schematically illustrates an embodiment of a client-server based network system according to the present invention.

图2是一个总流程图,说明了对话助手如何生成用于显示由对话管理系统提供的对话的各种表格。Figure 2 is a general flowchart illustrating how the dialog assistant generates various forms for displaying dialogs provided by the dialog management system.

图3A是一个流程图,说明了对话助手如何生成容纳对话列表的表格。Figure 3A is a flowchart illustrating how the dialog assistant generates a table containing a list of dialogs.

图3B为根据本发明的一个实施例的“收件箱”范畴中的对话列表的示意性屏幕截图(screenshot)。FIG. 3B is a schematic screenshot of a conversation list in the "Inbox" category according to one embodiment of the present invention.

图4A是一个流程图,说明了“更多动作”下拉列表的操作。FIG. 4A is a flowchart illustrating the operation of the "More Actions" drop-down list.

图4B为用户如何使用“更多动作”下拉列表把对话从一个范畴移至另一个范畴的屏幕截图。Figure 4B is a screenshot of how a user can use the "More Actions" drop-down list to move a conversation from one category to another.

图5A是一个流程图,说明了“添加标签”下拉列表的操作。FIG. 5A is a flow chart illustrating the operation of the "add label" drop-down list.

图5B为用户如何使用“添加标签”下拉列表向对话添加标签的屏幕截图。Figure 5B is a screenshot of how a user can add a tag to a conversation using the "Add Tag" drop-down list.

图6A是一个流程图,描述了对话助手如何响应对话管理系统的显示指令生成对话视图(view)。FIG. 6A is a flow chart describing how the dialog assistant generates a dialog view in response to a display command from the dialog management system.

图6B为根据本发明的一个实施例的对话视图的屏幕截图,其中,按压缩模式显示所有的消息。Figure 6B is a screenshot of a conversation view showing all messages in a compressed mode, according to one embodiment of the present invention.

图6C为根据本发明的一个实施例的对话视图的屏幕截图,其中,按压缩模式显示某些消息,并且按扩展模式显示某些消息。Figure 6C is a screenshot of a conversation view with some messages displayed in compressed mode and some messages displayed in expanded mode, according to one embodiment of the present invention.

图6D为根据本发明的一个实施例的对话视图的屏幕截图,其中,按扩展模式显示所有的消息。Figure 6D is a screenshot of a conversation view showing all messages in expanded mode, according to one embodiment of the present invention.

图6E为根据本发明的各种实施例的其中显示消息的对话视图的屏幕截图。Figure 6E is a screenshot of a conversation view in which messages are displayed according to various embodiments of the invention.

图7A为一个流程图,说明了对话助手如何生成用于显示匹配用户的搜索请求的对话的各种表格。FIG. 7A is a flowchart illustrating how the dialog assistant generates various forms for displaying dialogs matching a user's search request.

图7B为根据本发明的一个实施例的屏幕截图,其包括与查询项“Tahoe”相匹配的3个对话。Figure 7B is a screen shot including 3 dialogs matching the query term "Tahoe" according to one embodiment of the present invention.

图7C为根据本发明的一个实施例的、与查询项相匹配或不相匹配的对话中的消息的屏幕截图,而且其中按不同的模式对消息加以显示。Figure 7C is a screenshot of messages in a dialog that match or do not match a query term, and where the messages are displayed in different modes, according to one embodiment of the present invention.

图8为一个流程图,说明了对话助手如何与用户交互,以纠正所有可能错拼的单词。Figure 8 is a flowchart illustrating how the dialog assistant interacts with the user to correct all possible misspelled words.

图9A为包含由用户所编写的回答消息的对话的屏幕截图。Figure 9A is a screenshot of a dialog containing a reply message composed by a user.

图9B描述了处于拼写检查过程不同阶段的3个独立的浏览窗口的屏幕截图。Figure 9B depicts screenshots of 3 separate browser windows at different stages of the spell checking process.

图10描述了对话服务器的实施例。Figure 10 depicts an embodiment of a dialog server.

图11是一个流程图,表示了处理所接收的消息的方法。Fig. 11 is a flowchart showing a method of processing a received message.

图12是一个流程图,表示了把消息匹配于对话的方法。Fig. 12 is a flowchart showing a method of matching messages to dialogs.

图13是一个流程图,表示了把属性赋予消息的方法。Fig. 13 is a flowchart showing a method of assigning attributes to messages.

图14是一个流程图,表示了把属性赋予对话的方法。Fig. 14 is a flowchart showing a method of assigning attributes to dialogs.

图15是一个流程图,表示了用于搜索对话并且生成所标识的对话的表示的方法。FIG. 15 is a flow diagram illustrating a method for searching for conversations and generating representations of identified conversations.

图16描述了消息数据库。Figure 16 depicts the message database.

图17描述了用户数据库和用于具体用户的索引。Figure 17 depicts the user database and indexes for specific users.

图18描述了一组数据结构,用于标识对应于所接收消息的对话和用于确定与所接收的消息相关的属性。Figure 18 depicts a set of data structures for identifying a dialog corresponding to a received message and for determining attributes associated with the received message.

图19描述了对话服务器的实施例。Figure 19 depicts an embodiment of a dialog server.

具体实施方式 detailed description

本发明涉及用于组织和显示发送于用户以及由用户所发送的消息的客户机-服务器系统与对应的方法。The invention relates to a client-server system and corresponding method for organizing and displaying messages sent to and by users.

图1示意性地说明了客户机-服务器系统的一个实施例。该系统包括对话管理系统102、通信网络106以及多个客户机104。对话包括覆盖对话标题的一个或多个相关的消息。如以下描述的,除对话标题外,还可以使用附加的准则判断哪些消息为每一不同对话的一部分。消息的发送者和接收者为对话的参与者。把所有导向对话管理系统102的用户的所有消息编组为多个对话,并且按基于对话的格式逐一或共同提交于用户。以下,将给出有关对话管理系统102的实现的更详细的讨论。Figure 1 schematically illustrates one embodiment of a client-server system. The system includes a session management system 102 , a communication network 106 and a plurality of clients 104 . A conversation includes one or more related messages overlaying the conversation title. As described below, in addition to conversation titles, additional criteria may be used to determine which messages are part of each different conversation. The sender and receiver of the message are the participants in the conversation. All messages directed to a user of the dialog management system 102 are grouped into multiple dialogs and presented to the user individually or collectively in a dialog-based format. In the following, a more detailed discussion regarding the implementation of the dialog management system 102 will be given.

客户机104包括浏览器108和对话助手110。浏览器108可以为具有用于显示对话的浏览器窗口的通用Internet浏览器(有时也称为Web浏览器),其也可以为具有用于显示对话的窗口的专用浏览器应用。浏览器108使用超文本标记语言(HTML)或任何其它适当翻译方法翻译对话和对话中的消息。在用户通过浏览器108向对话管理系统102提交了用于存取存储在其个人账户中的消息的请求之后,对话管理系统102根据用户的请求,标识用户的个人账户中的多个对话,并且将它们以及一组显示指令传送回客户机104。作为响应,对话助手110生成一个或多个跟随显示指令的表格,每一个表格包括某些对话的信息。然后,把表格提交于浏览器108,并且由浏览器108加以翻译。在另一个实施例中,作为选择,对话助手110也可以存在于对话管理系统102中,并且操作于对话管理系统102中。Client 104 includes browser 108 and dialog assistant 110 . Browser 108 may be a general-purpose Internet browser (also sometimes referred to as a web browser) with a browser window for displaying conversations, or it may be a specialized browser application with a window for displaying conversations. Browser 108 translates the conversation and messages in the conversation using hypertext markup language (HTML) or any other suitable translation method. After the user submits a request to the session management system 102 via the browser 108 to access messages stored in his personal account, the session management system 102 identifies a number of sessions in the user's personal account according to the user's request, and These are transmitted back to the client machine 104 along with a set of display instructions. In response, dialog assistant 110 generates one or more tables following the display instructions, each table including information for certain dialogs. The form is then submitted to and translated by the browser 108 . In another embodiment, as an option, the dialog assistant 110 may also exist in the dialog management system 102 and operate in the dialog management system 102 .

图2是一个总流程图,说明了对话助手110如何生成用于显示由对话管理系统102提供的对话的各种表格。在步骤202,在接收了多个对话和相关的显示指令之后,在步骤204中,对话助手110判断用户是请求了多个对话还是请求了单个对话。如果用户要求多个对话,则在步骤206,对话助手110生成容纳对话列表的表格,每一个对话占据表格中的一行。针对表格中的每一行,在步骤208,对话助手110还根据显示指令生成列集合以及将加以显示的相关的特性。以下,将结合图3A和3B,给出如何翻译这些列中的信息和相关的特性的更多的细节。FIG. 2 is a general flowchart illustrating how dialog assistant 110 generates various forms for displaying dialogs provided by dialog management system 102 . In step 202, after receiving multiple dialogs and related display instructions, in step 204, the dialog assistant 110 determines whether the user requests multiple dialogs or a single dialog. If the user requires multiple conversations, then at step 206 the conversation assistant 110 generates a table containing a list of conversations, each conversation occupying a row in the table. For each row in the table, at step 208, the dialog assistant 110 also generates a set of columns and related properties to be displayed according to the display instruction. Below, more details on how to translate the information in these columns and the associated properties will be given in conjunction with Figures 3A and 3B.

如果用户请求单个对话,则对话助手110在步骤210生成用于容纳一系列与对话相关的消息的不同的表格。在步骤212中,对话助手110针对每一条跟随对应显示指令的消息,生成子表格和将显示的一组相关的特性。以下,将结合6A~6D给出对话助手如何翻译这样的子表格和相关特性的更多的细节。If the user requests a single conversation, the conversation assistant 110 generates at step 210 a different table for accommodating a series of messages related to the conversation. In step 212 , dialog assistant 110 generates a subtable and a set of related properties to be displayed for each message followed by a corresponding display instruction. Below, more details on how the dialog assistant translates such subtables and related properties will be given in connection with 6A-6D.

在生成了用于容纳对话的列表或单个对话的表格之后,在步骤214,对话助手110生成用于容纳一组系统定义的范畴的表格。可以把每一个系统定义的范畴与0或多个对话相关联。在一个实施例中,系统定义的范畴是这样的属性:响应用户动作或当满足预先定义的准则时,对话管理系统102选定对话。例如,当用户把对话标记为删除,但尚未采取永久性地从用户的邮件账户中去除对话所需的步骤时,该系统把“废纸篓”属性与该对话相关联。更具体地讲,如果需要的话,对话管理系统102把属性“废纸篓”附接于对话,并且从对话中去除现存的属性,例如“收件箱”。注意,某些系统定义的范畴可能是互斥的。在另一个例子中,该系统可以自动地把“收件箱”属性和“未被读取”属性与新接收的流入消息相关联。以下,结合图4A和4B,给出对系统定义的范畴的更详细的讨论。After generating a table to hold a list of conversations or a single conversation, at step 214 , dialog assistant 110 generates a table to hold a set of system-defined categories. Each system-defined category can be associated with zero or more dialogs. In one embodiment, a system-defined category is an attribute by which a dialog is selected by the dialog management system 102 in response to a user action or when predefined criteria are met. For example, the system associates a "trash" attribute with a conversation when the user marks it for deletion, but has not taken the steps required to permanently remove the conversation from the user's mail account. More specifically, the dialog management system 102 attaches the attribute "Trash" to a dialog, and removes an existing attribute, such as "Inbox," from the dialog, if desired. Note that some system-defined categories may be mutually exclusive. In another example, the system can automatically associate an "inbox" attribute and an "not read" attribute with newly received incoming messages. A more detailed discussion of the categories defined by the system is given below, in conjunction with Figures 4A and 4B.

接下来,在步骤216,对话助手110生成容纳一组用户定义的标签的另一个表格。图3B描述了其中显示了这一表格的编组框347。可以把每一个用户定义的标签与0或多个对话相关联。在一个实施例中,用户定义的标签为可以将其与所指定的对话相关联的属性。可以通过特定的用户动作或者通过过滤器或类似机构的操作,确定用户定义的标签赋予它们的那些对话。与系统定义的范畴不同,由用户任意地定义这些标签,而且它们是不互斥的。换句话说,可以同时把对话与多个标签相关联。例如,在用户的个人账户中,可能存在两个标签“购物列表”和“感恩节”。可以由用户,也可以由用户所建立的过滤器把标签“购物列表”赋予与购物相关的对话,同时可以把标签“感恩节”赋予有关感恩节活动的对话,包括感恩节购物。由于用户定义了标签,所以用户也可以删除这一标签。以下,结合图5A和5B,给出了用户定义的标签的更详细的讨论。对于编组框347,当用户选择(例如,点击)了编组框347中的用户定义的标签时,对话助手110把用于定位与该用户选择的标签相关的对话的查询提交于对话管理系统。然后,执行这一查询,并且向用户提交这样的对话的列表,即如果存在这样的对话的列表,则向用户提交这一列表。Next, at step 216, dialog assistant 110 generates another form that houses a set of user-defined tags. Figure 3B depicts group box 347 in which this form is displayed. Each user-defined tag can be associated with zero or more conversations. In one embodiment, a user-defined tag is an attribute that can be associated with a specified session. Those conversations to which user-defined tags are assigned may be determined by specific user actions or by manipulation of filters or similar mechanisms. Unlike system-defined categories, these tags are defined arbitrarily by the user, and they are not mutually exclusive. In other words, it is possible to associate a conversation with multiple tags at the same time. For example, in a user's personal account, there may be two tags "Shopping List" and "Thanksgiving". The tag "shopping list" may be assigned to conversations related to shopping by the user or a filter created by the user, and the tag "Thanksgiving" may be assigned to conversations related to Thanksgiving activities, including Thanksgiving shopping. Since the user defines a label, the user can also delete this label. A more detailed discussion of user-defined tags is given below, in conjunction with Figures 5A and 5B. For group box 347, when a user selects (eg, clicks) a user-defined tag in group box 347, dialog assistant 110 submits a query to the dialog management system for locating dialogs associated with the user-selected tag. This query is then performed and a list of such conversations is submitted to the user, ie if there is a list of such conversations, this list is submitted to the user.

对话管理系统102和对话助手110协同运作,以允许用户搜索用户的邮件账户中的消息,并且允许以十分直观的方式提交搜索结果。对话管理系统102从用户的电子邮件账户抽取信息,或者处理由用户编写的消息,同时,对话助手110翻译由对话管理系统102所准备的信息。在其它实施例中,可以使用在对话管理系统102和对话助手110之间的任务的不同的划分。由于可以通过对话管理系统102或对话助手110,也可以通过这两者的协同运作,实现该系统所执行的许多任务,所以此处有时把这两个部件统称为“对话系统”。The dialog management system 102 and the dialog assistant 110 work together to allow the user to search for messages in the user's mail account and to submit the search results in a very intuitive manner. The dialog management system 102 extracts information from the user's email account, or processes messages composed by the user, while the dialog assistant 110 translates messages prepared by the dialog management system 102 . In other embodiments, a different division of tasks between dialog management system 102 and dialog assistant 110 may be used. Because many tasks performed by the system can be realized through the dialogue management system 102 or the dialogue assistant 110, or through the cooperative operation of the two, these two components are sometimes collectively referred to as "dialog system" herein.

在步骤218,对话系统(102和/或110)可以生成用于容纳由用户所提交的一组搜索的表格,以致用户可以重新访问(或者更精确地说,可以重新生成)新近的搜索结果。以下,结合图7A~7C,给出了基于搜索的对话列表生成的更详细的描述。另外,在步骤220,对话系统还可以生成用于容纳由用户新近访问的一组对话的表格(例如,图3B的编组框349中所显示的表格)。这一特性类似于Web浏览器的退回按钮。在步骤222,对话助手110把这些表格提交于浏览器108用于显示。At step 218, the dialog system (102 and/or 110) may generate a table to hold a set of searches submitted by the user, such that the user can revisit (or, more precisely, regenerate) recent search results. A more detailed description of search-based conversation list generation is given below in conjunction with FIGS. 7A-7C . Additionally, at step 220, the dialog system may also generate a table (eg, the table shown in group box 349 of FIG. 3B) for holding a set of dialogs recently accessed by the user. This feature is similar to a web browser's back button. At step 222, dialog assistant 110 submits the forms to browser 108 for display.

除按图2中所示的次序之外,还可以以多种可能的次序执行步骤214~220。在某些实施例中,可以省略这些表格生成步骤中的某些步骤。In addition to the order shown in FIG. 2, steps 214-220 may be performed in various possible orders. In some embodiments, some of these table generation steps may be omitted.

生成对话列表Generate conversation list

现在,参照图3A,例如,响应用户或客户机对用户的邮件账户的收件箱视窗的请求,对话管理系统102生成对话列表(步骤302)。如以下将更详细加以解释的,通过执行对用户的邮件账户的搜索,生成对话的列表。为了生成针对收件箱视窗的对话的列表,针对与“收件箱”属性(有时将其称为标签)相关的对话,搜索用户的邮件账户。然后,在步骤304,对话管理系统102准备有关这些对话的信息,以加以显示,如以下将更详细加以描述的。另外,在步骤305,对话管理系统还生成用户可选择的动作的列表和用户可选择的标签的列表。以下结合图4和5的讨论,说明这些用户可选择列表的使用。然后,在步骤306,把所得结果信息发送于对话助手,以加以翻译。Referring now to FIG. 3A, the dialog management system 102 generates a dialog list (step 302), for example, in response to a user or client request for the user's mail account's inbox window. As will be explained in more detail below, the list of conversations is generated by performing a search of the user's mail account. To generate a list of conversations for the inbox window, the user's mail account is searched for conversations associated with the "inbox" attribute (sometimes referred to as a label). Then, at step 304, the dialog management system 102 prepares information about these dialogs for display, as will be described in more detail below. Additionally, at step 305, the dialog management system also generates a list of user-selectable actions and a list of user-selectable labels. The use of these user-selectable lists is illustrated below in conjunction with the discussion of FIGS. 4 and 5 . Then, at step 306, the resulting message is sent to the dialog assistant for translation.

在步骤304,对话管理系统102反复执行一系列步骤(从步骤306至步骤324),以生成一组字段用于对话列表中的每一对话。在某些实施例中,可以按列由对话助手110翻译这些字段,以使得用户能够容易地扫描对话列表。At step 304, the dialog management system 102 iterates through a series of steps (from step 306 to step 324) to generate a set of fields for each dialog in the dialog list. In some embodiments, these fields may be translated by the dialog assistant 110 in columns to enable the user to easily scan the dialog list.

对于每一对话和一组相关的消息,对话管理系统102首先在步骤307生成发送者列表。发送者列表包括多个发送者标识符,每一个标识符对应于已创作了至少一条消息的发送者。可根据其教名、姓、全名、电子邮件地址、照片或唯一的图标,或者它们的组合,来标识发送者。在某些实施例中,如果至少两个发送者具有相同的教名,则把每一发送者的姓的足够的部分包含在相应的发送者标识符中,以互相区别发送者。例如,如果两个发送者均具有教名Paul和第一个字母不同的姓,则可以使用Paul与姓的第一个字母的拼接(例如,PaulB和PaulK)来区别这两个发送者。本技术领域的普通技术人员将会意识到标识具有相同教名的两个发送者的其它方式。在其它实施例中,发送者的标识符可以基于与驻留在用户联系列表中的特定发送者相关的信息。在又一些其它实施例中,用户可以针对特定的发送者,创建出现在发送者列表中的昵称。如果发送者已创作了对话中的多条消息,则在发送者列表中其标识符依然仅出现一次。在一个实施例中,可以根据发送者标识符的相应消息到达系统102的到达时间,对列表中的发送者标识符进行排序。在另一个实施例中,根据发送者标识符的相应的名字,按字母顺序对表中的发送者标识符进行排序。接下来,在步骤308,对话管理系统102根据显示指令,对发送者列表进行格式化,以突出显示列表中的一个或多个发送者标识符。此处,对术语“突出显示”的使用,意指按视觉上有区别的方式加以显示,例如按粗体、加下划线、改变背景颜色、改变字体颜色、改变字体等方式加以显示。另外,在这一上下文中,术语“突出显示”意指以有区别的方式生成用于显示某些东西(例如,文本的所指定的部分)的格式化信息。例如,在某些实施例中,如果用户尚未查看他的消息或者尚未将他的消息标记为读取,则对发送者的名字进行格式化,以用粗体字符加以显示。For each dialog and a group of related messages, the dialog management system 102 first generates a list of senders at step 307 . The sender list includes a plurality of sender identifiers, each identifier corresponding to a sender who has authored at least one message. The sender may be identified by their given name, last name, full name, e-mail address, photograph or unique icon, or a combination thereof. In some embodiments, if at least two senders have the same given name, a sufficient portion of each sender's last name is included in the corresponding sender identifier to distinguish the senders from one another. For example, if two senders both have the given name Paul and a surname with a different first letter, the concatenation of Paul and the first letter of the surname (eg, PaulB and PaulK) can be used to distinguish the two senders. Those of ordinary skill in the art will recognize other ways of identifying two senders with the same Christian name. In other embodiments, the sender's identifier may be based on information associated with the particular sender residing in the user's contact list. In yet other embodiments, a user may create a nickname for a particular sender that appears in the sender list. If the sender has authored multiple messages in the conversation, its identifier still appears only once in the sender list. In one embodiment, the sender identifiers in the list may be ordered according to the time of arrival of the sender identifier's corresponding message to the system 102 . In another embodiment, the sender identifiers in the table are sorted alphabetically according to their corresponding names. Next, at step 308, the dialog management system 102 formats the sender list to highlight one or more sender identifiers in the list according to the display instructions. Here, the use of the term "highlighting" means displaying in a visually distinct manner, such as bolding, underlining, changing background color, changing font color, changing font, etc. Also, in this context, the term "highlighting" means generating formatted information for displaying something (eg, a designated portion of text) in a differentiated manner. For example, in some embodiments, the sender's name is formatted to appear in bold characters if the user has not viewed his message or marked his message as read.

在某些实施例中,对话助手接收对话的发送者列表和/或接收者列表中所列的一个或多个人的照片,并且具有对它们的存取权。当用户查看对话的列表或单一对话以及把光标定位在发送者列表的名字或标识符上时,显示该发送者的照片。在某些实施例中,当查看对话时,对于所列消息接收者,提供了相同的功能。对于由大型机构使用的电子邮件系统来说,这一特性可能是特别有用的。In some embodiments, the conversation assistant receives and has access to pictures of one or more people listed in the conversation's sender list and/or recipient list. When the user views a list of conversations or a single conversation and positions the cursor over a name or identifier in the list of senders, a photo of the sender is displayed. In some embodiments, the same functionality is provided for the listed message recipients when viewing a conversation. This feature may be particularly useful for e-mail systems used by large organizations.

在某些实施例中,如果用户本身已创作了对话中的至少一条消息,则在步骤310,对话管理系统102用针对用户的、作为发送者列表中他的标识符的唯一字符串、或图标、或其它输出提示,取代发送者列表中该用户的名字或其它标识符。唯一字符串的一种选择是某一特定语言中的自我参照标识符。例如,英语中的代词“me(我)”可用于表示发送者列表中的该用户。因为许多人共享相同的教名,所以与通过发送者列表中发送者的名字标识发送者相比,这一特性更为有用(当然,在可选的实施例中可以这样做)。通过唯一的标识符表示用户,还有助于用户容易地标识那些其中用户已通过至少贡献一条消息主动参与的对话。In some embodiments, if the user himself has authored at least one message in the conversation, then at step 310, the conversation management system 102 uses a unique string for the user as his identifier in the sender list, or an icon , or other output prompt, to replace the user's name or other identifier in the sender list. One option for unique strings is a self-referential identifier in a particular language. For example, the pronoun "me" in English can be used to refer to the user in the sender list. Since many people share the same given name, this feature is more useful than identifying a sender by their first name in a sender list (which, of course, could be done in alternative embodiments). Representing a user by a unique identifier also helps the user to easily identify those conversations in which the user has actively participated by contributing at least one message.

如果许多人都已向对话贡献了消息,则发送者列表可能会变得过长,以致不能适应浏览器窗口中有限的空间。如果通过发送者的电子邮件地址标识发送者列表中的一个或多个发送者,则情况尤其如此。如果情况如此,则在步骤312,对话管理系统102根据各种信息对发送者列表中的发送者进行优先化处理,以标识在浏览器窗口中显示的发送者的子集。在一个实施例中,该子集至少包括对话中最后消息的发送者,而且在可行的情况下,还可以包括尚未由用户加以查看或尚未由用户将其标记为读取的消息的发送者。在另一个实施例中,该子集包括对话中第一所接收消息的发送者、对话中最后所接收消息的发送者,以及根据优先化或打分方法所选择的0或多个更多发送者。在某些实施例中,把较高的优先级给予在时间上较晚到达的消息的发送者。这种类型的优先化往往会增加将显示未被读取消息的发送者的可能性。也可以使用其它类型的优先化方案。在某些实施例中,当发送者列表仅标识对话中的消息发送者的子集时,发送者列表包括省略标记“...”或者其它表示发送者列表未满的符号。在某些实施例中,在存在着一个以上的其消息尚未由用户加以查看或尚未由用户将其标记为被读取的情况下,该子集标识为可以与可用空间所允许的发送者一样多。If many people have contributed messages to the conversation, the list of senders may become too long to fit in the limited space in the browser window. This is especially the case if one or more senders in the sender list are identified by their email addresses. If this is the case, then at step 312 the dialog management system 102 prioritizes the senders in the sender list based on various information to identify a subset of the senders displayed in the browser window. In one embodiment, the subset includes at least the sender of the last message in the conversation and, where applicable, senders of messages that have not yet been viewed or marked as read by the user. In another embodiment, the subset includes the sender of the first received message in the conversation, the sender of the last received message in the conversation, and zero or more further senders selected according to a prioritization or scoring method . In some embodiments, higher priority is given to senders of messages that arrive later in time. This type of prioritization tends to increase the likelihood that senders of unread messages will be revealed. Other types of prioritization schemes may also be used. In some embodiments, when the sender list identifies only a subset of message senders in the conversation, the sender list includes an ellipsis "..." or other symbol indicating that the sender list is not full. In some embodiments, where there is more than one whose message has not been viewed by the user or has not been marked as read by the user, the subset is identified as may be as many senders as the available space allows many.

在步骤314,对话管理系统102针对对话创建消息数目指示符,该消息数目指示符指示对话中消息的数目,不包括永久性删除的或被标识为将加以删除的消息。消息数目指示符可以为一对括号中的数字,例如,“(3)”表示对话中存在3条消息。在某些实施例中,当对话仅包括一条消息时,不为该对话生成消息数目。消息数目指示符也可以为图标。图标可以为彩色编码的,以提供额外的信息,例如,以表示对话中的多少条消息仍未被读取(即尚未被查看或将其标记为被读取的)。接下来,在步骤316,对话管理系统102为被处理的对话生成对话标题。通常,对话标题为对话中第一条消息的主题,或者如果其超过预先定义的长度,则为该题目的截断的版本。在另一个实施例中,通过试探性地检查第一条消息的内容确定对话标题,或者作为选择,也可不仅仅检查第一条消息。在一个实施例中,如果对话至少包括一条具有“未被读取的”属性的消息,则在浏览器窗口中既突出显示消息数目标识符,也突出显示对话标题,以引起用户的注意。在另一个实施例中,仅突出显示对话标题,以指示一个或多个未被读取的消息。At step 314, the dialog management system 102 creates a message count indicator for the dialog that indicates the number of messages in the dialog, excluding messages that are permanently deleted or that are identified for deletion. The message number indicator may be a number in a pair of brackets, for example, "(3)" indicates that there are 3 messages in the conversation. In some embodiments, when a dialog includes only one message, no message count is generated for the dialog. The message number indicator can also be an icon. Icons may be color coded to provide additional information, for example, to indicate how many messages in the conversation remain unread (ie have not been viewed or marked as read). Next, at step 316, the session management system 102 generates a session title for the session being processed. Typically, the conversation title is the subject of the first message in the conversation, or a truncated version of the subject if it exceeds a predefined length. In another embodiment, the conversation title is determined by heuristically examining the content of the first message, or alternatively, not only the first message. In one embodiment, if the conversation includes at least one message with an "unread" attribute, both the message number identifier and the conversation title are highlighted in the browser window to draw the user's attention. In another embodiment, only the conversation title is highlighted to indicate one or more unread messages.

根据已建立的电子邮件标准,可以把消息发送于至少3种类型的接收者,一个主要类接收者,在“To:”字段中列出了其地址;两个次要类接收者,在“Cc:”字段中或者在“Bcc:”字段中列出了它们的地址。因此,对话管理系统102在步骤318创建了针对该用户的接收者状态指示符,接收者状态指示符为对话中用户参与性的另一个指示符。在一个实施例中,使用第一有区别的指示符,例如“>>”,标记其中用户为任何消息的主接收者的对话,使用第二有区别的指示符,例如“>”,标记其中用户为至少一条消息的次接收者而且不是任何消息的主接收者的对话,以及其中未明确把用户列为任何消息的接收者的对话(例如,因为把消息被发送于编组或邮寄列表)不接收特殊标记。在其它实施例中,可以按其它视觉上有区别的方式,例如通过突出显示代表这些对话的一个或多个部分行,表示其中用户为至少一条消息的主接收者的对话以及其中用户仅为次接收者的对话。在另一个实施例中,使用第一有区别的指示符,例如“>>”,标记其中用户为至少一条消息的唯一主接收者的对话,使用第二有区别的指示符,例如“>”,标记其中把至少一条消息直接发送于用户的电子邮件地址而不是邮寄列表的对话,以及其中未明确把用户列为任何消息的接收者的对话(例如,因为把消息被发送于组或邮寄列表)不接收特殊标记。According to established email standards, messages can be sent to at least 3 types of recipients, a primary type of recipient whose address is listed in the "To:" field; two secondary type of recipients, listed in the "To:" field Cc:" field or their addresses are listed in the "Bcc:" field. Accordingly, the dialog management system 102 creates a recipient status indicator for the user at step 318, which is another indicator of the user's participation in the dialog. In one embodiment, a first distinguishing indicator, such as ">>", is used to mark conversations where the user is the primary recipient of any messages, and a second distinguishing indicator, such as ">", is used to mark conversations where Conversations in which the user is a secondary recipient of at least one message and is not the primary recipient of any messages, and in which the user is not explicitly listed as a recipient of any messages (for example, because the message was sent to a group or mailing list) are not Receive special marks. In other embodiments, conversations in which the user is the primary recipient of at least one message and conversations in which the user is only a secondary Receiver's dialogue. In another embodiment, conversations in which the user is the sole primary recipient of at least one message are marked using a first distinguishing indicator, such as ">>", and a second distinguishing indicator, such as ">" , to mark conversations in which at least one message was sent directly to the user's email address rather than a mailing list, and conversations in which the user was not explicitly listed as a recipient of any messages (for example, because the message was sent to a group or mailing list ) does not accept special tokens.

在某些实施例中,对话管理系统102在步骤320创建对话的摘录。这一摘录向用户提供了对话的内容的预览,而用户不必打开对话。在一个实施例中,根据对话中最近的消息生成摘录。在另一个实施例中,从对话中的第一条消息(即最旧的消息)抽取摘录。在又一个实施例中,根据预先定义的试探性规则,例如列出对话中最频繁出现的一组关键字,从对话中的所有消息中抽取摘录。如果对话管理系统102响应于用户所提交的搜索而正在准备对话列表,则其在步骤322创建摘录,该摘录包括与用户所提交的查询项目相匹配的突出显示部分,在一个或多个方面,这类似于包括诸如Google搜索引擎的搜索引擎所返回的搜索结果的摘录。In some embodiments, the dialog management system 102 creates an excerpt of the dialog at step 320 . This excerpt provides the user with a preview of the content of the conversation without the user having to open the conversation. In one embodiment, snippets are generated based on recent messages in the conversation. In another embodiment, the excerpt is extracted from the first message in the conversation (ie, the oldest message). In yet another embodiment, excerpts are extracted from all messages in the conversation according to predefined heuristic rules, such as listing a set of keywords that appear most frequently in the conversation. If the dialog management system 102 is preparing a dialog listing in response to a user-submitted search, it creates a snippet at step 322 that includes a highlighted portion that matches the user-submitted query term. In one or more aspects, This is similar to including excerpts of search results returned by a search engine such as the Google search engine.

最后,在步骤324,对话管理系统102标识对话的日期/时间值。这一日期/时间值通常规定了浏览器窗口中对话的列表的显示次序。在某些实施例中,向对话的列表中的每一对话赋予等于与用于生成该对话列表的搜索准则相匹配的最新消息的日期/时间的日期/时间。例如,如果使用了用户指定的搜索查询(例如,“Tahoe湖”),则对于对话的列表中的每一匹配对话,所赋予的日期/时间为与用户指定的搜索查询相匹配的最新消息的日期/时间。在另一个例子中,如果搜索准则为“收件箱”(即,具有至少一条赋予了收件箱标签的消息的对话),则赋予对话列表中的每一对话的日期/时间为与收件箱标签相关的最新消息的日期/时间。在某些实施例中,按它们的所赋予的日期/时间值的相反的时间次序列出对话列表中的对话(即,首先列出最近的对话)。如此处所使用的,“日期/时间”值指的是与某一具体消息相关的日期值和/或时间值。可以根据消息的创建、传输、接收或其它事件的日期和/或时间,把日期和/或时间与消息相关联。Finally, at step 324, the dialog management system 102 identifies a date/time value for the dialog. This date/time value generally dictates the display order of the list of conversations in the browser window. In some embodiments, each conversation in the list of conversations is assigned a date/time equal to the date/time of the most recent message matching the search criteria used to generate the list of conversations. For example, if a user-specified search query (e.g., "Tahoe Lake") is used, then for each matching conversation in the list of conversations, the assigned date/time is the latest news that matches the user-specified search query. date/time. In another example, if the search criteria is "Inbox" (i.e., conversations with at least one message assigned the Inbox label), then the date/time assigned to each conversation in the conversation list is the same as the Inbox The date/time of the latest news related to the box label. In some embodiments, the conversations in the conversation list are listed in reverse chronological order of their assigned date/time values (ie, most recent conversations are listed first). As used herein, a "date/time" value refers to a date value and/or time value associated with a particular message. Dates and/or times may be associated with messages based on the date and/or time of creation, transmission, receipt, or other event of the message.

在其它实施例中,可以使用其它方法或准则把日期/时间赋予对话列表中的每一对话,也可以使用其它方法,根据对话的日期/时间值来排序这些对话。例如,在某些实施例中,当使用先进的搜索查询工具时,给予用户对那些其日期/时间落入指定时间窗口的(以及如果存在其它用户指定的搜索要求就满足这些要求的)对话进行搜索的选项。根据用户指定的目标日期或目标日期/时间和列表中每一对话的日期/时间之间的时间长度,列出对话的所得到的列表。因此,可以在目标日期或日期/时间之前和之后把对话插入对话的所得到的列表中。In other embodiments, other methods or criteria may be used to assign a date/time to each conversation in the conversation list, and other methods may be used to sort the conversations according to their date/time values. For example, in some embodiments, when using the advanced search query facility, a user is given a dialog to review those dates/times that fall within a specified time window (and, if any, satisfy other user-specified search requirements). Search options. The resulting list of conversations is listed according to the length of time between the user-specified target date or target date/time and the date/time of each conversation in the list. Thus, conversations can be inserted into the resulting list of conversations before and after the target date or date/time.

图3B为根据本发明的一个实施例的“收件箱”范畴中的对话列表的示意性屏幕截图。在该屏幕截图的左上角,有“编写邮件”链路340。用户点击这一链路,开始写新消息。与链路340相邻,有文本框341以及“搜索邮件”按钮342。在用户通过文本框341提交了一个或多个查询项目和接下来点击“搜索邮件”按钮342之后,系统生成与查询项目相匹配的新显示列表对话。在某些实施例中,由于存在相应查询项目的一个或多个同义语,所以可能出现匹配。在某些实施例中,根据相应查询项目的根,可能出现匹配。例如,对于“book”的搜索,可能为单词“book”、“books”、以及“booking”加以匹配。有关详细的情况,请参照图7A和7B。与按钮342相邻的是两个下拉列表:“更多动作”列表344和“添加标签”列表345。关于这两个下拉列表的更详细的情况,请分别参照图4和5。在“编写邮件”链路340的正下方,有一系列编组框,每一个框对应于图2中步骤214~220之一所生成的表格。例如,编组框346显示系统定义的范畴,包括“收件箱”、“加星号的”、“发送邮件”、“草稿”、“全部邮件”、“垃圾邮件”以及“废纸篓”等。在其它实施例中,所述系统定义的范畴集合可以不同,其包括这些范畴和/或附加范畴的子集。在某些实施例中,“加星号的”范畴包括其中用户计划主动涉及(例如,通过向其它参与者发送消息)的对话,这类似于“To Do”列表。因此,在一个实施例中,可以使用星号标志消息,使得用户可以例如搜索加星号的消息。在一个实施例中,“全部邮件”范畴包括未处于“垃圾邮件”或“废纸篓”范畴中的所有对话。注意,由于当前的屏幕截图仅显示了属于“收件箱”范畴的对话,所以突出显示了编组框346中的对应链路。FIG. 3B is a schematic screenshot of a conversation list in the "Inbox" category according to one embodiment of the present invention. In the upper left corner of this screenshot, there is a "Compose Mail" link 340 . The user clicks on this link and starts writing a new message. Adjacent to link 340 there is a text box 341 and a "Search Mail" button 342 . After the user submits one or more query terms via text box 341 and then clicks "Search Mail" button 342, the system generates a new display list dialog matching the query terms. In some embodiments, a match may occur due to the existence of one or more synonyms for the corresponding query term. In some embodiments, a match may occur based on the root of the corresponding query term. For example, a search for "book" might match the words "book," "books," and "booking." For details, refer to Figs. 7A and 7B. Adjacent to button 342 are two drop-down lists: a "More Actions" list 344 and an "Add Tag" list 345 . For more details about these two drop-down lists, please refer to Figures 4 and 5, respectively. Just below the "Compose Mail" link 340, there is a series of group boxes, each corresponding to the form generated by one of steps 214-220 in FIG. For example, group box 346 displays system-defined categories including "Inbox," "Starred," "Sent Mail," "Drafts," "All Mail," "Spam," and "Trash," among others. . In other embodiments, the system-defined set of categories may vary, including a subset of these categories and/or additional categories. In some embodiments, the "starred" category includes conversations in which the user plans to actively engage (eg, by sending messages to other participants), similar to a "To Do" list. Thus, in one embodiment, messages may be marked with a star so that a user may, for example, search for starred messages. In one embodiment, the "All Mail" category includes all conversations that are not in the "Spam" or "Trash" categories. Note that the corresponding link in group box 346 is highlighted since the current screenshot only shows conversations that fall under the "Inbox" category.

图3B中的示意性的屏幕截图的主要区域是包括对话的列表360的表格,每一个对话占据该表格中的一行。每一行还包括检查框362、发送者列表364、接收者状态指示符366、对话标题和摘录368以及日期/时间值369。在其它实施例中,针对每一对话行的字段的集合可以不同,包括这些字段和/或附加字段的子集。在某些实施例中,当显示对话的列表时,所有行具有统一的高度。在其它实施例中,高度可为可变的,以接纳不同的摘录长度。如果用户决定把对应的对话从一个系统定义的范畴(例如,“收件箱”)移至另一个系统定义的范畴(例如,“废纸篓”),或者如果用户决定向对应的对话附接用户定义的标签,则由用户检查检查框362。以上已经结合图3A给出了所述表格中的其它列或字段的定义。注意,在第一对话中存在两条消息,并且已在第一行中突出显示了发送者S2,这意味着还尚未读取S2所发送的消息或者尚未将其标记为被读取的。相比之下,第二对话包括全部已被读取或已被标记为被读取的4条消息,因此,在第二行中没有突出显示任何东西。在某些实施例中,提供了用于加星号状态的视觉指示符。如果对话中的任何消息具有加星号的状态,则“收件箱”将提供指示对话至少包含一条加星号的消息的视觉指示符。The main area of the schematic screenshot in FIG. 3B is a table that includes a list 360 of conversations, each conversation occupying a row in the table. Each row also includes a check box 362 , a list of senders 364 , a recipient status indicator 366 , a conversation title and excerpt 368 , and a date/time value 369 . In other embodiments, the set of fields for each dialog line may differ, including a subset of these fields and/or additional fields. In some embodiments, when displaying a list of conversations, all rows have a uniform height. In other embodiments, the height may be variable to accommodate different excerpt lengths. If the user decides to move the corresponding dialog from one system-defined category (for example, "Inbox") to another system-defined category (for example, "Trash"), or if the user decides to attach the corresponding dialog to User-defined tags are checked by the user in check box 362 . The definitions of other columns or fields in the table have been given above in conjunction with FIG. 3A . Note that there are two messages in the first dialog, and the sender S2 has been highlighted in the first line, which means that the message sent by S2 has not been read or marked as read. In contrast, the second conversation includes 4 messages that have all been read or have been marked as read, so nothing is highlighted in the second line. In some embodiments, a visual indicator for starred status is provided. If any messages in the conversation have a starred status, Inbox will provide a visual indicator that the conversation contains at least one starred message.

在一个实施例中,尽管尚未描述,但图3B所代表的浏览器窗口还包括持续显示的消息编写区域、相关寻址和主题字段、以及通常与允许编写和发送消息的表格相关联的其它选项和字段。例如,把这样的区域显示在对话的列表360之下。因此,在一个实施例中,在单一用户接口(例如,浏览器窗口)中,用户可具有查看对话列表的选项,并且还可编写新消息,而无需要求打开新窗口(例如,消息编写窗口),并且无需从当前浏览器窗口去除对话的列表。In one embodiment, although not yet depicted, the browser window represented by Figure 3B also includes a persistently displayed message composing area, associated addressing and subject fields, and other options typically associated with forms that allow composing and sending messages and fields. For example, such an area is displayed under the list 360 of conversations. Thus, in one embodiment, within a single user interface (e.g., a browser window), a user may have the option to view a list of conversations, and also compose a new message, without requiring a new window to open (e.g., a message composition window) , without removing the list of conversations from the current browser window.

图4A是一个流程图,说明了“更多动作”下拉列表344的操作。在用户点击了该下拉列表之后,在步骤402,浏览器显示系统定义动作的列表。在步骤404,用户在下拉列表中选择具体的动作以及对话列表中的至少一个对话。然后,在步骤406,浏览器把用户选择的对话与用户选择的动作相关联,并且在步骤408把它们返回于对话管理系统,以进一步加以处理。在步骤410,如果用户选择的动作导致用户选择的对话从先前所显示的对话列表中被去除,则对话助手从对话管理系统接收新的对话的列表,而且对话助手在浏览器中显示对话的新列表。FIG. 4A is a flowchart illustrating the operation of the "More Actions" drop-down list 344. As shown in FIG. After the user clicks on the drop-down list, at step 402, the browser displays a list of system-defined actions. In step 404, the user selects a specific action and at least one dialog in the dialog list in the drop-down list. Then, at step 406, the browser associates the user-selected dialog with the user-selected action, and returns them to the dialog management system at step 408 for further processing. In step 410, if the user-selected action results in the user-selected dialog being removed from the previously displayed list of dialogs, the dialog assistant receives a list of new dialogs from the dialog management system, and the dialog assistant displays the dialog's new list in the browser. list.

参照图4B,图4B描述了当用户检查第二对话的检查框413、点击了“更多动作”下拉列表、以及选择了项目“垃圾邮件”415时所产生的从图3B的示意性屏幕截图的变化。结果,将从“收件箱”范畴去除第二对话,而且“垃圾邮件”范畴将具有新的成员。注意,下拉列表中的某些动作,例如“忽视”和“瞌睡”不具有对应的范畴。“忽视”和“瞌睡”均对应于“全部邮件”范畴。具体地讲,当用户检查对话的检查框,然后点击“忽视”项目时,将把对话传送至“全部邮件”范畴。如果与“忽视”对话相关的任何新的消息到达,则系统仍把这一新的消息与该对话相关联,但并不自动地把该对话带回用户的注意范围。然而,用户可以停止对对话的忽视,并且可通过访问“全部邮件”范畴、检查所忽视的对话的检查框、然后选择相应“更多动作”下拉列表中的“收件箱”项目,将其带回到“收件箱”范畴。如这一例子所示,不同范畴的下拉列表可以具有不同的动作项目集合。“瞌睡”动作项目允许用户通过设置触发条件暂时忽视对话,所述触发条件可以为时间驱动的,例如,对话应该从“收件箱”范畴消失一段时间(例如,一小时、一天、一星期等),然后自动地返回,或者由事件驱动,例如,对话不应返回到“收件箱”范畴,直至未检查的消息的数目已达到预先确定的极限、或者特定的人已向对话贡献了消息、接收到把用户指定为主接收者的消息、或者所接收的消息包含特定的单词或短语。本技术领域中的普通技术人员将会意识到也可以使用的其它触发条件。Referring to FIG. 4B, FIG. 4B depicts a schematic screenshot from FIG. 3B that is generated when the user checks the checkbox 413 of the second dialog, clicks on the "More Actions" drop-down list, and selects the item "Spam" 415 The change. As a result, the second conversation will be removed from the "Inbox" category, and the "Spam" category will have a new member. Note that some actions in the drop-down list, such as "ignore" and "snooze" do not have corresponding categories. "Ignore" and "Snooze" both correspond to the "All Mail" category. Specifically, when the user checks the dialog's checkbox and then clicks the "ignore" item, the dialog will be sent to the "All Mail" category. If any new message arrives related to the "ignored" conversation, the system still associates this new message with the conversation, but does not automatically bring the conversation back to the user's attention. However, a user can stop ignoring a conversation and turn it off by visiting the "All Mail" category, checking the checkbox for the dismissed conversation, and then selecting the "Inbox" item in the corresponding "More Actions" drop-down list. Brought back to the "inbox" category. As this example shows, drop-down lists of different categories can have different sets of action items. The "snooze" action item allows the user to temporarily ignore the conversation by setting a trigger, which can be time-driven, e.g., the conversation should disappear from the "Inbox" category for a period of time (e.g., an hour, a day, a week, etc. ), then automatically, or event-driven, for example, the conversation should not return to the "Inbox" category until the number of unchecked messages has reached a predetermined limit, or a specific person has contributed a message to the conversation , a message is received designating the user as the primary recipient, or the received message contains a specific word or phrase. One of ordinary skill in the art will recognize other trigger conditions that may also be used.

范畴化对话categorization dialogue

图5A是一个流程图,说明了“添加标签”下拉列表345的操作。在用户点击了该下拉列表之后,在步骤502,浏览器显示用户定义标签的列表,以供该用户加以选择。在步骤504,用户选择下拉列表中的具体标签和对话列表中的至少一个对话。然后,在步骤506,浏览器把用户选择的对话与用户选择的标签相关联,并且在步骤508把它们发送回对话管理系统,以进一步地加以处理。结果,与用户选择的标签相关的对话的列表将包括与步骤506中的那一标签相关的对话。如以下更详细描述的,当把标签或属性与对话相关联时,把一个或多个条目添加于索引1710(图17,18),以使载有该标签的对话的搜索能够得以定位。在某些实施例中,也把该标签或属性添加于对话数据库1808中的一个或多个条目(图18)。在某些实施例中,当用户查看对话时,显示与该对话相关的标签。在某些实施例中,在针对列表中每一对话所提供的信息行中显示与对话的列表中的每一对话相关的标签。FIG. 5A is a flowchart illustrating the operation of the "Add Tag" drop-down list 345. As shown in FIG. After the user clicks the drop-down list, at step 502, the browser displays a list of user-defined tags for the user to select. In step 504, the user selects a specific label in the drop-down list and at least one conversation in the conversation list. Then, at step 506, the browser associates the user-selected dialog with the user-selected label, and sends them back to the dialog management system at step 508 for further processing. As a result, the list of conversations associated with the user-selected tag will include conversations associated with that tag in step 506 . As described in more detail below, when a tag or attribute is associated with a conversation, one or more entries are added to the index 1710 (FIGS. 17, 18) to enable searches of conversations bearing that tag to be located. In some embodiments, the tag or attribute is also added to one or more entries in dialog database 1808 (FIG. 18). In some embodiments, when a user views a conversation, tags associated with the conversation are displayed. In some embodiments, a label associated with each conversation in the list of conversations is displayed in a row of information provided for each conversation in the list.

图5B是一个示意性的屏幕截图,描述了当用户检查第二对话的检查框512、然后点击“添加标签”下拉列表、并且选择了项目“标签2”514时所产生的浏览器窗口。(注意,“标签2”代表了用户指定的标签名)。这将导致把“标签2”与所检查的对话相关联。因此,可以把所检查的对话包括在响应于对与“标签2”相关的消息的查询所产生的搜索结果中。在某些实施例中,把与对话的列表中的每一对话相关的标签显示在表格的对应的行中,于是,“标签2”将会被显示在对应于步骤506中与“标签2”相关的对话的行中。当然,本技术领域中的普通技术人员将会意识到,用户可以输入定制化的标签名和/或系统可以提供预先定义的标签。FIG. 5B is a schematic screenshot depicting the browser window that results when the user checks the check box 512 of the second dialog, then clicks the "Add Tab" drop-down list, and selects the item "Tag 2" 514 . (Note that "Label 2" represents the user-specified label name). This will result in associating "Label 2" with the checked dialog. Accordingly, the examined conversation may be included in the search results generated in response to a query for messages related to "tag 2." In some embodiments, the tab associated with each dialog in the list of dialogs is displayed in the corresponding row of the table, so "Tag 2" will be displayed in the line of the relevant dialog. Of course, those of ordinary skill in the art will appreciate that the user can enter customized tag names and/or the system can provide pre-defined tags.

查看对话view conversation

图6A是一个流程图,描述了对话助手如何响应对话管理系统的显示指令生成对话视图。在某些实施例中,在把对话信息发送于客户机中的对话助手之前,由对话管理系统执行图6A中所示的某些动作,例如,用于对要显示的对话信息进行格式化的动作。FIG. 6A is a flow chart illustrating how the dialog assistant generates a dialog view in response to a display command from the dialog management system. In some embodiments, some of the actions shown in FIG. 6A are performed by the dialog management system before the dialog information is sent to the dialog assistant in the client, e.g., for formatting the dialog information for display. action.

在步骤602,对话助手首先接收一系列属于具体对话的消息,以及一组相关的显示指令。在步骤604,对话助手标识对话的标题,以及与对话相关的任何系统定义的范畴和用户定义的标签。根据这些范畴和标签,对话分别生成用户可选择的动作的列表和用户可选择的标签的列表。这两个列表类似于图3B中所示的两个下拉列表344和345。在一个实施例中,用户可选择的动作的列表仅包括适用于具体对话(即,将要显示的对话)的动作。因此,不能再次把已经处于“废纸篓”范畴的对话与“废纸篓”范畴相关联。出于同样的原因,用户可选择的标签的列表仅包括尚未与具体对话相关联的标签。In step 602, the dialog assistant first receives a series of messages belonging to a specific dialog, and a set of related display instructions. At step 604, the dialog assistant identifies the title of the dialog, as well as any system-defined categories and user-defined tags associated with the dialog. From these categories and tags, the dialog generates a list of user-selectable actions and a list of user-selectable tags, respectively. These two lists are similar to the two drop-down lists 344 and 345 shown in Figure 3B. In one embodiment, the list of user-selectable actions includes only actions applicable to a specific dialog (ie, the dialog to be displayed). Therefore, it is not possible to associate a dialog already in the "Trash" category with the "Trash" category again. For the same reason, the list of user-selectable tags only includes tags that have not been associated with a specific conversation.

从步骤608开始,对话助手为对话中的各条消息分别生成子表格,该子表格至少包括详细消息报头和消息体。如此处所使用的,消息体指的是用户所创建的消息,包括主题参照,不包括通过消息处理软件添加于消息的任何系统信息。每一个详细消息报头包括发送者的名字和/或地址以及所有主与次接收者、消息的主题、一组消息级的动作、以及日期/时间值。消息级的动作之一包括按消息的原始格式查看消息的选项,其包括路由信息以及其它消息系统提供的信息,例如“我的版本:”、“内容类型”等。在步骤610,对话助手还根据详细消息报头创建简要消息报头。简要消息报头包括发送者和接收者的标识符。在某些实施例中,把接收者从简要消息报头中排除。如果用户处于接收者列表中,则在步骤610,对话助手把唯一的字符串或图标用作用户的标识符,这类似于发送者列表中的用户的标识符。例如,可以把英语中的代词“me(我)”用于表示简要消息报头中的用户。如果消息为标识这一对话中的具体接收者的第一条消息(即,消息报头的主或次接收者字段中的),则对话助手将在步骤614在简要消息报头中突出显示接收者的标识符。另一方面,在某些实施例中,当不再包括先前包括在接收者的列表中的接收者时,对话助手将按视觉上有区别的方式,例如按“叠影”字体,显示该接收者的标识符。在其它实施例中,简要消息报头包括发送者标识符、消息部分、以及消息的日期/时间表示。Starting from step 608, the dialog assistant generates a subtable for each message in the dialog, and the subtable includes at least a detailed message header and a message body. As used herein, a message body refers to a user-created message, including subject references, excluding any system information added to the message by message processing software. Each detail message header includes the sender's name and/or address and all primary and secondary recipients, the subject of the message, a set of message-level actions, and a date/time value. One of the actions at the message level includes an option to view the message in its original format, which includes routing information and other information provided by the messaging system, such as "My Version:", "Content Type", etc. At step 610, the dialog assistant also creates a brief message header from the detailed message header. The brief message header includes sender and receiver identifiers. In some embodiments, recipients are excluded from the brief message header. If the user is in the recipient list, then at step 610 the dialog assistant uses a unique character string or icon as the user's identifier, similar to the user's identifier in the sender list. For example, the pronoun "me" in English can be used to refer to a user in a brief message header. If the message is the first message that identifies a specific recipient in this conversation (i.e., in the primary or secondary recipient field of the message header), the dialog assistant will highlight the recipient's name in the brief message header at step 614. identifier. On the other hand, in some embodiments, when a recipient previously included in the list of recipients is no longer included, the dialog assistant will display the recipient in a visually distinct manner, such as in a "ghost" font. the identifier of the recipient. In other embodiments, the brief message header includes a sender identifier, message parts, and a date/time representation of the message.

接下来,在步骤616,对话代理决定如何显示子表格。如果与子表格相关的消息尚未由用户加以查看或尚未由用户将其标记为被读取的,则在步骤618按扩展的模式显示子表格,即,既显示简要消息报头,也显示完整的消息体。如果消息已被查看或将其标记为被读取的,则在步骤620,以压缩的模式默认地显示子表格,仅包括简要消息报头和消息体的一部分(例如,消息的前几行)。接下来,用户可以通过点击所压缩的子表格来对其加以扩展。相类似,子表格不描述详细消息报头,但包括供用户选择的选项,即如果用户希望查看详细消息报头,则在步骤622选择这一选项。最后,在步骤624,对话助手在子表格的底部创建一组回答选项,例如“回答”、“回答所有人”以及“转发”。在某些实施例中,针对对话中的每一消息执行以上所描述的动作的子集。在某些实施例中,执行一个或多个附加的格式化动作。Next, at step 616, the dialog agent decides how to display the subform. If the message associated with the subform has not been viewed by the user or has not been marked as read by the user, the subform is displayed in an expanded mode at step 618, i.e. both the brief message header and the complete message are displayed body. If the message has been viewed or marked as read, then at step 620, the subtable is displayed by default in a compressed mode, including only a brief message header and a portion of the message body (eg, the first few lines of the message). Next, the user can expand the compressed subtable by clicking on it. Similarly, the subtable does not describe the detailed message header, but includes an option for the user to select, ie, if the user wishes to view the detailed message header, this option is selected at step 622 . Finally, at step 624, the dialog assistant creates a set of answer options at the bottom of the subform, such as "Answer," "Answer All," and "Forward." In some embodiments, a subset of the actions described above are performed for each message in the conversation. In some embodiments, one or more additional formatting actions are performed.

图6B为根据本发明的一个实施例的图3B中的第二对话的示意性屏幕截图。这一屏幕截图的顶部和左部与图3B的顶部和左部相同。但对话的列表360已由消息的列表640取代。在消息的列表的顶部,是对话的标题“标题2”630、与对话相关的所有用户定义的标签632、以及“扩展所有消息”按钮634。由于用户已经查看了这4条消息,并且把它们标记为被读取的,所以按压缩的模式显示列表中的头3条消息,并且按扩展的模式显示最后(和最新)的消息。在某些实施例中,当不存在未被读取的消息(即,尚未由用户加以查看或尚未由用户将它们标记为被读取的)时,也可以按扩展的模式显示已经被标记为加星号的对话中的消息。这提供了把对话中的所有消息聚集在一起的视觉效果。每一个压缩的子表格显示简要消息报头641和诸如消息体的前几个单词的摘录643。在某些实施例中,以彩色标识简要消息报头中的发送者,使得可以按不同的颜色提交每一发送者的文本表示。这有助于在所显示的对话中对发送者加以区别。在某些实施例中,由系统生成颜色,直到系统用尽了与发送者相关的颜色为止。在某些实施例中,把颜色与每一对话相关联,以致同一发送者可以具有与其相关的不同的颜色,其取决于所显示的对话。注意,在简要消息报头641中突出显示了所有的接收者,因为这是对话的第一条消息。相比之下,仅在第二压缩的子表格中仅仅突出显示一个标识符“S1”,因为这是其中S1为对话中的参与者的第一条消息。扩展的子表格包括完整的消息体645、当选择时将导致详细消息报头得以显示的“更多选项”链路647、以及回答选项649的列表。由于S4发送了最后的消息,所以回答选项之一为“回答S4”,其提醒用户:将对S4进行回答。Figure 6B is a schematic screenshot of the second dialog in Figure 3B, according to one embodiment of the present invention. The top and left of this screenshot are the same as the top and left of Figure 3B. But the list 360 of conversations has been replaced by the list 640 of messages. At the top of the list of messages is the title of the conversation "Title 2" 630 , all user-defined tags 632 related to the conversation, and an "Expand All Messages" button 634 . Since the user has viewed these 4 messages and marked them as read, the first 3 messages in the list are displayed in compressed mode, and the last (and newest) message is displayed in expanded mode. In some embodiments, messages that have been marked as read may also be displayed in an expanded mode when there are no unread messages (i.e., not yet viewed or marked by the user as read). Messages in starred conversations. This provides a visual that brings together all the messages in the conversation. Each compressed subtable shows a brief message header 641 and an excerpt 643 such as the first few words of the message body. In some embodiments, the senders in the brief message header are color-coded so that each sender's textual representation can be presented in a different color. This helps to distinguish senders in the displayed dialog. In some embodiments, colors are generated by the system until the system runs out of colors associated with the sender. In some embodiments, a color is associated with each conversation, such that the same sender may have different colors associated with it, depending on the conversation being displayed. Note that all recipients are highlighted in the brief message header 641 since this is the first message of the conversation. In contrast, only one identifier "S1" is highlighted in the second compressed subtable because this is the first message where S1 is a participant in the conversation. The expanded subtable includes the full message body 645 , a "more options" link 647 which when selected will cause the detailed message headers to be displayed, and a list of answer options 649 . Since S4 sent the last message, one of the answer options is "Answer S4", which reminds the user that there will be an answer to S4.

在某些实施例中,当对话中的消息的数目超过阈值(例如,8或10条消息),以及将按压缩的子表格显示该对话中的多条连续的消息(例如,从对话的收件箱列表所选择的对话中标记为被读取的消息)时,按不包括文本的第二压缩的子表格显示这些消息,从而无发送者列表,而且无摘录。取而代之,第二压缩的子表格以小线条表示这些消息中的每一消息。视觉效果是,这些子表格就像叠卡片中的卡片的边缘一样加以显现。在某些实施例中,永远不按第二压缩的子表格显示对话中的第一和最后的消息,而且更一般地,也不按第二压缩的子表格表示某些消息,例如那些具有“加星号”标签的消息。第二压缩的子表格的使用有助于对具有大量消息的对话的查看。该方法可用于表示与用户指定的搜索查询相匹配的对话中的消息,其中对话具有大于阈值数目的消息。在这一情况下,由第二压缩的子表格所表示的消息为不与搜索查询相匹配的连续消息组。In some embodiments, when the number of messages in a conversation exceeds a threshold (e.g., 8 or 10 messages), and multiple consecutive messages in the conversation will be displayed in a compressed subtable (e.g., received from the conversation When messages marked as read in the conversation selected by the inbox list are displayed), these messages are displayed in a second compressed subtable that does not include text, so that there is no list of senders and no excerpts. Instead, the second compressed subtable represents each of these messages as a small line. The visual effect is that these subtables appear like the edges of the cards in a stack. In some embodiments, the first and last messages in the conversation are never displayed in the second compressed subtable, and more generally certain messages, such as those with " Starred" tagged messages. The use of a second compressed subtable facilitates viewing of conversations with a large number of messages. The method can be used to represent messages in a conversation that match a user-specified search query, where the conversation has more than a threshold number of messages. In this case, the messages represented by the second compressed sub-table are consecutive groups of messages that do not match the search query.

图6C是类似于图6B中所示意性屏幕截图的示意性屏幕截图,所不同的是(1)在用户点击了第一子表格650之后,按扩展模式显示该子表格,(2)最后子表格包括详细消息报头660,以及(3)在用户点击了“回答S4”链路之后,把消息回答表格670附接于最后子表格。在一个实施例中,当用户正在查看对话的内容时,可以持续地显示用于对某一消息(例如,最后消息)进行回答的文本框,即与该消息相关联地显示这一文本框。换句话说,显示消息回答表格670,而且与其相关的回答文本框可为用户加以存取,而不要求用户点击“回答S4”链路。在其它实施例中,可以针对对话中的所有消息,或者针对所有按扩展模式所显示的消息,持久地显示消息回答表格。FIG. 6C is a schematic screenshot similar to the schematic screenshot in FIG. 6B, except that (1) after the user clicks on the first subtable 650, the subtable is displayed in expanded mode, and (2) the last subtable The form includes a detailed message header 660, and (3) a message answer form 670 is attached to the final subform after the user clicks on the "Answer S4" link. In one embodiment, while the user is viewing the content of the conversation, a text box for answering a certain message (eg, the last message) may be continuously displayed, ie, displayed in association with the message. In other words, the message answer form 670 is displayed and its associated answer text box is accessible to the user without requiring the user to click on the "Answer S4" link. In other embodiments, the message answer form may be persistently displayed for all messages in the conversation, or for all messages displayed in expanded mode.

在结构上,第一扩展的子表格650与图6B中所示的最后子表格相同。其包括简要消息报头、“更多选项”链路、消息体以及一组处于子表格底部的回答选项。除了消息发送者和接收者的电子邮件地址或其它标识符之外,详细消息报头660还包括用户可以采取的动作的列表。例如,“把这一消息放入废纸篓”动作661允许用户把消息从对话中去除。作为默认形式,消息回答表格670仅把S4的地址包括在“至:”字段中,因为用户正在对其进行回答的消息的发送者为S4。然而,如果用户希望把回答消息发送给更多的接收者,则消息回答表格还向用户提供附加的选项(例如,“添加Cc”,“添加Bcc”)。消息回答表格670还允许用户编辑原始消息的主题和把文档附接于回答消息。Structurally, the first extended subtable 650 is the same as the last subtable shown in FIG. 6B. It includes a brief message header, a "more options" link, a message body, and a set of answer options at the bottom of the subtable. In addition to the email addresses or other identifiers of the message sender and recipient, the detailed message header 660 also includes a list of actions that the user can take. For example, "Trash this message" action 661 allows the user to remove the message from the conversation. As a default, the message reply form 670 includes only S4's address in the "To:" field, since the sender of the message to which the user is replying is S4. However, the message answer form also provides the user with additional options (eg, "Add Cc", "Add Bcc") if the user wishes to send the reply message to more recipients. The message reply form 670 also allows the user to edit the subject of the original message and attach documents to the reply message.

图6D为用户点击了“扩展全部消息”按钮634之后图6B中所示对话的示意性的屏幕截图。结果,按扩展模式显示所有4条消息608。注意,按钮634中的文本改变为“压缩全部消息”。在用户再次点击了按钮634之后,对话的显示返回到图6B中所示的格式。FIG. 6D is a schematic screenshot of the dialog shown in FIG. 6B after the user has clicked the "Expand All Messages" button 634 . As a result, all 4 messages 608 are displayed in expanded mode. Note that the text in button 634 changes to "Compress All Messages". After the user clicks button 634 again, the display of the dialog returns to the format shown in FIG. 6B.

图6E是说明了先前所描述的某些特性的对话的示意性的屏幕截图。具体地讲,图6E说明了在682处当对话中消息的数目超过了阈值时所使用的第二压缩子表格的例子。尽管用户不能够看到这些消息的任何报头信息,但用户仍可以看到在该第二压缩的子表格中有多少条消息。在某些实施例中,在描述了如简要消息报头684和686中所说明的简要消息报头的压缩子表格中,描述了第二压缩子表格中的消息的两端上的消息。在某些实施例中,以及如图6E中所示,简要消息报头包括发送者、消息部分、以及消息的日期/时间值,而未描述消息的其它接收者。可以在消息688处看到“加星号”的特性的例子。消息688中的星号不同于其它消息在于其星号被填写了,其表示这一消息具有加星号的状态,而其它消息不具有这样的状态。当然,可以使用任何提供了有区别的状态的视觉指示符,而且这一概念不局限于“星号”,以及是否“填写”了星号。如以上所描述的,在一个实施例中,当显示了对话,而且不存在未被读取的消息(如图6E中所示)时,按扩展模式显示具有加星号状态的消息。在另一个实施例中,如果存在尚未被读取的或尚未被查看的消息,则将按压缩的子表格但不是按第二压缩的子表格显示加星号的消息688,例如682处的那些消息。其它实施例预计了不同的排列,例如总是按扩展模式看到加星号的消息,而不管是否存在任何尚未被读取或尚未被查看的消息。Figure 6E is a schematic screenshot of a dialog illustrating some of the features previously described. In particular, FIG. 6E illustrates an example of the second compression subtable used at 682 when the number of messages in a conversation exceeds a threshold. Although the user cannot see any header information for these messages, the user can still see how many messages are in this second compressed sub-table. In some embodiments, in the compressed subtable describing the brief message header as illustrated in brief message headers 684 and 686, messages on both ends of the message in the second compressed subtable are described. In some embodiments, and as shown in Figure 6E, the brief message header includes the sender, message parts, and date/time values of the message, without describing other recipients of the message. An example of the "starred" property can be seen at message 688 . The asterisk in message 688 differs from other messages in that its asterisk is filled in, which indicates that this message has a starred status, while other messages do not have such a status. Of course, any visual indicator that provides a differentiated status can be used, and the concept is not limited to "stars" and whether they are "filled in". As described above, in one embodiment, when a dialog is displayed and there are no unread messages (as shown in Figure 6E), messages with a starred status are displayed in expanded mode. In another embodiment, if there are messages that have not been read or have not been viewed, the starred messages 688, such as those at 682, will be displayed in the compressed subtable but not in the second compressed subtable information. Other embodiments contemplate different permutations, such as always seeing starred messages in extended mode, regardless of whether there are any messages that have not been read or viewed.

使用查询定位、列表以及显示对话Use queries to locate, list, and display conversations

如以上所提到的,用户可以搜索与用户指定的查询相匹配的对话。对话管理系统102和对话助手110协同运作,以生成对应于查询的搜索结果,并且按十分直观的方式把结果提交于用户。图7A是一个流程图,说明了对话助手110如何生成用于显示与用户的搜索请求相匹配的对话的各种表格。在某些实施例中,在向客户机中的对话助手发送对话信息之前,由对话管理系统执行图7A中所示的某些动作,例如用于对将要显示的对话信息进行格式化的动作。As mentioned above, a user can search for conversations that match a user-specified query. The dialog management system 102 and the dialog assistant 110 work cooperatively to generate search results corresponding to the query and present the results to the user in a very intuitive manner. FIG. 7A is a flowchart illustrating how the dialog assistant 110 generates various forms for displaying dialogs matching the user's search request. In some embodiments, certain actions shown in Figure 7A are performed by the dialog management system prior to sending the dialog information to the dialog assistant in the client, such as actions for formatting the dialog information to be displayed.

在步骤702,对话助手110从对话管理系统102接收代表多个与搜索查询(其可以包括一个或多个查询项目)相匹配的对话的信息以及相关的显示指令。在步骤704,对话助手110生成用于容纳对话列表的表格,每一个对话占据该表格中的一行。对于该表格中的每一行,在步骤706,对话助手110还生成包含匹配查询项目的摘录。在某些实施例中,对话助手110还突出显示与搜索查询中任何查询项目相匹配的摘录项目。在步骤710,显示对话的列表。图7B为根据这些步骤所产生的对话的列表的示意性屏幕截图。在某些实施例中,用户可以指定致使摘录的生成和/或显示受到抑制的用户偏好。在某些实施例中,当把与搜索查询相匹配的文本放置在消息的报头或其它信息中时,所提供的摘录为消息的第一部分。At step 702 , dialog assistant 110 receives from dialog management system 102 information representing a plurality of dialogs matching a search query (which may include one or more query terms) and related display instructions. At step 704, dialog assistant 110 generates a table for holding a list of dialogs, each dialog occupying a row in the table. For each row in the table, at step 706 the dialog assistant 110 also generates a snippet containing matching query terms. In some embodiments, dialog assistant 110 also highlights snippet items that match any of the query items in the search query. At step 710, a list of conversations is displayed. Fig. 7B is a schematic screenshot of a list of dialogs generated according to these steps. In some embodiments, a user may specify user preferences that cause generation and/or display of snippets to be suppressed. In some embodiments, when text matching a search query is placed in a header or other information of a message, the excerpt is provided as the first part of the message.

在某些实施例中,如果用户选择(例如点击)了代表对话列表中的对话的行(例如,图7B中所示的对话列表中的行)(步骤712),则在步骤714,对话助手110显示所选择的对话。为了做到这一点,对话助手生成一系列容纳一系列与所选择对话相关的消息的子表格。具体地讲,如果从响应于用户指定的搜索查询所产生的对话列表中选择了所选择的对话,则按压缩模式显示那些其相关的消息不包含搜索查询中任何查询项目的子表格,而按扩展模式显示那些其相关消息至少包括一个查询项目的子表格。对话助手110还突出显示消息体中的匹配查询项目。与指定查询相匹配的所选择对话的显示例子被描述为图7C中的示意性屏幕截图。如果从对话的范畴列表,例如从对话的收件箱列表选择了所选择对话,则消息的最初的显示如以上针对图6C所描述的。In some embodiments, if the user selects (e.g., clicks) a row representing a dialog in the dialog list (e.g., the row in the dialog list shown in FIG. 7B) (step 712), then in step 714, the dialog assistant 110 Display the selected dialog. To do this, the dialog helper generates a series of subtables containing a list of messages related to the selected dialog. Specifically, if a selected conversation is selected from a list of conversations generated in response to a user-specified search query, those subtables whose associated messages do not contain any query items in the search query are displayed in compressed mode, while pressing Extended mode displays those subtables whose associated messages include at least one query item. The dialog assistant 110 also highlights matching query terms in the message body. A display example of a selected dialog matching a specified query is depicted as a schematic screenshot in Figure 7C. If the selected conversation is selected from the conversation's category list, eg, from the conversation's inbox list, messages are initially displayed as described above for FIG. 6C.

图7B是一个列出了3个与查询项目“Tahoe”720相匹配的对话730的浏览器窗口的示意性的屏幕截图。在3个对话730之上,是“搜索选项”链路732。用户可以点击该链路,以修改那些用于进行搜索的选项。例如,用户可以指定是把搜索限制于一个范畴中的对话,还是限制于所有的范畴中的对话。当所列对话属于两个或两个以上不同的范畴时,不突出显示编组框346中的任何一个范畴。在每一匹配的对话中,标识了包含项目“Tahoe”的摘录,并且以突出显示了单词“Tahoe”的方式显示这一摘录。这些摘录指出:3个对话覆盖了3个不同的标题,即第一个对话涉及到Tahoe湖的滑雪旅行,第二个对话涉及Tahoe模型SUV,而第三个对话涉及Tahoe国家森林公园的野营地点。因此,用户可以使用摘录中的信息以决定其希望打开哪一具体的对话。FIG. 7B is a schematic screenshot of a browser window listing three dialogs 730 that match the query term "Tahoe" 720 . Above the three dialogs 730 is a "Search Options" link 732 . Users can click on this link to modify the options for conducting a search. For example, a user may specify whether to limit the search to conversations in one category, or to conversations in all categories. When the listed dialogs belong to two or more different categories, none of the categories in group box 346 are highlighted. In each matching conversation, the excerpt containing the item "Tahoe" is identified and displayed with the word "Tahoe" highlighted. These excerpts state: 3 conversations covering 3 different titles, namely the first conversation is about a ski trip at Lake Tahoe, the second conversation is about a Tahoe model SUV, and the third conversation is about a camping location in the Tahoe National Forest . Thus, the user can use the information in the snippet to decide which specific conversation they wish to open.

图7C是一个示意性的屏幕截图,该屏幕截图显示了在用户对其进行点击之后第三个对话中的所有消息。注意,在这一屏幕截图中(在编组框346中)已经突出显示了“全部邮件”范畴,表明当前把第三个对话定位在“全部邮件”范畴中。由于第二条消息包括查询项目“Tahoe”,所以按扩展模式显示第二子表格,具有突出显示了的单词“Tahoe”。Fig. 7C is an exemplary screenshot showing all messages in the third dialog after the user clicks on it. Note that the "All Mail" category has been highlighted in this screen shot (in group box 346), indicating that the third dialog is currently positioned in the "All Mail" category. Since the second message includes the query term "Tahoe," the second subtable is displayed in expanded mode, with the word "Tahoe" highlighted.

拼写检查Spell Check

图8为一个流程图,说明了对话助手如何与用户交互,以纠正用户所编写的消息中可能错拼的单词。在编写了消息之后和在将其向外发送之前,用户可以点击“更多动作”下拉列表,并且选择“拼写检查”项目。注意,图4B中没有显示这一项目,因为其中下拉列表仅包括对话级动作。“拼写检查”为仅当正在使用一个消息编写表格时才显示在下拉动作列表中的消息级动作。响应于“拼写检查”动作的用户选择,对话助手把所编写的消息发送于对话管理系统,然后在步骤802接收所编写消息的经过拼写检查的拷贝以及显示指令。在可选的实施例中,通过对话助手或者通过使用局部字典的局部客户机应用,执行此处所描述的与拼写检查器相关的对话管理系统所执行的动作。根据显示指令,对话助手在步骤804突出显示消息中每一可能错拼的单词,在步骤806,把每一突出显示的单词与系统生成的候选单词的列表相关联,并且在步骤808,在独立的浏览窗口中显示重新格式化的消息。当用户选择了浏览窗口中的具体突出显示的单词时,对话助手在拼写纠正窗口中确定用户选择的单词的位置,并且在步骤810,在该窗口附近附接候选替换项目的列表(应该加以注意的是,替换项目可以包括一个或多个单词)。然后,对话助手在步骤812使用候选列表中用户指定的替换项目,修改拼写纠正窗口中的错拼的单词。对话助手还可以在步骤814在用户指定的方向扩展拼写纠正窗口,以致用户可以在步骤816修正拼写纠正窗口中的一个以上的单词。Figure 8 is a flowchart illustrating how the dialog assistant interacts with the user to correct possible misspelled words in a message composed by the user. After composing the message and before sending it out, the user can click on the "More Actions" drop-down list and select the "Spell Check" item. Note that this item is not shown in Figure 4B because the drop-down list therein only includes dialog-level actions. "Spell Check" is a message-level action that only appears in the drop-down action list when a form is being written with a message. In response to user selection of the "spell check" action, the dialog assistant sends the composed message to the dialog management system, and then receives a spell-checked copy of the composed message and display instructions at step 802 . In alternative embodiments, the actions performed by the dialog management system described herein in relation to the spell checker are performed by a dialog assistant or by a local client application using a local dictionary. According to the display instruction, the dialog assistant highlights each possible misspelled word in the message at step 804, associates each highlighted word with a list of candidate words generated by the system at step 806, and at step 808, independently A reformatted message is displayed in the browser window of the . When the user selects a specific highlighted word in the browse window, the dialog assistant locates the user-selected word in the spelling correction window, and at step 810, attaches a list of candidate replacements near the window (it should be noted Note that replacement items can consist of one or more words). The dialog assistant then modifies the misspelled word in the spelling correction window at step 812 using the user-specified replacement item in the candidate list. The dialog assistant can also expand the spelling correction window in a direction specified by the user at step 814, so that the user can correct more than one word in the spelling correction window at step 816.

图9A为一个屏幕截图,说明了与图6C中所示的对话相同的对话,所不同的是用户已经编写了针对S4的回答消息817。在发送该消息之前,用户决定进行拼写检查。因此,用户点击了“更多动作”下拉列表,然后选择了“拼写检查”项目818。作为响应,对话助手把所编写的消息发送于对话管理系统,然后把拼写检查结果显示在独立浏览窗口中。在某些实施例中,把拼写检查结果显示在与其中用户正在编写消息的窗口相同的窗口中。实际上,显示大体保持相同,所不同的是某些与拼写检查器相关的特性的切换(toggling),以及可能错拼单词的突出显示。这一实施例增添了这样的好处:当编写消息时,用户可以在向用户提供的等效的视觉上下文中执行拼写检查,而不是向用户提交不具有这种上下文的独立的新窗口。Figure 9A is a screenshot illustrating the same dialog as that shown in Figure 6C, except that the user has composed a reply message 817 to S4. Before sending the message, the user decides to spell check it. Therefore, the user clicks on the "More Actions" drop-down list and then selects the "Spell Check" item 818 . In response, the dialog assistant sends the composed message to the dialog management system, and then displays the spell check results in a separate browser window. In some embodiments, the spell check results are displayed in the same window as the window in which the user is composing the message. In fact, the display remains largely the same, except for the toggling of certain spell-checker-related features, and the highlighting of possible misspelled words. This embodiment has the added benefit that when composing a message, the user can perform spell checking in the equivalent visual context provided to the user, rather than presenting the user with a separate new window that does not have such a context.

图9B描述了包括处于拼写检查过程不同阶段的3个独立的浏览窗口的屏幕截图。第一窗口820包括消息的经过拼写检查的拷贝。具体地讲,已经在该窗口中突出显示了3个可能错拼的单词821、823以及825。在用户点击了第二单词823之后,接下来把单词“delying”并入一个如第二浏览窗口830中所示的拼写纠正窗口832。另外,在拼写纠正窗口之下或者与拼写纠正窗口相邻地显示由系统所生成的候选单词的列表834。然后,用户选择第三替换项目“delaying”,以取代错拼的项目“delying”。如果用户希望在所纠正的单词“delaying”之前添加单词“temporarily”,则用户可以点击如第三窗口840中所示的左箭头841,把浏览器窗口指针定位在错拼项目“delying”之前的位置,然后录入单词“temporarily”。最终,在纠正了所有错拼的单词之后,用户点击“完成”按钮845,这将导致把消息发送于S4。Figure 9B depicts a screen shot including 3 separate browser windows at different stages of the spell checking process. The first window 820 includes a spell-checked copy of the message. Specifically, 3 potentially misspelled words 821, 823 and 825 have been highlighted in this window. After the user clicks on the second word 823, the word "delying" is next incorporated into a spelling correction window 832 as shown in the second browsing window 830. Additionally, a list 834 of candidate words generated by the system is displayed below or adjacent to the spelling correction window. Then, the user selects a third replacement item "delaying" to replace the misspelled item "delaying". If the user wishes to add the word "temporarily" before the corrected word "delaying", then the user can click on the left arrow 841 as shown in the third window 840, and the browser window pointer is positioned at before the misspelling item "delaying". location, and then enter the word "temporarily". Finally, after correcting all misspelled words, the user clicks on the "Done" button 845, which will result in the message being sent at S4.

对话服务器dialog server

图10~19有助于描述先前所描述的对话服务器102的实施例。图10说明了对话服务器102的一个实施例。对话服务器102包括对话引擎1002、修改器引擎1004、消息索引1006、查询引擎1008、消息数据库1010、一个或多个辅助服务服务器1012、拼写检查器1014以及SMTP 1016。10-19 help describe the previously described embodiment of the dialog server 102 . FIG. 10 illustrates one embodiment of a dialog server 102. As shown in FIG. Dialog server 102 includes dialog engine 1002 , modifier engine 1004 , message index 1006 , query engine 1008 , message database 1010 , one or more auxiliary service servers 1012 , spell checker 1014 , and SMTP 1016 .

对话引擎1002经由其与通信网络106的连接,处理来自对话助手110的请求和对对话助手110的答复。通信网络106可以包括Internet、一个或多个局域网(LAN)、一个或多个广域网(WAN)、其它类型的网络、或者这样的网络的组合。还把对话引擎连接于各种辅助性服务机构,例如,辅助服务服务器1012和拼写检查器1014。把查询引擎1008连接于对话引擎1002、消息索引1006以及消息数据库1010。把修改器引擎1004连接在对话引擎1002和消息索引1006以及消息数据库1010之间。把SMTP网关1016连接在对话引擎1002和通信网络106之间。尽管图10把对话服务器102描述为多个离散的项目,但该图更多的意图是对对话服务器102中可提交的各种特性进行功能上的描述,而不是对此处所描述的实施例的结构上的示意。实际上,正如本技术领域的普通技术人员将会意识到的,可以把独立描述的项目加以组合,也可以把某些项目加以分离。例如,可以在单一的服务器上实现图中独立描述的某些项目,也可以在一个或多个服务器上实现单一的项目。对话服务器102中服务器的实际数目以及如何在它们之间分配特性,将随实现的不同而不同,并且可能部分地取决于高峰使用期间以及平均使用期间系统必须处理的电子邮件吞吐量。Dialog engine 1002 processes requests from and replies to dialog assistant 110 via its connection to communication network 106 . Communication network 106 may include the Internet, one or more local area networks (LANs), one or more wide area networks (WANs), other types of networks, or a combination of such networks. The dialog engine is also connected to various auxiliary services, such as auxiliary services server 1012 and spell checker 1014 . Query engine 1008 is connected to dialog engine 1002 , message index 1006 and message database 1010 . Modifier engine 1004 is connected between dialog engine 1002 and message index 1006 and message database 1010 . An SMTP gateway 1016 is connected between the dialogue engine 1002 and the communication network 106 . Although Figure 10 depicts the dialog server 102 as a plurality of discrete projects, this figure is more intended to be a functional description of the various features that can be delivered in the dialog server 102 than to the embodiments described herein. Structural hints. In fact, independently described items may be combined and certain items may be separated, as will be appreciated by those of ordinary skill in the art. For example, some items independently described in the figure may be implemented on a single server, or a single item may be implemented on one or more servers. The actual number of servers in session server 102, and how features are distributed among them, will vary from implementation to implementation, and may depend in part on the e-mail throughput the system must handle during peak usage as well as during average usage.

如以上简要提及的,对话引擎1002可以响应来自对话助手110的、与消息相关的各种请求,并且经由其与通信网络106的连接返回基于对话的答复。尽管也可以把SMTP网关1016连接于通信网络106,但也可以使SMTP网关1016更直接地涉及消息的接收与发送。例如,在某些实施例中,SMTP网关1016使用简单邮件传送协议(SMIP)传输和接收消息。SMTP网关1016可以从通信网络106接收新的消息,并且把该消息发送于对话引擎1002,以进行附加处理。另外,SMTP网关1016还从对话服务器1002接收消息,然后(经由通信网络106)把这些消息传输于消息中所指定的接收者地址。As mentioned briefly above, dialog engine 1002 may respond to various requests from dialog assistant 110 related to messages and return dialog-based replies via its connection to communication network 106 . Although the SMTP gateway 1016 can also be connected to the communication network 106, the SMTP gateway 1016 can also be more directly involved in the receiving and sending of messages. For example, in some embodiments, SMTP gateway 1016 transmits and receives messages using the Simple Mail Transfer Protocol (SMIP). SMTP gateway 1016 can receive new messages from communication network 106 and send the messages to dialog engine 1002 for additional processing. In addition, SMTP gateway 1016 receives messages from session server 1002 and then transmits these messages (via communication network 106) to the recipient address specified in the message.

对话引擎1002还可以处理对可能正在被编写的消息进行拼写检查的请求。对话引擎1002向拼写检查器1014发送将要检查的文本的各部分,以进行拼写检查。拼写检查器1014返回相应的信息,包括被标识为可能不正确的拼写的文本的标识。在某些实施例中,拼写检查器1014提供了有关向被标识为可能不正确的拼写的文本提出建议的信息。在某些实施例中,把这一信息发送于对话助手110,以进行相继的处理。Dialogue engine 1002 may also handle requests to spell check messages that may be being composed. Dialogue engine 1002 sends portions of text to be checked to spell checker 1014 for spell checking. Spell checker 1014 returns corresponding information, including identification of text identified as potentially incorrectly spelled. In some embodiments, spell checker 1014 provides information about making suggestions for text identified as potentially incorrectly spelled. In some embodiments, this information is sent to dialog assistant 110 for subsequent processing.

一个或多个辅助服务服务器1012向对话引擎1002提供了附加的服务。在某些实施例中,辅助服务服务器1012包括垃圾邮件检测模块。以下,参照图11讨论垃圾邮件检测模块的操作。在某些实施例中,辅助服务服务器1012包括附件管理模块,该附件管理模块对附接于电子邮件消息的文件的有效存储与检索进行管理。One or more auxiliary service servers 1012 provide additional services to the dialog engine 1002 . In some embodiments, auxiliary services server 1012 includes a spam detection module. In the following, the operation of the spam detection module is discussed with reference to FIG. 11 . In some embodiments, auxiliary services server 1012 includes an attachment management module that manages the efficient storage and retrieval of files attached to email messages.

图11描述了用于处理所接收消息的实施例。接收消息、将其赋予对话、对其进行索引、向其赋予一个或多个属性、并且将其加以存储。例如,最初可以由SMTP网关1016接收消息,其中,可进行某些处理和操作,然后可以将其传送于对话引擎1002(阶段1102)。对话引擎1002可以为该消息生成消息标识符。消息标识符可用于互相区别消息。在实施例中,该标识符为由一个或多个部分构成的N个比特的数字。例如,在实施例中,消息标识符可以为64个比特的数字,该数字由Y个比特(例如32个比持或48个比特)的时标和64-Y个比特的消息内容的杂凑(hash)组成。杂凑为数学函数,其把值从大的域映像至较小的域。本技术领域中的普通技术人员将会意识到,存在着许多创建消息标识符的不同的方法,这些消息标识符提供了用于将消息互相区别的足够信息。Figure 11 describes an embodiment for processing received messages. A message is received, assigned to a dialog, indexed, assigned one or more attributes, and stored. For example, the message may initially be received by the SMTP gateway 1016, where certain processing and manipulation may take place, and then may be passed on to the dialog engine 1002 (stage 1102). Dialogue engine 1002 can generate a message identifier for the message. Message identifiers can be used to distinguish messages from each other. In an embodiment, the identifier is an N-bit number consisting of one or more parts. For example, in an embodiment, the message identifier may be a 64-bit number consisting of a hash of Y bits (e.g., 32 bits or 48 bits) of the timestamp and 64-Y bits of the message content ( hash) composition. A hash is a mathematical function that maps values from a large domain to a smaller domain. Those of ordinary skill in the art will appreciate that there are many different methods of creating message identifiers that provide sufficient information to distinguish messages from one another.

然后,对话引擎1002可以把消息解析为其若干构成成分(阶段1104)。这些成分可能包括发送者的地址、一个或多个接收者地址、消息的主题、“Reference:”字段,如先前所描述的RFC 2822(2001年4月)中所描述的字段、RFC 2822中还描述的“In-Reply-To:”字段、消息的内容、或任何可能包含在消息中的其它信息。在接收了消息之后,在解析消息之前或之后,把消息传送于垃圾邮件检查模块(阶段1105),以判断消息是否与垃圾邮件准则相匹配。在某些实施例中,各垃圾邮件检查模块与消息的其它处理异步地、并行地运行。在某些实施例中,垃圾邮件准则的设计旨在判断消息是否可能为用户可能不希望读取的未经请求的消息。Dialogue engine 1002 may then parse the message into its constituent components (stage 1104). These components may include the sender's address, one or more recipient addresses, the subject of the message, a "Reference:" field, as previously described in RFC 2822 (April 2001), RFC 2822 also The "In-Reply-To:" field describing, the content of the message, or any other information that may be included in the message. After receiving the message, before or after parsing the message, the message is passed to the spam checking module (stage 1105) to determine whether the message matches the spam criteria. In some embodiments, each spam checking module runs asynchronously and in parallel with other processing of messages. In some embodiments, spam criteria are designed to determine whether a message is likely to be an unsolicited message that a user may not wish to read.

把所解析的消息添加于消息数据库(阶段1106)。在一个实施例中,把该消息添加于消息数据库,而且不进行相继的修改,除非可能要删除。The parsed message is added to the message database (stage 1106). In one embodiment, the message is added to the message database without subsequent modification, except possibly for deletion.

在消息解析期间所抽取的消息的某些或所有成分被用于帮助对所接收的消息所属的对话(如果存在这样的对话)的判断(阶段1108)。例如,可以把消息的主题与具有相同主题的其它消息进行比较,因为对话中的消息很可能将具有相同的、或几乎相同的主题。如果尚未发现相匹配的对话,则把该消息与新的对话相关联。Some or all of the components of the message extracted during message parsing are used to aid in the determination of the conversation (if such a conversation exists) to which the received message belongs (stage 1108). For example, the subject of a message can be compared to other messages with the same subject, since it is likely that the messages in the conversation will have the same, or nearly the same subject. If no matching conversation has been found, the message is associated with a new conversation.

在已经进行了对话关联之后,为消息加索引,以用于搜索(阶段1110)。在一个实施例中,为消息的整个文本和报头信息的部分加索引。在某些实施例中,不对消息体中的“干扰词”(例如“the(这一)”、“a(某一)”以及“or(或者)”等单词)加索引,但对消息的相关部分中的所有其它文本加索引。本技术领域中的普通技术人员将会意识到,应该为可加以搜索的消息的那些部分加索引。如以下所提到的,在某些实施例中,在消息处理的较后阶段,把涉及与消息相关的属性的信息添加于索引中。After conversation correlation has been made, the messages are indexed for searching (stage 1110). In one embodiment, the entire text of the message and portions of the header information are indexed. In some embodiments, "noise words" (such as "the", "a", and "or") in the message body are not indexed, but the message's All other text in the relevant section is indexed. Those of ordinary skill in the art will recognize that those portions of the message that are searchable should be indexed. As mentioned below, in some embodiments, information related to attributes associated with the message is added to the index at a later stage of message processing.

接下来,把属性的初始集合赋予消息(阶段1112)。例如,这些类型的属性可以包括为所接收消息加“未被读取”标签(这通常意味着消息尚未被查看,或尚未被标记为被读取的),以表示该消息为新的。除了用户发送的消息外,最初赋予消息的另一个属性是“收件箱”属性。最初赋予每一消息的另一组属性是与同一对话中的其它消息(如果存在的话)相关的用户定义的属性。通过搜索以下参照图18所描述的对话数据库,确定与对话中的其它消息相关的用户定义的属性。最初也可以把其它属性赋予消息。与消息相关的属性可用于搜索消息数据库,以获取具有类似属性的消息。例如,可以执行搜索以搜索所有被标明为“未被读取”的消息。另外,也可以把对话的属性添加于消息,因为,在一个实施例中,消息继承了其对话的属性。Next, an initial set of attributes is assigned to the message (stage 1112). For example, these types of attributes may include tagging a received message as "unread" (which generally means that the message has not been viewed, or marked as read), to indicate that the message is new. In addition to messages sent by users, another attribute originally assigned to messages is the "inbox" attribute. Another set of attributes initially assigned to each message are user-defined attributes related to other messages (if any) in the same conversation. User-defined attributes related to other messages in the conversation are determined by searching the conversation database described below with reference to FIG. 18 . Initially other attributes may also be assigned to the message. Attributes associated with a message can be used to search the message database for messages with similar attributes. For example, a search may be performed to search for all messages marked as "unread". In addition, the attributes of the dialog may also be added to the message, since, in one embodiment, the message inherits the attributes of its dialog.

在某些实施例中,与消息相关的属性可以包括与对话中单条消息相关而不必与所有消息相关联的属性。例如,可以把“标记为删除”属性(有时也将其称为“废纸篓”属性)与对话中的单一的消息相关联,而不与同一对话中的其它消息相关联。标记为删除的消息还由系统加以存储,并且还与对话相关联,但通常在显示对应的对话时不对它们加以显示。使用一个或多个特定的视图,以使得用户能够查看具有属性“标记为删除”的消息。这样的视图向用户提供了“不删除”消息的机会。另一方面,在某些实施例中,当把用户定义的标签与对话相关联时,把该标签与对话中的所有消息相关联。在某些其它实施例中,当把用户定义的标签与对话相关联时,把该标签与对话中的所有满足预先定义的准则的消息(例如,除那些标记为删除的消息之外的消息)相关联。In some embodiments, message-related attributes may include attributes associated with individual messages in a conversation, but not necessarily with all messages. For example, a "mark for deletion" attribute (also sometimes referred to as a "trash" attribute) may be associated with a single message in a conversation, but not with other messages in the same conversation. Messages marked for deletion are also stored by the system and are also associated with a conversation, but they are usually not displayed when the corresponding conversation is displayed. Use one or more specific views to enable the user to view messages with the attribute "marked for deletion". Such a view provides the user with the opportunity to "don't delete" the message. On the other hand, in some embodiments, when associating a user-defined tag with a conversation, the tag is associated with all messages in the conversation. In certain other embodiments, when associating a user-defined label with a conversation, the label is associated with all messages in the conversation that satisfy predefined criteria (e.g., messages other than those marked for deletion) Associated.

接下来,把用户已经建立的用户定义的过滤器施用于消息(阶段1114)。每一用户定义的过滤器包括一组过滤条件和一组动作。过滤条件定义了哪些消息与过滤器相匹配,动作包括指定将添加于消息或从消息去除的标签的动作。过滤条件可以包括与发送者、接收者、消息主题中的文本、消息中的文本等相关的准则。在某些实施例中,动作可以包括“从收件箱去除”(即,如果存在,则从消息中去除收件箱标签)、向消息添加系统标签(有时称为范畴)、以及向消息添加用户定义的标签。例如,过滤器可以指定所有具有特定项目或者项目组合的消息都应该用“废纸篓”标签标明。另一个过滤器可以指定,如果项目“Tahoe湖”出现在消息中的任何地方,则把“假日”标签添加于该消息。Next, the user-defined filters that the user has established are applied to the message (stage 1114). Each user-defined filter consists of a set of filter conditions and a set of actions. Filter conditions define which messages match the filter, and actions include actions that specify tags to be added to or removed from messages. Filter criteria may include criteria related to sender, recipient, text in message subject, text in message, and the like. In some embodiments, actions may include "remove from inbox" (i.e., remove the inbox label from the message, if present), add a system label (sometimes called a category) to the message, and add a User-defined tags. For example, a filter could specify that all messages with a particular item or combination of items should be marked with the "Trash" label. Another filter may specify that if the item "Lake Tahoe" occurs anywhere in the message, then add a "holiday" tag to the message.

注意,在某些实施例中,阶段1112和1114涉及把标签赋予正被处理的消息。在执行或准备执行阶段1112和1114时,检索来自垃圾邮件检查模块的结果(阶段1105)。如果垃圾邮件检查模块把消息归类为垃圾邮件,则把“垃圾邮件”标签赋予该消息,并且从该消息去除任何冲突的标签(例如,“收件箱”或“废纸篓”)。Note that in some embodiments, stages 1112 and 1114 involve assigning labels to messages being processed. While executing or preparing to execute stages 1112 and 1114, the results from the spam checking module are retrieved (stage 1105). If the spam checking module classifies the message as spam, the "spam" label is assigned to the message, and any conflicting labels (eg, "inbox" or "trash") are removed from the message.

在已建立了赋予消息的标签集合之后,修改对话引擎1002中的索引和某些表(阶段1116),以反映赋予该消息的标签集合。通过添加表示把标签赋予哪一消息的信息来修改索引。结果,在这些标签的每一标签上的索引搜索将产生包括正被处理的当前消息的消息列表。另外,修改对话引擎中的至少一个表或数据库,以表示赋予正被处理的当前消息的标签集合。以下,将参照图18描述这一点。After the set of labels assigned to the message has been established, the indexes and certain tables in the dialog engine 1002 are modified (stage 1116) to reflect the set of labels assigned to the message. The index is modified by adding information indicating which message to assign the label to. As a result, an indexed search on each of these tags will produce a list of messages including the current message being processed. Additionally, at least one table or database in the dialog engine is modified to represent the set of tags assigned to the current message being processed. Hereinafter, this point will be described with reference to FIG. 18 .

最后,可以向消息的发送者发送认可(阶段1118)。在某些实施例中,可以发送认可,而在另一些实施例中,可以不发送认可。Finally, an acknowledgment may be sent to the sender of the message (stage 1118). In some embodiments, an acknowledgment may be sent, while in other embodiments, no acknowledgment may be sent.

尽管图11按特定的次序描述了这些阶段,但并不旨在不适当地限制这些阶段的次序。在其它实施例中,可以对这些阶段进行不同的排序。例如,在对消息进行索引之前,可以把消息添加于该消息数据库,从而阶段1114后可跟阶段1110。本技术领域中的普通技术人员将会意识到对这些阶段重新进行排序的各种方式。Although FIG. 11 depicts these stages in a particular order, it is not intended to unduly limit the order of these stages. In other embodiments, the stages may be ordered differently. For example, stage 1114 may be followed by stage 1110 by adding messages to the message database before indexing them. Those of ordinary skill in the art will recognize various ways of reordering these stages.

把每一消息与对话相关联Associate each message with a conversation

参照图12,以下为如何可把消息与对话相匹配(阶段1106)的更详细的描述。在对消息进行解析(图11的阶段1104)之后,构成成分的各部分可用于规划对候选对话的搜索查询(步骤1202)。例如,可以根据时间信息、发送者信息、主题信息、报头中的其它信息、或系统提供的信息、或者它们的任何组合来对对话加以关联。一个实施例使用带有“Reference:”和/或“In-Reply-To:”字段的消息的主题规划搜索查询。其它实施例包括搜索查询中消息的发送者或者接收者。本技术领域中的普通技术人员将会意识到用于产生可与当前消息相关的消息的许多不同的搜索查询。Referring to Figure 12, the following is a more detailed description of how messages can be matched to dialogs (stage 1106). After the message has been parsed (stage 1104 of Figure 11), the parts of the constituents can be used to formulate search queries for candidate conversations (step 1202). For example, conversations may be correlated based on time information, sender information, subject information, other information in headers, or system-provided information, or any combination thereof. One embodiment formulates search queries using topics of messages with "Reference:" and/or "In-Reply-To:" fields. Other embodiments include searching for senders or recipients of messages in a query. Those of ordinary skill in the art will recognize many different search queries for generating messages that may be related to the current message.

针对先前所存储的消息施用搜索查询,并且接收候选消息(阶段1204)。对消息或有关消息的信息进行检查,以判断哪些消息(如果存在的话)可最好地与当前消息相匹配(阶段1206)。该消息所属于的对话很可能为当前消息所属于的对话。可以使用多种不同的方案确定当前消息所属于的对话。一种方案可以使用当前消息的主题。具有相同主题的消息很可能属于同一对话。因此,可以规划使用当前消息的主题的查询。例如,如果流入的消息具有主题“今天我们应去哪里吃午饭?”,则当前消息所属于的对话(如果存在的话)就有可能包括一条或多条具有相同主题的消息。当对主题进行比较时,在进行比较之前,对主题进行正规化可能是人们所希望的。在某些实施例中,对主题进行正规化包括去除前缀,例如去除“Re:”和“Fwd:”,其通常由某些系统把它们添加于主题。A search query is applied against previously stored messages, and candidate messages are received (stage 1204). Messages or information about messages are checked to determine which messages, if any, best match the current message (stage 1206). The conversation the message belongs to is most likely the conversation the current message belongs to. A number of different schemes can be used to determine which conversation the current message belongs to. One scheme could use the subject of the current message. Messages with the same subject are likely to belong to the same conversation. Therefore, queries that use the topic of the current message can be planned. For example, if an incoming message has the subject "Where should we go for lunch today?", it is possible that the conversation to which the current message belongs (if one exists) includes one or more messages with the same subject. When comparing subjects, it may be desirable to regularize the subjects before making the comparison. In some embodiments, normalizing the subject includes removing prefixes, such as "Re:" and "Fwd:", which are typically added to the subject by some systems.

然而,可能人们希望检查的不仅仅是主题。如果两条消息具有同样的主题,但其中的一条早在另一条消息之前就接收了,则它们很可能不是同一对话的一部分。例如,如果相隔一个月接收到两条具有主题“今天我们应去哪里吃午饭?”的消息,则它们不可能为同一对话的一部分。因此,在本发明的一个实施例中,如果当前消息和来自候选对话的消息的正常化主题相匹配,则对该消息的日期/时间值的检查可能是人们所希望的。However, it may be that one wishes to examine more than just topics. If two messages have the same subject, but one of them is received long before the other, they are probably not part of the same conversation. For example, if two messages with the subject "Where should we go for lunch today?" are received a month apart, they are unlikely to be part of the same conversation. Therefore, in one embodiment of the invention, it may be desirable to check the date/time value of the current message and the message from the candidate dialog if the normalized subject of the message matches.

当把消息与对话相匹配时,可以考虑其它因素,例如接收者、消息内容的各部分、发送者的域地址、或其它因素。本技术领域中的普通技术人员将会意识到,存在用于确定新消息所属于的对话的许多不同方式。一旦当前消息与令人满意的匹配消息相匹配,则可以把与该匹配消息相关的对话与当前消息相关联(阶段1206)。另一方面,如果没有发现令人满意的匹配消息(因而,无对话),则把新的对话标识符与该消息相关联(阶段1206)。Other factors may be considered when matching messages to conversations, such as recipients, portions of message content, sender's domain address, or other factors. Those of ordinary skill in the art will appreciate that there are many different ways to determine the conversation to which a new message belongs. Once the current message is matched with a satisfactory matching message, the conversation related to the matching message can be associated with the current message (stage 1206). On the other hand, if no satisfactory matching message is found (thus, no dialog), then a new dialog identifier is associated with the message (stage 1206).

在某些实施例中,可以根据对话中所接收的初始消息来创建对话标识符。例如,可以把系统提供的初始消息的消息标识符(由传输或接收系统提供的)用作对话标识符。然后,把相继的消息与目前用作为对话标识符的该消息标识符相关联。本技术领域中的普通技术人员将会意识到可用于提供对话标识符的初始消息的各种特性。在某些实施例中,这些特性应该提供这样的良好支持:该值唯一于该初始消息,使得将不会把同一对话标识符赋予多个对话。In some embodiments, a conversation identifier may be created from an initial message received in a conversation. For example, the message identifier of the original message provided by the system (provided by the transmitting or receiving system) may be used as the session identifier. Successive messages are then associated with the message identifier currently used as the conversation identifier. Those of ordinary skill in the art will recognize the various characteristics of the initial message that may be used to provide the dialog identifier. In some embodiments, these properties should provide good support that the value is unique to the initial message so that multiple conversations will not be assigned the same conversation identifier.

如先前所提到的,在把当前消息与对话(先前存在的或新创建的)相关联(阶段1106)之后,添加初始属性(阶段1108)。参照图13可以更好地理解用于添加这些初始属性(阶段1108)的一个实施例。最初,可以检查消息的发送者。如果当前消息的发送者不是针对其正在执行这一消息处理的用户,则当前消息很可能已被别人发送至该用户。因此,如果在阶段1302断定当前消息的发送者不是该用户,则可以把“收件箱”的初始属性(也称收件箱标签)与当前消息相关联(阶段1304)。“收件箱”的属性可用于标识那些已经发送给该用户的消息。例如,在某些实施例中,把具有“收件箱”属性的消息的搜索用于用户的收件箱视图的产生。As previously mentioned, after associating the current message with a dialog (pre-existing or newly created) (stage 1106), initial attributes are added (stage 1108). One embodiment for adding these initial attributes (stage 1108 ) can be better understood with reference to FIG. 13 . Initially, the sender of the message can be checked. If the sender of the current message is not the user for whom this message processing is being performed, it is likely that the current message has already been sent to the user by someone else. Thus, if it is determined at stage 1302 that the sender of the current message is not the user, an initial attribute of "inbox" (also called an inbox label) may be associated with the current message (stage 1304). The "Inbox" attribute can be used to identify those messages that have been sent to this user. For example, in some embodiments, a search for messages with an "inbox" attribute is used in the generation of the user's inbox view.

在本文献中,可交换地使用术语“属性”和“标签”。另外,把具体属性与消息“相关联”,以及使用具体属性或标签“标记”消息被视为是相同的或等效的操作。In this document, the terms "attribute" and "tag" are used interchangeably. Additionally, "assocating" a specific attribute with a message, and "marking" a message with a specific attribute or tag are considered to be the same or equivalent operations.

由于当前消息很可能是新的,所以用户此前尚未查看这一消息也是很可能的。因此,可以把如此指示的“未被读取”属性与当前消息相关联(阶段1306)。本技术领域中的普通技术人员将会意识到,可以按能够达到同样结果的多种方式实现消息属性。例如,预先定义的值可以代表“收件箱”。可以根据这些属性搜索具有所希望的属性的消息足以。也可以把其它属性与消息相关联。尽管搜索具体属性的能力比有区别更为重要,但仍可以按多种形式考虑属性。属性可以包括系统定义的属性,例如,收件箱、废纸篓、垃圾邮件、全部文档以及未被读取。在某些实施例中,某些系统属性可能是互斥的(例如,收件箱、废纸篓以及垃圾邮件)。属性还可以包括用户定义的属性,此处,有时把它们称为范畴。Since the current message is likely new, it is also likely that the user has not viewed this message before. Accordingly, the "not read" attribute so indicated may be associated with the current message (stage 1306). Those of ordinary skill in the art will appreciate that message attributes can be implemented in a variety of ways that achieve the same result. For example, a predefined value could represent "Inbox". It is sufficient that a message having a desired attribute can be searched based on these attributes. Other attributes may also be associated with the message. Attributes can be considered in many forms, although the ability to search for specific attributes is more important than distinctions. Attributes can include system-defined attributes such as Inbox, Trash, Junk, All Documents, and Not Read. In some embodiments, certain system properties may be mutually exclusive (eg, Inbox, Trash, and Junk). Attributes can also include user-defined attributes, which are sometimes referred to here as categories.

如果用户为正被处理的消息的发送者(如在阶段1302所断定的),或者在把任何可施用的系统属性添加于消息之后,例如,在添加了“未被读取”(阶段1306)之后,则把属于对话的附加的属性添加于消息(阶段1307)。If the user is the sender of the message being processed (as determined at stage 1302), or after adding any applicable system attributes to the message, for example, after adding "not read" (stage 1306) Afterwards, additional attributes belonging to the dialog are added to the message (stage 1307).

可以针对流入的消息检查和施用某些过滤条件(阶段1308)。在实施例中,用户可以建立当满足预先确定的条件时把属性施用于所接收的消息的过滤器。在另一个实施例中,系统可以把一个或多个预先定义的过滤器施用于所接收的消息。Certain filter conditions may be checked and applied against incoming messages (stage 1308). In an embodiment, a user may establish a filter that applies attributes to received messages when predetermined conditions are met. In another embodiment, the system may apply one or more predefined filters to received messages.

如果当前消息与过滤准则相匹配,则接下来可以根据过滤器把属性施用于该消息(阶段1310)。在一个实施例中,系统提供了使用户能够建立过滤器的工具,以便不把某些消息放置于“收件箱”中。换句话说,过滤器将导致把“收件箱”属性从消息中去除。在另一个实施例中,可以把当前消息与特定的用户定义的属性相关联,例如与指示可以把一个或多个对话与其关联的那一用户所感兴趣的领域的标签相关联。例如,可以把流入的消息与具有标签“食物”的对话相关联,然后,将把“食物”标签与当前消息相关联。总体上讲,消息继承了将消息与其相关联的对话的标签。由于可以把多个过滤器施用于所接收的消息,所以可以把新接收的消息以及它们相关的对话与一个以上的用户定义的标签相关联。If the current message matches the filter criteria, attributes may next be applied to the message according to the filter (stage 1310). In one embodiment, the system provides a tool that enables the user to create filters so that certain messages are not placed in the "Inbox". In other words, the filter will cause the "inbox" attribute to be removed from the message. In another embodiment, the current message may be associated with a particular user-defined attribute, such as a tag indicating an area of interest to that user to which one or more conversations may be associated. For example, an incoming message could be associated with a conversation with the tag "food," which would then associate the "food" tag with the current message. In general, messages inherit the tags of the conversation that the message is associated with. Since multiple filters can be applied to received messages, newly received messages and their associated conversations can be associated with more than one user-defined tag.

在另一个实施例中,用户可以把瞌睡条件与对话相关联。在某些实施例中,当用户特别命令系统这样做时,才把瞌睡条件与对话相关联。在某些实施例中,当过滤器与对话中的消息相匹配时,把瞌睡条件与对话相关联。当在已经把瞌睡条件施加于其的对话中接收到新消息时,瞌睡条件指定将要执行的某些动作。例如,瞌睡条件可以使系统免于把收件箱标签与对话中的新消息相关联。更具体地讲,用户可以把瞌睡条件与对话相关联(直接地,或者通过过滤器的操作),从而使对话中的新消息免于被放置在用户的收件箱中,除非满足了某些触发条件。一个这样的触发条件可以是直接导向用户(作为唯一的主接收者)的流入的消息。另一个这样的触发条件可以是由用户或系统所选择的一段时间的流逝。再一些触发条件可以是包含所指定的单词或短语的所接收的消息。在这一情况下,当接收到满足瞌睡条件的消息时,从对话中去除该瞌睡条件,并且使用“收件箱”标签标记该流入的消息。在某些实施例中,还采取了额外的动作,例如,把“收件箱”标签添加于对话中的其它消息。在另一个实施例中,使用“收件箱”标签标明具有“未被读取”标签的对话中的所有消息。因此,“收件箱”的搜索将返回该对话。在某些实施例中,通过生成瞌睡过滤器而把瞌睡条件与对话相关联,从而使与对话相关联的新消息免于被以“收件箱”标签加以标记,直至出现预先定义的事件或条件,在此之后,删除或修改该瞌睡过滤器。In another embodiment, a user can associate a doze condition with a conversation. In some embodiments, the doze condition is only associated with a dialog when the user specifically commands the system to do so. In some embodiments, a doze condition is associated with a conversation when a filter matches a message in the conversation. A doze condition specifies certain actions to be performed when a new message is received in a dialog to which a doze condition has been applied. For example, a snooze condition can prevent the system from associating an inbox label with a new message in a conversation. More specifically, a user can associate a snooze condition with a conversation (either directly, or through the action of a filter), thereby preventing new messages in the conversation from being placed in the user's inbox unless certain Triggering conditions. One such trigger could be an incoming message directed directly to the user (as the only primary recipient). Another such trigger condition may be the lapse of a period of time selected by the user or the system. Still other triggers may be received messages containing specified words or phrases. In this case, when a message is received that satisfies the snooze condition, the snooze condition is removed from the conversation, and the incoming message is marked with an "inbox" label. In some embodiments, additional actions are taken, such as adding an "Inbox" label to other messages in the conversation. In another embodiment, all messages in the conversation with the "Unread" label are marked with the "Inbox" label. So a search of "Inbox" will return that conversation. In some embodiments, a snooze condition is associated with a conversation by generating a snooze filter, thereby exempting new messages associated with the conversation from being tagged with an "inbox" label until a predefined event or condition, after which, delete or modify the doze filter.

另一种可施用于所接收的消息的过滤器是“垃圾邮件”过滤器,其能够标识不希望的消息,并且使用“垃圾邮件”标签对它们加以标记(即,把“垃圾邮件”属性与这样的消息相关联)。Another type of filter that can be applied to incoming messages is the "spam" filter, which identifies unwanted messages and marks them with the "spam" tag (i.e., combining the "spam" attribute with the Such messages are associated).

图14说明了用于修改对话的属性的一个实施例。当对话、或者与对话相关联的流入的消息与过滤准则相匹配时,可以修改对话的属性。当用户指出对话应具有特定的用户定义的属性时,也可以修改对话的属性。例如,用户可以指定应该把具体的对话与“食物”范畴相关联。在这种情况下,使该对话(和其各自的消息)用“食物”属性来标记以便与“食物”属性相关联。用户还可以指定标记为删除的对话。Figure 14 illustrates one embodiment for modifying attributes of a dialog. Attributes of a dialog may be modified when the dialog, or incoming messages associated with the dialog, match filter criteria. Attributes of a dialog can also be modified when the user indicates that the dialog should have specific user-defined attributes. For example, a user may specify that a particular conversation should be associated with the "food" category. In this case, the conversation (and its respective message) is tagged with the "food" attribute for association with the "food" attribute. Users can also designate conversations to mark for deletion.

在某些方式下,就概念而言,用户定义的属性可比于文件夹。然而,本发明的各实施例允许把对话与多个用户定义的属性相关联。在某些实施例中,当把新的属性与对话相关联时,使用新属性标记对话中的所有消息。In some ways, user-defined attributes are conceptually comparable to folders. However, embodiments of the invention allow for associating a dialog with a number of user-defined attributes. In some embodiments, when a new attribute is associated with a conversation, all messages in the conversation are marked with the new attribute.

参照图14,当要修改对话的给定属性时,规划搜索(阶段1402)以定位对话(阶段1404)。在发现对话(阶段1404)之后,可以修改对话的属性(阶段1406)。用于完成阶段1402、1404以及1406的具体机构依赖于用于把属性与对话相关联的机构。在某些实施例中,以对话为基础把属性与对话相关联。例如,对话引擎可以维持与每一具体对话相关的属性的列表。作为选择,或者另外,对话引擎可以维持索引,该索引把每一所定义的属性映像为用该属性标记的所有对话。作为选择,在某些实施例中,把与对话相关的属性与该对话中的各条消息相关联。在这样的实施例中,对话引擎可以维持把每一所定义的属性映像为用该属性标记的所有消息的索引,而且还可以维持用于把每条消息映像至与该消息相关的对话的表或其它机构。Referring to Figure 14, when a given attribute of a dialog is to be modified, a search is planned (stage 1402) to locate the dialog (stage 1404). After the dialog is discovered (stage 1404), the properties of the dialog can be modified (stage 1406). The specific mechanism for completing stages 1402, 1404, and 1406 depends on the mechanism used to associate attributes with dialogs. In some embodiments, attributes are associated with conversations on a conversation basis. For example, a dialog engine may maintain a list of attributes associated with each particular dialog. Alternatively, or in addition, the dialog engine may maintain an index that maps each defined attribute to all dialogs tagged with that attribute. Alternatively, in some embodiments, attributes associated with a dialog are associated with each message in the dialog. In such an embodiment, the dialog engine may maintain an index mapping each defined attribute to all messages tagged with that attribute, and may also maintain a table mapping each message to the dialog associated with that message or other institutions.

与消息相对照,本发明的许多特性把对话使用作为信息的基本单元。例如,收件箱向用户提交对话的列表。本发明的某些特性使用搜索以标识在用户电子邮件账户中的多个不同对话视图中所列的对话。以下,将参照图15描述搜索对话以及生成所标识对话的表示。最初,接收搜索查询(阶段1502)。搜索查询可以为用户所指定的,或者为系统所生成的(例如,响应于用户点击“收件箱”图标)。搜索查询可以基于多种因素。搜索查询中的搜索项目可以按单词或单词的组合的形式来自用户。例如,用户可以搜索包含单词“硬面包圈”和“便宜”的消息,而且如果存在相关对话,则将返回该相关对话。系统可以响应某些用户动作,生成搜索查询。例如,如果用户希望得到收件箱视图,则系统生成搜索查询可以搜索具有属性“收件箱”的对话。In contrast to messages, many features of the invention use dialogs as the basic unit of information. For example, Inbox submits a list of conversations to the user. Certain features of the invention use search to identify conversations listed in multiple different conversation views in a user's email account. In the following, searching for conversations and generating representations of identified conversations will be described with reference to FIG. 15 . Initially, a search query is received (stage 1502). The search query can be user-specified, or system-generated (eg, in response to the user clicking the "inbox" icon). Search queries can be based on a variety of factors. Search terms in a search query can come from the user in terms of words or combinations of words. For example, a user can search for messages that contain the words "bagel" and "cheap," and if a related conversation exists, it will be returned. The system may generate search queries in response to certain user actions. For example, if the user desires an inbox view, the system-generated search query may search for conversations with the attribute "inbox".

可搜索项目的任何组合均可用于搜索查询。如以上所提到的,可搜索项目可以包括:消息的文本;与消息、对话相关的任何属性;或者与消息相关联的报头信息。在一个实施例中,把搜索查询施加于消息的数据库将返回一组消息(阶段1504)。简单参照图10,例如,可以通过向查询引擎1008发送搜索查询来实现这一点。查询引擎1008可以把搜索查询施加于该消息索引1006,消息索引1006可以返回消息的列表。可以在阶段1 504接收这一消息列表。如果希望的话,其它实施例可以按多种不同的方式返回消息的列表,包括返回一组消息标识符、文档标识符、全部或部分消息、或者它们的任何组合。Any combination of searchable items can be used in a search query. As mentioned above, searchable items may include: the text of the message; any attributes related to the message, conversation; or header information associated with the message. In one embodiment, applying a search query to the database of messages will return a set of messages (stage 1504). Referring briefly to FIG. 10 , this can be accomplished by sending a search query to query engine 1008 , for example. A query engine 1008 can apply a search query to the message index 1006, which can return a list of messages. This list of messages may be received at stage 1 504 . Other embodiments may return the list of messages in a number of different ways, including returning a set of message identifiers, document identifiers, all or part of the messages, or any combination thereof, if desired.

在某些实施例中,针对作为整体的对话,而不是针对各个消息进行搜索。于是,当查询包含第一和第二查询项目,其中一个在第一条消息中被发现,另一个在同一对话的第二条消息中被发现时,将把这一对话视为与所述的查询相关联,因而将其包括在搜索结果中。例如,考虑这样一个对话:其中第一条消息请求关于午餐地点的想法和相续的消息,同时指定具体的餐馆,不包括原始消息的文本。如果用户感兴趣于找出其中讨论特定餐馆和午餐的对话,则如果针对整个对话的文本施加这一搜索,好象对话中不存在消息边界,则搜索更可能产生所希望的结果。In some embodiments, the search is performed on the conversation as a whole, rather than on individual messages. Thus, when a query contains first and second query items, one of which is found in the first message and the other is found in the second message of the same conversation, the conversation will be considered as related to the The query is associated and thus included in the search results. For example, consider a conversation in which the first message requests ideas for lunch places and a follow-up message, specifying a specific restaurant, does not include the text of the original message. If the user is interested in finding conversations in which a particular restaurant and lunch are discussed, the search is more likely to yield the desired results if this search is applied against the text of the entire conversation as if there were no message boundaries in the conversation.

把对话与在阶段1504所返回的消息集合相关联。可以使用多种方法标识相关的对话。当从在步骤1504所返回的消息集合选择了消息(阶段1506)时,标识消息所属于的那一对话(步骤1508)。在一个实施例中,可维持把每一消息与对话相匹配的数据结构。如果维持了这样的数据结构,则对与具体消息标识符相关的数据结构条目的检查,可以标识消息所属于的对话。作为结果集合,可以把所返回的对话的数目限制为预先定义的数目。如果进行了这一限制,则该组消息的处理继续,直到标识了足够数目的对话为止,并且返回结果。另一方面,可以标识与所返回的消息组相关联的所有对话,但仅返回子集。The dialog is associated with the set of messages returned at stage 1504. Related conversations can be identified in a number of ways. When a message is selected from the set of messages returned at step 1504 (stage 1506), the dialog to which the message belongs is identified (step 1508). In one embodiment, a data structure can be maintained that matches each message to a conversation. If such a data structure is maintained, inspection of data structure entries associated with specific message identifiers can identify the conversation to which the message belongs. As a result set, the number of dialogs returned can be limited to a predefined number. If this restriction is made, processing of the group of messages continues until a sufficient number of conversations are identified, and a result is returned. On the other hand, all conversations associated with the returned group of messages may be identified, but only a subset returned.

一旦通过标识全部或部分返回结果所属于的对话创建了对话的列表(阶段1510),则格式化对话信息,以返回于请求者(阶段1512)。格式化阶段1512可以格式化多个不同类型的与所标识的对话相关联的信息,它们的细节将随实施例的不同而不同。在某些实施例中,格式化信息为可由用于把对话信息提交于用户的对话助手110加以识别的类型。Once the list of dialogs is created by identifying the dialogs to which all or part of the returned results belong (stage 1510), the dialog information is formatted for return to the requester (stage 1512). Formatting stage 1512 may format a number of different types of information associated with the identified dialog, the details of which will vary from embodiment to embodiment. In some embodiments, the formatting information is of a type recognizable by the dialog assistant 110 for submitting the dialog information to the user.

在某些实施例中,根据预先定义的规则或规则组,依照赋予每一对话的日期/时间值,排序在阶段1510所生成的对话列表中的对话。如以上所解释的,在某些实施例中,向对话列表中的每一个对话赋予等于与用于生成对话列表的搜索准则相匹配的最近消息的日期/时间的日期/时间,并且根据这些所赋予的日期/时间值,排序对话列表中的对话(例如,按反时间次序)。本技术领域中的普通技术人员将会意识到,存在着对对话列表中的对话进行排序和提交的各种其它的方法。In some embodiments, the conversations in the conversation list generated at stage 1510 are sorted according to a date/time value assigned to each conversation according to a predefined rule or set of rules. As explained above, in some embodiments, each conversation in the conversation list is assigned a date/time equal to the date/time of the most recent message matching the search criteria used to generate the conversation list, and based on these Date/time value assigned to sort the conversations in the conversation list (eg, in reverse chronological order). Those of ordinary skill in the art will appreciate that there are various other methods of ordering and presenting conversations in the conversation list.

在某些实施例中,代表对话的列表的经过格式化的对话数据(在阶段1512产生)包括对含于对话列表中每一对话中的消息的数目的统计。在某些实施例中,由对话助手110显示每一对话的消息统计,以向用户指示多少消息包含于对话中。In some embodiments, the formatted conversation data representing the list of conversations (generated at stage 1512) includes statistics on the number of messages contained in each conversation in the conversation list. In some embodiments, message statistics for each conversation are displayed by conversation assistant 110 to indicate to the user how many messages are included in the conversation.

在一个实施例中,针对对话的列表中的每一对话创建简要对话报头(例如,在阶段1512期间),对话报头可以标识对话中消息的发送者的列表。这一列表可以包括对话中全部发送者或发送者的子集。在某些实施例中,对发送者的列表进行格式化,以便可视地区别那些已经发送了当前由用户标明为“未被读取”的(对话中的)消息的发送者。在另一个实施例中,对话助手110按不同于其它发送者的格式提交这些发送者。例如,可以使用粗体或突出显示的文本标识“未被读取”消息的发送者。In one embodiment, for each conversation in the list of conversations, a brief conversation header is created (eg, during stage 1512 ), which may identify the list of senders of the messages in the conversation. This list may include all senders or a subset of senders in the conversation. In some embodiments, the list of senders is formatted to visually distinguish those senders who have sent messages (in conversation) that are currently marked as "unread" by the user. In another embodiment, dialog assistant 110 submits these senders in a different format than other senders. For example, you can use bold or highlighted text to identify the sender of an "unread" message.

在另一个实施例中,可以通过用自我参照标识符取代用户的名字或地址来处理(简要对话报头中的)消息的发送者的列表。结果,当显示对话的发送者的列表而不是显示类似于非该用户的发送者的用户的名字或其它标识信息时,显示自我参照标识符(例如“me(我)”)。也可以使用其它类型的自我参照标识符把正在查看的用户与其他用户相区别。In another embodiment, the list of senders of the message (in the Brief Conversation header) may be processed by replacing the user's name or address with a self-referential identifier. As a result, a self-referential identifier (eg, "me") is displayed when displaying a list of senders of a conversation rather than displaying the names or other identifying information of users similar to the senders who are not the user. Other types of self-referential identifiers may also be used to distinguish the viewing user from other users.

在另一个实施例中,对话的列表中的每一消息的简要对话报头可以包括指示用户如何接收消息的信息。换句话说,这些信息可以专门标识如何向用户发送消息。例如,可以直接向用户发送消息,可以针对消息拷贝用户,可以针对消息盲拷贝用户,或者可以令用户为把消息发送于其的分布列表的一部分。可以向用户指出用户接收消息的这些不同方式中的一个或多个方式。例如,如果向用户直接发送消息,则可以使用形象的表示(例如“>”)指出何时把对话提交于用户。In another embodiment, the brief conversation header of each message in the list of conversations may include information indicating how the user received the message. In other words, this information can specifically identify how to send messages to users. For example, a message may be sent directly to a user, a user may be copied for a message, a user may be blind copied for a message, or the user may be made part of a distribution list to which the message is sent. One or more of these different ways in which the user may receive messages may be indicated to the user. For example, if you are sending a message directly to the user, you can use a figurative representation (such as ">") to indicate when the conversation is presented to the user.

在某些实施例中,对话的列表中的每一消息的简要信息报头包括对话内容的摘录,该摘录包括用于以粗体显示与搜索项目相匹配的文本的信息,而且还包括以正常字体格式化的围绕匹配文本的文本。当针对收件箱或其它系统范畴生成对话的列表时,摘录包括来自根据预先定义的准则所选择的对话的文本。在某些实施例中,摘录包括从对话中的最近消息的开始起的文本,而在另一个实施例中,摘录包括自动选择的、指示对话内容的文本。In some embodiments, the Brief Information header of each message in the list of conversations includes an excerpt of the conversation's content, which includes information for displaying text matching the search term in bold, and also includes text in normal font. Formatted text surrounding the matched text. When generating a list of conversations for an inbox or other system domain, the snippet includes text from conversations selected according to predefined criteria. In some embodiments, the snippet includes text from the beginning of the most recent message in the conversation, while in another embodiment, the snippet includes automatically selected text indicating the content of the conversation.

在另一个实施例中,当用户从与搜索查询相匹配的对话中选择查看具体的对话时,对话引擎可以生成指示对话中的哪些消息与该查询相匹配以及哪些消息与该查询不相匹配的对话信息。对话信息还可以包括与该搜索查询相匹配的消息的文本的一部分。可以对这一对话信息进行格式化,以向用户加以显示。对话信息可以包括用于按扩展模式显示的格式化的匹配消息和用于按压缩模式显示的格式化的非匹配消息。可以按扩展模式把各种类型的信息提交于用户,包括下列所有或部分信息的任意组合:报头信息、内容信息、与搜索查询相匹配的文本、以及围绕该搜索查询的文本。在某些实施例中,当按压缩模式(例如,响应于用户对“压缩所有消息”按钮或选项的选择)显示与搜索查询相匹配的一条或多条消息时,按压缩模式针对这样的消息所显示的信息包括消息内容的摘录,该摘录包括用于以粗体显示与查询项目相匹配的文本的信息,而且还包括围绕以正常字体格式化的匹配文本的文本。In another embodiment, when a user chooses to view a specific conversation from among conversations that match a search query, the conversation engine may generate a message indicating which messages in the conversation match the query and which messages do not match the query. conversation information. Conversation information may also include a portion of the text of messages that match the search query. This dialog information can be formatted for display to the user. The dialog information may include formatted matching messages for display in expanded mode and formatted non-matching messages for display in compressed mode. Various types of information may be presented to the user in an expanded mode, including any combination of all or some of the following: header information, content information, text matching a search query, and text surrounding the search query. In some embodiments, when one or more messages matching a search query are displayed in condensed mode (e.g., in response to user selection of a "compress all messages" button or option), targeting such messages in condensed mode The displayed information includes an excerpt of the message content that includes information to display text matching the query term in bold, and also includes text surrounding the matching text formatted in normal font.

在又一个实施例中,对话信息可以指示何时已向对话添加了某些用户或何时已从对话去除了某些用户。例如,如果已把用户包括于对话中的消息达到某一时间点,然后不再包括,则针对一条或多条相继消息的信息可以指示用户不再为对话的一部分。例如,对话助手可以通过使用某种不同于用于显示那些仍正在参与对话的用户的名字的字体显示该用户的名字来实现这一点。为此目的,对话助手可以使用“叠影”字体。In yet another embodiment, the conversation information may indicate when certain users have been added to or removed from the conversation. For example, if messages that have included a user in a conversation reach a certain point in time and are then no longer included, the information for one or more subsequent messages may indicate that the user is no longer part of the conversation. For example, the conversation assistant can do this by displaying the user's name in a font different from that used to display the names of those users still participating in the conversation. For this purpose, the dialog assistant can use a "ghost" font.

对话信息还可以向对话提供关于新参与者的加入的信息。例如,涉及包括新参与者的第一条消息的信息可以包括用于有区别地显示新参与者的名字的格式化信息。可以通过对话助手把这一信息显示于用户,以致新添加的发送者的名字或其它标识信息可按粗体或某些其它视觉上有区别的提交格式得以显现。Conversation information can also provide information about the entry of new participants to the conversation. For example, information relating to a first message involving a new participant may include formatting information for displaying the new participant's name in a distinctive manner. This information can be displayed to the user by the dialog assistant, so that the newly added sender's name or other identifying information can be presented in bold or some other visually distinct submission format.

对话信息还可以包括关于拼写检查的信息。这一信息可以包括指出哪些单词被拼写检查器1014标识为可能不正确拼写的指示信息,以及与正确拼写的建议相关的信息。Dialogue information may also include information about spell checking. This information may include indications of which words were identified by the spell checker 1014 as potentially incorrectly spelled, as well as information related to suggestions for correct spelling.

图16提供了根据本发明的一个实施例的用于存储消息的格式的说明。当把消息存储在消息数据库中(图11的阶段1114)时,可以按图16中所说明的对其加以存储。消息数据库1602可以存储关于消息的信息,例如关于消息1(1604)至消息x(1606)的信息,其中,x代表对应于具体用户的消息的数目。在一个实施例中,把每一用户的消息存储于唯一于该用户的消息数据库1602中。在另一个实施例中,可以把属于一个以上用户的消息存储于相同的消息数据库1602中。本技术领域中的普通技术人员将会意识到许多使来自一个用户的消息免于作为属于另一用户的消息加以显示的方法。在又一个实施例中,可以把来自一个以上用户的消息存储在消息数据库1602中,而且每条消息仅具有一个存储条目,以致多个用户可参照单一拷贝的消息。Figure 16 provides an illustration of the format used to store messages according to one embodiment of the invention. When a message is stored in the message database (stage 1114 of FIG. 11 ), it may be stored as illustrated in FIG. 16 . Message database 1602 may store information about messages, such as information about message 1 (1604) through message x (1606), where x represents the number of messages corresponding to a particular user. In one embodiment, each user's messages are stored in a message database 1602 unique to that user. In another embodiment, messages belonging to more than one user may be stored in the same message database 1602 . Those of ordinary skill in the art will recognize many ways to prevent a message from one user from being displayed as belonging to another user. In yet another embodiment, messages from more than one user can be stored in the message database 1602, and each message has only one stored entry, so that multiple users can refer to a single copy of the message.

在一个实施例中,消息(例如,消息1608)可以包括报头信息1612、内容1614以及附件1616。报头信息1614可以包括消息的报头信息,其含有诸如标识发送者和接收者、消息的时间/日期值以及主题的信息。其它的信息也可以包含于报头信息中,例如RFC 2822中所描述的其它信息。内容1614可以包括消息的内容。内容1614可以包括文本和/或其它类型的内容(例如,图像或照片)。附件1616可以为附接于具体消息的任何信息的内容。例如,可以把附接于消息的文档放置在消息1610的这一部分中。本技术领域中的普通技术人员将会意识到存储消息信息的其它方式。例如,可以把附件存储在另一个存储结构中,并且把对其的参照放置在附件1616中。In one embodiment, a message (eg, message 1608 ) may include header information 1612 , content 1614 , and attachments 1616 . Header information 1614 may include header information for the message containing information such as identifying the sender and recipient, a time/date value of the message, and the subject. Other information may also be included in the header information, such as other information described in RFC 2822. Content 1614 may include the content of the message. Content 1614 may include text and/or other types of content (eg, images or photos). Attachments 1616 may be any informational content attached to a specific message. For example, documents attached to the message may be placed in this portion of the message 1610 . Those of ordinary skill in the art will recognize other ways of storing message information. For example, attachments may be stored in another storage structure and references thereto placed in attachments1616.

在可选的实施例中,把每一对话的所有消息作为单一的记录、文档或数据结构存储在消息数据库中。In an alternative embodiment, all messages for each conversation are stored in a message database as a single record, document or data structure.

用户、消息以及对话的数据结构Data structures for users, messages, and conversations

图17说明了根据本发明的实施例的用户数据库和消息索引。用户数据库1702可以存储有关用户的信息。所存储的信息可以包括用户信息1704。用户信息1704可能包括与用户偏好相关的各种类型的用户信息、安全信息、或者可由本发明的不同实施例所使用的任何其它信息。用户数据库可以包括用于标识用户的诸如用户ID(1)(1706)至用户ID(m)(1708)的用户标识信息,用户ID(1)(1706)至用户ID(m)(1708)的中m可代表系统的用户的数目。特定的用户ID(m)(1708)可以为针对每一用户的唯一的标识符,例如n个比特的二进制数字。也可以使用其它类型的用户标识。Figure 17 illustrates a user database and message index according to an embodiment of the present invention. User database 1702 may store information about users. The stored information may include user information 1704 . User information 1704 may include various types of user information related to user preferences, security information, or any other information that may be used by different embodiments of the invention. The user database may include user identification information for identifying a user, such as user ID(1) (1706) through user ID(m) (1708), user ID(1) (1706) through user ID(m) (1708) where m may represent the number of users of the system. The specific user ID (m) (1708) may be a unique identifier for each user, such as an n-bit binary number. Other types of user identification can also be used.

在某些实施例中,使用用户的用户ID标识用于存储关于过滤器、与用户的邮件账户相关的查询和标签的信息的数据结构集合1720。在某些实施例中,这些数据结构包括用于存储代表用户所提交的最后几个查询的信息的查询超高速缓冲器1722;一组用于存储用户定义的过滤器(如果存在的话)的过滤器数据结构1724;以及用于存储代表用户定义的标签的信息的标签数据结构1726。可以把存储在查询超高速缓冲器1722中的信息所代表的新近的查询提交于用户,例如提交于编组框348(图3B)中的用户,以使用户能够容易地把这些查询重新提交于对话管理系统。当把每一新消息添加于用户的邮件账户时,在对其处理期间,对话管理系统使用用户定义的过滤器。可以把涉及用户定义的标签的所存储信息提交于用户,例如提交于编组框347(图3B)中的用户,以使用户能够容易地请求载有用户选择标签的对话的列表。In some embodiments, the user's user ID is used to identify a collection of data structures 1720 for storing information about filters, queries and tags related to the user's mail account. In some embodiments, these data structures include a query cache 1722 for storing information representing the last few queries submitted by a user; a set of filter caches for storing user-defined filters, if any; and a tag data structure 1726 for storing information representing user-defined tags. Recent queries represented by information stored in query cache 1722 may be submitted to the user, such as in group box 348 (FIG. 3B), so that the user can easily resubmit these queries in the session management system. The dialog management system uses user-defined filters during its processing when each new message is added to the user's mail account. Stored information related to user-defined tags may be presented to the user, such as in group box 347 (FIG. 3B), to enable the user to easily request a list of dialogs carrying user-selected tags.

用户的用户ID可以用于标识对应于该用户的全文本与属性索引1710。可以把全文本与属性索引1710与具体的用户相关联,以致不同的用户不能够搜索与该具体用户相关的消息的索引。全文本与属性索引1710把关于消息的信息存储在用户的邮件账户中,以致针对全文本与属性索引1710所施加的查询可以返回匹配消息(如果存在的话)的列表。该列表可作为消息标识符的列表被返回。A user's user ID may be used to identify the full text and attribute index 1710 corresponding to that user. The full-text and attribute index 1710 can be associated with a particular user such that different users cannot search the index for messages related to that particular user. The full text and attribute index 1710 stores information about messages in the user's mail account, so that a query applied against the full text and attribute index 1710 can return a list of matching messages, if any. This list can be returned as a list of message identifiers.

包含于针对具体消息的全文本与属性索引1710中的信息,可以包括消息的消息ID 1712、消息1714的内容1714以及关于消息的属性1716的信息。消息ID 1712是消息的唯一的标识符(即,相对于针对同一用户所存储的所有其它消息而言,是唯一的)。消息ID 1712可以为n个比特的数字,用于引用存储在消息数据库1702中的具体消息。在一个实施例中,消息ID 1712可以为64个比特数字。消息ID 1712可以由时标信息和与消息ID 1712所指消息的内容相关的信息构成。时标信息可以为由系统所提供的Y个比特(例如,32个比特或48个比特)的时标,例如,其表示SMTP网关1018何时接收消息。与消息的内容相关的信息可以为消息内容的64-Y个比特的杂凑(hash)。The information contained in the full-text and attribute index 1710 for a particular message may include the message ID 1712 of the message, the content 1714 of the message 1714, and information about the attributes 1716 of the message. Message ID 1712 is a unique identifier for the message (ie, unique with respect to all other messages stored for the same user). Message ID 1712 may be an n-bit number used to reference a specific message stored in message database 1702 . In one embodiment, the message ID 1712 may be a 64-bit number. Message ID 1712 may consist of time stamp information and information related to the content of the message to which Message ID 1712 refers. The time stamp information may be a Y bit (eg, 32 bits or 48 bits) time stamp provided by the system, eg, indicating when the SMTP gateway 1018 received the message. The information related to the content of the message may be a hash of 64-Y bits of the message content.

把消息的内容作为全索引的和可搜索的项目放入索引中。当针对项目或项目的组合搜索索引1710时,索引返回与项目或项目的组合相匹配的消息的消息列表(例如,消息ID)。某些预先定义的条件可以规定比所有匹配的消息少的返回。在另一个实施例中,索引1710返回与查询中的项目或项目的组合相匹配的对话列表(例如,对话ID)。Put the content of the message in the index as a fully indexed and searchable item. When the index 1710 is searched for an item or combination of items, the index returns a message list (eg, message ID) of messages matching the item or combination of items. Certain predefined conditions may dictate that fewer than all matching messages be returned. In another embodiment, the index 1710 returns a list of conversations (eg, conversation IDs) that match an item or combination of items in the query.

在一个实施例中,根据包含在每一被索引消息的消息ID 1712中的时标信息,对全文本与属性索引1710中的搜索项目的条目进行排序,以致可以优先返回与搜索项目相匹配的最近消息。例如,可以对相应于索引1710中的每一项目的消息的消息ID的列表进行排序,以致可以在列表中先于具有较旧时标的消息ID列出具有最新时标的消息ID。在其它实施例中,与每一消息相关的日期/时间信息表示每一消息的接收的日期和/或时间,但这一日期/时间信息未嵌入在消息ID中。然而,在这样的实施例中,对索引1710中的条目进行排列,以致在列表中可先于具有较旧日期/时间值的消息ID列出具有最新日期/时间值的消息的消息ID。In one embodiment, the entries for the search term in the full-text and attribute index 1710 are sorted according to the timestamp information contained in the message ID 1712 of each indexed message, so that the entries matching the search term are preferentially returned. latest news. For example, the list of message IDs of the messages corresponding to each entry in index 1710 may be ordered such that message IDs with the latest time stamps may be listed in the list before message IDs with older time stamps. In other embodiments, date/time information associated with each message indicates the date and/or time each message was received, but this date/time information is not embedded in the message ID. However, in such an embodiment, the entries in index 1710 are arranged such that the message IDs of messages with the newest date/time values may be listed in the list before message IDs with older date/time values.

也对与消息相关联的任何属性1716进行索引(即,将它们包括在索引1710中)。把属性1716添加于全文本与属性索引1710中,以致对于具体属性的查询可以返回那些与该具体属性相匹配的消息。当把标签或属性添加于对话或者从对话去除时,相应地修改索引1710。索引包括把每一所定义的标签或属性映像于载有该标签或属性的所有消息(或在其它实施例中,为对话)的条目或数据。于是,当把标签添加于对话时,也把数据添加于索引1710,以把该标签映像于对话中的所有消息。当把标签从对话去除时,也去除把该标签映像于对话中的消息的索引中的数据,或者使该索引无效。在某些实施例中,还把每一个与对话相关联的标签或属性添加于对话数据库1808(图18)中的一个或多个条目。Any attributes associated with the message are also indexed 1716 (ie, included in index 1710). Attributes 1716 are added to the full-text and attribute index 1710 so that queries for a particular attribute can return those messages that match that particular attribute. As tags or attributes are added to or removed from the dialog, the index 1710 is modified accordingly. The index includes entries or data that map each defined tag or attribute to all messages (or in other embodiments, dialogs) that carry that tag or attribute. Thus, when a tag is added to a conversation, data is also added to the index 1710 to map that tag to all messages in the conversation. When a tag is removed from a dialog, the data in the index mapping the tag to messages in the dialog is also removed, or the index is invalidated. In some embodiments, each dialog-associated tag or attribute is also added to one or more entries in the dialog database 1808 (FIG. 18).

尽管可以把全文本与属性索引1710配置为能够把查询项目映像于各个消息ID 1712,然而也可以提供其它数据结构以把消息ID映像于对话标识符。图18描述了一个这样的数据结构集合的逻辑图。本技术领域中的普通技术人员将会意识到可以使用许多不同的数据结构把搜索查询项目映像于对话或对话标识符。While the full text and attribute index 1710 can be configured to map query terms to individual message IDs 1712, other data structures can be provided to map message IDs to session identifiers. Figure 18 depicts a logical diagram of one such collection of data structures. Those of ordinary skill in the art will recognize that many different data structures can be used to map search query terms to conversations or conversation identifiers.

如先前所描述的,用户数据库1702可以包括引用与具体用户相关联的全文本与属性索引1710的用户ID 1708。参照图18,可以把具体消息ID 1712与消息至对话映像1804中的具体对话ID 1802相关联。消息至对话映像1804中的每一个条目把消息ID 1712关联(即映像)于对话ID 1802。在某些实施例中,对话ID 1804为n个比特的数字。这一数字唯一地标识了消息ID 1712所标识的消息所属于的具体对话。在这些实施例中,用户的邮件账户中的每一对话具有不同的对话ID。As previously described, the user database 1702 may include a user ID 1708 referencing a full-text and attribute index 1710 associated with a particular user. Referring to FIG. 18 , a specific message ID 1712 can be associated with a specific conversation ID 1802 in a message-to-conversation map 1804 . Each entry in message-to-conversation map 1804 associates (ie maps) a message ID 1712 with a conversation ID 1802. In some embodiments, session ID 1804 is a number of n bits. This number uniquely identifies the specific conversation to which the message identified by Message ID 1712 belongs. In these embodiments, each conversation in the user's mail account has a different conversation ID.

为了标识与具体对话相关联的其它消息,可以使用用户对话数据库1808。例如,当标识包括在其中一条或多条消息已与具体搜索查询相匹配的对话中的其余消息时,可以使用这样的数据库。用户对话数据库包括多个对话条目1810。每一个对话条目1810存储与该对话相关的消息的列表(或者代表消息的其它数据结构)。例如,对话条目1812可以包括消息条目1816的链接列表,每一个消息条目对应于对话中的具体消息。例如,根据与对话中的消息相关联的日期/时间值对链接列表进行排序。示例性的消息条目1816包括具体消息的消息ID 1712、报头1818以及标签1820。报头1818可以包括先前所描述的报头信息1612的全部或一部分。标签1820可以包括标识与消息相关联的某些属性的信息。可以把具体条目1822的消息ID(4)1712与消息数据库1602中的具体消息相关联。在某些实施例中,消息条目1816不包括对应消息体的内容。To identify other messages associated with a particular conversation, user conversation database 1808 may be used. Such a database may be used, for example, when identifying the remaining messages included in a conversation in which one or more messages have matched a particular search query. The user conversation database includes a plurality of conversation entries 1810 . Each conversation entry 1810 stores a list of messages (or other data structures representing messages) associated with that conversation. For example, conversation entry 1812 may include a linked list of message entries 1816, each message entry corresponding to a specific message in the conversation. For example, sort a list of links based on date/time values associated with messages in a conversation. Exemplary message entry 1816 includes message ID 1712 , header 1818 , and tag 1820 for the particular message. Header 1818 may include all or a portion of header information 1612 previously described. Tag 1820 may include information identifying certain attributes associated with the message. Message ID (4) 1712 of specific entry 1822 may be associated with a specific message in message database 1602 . In some embodiments, the message entry 1816 does not include the content of the corresponding message body.

在某些实施例中,索引1708中的信息和对话条目1812中的信息有助于把新消息与具体对话相关联,在图11的阶段1106中可做到这一点,而且不必存取消息数据库1602。当把消息标识为尽可能地与新到达的消息相匹配(图12的阶段1204)时,可以使用匹配消息的报头1818来实现对最佳匹配消息的判断以及因此对最佳匹配对话的判断。例如,报头1818可以包括能够将它们(呈正常化形式的)与新到达消息的正常化主题加以比较的消息的主题信息。也可以把报头1818中的其它信息与正被处理的流入消息的报头信息进行比较。一旦已经把对话标识为匹配的,则可以把所标识对话的消息条目的标签1820中所标识的属性施用于流入的消息(图13的阶段1307),而不必从消息数据库检索任何消息。In some embodiments, the information in index 1708 and in conversation entry 1812 facilitate associating new messages with specific conversations, which can be done in stage 1106 of FIG. 11 without having to access a message database 1602. When a message is identified as being as closely matched as possible to a newly arriving message (stage 1204 of FIG. 12), the header 1818 of the matching message may be used to enable the determination of the best matching message and thus the best matching dialog. For example, headers 1818 may include topic information for messages that enable them to be compared (in normalized form) to the normalized topics of newly arriving messages. Other information in header 1818 may also be compared to the header information of the incoming message being processed. Once the dialog has been identified as matching, the attributes identified in the tag 1820 of the message entry for the identified dialog can be applied to the incoming message (stage 1307 of Figure 13) without having to retrieve any messages from the message database.

当从对话中删除消息时,可以修改对话条目1812,而不会影响对话中的其它消息。在这种情况下,可以从消息条目的链接列表中删除对应于将要删除的消息的消息条目1816(在对话条目1812中)。于是,将不再把该消息与该对话相关联。在某些实施例中,考虑到删除操作,也可以对消息至对话映像1804进行修改。When a message is deleted from a conversation, the conversation entry 1812 can be modified without affecting other messages in the conversation. In this case, the message entry 1816 (in conversation entry 1812) corresponding to the message to be deleted may be deleted from the linked list of message entries. Then, the message will no longer be associated with the conversation. In some embodiments, the message-to-conversation map 1804 may also be modified to account for delete operations.

如先前所描述的,在某些情况下,例如,人们可能希望使用特定属性对删除的消息进行标记,但不从对话中去除该消息。当条件为使得可以从对话中去除该消息时,可以象以上所描述的那样做。可允许从消息至对话映像1802和对话条目1812中去除消息的条件,可包括自从把消息标记为删除后的一定量时间的消逝、用户的动作、或者其它触发事件。As previously described, in some cases, for example, one may wish to mark a message for deletion with a certain attribute, but not remove the message from the conversation. When conditions are such that the message can be removed from the dialog, it can be done as described above. Conditions that may allow messages to be removed from message-to-conversation map 1802 and conversation entry 1812 may include the elapse of a certain amount of time since the message was marked for deletion, user action, or other triggering events.

也可以把对话标识为删除,但尚未从用户的邮件账户中去除。当把对话永久性地从用户的邮件账户中去除时,则可以去除针对该对话的消息至对话映象1802的条目。另外,还可以从对话数据库1808中去除对应的对话条目1812,而且还可以从索引1708中去除对话中的消息的索引条目。The conversation may also be marked as deleted, but not yet removed from the user's mail account. When a conversation is permanently removed from the user's mail account, then the message to conversation map 1802 entry for the conversation may be removed. Additionally, the corresponding conversation entry 1812 can also be removed from the conversation database 1808 , and the index entries for messages in the conversation can also be removed from the index 1708 .

如以上所示,在另一个实施例中,全文本消息索引1708响应查询,返回对话标识符的列表。在本实施例中,可以省略消息至对话映像1802。取而代之,由对话数据库提供完成相应于查询的对话的处理所需的主要映像。As noted above, in another embodiment, the full text message index 1708 returns a list of conversation identifiers in response to a query. In this embodiment, messages to dialog map 1802 may be omitted. Instead, the dialog database provides the primary images needed to complete the processing of the dialog corresponding to the query.

参照图19,实现上述方法的对话服务器102的实施例包括一个或多个处理单元(CPU)1902、一个或多个网络或其它通信接口1904、存储器1006以及一个或多个用于互连这些部件的通信总线1908。对话服务器102可以有选择地包括含有显示设备和键盘的用户接口。存储器1906可以包括高速随机存取存储器,并且还可以包括非易失存储器,例如一个或多个磁盘或光存储盘。存储器1906可以包括远离CPU 1902放置的海量存储器。存储器1906可以存储:Referring to FIG. 19, an embodiment of a dialog server 102 implementing the methods described above includes one or more processing units (CPUs) 1902, one or more network or other communication interfaces 1904, memory 1006, and one or more devices for interconnecting these components. communication bus 1908. Dialogue server 102 may optionally include a user interface including a display device and a keyboard. Memory 1906 may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic or optical storage disks. Memory 1906 may include mass storage located remotely from CPU 1902 . Memory 1906 may store:

操作系统1916,其包括用于处理各种基本系统服务和用于执行依赖于硬件的任务的规程;Operating system 1916, which includes procedures for handling various basic system services and for performing hardware-dependent tasks;

网络通信模块(或指令)1918,其用于经由诸如Internet、其它广域网、局域网、大都市区域网等的一个或多个网络通信接口1904(有线或无线),把对话服务器102连接于其它计算机;以及A network communication module (or instruction) 1918, which is used to connect the dialog server 102 to other computers via one or more network communication interfaces 1904 (wired or wireless) such as the Internet, other wide area networks, local area networks, metropolitan area networks, etc.; as well as

对话引擎1002模块,其用于响应来自对话助手110的请求,以及向对话助手110提供答复,如先前所描述的,并且可以包括:Dialogue engine 1002 module for responding to requests from dialog assistant 110, and providing responses to dialog assistant 110, as previously described, and may include:

处理新消息模块1920,其用于处理新消息,如先前所描述的;processing new message module 1920 for processing new messages as previously described;

搜索模块1922,其用于搜索用户的消息,如先前所描述的,搜索模块1922包括用于处理来自由用户1922所提供的输入的搜索请求的模块,以及用于处理由对话助手110所启动的系统生成搜索的模块1926;Search module 1922, which is used to search the user's messages, as previously described, the search module 1922 includes modules for processing search requests from input provided by the user 1922, and for processing messages initiated by the dialog assistant 110 A module 1926 for the system to generate a search;

对话助手加载器1928,其用于向对话助手110提供允许对话助手处理从对话服务器102提供于其的信息的信息。在某些实施例中,当首次把客户机计算机连接于对话服务器102以处理电子邮件消息时,引用对话助手加载器1928,以把对话助手110加载于客户机计算机。在某些实施例中,每次启动电子邮件对话期时,对话助手加载器1928把对话助手110加载在客户机计算机上,而在其它实施例中,客户机计算机把对话助手110从一个电子邮件对话期保持到另一个电子邮件对话期;Dialog Assistant Loader 1928 for providing dialog assistant 110 with information that allows the dialog assistant to process information provided to it from dialog server 102 . In some embodiments, the dialog assistant loader 1928 is invoked to load the dialog assistant 110 on the client computer when the client computer is first connected to the dialog server 102 to process an email message. In some embodiments, the dialog helper loader 1928 loads the dialog helper 110 on the client computer each time an email session is started, while in other embodiments the client computer loads the dialog helper 110 from an email session. The session is held until another email session;

回答格式化模块1930,其用于提供要被提供给对话助手110的格式化信息,如先前所描述的,包括对话排序模块1932,其用于根据预先定义的准则来排序对话,如先前所描述的;选择对话模块1034,其用于从可以被返回的总数中选择要被返回到对话助手110的对话的预先确定的数目;未被读取/未被查看消息的标识发送者1936,其用于标识被标记为“未被读取”(即消息未被查看或未被标记为被读取的)消息的消息,如先前所描述的;自我参照模块1938,其用于提供关于用自我参照信息取代用户标识的信息,如先前所描述的;新接收者模块1940,其用于标识和提供关于向对话新添加接收者的信息,如先前所描述的;去除接收者模块1942,其用于标识和提供关于不再为对话的一部分的接收者的信息,如先前所描述的;摘录模块1944,其用于获取和提供关于匹配消息的某一文本的信息,如先前所描述的;以及全文本模块1946,其用于检索传输于对话助手110的消息的全文本,如先前所描述的;以及格式拼写检查模块1948,其用于格式化从拼写检查器1014返回的信息;Answer formatting module 1930 for providing formatted information to be provided to dialog assistant 110, as previously described, including dialog ordering module 1932 for ordering dialogs according to predefined criteria, as previously described the selection dialogue module 1034, which is used to select a predetermined number of dialogues to be returned to the dialogue assistant 110 from the total number that can be returned; the identification sender 1936 of an unread/unviewed message, which is used For identifying messages that are marked as "unread" (i.e., messages that have not been viewed or marked as read), as previously described; a self-referencing module 1938 for providing information on using self-referencing The information supersedes the information of the user identification, as previously described; the new recipient module 1940, which is used to identify and provide information about newly adding recipients to the dialog, as previously described; the remove recipient module 1942, which is used to identifying and providing information about recipients who are no longer part of the conversation, as previously described; an excerpt module 1944 for obtaining and providing information about certain text of a matching message, as previously described; and the full text This module 1946, which is used to retrieve the full text of the message transmitted to the dialog assistant 110, as previously described; and a format spell check module 1948, which is used to format the information returned from the spell checker 1014;

修改属性模块1950,其用于修改对话和消息的属性,如先前所描述的;Modify Attributes module 1950 for modifying attributes of dialogs and messages, as previously described;

删除/去除模块1095,其用于标记用于删除和随后去除它们的消息或对话,如先前所描述的;Delete/Remove Module 1095 for marking messages or conversations for deletion and subsequently removing them, as previously described;

过滤模块1954,其用于创建、监视以及执行过滤,如先前所描述的;以及Filtering module 1954, which is used to create, monitor, and perform filtering, as previously described; and

编写/发送模块1956,其允许用户编写消息,并且把所得到的消息提交于SMTP网关1016。Compose/Send module 1956 , which allows users to compose messages and submit the resulting messages to SMTP gateway 1016 .

应该认识到,以上所描述的各种特性,例如拼写检查处理的示例性实施例,以及显示方法,不局限于电子消息处理或电子邮件。例如,在其它实施例中,可以把上述的拼写检查方法或用户接口施用于各种类型的文档(例如,字处理文档),或者与各种类型的文档相结合加以实现。It should be appreciated that the various features described above, such as the exemplary embodiments of the spell checking process, and display methods, are not limited to electronic messaging or email. For example, in other embodiments, the above-mentioned spell checking method or user interface can be applied to various types of documents (eg, word processing documents), or implemented in combination with various types of documents.

已参照具体的实施例解释性地进行了以上的描述。然而,上述说明性的讨论不旨在穷举性地描述本发明,或者把本发明限制于所公开的精确形式。鉴于以上的讲授,对本发明进行众多的修改与变更是可能的。对实施例的选择与描述,旨在最好地解释本发明的原理及其实际的应用,从而可使本技术领域中的其它技术人员能够通过所考虑的适合于具体应用的各种修改,来充分利用本发明及其各种实施例。The foregoing description has been made illustratively with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Numerous modifications and variations of the present invention are possible in light of the above teachings. The embodiment was chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to enable others skilled in the art to understand the invention with various modifications as are suited to the particular application considered. Take full advantage of the invention and its various embodiments.

Claims (14)

1.一种在具有一个或多个处理器和存储器的服务器系统执行的方法,该方法包括:1. A method performed on a server system having one or more processors and memory, the method comprising: 响应于来自各自的用户的单一搜索查询:In response to a single search query from a respective user: 搜索电子邮件消息库以识别与各自的用户相关联的多个对话,其中,所述多个对话中的每一个包括至少一个与所述搜索查询相关的电子邮件消息,并且所述多个识别的对话中的每一个包括共享相同的正规化主题的一个或多个电子邮件消息;searching the library of email messages to identify a plurality of conversations associated with respective users, wherein each of the plurality of conversations includes at least one email message related to the search query, and the plurality of identified Each of the conversations includes one or more email messages sharing the same normalized subject; 发送代表所识别的对话的至少一个子集的对话的列表,其中,所述列表中的至少一个对话包括多个电子邮件消息;以及sending a list of conversations representing at least a subset of the identified conversations, wherein at least one conversation in the list comprises a plurality of email messages; and 提供包括格式化信息的来自对话的列表的所选择对话的内容,所述格式化信息可视地区分所选择对话的一个或多个第一电子邮件消息和所选择对话的一个或多个第二电子邮件消息,其中,所述一个或多个第一电子邮件消息包括所述搜索查询的至少一个查询项,而所述一个或多个第二电子邮件消息不包括所述搜索查询的任何查询项。Content of the selected conversation from the list of conversations is provided including formatted information that visually distinguishes one or more first email messages of the selected conversation from one or more second email messages of the selected conversation. email messages, wherein the one or more first email messages include at least one query term of the search query and the one or more second email messages do not include any query terms of the search query . 2.如权利要求1所述的方法,其中,所述格式化信息包括用于以区别性方式显示文本的信息。2. The method of claim 1, wherein the formatting information includes information for displaying text in a distinctive manner. 3.如权利要求1所述的方法,其中,所述格式化信息包括在所述一个或多个第一电子邮件消息中匹配所述搜索查询的突出显示文本。3. The method of claim 1, wherein the formatting information includes highlighted text matching the search query in the one or more first email messages. 4.如权利要求1所述的方法,其中,所述格式化信息包括用于以扩展模式显示所述一个或多个第一电子邮件消息和以压缩模式显示所述一个或多个第二电子邮件消息的格式化信息。4. The method of claim 1, wherein the formatting information includes a format for displaying the one or more first email messages in an expanded mode and displaying the one or more second email messages in a compressed mode. Formatting information for the mail message. 5.如权利要求4所述的方法,其中:5. The method of claim 4, wherein: 以扩展模式显示的电子邮件消息包括完整的电子邮件消息体;以及Email messages displayed in expanded mode include the full email message body; and 以压缩模式显示的电子邮件消息不包括所述完整的电子邮件消息体。Email messages displayed in compressed mode do not include the complete email message body. 6.如权利要求1所述的方法,其中,所述对话的列表包括用于以包括来自包括匹配所述搜索查询的一个或多个项的各自的对话的一部分内容的单一行呈现而格式化的各自的对话。6. The method of claim 1 , wherein the list of conversations includes formatted for presentation in a single line including a portion of content from a respective conversation that includes one or more terms matching the search query their respective dialogues. 7.如权利要求6所述的方法,其中,所述来自包括匹配所述搜索查询的一个或多个项的对话的一部分内容被格式化以便以区别性方式显示匹配所述搜索查询的一个或多个项。7. The method of claim 6, wherein the portion of the content from the dialog including one or more terms matching the search query is formatted to display one or more items matching the search query in a distinctive manner. multiple items. 8.一种服务器系统,包括:8. A server system comprising: 用于响应于来自各自的用户的单一搜索查询搜索电子邮件消息库以识别与各自的用户相关联的多个对话的装置,其中,所述多个对话中的每一个包括至少一个与所述搜索查询相关的电子邮件消息,并且所述多个识别的对话中的每一个包括相同的正规化主题的一个或多个电子邮件消息;means for searching a library of email messages in response to a single search query from a respective user to identify a plurality of conversations associated with the respective user, wherein each of the plurality of conversations includes at least one querying for related email messages, and each of the plurality of identified conversations includes one or more email messages of the same normalized subject; 用于发送代表所识别的对话的至少一个子集的对话的列表的装置,其中,所述列表中的至少一个对话包括多个电子邮件消息;以及means for sending a list of conversations representing at least a subset of the identified conversations, wherein at least one conversation in the list comprises a plurality of email messages; and 用于提供包括格式化信息的来自对话的列表的所选择对话的内容,所述格式化信息可视地区分所选择对话的一个或多个第一电子邮件消息和所选择对话的一个或多个第二电子邮件消息,其中,所述一个或多个第一电子邮件消息包括所述搜索查询的至少一个查询项,而所述一个或多个第二电子邮件消息不包括所述搜索查询的任何查询项。Content for providing a selected conversation from a list of conversations including formatting information that visually distinguishes one or more first email messages of the selected conversation from one or more of the selected conversations second email messages, wherein the one or more first email messages include at least one query term of the search query and the one or more second email messages do not include any of the search query Query item. 9.如权利要求8所述的服务器系统,其中,所述格式化信息包括用于以区别性方式显示文本的信息。9. The server system according to claim 8, wherein the formatting information includes information for displaying text in a distinctive manner. 10.如权利要求8所述的服务器系统,其中,所述格式化信息包括在所述一个或多个第一电子邮件消息中匹配所述搜索查询的突出显示文本。10. The server system of claim 8, wherein the formatting information includes highlighted text matching the search query in the one or more first email messages. 11.如权利要求8所述的服务器系统,其中,所述格式化信息包括用于以扩展模式显示所述一个或多个第一电子邮件消息和以压缩模式显示所述一个或多个第二电子邮件消息的格式化信息。11. The server system of claim 8 , wherein the formatting information includes information for displaying the one or more first e-mail messages in an expanded mode and displaying the one or more second e-mail messages in a compressed mode. Formatting information for email messages. 12.如权利要求11所述的服务器系统,其中:12. The server system of claim 11, wherein: 以扩展模式显示的电子邮件消息包括完整的电子邮件消息体;以及Email messages displayed in expanded mode include the full email message body; and 以压缩模式显示的电子邮件消息不包括所述完整的电子邮件消息体。Email messages displayed in compressed mode do not include the complete email message body. 13.如权利要求8所述的服务器系统,其中,所述对话的列表包括用于以包括来自包括匹配所述搜索查询的一个或多个项的各自的对话的一部分内容的单一行呈现而格式化的各自的对话。13. The server system of claim 8 , wherein the list of conversations includes a format for presenting a portion of content from a respective conversation including one or more terms matching the search query in a single line. of their respective dialogues. 14.如权利要求13所述的服务器系统,其中,所述来自包括匹配所述搜索查询的一个或多个项的对话的一部分内容被格式化以便以区别性方式显示匹配所述搜索查询的一个或多个项。14. The server system of claim 13 , wherein the portion of content from the dialog including one or more terms matching the search query is formatted to display in a distinctive manner an item matching the search query. or multiple items.
CN201110416439.9A 2004-03-31 2005-03-25 Search message in e-mail system based on dialogue Expired - Lifetime CN102609831B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/816,428 2004-03-31
US10/816,428 US7912904B2 (en) 2004-03-31 2004-03-31 Email system with conversation-centric user interface
US10/914,035 US9819624B2 (en) 2004-03-31 2004-08-06 Displaying conversations in a conversation-based email system
US10/914,035 2004-08-06

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800164138A Division CN101194277A (en) 2004-03-31 2005-03-25 Displaying conversations in a conversation-based email system

Publications (2)

Publication Number Publication Date
CN102609831A CN102609831A (en) 2012-07-25
CN102609831B true CN102609831B (en) 2016-12-14

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948058A (en) * 1995-10-30 1999-09-07 Nec Corporation Method and apparatus for cataloging and displaying e-mail using a classification rule preparing means and providing cataloging a piece of e-mail into multiple categories or classification types based on e-mail object information
CN1402159A (en) * 2001-08-22 2003-03-12 英业达股份有限公司 Mail file management system and method
CN1438595A (en) * 2002-02-10 2003-08-27 三慧科技股份有限公司 System for processing electronic onails
CN1464458A (en) * 2002-06-04 2003-12-31 明日工作室股份有限公司 E-mail generation method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948058A (en) * 1995-10-30 1999-09-07 Nec Corporation Method and apparatus for cataloging and displaying e-mail using a classification rule preparing means and providing cataloging a piece of e-mail into multiple categories or classification types based on e-mail object information
CN1402159A (en) * 2001-08-22 2003-03-12 英业达股份有限公司 Mail file management system and method
CN1438595A (en) * 2002-02-10 2003-08-27 三慧科技股份有限公司 System for processing electronic onails
CN1464458A (en) * 2002-06-04 2003-12-31 明日工作室股份有限公司 E-mail generation method and system

Similar Documents

Publication Publication Date Title
CN102521734B (en) E-mail system based on dialogue shows the message of extension
US10706060B2 (en) Systems and methods for re-ranking displayed conversations
US20140006968A1 (en) System and Method for Electronic Contact List-Based Search and Display
CN102609831B (en) Search message in e-mail system based on dialogue

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Google Inc.

Address before: California, USA

Patentee before: Google Inc.

CX01 Expiry of patent term

Granted publication date: 20161214